Merge pull request #2223 from patrickhlauke/patrickhlauke-issue1987
A11y: use appropriate HTML heading markup for headings
This commit is contained in:
commit
09e3db24b7
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/home">{{'close' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'appName' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'save' | i18n}}</span>
|
||||
|
@ -15,9 +15,9 @@
|
|||
</header>
|
||||
<content>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'selfHostedEnvironment' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row" appBoxRow>
|
||||
<label for="baseUrl">{{'baseUrl' | i18n}}</label>
|
||||
|
@ -30,9 +30,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'customEnvironment' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content" [hidden]="!showCustom">
|
||||
<div class="box-content-row" appBoxRow>
|
||||
<label for="webVaultUrl">{{'webVaultUrl' | i18n}}</label>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/login">{{'cancel' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'passwordHint' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'submit' | i18n}}</span>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<form (ngSubmit)="submit()">
|
||||
<header>
|
||||
<div class="left"></div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'verifyIdentity' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick *ngIf="!hideInput">{{'unlock' | i18n}}</button>
|
||||
</div>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/home">{{'cancel' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'appName' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'login' | i18n}}</span>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/home">{{'cancel' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'createAccount' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'submit' | i18n}}</span>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/home">{{'cancel' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'setMasterPassword' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'submit' | i18n}}</span>
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/2fa">{{'close' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'twoStepOptions' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right"></div>
|
||||
</header>
|
||||
<content>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/login">{{'back' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{title}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading" *ngIf="selectedProviderType != null && selectedProviderType !== providerType.Duo &&
|
||||
selectedProviderType !== providerType.OrganizationDuo &&
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a (click)="logOut()">{{'logOut' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'updateMasterPassword' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'submit' | i18n}}</span>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<form class="modal-content" #form (ngSubmit)="submit()">
|
||||
<div class="modal-body">
|
||||
<div class="box">
|
||||
<div class="box-header">{{'passwordConfirmation' | i18n}}</div>
|
||||
<h1 class="box-header">{{'passwordConfirmation' | i18n}}</h1>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row box-content-row-flex" appBoxRow>
|
||||
<div class="row-main">
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'passwordHistory' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="button" appBlurClick type="button" (click)="clear()">
|
||||
{{'clear' | i18n}}
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<app-pop-out [show]="!showSelect"></app-pop-out>
|
||||
<button type="button" appBlurClick (click)="close()" *ngIf="showSelect">{{'cancel' | i18n}}</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'passGen' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="button" appBlurClick (click)="select()" *ngIf="showSelect">{{'select' | i18n}}</button>
|
||||
</div>
|
||||
|
@ -34,9 +34,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'options' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row">
|
||||
<label class="sr-only radio-header">{{'type' | i18n}}</label>
|
||||
|
|
|
@ -43,10 +43,8 @@ body {
|
|||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: $font-family-sans-serif;
|
||||
|
||||
@include themify($themes) {
|
||||
color: themed('textColor');
|
||||
}
|
||||
font-size: $font-size-base;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
p {
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<button type="button" appBlurClick (click)="cancel()">{{'cancel' | i18n}}</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{title}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading || disableSend">
|
||||
<span [hidden]="form.loading">{{'save' | i18n}}</span>
|
||||
|
@ -96,9 +96,9 @@
|
|||
</div>
|
||||
<!-- Share -->
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'share' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<!-- Copy Link on Save -->
|
||||
<div class="box-content-row box-content-row-checkbox" appBoxRow>
|
||||
|
@ -110,11 +110,11 @@
|
|||
</div>
|
||||
<!-- Options -->
|
||||
<div class="box">
|
||||
<div class="box-header-expandable" (click)="showOptions = !showOptions">
|
||||
<h2 class="box-header-expandable" (click)="showOptions = !showOptions">
|
||||
{{'options' | i18n}}
|
||||
<i *ngIf="!showOptions" class="fa fa-chevron-down fa-sm icon"></i>
|
||||
<i *ngIf="showOptions" class="fa fa-chevron-up fa-sm icon"></i>
|
||||
</div>
|
||||
</h2>
|
||||
</div>
|
||||
<div [hidden]="!showOptions">
|
||||
<app-send-efflux-dates
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<div class="left" *ngIf="showLeftHeader">
|
||||
<app-pop-out></app-pop-out>
|
||||
</div>
|
||||
<h1 class="sr-only">{{'send' | i18n}}</h1>
|
||||
<div class="search">
|
||||
<input type="search" placeholder="{{'searchSends' | i18n}}" id="search" [(ngModel)]="searchText"
|
||||
(input)="search(200)" autocomplete="off" appAutofocus>
|
||||
|
@ -28,9 +29,9 @@
|
|||
</div>
|
||||
<ng-container *ngIf="sends && sends.length && !showSearching()">
|
||||
<div class="box list">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'types' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content single-line">
|
||||
<button type="button" class="box-content-row" appStopClick appBlurClick (click)="selectType(sendType.Text)">
|
||||
<div class="row-main">
|
||||
|
@ -51,10 +52,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'allSends' | i18n}}
|
||||
<div class="flex-right">{{sends.length}}</div>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<app-send-list [sends]="sends" title="{{'editItem' | i18n}}" [disabledByPolicy]="disableSend"
|
||||
(onSelected)="selectSend($event)" (onCopySendLink)="copy($event)"
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</button>
|
||||
</div>
|
||||
<h1 class="sr-only">{{'send' | i18n}}</h1>
|
||||
<div class="search">
|
||||
<input type="search" placeholder="{{'searchType' | i18n}}" id="search" [(ngModel)]="searchText"
|
||||
(input)="search(200)" autocomplete="off" appAutofocus>
|
||||
|
@ -30,10 +31,10 @@
|
|||
</ng-container>
|
||||
</div>
|
||||
<div class="box list only-list" *ngIf="filteredSends.length">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{groupingTitle}}
|
||||
<span class="flex-right">{{filteredSends.length}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<app-send-list [sends]="filteredSends" title="{{'editItem' | i18n}}" [disabledByPolicy]="disableSend"
|
||||
(onSelected)="selectSend($event)" (onCopySendLink)="copy($event)"
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/tabs/settings">{{'cancel' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'excludedDomains' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick>{{'save' | i18n}}</button>
|
||||
</div>
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'exportVault' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button appBlurClick type="submit" [disabled]="!exportForm.enabled">{{'submit' | i18n}}</button>
|
||||
</div>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<a routerLink="/folders">{{'cancel' | i18n}}</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{title}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'save' | i18n}}</span>
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'folders' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="button" appBlurClick (click)="addFolder()" appA11yTitle="{{'addFolder' | i18n}}">
|
||||
<i class="fa fa-plus fa-lg fa-fw" aria-hidden="true"></i>
|
||||
|
|
|
@ -5,18 +5,18 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'options' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right"></div>
|
||||
</header>
|
||||
<content>
|
||||
<div class="box">
|
||||
<div class="box-header-expandable" (click)="showGeneral = !showGeneral">
|
||||
<h2 class="box-header-expandable" (click)="showGeneral = !showGeneral">
|
||||
General
|
||||
<i *ngIf="!showGeneral" class="fa fa-chevron-down fa-sm icon"></i>
|
||||
<i *ngIf="showGeneral" class="fa fa-chevron-up fa-sm icon"></i>
|
||||
</div>
|
||||
</h2>
|
||||
</div>
|
||||
<ng-container *ngIf="showGeneral">
|
||||
<div class="box">
|
||||
|
@ -84,11 +84,11 @@
|
|||
</div>
|
||||
</ng-container>
|
||||
<div class="box box-section-divider">
|
||||
<div class="box-header-expandable" (click)="showDisplay = !showDisplay">
|
||||
<h2 class="box-header-expandable" (click)="showDisplay = !showDisplay">
|
||||
Display
|
||||
<i *ngIf="!showDisplay" class="fa fa-chevron-down fa-sm icon"></i>
|
||||
<i *ngIf="showDisplay" class="fa fa-chevron-up fa-sm icon"></i>
|
||||
</div>
|
||||
</h2>
|
||||
</div>
|
||||
<ng-container *ngIf="showDisplay">
|
||||
<div class="box">
|
||||
|
@ -141,11 +141,11 @@
|
|||
</div>
|
||||
</ng-container>
|
||||
<div class="box box-section-divider">
|
||||
<div class="box-header-expandable" (click)="showAutofill = !showAutofill">
|
||||
<h2 class="box-header-expandable" (click)="showAutofill = !showAutofill">
|
||||
Autofill
|
||||
<i *ngIf="!showAutofill" class="fa fa-chevron-down fa-sm icon"></i>
|
||||
<i *ngIf="showAutofill" class="fa fa-chevron-up fa-sm icon"></i>
|
||||
</div>
|
||||
</h2>
|
||||
</div>
|
||||
<ng-container *ngIf="showAutofill">
|
||||
<div class="box">
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'premiumMembership' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right"></div>
|
||||
</header>
|
||||
<content>
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
<div class="left">
|
||||
<app-pop-out></app-pop-out>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'settings' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right"></div>
|
||||
</header>
|
||||
<content>
|
||||
<div class="box list">
|
||||
<div class="box-header">{{'manage' | i18n}}</div>
|
||||
<h2 class="box-header">{{'manage' | i18n}}</h2>
|
||||
<div class="box-content single-line">
|
||||
<a class="box-content-row box-content-row-flex text-default" routerLink="/folders">
|
||||
<div class="row-main">{{'folders' | i18n}}</div>
|
||||
|
@ -26,7 +26,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list">
|
||||
<div class="box-header">{{'security' | i18n}}</div>
|
||||
<h2 class="box-header">{{'security' | i18n}}</h2>
|
||||
<div class="box-content single-line">
|
||||
<app-vault-timeout-input [vaultTimeouts]="vaultTimeouts" [formControl]="vaultTimeout" ngDefaultControl></app-vault-timeout-input>
|
||||
<div class="box-content-row display-block" appBoxRow>
|
||||
|
@ -61,7 +61,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list">
|
||||
<div class="box-header">{{'account' | i18n}}</div>
|
||||
<h2 class="box-header">{{'account' | i18n}}</h2>
|
||||
<div class="box-content single-line">
|
||||
<a class="box-content-row" routerLink="/premium">
|
||||
<div class="row-main">
|
||||
|
@ -88,7 +88,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list">
|
||||
<div class="box-header">{{'tools' | i18n}}</div>
|
||||
<h2 class="box-header">{{'tools' | i18n}}</h2>
|
||||
<div class="box-content single-line">
|
||||
<button type="button" class="box-content-row box-content-row-flex text-default" appStopClick appBlurClick
|
||||
(click)="import()">
|
||||
|
@ -108,7 +108,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list">
|
||||
<div class="box-header">{{'other' | i18n}}</div>
|
||||
<h2 class="box-header">{{'other' | i18n}}</h2>
|
||||
<div class="box-content single-line">
|
||||
<a class="box-content-row box-content-row-flex text-default" routerLink="/options">
|
||||
<div class="row-main">{{'options' | i18n}}</div>
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'sync' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right"></div>
|
||||
</header>
|
||||
<content>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'customFields' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<!-- Current custom fields -->
|
||||
<div cdkDropList (cdkDropListDropped)="drop($event)" *ngIf="cipher.hasFields">
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<button type="button" appBlurClick (click)="cancel()">{{'cancel' | i18n}}</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{title}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'save' | i18n}}</span>
|
||||
|
@ -18,9 +18,9 @@
|
|||
{{'personalOwnershipPolicyInEffect' | i18n}}
|
||||
</app-callout>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'itemInformation' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row" *ngIf="!editMode" appBoxRow>
|
||||
<label for="type">{{'type' | i18n}}</label>
|
||||
|
@ -314,9 +314,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
<label for="notes">{{'notes' | i18n}}</label>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row" appBoxRow>
|
||||
<textarea id="notes" name="Notes" rows="6" [(ngModel)]="cipher.notes"></textarea>
|
||||
|
@ -326,9 +326,9 @@
|
|||
<app-vault-add-edit-custom-fields [cipher]="cipher" [thisCipherType]="cipher.type" [editMode]="editMode">
|
||||
</app-vault-add-edit-custom-fields>
|
||||
<div class="box" *ngIf="allowOwnershipOptions()">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'ownership' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row" appBoxRow>
|
||||
<label for="organizationId">{{'whoOwnsThisItem' | i18n}}</label>
|
||||
|
@ -340,9 +340,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box" *ngIf="(!editMode || cloneMode )&& cipher.organizationId">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'collections' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content" *ngIf="!collections || !collections.length">
|
||||
<div class="box-content-row padded no-hover">
|
||||
{{'noCollectionsInList' | i18n}}
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'attachments' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'save' | i18n}}</span>
|
||||
|
@ -40,9 +40,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'newAttachment' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content no-hover">
|
||||
<div class="box-content-row">
|
||||
<label for="file">{{'file' | i18n}}</label>
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</button>
|
||||
</div>
|
||||
<h1 class="sr-only">{{'myVault' | i18n}}</h1>
|
||||
<div class="search">
|
||||
<input type="{{searchTypeSearch ? 'search' : 'text'}}"
|
||||
placeholder="{{searchPlaceholder || ('searchVault' | i18n)}}" id="search" [(ngModel)]="searchText"
|
||||
|
@ -20,9 +21,9 @@
|
|||
<content [ngClass]="{'stacked-boxes': showGroupings()}">
|
||||
<ng-container *ngIf="showGroupings()">
|
||||
<div class="box list" *ngIf="nestedFolders && nestedFolders.length">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'folders' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content single-line">
|
||||
<button type="button" *ngFor="let f of nestedFolders" class="box-content-row" appStopClick appBlurClick
|
||||
(click)="selectFolder(f.node)">
|
||||
|
@ -38,9 +39,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list" *ngIf="nestedCollections && nestedCollections.length">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'collections' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content single-line">
|
||||
<button type="button" *ngFor="let c of nestedCollections" class="box-content-row" appStopClick appBlurClick
|
||||
(click)="selectCollection(c.node)">
|
||||
|
@ -66,10 +67,10 @@
|
|||
<cdk-virtual-scroll-viewport itemSize="46" minBufferPx="400" maxBufferPx="600" *ngIf="ciphers.length"
|
||||
#virtualScrollViewport>
|
||||
<div class="box list only-list">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{groupingTitle}}
|
||||
<span class="flex-right">{{isSearching() ? ciphers.length : ciphers.length}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<app-cipher-row *cdkVirtualFor="let c of ciphers" [cipher]="c" title="{{'viewItem' | i18n}}"
|
||||
(onSelected)="selectCipher($event)" (launchEvent)="launchCipher($event)"></app-cipher-row>
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
<span>{{'back' | i18n}}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'collections' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading">
|
||||
<span [hidden]="form.loading">{{'save' | i18n}}</span>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<header>
|
||||
<h1 class="sr-only">{{'currentTab' | i18n}}</h1>
|
||||
<div class="left">
|
||||
<app-pop-out [show]="!inSidebar"></app-pop-out>
|
||||
<button type="button" appBlurClick (click)="refresh()" appA11yTitle="{{'refresh' | i18n}}" *ngIf="inSidebar">
|
||||
|
@ -22,10 +23,10 @@
|
|||
</div>
|
||||
<ng-container *ngIf="loaded">
|
||||
<div class="box list" *ngIf="loginCiphers">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'typeLogins' | i18n}}
|
||||
<span class="flex-right">{{loginCiphers.length}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<app-cipher-row *ngFor="let loginCipher of loginCiphers" [cipher]="loginCipher"
|
||||
title="{{'autoFill' | i18n}}" [showView]="true" (onSelected)="fillCipher($event)"
|
||||
|
@ -40,20 +41,20 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list" *ngIf="cardCiphers && cardCiphers.length">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'cards' | i18n}}
|
||||
<span class="flex-right">{{cardCiphers.length}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<app-cipher-row *ngFor="let cardCipher of cardCiphers" [cipher]="cardCipher" title="{{'autoFill' | i18n}}" [showView]="true"
|
||||
(onSelected)="fillCipher($event)" (onView)="viewCipher($event)"></app-cipher-row>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box list" *ngIf="identityCiphers && identityCiphers.length">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'identities' | i18n}}
|
||||
<span class="flex-right">{{identityCiphers.length}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<app-cipher-row *ngFor="let identityCipher of identityCiphers" [cipher]="identityCipher" title="{{'autoFill' | i18n}}" [showView]="true"
|
||||
(onSelected)="fillCipher($event)" (onView)="viewCipher($event)"></app-cipher-row>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<div class="left">
|
||||
<app-pop-out></app-pop-out>
|
||||
</div>
|
||||
<h1 class="sr-only">{{'myVault' | i18n}}</h1>
|
||||
<div class="search">
|
||||
<input type="{{searchTypeSearch ? 'search' : 'text'}}" placeholder="{{'searchVault' | i18n}}" id="search"
|
||||
[(ngModel)]="searchText" (input)="search(200)" autocomplete="off" appAutofocus (keydown)="closeOnEsc($event)">
|
||||
|
@ -24,10 +25,10 @@
|
|||
</div>
|
||||
<ng-container *ngIf="ciphers && ciphers.length && !showSearching()">
|
||||
<div class="box list" *ngIf="favoriteCiphers">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'favorites' | i18n}}
|
||||
<span class="flex-right">{{favoriteCiphers.length}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<app-cipher-row *ngFor="let favoriteCipher of favoriteCiphers" [cipher]="favoriteCipher"
|
||||
title="{{'viewItem' | i18n}}" (onSelected)="selectCipher($event)"
|
||||
|
@ -35,10 +36,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'types' | i18n}}
|
||||
<span class="flex-right">4</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content single-line">
|
||||
<button type="button" class="box-content-row" appStopClick appBlurClick (click)="selectType(cipherType.Login)">
|
||||
<div class="row-main">
|
||||
|
@ -76,10 +77,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list" *ngIf="nestedFolders?.length">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'folders' | i18n}}
|
||||
<span class="flex-right">{{folderCount}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content single-line">
|
||||
<button type="button" *ngFor="let f of nestedFolders" class="box-content-row" appStopClick appBlurClick
|
||||
(click)="selectFolder(f.node)">
|
||||
|
@ -96,10 +97,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list" *ngIf="nestedCollections && nestedCollections.length">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'collections' | i18n}}
|
||||
<span class="flex-right">{{nestedCollections.length}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content single-line">
|
||||
<button type="button" *ngFor="let nestedCollection of nestedCollections" class="box-content-row"
|
||||
appStopClick appBlurClick (click)="selectCollection(nestedCollection.node)">
|
||||
|
@ -113,10 +114,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list" *ngIf="showNoFolderCiphers">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'noneFolder' | i18n}}
|
||||
<div class="flex-right">{{noFolderCiphers.length}}</div>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<app-cipher-row *ngFor="let noFolderCipher of noFolderCiphers" [cipher]="noFolderCipher"
|
||||
title="{{'viewItem' | i18n}}" (onSelected)="selectCipher($event)"
|
||||
|
@ -124,10 +125,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box list" *ngIf="deletedCount">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'trash' | i18n}}
|
||||
<span class="flex-right">{{deletedCount}}</span>
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content single-line">
|
||||
<button type="button" class="box-content-row" appStopClick appBlurClick
|
||||
(click)="selectTrash()">
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
<div class="left">
|
||||
<button type="button" appBlurClick (click)="close()">{{'close' | i18n}}</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'passwordHistory' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right"></div>
|
||||
</header>
|
||||
<content>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<div class="left">
|
||||
<button type="button" appBlurClick (click)="cancel()">{{'cancel' | i18n}}</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'moveToOrganization' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right">
|
||||
<button type="submit" appBlurClick [disabled]="form.loading || !canSave"
|
||||
*ngIf="organizations && organizations.length">
|
||||
|
@ -35,9 +35,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box" *ngIf="organizations && organizations.length">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'collections' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content" *ngIf="!collections || !collections.length">
|
||||
<div class="box-content-row padded no-hover">
|
||||
{{'noCollectionsInList' | i18n}}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<ng-container>
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'customFields' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row box-content-row-flex" *ngFor="let field of cipher.fields">
|
||||
<div class="row-main">
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
<div class="left">
|
||||
<button type="button" appBlurClick (click)="close()">{{'close' | i18n}}</button>
|
||||
</div>
|
||||
<div class="center">
|
||||
<h1 class="center">
|
||||
<span class="title">{{'viewItem' | i18n}}</span>
|
||||
</div>
|
||||
</h1>
|
||||
<div class="right" *ngIf="cipher">
|
||||
<button type="button" appBlurClick (click)="edit()" *ngIf="!cipher.isDeleted">{{'edit' | i18n}}</button>
|
||||
</div>
|
||||
</header>
|
||||
<content *ngIf="cipher">
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'itemInformation' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row">
|
||||
<span class="row-label">{{'name' | i18n}}</span>
|
||||
|
@ -211,9 +211,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="box" *ngIf="cipher.notes">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'notes' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<div class="box-content-row">
|
||||
<textarea [value]="cipher.notes" rows="6" readonly aria-readonly="true"></textarea>
|
||||
|
@ -225,9 +225,9 @@
|
|||
[copy]="copy.bind(this)"></app-vault-view-custom-fields>
|
||||
</div>
|
||||
<div class="box" *ngIf="cipher.hasAttachments && (canAccessPremium || cipher.organizationId) && showAttachments">
|
||||
<div class="box-header">
|
||||
<h2 class="box-header">
|
||||
{{'attachments' | i18n}}
|
||||
</div>
|
||||
</h2>
|
||||
<div class="box-content">
|
||||
<button type="button" class="box-content-row box-content-row-flex text-default" *ngFor="let attachment of cipher.attachments"
|
||||
appStopClick appBlurCLick (click)="downloadAttachment(attachment)">
|
||||
|
|
Loading…
Reference in New Issue