update credential edit style to support nc 25

Signed-off-by: binsky <timo@binsky.org>
This commit is contained in:
binsky 2022-10-21 01:08:54 +02:00
parent d3a1e0a6df
commit 04a6cb4158
10 changed files with 343 additions and 325 deletions

View file

@ -191,6 +191,9 @@
clear: both;
padding: 0 1em; }
.tab-margin-top {
margin-top: 12px; }
/**
* Nextcloud - passman
*
@ -528,6 +531,114 @@
@media only screen and (min-width: 770px) {
#app-content {
width: calc(100vw - 300px); } }
#app-content .edit_credential {
padding-top: 10px; }
#app-content .edit_credential label {
display: block; }
#app-content .edit_credential input[type="text"], #app-content .edit_credential input[type="password"] {
width: 100%; }
#app-content .edit_credential .compromised-button {
margin-top: 15px;
background-color: #e60000;
color: black; }
#app-content .edit_credential .compromised-details {
margin-top: 15px;
display: flex; }
#app-content .edit_credential .compromised-details .icon {
float: left;
height: 20px; }
#app-content .edit_credential .compromised-details .text {
padding-left: 5px;
padding-right: 30px;
color: #e9322d; }
#app-content .edit_credential .tags {
float: left; }
#app-content .edit_credential .tags .tag {
background-color: rgba(240, 240, 240, 0.9);
padding: 4px;
font-size: 11px; }
#app-content .edit_credential tags-input .tags {
width: 100%; }
#app-content .edit_credential tags-input .tags .input {
width: auto !important; }
#app-content .edit_credential tags-input .tags .tag-item {
color: var(--color-text-lighter); }
#app-content .edit_credential .credential_textarea {
width: 100%;
height: 100px; }
#app-content .edit_credential .password_settings label {
overflow: hidden; }
#app-content .edit_credential .password_settings label input[type="checkbox"] {
width: auto !important;
float: left; }
#app-content .edit_credential .password_settings label .label {
float: left; }
#app-content .edit_credential .password_settings label .label.sm {
font-size: 12px; }
#app-content .edit_credential .password_settings .password-settings-padding-left-fix {
padding-left: 0 !important; }
#app-content .edit_credential .field-value .valueInput {
padding-right: 0; }
#app-content .edit_credential .field-value .valueInput input {
-webkit-border-bottom-right-radius: 0;
border-bottom-right-radius: 0;
-webkit-border-top-right-radius: 0;
border-top-right-radius: 0;
background-clip: padding-box; }
#app-content .edit_credential .field-value .valueInput .pw-gen .generate_pw .cell:last-child {
-webkit-border-bottom-right-radius: 0;
border-bottom-right-radius: 0;
-webkit-border-top-right-radius: 0;
border-top-right-radius: 0;
background-clip: padding-box; }
#app-content .edit_credential .field-value .selectType {
padding-left: 0;
margin-left: 0px; }
#app-content .edit_credential .field-value .selectType select {
-webkit-border-bottom-left-radius: 0;
border-bottom-left-radius: 0;
-webkit-border-top-left-radius: 0;
border-top-left-radius: 0;
background-clip: padding-box; }
#app-content .edit_credential .custom_fields, #app-content .edit_credential .files {
margin-top: 10px; }
#app-content .edit_credential .custom_fields table, #app-content .edit_credential .files table {
width: 100%; }
#app-content .edit_credential .custom_fields table thead, #app-content .edit_credential .files table thead {
background-color: var(--color-background-plain);
color: var(--color-primary-text); }
#app-content .edit_credential .custom_fields table thead th.dragger, #app-content .edit_credential .files table thead th.dragger {
width: 3%; }
#app-content .edit_credential .custom_fields table thead th, #app-content .edit_credential .files table thead th {
color: #fff; }
#app-content .edit_credential .custom_fields table thead th.field_actions, #app-content .edit_credential .files table thead th.field_actions {
width: 15%; }
#app-content .edit_credential .custom_fields table tr:hover, #app-content .edit_credential .files table tr:hover {
background-color: transparent; }
#app-content .edit_credential .custom_fields table tr td.dragger, #app-content .edit_credential .files table tr td.dragger {
width: 3%;
text-align: center;
cursor: move;
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab; }
#app-content .edit_credential .custom_fields table tr td.field_actions, #app-content .edit_credential .files table tr td.field_actions {
font-size: 13px;
width: 15%; }
#app-content .edit_credential .custom_fields table tr td.field_actions i, #app-content .edit_credential .files table tr td.field_actions i {
cursor: pointer; }
#app-content .edit_credential .custom_fields table tr td, #app-content .edit_credential .custom_fields table tr th, #app-content .edit_credential .files table tr td, #app-content .edit_credential .files table tr th {
width: 20%;
padding: 5px; }
#app-content .edit_credential .custom_fields table tr td .editable-has-buttons.editable-input, #app-content .edit_credential .custom_fields table tr th .editable-has-buttons.editable-input, #app-content .edit_credential .files table tr td .editable-has-buttons.editable-input, #app-content .edit_credential .files table tr th .editable-has-buttons.editable-input {
width: 55%; }
#app-content .edit_credential .custom_fields table tr td, #app-content .edit_credential .files table tr td {
height: 50px;
vertical-align: middle; }
#app-content .edit_credential .otpText {
padding-right: 10px; }
#app-content .edit_credential .import-selection select {
margin-left: 15px; }
#app-content .main_list #passman-controls {
text-align: center;
border-bottom: 1px solid #c9c9c9; }
@ -742,107 +853,6 @@
@media all and (min-width: 78em) {
#app-content .main_list .grid-view .credential {
width: 20%; } }
#app-content .main_list .edit_credential {
padding-top: 10px; }
#app-content .main_list .edit_credential label {
display: block; }
#app-content .main_list .edit_credential input[type="text"], #app-content .main_list .edit_credential input[type="password"] {
width: 100%; }
#app-content .main_list .edit_credential .compromised-button {
margin-top: 15px;
background-color: #e60000;
color: black; }
#app-content .main_list .edit_credential .compromised-details {
margin-top: 15px;
display: flex; }
#app-content .main_list .edit_credential .compromised-details .icon {
float: left;
height: 20px; }
#app-content .main_list .edit_credential .compromised-details .text {
padding-left: 5px;
padding-right: 30px;
color: #e9322d; }
#app-content .main_list .edit_credential .tags {
float: left; }
#app-content .main_list .edit_credential .tags .tag {
background-color: rgba(240, 240, 240, 0.9);
padding: 4px;
font-size: 11px; }
#app-content .main_list .edit_credential tags-input .tags {
width: 100%; }
#app-content .main_list .edit_credential .credential_textarea {
width: 100%;
height: 100px; }
#app-content .main_list .edit_credential .password_settings label {
overflow: hidden; }
#app-content .main_list .edit_credential .password_settings label input[type="checkbox"] {
width: auto !important;
float: left; }
#app-content .main_list .edit_credential .password_settings label .label {
float: left; }
#app-content .main_list .edit_credential .password_settings label .label.sm {
font-size: 12px; }
#app-content .main_list .edit_credential .password_settings .password-settings-padding-left-fix {
padding-left: 0 !important; }
#app-content .main_list .edit_credential .field-value .valueInput {
padding-right: 0; }
#app-content .main_list .edit_credential .field-value .valueInput input {
-webkit-border-bottom-right-radius: 0;
border-bottom-right-radius: 0;
-webkit-border-top-right-radius: 0;
border-top-right-radius: 0;
background-clip: padding-box; }
#app-content .main_list .edit_credential .field-value .valueInput .pw-gen .generate_pw .cell:last-child {
-webkit-border-bottom-right-radius: 0;
border-bottom-right-radius: 0;
-webkit-border-top-right-radius: 0;
border-top-right-radius: 0;
background-clip: padding-box; }
#app-content .main_list .edit_credential .field-value .selectType {
padding-left: 0;
margin-left: 0px; }
#app-content .main_list .edit_credential .field-value .selectType select {
-webkit-border-bottom-left-radius: 0;
border-bottom-left-radius: 0;
-webkit-border-top-left-radius: 0;
border-top-left-radius: 0;
background-clip: padding-box; }
#app-content .main_list .edit_credential .custom_fields, #app-content .main_list .edit_credential .files {
margin-top: 10px; }
#app-content .main_list .edit_credential .custom_fields table, #app-content .main_list .edit_credential .files table {
width: 100%; }
#app-content .main_list .edit_credential .custom_fields table thead th.dragger, #app-content .main_list .edit_credential .files table thead th.dragger {
width: 3%; }
#app-content .main_list .edit_credential .custom_fields table thead th, #app-content .main_list .edit_credential .files table thead th {
color: #fff; }
#app-content .main_list .edit_credential .custom_fields table thead th.field_actions, #app-content .main_list .edit_credential .files table thead th.field_actions {
width: 15%; }
#app-content .main_list .edit_credential .custom_fields table tr:hover, #app-content .main_list .edit_credential .files table tr:hover {
background-color: transparent; }
#app-content .main_list .edit_credential .custom_fields table tr td.dragger, #app-content .main_list .edit_credential .files table tr td.dragger {
width: 3%;
text-align: center;
cursor: move;
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab; }
#app-content .main_list .edit_credential .custom_fields table tr td.field_actions, #app-content .main_list .edit_credential .files table tr td.field_actions {
font-size: 13px;
width: 15%; }
#app-content .main_list .edit_credential .custom_fields table tr td.field_actions i, #app-content .main_list .edit_credential .files table tr td.field_actions i {
cursor: pointer; }
#app-content .main_list .edit_credential .custom_fields table tr td, #app-content .main_list .edit_credential .custom_fields table tr th, #app-content .main_list .edit_credential .files table tr td, #app-content .main_list .edit_credential .files table tr th {
width: 20%;
padding: 5px; }
#app-content .main_list .edit_credential .custom_fields table tr td .editable-has-buttons.editable-input, #app-content .main_list .edit_credential .custom_fields table tr th .editable-has-buttons.editable-input, #app-content .main_list .edit_credential .files table tr td .editable-has-buttons.editable-input, #app-content .main_list .edit_credential .files table tr th .editable-has-buttons.editable-input {
width: 55%; }
#app-content .main_list .edit_credential .custom_fields table tr td, #app-content .main_list .edit_credential .files table tr td {
height: 50px;
vertical-align: middle; }
#app-content .main_list .edit_credential .otpText {
padding-right: 10px; }
#app-content .main_list .edit_credential .import-selection select {
margin-left: 15px; }
#app-content .main_list .share {
overflow: hidden; }
#app-content .main_list .nopasswords {
@ -1216,8 +1226,6 @@
margin-bottom: 50px; }
.tab_container.settings textarea {
height: 300px; }
.tab_container.settings .tab-margin-top {
margin-top: 12px; }
.import-steps {
padding-left: 16px;
@ -1243,7 +1251,7 @@ h3 {
.setting-group label, .setting-group input {
display: block; }
.setting-group input[type="text"], .setting-group input[type="password"] {
.setting-group input[type="text"], .setting-group input[type="password"], .setting-group textarea {
width: 100%; }
.display-grid {
@ -1402,9 +1410,6 @@ h3 {
margin-left: 0 !important;
margin-right: 0 !important; }
#app-content #app-content-wrapper #passman-controls {
border-bottom: 1px solid #c9c9c9; }
#passman-controls {
display: flow-root;
position: sticky;

File diff suppressed because one or more lines are too long

View file

@ -21,7 +21,7 @@ angular.module('views/partials/credential_template.html', []).run(['$templateCac
angular.module('views/partials/forms/edit_credential/basics.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/partials/forms/edit_credential/basics.html',
'<div class="row"><div class="col-xs-12 col-md-6"><label>{{ \'label\' | translate}}</label><div class="icon-label"><div class="icon-picker" icon-picker="storedCredential"></div><input type="text" class="form-control" ng-model="storedCredential.label"></div><label>{{ \'username\' | translate}}</label><div><input type="text" ng-model="storedCredential.username"></div><label>{{ \'email\' | translate}}</label><div><input type="text" ng-model="storedCredential.email"></div><label>{{ \'password\' | translate}}</label><div><password-gen ng-model="storedCredential.password" settings="pwSettings" callback="pwGenerated"></password-gen><ng-password-meter password="storedCredential.password"></ng-password-meter></div><div><label>{{ \'password.r\' | translate}}</label> <input type="password" ng-model="storedCredential.password_repeat"></div><label>{{ \'url\' | translate}}</label><div><input type="text" ng-model="storedCredential.url"></div></div><div class="col-xs-12 col-md-6"><label>{{ \'notes\' | translate}}</label><div><textarea class="credential_textarea" ng-model="storedCredential.description"></textarea></div><label>{{ \'add.tag\' | translate}}</label><div class="tags_input"><tags-input ng-model="storedCredential.tags" replace-spaces-with-dashes="false"><auto-complete source="getTags($query)" min-length="0"></auto-complete></tags-input></div></div><div class="col-xs-12 col-md-6"><button class="compromised-button" ng-click="compromise()">{{ \'compromised.label\' | translate}}</button><div class="compromised-details" ng-show="storedCredential.compromised"><div class="icon-error-color icon"></div><div class="text">{{ \'compromised.warning\' | translate }}</div></div></div></div>');
'<div class="row"><div class="col-xs-12 col-md-6"><div class="setting-group"><label>{{ \'label\' | translate}}</label><div class="icon-label"><div class="icon-picker" icon-picker="storedCredential"></div><input type="text" class="form-control" ng-model="storedCredential.label"></div></div><div class="setting-group"><label>{{ \'username\' | translate}}</label> <input type="text" ng-model="storedCredential.username"></div><div class="setting-group"><label>{{ \'email\' | translate}}</label> <input type="text" ng-model="storedCredential.email"></div><div class="setting-group"><label>{{ \'password\' | translate}}</label><div><password-gen ng-model="storedCredential.password" settings="pwSettings" callback="pwGenerated"></password-gen><ng-password-meter password="storedCredential.password"></ng-password-meter></div></div><div class="setting-group"><label>{{ \'password.r\' | translate}}</label> <input type="password" ng-model="storedCredential.password_repeat"></div><div class="setting-group"><label>{{ \'url\' | translate}}</label> <input type="text" ng-model="storedCredential.url"></div></div><div class="col-xs-12 col-md-6"><div class="setting-group"><label>{{ \'notes\' | translate}}</label> <textarea class="credential_textarea" ng-model="storedCredential.description"></textarea></div><label>{{ \'add.tag\' | translate}}</label><div class="tags_input"><tags-input ng-model="storedCredential.tags" replace-spaces-with-dashes="false"><auto-complete source="getTags($query)" min-length="0"></auto-complete></tags-input></div></div><div class="col-xs-12 col-md-6"><button class="btn-danger compromised-button" ng-click="compromise()">{{ \'compromised.label\' | translate}}</button><div class="compromised-details" ng-show="storedCredential.compromised"><div class="icon-error-color icon"></div><div class="text">{{ \'compromised.warning\' | translate }}</div></div></div></div>');
}]);
angular.module('views/partials/forms/edit_credential/custom_fields.html', []).run(['$templateCache', function($templateCache) {
@ -33,7 +33,7 @@ angular.module('views/partials/forms/edit_credential/custom_fields.html', []).ru
angular.module('views/partials/forms/edit_credential/files.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/partials/forms/edit_credential/files.html',
'<div class="row file_tab"><div class="col-xs-12 col-md-6"><input class="inputfile" id="file" type="file" file-select success="fileLoaded" error="fileLoadError" progress="fileSelectProgress"> <label for="file"><i class="fa fa-upload" aria-hidden="true"></i> {{\'select.file\' | translate}}</label> <span ng-if="fileprogress.file_percent > 0"><div progress-bar="fileprogress.file_percent"></div></span></div></div><div class="row files" ng-if="storedCredential.files.length > 0"><div class="col-xs-12 table"><table><thead use-theme><tr><th class="field_label">{{ \'file.name\' | translate }}</th><th class="field_value">{{ \'upload.date\' | translate}}</th><th class="field_secret">{{ \'size\' | translate}}</th><th class="field_actions">{{ \'actions\' | translate}}</th></tr></thead><tr ng-repeat="file in storedCredential.files"><td><a href="#" editable-text="file.filename">{{ file.filename || "empty" }}</a></td><td>{{file.created * 1000 | date:\'dd-MM-yyyy @ HH:mm:ss\'}}</td><td>{{file.size | bytes}}</td><td class="field_actions"><i class="fa fa-trash" ng-click="deleteFile(file)"></i></td></tr></table></div></div>');
'<div class="row file_tab"><div class="col-xs-12 col-md-6"><input class="inputfile" id="file" type="file" file-select success="fileLoaded" error="fileLoadError" progress="fileSelectProgress"> <label for="file"><i class="fa fa-upload" aria-hidden="true"></i> {{\'select.file\' | translate}}</label> <span ng-if="fileprogress.file_percent > 0"><div progress-bar="fileprogress.file_percent"></div></span></div></div><div class="row files" ng-if="storedCredential.files.length > 0"><div class="col-xs-12 table"><table><thead><tr><th class="field_label">{{ \'file.name\' | translate }}</th><th class="field_value">{{ \'upload.date\' | translate}}</th><th class="field_secret">{{ \'size\' | translate}}</th><th class="field_actions">{{ \'actions\' | translate}}</th></tr></thead><tr ng-repeat="file in storedCredential.files"><td><a href="#" editable-text="file.filename">{{ file.filename || "empty" }}</a></td><td>{{file.created * 1000 | date:\'dd-MM-yyyy @ HH:mm:ss\'}}</td><td>{{file.size | bytes}}</td><td class="field_actions"><i class="fa fa-trash" ng-click="deleteFile(file)"></i></td></tr></table></div></div>');
}]);
angular.module('views/partials/forms/edit_credential/otp.html', []).run(['$templateCache', function($templateCache) {
@ -45,7 +45,7 @@ angular.module('views/partials/forms/edit_credential/otp.html', []).run(['$templ
angular.module('views/partials/forms/edit_credential/password.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/partials/forms/edit_credential/password.html',
'<div class="row"><div class="col-xs-12 col-md-5 col-lg-5"><label>{{ \'password\' | translate}}</label><div><password-gen ng-model="storedCredential.password" settings="pwSettings" callback="pwGenerated"></password-gen><ng-password-meter password="storedCredential.password"></ng-password-meter></div><label>{{ \'password.r\' | translate}}</label><div><input type="password" ng-model="storedCredential.password_repeat"></div><label>{{ \'expire.date\' | translate}}</label><div><span datetime-picker ng-model="storedCredential.expire_time" class="link" future-only ng-show="storedCredential.expire_time == 0" close-on-select="false">{{\'no.expire.date\' | translate}}</span> <span datetime-picker ng-model="storedCredential.expire_time" class="link" future-only ng-show="storedCredential.expire_time != 0" close-on-select="false">{{ storedCredential.expire_time | date:\'dd-MM-yyyy @ HH:mm:ss\'}}</span></div><label>{{ \'renew.interval\' | translate}}</label><div><input type="number" ng-model="renewIntervalValue" min="0" ng-change="updateInterval(renewIntervalValue, renewIntervalModifier)"> <select ng-model="renewIntervalModifier" ng-change="updateInterval(renewIntervalValue, renewIntervalModifier)"><option value="0">{{ \'disabled\' | translate}}</option><option value="86400">{{ \'days\' | translate }}</option><option value="604800">{{ \'weeks\' | translate}}</option><option value="2592000">{{ \'months\' | translate}}</option><option value="31622400">{{ \'years\' | translate}}</option></select></div></div><div class="col-xs-12 col-md-7 col-lg-7"><b>{{ \'generation.settings\' | translate}}</b><div class="row"><div class="password_settings"><div class="col-xs-12 col-sm-5 col-lg-4"><label><span class="label">{{ \'password.generation.length\' | translate}}</span><br><input type="number" ng-model="pwSettings.length" min="1"></label> <label><span class="label">{{\'password.generation.min_digits\' | translate}}</span><br><input type="number" ng-model="pwSettings.minimumDigitCount" min="0"></label></div><div class="col-xs-12 col-sm-6 col-lg-6"><label><input type="checkbox" ng-model="pwSettings.useUppercase"> <span class="label sm">{{ \'password.generation.uppercase\' | translate}}</span></label> <label><input ng-model="pwSettings.useLowercase" type="checkbox" id="lower"> <span class="label sm">{{ \'password.generation.lowercase\' | translate}}</span></label> <label><input ng-model="pwSettings.useDigits" type="checkbox" id="digits"> <span class="label sm">{{ \'password.generation.digits\' | translate}}</span></label> <label><input type="checkbox" id="special" ng-model="pwSettings.useSpecialChars"> <span class="label sm">{{ \'password.generation.special\' | translate}}</span></label> <label><input type="checkbox" id="ambig" ng-model="pwSettings.avoidAmbiguousCharacters"> <span class="label sm">{{ \'password.generation.ambiguous\' | translate}}</span></label> <label><input type="checkbox" ng-model="pwSettings.requireEveryCharType" id="reqevery"> <span class="label sm">{{ \'password.generation.require_same\' | translate}}</span></label></div></div></div></div></div>');
'<div class="row"><div class="col-xs-12 col-md-5 col-lg-5"><div class="setting-group"><label>{{ \'password\' | translate}}</label><div><password-gen ng-model="storedCredential.password" settings="pwSettings" callback="pwGenerated"></password-gen><ng-password-meter password="storedCredential.password"></ng-password-meter></div></div><div class="setting-group"><label>{{ \'password.r\' | translate}}</label> <input type="password" ng-model="storedCredential.password_repeat"></div><label>{{ \'expire.date\' | translate}}</label><div><span datetime-picker ng-model="storedCredential.expire_time" class="link" future-only ng-show="storedCredential.expire_time == 0" close-on-select="false">{{\'no.expire.date\' | translate}}</span> <span datetime-picker ng-model="storedCredential.expire_time" class="link" future-only ng-show="storedCredential.expire_time != 0" close-on-select="false">{{ storedCredential.expire_time | date:\'dd-MM-yyyy @ HH:mm:ss\'}}</span></div><label>{{ \'renew.interval\' | translate}}</label><div><input type="number" ng-model="renewIntervalValue" min="0" ng-change="updateInterval(renewIntervalValue, renewIntervalModifier)"> <select ng-model="renewIntervalModifier" ng-change="updateInterval(renewIntervalValue, renewIntervalModifier)"><option value="0">{{ \'disabled\' | translate}}</option><option value="86400">{{ \'days\' | translate }}</option><option value="604800">{{ \'weeks\' | translate}}</option><option value="2592000">{{ \'months\' | translate}}</option><option value="31622400">{{ \'years\' | translate}}</option></select></div></div><div class="col-xs-12 col-md-7 col-lg-7"><b>{{ \'generation.settings\' | translate}}</b><div class="row"><div class="password_settings"><div class="col-xs-12 col-sm-5 col-lg-4"><label><span class="label">{{ \'password.generation.length\' | translate}}</span><br><input type="number" ng-model="pwSettings.length" min="1"></label><br><label><span class="label">{{\'password.generation.min_digits\' | translate}}</span><br><input type="number" ng-model="pwSettings.minimumDigitCount" min="0"></label></div><div class="col-xs-12 col-sm-6 col-lg-6 display-grid"><input id="pwSettings.useUppercase" class="checkbox" type="checkbox" ng-model="pwSettings.useUppercase"> <label for="pwSettings.useUppercase">{{\'password.generation.uppercase\' | translate}}</label> <input id="pwSettings.useLowercase" class="checkbox" type="checkbox" ng-model="pwSettings.useLowercase"> <label for="pwSettings.useLowercase">{{\'password.generation.lowercase\' | translate}}</label> <input id="pwSettings.useDigits" class="checkbox" type="checkbox" ng-model="pwSettings.useDigits"> <label for="pwSettings.useDigits">{{\'password.generation.digits\' | translate}}</label> <input id="pwSettings.useSpecialChars" class="checkbox" type="checkbox" ng-model="pwSettings.useSpecialChars"> <label for="pwSettings.useSpecialChars">{{\'password.generation.special\' | translate}}</label> <input id="pwSettings.avoidAmbiguousCharacters" class="checkbox" type="checkbox" ng-model="pwSettings.avoidAmbiguousCharacters"> <label for="pwSettings.avoidAmbiguousCharacters">{{\'password.generation.ambiguous\' | translate}}</label> <input id="pwSettings.requireEveryCharType" class="checkbox" type="checkbox" ng-model="pwSettings.requireEveryCharType"> <label for="pwSettings.requireEveryCharType">{{\'password.generation.require_same\' | translate}}</label></div></div></div></div></div>');
}]);
angular.module('views/partials/forms/settings/export.html', []).run(['$templateCache', function($templateCache) {

View file

@ -63,10 +63,6 @@
}
}
#app-content #app-content-wrapper #passman-controls {
border-bottom: 1px solid #c9c9c9;
}
#passman-controls {
display: flow-root;
position: sticky;

View file

@ -75,6 +75,160 @@
overflow-x: hidden;
.edit_credential {
padding-top: 10px;
label {
display: block;
}
input[type="text"], input[type="password"] {
width: 100%;
}
.compromised-button{
margin-top: 15px;
background-color: #e60000;
color: black;
}
.compromised-details{
margin-top: 15px;
display: flex;
.icon{
float: left;
height: 20px;
}
.text{
padding-left: 5px;
padding-right: 30px;
color: #e9322d;
}
}
.tags {
float: left;
.tag {
background-color: rgba(240, 240, 240, .9);
padding: 4px;
font-size: 11px;
}
}
tags-input {
.tags {
width: 100%;
.input {
width: auto!important;
}
.tag-item {
color: var(--color-text-lighter);
}
}
}
.credential_textarea {
width: 100%;
height: 100px;
}
.password_settings {
label {
overflow: hidden;
input[type="checkbox"] {
width: auto !important;
float: left;
}
.label {
&.sm {
font-size: 12px;
}
float: left;
}
}
.password-settings-padding-left-fix{
padding-left: 0 !important;
}
}
.field-value {
.valueInput {
padding-right: 0;
input {
@include border-right-radius(0);
}
.pw-gen .generate_pw .cell:last-child {
@include border-right-radius(0);
}
}
.selectType {
padding-left: 0;
margin-left: 0px;
select {
@include border-left-radius(0);
}
}
}
.custom_fields, .files {
margin-top: 10px;
table {
width: 100%;
thead {
background-color: var(--color-background-plain);
color: var(--color-primary-text);
th.dragger {
width: 3%;
}
th {
color: #fff;
}
th.field_actions {
width: 15%;
}
}
tr:hover {
background-color: transparent;
}
tr {
td.dragger {
width: 3%;
text-align: center;
cursor: move;
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;
}
td.field_actions {
font-size: 13px;
width: 15%;
i {
cursor: pointer;
}
}
td, th {
width: 20%;
padding: 5px;
.editable-has-buttons.editable-input {
width: 55%;
}
}
td {
height: 50px;
vertical-align: middle;
}
}
}
}
.file_tab {
}
.otpText {
padding-right: 10px;
}
.import-selection{
select{
margin-left: 15px;
}
}
}
//width: 100%;
.main_list {
//min-height: 95%;
@ -96,7 +250,6 @@
}
}
border-bottom: 1px solid #c9c9c9;
}
.title {
@ -108,9 +261,11 @@
display: none;
}
}
.breadcrumb {
float: left;
}
.actions.creatable {
float: left;
overflow: hidden;
@ -353,152 +508,6 @@
}
.edit_credential {
padding-top: 10px;
label {
display: block;
}
input[type="text"], input[type="password"] {
width: 100%;
}
.compromised-button{
margin-top: 15px;
background-color: #e60000;
color: black;
}
.compromised-details{
margin-top: 15px;
display: flex;
.icon{
float: left;
height: 20px;
}
.text{
padding-left: 5px;
padding-right: 30px;
color: #e9322d;
}
}
.tags {
float: left;
.tag {
background-color: rgba(240, 240, 240, .9);
padding: 4px;
font-size: 11px;
}
}
tags-input {
.tags {
width: 100%;
.input {
}
}
}
.credential_textarea {
width: 100%;
height: 100px;
}
.password_settings {
label {
overflow: hidden;
input[type="checkbox"] {
width: auto !important;
float: left;
}
.label {
&.sm {
font-size: 12px;
}
float: left;
}
}
.password-settings-padding-left-fix{
padding-left: 0 !important;
}
}
.field-value {
.valueInput {
padding-right: 0;
input {
@include border-right-radius(0);
}
.pw-gen .generate_pw .cell:last-child {
@include border-right-radius(0);
}
}
.selectType {
padding-left: 0;
margin-left: 0px;
select {
@include border-left-radius(0);
}
}
}
.custom_fields, .files {
margin-top: 10px;
table {
width: 100%;
thead {
th.dragger {
width: 3%;
}
th {
color: #fff;
}
th.field_actions {
width: 15%;
}
}
tr:hover {
background-color: transparent;
}
tr {
td.dragger {
width: 3%;
text-align: center;
cursor: move;
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;
}
td.field_actions {
font-size: 13px;
width: 15%;
i {
cursor: pointer;
}
}
td, th {
width: 20%;
padding: 5px;
.editable-has-buttons.editable-input {
width: 55%;
}
}
td {
height: 50px;
vertical-align: middle;
}
}
}
}
.file_tab {
}
.otpText {
padding-right: 10px;
}
.import-selection{
select{
margin-left: 15px;
}
}
}
.share{
overflow:hidden;
}

View file

@ -82,3 +82,7 @@
clear: both;
padding: 0 1em;
}
.tab-margin-top {
margin-top: 12px;
}

View file

@ -60,10 +60,6 @@
height: 300px;
}
margin-bottom: 50px;
.tab-margin-top {
margin-top: 12px;
}
}
.import-steps {
@ -95,7 +91,7 @@ h3 {
label, input {
display: block;
}
input[type="text"], input[type="password"] {
input[type="text"], input[type="password"], textarea {
width: 100%;
}
}

View file

@ -1,36 +1,46 @@
<div class="row">
<div class="col-xs-12 col-md-6">
<label >{{ 'label' | translate}}</label>
<div class="icon-label">
<div class="icon-picker" icon-picker="storedCredential"></div>
<input type="text" class="form-control" ng-model="storedCredential.label">
<div class="setting-group">
<label >{{ 'label' | translate}}</label>
<div class="icon-label">
<div class="icon-picker" icon-picker="storedCredential"></div>
<input type="text" class="form-control" ng-model="storedCredential.label">
</div>
</div>
<label>{{ 'username' | translate}}</label>
<div>
<div class="setting-group">
<label>{{ 'username' | translate}}</label>
<input type="text" ng-model="storedCredential.username">
</div>
<label>{{ 'email' | translate}}</label>
<div>
<div class="setting-group">
<label>{{ 'email' | translate}}</label>
<input type="text" ng-model="storedCredential.email">
</div>
<label>{{ 'password' | translate}}</label>
<div>
<password-gen ng-model="storedCredential.password" settings="pwSettings" callback="pwGenerated"></password-gen>
<ng-password-meter password="storedCredential.password"></ng-password-meter>
<div class="setting-group">
<label>{{ 'password' | translate}}</label>
<div>
<password-gen ng-model="storedCredential.password" settings="pwSettings" callback="pwGenerated"></password-gen>
<ng-password-meter password="storedCredential.password"></ng-password-meter>
</div>
</div>
<div>
<div class="setting-group">
<label>{{ 'password.r' | translate}}</label>
<input type="password" ng-model="storedCredential.password_repeat">
</div>
<label>{{ 'url' | translate}}</label>
<div>
<div class="setting-group">
<label>{{ 'url' | translate}}</label>
<input type="text" ng-model="storedCredential.url">
</div>
</div>
<div class="col-xs-12 col-md-6">
<label>{{ 'notes' | translate}}</label>
<div>
<div class="setting-group">
<label>{{ 'notes' | translate}}</label>
<textarea class="credential_textarea" ng-model="storedCredential.description"></textarea>
</div>
<label>{{ 'add.tag' | translate}}</label>
@ -40,8 +50,9 @@
</tags-input>
</div>
</div>
<div class="col-xs-12 col-md-6">
<button class="compromised-button" ng-click="compromise()">{{ 'compromised.label' | translate}}</button>
<button class="btn-danger compromised-button" ng-click="compromise()">{{ 'compromised.label' | translate}}</button>
<div class="compromised-details" ng-show="storedCredential.compromised">
<div class="icon-error-color icon"></div>
<div class="text">{{ 'compromised.warning' | translate }}</div>

View file

@ -10,7 +10,7 @@
<div class="row files" ng-if="storedCredential.files.length > 0">
<div class="col-xs-12 table">
<table>
<thead use-theme>
<thead>
<tr>
<th class="field_label">{{ 'file.name' | translate }}</th>
<th class="field_value">{{ 'upload.date' | translate}}</th>
@ -32,4 +32,4 @@
</tr>
</table>
</div>
</div>
</div>

View file

@ -1,17 +1,21 @@
<div class="row">
<div class="col-xs-12 col-md-5 col-lg-5">
<label>{{ 'password' | translate}}</label>
<div>
<password-gen ng-model="storedCredential.password"
settings="pwSettings" callback="pwGenerated"></password-gen>
<ng-password-meter
password="storedCredential.password"></ng-password-meter>
<div class="setting-group">
<label>{{ 'password' | translate}}</label>
<div>
<password-gen ng-model="storedCredential.password"
settings="pwSettings" callback="pwGenerated"></password-gen>
<ng-password-meter
password="storedCredential.password"></ng-password-meter>
</div>
</div>
<label>{{ 'password.r' | translate}}</label>
<div>
<div class="setting-group">
<label>{{ 'password.r' | translate}}</label>
<input type="password" ng-model="storedCredential.password_repeat">
</div>
<label>{{ 'expire.date' | translate}}</label>
<div>
<span datetime-picker ng-model="storedCredential.expire_time" class="link"
@ -48,44 +52,37 @@
<input type="number" ng-model="pwSettings.length" min="1">
</label>
<br>
<label>
<span class="label">{{'password.generation.min_digits' | translate}}</span><br />
<input type="number" ng-model="pwSettings.minimumDigitCount" min="0">
</label>
</div>
<div class="col-xs-12 col-sm-6 col-lg-6">
<label>
<input type="checkbox"
ng-model="pwSettings.useUppercase">
<span class="label sm">{{ 'password.generation.uppercase' | translate}}</span>
</label>
<label>
<input
ng-model="pwSettings.useLowercase" type="checkbox"
id="lower">
<span class="label sm">{{ 'password.generation.lowercase' | translate}}</span>
</label>
<label>
<input ng-model="pwSettings.useDigits" type="checkbox"
id="digits">
<span class="label sm">{{ 'password.generation.digits' | translate}}</span>
</label>
<label>
<input type="checkbox" id="special"
<div class="col-xs-12 col-sm-6 col-lg-6 display-grid">
<input id="pwSettings.useUppercase" class="checkbox" type="checkbox"
ng-model="pwSettings.useUppercase">
<label for="pwSettings.useUppercase">{{'password.generation.uppercase' | translate}}</label>
<input id="pwSettings.useLowercase" class="checkbox" type="checkbox"
ng-model="pwSettings.useLowercase">
<label for="pwSettings.useLowercase">{{'password.generation.lowercase' | translate}}</label>
<input id="pwSettings.useDigits" class="checkbox" type="checkbox"
ng-model="pwSettings.useDigits">
<label for="pwSettings.useDigits">{{'password.generation.digits' | translate}}</label>
<input id="pwSettings.useSpecialChars" class="checkbox" type="checkbox"
ng-model="pwSettings.useSpecialChars">
<span class="label sm">{{ 'password.generation.special' | translate}}</span>
</label>
<label>
<input type="checkbox" id="ambig"
<label for="pwSettings.useSpecialChars">{{'password.generation.special' | translate}}</label>
<input id="pwSettings.avoidAmbiguousCharacters" class="checkbox" type="checkbox"
ng-model="pwSettings.avoidAmbiguousCharacters">
<span class="label sm">{{ 'password.generation.ambiguous' | translate}}</span>
</label>
<label>
<input type="checkbox" ng-model="pwSettings.requireEveryCharType"
id="reqevery">
<span class="label sm">{{ 'password.generation.require_same' | translate}}</span>
</label>
<label for="pwSettings.avoidAmbiguousCharacters">{{'password.generation.ambiguous' | translate}}</label>
<input id="pwSettings.requireEveryCharType" class="checkbox" type="checkbox"
ng-model="pwSettings.requireEveryCharType">
<label for="pwSettings.requireEveryCharType">{{'password.generation.require_same' | translate}}</label>
</div>
</div>
</div>