1
0
mirror of https://github.com/bitwarden/browser.git synced 2025-02-18 01:41:27 +01:00

[Icons] Update Font Sheet (#1343)

* [Icons] Update to new font sheet

* Rebased - updated all icon remaining icon references

* Temporarily Updating gitmodules branch

* Fixed class reference

* Revert temporary gitmodule branch

* Icon updates/changes

* Pull jslib m-icon-updates latest

* Prettier

* Update jslib to master

* Reset jslib to master

* Removed obsolete variable reference, replaced bolt references

* Removed all instances of base class - maps create automatically

* Updated toast icon references

* Imported styles to reference variable/map

* Reverted to using base class

* Update jslib

* Rename eye-2 to eye and eye-slash-2 to eye-slash

* Bump jslib

* Remove duplicate scss

* Remove old fa

* Update fallback image

* Bump jslib

* Rename eye-2 to eye, and eye-slash-2 to eye-slash

* Fix 404

* Fix integrity of bootstrap.min.css

* Fix callout missing bwi

* Add bwi to change-kdf

* Remove bwi from callout again

* Bump jslib

Co-authored-by: Hinton <oscar@oscarhinton.com>
This commit is contained in:
Vincent Salucci 2022-01-27 11:25:58 -06:00 committed by GitHub
parent f0c47252e4
commit 2ae98887b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
148 changed files with 784 additions and 677 deletions

View File

@ -3,7 +3,11 @@
</div> </div>
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
@ -69,7 +73,7 @@
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
href="https://bitwarden.com/help/article/about-key-connector/" href="https://bitwarden.com/help/article/about-key-connector/"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
<small>{{ "memberDecryptionKeyConnectorDesc" | i18n }}</small> <small>{{ "memberDecryptionKeyConnectorDesc" | i18n }}</small>
</label> </label>
@ -98,7 +102,7 @@
[disabled]="!enableTestKeyConnector" [disabled]="!enableTestKeyConnector"
> >
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
*ngIf="keyConnectorUrl.pending" *ngIf="keyConnectorUrl.pending"
@ -111,11 +115,11 @@
</div> </div>
<ng-container *ngIf="keyConnectorUrl.pristine && !keyConnectorUrl.pending"> <ng-container *ngIf="keyConnectorUrl.pristine && !keyConnectorUrl.pending">
<div class="text-danger" *ngIf="keyConnectorUrl.hasError('invalidUrl')" role="alert"> <div class="text-danger" *ngIf="keyConnectorUrl.hasError('invalidUrl')" role="alert">
<i class="fa fa-exclamation-circle" aria-hidden="true"></i> <i class="bwi bwi-exclamation-circle" aria-hidden="true"></i>
{{ "keyConnectorTestFail" | i18n }} {{ "keyConnectorTestFail" | i18n }}
</div> </div>
<div class="text-success" *ngIf="!keyConnectorUrl.hasError('invalidUrl')" role="alert"> <div class="text-success" *ngIf="!keyConnectorUrl.hasError('invalidUrl')" role="alert">
<i class="fa fa-check-circle-o" aria-hidden="true"></i> <i class="bwi bwi-check-circle" aria-hidden="true"></i>
{{ "keyConnectorTestSuccess" | i18n }} {{ "keyConnectorTestSuccess" | i18n }}
</div> </div>
</ng-container> </ng-container>
@ -146,7 +150,7 @@
appA11yTitle="{{ 'copyValue' | i18n }}" appA11yTitle="{{ 'copyValue' | i18n }}"
(click)="copy(callbackPath)" (click)="copy(callbackPath)"
> >
<i class="fa fa-lg fa-clone" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-clone" aria-hidden="true"></i>
</button> </button>
</div> </div>
</div> </div>
@ -162,7 +166,7 @@
appA11yTitle="{{ 'copyValue' | i18n }}" appA11yTitle="{{ 'copyValue' | i18n }}"
(click)="copy(signedOutCallbackPath)" (click)="copy(signedOutCallbackPath)"
> >
<i class="fa fa-lg fa-clone" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-clone" aria-hidden="true"></i>
</button> </button>
</div> </div>
</div> </div>
@ -261,7 +265,7 @@
appA11yTitle="{{ 'copyValue' | i18n }}" appA11yTitle="{{ 'copyValue' | i18n }}"
(click)="copy(spEntityId)" (click)="copy(spEntityId)"
> >
<i class="fa fa-lg fa-clone" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-clone" aria-hidden="true"></i>
</button> </button>
</div> </div>
</div> </div>
@ -277,7 +281,7 @@
appA11yTitle="{{ 'launch' | i18n }}" appA11yTitle="{{ 'launch' | i18n }}"
(click)="launchUri(spMetadataUrl)" (click)="launchUri(spMetadataUrl)"
> >
<i class="fa fa-lg fa-external-link" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-external-link" aria-hidden="true"></i>
</button> </button>
<button <button
type="button" type="button"
@ -285,7 +289,7 @@
appA11yTitle="{{ 'copyValue' | i18n }}" appA11yTitle="{{ 'copyValue' | i18n }}"
(click)="copy(spMetadataUrl)" (click)="copy(spMetadataUrl)"
> >
<i class="fa fa-lg fa-clone" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-clone" aria-hidden="true"></i>
</button> </button>
</div> </div>
</div> </div>
@ -301,7 +305,7 @@
appA11yTitle="{{ 'copyValue' | i18n }}" appA11yTitle="{{ 'copyValue' | i18n }}"
(click)="copy(spAcsUrl)" (click)="copy(spAcsUrl)"
> >
<i class="fa fa-lg fa-clone" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-clone" aria-hidden="true"></i>
</button> </button>
</div> </div>
</div> </div>
@ -482,7 +486,7 @@
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
</form> </form>

View File

@ -16,7 +16,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="card-body text-center" *ngIf="loading"> <div class="card-body text-center" *ngIf="loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
{{ "loading" | i18n }} {{ "loading" | i18n }}
</div> </div>
<ng-container *ngIf="!loading"> <ng-container *ngIf="!loading">

View File

@ -13,7 +13,7 @@
/> />
</div> </div>
<a class="btn btn-sm btn-outline-primary ml-3" routerLink="create" *ngIf="manageOrganizations"> <a class="btn btn-sm btn-outline-primary ml-3" routerLink="create" *ngIf="manageOrganizations">
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "newClientOrganization" | i18n }} {{ "newClientOrganization" | i18n }}
</a> </a>
<button <button
@ -21,14 +21,18 @@
(click)="addExistingOrganization()" (click)="addExistingOrganization()"
*ngIf="manageOrganizations && showAddExisting" *ngIf="manageOrganizations && showAddExisting"
> >
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "addExistingOrganization" | i18n }} {{ "addExistingOrganization" | i18n }}
</button> </button>
</div> </div>
</div> </div>
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
@ -67,11 +71,11 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(o)"> <a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(o)">
<i class="fa fa-fw fa-remove" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-close" aria-hidden="true"></i>
{{ "remove" | i18n }} {{ "remove" | i18n }}
</a> </a>
</div> </div>

View File

@ -3,7 +3,7 @@
<img class="mb-4 logo logo-themed" alt="Bitwarden" /> <img class="mb-4 logo logo-themed" alt="Bitwarden" />
<p class="text-center"> <p class="text-center">
<i <i
class="fa fa-spinner fa-spin fa-2x text-muted" class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -32,9 +32,9 @@
[disabled]="loaded && refreshForm.loading" [disabled]="loaded && refreshForm.loading"
> >
<i <i
class="fa fa-refresh fa-fw" class="bwi bwi-refresh bwi-fw"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-spin': loaded && refreshForm.loading }" [ngClass]="{ 'bwi-spin': loaded && refreshForm.loading }"
></i> ></i>
{{ "refresh" | i18n }} {{ "refresh" | i18n }}
</button> </button>
@ -47,14 +47,18 @@
(click)="exportEvents()" (click)="exportEvents()"
[disabled]="(loaded && exportForm.loading) || dirtyDates" [disabled]="(loaded && exportForm.loading) || dirtyDates"
> >
<i class="fa fa-spinner fa-spin" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" aria-hidden="true"></i>
<span>{{ "export" | i18n }}</span> <span>{{ "export" | i18n }}</span>
</button> </button>
</form> </form>
</div> </div>
</div> </div>
<ng-container *ngIf="!loaded"> <ng-container *ngIf="!loaded">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<ng-container *ngIf="loaded"> <ng-container *ngIf="loaded">
@ -75,7 +79,7 @@
<td>{{ e.date | date: "medium" }}</td> <td>{{ e.date | date: "medium" }}</td>
<td> <td>
<i <i
class="text-muted fa fa-lg {{ e.appIcon }}" class="text-muted bwi bwi-lg {{ e.appIcon }}"
title="{{ e.appName }}, {{ e.ip }}" title="{{ e.appName }}, {{ e.ip }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -97,7 +101,7 @@
[disabled]="loaded && moreBtn.loading" [disabled]="loaded && moreBtn.loading"
*ngIf="continuationToken" *ngIf="continuationToken"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "loadMore" | i18n }}</span> <span>{{ "loadMore" | i18n }}</span>
</button> </button>
</ng-container> </ng-container>

View File

@ -52,11 +52,11 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog" aria-hidden="true"></i> <i class="bwi bwi-cog" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="bulkActionsButton"> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="bulkActionsButton">
<button class="dropdown-item" appStopClick (click)="bulkReinvite()"> <button class="dropdown-item" appStopClick (click)="bulkReinvite()">
<i class="fa fa-fw fa-envelope-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-envelope" aria-hidden="true"></i>
{{ "reinviteSelected" | i18n }} {{ "reinviteSelected" | i18n }}
</button> </button>
<button <button
@ -65,32 +65,36 @@
(click)="bulkConfirm()" (click)="bulkConfirm()"
*ngIf="showBulkConfirmUsers" *ngIf="showBulkConfirmUsers"
> >
<i class="fa fa-fw fa-check" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-check" aria-hidden="true"></i>
{{ "confirmSelected" | i18n }} {{ "confirmSelected" | i18n }}
</button> </button>
<button class="dropdown-item text-danger" appStopClick (click)="bulkRemove()"> <button class="dropdown-item text-danger" appStopClick (click)="bulkRemove()">
<i class="fa fa-fw fa-remove" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-close" aria-hidden="true"></i>
{{ "remove" | i18n }} {{ "remove" | i18n }}
</button> </button>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<button class="dropdown-item" appStopClick (click)="selectAll(true)"> <button class="dropdown-item" appStopClick (click)="selectAll(true)">
<i class="fa fa-fw fa-check-square-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-check-square" aria-hidden="true"></i>
{{ "selectAll" | i18n }} {{ "selectAll" | i18n }}
</button> </button>
<button class="dropdown-item" appStopClick (click)="selectAll(false)"> <button class="dropdown-item" appStopClick (click)="selectAll(false)">
<i class="fa fa-fw fa-minus-square-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-minus-square" aria-hidden="true"></i>
{{ "unselectAll" | i18n }} {{ "unselectAll" | i18n }}
</button> </button>
</div> </div>
</div> </div>
<button type="button" class="btn btn-sm btn-outline-primary ml-3" (click)="invite()"> <button type="button" class="btn btn-sm btn-outline-primary ml-3" (click)="invite()">
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "inviteUser" | i18n }} {{ "inviteUser" | i18n }}
</button> </button>
</div> </div>
</div> </div>
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<ng-container <ng-container
@ -104,7 +108,7 @@
<app-callout <app-callout
type="info" type="info"
title="{{ 'confirmUsers' | i18n }}" title="{{ 'confirmUsers' | i18n }}"
icon="fa-check-circle" icon="bwi bwi-check-circle"
*ngIf="showConfirmUsers" *ngIf="showConfirmUsers"
> >
{{ "providerUsersNeedConfirmed" | i18n }} {{ "providerUsersNeedConfirmed" | i18n }}
@ -128,7 +132,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
<a href="#" appStopClick (click)="edit(u)">{{ u.email }}</a> <a href="#" appStopClick (click)="edit(u)">{{ u.email }}</a>
@ -142,7 +147,11 @@
</td> </td>
<td> <td>
<ng-container *ngIf="u.twoFactorEnabled"> <ng-container *ngIf="u.twoFactorEnabled">
<i class="fa fa-lock" title="{{ 'userUsingTwoStep' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-lock"
title="{{ 'userUsingTwoStep' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "userUsingTwoStep" | i18n }}</span> <span class="sr-only">{{ "userUsingTwoStep" | i18n }}</span>
</ng-container> </ng-container>
</td> </td>
@ -161,7 +170,7 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a <a
@ -171,7 +180,7 @@
(click)="reinvite(u)" (click)="reinvite(u)"
*ngIf="u.status === userStatusType.Invited" *ngIf="u.status === userStatusType.Invited"
> >
<i class="fa fa-fw fa-envelope-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-envelope" aria-hidden="true"></i>
{{ "resendInvitation" | i18n }} {{ "resendInvitation" | i18n }}
</a> </a>
<a <a
@ -181,7 +190,7 @@
(click)="confirm(u)" (click)="confirm(u)"
*ngIf="u.status === userStatusType.Accepted" *ngIf="u.status === userStatusType.Accepted"
> >
<i class="fa fa-fw fa-check" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-check" aria-hidden="true"></i>
{{ "confirm" | i18n }} {{ "confirm" | i18n }}
</a> </a>
<a <a
@ -191,7 +200,7 @@
(click)="groups(u)" (click)="groups(u)"
*ngIf="accessGroups" *ngIf="accessGroups"
> >
<i class="fa fa-fw fa-sitemap" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-sitemap" aria-hidden="true"></i>
{{ "groups" | i18n }} {{ "groups" | i18n }}
</a> </a>
<a <a
@ -201,11 +210,11 @@
(click)="events(u)" (click)="events(u)"
*ngIf="accessEvents && u.status === userStatusType.Confirmed" *ngIf="accessEvents && u.status === userStatusType.Confirmed"
> >
<i class="fa fa-fw fa-file-text-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-file-text" aria-hidden="true"></i>
{{ "eventLogs" | i18n }} {{ "eventLogs" | i18n }}
</a> </a>
<a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(u)"> <a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(u)">
<i class="fa fa-fw fa-remove" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-remove" aria-hidden="true"></i>
{{ "remove" | i18n }} {{ "remove" | i18n }}
</a> </a>
</div> </div>

View File

@ -23,7 +23,7 @@
</div> </div>
<div class="modal-body" *ngIf="loading"> <div class="modal-body" *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -54,7 +54,7 @@
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
href="https://bitwarden.com/help/article/user-types-access-control/#user-types" href="https://bitwarden.com/help/article/user-types-access-control/#user-types"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</h3> </h3>
<div class="form-check mt-2 form-check-block"> <div class="form-check mt-2 form-check-block">
@ -88,7 +88,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">
@ -106,12 +106,12 @@
[appApiAction]="deletePromise" [appApiAction]="deletePromise"
> >
<i <i
class="fa fa-trash-o fa-lg fa-fw" class="bwi bwi-trash bwi-lg bwi-fw"
[hidden]="deleteBtn.loading" [hidden]="deleteBtn.loading"
aria-hidden="true" aria-hidden="true"
></i> ></i>
<i <i
class="fa fa-spinner fa-spin fa-lg fa-fw" class="bwi bwi-spinner bwi-spin bwi-lg bwi-fw"
[hidden]="!deleteBtn.loading" [hidden]="!deleteBtn.loading"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"

View File

@ -10,7 +10,7 @@
</div> </div>
<div class="ml-3 card border-danger text-danger bg-transparent" *ngIf="!provider.enabled"> <div class="ml-3 card border-danger text-danger bg-transparent" *ngIf="!provider.enabled">
<div class="card-body py-2"> <div class="card-body py-2">
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <i class="bwi bwi-exclamation-triangle" aria-hidden="true"></i>
{{ "providerIsDisabled" | i18n }} {{ "providerIsDisabled" | i18n }}
</div> </div>
</div> </div>
@ -18,19 +18,19 @@
<ul class="nav nav-tabs" *ngIf="showMenuBar"> <ul class="nav nav-tabs" *ngIf="showMenuBar">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" routerLink="clients" routerLinkActive="active"> <a class="nav-link" routerLink="clients" routerLinkActive="active">
<i class="fa fa-university" aria-hidden="true"></i> <i class="bwi bwi-bank" aria-hidden="true"></i>
{{ "clients" | i18n }} {{ "clients" | i18n }}
</a> </a>
</li> </li>
<li class="nav-item" *ngIf="showManageTab"> <li class="nav-item" *ngIf="showManageTab">
<a class="nav-link" [routerLink]="manageRoute" routerLinkActive="active"> <a class="nav-link" [routerLink]="manageRoute" routerLinkActive="active">
<i class="fa fa-sliders" aria-hidden="true"></i> <i class="bwi bwi-sliders" aria-hidden="true"></i>
{{ "manage" | i18n }} {{ "manage" | i18n }}
</a> </a>
</li> </li>
<li class="nav-item" *ngIf="showSettingsTab"> <li class="nav-item" *ngIf="showSettingsTab">
<a class="nav-link" routerLink="settings" routerLinkActive="active"> <a class="nav-link" routerLink="settings" routerLinkActive="active">
<i class="fa fa-cogs" aria-hidden="true"></i> <i class="bwi bwi-cogs" aria-hidden="true"></i>
{{ "settings" | i18n }} {{ "settings" | i18n }}
</a> </a>
</li> </li>

View File

@ -2,7 +2,11 @@
<h1>{{ "myProvider" | i18n }}</h1> <h1>{{ "myProvider" | i18n }}</h1>
</div> </div>
<div *ngIf="loading"> <div *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</div> </div>
<form <form
@ -42,7 +46,7 @@
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
</form> </form>

View File

@ -3,7 +3,7 @@
<img class="mb-4 logo logo-themed" alt="Bitwarden" /> <img class="mb-4 logo logo-themed" alt="Bitwarden" />
<p class="text-center"> <p class="text-center">
<i <i
class="fa fa-spinner fa-spin fa-2x text-muted" class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -27,7 +27,7 @@
<div class="mt-4"> <div class="mt-4">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" (click)="cancel()" *ngIf="showCancel"> <button type="button" class="btn btn-outline-secondary" (click)="cancel()" *ngIf="showCancel">

View File

@ -48,9 +48,7 @@ export class SetupComponent implements OnInit {
"error", "error",
null, null,
this.i18nService.t("emergencyInviteAcceptFailed"), this.i18nService.t("emergencyInviteAcceptFailed"),
{ { timeout: 10000 }
timeout: 10000,
}
); );
this.router.navigate(["/"]); this.router.navigate(["/"]);
return; return;

2
jslib

@ -1 +1 @@
Subproject commit 54c6a4b3c3d34fe6adbbeba5d35a416a3fbc487d Subproject commit 6b4ed5fcce58c21a9977d94ebb65f954d6766548

View File

@ -9,13 +9,7 @@
href="/404/bootstrap.min.css" href="/404/bootstrap.min.css"
rel="stylesheet" rel="stylesheet"
type="text/css" type="text/css"
integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" integrity="sha384-hA/ESrxp2b05ywLtD9YwM6m+pNyLRY4+ruk6dWK00SM4k6SQs0bfrITJVSf6uZyH"
/>
<link
href="/404/font-awesome.min.css"
rel="stylesheet"
type="text/css"
integrity="sha512-SfTiTlX6kk+qitfevl/7LibUOeJWlt9rbyDn92a1DqWOw9vWG2MFoays0sgObmWazO5BQPiFucnnEAjpAB+/Sw=="
/> />
<link href="/404/styles.css" rel="stylesheet" type="text/css" /> <link href="/404/styles.css" rel="stylesheet" type="text/css" />
@ -33,7 +27,9 @@
<div class="banner"> <div class="banner">
<div class="container inner banner"> <div class="container inner banner">
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col brand"><i class="fa fa-shield"></i>&nbsp; <strong>bit</strong>warden</div> <div class="col brand">
<i class="bwi bwi-shield"></i>&nbsp; <strong>bit</strong>warden
</div>
</div> </div>
</div> </div>
</div> </div>

File diff suppressed because one or more lines are too long

View File

@ -119,3 +119,33 @@ h2 {
padding: 40px 0 40px 0; padding: 40px 0 40px 0;
border-top: 1px solid #dee2e6; border-top: 1px solid #dee2e6;
} }
/* Bitwarden icons, manually copied */
@font-face {
font-family: "bwi-font";
src: url(../images/bwi-font.svg) format("svg"), url(../fonts/bwi-font.ttf) format("truetype"),
url(../fonts/bwi-font.woff) format("woff"), url(../fonts/bwi-font.woff2) format("woff2");
font-weight: normal;
font-style: normal;
font-display: block;
}
.bwi {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: "bwi-font" !important;
speak: never;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
display: inline-block;
/* Better Font Rendering */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.bwi-shield:before {
content: "\e932";
}

View File

@ -3,7 +3,7 @@
<img class="mb-4 logo logo-themed" alt="Bitwarden" /> <img class="mb-4 logo logo-themed" alt="Bitwarden" />
<p class="text-center"> <p class="text-center">
<i <i
class="fa fa-spinner fa-spin fa-2x text-muted" class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -3,7 +3,7 @@
<img src="../../images/logo-dark@2x.png" class="mb-4 logo" alt="Bitwarden" /> <img src="../../images/logo-dark@2x.png" class="mb-4 logo" alt="Bitwarden" />
<p class="text-center"> <p class="text-center">
<i <i
class="fa fa-spinner fa-spin fa-2x text-muted" class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -28,7 +28,7 @@
> >
<span [hidden]="form.loading">{{ "submit" | i18n }}</span> <span [hidden]="form.loading">{{ "submit" | i18n }}</span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -2,7 +2,7 @@
<div class="row justify-content-md-center mt-5"> <div class="row justify-content-md-center mt-5">
<div class="col-5"> <div class="col-5">
<p class="text-center mb-4"> <p class="text-center mb-4">
<i class="fa fa-lock fa-4x text-muted" aria-hidden="true"></i> <i class="bwi bwi-lock bwi-4x text-muted" aria-hidden="true"></i>
</p> </p>
<p class="lead text-center mx-4 mb-4">{{ "yourVaultIsLocked" | i18n }}</p> <p class="lead text-center mx-4 mb-4">{{ "yourVaultIsLocked" | i18n }}</p>
<div class="card d-block"> <div class="card d-block">
@ -27,9 +27,9 @@
(click)="togglePassword()" (click)="togglePassword()"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
</div> </div>
@ -44,11 +44,9 @@
class="btn btn-primary btn-block btn-submit" class="btn btn-primary btn-block btn-submit"
[disabled]="form.loading" [disabled]="form.loading"
> >
<span> <span> <i class="bwi bwi-unlock" aria-hidden="true"></i> {{ "unlock" | i18n }} </span>
<i class="fa fa-unlock-alt" aria-hidden="true"></i> {{ "unlock" | i18n }}
</span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -44,9 +44,9 @@
(click)="togglePassword()" (click)="togglePassword()"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
</div> </div>
@ -74,9 +74,9 @@
class="btn btn-primary btn-block btn-submit" class="btn btn-primary btn-block btn-submit"
[disabled]="form.loading" [disabled]="form.loading"
> >
<span> <i class="fa fa-sign-in" aria-hidden="true"></i> {{ "logIn" | i18n }} </span> <span> <i class="bwi bwi-sign-in" aria-hidden="true"></i> {{ "logIn" | i18n }} </span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -86,12 +86,13 @@
[queryParams]="{ email: email }" [queryParams]="{ email: email }"
class="btn btn-outline-secondary btn-block ml-2 mt-0" class="btn btn-outline-secondary btn-block ml-2 mt-0"
> >
<i class="fa fa-pencil-square-o" aria-hidden="true"></i> {{ "createAccount" | i18n }} <i class="bwi bwi-pencil-square-o" aria-hidden="true"></i>
{{ "createAccount" | i18n }}
</a> </a>
</div> </div>
<div class="d-flex"> <div class="d-flex">
<a routerLink="/sso" class="btn btn-outline-secondary btn-block mt-2"> <a routerLink="/sso" class="btn btn-outline-secondary btn-block mt-2">
<i class="fa fa-bank" aria-hidden="true"></i> {{ "enterpriseSingleSignOn" | i18n }} <i class="bwi bwi-bank" aria-hidden="true"></i> {{ "enterpriseSingleSignOn" | i18n }}
</a> </a>
</div> </div>
</div> </div>

View File

@ -28,7 +28,7 @@
> >
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -60,7 +60,7 @@
> >
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -51,7 +51,7 @@
<app-callout <app-callout
title="{{ 'createOrganizationStep1' | i18n }}" title="{{ 'createOrganizationStep1' | i18n }}"
type="info" type="info"
icon="fa-thumb-tack" icon="bwi bwi-thumb-tack"
*ngIf="showCreateOrgMessage" *ngIf="showCreateOrgMessage"
> >
{{ "createOrganizationCreatePersonalAccount" | i18n }} {{ "createOrganizationCreatePersonalAccount" | i18n }}
@ -114,11 +114,11 @@
(click)="togglePassword(false)" (click)="togglePassword(false)"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ [ngClass]="{
'fa-eye': !showPassword, 'bwi-eye': !showPassword,
'fa-eye-slash': showPassword 'bwi-eye-slash': showPassword
}" }"
></i> ></i>
</button> </button>
@ -146,9 +146,9 @@
(click)="togglePassword(true)" (click)="togglePassword(true)"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
</div> </div>
@ -197,7 +197,7 @@
> >
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -3,7 +3,7 @@
<img class="mb-4 logo logo-themed" alt="Bitwarden" /> <img class="mb-4 logo logo-themed" alt="Bitwarden" />
<p class="text-center"> <p class="text-center">
<i <i
class="fa fa-spinner fa-spin fa-2x text-muted" class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -27,7 +27,7 @@
[disabled]="actionPromise" [disabled]="actionPromise"
> >
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
*ngIf="continuing" *ngIf="continuing"
@ -41,7 +41,7 @@
[disabled]="actionPromise" [disabled]="actionPromise"
> >
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
*ngIf="leaving" *ngIf="leaving"

View File

@ -4,7 +4,7 @@
<p class="lead text-center mb-4">{{ "setMasterPassword" | i18n }}</p> <p class="lead text-center mb-4">{{ "setMasterPassword" | i18n }}</p>
<div class="card d-block"> <div class="card d-block">
<div class="card-body text-center" *ngIf="syncLoading"> <div class="card-body text-center" *ngIf="syncLoading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
{{ "loading" | i18n }} {{ "loading" | i18n }}
</div> </div>
<div class="card-body" *ngIf="!syncLoading"> <div class="card-body" *ngIf="!syncLoading">
@ -47,9 +47,9 @@
(click)="togglePassword(false)" (click)="togglePassword(false)"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
<div class="progress-bar invisible"></div> <div class="progress-bar invisible"></div>
@ -76,9 +76,9 @@
(click)="togglePassword(true)" (click)="togglePassword(true)"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
</div> </div>
@ -96,7 +96,7 @@
[disabled]="form.loading" [disabled]="form.loading"
> >
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -10,7 +10,7 @@
<img class="logo mb-2 logo-themed" alt="Bitwarden" /> <img class="logo mb-2 logo-themed" alt="Bitwarden" />
<div class="card d-block mt-4"> <div class="card d-block mt-4">
<div class="card-body" *ngIf="loggingIn"> <div class="card-body" *ngIf="loggingIn">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
{{ "loading" | i18n }} {{ "loading" | i18n }}
</div> </div>
<div class="card-body" *ngIf="!loggingIn"> <div class="card-body" *ngIf="!loggingIn">
@ -34,9 +34,9 @@
class="btn btn-primary btn-block btn-submit" class="btn btn-primary btn-block btn-submit"
[disabled]="form.loading" [disabled]="form.loading"
> >
<span> <i class="fa fa-sign-in" aria-hidden="true"></i> {{ "logIn" | i18n }} </span> <span> <i class="bwi bwi-sign-in" aria-hidden="true"></i> {{ "logIn" | i18n }} </span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -94,7 +94,7 @@
</div> </div>
</ng-container> </ng-container>
<i <i
class="fa fa-spinner text-muted fa-spin pull-right" class="bwi bwi-spinner text-muted bwi-spin pull-right"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
*ngIf="form.loading && selectedProviderType === providerType.WebAuthn" *ngIf="form.loading && selectedProviderType === providerType.WebAuthn"
aria-hidden="true" aria-hidden="true"
@ -127,10 +127,10 @@
" "
> >
<span> <span>
<i class="fa fa-sign-in" aria-hidden="true"></i> {{ "continue" | i18n }} <i class="bwi bwi-sign-in" aria-hidden="true"></i> {{ "continue" | i18n }}
</span> </span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -36,9 +36,9 @@
(click)="togglePassword(false)" (click)="togglePassword(false)"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
<div class="progress-bar invisible"></div> <div class="progress-bar invisible"></div>
@ -64,9 +64,9 @@
(click)="togglePassword(true)" (click)="togglePassword(true)"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
</div> </div>
@ -84,7 +84,7 @@
[disabled]="form.loading" [disabled]="form.loading"
> >
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -3,7 +3,7 @@
<img class="mb-4 logo logo-themed" alt="Bitwarden" /> <img class="mb-4 logo logo-themed" alt="Bitwarden" />
<p class="text-center"> <p class="text-center">
<i <i
class="fa fa-spinner fa-spin fa-2x text-muted" class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -18,7 +18,7 @@
> >
<span>{{ "deleteAccount" | i18n }}</span> <span>{{ "deleteAccount" | i18n }}</span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -60,9 +60,7 @@ export abstract class BaseAcceptComponent implements OnInit {
errorMessage != null errorMessage != null
? this.i18nService.t(this.failedShortMessage, errorMessage) ? this.i18nService.t(this.failedShortMessage, errorMessage)
: this.i18nService.t(this.failedMessage); : this.i18nService.t(this.failedMessage);
this.platformUtilService.showToast("error", null, message, { this.platformUtilService.showToast("error", null, message, { timeout: 10000 });
timeout: 10000,
});
this.router.navigate(["/"]); this.router.navigate(["/"]);
} }

View File

@ -110,13 +110,7 @@ export abstract class BaseEventsComponent {
endDate: string, endDate: string,
continuationToken: string continuationToken: string
): Promise<ListResponse<EventResponse>>; ): Promise<ListResponse<EventResponse>>;
protected abstract getUserName( protected abstract getUserName(r: EventResponse, userId: string): { name: string; email: string };
r: EventResponse,
userId: string
): {
name: string;
email: string;
};
protected async loadAndParseEvents( protected async loadAndParseEvents(
startDate: string, startDate: string,
@ -144,10 +138,7 @@ export abstract class BaseEventsComponent {
}); });
}) })
); );
return { return { continuationToken: response.continuationToken, events: events };
continuationToken: response.continuationToken,
events: events,
};
} }
protected parseDates() { protected parseDates() {
@ -181,13 +172,6 @@ export abstract class BaseEventsComponent {
const data = await this.exportService.getEventExport(events); const data = await this.exportService.getEventExport(events);
const fileName = this.exportService.getFileName(this.exportFileName, "csv"); const fileName = this.exportService.getFileName(this.exportFileName, "csv");
this.platformUtilsService.saveFile( this.platformUtilsService.saveFile(window, data, { type: "text/plain" }, fileName);
window,
data,
{
type: "text/plain",
},
fileName
);
} }
} }

View File

@ -35,10 +35,7 @@ const MaxCheckedCount = 500;
export abstract class BasePeopleComponent< export abstract class BasePeopleComponent<
UserType extends ProviderUserUserDetailsResponse | OrganizationUserUserDetailsResponse UserType extends ProviderUserUserDetailsResponse | OrganizationUserUserDetailsResponse
> { > {
@ViewChild("confirmTemplate", { @ViewChild("confirmTemplate", { read: ViewContainerRef, static: true })
read: ViewContainerRef,
static: true,
})
confirmModalRef: ViewContainerRef; confirmModalRef: ViewContainerRef;
get allCount() { get allCount() {

View File

@ -6,18 +6,10 @@ import { Utils } from "jslib-common/misc/utils";
templateUrl: "nested-checkbox.component.html", templateUrl: "nested-checkbox.component.html",
}) })
export class NestedCheckboxComponent { export class NestedCheckboxComponent {
@Input() @Input() parentId: string;
parentId: string; @Input() checkboxes: { id: string; get: () => boolean; set: (v: boolean) => void }[];
@Input() @Output() onSavedUser = new EventEmitter();
checkboxes: { @Output() onDeletedUser = new EventEmitter();
id: string;
get: () => boolean;
set: (v: boolean) => void;
}[];
@Output()
onSavedUser = new EventEmitter();
@Output()
onDeletedUser = new EventEmitter();
get parentIndeterminate() { get parentIndeterminate() {
return !this.parentChecked && this.checkboxes.some((c) => c.get()); return !this.parentChecked && this.checkboxes.some((c) => c.get());

View File

@ -32,12 +32,9 @@
(click)="togglePassword()" (click)="togglePassword()"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
'fa-eye': !showPassword,
'fa-eye-slash': showPassword
}"
></i> ></i>
</button> </button>
</div> </div>

View File

@ -2,9 +2,7 @@
<div <div
class="progress-bar {{ color }}" class="progress-bar {{ color }}"
role="progressbar" role="progressbar"
[ngStyle]="{ [ngStyle]="{ width: scoreWidth + '%' }"
width: scoreWidth + '%'
}"
attr.aria-valuenow="{{ scoreWidth }}" attr.aria-valuenow="{{ scoreWidth }}"
aria-valuemin="0" aria-valuemin="0"
aria-valuemax="100" aria-valuemax="100"

View File

@ -7,10 +7,8 @@ import { I18nService } from "jslib-common/abstractions/i18n.service";
templateUrl: "password-strength.component.html", templateUrl: "password-strength.component.html",
}) })
export class PasswordStrengthComponent implements OnChanges { export class PasswordStrengthComponent implements OnChanges {
@Input() @Input() score?: number;
score?: number; @Input() showText = false;
@Input()
showText = false;
scoreWidth = 0; scoreWidth = 0;
color = "bg-danger"; color = "bg-danger";

View File

@ -1,9 +1,6 @@
<div class="container footer text-muted"> <div class="container footer text-muted">
<div class="row"> <div class="row">
<div class="col"> <div class="col">&copy; {{ year }}, Bitwarden Inc.</div>
&copy;
{{ year }}, Bitwarden Inc.
</div>
<div class="col text-center"></div> <div class="col text-center"></div>
<div class="col text-right"> <div class="col text-right">
{{ "versionNumber" | i18n: version }} {{ "versionNumber" | i18n: version }}

View File

@ -1,7 +1,5 @@
<router-outlet></router-outlet> <router-outlet></router-outlet>
<div class="container my-5 text-muted text-center"> <div class="container my-5 text-muted text-center">
&copy; &copy; {{ year }}, Bitwarden Inc. <br />
{{ year }}, Bitwarden Inc.
<br />
{{ "versionNumber" | i18n: version }} {{ "versionNumber" | i18n: version }}
</div> </div>

View File

@ -1,12 +1,7 @@
<nav <nav class="navbar navbar-expand navbar-dark" [ngClass]="{ 'nav-background-alt': selfHosted }">
class="navbar navbar-expand navbar-dark"
[ngClass]="{
'nav-background-alt': selfHosted
}"
>
<div class="container"> <div class="container">
<a class="navbar-brand" routerLink="/" appA11yTitle="{{ 'pageTitle' | i18n: 'Bitwarden' }}"> <a class="navbar-brand" routerLink="/" appA11yTitle="{{ 'pageTitle' | i18n: 'Bitwarden' }}">
<i class="fa fa-shield" aria-hidden="true"></i> <i class="bwi bwi-shield" aria-hidden="true"></i>
</a> </a>
<div class="collapse navbar-collapse"> <div class="collapse navbar-collapse">
<ul class="navbar-nav"> <ul class="navbar-nav">
@ -44,7 +39,7 @@
aria-haspopup="true" aria-haspopup="true"
aria-expanded="false" aria-expanded="false"
> >
<i class="fa fa-user-circle fa-lg" aria-hidden="true"></i> <i class="bwi bwi-user-circle bwi-lg" aria-hidden="true"></i>
</a> </a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="nav-profile"> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="nav-profile">
<div class="dropdown-item-text d-flex align-items-center" *ngIf="name" appStopProp> <div class="dropdown-item-text d-flex align-items-center" *ngIf="name" appStopProp>
@ -62,11 +57,11 @@
</div> </div>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item" href="#" routerLink="/settings/account"> <a class="dropdown-item" href="#" routerLink="/settings/account">
<i class="fa fa-fw fa-user" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-user" aria-hidden="true"></i>
{{ "myAccount" | i18n }} {{ "myAccount" | i18n }}
</a> </a>
<a class="dropdown-item" href="https://help.bitwarden.com" target="_blank" rel="noopener"> <a class="dropdown-item" href="https://help.bitwarden.com" target="_blank" rel="noopener">
<i class="fa fa-fw fa-question-circle" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-question-circle" aria-hidden="true"></i>
{{ "getHelp" | i18n }} {{ "getHelp" | i18n }}
</a> </a>
<a <a
@ -75,16 +70,16 @@
target="_blank" target="_blank"
rel="noopener" rel="noopener"
> >
<i class="fa fa-fw fa-download" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-download" aria-hidden="true"></i>
{{ "getApps" | i18n }} {{ "getApps" | i18n }}
</a> </a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<button type="button" class="dropdown-item" (click)="lock()"> <button type="button" class="dropdown-item" (click)="lock()">
<i class="fa fa-fw fa-lock" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-lock" aria-hidden="true"></i>
{{ "lockNow" | i18n }} {{ "lockNow" | i18n }}
</button> </button>
<button type="button" class="dropdown-item" (click)="logOut()"> <button type="button" class="dropdown-item" (click)="logOut()">
<i class="fa fa-fw fa-sign-out" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-sign-out" aria-hidden="true"></i>
{{ "logOut" | i18n }} {{ "logOut" | i18n }}
</button> </button>
</div> </div>

View File

@ -13,7 +13,7 @@
*ngIf="!organization.enabled" *ngIf="!organization.enabled"
> >
<div class="card-body py-2"> <div class="card-body py-2">
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <i class="bwi bwi-exclamation-triangle" aria-hidden="true"></i>
{{ "organizationIsDisabled" | i18n }} {{ "organizationIsDisabled" | i18n }}
</div> </div>
</div> </div>
@ -22,7 +22,7 @@
*ngIf="organization.isProviderUser" *ngIf="organization.isProviderUser"
> >
<div class="card-body py-2"> <div class="card-body py-2">
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <i class="bwi bwi-exclamation-triangle" aria-hidden="true"></i>
{{ "accessingUsingProvider" | i18n: organization.providerName }} {{ "accessingUsingProvider" | i18n: organization.providerName }}
</div> </div>
</div> </div>
@ -30,25 +30,25 @@
<ul class="nav nav-tabs" *ngIf="showMenuBar"> <ul class="nav nav-tabs" *ngIf="showMenuBar">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" routerLink="vault" routerLinkActive="active"> <a class="nav-link" routerLink="vault" routerLinkActive="active">
<i class="fa fa-lock" aria-hidden="true"></i> <i class="bwi bwi-lock" aria-hidden="true"></i>
{{ "vault" | i18n }} {{ "vault" | i18n }}
</a> </a>
</li> </li>
<li class="nav-item" *ngIf="showManageTab"> <li class="nav-item" *ngIf="showManageTab">
<a class="nav-link" [routerLink]="manageRoute" routerLinkActive="active"> <a class="nav-link" [routerLink]="manageRoute" routerLinkActive="active">
<i class="fa fa-sliders" aria-hidden="true"></i> <i class="bwi bwi-sliders" aria-hidden="true"></i>
{{ "manage" | i18n }} {{ "manage" | i18n }}
</a> </a>
</li> </li>
<li class="nav-item" *ngIf="showToolsTab"> <li class="nav-item" *ngIf="showToolsTab">
<a class="nav-link" [routerLink]="toolsRoute" routerLinkActive="active"> <a class="nav-link" [routerLink]="toolsRoute" routerLinkActive="active">
<i class="fa fa-wrench" aria-hidden="true"></i> <i class="bwi bwi-wrench" aria-hidden="true"></i>
{{ "tools" | i18n }} {{ "tools" | i18n }}
</a> </a>
</li> </li>
<li class="nav-item" *ngIf="organization.isOwner"> <li class="nav-item" *ngIf="organization.isOwner">
<a class="nav-link" routerLink="settings" routerLinkActive="active"> <a class="nav-link" routerLink="settings" routerLinkActive="active">
<i class="fa fa-cogs" aria-hidden="true"></i> <i class="bwi bwi-cogs" aria-hidden="true"></i>
{{ "settings" | i18n }} {{ "settings" | i18n }}
</a> </a>
</li> </li>

View File

@ -16,7 +16,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="card-body text-center" *ngIf="loading"> <div class="card-body text-center" *ngIf="loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
{{ "loading" | i18n }} {{ "loading" | i18n }}
</div> </div>
<app-callout type="danger" *ngIf="filteredUsers.length <= 0"> <app-callout type="danger" *ngIf="filteredUsers.length <= 0">
@ -51,7 +51,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
{{ user.email }} {{ user.email }}
@ -69,7 +70,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
{{ user.email }} {{ user.email }}
@ -97,7 +99,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
{{ user.email }} {{ user.email }}
@ -121,7 +124,7 @@
[disabled]="loading" [disabled]="loading"
(click)="submit()" (click)="submit()"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "confirm" | i18n }}</span> <span>{{ "confirm" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -39,7 +39,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
{{ user.email }} {{ user.email }}
@ -64,7 +65,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
{{ user.email }} {{ user.email }}
@ -88,7 +90,7 @@
[disabled]="loading" [disabled]="loading"
(click)="submit()" (click)="submit()"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "removeUsers" | i18n }}</span> <span>{{ "removeUsers" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -16,7 +16,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="card-body text-center" *ngIf="loading"> <div class="card-body text-center" *ngIf="loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
{{ "loading" | i18n }} {{ "loading" | i18n }}
</div> </div>
<table class="table table-hover table-list" *ngIf="!loading"> <table class="table table-hover table-list" *ngIf="!loading">

View File

@ -20,7 +20,7 @@
</div> </div>
<div class="modal-body" *ngIf="loading"> <div class="modal-body" *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -91,7 +91,7 @@
{{ g.name }} {{ g.name }}
<ng-container *ngIf="g.accessAll"> <ng-container *ngIf="g.accessAll">
<i <i
class="fa fa-th text-muted fa-fw" class="bwi bwi-filter text-muted bwi-fw"
title="{{ 'groupAccessAllItems' | i18n }}" title="{{ 'groupAccessAllItems' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -126,7 +126,7 @@
[disabled]="form.loading" [disabled]="form.loading"
*ngIf="this.canSave" *ngIf="this.canSave"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">
@ -144,12 +144,12 @@
[appApiAction]="deletePromise" [appApiAction]="deletePromise"
> >
<i <i
class="fa fa-trash-o fa-lg fa-fw" class="bwi bwi-trash bwi-lg bwi-fw"
[hidden]="deleteBtn.loading" [hidden]="deleteBtn.loading"
aria-hidden="true" aria-hidden="true"
></i> ></i>
<i <i
class="fa fa-spinner fa-spin fa-lg fa-fw" class="bwi bwi-spinner bwi-spin bwi-lg bwi-fw"
[hidden]="!deleteBtn.loading" [hidden]="!deleteBtn.loading"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"

View File

@ -17,13 +17,17 @@
class="btn btn-sm btn-outline-primary ml-3" class="btn btn-sm btn-outline-primary ml-3"
(click)="add()" (click)="add()"
> >
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "newCollection" | i18n }} {{ "newCollection" | i18n }}
</button> </button>
</div> </div>
</div> </div>
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<ng-container <ng-container
@ -58,7 +62,7 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a <a
@ -68,7 +72,7 @@
*ngIf="this.canEdit(c)" *ngIf="this.canEdit(c)"
(click)="users(c)" (click)="users(c)"
> >
<i class="fa fa-fw fa-users" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-users" aria-hidden="true"></i>
{{ "users" | i18n }} {{ "users" | i18n }}
</a> </a>
<a <a
@ -78,7 +82,7 @@
*ngIf="this.canDelete(c)" *ngIf="this.canDelete(c)"
(click)="delete(c)" (click)="delete(c)"
> >
<i class="fa fa-fw fa-trash-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-trash" aria-hidden="true"></i>
{{ "delete" | i18n }} {{ "delete" | i18n }}
</a> </a>
</div> </div>

View File

@ -17,7 +17,7 @@
</div> </div>
<div class="modal-body" *ngIf="!loaded"> <div class="modal-body" *ngIf="!loaded">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -55,8 +55,8 @@
[disabled]="loaded && refreshBtn.loading" [disabled]="loaded && refreshBtn.loading"
> >
<i <i
class="fa fa-refresh fa-fw" class="bwi bwi-refresh bwi-fw"
[ngClass]="{ 'fa-spin': loaded && refreshBtn.loading }" [ngClass]="{ 'bwi-spin': loaded && refreshBtn.loading }"
aria-hidden="true" aria-hidden="true"
></i> ></i>
{{ "refresh" | i18n }} {{ "refresh" | i18n }}
@ -82,7 +82,7 @@
<td>{{ e.date | date: "medium" }}</td> <td>{{ e.date | date: "medium" }}</td>
<td> <td>
<i <i
class="text-muted fa fa-lg {{ e.appIcon }}" class="text-muted bwi bwi-lg {{ e.appIcon }}"
title="{{ e.appName }}, {{ e.ip }}" title="{{ e.appName }}, {{ e.ip }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -104,7 +104,7 @@
[disabled]="loaded && moreBtn.loading" [disabled]="loaded && moreBtn.loading"
*ngIf="continuationToken" *ngIf="continuationToken"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "loadMore" | i18n }}</span> <span>{{ "loadMore" | i18n }}</span>
</button> </button>
</div> </div>

View File

@ -23,7 +23,7 @@
</div> </div>
<div class="modal-body" *ngIf="loading || !users"> <div class="modal-body" *ngIf="loading || !users">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -109,7 +109,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
{{ u.email }} {{ u.email }}
@ -128,7 +129,7 @@
<td *ngIf="entity === 'collection'"> <td *ngIf="entity === 'collection'">
<ng-container *ngIf="u.accessAll"> <ng-container *ngIf="u.accessAll">
<i <i
class="fa fa-th" class="bwi bwi-filter"
title="{{ 'userAccessAllItems' | i18n }}" title="{{ 'userAccessAllItems' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -167,7 +168,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -32,9 +32,9 @@
[disabled]="loaded && refreshForm.loading" [disabled]="loaded && refreshForm.loading"
> >
<i <i
class="fa fa-refresh fa-fw" class="bwi bwi-refresh bwi-fw"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-spin': loaded && refreshForm.loading }" [ngClass]="{ 'bwi-spin': loaded && refreshForm.loading }"
></i> ></i>
{{ "refresh" | i18n }} {{ "refresh" | i18n }}
</button> </button>
@ -47,14 +47,18 @@
(click)="exportEvents()" (click)="exportEvents()"
[disabled]="(loaded && exportForm.loading) || dirtyDates" [disabled]="(loaded && exportForm.loading) || dirtyDates"
> >
<i class="fa fa-spinner fa-spin" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" aria-hidden="true"></i>
<span>{{ "export" | i18n }}</span> <span>{{ "export" | i18n }}</span>
</button> </button>
</form> </form>
</div> </div>
</div> </div>
<ng-container *ngIf="!loaded"> <ng-container *ngIf="!loaded">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<ng-container *ngIf="loaded"> <ng-container *ngIf="loaded">
@ -75,7 +79,7 @@
<td>{{ e.date | date: "medium" }}</td> <td>{{ e.date | date: "medium" }}</td>
<td> <td>
<i <i
class="text-muted fa fa-lg {{ e.appIcon }}" class="text-muted bwi bwi-lg {{ e.appIcon }}"
title="{{ e.appName }}, {{ e.ip }}" title="{{ e.appName }}, {{ e.ip }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -97,7 +101,7 @@
[disabled]="loaded && moreBtn.loading" [disabled]="loaded && moreBtn.loading"
*ngIf="continuationToken" *ngIf="continuationToken"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "loadMore" | i18n }}</span> <span>{{ "loadMore" | i18n }}</span>
</button> </button>
</ng-container> </ng-container>

View File

@ -20,7 +20,7 @@
</div> </div>
<div class="modal-body" *ngIf="loading"> <div class="modal-body" *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -58,7 +58,7 @@
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
href="https://bitwarden.com/help/article/user-types-access-control/#access-control" href="https://bitwarden.com/help/article/user-types-access-control/#access-control"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</div> </div>
<div class="ml-auto" *ngIf="access === 'selected' && collections && collections.length"> <div class="ml-auto" *ngIf="access === 'selected' && collections && collections.length">
@ -150,7 +150,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">
@ -168,12 +168,12 @@
[appApiAction]="deletePromise" [appApiAction]="deletePromise"
> >
<i <i
class="fa fa-trash-o fa-lg fa-fw" class="bwi bwi-trash bwi-lg bwi-fw"
[hidden]="deleteBtn.loading" [hidden]="deleteBtn.loading"
aria-hidden="true" aria-hidden="true"
></i> ></i>
<i <i
class="fa fa-spinner fa-spin fa-lg fa-fw" class="bwi bwi-spinner bwi-spin bwi-lg bwi-fw"
[hidden]="!deleteBtn.loading" [hidden]="!deleteBtn.loading"
aria-hidden="true" aria-hidden="true"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"

View File

@ -12,13 +12,17 @@
/> />
</div> </div>
<button type="button" class="btn btn-sm btn-outline-primary ml-3" (click)="add()"> <button type="button" class="btn btn-sm btn-outline-primary ml-3" (click)="add()">
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "newGroup" | i18n }} {{ "newGroup" | i18n }}
</button> </button>
</div> </div>
</div> </div>
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<ng-container <ng-container
@ -51,15 +55,15 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#" appStopClick (click)="users(g)"> <a class="dropdown-item" href="#" appStopClick (click)="users(g)">
<i class="fa fa-fw fa-users" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-users" aria-hidden="true"></i>
{{ "users" | i18n }} {{ "users" | i18n }}
</a> </a>
<a class="dropdown-item text-danger" href="#" appStopClick (click)="delete(g)"> <a class="dropdown-item text-danger" href="#" appStopClick (click)="delete(g)">
<i class="fa fa-fw fa-trash-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-trash" aria-hidden="true"></i>
{{ "delete" | i18n }} {{ "delete" | i18n }}
</a> </a>
</div> </div>

View File

@ -52,11 +52,11 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog" aria-hidden="true"></i> <i class="bwi bwi-cog" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="bulkActionsButton"> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="bulkActionsButton">
<button class="dropdown-item" appStopClick (click)="bulkReinvite()"> <button class="dropdown-item" appStopClick (click)="bulkReinvite()">
<i class="fa fa-fw fa-envelope-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-envelope" aria-hidden="true"></i>
{{ "reinviteSelected" | i18n }} {{ "reinviteSelected" | i18n }}
</button> </button>
<button <button
@ -65,32 +65,36 @@
(click)="bulkConfirm()" (click)="bulkConfirm()"
*ngIf="showBulkConfirmUsers" *ngIf="showBulkConfirmUsers"
> >
<i class="fa fa-fw fa-check" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-check" aria-hidden="true"></i>
{{ "confirmSelected" | i18n }} {{ "confirmSelected" | i18n }}
</button> </button>
<button class="dropdown-item text-danger" appStopClick (click)="bulkRemove()"> <button class="dropdown-item text-danger" appStopClick (click)="bulkRemove()">
<i class="fa fa-fw fa-remove" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-close" aria-hidden="true"></i>
{{ "remove" | i18n }} {{ "remove" | i18n }}
</button> </button>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<button class="dropdown-item" appStopClick (click)="selectAll(true)"> <button class="dropdown-item" appStopClick (click)="selectAll(true)">
<i class="fa fa-fw fa-check-square-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-check-square" aria-hidden="true"></i>
{{ "selectAll" | i18n }} {{ "selectAll" | i18n }}
</button> </button>
<button class="dropdown-item" appStopClick (click)="selectAll(false)"> <button class="dropdown-item" appStopClick (click)="selectAll(false)">
<i class="fa fa-fw fa-minus-square-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-minus-square" aria-hidden="true"></i>
{{ "unselectAll" | i18n }} {{ "unselectAll" | i18n }}
</button> </button>
</div> </div>
</div> </div>
<button type="button" class="btn btn-sm btn-outline-primary ml-3" (click)="invite()"> <button type="button" class="btn btn-sm btn-outline-primary ml-3" (click)="invite()">
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "inviteUser" | i18n }} {{ "inviteUser" | i18n }}
</button> </button>
</div> </div>
</div> </div>
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<ng-container <ng-container
@ -104,7 +108,7 @@
<app-callout <app-callout
type="info" type="info"
title="{{ 'confirmUsers' | i18n }}" title="{{ 'confirmUsers' | i18n }}"
icon="fa-check-circle" icon="bwi bwi-check-circle"
*ngIf="showConfirmUsers" *ngIf="showConfirmUsers"
> >
{{ "usersNeedConfirmed" | i18n }} {{ "usersNeedConfirmed" | i18n }}
@ -128,7 +132,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
<a href="#" appStopClick (click)="edit(u)">{{ u.email }}</a> <a href="#" appStopClick (click)="edit(u)">{{ u.email }}</a>
@ -142,12 +147,16 @@
</td> </td>
<td> <td>
<ng-container *ngIf="u.twoFactorEnabled"> <ng-container *ngIf="u.twoFactorEnabled">
<i class="fa fa-lock" title="{{ 'userUsingTwoStep' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-lock"
title="{{ 'userUsingTwoStep' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "userUsingTwoStep" | i18n }}</span> <span class="sr-only">{{ "userUsingTwoStep" | i18n }}</span>
</ng-container> </ng-container>
<ng-container *ngIf="showEnrolledStatus(u)"> <ng-container *ngIf="showEnrolledStatus(u)">
<i <i
class="fa fa-key" class="bwi bwi-key"
title="{{ 'enrolledPasswordReset' | i18n }}" title="{{ 'enrolledPasswordReset' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -171,7 +180,7 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a <a
@ -181,7 +190,7 @@
(click)="reinvite(u)" (click)="reinvite(u)"
*ngIf="u.status === userStatusType.Invited" *ngIf="u.status === userStatusType.Invited"
> >
<i class="fa fa-fw fa-envelope-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-envelope" aria-hidden="true"></i>
{{ "resendInvitation" | i18n }} {{ "resendInvitation" | i18n }}
</a> </a>
<a <a
@ -191,7 +200,7 @@
(click)="confirm(u)" (click)="confirm(u)"
*ngIf="u.status === userStatusType.Accepted" *ngIf="u.status === userStatusType.Accepted"
> >
<i class="fa fa-fw fa-check" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-check" aria-hidden="true"></i>
{{ "confirm" | i18n }} {{ "confirm" | i18n }}
</a> </a>
<a <a
@ -201,7 +210,7 @@
(click)="groups(u)" (click)="groups(u)"
*ngIf="accessGroups" *ngIf="accessGroups"
> >
<i class="fa fa-fw fa-sitemap" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-sitemap" aria-hidden="true"></i>
{{ "groups" | i18n }} {{ "groups" | i18n }}
</a> </a>
<a <a
@ -211,7 +220,7 @@
(click)="events(u)" (click)="events(u)"
*ngIf="accessEvents && u.status === userStatusType.Confirmed" *ngIf="accessEvents && u.status === userStatusType.Confirmed"
> >
<i class="fa fa-fw fa-file-text-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-file-text" aria-hidden="true"></i>
{{ "eventLogs" | i18n }} {{ "eventLogs" | i18n }}
</a> </a>
<a <a
@ -221,11 +230,11 @@
(click)="resetPassword(u)" (click)="resetPassword(u)"
*ngIf="allowResetPassword(u)" *ngIf="allowResetPassword(u)"
> >
<i class="fa fa-fw fa-key" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-key" aria-hidden="true"></i>
{{ "resetPassword" | i18n }} {{ "resetPassword" | i18n }}
</a> </a>
<a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(u)"> <a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(u)">
<i class="fa fa-fw fa-remove" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-close" aria-hidden="true"></i>
{{ "remove" | i18n }} {{ "remove" | i18n }}
</a> </a>
</div> </div>

View File

@ -2,7 +2,11 @@
<h1>{{ "policies" | i18n }}</h1> <h1>{{ "policies" | i18n }}</h1>
</div> </div>
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<table class="table table-hover table-list" *ngIf="!loading"> <table class="table table-hover table-list" *ngIf="!loading">

View File

@ -24,7 +24,7 @@
<div class="modal-body"> <div class="modal-body">
<div class="modal-body" *ngIf="loading"> <div class="modal-body" *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -37,7 +37,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -33,12 +33,12 @@
<div class="ml-auto d-flex"> <div class="ml-auto d-flex">
<a <a
href="#" href="#"
class="d-block mr-2 fa-icon-above-input" class="d-block mr-2 bwi-icon-above-input"
appStopClick appStopClick
appA11yTitle="{{ 'generatePassword' | i18n }}" appA11yTitle="{{ 'generatePassword' | i18n }}"
(click)="generatePassword()" (click)="generatePassword()"
> >
<i class="fa fa-lg fa-fw fa-refresh" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-fw bwi-refresh" aria-hidden="true"></i>
</a> </a>
</div> </div>
</div> </div>
@ -63,9 +63,9 @@
(click)="togglePassword()" (click)="togglePassword()"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
<button <button
@ -74,7 +74,7 @@
appA11yTitle="{{ 'copyPassword' | i18n }}" appA11yTitle="{{ 'copyPassword' | i18n }}"
(click)="copy(newPassword)" (click)="copy(newPassword)"
> >
<i class="fa fa-lg fa-clone" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-clone" aria-hidden="true"></i>
</button> </button>
</div> </div>
</div> </div>
@ -85,7 +85,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -23,7 +23,7 @@
</div> </div>
<div class="modal-body" *ngIf="loading"> <div class="modal-body" *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -54,7 +54,7 @@
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
href="https://bitwarden.com/help/article/user-types-access-control/#user-types" href="https://bitwarden.com/help/article/user-types-access-control/#user-types"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</h3> </h3>
<div class="form-check mt-2 form-check-block"> <div class="form-check mt-2 form-check-block">
@ -279,7 +279,7 @@
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
href="https://bitwarden.com/help/article/user-types-access-control/#access-control" href="https://bitwarden.com/help/article/user-types-access-control/#access-control"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</div> </div>
<div class="ml-auto" *ngIf="access === 'selected' && collections && collections.length"> <div class="ml-auto" *ngIf="access === 'selected' && collections && collections.length">
@ -371,7 +371,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">
@ -389,12 +389,12 @@
[appApiAction]="deletePromise" [appApiAction]="deletePromise"
> >
<i <i
class="fa fa-trash-o fa-lg fa-fw" class="bwi bwi-trash bwi-lg bwi-fw"
[hidden]="deleteBtn.loading" [hidden]="deleteBtn.loading"
aria-hidden="true" aria-hidden="true"
></i> ></i>
<i <i
class="fa fa-spinner fa-spin fa-lg fa-fw" class="bwi bwi-spinner bwi-spin bwi-lg bwi-fw"
[hidden]="!deleteBtn.loading" [hidden]="!deleteBtn.loading"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"

View File

@ -44,7 +44,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "confirm" | i18n }}</span> <span>{{ "confirm" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -17,7 +17,7 @@
</div> </div>
<div class="modal-body" *ngIf="loading"> <div class="modal-body" *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -48,7 +48,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -2,7 +2,11 @@
<h1>{{ "myOrganization" | i18n }}</h1> <h1>{{ "myOrganization" | i18n }}</h1>
</div> </div>
<div *ngIf="loading"> <div *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</div> </div>
<form <form
@ -63,7 +67,7 @@
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
</form> </form>
@ -89,7 +93,11 @@
</div> </div>
<p>{{ "taxInformationDesc" | i18n }}</p> <p>{{ "taxInformationDesc" | i18n }}</p>
<div *ngIf="!org || loading"> <div *ngIf="!org || loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</div> </div>
<form <form
@ -101,7 +109,7 @@
> >
<app-tax-info></app-tax-info> <app-tax-info></app-tax-info>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="formTax.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="formTax.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
</form> </form>

View File

@ -57,7 +57,7 @@
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
</div> </div>

View File

@ -26,7 +26,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-danger btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-danger btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "deleteOrganization" | i18n }}</span> <span>{{ "deleteOrganization" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -15,7 +15,7 @@
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
href="https://help.bitwarden.com/article/licensing-on-premise/#organization-account-sharing" href="https://help.bitwarden.com/article/licensing-on-premise/#organization-account-sharing"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</div> </div>
<input <input
@ -29,7 +29,7 @@
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" (click)="cancel()"> <button type="button" class="btn btn-outline-secondary" (click)="cancel()">

View File

@ -3,7 +3,7 @@
{{ "subscription" | i18n }} {{ "subscription" | i18n }}
<small *ngIf="firstLoaded && loading"> <small *ngIf="firstLoaded && loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -12,7 +12,7 @@
</h1> </h1>
</div> </div>
<ng-container *ngIf="!firstLoaded && loading"> <ng-container *ngIf="!firstLoaded && loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}"></i> <i class="bwi bwi-spinner bwi-spin text-muted" title="{{ 'loading' | i18n }}"></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
@ -38,7 +38,7 @@
[appApiAction]="reinstatePromise" [appApiAction]="reinstatePromise"
[disabled]="reinstateBtn.loading" [disabled]="reinstateBtn.loading"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "reinstateSubscription" | i18n }}</span> <span>{{ "reinstateSubscription" | i18n }}</span>
</button> </button>
</app-callout> </app-callout>
@ -138,7 +138,7 @@
[disabled]="removeSponsorshipBtn.loading" [disabled]="removeSponsorshipBtn.loading"
*ngIf="isSponsoredSubscription" *ngIf="isSponsoredSubscription"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "removeSponsorship" | i18n }}</span> <span>{{ "removeSponsorship" | i18n }}</span>
</button> </button>
<h2 class="spaced-header">{{ "storage" | i18n }}</h2> <h2 class="spaced-header">{{ "storage" | i18n }}</h2>
@ -204,7 +204,7 @@
[disabled]="cancelBtn.loading" [disabled]="cancelBtn.loading"
*ngIf="subscription && !subscription.cancelled && !subscriptionMarkedForCancel" *ngIf="subscription && !subscription.cancelled && !subscriptionMarkedForCancel"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "cancelSubscription" | i18n }}</span> <span>{{ "cancelSubscription" | i18n }}</span>
</button> </button>
</div> </div>
@ -224,7 +224,7 @@
<dd *ngIf="sub.expiration"> <dd *ngIf="sub.expiration">
{{ sub.expiration | date: "mediumDate" }} {{ sub.expiration | date: "mediumDate" }}
<span *ngIf="isExpired" class="text-danger ml-2"> <span *ngIf="isExpired" class="text-danger ml-2">
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <i class="bwi bwi-exclamation-triangle" aria-hidden="true"></i>
{{ "licenseIsExpired" | i18n }} {{ "licenseIsExpired" | i18n }}
</span> </span>
</dd> </dd>

View File

@ -4,7 +4,7 @@
</div> </div>
<div *ngIf="loading" class="mt-5 d-flex justify-content-center"> <div *ngIf="loading" class="mt-5 d-flex justify-content-center">
<i <i
class="fa fa-spinner fa-spin fa-2x text-muted" class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -42,7 +42,7 @@
</div> </div>
<div class="form-group col-6" *ngIf="!showNewOrganization"> <div class="form-group col-6" *ngIf="!showNewOrganization">
<button class="btn btn-primary mt-2 btn-submit" [disabled]="form.loading" type="submit"> <button class="btn btn-primary mt-2 btn-submit" [disabled]="form.loading" type="submit">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "acceptOffer" | i18n }}</span> <span>{{ "acceptOffer" | i18n }}</span>
</button> </button>
</div> </div>

View File

@ -1,7 +1,7 @@
<div class="container page-content"> <div class="container page-content">
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -20,7 +20,7 @@
<small #actionSpinner [appApiAction]="ciphersComponent.actionPromise"> <small #actionSpinner [appApiAction]="ciphersComponent.actionPromise">
<ng-container *ngIf="actionSpinner.loading"> <ng-container *ngIf="actionSpinner.loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -41,11 +41,11 @@
(click)="addCipher()" (click)="addCipher()"
*ngIf="!deleted" *ngIf="!deleted"
> >
<i class="fa fa-plus fa-fw" aria-hidden="true"></i>{{ "addItem" | i18n }} <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>{{ "addItem" | i18n }}
</button> </button>
</div> </div>
</div> </div>
<app-callout type="warning" *ngIf="deleted" icon="fa-warning"> <app-callout type="warning" *ngIf="deleted" icon="bwi bwi-exclamation-triangle">
{{ trashCleanupWarning }} {{ trashCleanupWarning }}
</app-callout> </app-callout>
<app-org-vault-ciphers <app-org-vault-ciphers

View File

@ -1,16 +1,16 @@
<ng-container *ngIf="vault"> <ng-container *ngIf="vault">
<p *ngIf="!loaded" class="text-muted"> <p *ngIf="!loaded" class="text-muted">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</p> </p>
<ng-container *ngIf="loaded"> <ng-container *ngIf="loaded">
<ul class="fa-ul card-ul carets" *ngIf="providers && providers.length"> <ul class="bwi-ul card-ul carets" *ngIf="providers && providers.length">
<li *ngFor="let p of providers"> <li *ngFor="let p of providers">
<a [routerLink]="['/providers', p.id]" class="text-body"> <a [routerLink]="['/providers', p.id]" class="text-body">
<i class="fa-li fa fa-caret-right" aria-hidden="true"></i> {{ p.name }} <i class="bwi bwi-li bwi-caret-right" aria-hidden="true"></i> {{ p.name }}
<ng-container *ngIf="!p.enabled"> <ng-container *ngIf="!p.enabled">
<i <i
class="fa fa-exclamation-triangle text-danger" class="bwi bwi-exclamation-triangle text-danger"
title="{{ 'providerIsDisabled' | i18n }}" title="{{ 'providerIsDisabled' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -28,7 +28,7 @@
<h1>{{ "providers" | i18n }}</h1> <h1>{{ "providers" | i18n }}</h1>
</div> </div>
<p *ngIf="!loaded" class="text-muted"> <p *ngIf="!loaded" class="text-muted">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</p> </p>
<ng-container *ngIf="loaded"> <ng-container *ngIf="loaded">
@ -42,7 +42,7 @@
<a href="#" [routerLink]="['/providers', p.id]">{{ p.name }}</a> <a href="#" [routerLink]="['/providers', p.id]">{{ p.name }}</a>
<ng-container *ngIf="!p.enabled"> <ng-container *ngIf="!p.enabled">
<i <i
class="fa fa-exclamation-triangle text-danger" class="bwi bwi-exclamation-triangle text-danger"
title="{{ 'providerIsDisabled' | i18n }}" title="{{ 'providerIsDisabled' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -21,7 +21,7 @@
<div class="card d-block"> <div class="card d-block">
<div class="card-body" *ngIf="loading" class="text-center"> <div class="card-body" *ngIf="loading" class="text-center">
<i <i
class="fa fa-spinner fa-spin fa-2x text-muted" class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -50,10 +50,10 @@
[disabled]="form.loading" [disabled]="form.loading"
> >
<span> <span>
<i class="fa fa-sign-in" aria-hidden="true"></i> {{ "continue" | i18n }} <i class="bwi bwi-sign-in" aria-hidden="true"></i> {{ "continue" | i18n }}
</span> </span>
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -93,14 +93,14 @@
*ngIf="send.text.hidden" *ngIf="send.text.hidden"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showText, 'fa-eye-slash': showText }" [ngClass]="{ 'bwi-eye': !showText, 'bwi-eye-slash': showText }"
></i> ></i>
{{ "toggleVisibility" | i18n }} {{ "toggleVisibility" | i18n }}
</button> </button>
<button class="btn btn-block btn-link" type="button" (click)="copyText()"> <button class="btn btn-block btn-link" type="button" (click)="copyText()">
<i class="fa fa-copy" aria-hidden="true"></i> {{ "copyValue" | i18n }} <i class="bwi bwi-copy" aria-hidden="true"></i> {{ "copyValue" | i18n }}
</button> </button>
</ng-container> </ng-container>
<!-- File --> <!-- File -->
@ -112,7 +112,7 @@
(click)="download()" (click)="download()"
*ngIf="!downloading" *ngIf="!downloading"
> >
<i class="fa fa-download" aria-hidden="true"></i> <i class="bwi bwi-download" aria-hidden="true"></i>
{{ "downloadFile" | i18n }} ({{ send.file.sizeName }}) {{ "downloadFile" | i18n }} ({{ send.file.sizeName }})
</button> </button>
<button <button
@ -122,7 +122,7 @@
disabled="true" disabled="true"
> >
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -151,9 +151,9 @@
<h3 class="mb-0 mr-2">{{ "options" | i18n }}</h3> <h3 class="mb-0 mr-2">{{ "options" | i18n }}</h3>
<a class="mb-1" href="#" appStopClick role="button"> <a class="mb-1" href="#" appStopClick role="button">
<i <i
class="fa" class="bwi"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-chevron-down': !showOptions, 'fa-chevron-up': showOptions }" [ngClass]="{ 'bwi-angle-down': !showOptions, 'bwi-chevron-up': showOptions }"
></i> ></i>
</a> </a>
</div> </div>
@ -213,9 +213,9 @@
(click)="togglePasswordVisible()" (click)="togglePasswordVisible()"
> >
<i <i
class="fa fa-lg" class="bwi bwi-lg"
aria-hidden="true" aria-hidden="true"
[ngClass]="{ 'fa-eye': !showPassword, 'fa-eye-slash': showPassword }" [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i> ></i>
</button> </button>
</div> </div>
@ -272,7 +272,7 @@
[ngClass]="{ loading: form.loading }" [ngClass]="{ loading: form.loading }"
[disabled]="form.loading || disableSend" [disabled]="form.loading || disableSend"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">
@ -290,12 +290,12 @@
[appApiAction]="deletePromise" [appApiAction]="deletePromise"
> >
<i <i
class="fa fa-trash-o fa-lg fa-fw" class="bwi bwi-trash bwi-lg bwi-fw"
[hidden]="deleteBtn.loading" [hidden]="deleteBtn.loading"
aria-hidden="true" aria-hidden="true"
></i> ></i>
<i <i
class="fa fa-spinner fa-spin fa-lg fa-fw" class="bwi bwi-spinner bwi-spin bwi-lg bwi-fw"
[hidden]="!deleteBtn.loading" [hidden]="!deleteBtn.loading"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"

View File

@ -19,23 +19,23 @@
autocomplete="off" autocomplete="off"
appAutofocus appAutofocus
/> />
<ul class="fa-ul card-ul"> <ul class="bwi-ul card-ul">
<li [ngClass]="{ active: selectedAll }"> <li [ngClass]="{ active: selectedAll }">
<a href="#" appStopClick (click)="selectAll()"> <a href="#" appStopClick (click)="selectAll()">
<i class="fa-li fa fa-fw fa-th"></i>{{ "allSends" | i18n }} <i class="bwi bwi-li bwi-fw bwi-filter"></i>{{ "allSends" | i18n }}
</a> </a>
</li> </li>
</ul> </ul>
<h3>{{ "types" | i18n }}</h3> <h3>{{ "types" | i18n }}</h3>
<ul class="fa-ul card-ul"> <ul class="bwi-ul card-ul">
<li [ngClass]="{ active: selectedType === sendType.Text }"> <li [ngClass]="{ active: selectedType === sendType.Text }">
<a href="#" appStopClick (click)="selectType(sendType.Text)"> <a href="#" appStopClick (click)="selectType(sendType.Text)">
<i class="fa-li fa fa-fw fa-file-text-o"></i>{{ "sendTypeText" | i18n }} <i class="bwi bwi-li bwi-fw bwi-file-text"></i>{{ "sendTypeText" | i18n }}
</a> </a>
</li> </li>
<li [ngClass]="{ active: selectedType === sendType.File }"> <li [ngClass]="{ active: selectedType === sendType.File }">
<a href="#" appStopClick (click)="selectType(sendType.File)"> <a href="#" appStopClick (click)="selectType(sendType.File)">
<i class="fa-li fa fa-fw fa-file-o"></i>{{ "sendTypeFile" | i18n }} <i class="bwi bwi-li bwi-fw bwi-file"></i>{{ "sendTypeFile" | i18n }}
</a> </a>
</li> </li>
</ul> </ul>
@ -49,7 +49,7 @@
<small #actionSpinner [appApiAction]="actionPromise"> <small #actionSpinner [appApiAction]="actionPromise">
<ng-container *ngIf="actionSpinner.loading"> <ng-container *ngIf="actionSpinner.loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -64,7 +64,7 @@
(click)="addSend()" (click)="addSend()"
[disabled]="disableSend" [disabled]="disableSend"
> >
<i class="fa fa-plus fa-fw" aria-hidden="true"></i>{{ "createSend" | i18n }} <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>{{ "createSend" | i18n }}
</button> </button>
</div> </div>
</div> </div>
@ -74,15 +74,15 @@
<tr *ngFor="let s of filteredSends"> <tr *ngFor="let s of filteredSends">
<td class="table-list-icon"> <td class="table-list-icon">
<div class="icon" aria-hidden="true"> <div class="icon" aria-hidden="true">
<i class="fa fa-fw fa-lg fa-file-o" *ngIf="s.type == sendType.File"></i> <i class="bwi bwi-fw bwi-lg bwi-file" *ngIf="s.type == sendType.File"></i>
<i class="fa fa-fw fa-lg fa-file-text-o" *ngIf="s.type == sendType.Text"></i> <i class="bwi bwi-fw bwi-lg bwi-file-text" *ngIf="s.type == sendType.Text"></i>
</div> </div>
</td> </td>
<td class="reduced-lh wrap"> <td class="reduced-lh wrap">
<a href="#" appStopClick appStopProp (click)="editSend(s)">{{ s.name }}</a> <a href="#" appStopClick appStopProp (click)="editSend(s)">{{ s.name }}</a>
<ng-container *ngIf="s.disabled"> <ng-container *ngIf="s.disabled">
<i <i
class="fa fa-warning" class="bwi bwi-exclamation-triangle"
appStopProp appStopProp
title="{{ 'disabled' | i18n }}" title="{{ 'disabled' | i18n }}"
aria-hidden="true" aria-hidden="true"
@ -91,7 +91,7 @@
</ng-container> </ng-container>
<ng-container *ngIf="s.password"> <ng-container *ngIf="s.password">
<i <i
class="fa fa-key" class="bwi bwi-key"
appStopProp appStopProp
title="{{ 'password' | i18n }}" title="{{ 'password' | i18n }}"
aria-hidden="true" aria-hidden="true"
@ -100,7 +100,7 @@
</ng-container> </ng-container>
<ng-container *ngIf="s.maxAccessCountReached"> <ng-container *ngIf="s.maxAccessCountReached">
<i <i
class="fa fa-ban" class="bwi bwi-ban"
appStopProp appStopProp
title="{{ 'maxAccessCountReached' | i18n }}" title="{{ 'maxAccessCountReached' | i18n }}"
aria-hidden="true" aria-hidden="true"
@ -109,7 +109,7 @@
</ng-container> </ng-container>
<ng-container *ngIf="s.expired"> <ng-container *ngIf="s.expired">
<i <i
class="fa fa-clock-o" class="bwi bwi-clock"
appStopProp appStopProp
title="{{ 'expired' | i18n }}" title="{{ 'expired' | i18n }}"
aria-hidden="true" aria-hidden="true"
@ -118,7 +118,7 @@
</ng-container> </ng-container>
<ng-container *ngIf="s.pendingDelete"> <ng-container *ngIf="s.pendingDelete">
<i <i
class="fa fa-trash" class="bwi bwi-trash"
appStopProp appStopProp
title="{{ 'pendingDeletion' | i18n }}" title="{{ 'pendingDeletion' | i18n }}"
aria-hidden="true" aria-hidden="true"
@ -139,11 +139,11 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton"> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#" appStopClick (click)="copy(s)"> <a class="dropdown-item" href="#" appStopClick (click)="copy(s)">
<i class="fa fa-fw fa-copy" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-clone" aria-hidden="true"></i>
{{ "copySendLink" | i18n }} {{ "copySendLink" | i18n }}
</a> </a>
<a <a
@ -153,11 +153,11 @@
(click)="removePassword(s)" (click)="removePassword(s)"
*ngIf="s.password && !disableSend" *ngIf="s.password && !disableSend"
> >
<i class="fa fa-fw fa-undo" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-close" aria-hidden="true"></i>
{{ "removePassword" | i18n }} {{ "removePassword" | i18n }}
</a> </a>
<a class="dropdown-item text-danger" href="#" appStopClick (click)="delete(s)"> <a class="dropdown-item text-danger" href="#" appStopClick (click)="delete(s)">
<i class="fa fa-fw fa-trash-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-trash" aria-hidden="true"></i>
{{ "delete" | i18n }} {{ "delete" | i18n }}
</a> </a>
</div> </div>
@ -169,7 +169,7 @@
<div class="no-items" *ngIf="filteredSends && !filteredSends.length"> <div class="no-items" *ngIf="filteredSends && !filteredSends.length">
<ng-container *ngIf="!loaded"> <ng-container *ngIf="!loaded">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -178,7 +178,7 @@
<ng-container *ngIf="loaded"> <ng-container *ngIf="loaded">
<p>{{ "noSendsInList" | i18n }}</p> <p>{{ "noSendsInList" | i18n }}</p>
<button (click)="addSend()" class="btn btn-outline-primary" [disabled]="disableSend"> <button (click)="addSend()" class="btn btn-outline-primary" [disabled]="disableSend">
<i class="fa fa-plus fa-fw"></i>{{ "createSend" | i18n }} <i class="bwi bwi-plus bwi-fw"></i>{{ "createSend" | i18n }}
</button> </button>
</ng-container> </ng-container>
</div> </div>

View File

@ -382,47 +382,50 @@ export class EventService {
private getAppInfo(deviceType: DeviceType): [string, string] { private getAppInfo(deviceType: DeviceType): [string, string] {
switch (deviceType) { switch (deviceType) {
case DeviceType.Android: case DeviceType.Android:
return ["fa-android", this.i18nService.t("mobile") + " - Android"]; return ["bwi-android", this.i18nService.t("mobile") + " - Android"];
case DeviceType.iOS: case DeviceType.iOS:
return ["fa-apple", this.i18nService.t("mobile") + " - iOS"]; return ["bwi-apple", this.i18nService.t("mobile") + " - iOS"];
case DeviceType.UWP: case DeviceType.UWP:
return ["fa-windows", this.i18nService.t("mobile") + " - Windows"]; return ["bwi-windows", this.i18nService.t("mobile") + " - Windows"];
case DeviceType.ChromeExtension: case DeviceType.ChromeExtension:
return ["fa-chrome", this.i18nService.t("extension") + " - Chrome"]; return ["bwi-chrome", this.i18nService.t("extension") + " - Chrome"];
case DeviceType.FirefoxExtension: case DeviceType.FirefoxExtension:
return ["fa-firefox", this.i18nService.t("extension") + " - Firefox"]; return ["bwi-firefox", this.i18nService.t("extension") + " - Firefox"];
case DeviceType.OperaExtension: case DeviceType.OperaExtension:
return ["fa-opera", this.i18nService.t("extension") + " - Opera"]; return ["bwi-opera", this.i18nService.t("extension") + " - Opera"];
case DeviceType.EdgeExtension: case DeviceType.EdgeExtension:
return ["fa-edge", this.i18nService.t("extension") + " - Edge"]; return ["bwi-edge", this.i18nService.t("extension") + " - Edge"];
case DeviceType.VivaldiExtension: case DeviceType.VivaldiExtension:
return ["fa-puzzle-piece", this.i18nService.t("extension") + " - Vivaldi"]; return ["bwi-puzzle", this.i18nService.t("extension") + " - Vivaldi"];
case DeviceType.SafariExtension: case DeviceType.SafariExtension:
return ["fa-safari", this.i18nService.t("extension") + " - Safari"]; return ["bwi-safari", this.i18nService.t("extension") + " - Safari"];
case DeviceType.WindowsDesktop: case DeviceType.WindowsDesktop:
return ["fa-windows", this.i18nService.t("desktop") + " - Windows"]; return ["bwi-windows", this.i18nService.t("desktop") + " - Windows"];
case DeviceType.MacOsDesktop: case DeviceType.MacOsDesktop:
return ["fa-apple", this.i18nService.t("desktop") + " - macOS"]; return ["bwi-apple", this.i18nService.t("desktop") + " - macOS"];
case DeviceType.LinuxDesktop: case DeviceType.LinuxDesktop:
return ["fa-linux", this.i18nService.t("desktop") + " - Linux"]; return ["bwi-linux", this.i18nService.t("desktop") + " - Linux"];
case DeviceType.ChromeBrowser: case DeviceType.ChromeBrowser:
return ["fa-globe", this.i18nService.t("webVault") + " - Chrome"]; return ["bwi-globe", this.i18nService.t("webVault") + " - Chrome"];
case DeviceType.FirefoxBrowser: case DeviceType.FirefoxBrowser:
return ["fa-globe", this.i18nService.t("webVault") + " - Firefox"]; return ["bwi-globe", this.i18nService.t("webVault") + " - Firefox"];
case DeviceType.OperaBrowser: case DeviceType.OperaBrowser:
return ["fa-globe", this.i18nService.t("webVault") + " - Opera"]; return ["bwi-globe", this.i18nService.t("webVault") + " - Opera"];
case DeviceType.SafariBrowser: case DeviceType.SafariBrowser:
return ["fa-globe", this.i18nService.t("webVault") + " - Safari"]; return ["bwi-globe", this.i18nService.t("webVault") + " - Safari"];
case DeviceType.VivaldiBrowser: case DeviceType.VivaldiBrowser:
return ["fa-globe", this.i18nService.t("webVault") + " - Vivaldi"]; return ["bwi-globe", this.i18nService.t("webVault") + " - Vivaldi"];
case DeviceType.EdgeBrowser: case DeviceType.EdgeBrowser:
return ["fa-globe", this.i18nService.t("webVault") + " - Edge"]; return ["bwi-globe", this.i18nService.t("webVault") + " - Edge"];
case DeviceType.IEBrowser: case DeviceType.IEBrowser:
return ["fa-globe", this.i18nService.t("webVault") + " - IE"]; return ["bwi-globe", this.i18nService.t("webVault") + " - IE"];
case DeviceType.UnknownBrowser: case DeviceType.UnknownBrowser:
return ["fa-globe", this.i18nService.t("webVault") + " - " + this.i18nService.t("unknown")]; return [
"bwi-globe",
this.i18nService.t("webVault") + " - " + this.i18nService.t("unknown"),
];
default: default:
return ["fa-globe", this.i18nService.t("unknown")]; return ["bwi-globe", this.i18nService.t("unknown")];
} }
} }

View File

@ -15,7 +15,7 @@
[(ngModel)]="method" [(ngModel)]="method"
/> />
<label class="form-check-label" for="credit-method-paypal"> <label class="form-check-label" for="credit-method-paypal">
<i class="fa fa-fw fa-paypal" aria-hidden="true"></i> PayPal</label <i class="bwi bwi-fw bwi-paypal" aria-hidden="true"></i> PayPal</label
> >
</div> </div>
<div class="form-check form-check-inline"> <div class="form-check form-check-inline">
@ -28,7 +28,7 @@
[(ngModel)]="method" [(ngModel)]="method"
/> />
<label class="form-check-label" for="credit-method-bitcoin"> <label class="form-check-label" for="credit-method-bitcoin">
<i class="fa fa-fw fa-bitcoin" aria-hidden="true"></i> Bitcoin</label <i class="bwi bwi-fw bwi-bitcoin" aria-hidden="true"></i> Bitcoin</label
> >
</div> </div>
</div> </div>
@ -53,7 +53,7 @@
<small class="form-text text-muted">{{ "creditDelayed" | i18n }}</small> <small class="form-text text-muted">{{ "creditDelayed" | i18n }}</small>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading || ppLoading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading || ppLoading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" (click)="cancel()"> <button type="button" class="btn btn-outline-secondary" (click)="cancel()">

View File

@ -9,7 +9,7 @@
<app-payment [hideBank]="!organizationId" [hideCredit]="true"></app-payment> <app-payment [hideBank]="!organizationId" [hideCredit]="true"></app-payment>
<app-tax-info (onCountryChanged)="changeCountry()"></app-tax-info> <app-tax-info (onCountryChanged)="changeCountry()"></app-tax-info>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" (click)="cancel()"> <button type="button" class="btn btn-outline-secondary" (click)="cancel()">

View File

@ -29,7 +29,7 @@
}} }}
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" (click)="cancel()"> <button type="button" class="btn btn-outline-secondary" (click)="cancel()">

View File

@ -32,7 +32,7 @@
<app-callout <app-callout
type="info" type="info"
title="{{ 'oauth2ClientCredentials' | i18n }}" title="{{ 'oauth2ClientCredentials' | i18n }}"
icon="fa-key" icon="bwi bwi-key"
*ngIf="clientSecret" *ngIf="clientSecret"
> >
<p class="mb-1"> <p class="mb-1">
@ -60,7 +60,7 @@
[disabled]="form.loading" [disabled]="form.loading"
*ngIf="!clientSecret" *ngIf="!clientSecret"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ (isRotation ? "rotateApiKey" : "viewApiKey") | i18n }}</span> <span>{{ (isRotation ? "rotateApiKey" : "viewApiKey") | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -55,7 +55,7 @@
</div> </div>
</ng-container> </ng-container>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span *ngIf="!tokenSent">{{ "continue" | i18n }}</span> <span *ngIf="!tokenSent">{{ "continue" | i18n }}</span>
<span *ngIf="tokenSent">{{ "changeEmail" | i18n }}</span> <span *ngIf="tokenSent">{{ "changeEmail" | i18n }}</span>
</button> </button>

View File

@ -27,7 +27,7 @@
rel="noopener" rel="noopener"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
<select id="kdf" name="Kdf" [(ngModel)]="kdf" class="form-control" required> <select id="kdf" name="Kdf" [(ngModel)]="kdf" class="form-control" required>
<option *ngFor="let o of kdfOptions" [ngValue]="o.value">{{ o.name }}</option> <option *ngFor="let o of kdfOptions" [ngValue]="o.value">{{ o.name }}</option>
@ -44,7 +44,7 @@
rel="noopener" rel="noopener"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
<input <input
id="kdfIterations" id="kdfIterations"
@ -69,7 +69,7 @@
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "changeKdf" | i18n }}</span> <span>{{ "changeKdf" | i18n }}</span>
</button> </button>
</form> </form>

View File

@ -79,12 +79,12 @@
rel="noopener" rel="noopener"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "changeMasterPassword" | i18n }}</span> <span>{{ "changeMasterPassword" | i18n }}</span>
</button> </button>
</form> </form>

View File

@ -26,7 +26,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-danger btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-danger btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "deauthorizeSessions" | i18n }}</span> <span>{{ "deauthorizeSessions" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -26,7 +26,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-danger btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-danger btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "deleteAccount" | i18n }}</span> <span>{{ "deleteAccount" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -6,7 +6,7 @@
<h2>{{ "customEqDomains" | i18n }}</h2> <h2>{{ "customEqDomains" | i18n }}</h2>
<p *ngIf="loading"> <p *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -33,22 +33,22 @@
(click)="remove(i)" (click)="remove(i)"
appA11yTitle="{{ 'remove' | i18n }}" appA11yTitle="{{ 'remove' | i18n }}"
> >
<i class="fa fa-minus-circle fa-lg" aria-hidden="true"></i> <i class="bwi bwi-minus-circle bwi-lg" aria-hidden="true"></i>
</button> </button>
</div> </div>
<button type="button" (click)="add()" class="btn btn-outline-secondary btn-sm mb-2"> <button type="button" (click)="add()" class="btn btn-outline-secondary btn-sm mb-2">
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> {{ "newCustomDomain" | i18n }} <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i> {{ "newCustomDomain" | i18n }}
</button> </button>
<small class="text-muted d-block mb-3">{{ "newCustomDomainDesc" | i18n }}</small> <small class="text-muted d-block mb-3">{{ "newCustomDomainDesc" | i18n }}</small>
</ng-container> </ng-container>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<h2 class="spaced-header">{{ "globalEqDomains" | i18n }}</h2> <h2 class="spaced-header">{{ "globalEqDomains" | i18n }}</h2>
<p *ngIf="loading"> <p *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -68,7 +68,7 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a <a
@ -78,7 +78,7 @@
(click)="toggleExcluded(d)" (click)="toggleExcluded(d)"
*ngIf="!d.excluded" *ngIf="!d.excluded"
> >
<i class="fa fa-fw fa-close" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-close" aria-hidden="true"></i>
{{ "exclude" | i18n }} {{ "exclude" | i18n }}
</a> </a>
<a <a
@ -88,11 +88,11 @@
(click)="toggleExcluded(d)" (click)="toggleExcluded(d)"
*ngIf="d.excluded" *ngIf="d.excluded"
> >
<i class="fa fa-fw fa-plus" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-plus" aria-hidden="true"></i>
{{ "include" | i18n }} {{ "include" | i18n }}
</a> </a>
<a class="dropdown-item" href="#" appStopClick (click)="customize(d)"> <a class="dropdown-item" href="#" appStopClick (click)="customize(d)">
<i class="fa fa-fw fa-scissors" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-cut" aria-hidden="true"></i>
{{ "customize" | i18n }} {{ "customize" | i18n }}
</a> </a>
</div> </div>
@ -102,7 +102,7 @@
</tbody> </tbody>
</table> </table>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
</form> </form>

View File

@ -24,7 +24,7 @@
</div> </div>
<div class="modal-body" *ngIf="loading"> <div class="modal-body" *ngIf="loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -53,7 +53,7 @@
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
href="https://bitwarden.com/help/article/emergency-access/#user-access" href="https://bitwarden.com/help/article/emergency-access/#user-access"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</h3> </h3>
<div class="form-check mt-2 form-check-block"> <div class="form-check mt-2 form-check-block">
@ -107,7 +107,7 @@
[disabled]="loading || submitBtn.loading || readOnly" [disabled]="loading || submitBtn.loading || readOnly"
> >
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
*ngIf="loading || submitBtn.loading" *ngIf="loading || submitBtn.loading"
@ -128,12 +128,12 @@
[disabled]="deleteBtn.loading" [disabled]="deleteBtn.loading"
> >
<i <i
class="fa fa-trash-o fa-lg fa-fw" class="bwi bwi-trash bwi-lg bwi-fw"
[hidden]="deleteBtn.loading" [hidden]="deleteBtn.loading"
aria-hidden="true" aria-hidden="true"
></i> ></i>
<i <i
class="fa fa-spinner fa-spin fa-lg fa-fw" class="bwi bwi-spinner bwi-spin bwi-lg bwi-fw"
[hidden]="!deleteBtn.loading" [hidden]="!deleteBtn.loading"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"

View File

@ -44,7 +44,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "confirm" | i18n }}</span> <span>{{ "confirm" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -67,7 +67,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -15,7 +15,7 @@
}}</a> }}</a>
<ng-container *ngIf="!organization && c.organizationId"> <ng-container *ngIf="!organization && c.organizationId">
<i <i
class="fa fa-cube" class="bwi bwi-collection"
appStopProp appStopProp
title="{{ 'shared' | i18n }}" title="{{ 'shared' | i18n }}"
aria-hidden="true" aria-hidden="true"
@ -24,7 +24,7 @@
</ng-container> </ng-container>
<ng-container *ngIf="c.hasAttachments"> <ng-container *ngIf="c.hasAttachments">
<i <i
class="fa fa-paperclip" class="bwi bwi-paperclip"
appStopProp appStopProp
title="{{ 'attachments' | i18n }}" title="{{ 'attachments' | i18n }}"
aria-hidden="true" aria-hidden="true"
@ -45,11 +45,11 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton"> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#" appStopClick (click)="viewAttachments(c)"> <a class="dropdown-item" href="#" appStopClick (click)="viewAttachments(c)">
<i class="fa fa-fw fa-paperclip" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-paperclip" aria-hidden="true"></i>
{{ "attachments" | i18n }} {{ "attachments" | i18n }}
</a> </a>
</div> </div>
@ -61,7 +61,7 @@
</ng-container> </ng-container>
<ng-container *ngIf="!loaded"> <ng-container *ngIf="!loaded">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>

View File

@ -32,7 +32,7 @@
(click)="invite()" (click)="invite()"
[disabled]="!canAccessPremium" [disabled]="!canAccessPremium"
> >
<i aria-hidden="true" class="fa fa-plus fa-fw"></i> <i aria-hidden="true" class="bwi bwi-plus bwi-fw"></i>
{{ "addEmergencyContact" | i18n }} {{ "addEmergencyContact" | i18n }}
</button> </button>
</div> </div>
@ -48,7 +48,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
<a href="#" appStopClick (click)="edit(c)">{{ c.email }}</a> <a href="#" appStopClick (click)="edit(c)">{{ c.email }}</a>
@ -90,7 +91,7 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a <a
@ -100,7 +101,7 @@
(click)="reinvite(c)" (click)="reinvite(c)"
*ngIf="c.status === emergencyAccessStatusType.Invited" *ngIf="c.status === emergencyAccessStatusType.Invited"
> >
<i class="fa fa-fw fa-envelope-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-envelope" aria-hidden="true"></i>
{{ "resendInvitation" | i18n }} {{ "resendInvitation" | i18n }}
</a> </a>
<a <a
@ -110,7 +111,7 @@
(click)="confirm(c)" (click)="confirm(c)"
*ngIf="c.status === emergencyAccessStatusType.Accepted" *ngIf="c.status === emergencyAccessStatusType.Accepted"
> >
<i class="fa fa-fw fa-check" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-check" aria-hidden="true"></i>
{{ "confirm" | i18n }} {{ "confirm" | i18n }}
</a> </a>
<a <a
@ -120,7 +121,7 @@
(click)="approve(c)" (click)="approve(c)"
*ngIf="c.status === emergencyAccessStatusType.RecoveryInitiated" *ngIf="c.status === emergencyAccessStatusType.RecoveryInitiated"
> >
<i class="fa fa-fw fa-check" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-check" aria-hidden="true"></i>
{{ "approve" | i18n }} {{ "approve" | i18n }}
</a> </a>
<a <a
@ -133,11 +134,11 @@
c.status === emergencyAccessStatusType.RecoveryApproved c.status === emergencyAccessStatusType.RecoveryApproved
" "
> >
<i class="fa fa-fw fa-remove" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-close" aria-hidden="true"></i>
{{ "reject" | i18n }} {{ "reject" | i18n }}
</a> </a>
<a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(c)"> <a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(c)">
<i class="fa fa-fw fa-remove" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-remove" aria-hidden="true"></i>
{{ "remove" | i18n }} {{ "remove" | i18n }}
</a> </a>
</div> </div>
@ -163,7 +164,8 @@
size="25" size="25"
[circle]="true" [circle]="true"
[fontSize]="14" [fontSize]="14"
></app-avatar> >
</app-avatar>
</td> </td>
<td> <td>
<span>{{ c.email }}</span> <span>{{ c.email }}</span>
@ -205,7 +207,7 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a <a
@ -215,7 +217,7 @@
(click)="requestAccess(c)" (click)="requestAccess(c)"
*ngIf="c.status === emergencyAccessStatusType.Confirmed" *ngIf="c.status === emergencyAccessStatusType.Confirmed"
> >
<i class="fa fa-fw fa-envelope-o" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-envelope" aria-hidden="true"></i>
{{ "requestAccess" | i18n }} {{ "requestAccess" | i18n }}
</a> </a>
<a <a
@ -228,7 +230,7 @@
c.type === emergencyAccessType.Takeover c.type === emergencyAccessType.Takeover
" "
> >
<i class="fa fa-fw fa-key" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-key" aria-hidden="true"></i>
{{ "takeover" | i18n }} {{ "takeover" | i18n }}
</a> </a>
<a <a
@ -239,11 +241,11 @@
c.type === emergencyAccessType.View c.type === emergencyAccessType.View
" "
> >
<i class="fa fa-fw fa-eye" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-eye" aria-hidden="true"></i>
{{ "view" | i18n }} {{ "view" | i18n }}
</a> </a>
<a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(c)"> <a class="dropdown-item text-danger" href="#" appStopClick (click)="remove(c)">
<i class="fa fa-fw fa-remove" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-close" aria-hidden="true"></i>
{{ "remove" | i18n }} {{ "remove" | i18n }}
</a> </a>
</div> </div>

View File

@ -1,4 +1,4 @@
<a class="dropdown-item" href="#" appStopClick (click)="submit(returnUri, true)"> <a class="dropdown-item" href="#" appStopClick (click)="submit(returnUri, true)">
<i class="fa fa-fw fa-link" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-link" aria-hidden="true"></i>
{{ "linkSso" | i18n }} {{ "linkSso" | i18n }}
</a> </a>

View File

@ -57,7 +57,7 @@
rel="noopener" rel="noopener"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</div> </div>
<select id="locale" name="Locale" [(ngModel)]="locale" class="form-control"> <select id="locale" name="Locale" [(ngModel)]="locale" class="form-control">
@ -85,7 +85,7 @@
rel="noopener" rel="noopener"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</div> </div>
<small class="form-text text-muted">{{ "disableIconsDesc" | i18n }}</small> <small class="form-text text-muted">{{ "disableIconsDesc" | i18n }}</small>
@ -108,7 +108,7 @@
rel="noopener" rel="noopener"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</div> </div>
<small class="form-text text-muted">{{ "enableGravatarsDesc" | i18n }}</small> <small class="form-text text-muted">{{ "enableGravatarsDesc" | i18n }}</small>

View File

@ -1,5 +1,9 @@
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<ng-container *ngIf="createOrganization && selfHosted"> <ng-container *ngIf="createOrganization && selfHosted">
@ -13,7 +17,7 @@
}}</small> }}</small>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
</form> </form>
@ -363,7 +367,7 @@
</div> </div>
<div class="mt-4"> <div class="mt-4">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" (click)="cancel()" *ngIf="showCancel"> <button type="button" class="btn btn-outline-secondary" (click)="cancel()" *ngIf="showCancel">

View File

@ -1,16 +1,16 @@
<ng-container *ngIf="vault"> <ng-container *ngIf="vault">
<p *ngIf="!loaded" class="text-muted"> <p *ngIf="!loaded" class="text-muted">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</p> </p>
<ng-container *ngIf="loaded"> <ng-container *ngIf="loaded">
<ul class="fa-ul card-ul carets" *ngIf="organizations && organizations.length"> <ul class="bwi-ul card-ul carets" *ngIf="organizations && organizations.length">
<li *ngFor="let o of organizations"> <li *ngFor="let o of organizations">
<a [routerLink]="['/organizations', o.id]" class="text-body"> <a [routerLink]="['/organizations', o.id]" class="text-body">
<i class="fa-li fa fa-caret-right" aria-hidden="true"></i> {{ o.name }} <i class="bwi bwi-li bwi-caret-right" aria-hidden="true"></i> {{ o.name }}
<ng-container *ngIf="!o.enabled"> <ng-container *ngIf="!o.enabled">
<i <i
class="fa fa-exclamation-triangle text-danger" class="bwi bwi-exclamation-triangle text-danger"
title="{{ 'organizationIsDisabled' | i18n }}" title="{{ 'organizationIsDisabled' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -22,7 +22,7 @@
<p *ngIf="!organizations || !organizations.length">{{ "noOrganizationsList" | i18n }}</p> <p *ngIf="!organizations || !organizations.length">{{ "noOrganizationsList" | i18n }}</p>
</ng-container> </ng-container>
<a href="#" routerLink="/settings/create-organization" class="btn btn-block btn-outline-primary"> <a href="#" routerLink="/settings/create-organization" class="btn btn-block btn-outline-primary">
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "newOrganization" | i18n }} {{ "newOrganization" | i18n }}
</a> </a>
</ng-container> </ng-container>
@ -33,7 +33,7 @@
<small [appApiAction]="actionPromise" #action> <small [appApiAction]="actionPromise" #action>
<ng-container *ngIf="action.loading"> <ng-container *ngIf="action.loading">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -47,13 +47,13 @@
class="btn btn-sm btn-outline-primary ml-auto" class="btn btn-sm btn-outline-primary ml-auto"
*ngIf="!loaded || (organizations && organizations.length)" *ngIf="!loaded || (organizations && organizations.length)"
> >
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "newOrganization" | i18n }} {{ "newOrganization" | i18n }}
</a> </a>
</div> </div>
<ng-container *ngIf="!loaded"> <ng-container *ngIf="!loaded">
<i <i
class="fa fa-spinner fa-spin text-muted" class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -63,7 +63,7 @@
<ng-container *ngIf="!organizations || !organizations.length"> <ng-container *ngIf="!organizations || !organizations.length">
<p>{{ "noOrganizationsList" | i18n }}</p> <p>{{ "noOrganizationsList" | i18n }}</p>
<a href="#" routerLink="/settings/create-organization" class="btn btn-outline-primary"> <a href="#" routerLink="/settings/create-organization" class="btn btn-outline-primary">
<i class="fa fa-plus fa-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
{{ "newOrganization" | i18n }} {{ "newOrganization" | i18n }}
</a> </a>
</ng-container> </ng-container>
@ -77,7 +77,7 @@
<a href="#" [routerLink]="['/organizations', o.id]">{{ o.name }}</a> <a href="#" [routerLink]="['/organizations', o.id]">{{ o.name }}</a>
<ng-container *ngIf="!o.enabled"> <ng-container *ngIf="!o.enabled">
<i <i
class="fa fa-exclamation-triangle text-danger" class="bwi bwi-exclamation-triangle text-danger"
title="{{ 'organizationIsDisabled' | i18n }}" title="{{ 'organizationIsDisabled' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -85,7 +85,7 @@
</ng-container> </ng-container>
<ng-container *ngIf="showEnrolledStatus(o)"> <ng-container *ngIf="showEnrolledStatus(o)">
<i <i
class="fa fa-key" class="bwi bwi-key"
appStopProp appStopProp
title="{{ 'enrolledPasswordReset' | i18n }}" title="{{ 'enrolledPasswordReset' | i18n }}"
aria-hidden="true" aria-hidden="true"
@ -103,7 +103,7 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<a <a
@ -113,7 +113,7 @@
appStopClick appStopClick
(click)="toggleResetPasswordEnrollment(o)" (click)="toggleResetPasswordEnrollment(o)"
> >
<i class="fa fa-fw fa-key" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-key" aria-hidden="true"></i>
{{ "enrollPasswordReset" | i18n }} {{ "enrollPasswordReset" | i18n }}
</a> </a>
<a <a
@ -123,7 +123,7 @@
appStopClick appStopClick
(click)="toggleResetPasswordEnrollment(o)" (click)="toggleResetPasswordEnrollment(o)"
> >
<i class="fa fa-fw fa-undo" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-undo" aria-hidden="true"></i>
{{ "withdrawPasswordReset" | i18n }} {{ "withdrawPasswordReset" | i18n }}
</a> </a>
<ng-container *ngIf="o.useSso && o.identifier"> <ng-container *ngIf="o.useSso && o.identifier">
@ -134,7 +134,7 @@
appStopClick appStopClick
(click)="unlinkSso(o)" (click)="unlinkSso(o)"
> >
<i class="fa fa-fw fa-chain-broken" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-chain-broken" aria-hidden="true"></i>
{{ "unlinkSso" | i18n }} {{ "unlinkSso" | i18n }}
</a> </a>
<ng-template #linkSso> <ng-template #linkSso>
@ -142,7 +142,7 @@
</ng-template> </ng-template>
</ng-container> </ng-container>
<a class="dropdown-item text-danger" href="#" appStopClick (click)="leave(o)"> <a class="dropdown-item text-danger" href="#" appStopClick (click)="leave(o)">
<i class="fa fa-fw fa-sign-out" aria-hidden="true"></i> <i class="bwi bwi-fw bwi-sign-out" aria-hidden="true"></i>
{{ "leave" | i18n }} {{ "leave" | i18n }}
</a> </a>
</div> </div>

View File

@ -10,7 +10,7 @@
(change)="changeMethod()" (change)="changeMethod()"
/> />
<label class="form-check-label" for="method-card"> <label class="form-check-label" for="method-card">
<i class="fa fa-fw fa-credit-card" aria-hidden="true"></i> {{ "creditCard" | i18n }}</label <i class="bwi bwi-fw bwi-credit-card" aria-hidden="true"></i> {{ "creditCard" | i18n }}</label
> >
</div> </div>
<div class="form-check form-check-inline mr-4" *ngIf="!hideBank"> <div class="form-check form-check-inline mr-4" *ngIf="!hideBank">
@ -24,7 +24,7 @@
(change)="changeMethod()" (change)="changeMethod()"
/> />
<label class="form-check-label" for="method-bank"> <label class="form-check-label" for="method-bank">
<i class="fa fa-fw fa-university" aria-hidden="true"></i> {{ "bankAccount" | i18n }}</label <i class="bwi bwi-fw bwi-bank" aria-hidden="true"></i> {{ "bankAccount" | i18n }}</label
> >
</div> </div>
<div class="form-check form-check-inline" *ngIf="!hidePaypal"> <div class="form-check form-check-inline" *ngIf="!hidePaypal">
@ -38,7 +38,7 @@
(change)="changeMethod()" (change)="changeMethod()"
/> />
<label class="form-check-label" for="method-paypal"> <label class="form-check-label" for="method-paypal">
<i class="fa fa-fw fa-paypal" aria-hidden="true"></i> PayPal</label <i class="bwi bwi-fw bwi-paypal" aria-hidden="true"></i> PayPal</label
> >
</div> </div>
<div class="form-check form-check-inline" *ngIf="!hideCredit"> <div class="form-check form-check-inline" *ngIf="!hideCredit">
@ -52,7 +52,7 @@
(change)="changeMethod()" (change)="changeMethod()"
/> />
<label class="form-check-label" for="method-credit"> <label class="form-check-label" for="method-credit">
<i class="fa fa-fw fa-dollar" aria-hidden="true"></i> {{ "accountCredit" | i18n }}</label <i class="bwi bwi-fw bwi-dollar" aria-hidden="true"></i> {{ "accountCredit" | i18n }}</label
> >
</div> </div>
</div> </div>
@ -87,7 +87,7 @@
class="ml-auto" class="ml-auto"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i> <i class="bwi bwi-question-circle" aria-hidden="true"></i>
</a> </a>
</div> </div>
<div id="stripe-card-cvc-element" class="form-control stripe-form-control"></div> <div id="stripe-card-cvc-element" class="form-control stripe-form-control"></div>

View File

@ -5,39 +5,39 @@
type="info" type="info"
*ngIf="canAccessPremium" *ngIf="canAccessPremium"
title="{{ 'youHavePremiumAccess' | i18n }}" title="{{ 'youHavePremiumAccess' | i18n }}"
icon="fa-star" icon="bwi bwi-star-f"
> >
{{ "alreadyPremiumFromOrg" | i18n }} {{ "alreadyPremiumFromOrg" | i18n }}
</app-callout> </app-callout>
<app-callout type="success"> <app-callout type="success">
<p>{{ "premiumUpgradeUnlockFeatures" | i18n }}</p> <p>{{ "premiumUpgradeUnlockFeatures" | i18n }}</p>
<ul class="fa-ul"> <ul class="bwi-ul">
<li> <li>
<i class="fa fa-check text-success fa-li" aria-hidden="true"></i> <i class="bwi bwi-check text-success bwi-li" aria-hidden="true"></i>
{{ "premiumSignUpStorage" | i18n }} {{ "premiumSignUpStorage" | i18n }}
</li> </li>
<li> <li>
<i class="fa fa-check text-success fa-li" aria-hidden="true"></i> <i class="bwi bwi-check text-success bwi-li" aria-hidden="true"></i>
{{ "premiumSignUpTwoStep" | i18n }} {{ "premiumSignUpTwoStep" | i18n }}
</li> </li>
<li> <li>
<i class="fa fa-check text-success fa-li" aria-hidden="true"></i> <i class="bwi bwi-check text-success bwi-li" aria-hidden="true"></i>
{{ "premiumSignUpEmergency" | i18n }} {{ "premiumSignUpEmergency" | i18n }}
</li> </li>
<li> <li>
<i class="fa fa-check text-success fa-li" aria-hidden="true"></i> <i class="bwi bwi-check text-success bwi-li" aria-hidden="true"></i>
{{ "premiumSignUpReports" | i18n }} {{ "premiumSignUpReports" | i18n }}
</li> </li>
<li> <li>
<i class="fa fa-check text-success fa-li" aria-hidden="true"></i> <i class="bwi bwi-check text-success bwi-li" aria-hidden="true"></i>
{{ "premiumSignUpTotp" | i18n }} {{ "premiumSignUpTotp" | i18n }}
</li> </li>
<li> <li>
<i class="fa fa-check text-success fa-li" aria-hidden="true"></i> <i class="bwi bwi-check text-success bwi-li" aria-hidden="true"></i>
{{ "premiumSignUpSupport" | i18n }} {{ "premiumSignUpSupport" | i18n }}
</li> </li>
<li> <li>
<i class="fa fa-check text-success fa-li" aria-hidden="true"></i> <i class="bwi bwi-check text-success bwi-li" aria-hidden="true"></i>
{{ "premiumSignUpFuture" | i18n }} {{ "premiumSignUpFuture" | i18n }}
</li> </li>
</ul> </ul>
@ -65,7 +65,7 @@
}}</small> }}</small>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
</form> </form>
@ -116,7 +116,7 @@
</div> </div>
<small class="text-muted font-italic">{{ "paymentChargedAnnually" | i18n }}</small> <small class="text-muted font-italic">{{ "paymentChargedAnnually" | i18n }}</small>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span> <span>{{ "submit" | i18n }}</span>
</button> </button>
</form> </form>

View File

@ -1,5 +1,9 @@
<div *ngIf="loading"> <div *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin text-muted"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</div> </div>
<form <form
@ -45,7 +49,8 @@
dynamic="true" dynamic="true"
size="75" size="75"
fontSize="35" fontSize="35"
></app-avatar> >
</app-avatar>
</div> </div>
<hr /> <hr />
<p *ngIf="fingerprint"> <p *ngIf="fingerprint">
@ -56,14 +61,14 @@
rel="noopener" rel="noopener"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
<i class="fa fa-question-circle-o" aria-hidden="true"></i></a <i class="bwi bwi-question-circle" aria-hidden="true"></i></a
><br /> ><br />
<code>{{ fingerprint }}</code> <code>{{ fingerprint }}</code>
</p> </p>
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "save" | i18n }}</span> <span>{{ "save" | i18n }}</span>
</button> </button>
</form> </form>

View File

@ -26,7 +26,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-danger btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-danger btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "purgeVault" | i18n }}</span> <span>{{ "purgeVault" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -2,7 +2,7 @@
<h1>{{ "sponsoredFamilies" | i18n }}</h1> <h1>{{ "sponsoredFamilies" | i18n }}</h1>
</div> </div>
<ng-container *ngIf="loading"> <ng-container *ngIf="loading">
<i class="fa fa-spinner fa-spin text-muted" title="{{ 'loading' | i18n }}"></i> <i class="bwi bwi-spinner bwi-spin text-muted" title="{{ 'loading' | i18n }}"></i>
<span class="sr-only">{{ "loading" | i18n }}</span> <span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container> </ng-container>
<ng-container *ngIf="!loading"> <ng-container *ngIf="!loading">
@ -47,7 +47,7 @@
required required
/> />
<button class="btn btn-primary btn-submit mt-4" type="submit" [disabled]="form.loading"> <button class="btn btn-primary btn-submit mt-4" type="submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "redeem" | i18n }}</span> <span>{{ "redeem" | i18n }}</span>
</button> </button>
</div> </div>

View File

@ -13,7 +13,7 @@
aria-expanded="false" aria-expanded="false"
appA11yTitle="{{ 'options' | i18n }}" appA11yTitle="{{ 'options' | i18n }}"
> >
<i class="fa fa-cog fa-lg" aria-hidden="true"></i> <i class="bwi bwi-cog bwi-lg" aria-hidden="true"></i>
</button> </button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton"> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
<button <button
@ -24,7 +24,7 @@
(click)="resendEmail()" (click)="resendEmail()"
[attr.aria-label]="'resendEmailLabel' | i18n: sponsoringOrg.familySponsorshipFriendlyName" [attr.aria-label]="'resendEmailLabel' | i18n: sponsoringOrg.familySponsorshipFriendlyName"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "resendEmail" | i18n }}</span> <span>{{ "resendEmail" | i18n }}</span>
</button> </button>
<button <button
@ -35,7 +35,7 @@
(click)="revokeSponsorship()" (click)="revokeSponsorship()"
[attr.aria-label]="'revokeAccount' | i18n: sponsoringOrg.familySponsorshipFriendlyName" [attr.aria-label]="'revokeAccount' | i18n: sponsoringOrg.familySponsorshipFriendlyName"
> >
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "remove" | i18n }}</span> <span>{{ "remove" | i18n }}</span>
</button> </button>
</div> </div>

View File

@ -38,16 +38,16 @@
</p> </p>
</ng-container> </ng-container>
<ng-container *ngIf="enabled"> <ng-container *ngIf="enabled">
<app-callout type="success" title="{{ 'enabled' | i18n }}" icon="fa-check-circle"> <app-callout type="success" title="{{ 'enabled' | i18n }}" icon="bwi bwi-check-circle">
<p>{{ "twoStepLoginProviderEnabled" | i18n }}</p> <p>{{ "twoStepLoginProviderEnabled" | i18n }}</p>
{{ "twoStepAuthenticatorReaddDesc" | i18n }} {{ "twoStepAuthenticatorReaddDesc" | i18n }}
</app-callout> </app-callout>
<img class="float-right mfaType0" alt="Authenticator app logo" /> <img class="float-right mfaType0" alt="Authenticator app logo" />
<p>{{ "twoStepAuthenticatorNeedApp" | i18n }}</p> <p>{{ "twoStepAuthenticatorNeedApp" | i18n }}</p>
</ng-container> </ng-container>
<ul class="fa-ul"> <ul class="bwi-ul">
<li> <li>
<i class="fa-li fa fa-apple"></i>{{ "iosDevices" | i18n }}: <i class="bwi bwi-li bwi-apple"></i>{{ "iosDevices" | i18n }}:
<a <a
href="https://itunes.apple.com/us/app/authy/id494168017?mt=8" href="https://itunes.apple.com/us/app/authy/id494168017?mt=8"
target="_blank" target="_blank"
@ -56,7 +56,7 @@
> >
</li> </li>
<li> <li>
<i class="fa-li fa fa-android"></i>{{ "androidDevices" | i18n }}: <i class="bwi bwi-li bwi-android"></i>{{ "androidDevices" | i18n }}:
<a <a
href="https://play.google.com/store/apps/details?id=com.authy.authy" href="https://play.google.com/store/apps/details?id=com.authy.authy"
target="_blank" target="_blank"
@ -65,7 +65,7 @@
> >
</li> </li>
<li> <li>
<i class="fa-li fa fa-windows"></i>{{ "windowsDevices" | i18n }}: <i class="bwi bwi-li bwi-windows"></i>{{ "windowsDevices" | i18n }}:
<a <a
href="https://www.microsoft.com/p/authenticator/9wzdncrfj3rj" href="https://www.microsoft.com/p/authenticator/9wzdncrfj3rj"
target="_blank" target="_blank"
@ -98,7 +98,11 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span *ngIf="!enabled">{{ "enable" | i18n }}</span> <span *ngIf="!enabled">{{ "enable" | i18n }}</span>
<span *ngIf="enabled">{{ "disable" | i18n }}</span> <span *ngIf="enabled">{{ "disable" | i18n }}</span>
</button> </button>

View File

@ -32,7 +32,7 @@
> >
<div class="modal-body"> <div class="modal-body">
<ng-container *ngIf="enabled"> <ng-container *ngIf="enabled">
<app-callout type="success" title="{{ 'enabled' | i18n }}" icon="fa-check-circle"> <app-callout type="success" title="{{ 'enabled' | i18n }}" icon="bwi bwi-check-circle">
{{ "twoStepLoginProviderEnabled" | i18n }} {{ "twoStepLoginProviderEnabled" | i18n }}
</app-callout> </app-callout>
<img class="float-right ml-3 mfaType2" alt="Duo logo" /> <img class="float-right ml-3 mfaType2" alt="Duo logo" />
@ -87,7 +87,11 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span *ngIf="!enabled">{{ "enable" | i18n }}</span> <span *ngIf="!enabled">{{ "enable" | i18n }}</span>
<span *ngIf="enabled">{{ "disable" | i18n }}</span> <span *ngIf="enabled">{{ "disable" | i18n }}</span>
</button> </button>

View File

@ -31,7 +31,7 @@
> >
<div class="modal-body"> <div class="modal-body">
<ng-container *ngIf="enabled"> <ng-container *ngIf="enabled">
<app-callout type="success" title="{{ 'enabled' | i18n }}" icon="fa-check-circle"> <app-callout type="success" title="{{ 'enabled' | i18n }}" icon="bwi bwi-check-circle">
{{ "twoStepLoginProviderEnabled" | i18n }} {{ "twoStepLoginProviderEnabled" | i18n }}
</app-callout> </app-callout>
<strong>{{ "email" | i18n }}:</strong> {{ email }} <strong>{{ "email" | i18n }}:</strong> {{ email }}
@ -64,7 +64,7 @@
[disabled]="sendBtn.loading" [disabled]="sendBtn.loading"
> >
<i <i
class="fa fa-spinner fa-spin" class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}" title="{{ 'loading' | i18n }}"
aria-hidden="true" aria-hidden="true"
></i> ></i>
@ -90,7 +90,11 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading"> <button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
<i class="fa fa-spinner fa-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i
class="bwi bwi-spinner bwi-spin"
title="{{ 'loading' | i18n }}"
aria-hidden="true"
></i>
<span *ngIf="!enabled">{{ "enable" | i18n }}</span> <span *ngIf="!enabled">{{ "enable" | i18n }}</span>
<span *ngIf="enabled">{{ "disable" | i18n }}</span> <span *ngIf="enabled">{{ "disable" | i18n }}</span>
</button> </button>

Some files were not shown because too many files have changed in this diff Show More