1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-09-16 02:27:00 +02:00

persist browser context on popout, add uri options input & toggle (#1290)

* persist browser context on popout, add uri options input & toggle

* pass tab array to ngOptions, add null check
This commit is contained in:
Melanie Kanavakatini 2020-06-12 16:01:08 +01:00 committed by GitHub
parent 25a86608b2
commit 32db40ec7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 1 deletions

View File

@ -218,7 +218,13 @@
<div class="row-main"> <div class="row-main">
<label for="loginUri{{i}}">{{'uriPosition' | i18n : (i + 1)}}</label> <label for="loginUri{{i}}">{{'uriPosition' | i18n : (i + 1)}}</label>
<input id="loginUri{{i}}" type="text" name="Login.Uris[{{i}}].Uri" [(ngModel)]="u.uri" <input id="loginUri{{i}}" type="text" name="Login.Uris[{{i}}].Uri" [(ngModel)]="u.uri"
placeholder="{{'ex' | i18n}} https://google.com" inputmode="url" appInputVerbatim> [hidden]="u.showUriOptionsInput === true" placeholder="{{'ex' | i18n}} https://google.com"
inputmode="url" appInputVerbatim>
<select *ngIf="uriOptions != null && uriOptions.length"
id="loginUriOptions{{i}}" name="Login.Uris[{{i}}].Options" [(ngModel)]="u.uri"
[hidden]="u.showUriOptionsInput === false || u.showUriOptionsInput == null || uriOptions == null">
<option *ngFor="let o of uriOptions" [ngValue]="o.url">{{o.url}}</option>
</select>
<label for="loginUriMatch{{i}}" class="sr-only"> <label for="loginUriMatch{{i}}" class="sr-only">
{{'matchDetection' | i18n}} {{(i + 1)}} {{'matchDetection' | i18n}} {{(i + 1)}}
</label> </label>
@ -229,6 +235,11 @@
</select> </select>
</div> </div>
<div class="action-buttons"> <div class="action-buttons">
<a *ngIf="uriOptions != null && uriOptions.length" class="row-btn" href="#" appStopClick appBlurClick
appA11yTitle="{{'Toggle Input Mode'}}" (click)="toggleUriInput(u)">
<i aria-hidden="true" class="fa fa-lg"
[ngClass]="u.showUriOptionsInput ? 'fa-edit' : 'fa-list'"></i>
</a>
<a class="row-btn" href="#" appStopClick appBlurClick <a class="row-btn" href="#" appStopClick appBlurClick
appA11yTitle="{{'toggleOptions' | i18n}}" (click)="toggleUriOptions(u)"> appA11yTitle="{{'toggleOptions' | i18n}}" (click)="toggleUriOptions(u)">
<i class="fa fa-lg fa-cog" aria-hidden="true"></i> <i class="fa fa-lg fa-cog" aria-hidden="true"></i>

View File

@ -5,6 +5,8 @@ import {
Router, Router,
} from '@angular/router'; } from '@angular/router';
import { BrowserApi } from '../../browser/browserApi';
import { AuditService } from 'jslib/abstractions/audit.service'; import { AuditService } from 'jslib/abstractions/audit.service';
import { CipherService } from 'jslib/abstractions/cipher.service'; import { CipherService } from 'jslib/abstractions/cipher.service';
import { CollectionService } from 'jslib/abstractions/collection.service'; import { CollectionService } from 'jslib/abstractions/collection.service';
@ -16,6 +18,8 @@ import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
import { StateService } from 'jslib/abstractions/state.service'; import { StateService } from 'jslib/abstractions/state.service';
import { UserService } from 'jslib/abstractions/user.service'; import { UserService } from 'jslib/abstractions/user.service';
import { LoginUriView } from 'jslib/models/view/loginUriView';
import { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component'; import { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component';
@Component({ @Component({
@ -23,6 +27,7 @@ import { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/componen
templateUrl: 'add-edit.component.html', templateUrl: 'add-edit.component.html',
}) })
export class AddEditComponent extends BaseAddEditComponent { export class AddEditComponent extends BaseAddEditComponent {
uriOptions: any[];
showAttachments = true; showAttachments = true;
constructor(cipherService: CipherService, folderService: FolderService, constructor(cipherService: CipherService, folderService: FolderService,
@ -77,6 +82,11 @@ export class AddEditComponent extends BaseAddEditComponent {
} }
}); });
if (!this.editMode) {
const tabs = await BrowserApi.tabsQuery({ windowType: 'normal' });
this.uriOptions = tabs.filter((tab) => tab.url);
}
window.setTimeout(() => { window.setTimeout(() => {
if (!this.editMode) { if (!this.editMode) {
if (this.cipher.name != null && this.cipher.name !== '') { if (this.cipher.name != null && this.cipher.name !== '') {
@ -145,4 +155,9 @@ export class AddEditComponent extends BaseAddEditComponent {
} }
return confirmed; return confirmed;
} }
toggleUriInput(uri: LoginUriView) {
const u = (uri as any);
u.showUriOptionsInput = !u.showUriOptionsInput;
}
} }