colorized passwords
This commit is contained in:
parent
37880c75d1
commit
6c22919bd9
2
jslib
2
jslib
|
@ -1 +1 @@
|
||||||
Subproject commit 9283a29d35a18f058f3c84f8aaa919b911f1940a
|
Subproject commit 9694d2922ef033c6c5eead2c7b4a308b6d93bf2f
|
|
@ -54,6 +54,7 @@ import { StopClickDirective } from 'jslib/angular/directives/stop-click.directiv
|
||||||
import { StopPropDirective } from 'jslib/angular/directives/stop-prop.directive';
|
import { StopPropDirective } from 'jslib/angular/directives/stop-prop.directive';
|
||||||
import { TrueFalseValueDirective } from 'jslib/angular/directives/true-false-value.directive';
|
import { TrueFalseValueDirective } from 'jslib/angular/directives/true-false-value.directive';
|
||||||
|
|
||||||
|
import { ColorPasswordPipe } from 'jslib/angular/pipes/color-password.pipe';
|
||||||
import { I18nPipe } from 'jslib/angular/pipes/i18n.pipe';
|
import { I18nPipe } from 'jslib/angular/pipes/i18n.pipe';
|
||||||
import { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe';
|
import { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe';
|
||||||
|
|
||||||
|
@ -156,6 +157,7 @@ registerLocaleData(localeZhTw, 'zh-TW');
|
||||||
CiphersComponent,
|
CiphersComponent,
|
||||||
CiphersListComponent,
|
CiphersListComponent,
|
||||||
CollectionsComponent,
|
CollectionsComponent,
|
||||||
|
ColorPasswordPipe,
|
||||||
CurrentTabComponent,
|
CurrentTabComponent,
|
||||||
EnvironmentComponent,
|
EnvironmentComponent,
|
||||||
ExportComponent,
|
ExportComponent,
|
||||||
|
|
|
@ -20,9 +20,8 @@
|
||||||
<div class="box-content-row box-content-row-flex" *ngFor="let h of history">
|
<div class="box-content-row box-content-row-flex" *ngFor="let h of history">
|
||||||
<div class="row-main">
|
<div class="row-main">
|
||||||
<div class="row-main-content">
|
<div class="row-main-content">
|
||||||
<span class="text monospaced no-ellipsis">
|
<div class="text monospaced password-wrapper no-ellipsis"
|
||||||
{{h.password}}
|
[innerHTML]="h.password | colorPassword"></div>
|
||||||
</span>
|
|
||||||
<span class="detail">{{h.date | date:'medium'}}</span>
|
<span class="detail">{{h.date | date:'medium'}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<content>
|
<content>
|
||||||
<div class="password-block">{{password}}</div>
|
<div class="password-block password-wrapper" [innerHTML]="password | colorPassword"></div>
|
||||||
<div class="box list">
|
<div class="box list">
|
||||||
<div class="box-content single-line">
|
<div class="box-content single-line">
|
||||||
<a class="box-content-row text-primary" href="#" appStopClick appBlurClick
|
<a class="box-content-row text-primary" href="#" appStopClick appBlurClick
|
||||||
|
|
|
@ -112,10 +112,6 @@ p.lead {
|
||||||
padding-bottom: 0 !important;
|
padding-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
[hidden] {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.display-block {
|
.display-block {
|
||||||
display: block !important;
|
display: block !important;
|
||||||
}
|
}
|
||||||
|
@ -134,10 +130,6 @@ p.lead {
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="search"] {
|
|
||||||
-webkit-appearance: textfield;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sr-only {
|
.sr-only {
|
||||||
position: absolute !important;
|
position: absolute !important;
|
||||||
width: 1px !important;
|
width: 1px !important;
|
||||||
|
@ -149,6 +141,23 @@ input[type="search"] {
|
||||||
border: 0 !important;
|
border: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.password-wrapper {
|
||||||
|
display: flex !important;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.password-number {
|
||||||
|
@include themify($themes) {
|
||||||
|
color: themed('passwordNumberColor');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.password-special {
|
||||||
|
@include themify($themes) {
|
||||||
|
color: themed('passwordSpecialColor');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#duo-frame {
|
#duo-frame {
|
||||||
background: url('../images/loading.svg') 0 0 no-repeat;
|
background: url('../images/loading.svg') 0 0 no-repeat;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -200,3 +209,7 @@ app-vault-icon {
|
||||||
background-size: 284px 43px;
|
background-size: 284px 43px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
|
@ -10,9 +10,13 @@ app-sync {
|
||||||
|
|
||||||
app-password-generator .password-block {
|
app-password-generator .password-block {
|
||||||
font-size: $font-size-large;
|
font-size: $font-size-large;
|
||||||
word-break: break-all;
|
|
||||||
font-family: $font-family-monospace;
|
font-family: $font-family-monospace;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
margin: 20px;
|
margin: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,8 @@ $themes: (
|
||||||
infoColor: $brand-info,
|
infoColor: $brand-info,
|
||||||
warningColor: $brand-warning,
|
warningColor: $brand-warning,
|
||||||
logoSuffix: 'dark',
|
logoSuffix: 'dark',
|
||||||
|
passwordNumberColor: #007fde,
|
||||||
|
passwordSpecialColor: #c40800,
|
||||||
),
|
),
|
||||||
dark: (
|
dark: (
|
||||||
textColor: #ffffff,
|
textColor: #ffffff,
|
||||||
|
@ -123,6 +125,8 @@ $themes: (
|
||||||
infoColor: $brand-info,
|
infoColor: $brand-info,
|
||||||
warningColor: $brand-warning,
|
warningColor: $brand-warning,
|
||||||
logoSuffix: 'white',
|
logoSuffix: 'white',
|
||||||
|
passwordNumberColor: #52bdfb,
|
||||||
|
passwordSpecialColor: #ff7c70,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,10 @@
|
||||||
<div class="box-content-row box-content-row-flex" *ngIf="cipher.login.password">
|
<div class="box-content-row box-content-row-flex" *ngIf="cipher.login.password">
|
||||||
<div class="row-main">
|
<div class="row-main">
|
||||||
<span class="row-label">{{'password' | i18n}}</span>
|
<span class="row-label">{{'password' | i18n}}</span>
|
||||||
<span [hidden]="showPassword" class="monospaced">{{cipher.login.maskedPassword}}</span>
|
<div [hidden]="showPassword" class="monospaced password-wrapper">
|
||||||
<span [hidden]="!showPassword" class="monospaced">{{cipher.login.password}}</span>
|
{{cipher.login.maskedPassword}}</div>
|
||||||
|
<div [hidden]="!showPassword" class="monospaced password-wrapper"
|
||||||
|
[innerHTML]="cipher.login.password | colorPassword"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="action-buttons">
|
<div class="action-buttons">
|
||||||
<button type="button" #checkPasswordBtn class="row-btn btn" appBlurClick
|
<button type="button" #checkPasswordBtn class="row-btn btn" appBlurClick
|
||||||
|
|
Loading…
Reference in New Issue