bitwarden-estensione-browser/src/popup/vault/groupings.component.html

154 lines
7.9 KiB
HTML
Raw Normal View History

2018-04-05 16:29:11 +02:00
<header>
2018-04-14 05:37:57 +02:00
<div class="left" *ngIf="showLeftHeader">
<app-pop-out></app-pop-out>
2018-04-05 16:29:11 +02:00
</div>
2018-04-09 16:50:28 +02:00
<div class="search">
2019-03-14 03:54:18 +01:00
<input type="{{searchTypeSearch ? 'search' : 'text'}}" placeholder="{{'searchVault' | i18n}}" id="search"
2019-11-25 14:20:49 +01:00
[(ngModel)]="searchText" (input)="search(200)" autocomplete="off" appAutofocus>
2018-04-09 16:50:28 +02:00
<i class="fa fa-search"></i>
2018-04-05 16:29:11 +02:00
</div>
<div class="right">
2019-10-08 23:04:44 +02:00
<button appBlurClick (click)="addCipher()" appA11yTitle="{{'addItem' | i18n}}">
<i class="fa fa-plus fa-lg fa-fw" aria-hidden="true"></i>
2018-04-05 23:27:31 +02:00
</button>
2018-04-05 16:29:11 +02:00
</div>
</header>
<content>
2018-08-13 17:53:16 +02:00
<div class="no-items" *ngIf="(!ciphers || !ciphers.length) && !showSearching()">
2018-04-09 16:50:28 +02:00
<i class="fa fa-spinner fa-spin fa-3x" *ngIf="!loaded"></i>
<ng-container *ngIf="loaded">
<i class="fa fa-frown-o fa-4x"></i>
<p>{{'noItemsInList' | i18n}}</p>
<button (click)="addCipher()" class="btn block primary link">{{'addItem' | i18n}}</button>
</ng-container>
</div>
2018-08-13 17:53:16 +02:00
<ng-container *ngIf="ciphers && ciphers.length && !showSearching()">
2018-04-05 23:27:31 +02:00
<div class="box list" *ngIf="favoriteCiphers">
2018-04-05 16:29:11 +02:00
<div class="box-header">
2018-04-05 23:27:31 +02:00
{{'favorites' | i18n}}
<span class="flex-right">{{favoriteCiphers.length}}</span>
2018-04-05 16:29:11 +02:00
</div>
<div class="box-content">
2018-04-06 05:49:04 +02:00
<app-ciphers-list [ciphers]="favoriteCiphers" title="{{'viewItem' | i18n}}"
2019-02-21 22:53:57 +01:00
(onSelected)="selectCipher($event)" (onDoubleSelected)="launchCipher($event)"></app-ciphers-list>
2018-04-05 23:27:31 +02:00
</div>
</div>
<div class="box list">
<div class="box-header">
{{'types' | i18n}}
<span class="flex-right">4</span>
</div>
<div class="box-content single-line">
2019-02-21 22:53:57 +01:00
<a href="#" class="box-content-row" appStopClick appBlurClick (click)="selectType(cipherType.Login)">
2018-04-10 04:25:03 +02:00
<div class="row-main">
<div class="icon"><i class="fa fa-fw fa-lg fa-globe"></i></div>
<span class="text">{{'typeLogin' | i18n}}</span>
2018-04-05 23:27:31 +02:00
</div>
2018-04-10 04:25:03 +02:00
<span class="row-sub-label">{{typeCounts.get(cipherType.Login) || 0}}</span>
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
2018-04-05 23:27:31 +02:00
</a>
2019-02-21 22:53:57 +01:00
<a href="#" class="box-content-row" appStopClick appBlurClick (click)="selectType(cipherType.Card)">
2018-04-10 04:25:03 +02:00
<div class="row-main">
<div class="icon"><i class="fa fa-fw fa-lg fa-credit-card"></i></div>
<span class="text">{{'typeCard' | i18n}}</span>
2018-04-05 23:27:31 +02:00
</div>
2018-04-10 04:25:03 +02:00
<span class="row-sub-label">{{typeCounts.get(cipherType.Card) || 0}}</span>
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
2018-04-05 23:27:31 +02:00
</a>
2019-02-21 22:53:57 +01:00
<a href="#" class="box-content-row" appStopClick appBlurClick (click)="selectType(cipherType.Identity)">
2018-04-10 04:25:03 +02:00
<div class="row-main">
<div class="icon"><i class="fa fa-fw fa-lg fa-id-card-o"></i></div>
<span class="text">{{'typeIdentity' | i18n}}</span>
2018-04-05 23:27:31 +02:00
</div>
2018-04-10 04:25:03 +02:00
<span class="row-sub-label">{{typeCounts.get(cipherType.Identity) || 0}}</span>
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
2018-04-05 23:27:31 +02:00
</a>
2018-04-10 04:25:03 +02:00
<a href="#" class="box-content-row" appStopClick appBlurClick
2019-02-21 22:53:57 +01:00
(click)="selectType(cipherType.SecureNote)">
2018-04-10 04:25:03 +02:00
<div class="row-main">
<div class="icon"><i class="fa fa-fw fa-lg fa-sticky-note-o"></i></div>
<span class="text">{{'typeSecureNote' | i18n}}</span>
2018-04-05 23:27:31 +02:00
</div>
2018-04-10 04:25:03 +02:00
<span class="row-sub-label">{{typeCounts.get(cipherType.SecureNote) || 0}}</span>
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
2018-04-05 23:27:31 +02:00
</a>
</div>
</div>
<div class="box list" *ngIf="nestedFolders && nestedFolders.length">
2018-04-05 23:27:31 +02:00
<div class="box-header">
{{'folders' | i18n}}
<span class="flex-right">{{folderCount}}</span>
</div>
<div class="box-content single-line">
2019-02-21 22:53:57 +01:00
<a *ngFor="let f of nestedFolders" href="#" class="box-content-row" appStopClick appBlurClick
(click)="selectFolder(f.node)">
2018-04-10 04:25:03 +02:00
<div class="row-main">
<div class="icon">
<i class="fa fa-fw fa-lg"
2019-02-21 22:53:57 +01:00
[ngClass]="{'fa-folder-open': f.node.id, 'fa-folder-open-o': !f.node.id}"></i>
2018-04-10 04:25:03 +02:00
</div>
<span class="text">{{f.node.name}}</span>
2018-04-05 23:27:31 +02:00
</div>
<span class="row-sub-label">{{folderCounts.get(f.node.id) || 0}}</span>
2018-04-10 04:25:03 +02:00
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
2018-04-05 16:29:11 +02:00
</a>
</div>
</div>
<div class="box list" *ngIf="nestedCollections && nestedCollections.length">
2018-04-05 16:29:11 +02:00
<div class="box-header">
{{'collections' | i18n}}
<span class="flex-right">{{nestedCollections.length}}</span>
2018-04-05 16:29:11 +02:00
</div>
2018-04-05 23:27:31 +02:00
<div class="box-content single-line">
2019-02-21 22:53:57 +01:00
<a *ngFor="let c of nestedCollections" href="#" class="box-content-row" appStopClick appBlurClick
(click)="selectCollection(c.node)">
2018-04-10 04:25:03 +02:00
<div class="row-main">
<div class="icon"><i class="fa fa-fw fa-lg fa-cube"></i></div>
<span class="text">{{c.node.name}}</span>
2018-04-05 23:27:31 +02:00
</div>
<span class="row-sub-label">{{collectionCounts.get(c.node.id) || 0}}</span>
2018-04-10 04:25:03 +02:00
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
2018-04-05 16:29:11 +02:00
</a>
</div>
</div>
2018-04-05 23:27:31 +02:00
<div class="box list" *ngIf="showNoFolderCiphers">
<div class="box-header">
{{'noneFolder' | i18n}}
<div class="flex-right">{{noFolderCiphers.length}}</div>
</div>
<div class="box-content">
2018-04-06 05:49:04 +02:00
<app-ciphers-list [ciphers]="noFolderCiphers" title="{{'viewItem' | i18n}}"
2019-02-21 22:53:57 +01:00
(onSelected)="selectCipher($event)" (onDoubleSelected)="launchCipher($event)"></app-ciphers-list>
2018-04-05 23:27:31 +02:00
</div>
</div>
<div class="box list" *ngIf="deletedCount">
<div class="box-header">
{{'trash' | i18n}}
<span class="flex-right">{{deletedCount}}</span>
</div>
<div class="box-content single-line">
<a href="#" class="box-content-row" appStopClick appBlurClick
(click)="selectTrash()">
<div class="row-main">
<div class="icon"><i class="fa fa-fw fa-lg fa-trash-o"></i></div>
<span class="text">{{'trash' | i18n}}</span>
</div>
<span class="row-sub-label">{{deletedCount}}</span>
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
</a>
</div>
</div>
2018-04-05 16:29:11 +02:00
</ng-container>
2018-08-13 17:53:16 +02:00
<ng-container *ngIf="showSearching()">
<div class="no-items" *ngIf="!ciphers || !ciphers.length">
2018-04-09 16:50:28 +02:00
<p>{{'noItemsInList' | i18n}}</p>
</div>
2018-08-13 17:53:16 +02:00
<div class="box list full-list" *ngIf="ciphers && ciphers.length > 0">
2018-04-09 16:50:28 +02:00
<div class="box-content">
2019-02-21 22:53:57 +01:00
<app-ciphers-list [ciphers]="ciphers" title="{{'viewItem' | i18n}}" (onSelected)="selectCipher($event)"
(onDoubleSelected)="launchCipher($event)"></app-ciphers-list>
2018-04-09 16:50:28 +02:00
</div>
</div>
</ng-container>
2018-04-05 16:29:11 +02:00
</content>