2018-04-05 21:35:56 +02:00
|
|
|
<header>
|
|
|
|
<div class="left">
|
2018-04-06 05:49:04 +02:00
|
|
|
<button type="button" appBlurClick (click)="back()">
|
2018-04-10 04:53:46 +02:00
|
|
|
<span class="header-icon"><i class="fa fa-chevron-left"></i></span>
|
2018-04-05 21:35:56 +02:00
|
|
|
<span>{{'back' | i18n}}</span>
|
2018-04-06 05:49:04 +02:00
|
|
|
</button>
|
2018-04-05 21:35:56 +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="{{searchPlaceholder || ('searchVault' | i18n)}}" id="search" [(ngModel)]="searchText"
|
|
|
|
(input)="search(200)" appAutofocus>
|
2018-04-09 16:50:28 +02:00
|
|
|
<i class="fa fa-search"></i>
|
2018-04-05 21:35:56 +02:00
|
|
|
</div>
|
2018-10-30 13:56:38 +01:00
|
|
|
<div class="right">
|
2018-04-10 04:53:46 +02:00
|
|
|
<button type="button" appBlurClick (click)="addCipher()" title="{{'addItem' | i18n}}">
|
|
|
|
<i class="fa fa-plus fa-lg fa-fw"></i>
|
2018-04-05 21:35:56 +02:00
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</header>
|
2018-10-29 14:29:21 +01:00
|
|
|
<content [ngClass]="{'stacked-boxes': showGroupings()}">
|
|
|
|
<ng-container *ngIf="showGroupings()">
|
|
|
|
<div class="box list" *ngIf="nestedFolders && nestedFolders.length">
|
|
|
|
<div class="box-header">
|
|
|
|
{{'folders' | i18n}}
|
|
|
|
</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-10-29 14:29:21 +01:00
|
|
|
<div class="row-main">
|
|
|
|
<div class="icon">
|
|
|
|
<i class="fa fa-fw fa-lg"
|
|
|
|
[ngClass]="{'fa-folder-open': f.node.id, 'fa-folder-open-o': !f.node.id}"></i>
|
|
|
|
</div>
|
|
|
|
<span class="text">{{f.node.name}}</span>
|
2018-10-26 18:37:55 +02:00
|
|
|
</div>
|
2018-10-29 14:29:21 +01:00
|
|
|
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
|
|
|
|
</a>
|
|
|
|
</div>
|
2018-10-26 18:37:55 +02:00
|
|
|
</div>
|
2018-10-29 14:29:21 +01:00
|
|
|
<div class="box list" *ngIf="nestedCollections && nestedCollections.length">
|
|
|
|
<div class="box-header">
|
|
|
|
{{'collections' | i18n}}
|
|
|
|
</div>
|
|
|
|
<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-10-29 14:29:21 +01: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>
|
|
|
|
</div>
|
|
|
|
<span><i class="fa fa-chevron-right fa-lg row-sub-icon"></i></span>
|
|
|
|
</a>
|
|
|
|
</div>
|
2018-10-26 18:37:55 +02:00
|
|
|
</div>
|
2018-10-29 14:29:21 +01:00
|
|
|
</ng-container>
|
2018-08-13 17:53:16 +02:00
|
|
|
<ng-container *ngIf="(!isPaging() ? ciphers : pagedCiphers) as filteredCiphers">
|
2018-04-11 16:23:12 +02:00
|
|
|
<div class="no-items" *ngIf="!filteredCiphers.length">
|
2018-04-10 01:26:32 +02:00
|
|
|
<i class="fa fa-spinner fa-spin fa-3x" *ngIf="!loaded"></i>
|
|
|
|
<ng-container *ngIf="loaded">
|
|
|
|
<p>{{'noItemsInList' | i18n}}</p>
|
2018-10-30 13:56:38 +01:00
|
|
|
<button (click)="addCipher()" class="btn block primary link">
|
2018-04-10 01:26:32 +02:00
|
|
|
{{'addItem' | i18n}}
|
|
|
|
</button>
|
|
|
|
</ng-container>
|
|
|
|
</div>
|
2019-02-21 22:53:57 +01:00
|
|
|
<div class="box list only-list" *ngIf="filteredCiphers.length > 0" infiniteScroll [infiniteScrollDistance]="1"
|
|
|
|
[infiniteScrollContainer]="'content'" [fromRoot]="true" [infiniteScrollDisabled]="!isPaging()"
|
|
|
|
(scrolled)="loadMore()">
|
2018-04-05 21:35:56 +02:00
|
|
|
<div class="box-header">
|
2018-04-09 20:45:35 +02:00
|
|
|
{{groupingTitle}}
|
2018-04-11 16:23:12 +02:00
|
|
|
<span class="flex-right">{{isSearching() ? filteredCiphers.length : ciphers.length}}</span>
|
2018-04-05 21:35:56 +02:00
|
|
|
</div>
|
|
|
|
<div class="box-content">
|
2018-04-11 16:23:12 +02:00
|
|
|
<app-ciphers-list [ciphers]="filteredCiphers" title="{{'viewItem' | i18n}}"
|
2019-02-21 22:53:57 +01:00
|
|
|
(onSelected)="selectCipher($event)" (onDoubleSelected)="launchCipher($event)"></app-ciphers-list>
|
2018-04-05 21:35:56 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</ng-container>
|
|
|
|
</content>
|