mirror of
https://github.com/nextcloud/passman.git
synced 2025-09-15 01:14:39 +08:00
update credential share and revision style to support nc 25
Signed-off-by: binsky <timo@binsky.org>
This commit is contained in:
parent
262cbc2416
commit
05eeec7456
6 changed files with 253 additions and 212 deletions
14
css/app.css
14
css/app.css
|
@ -1187,6 +1187,20 @@
|
|||
.shared_table .fa-trash:hover {
|
||||
color: #ce3702; }
|
||||
|
||||
.tags {
|
||||
float: left; }
|
||||
.tags .tag {
|
||||
background-color: rgba(240, 240, 240, 0.9);
|
||||
padding: 4px;
|
||||
font-size: 11px; }
|
||||
|
||||
tags-input .tags {
|
||||
width: 100%; }
|
||||
tags-input .tags .input {
|
||||
width: auto !important; }
|
||||
tags-input .tags .tag-item {
|
||||
color: var(--color-text-lighter); }
|
||||
|
||||
/**
|
||||
* Nextcloud - passman
|
||||
*
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -66,4 +66,24 @@
|
|||
.fa-trash:hover {
|
||||
color: #ce3702;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,226 +15,231 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="credential-table" ng-init="menuOpen = false;">
|
||||
<tr ng-repeat="revision in revisions | orderBy:'-created'"
|
||||
ng-click="selectRevision(revision)"
|
||||
ng-class="{'selected': selectedRevision.revision_id == revision.revision_id}">
|
||||
<td>
|
||||
<span class="icon"><i class="fa fa-lock"></i> </span>
|
||||
<span class="label">
|
||||
<div class="credential-list">
|
||||
<div class="credential-table-wrapper">
|
||||
<table class="credential-table" ng-init="menuOpen = false;">
|
||||
<tr ng-repeat="revision in revisions | orderBy:'-created'"
|
||||
ng-click="selectRevision(revision)"
|
||||
ng-class="{'selected': selectedRevision.revision_id == revision.revision_id}">
|
||||
<td>
|
||||
<span class="icon"><i class="fa fa-lock"></i> </span>
|
||||
<span class="label">
|
||||
{{ 'revision.of' | translate}} {{revision.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}} ({{revision.credential_data.label}})
|
||||
<span ng-if="revision.edited_by">{{ 'revision.edited.by' | translate}} {{revision.edited_by}}</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="revisions.length == 0">
|
||||
<td>{{ 'no.revisions' | translate}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="app-sidebar" class="detailsView scroll-container app_sidebar" off-click="closeSelected()"
|
||||
ng-show="selectedRevision">
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="revisions.length == 0">
|
||||
<td>{{ 'no.revisions' | translate}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="app-sidebar" class="detailsView scroll-container app_sidebar" off-click="closeSelected()"
|
||||
ng-show="selectedRevision">
|
||||
<span class="close icon-close" ng-click="closeSelected()"
|
||||
alt="Close"></span>
|
||||
<b ng-show="selectedRevision">{{ 'revision.of' | translate}} {{selectedRevision.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}</b>
|
||||
<div class="credential-data">
|
||||
<div class="row" ng-show="selectedRevision.credential_data.label">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'label' | translate }}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field
|
||||
value="selectedRevision.credential_data.label"></span></div>
|
||||
</div>
|
||||
<b ng-show="selectedRevision">{{ 'revision.of' | translate}} {{selectedRevision.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}</b>
|
||||
<div class="credential-data">
|
||||
<div class="row" ng-show="selectedRevision.credential_data.label">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'label' | translate }}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field
|
||||
value="selectedRevision.credential_data.label"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.username">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'account' | translate }}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field
|
||||
value="selectedRevision.credential_data.username"></span></div>
|
||||
</div>
|
||||
<div class="row" ng-show="selectedRevision.credential_data.username">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'account' | translate }}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field
|
||||
value="selectedRevision.credential_data.username"></span></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.password">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'password' | translate }}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
<div class="row" ng-show="selectedRevision.credential_data.password">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'password' | translate }}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
<span credential-field value="selectedRevision.credential_data.password" secret="'true'">
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.otp.secret">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{'otp' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span otp-generator
|
||||
secret="selectedRevision.credential_data.otp.secret"></span></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.email">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{'email' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field
|
||||
value="selectedRevision.credential_data.email"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.url">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'url' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field
|
||||
value="selectedRevision.credential_data.url"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.description">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{'notes' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field value="selectedRevision.credential_data.description_html"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.files.length > 0">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'files' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><div ng-repeat="file in selectedRevision.credential_data.files"
|
||||
class="link" ng-click="downloadFile(selectedRevision.credential_data, file)">
|
||||
{{file.filename}} ({{file.size | bytes}})
|
||||
</div></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-repeat="field in selectedRevision.credential_data.custom_fields">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{field.label}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
<span credential-field value="field.value" secret="field.secret" ng-if="field.field_type !== 'file' || !field.field_type"></span>
|
||||
<span ng-if="field.field_type === 'file'" class="link" ng-click="downloadFile(selectedCredential, field.value)">{{field.value.filename}} ({{field.value.size | bytes}})</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.expire_time > 0">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'expire.time' | translate }}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
{{selectedRevision.credential_data.expire_time * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.changed">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'changed' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
{{selectedRevision.credential_data.changed * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.created">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'created' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
{{selectedRevision.credential_data.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="tags">
|
||||
<span class="tag" ng-repeat="tag in selectedRevision.credential_data.tags">{{tag.text}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<table class="revision-details">
|
||||
<tr ng-show="selectedRevision.credential_data.label">
|
||||
<td>
|
||||
{{ 'label' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
{{selectedRevision.credential_data.label}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.username">
|
||||
<td>
|
||||
{{ 'account' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field
|
||||
value="selectedRevision.credential_data.username"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.password">
|
||||
<td>
|
||||
{{ 'password' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field value="selectedRevision.credential_data.password"
|
||||
secret="'true'"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.otp.secret">
|
||||
<td>
|
||||
{{ 'otp' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span otp-generator
|
||||
secret="selectedRevision.credential_data.otp.secret"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.email">
|
||||
<td>
|
||||
{{ 'email' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field
|
||||
value="selectedRevision.credential_data.email"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.url">
|
||||
<td>
|
||||
{{ 'url' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field
|
||||
value="selectedRevision.url"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.files.length > 0">
|
||||
<td>
|
||||
{{ 'files' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<div ng-repeat="file in selectedRevision.credential_data.files"
|
||||
class="link" ng-click="downloadFile(file)">
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.otp.secret">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{'otp' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span otp-generator
|
||||
secret="selectedRevision.credential_data.otp.secret"></span></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.email">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{'email' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field
|
||||
value="selectedRevision.credential_data.email"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.url">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'url' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field
|
||||
value="selectedRevision.credential_data.url"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.description">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{'notes' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><span credential-field value="selectedRevision.credential_data.description_html"></span></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.files.length > 0">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'files' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9"><div ng-repeat="file in selectedRevision.credential_data.files"
|
||||
class="link" ng-click="downloadFile(selectedRevision.credential_data, file)">
|
||||
{{file.filename}} ({{file.size | bytes}})
|
||||
</div></div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-repeat="field in selectedRevision.credential_data.custom_fields">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{field.label}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
<span credential-field value="field.value" secret="field.secret" ng-if="field.field_type !== 'file' || !field.field_type"></span>
|
||||
<span ng-if="field.field_type === 'file'" class="link" ng-click="downloadFile(selectedCredential, field.value)">{{field.value.filename}} ({{field.value.size | bytes}})</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-repeat="field in selectedRevision.credential_data.custom_fields">
|
||||
<td>
|
||||
{{field.label}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field value="field.value"
|
||||
secret="field.secret"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.changed">
|
||||
<td>
|
||||
{{ 'changed' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
{{selectedRevision.credential_data.changed * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.created">
|
||||
<td>
|
||||
{{ 'created' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
{{selectedRevision.credential_data.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</td>
|
||||
</tr>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.expire_time > 0">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'expire.time' | translate }}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
{{selectedRevision.credential_data.expire_time * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.changed">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'changed' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
{{selectedRevision.credential_data.changed * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" ng-show="selectedRevision.credential_data.created">
|
||||
<div class="col-xs-4 col-md-3 col-lg-3">{{ 'created' | translate}}</div>
|
||||
<div class="col-xs-8 col-md-9 col-lg-9">
|
||||
{{selectedRevision.credential_data.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="tags">
|
||||
<span class="tag" ng-repeat="tag in selectedRevision.credential_data.tags">{{tag.text}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<table class="revision-details">
|
||||
<tr ng-show="selectedRevision.credential_data.label">
|
||||
<td>
|
||||
{{ 'label' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
{{selectedRevision.credential_data.label}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.username">
|
||||
<td>
|
||||
{{ 'account' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field
|
||||
value="selectedRevision.credential_data.username"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.password">
|
||||
<td>
|
||||
{{ 'password' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field value="selectedRevision.credential_data.password"
|
||||
secret="'true'"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.otp.secret">
|
||||
<td>
|
||||
{{ 'otp' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span otp-generator
|
||||
secret="selectedRevision.credential_data.otp.secret"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.email">
|
||||
<td>
|
||||
{{ 'email' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field
|
||||
value="selectedRevision.credential_data.email"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.url">
|
||||
<td>
|
||||
{{ 'url' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field
|
||||
value="selectedRevision.url"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.files.length > 0">
|
||||
<td>
|
||||
{{ 'files' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
<div ng-repeat="file in selectedRevision.credential_data.files"
|
||||
class="link" ng-click="downloadFile(file)">
|
||||
{{file.filename}} ({{file.size | bytes}})
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-repeat="field in selectedRevision.credential_data.custom_fields">
|
||||
<td>
|
||||
{{field.label}}
|
||||
</td>
|
||||
<td>
|
||||
<span credential-field value="field.value"
|
||||
secret="field.secret"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.changed">
|
||||
<td>
|
||||
{{ 'changed' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
{{selectedRevision.credential_data.changed * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="selectedRevision.credential_data.created">
|
||||
<td>
|
||||
{{ 'created' | translate}}
|
||||
</td>
|
||||
<td>
|
||||
{{selectedRevision.credential_data.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
-->
|
||||
<div ng-show="selectedRevision">
|
||||
<button class="button" ng-click="restoreRevision(selectedRevision)" >
|
||||
<span class="fa fa-edit"></span> {{ 'restore.revision' | translate}}
|
||||
</button>
|
||||
<button class="button" ng-click="deleteRevision(selectedRevision)" >
|
||||
<span class="fa fa-trash"></span> {{ 'delete.revision' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</table>
|
||||
-->
|
||||
<div ng-show="selectedRevision">
|
||||
<button class="button" ng-click="restoreRevision(selectedRevision)" >
|
||||
<span class="fa fa-edit"></span> {{ 'restore.revision' | translate}}
|
||||
</button>
|
||||
<button class="button" ng-click="deleteRevision(selectedRevision)" >
|
||||
<span class="fa fa-trash"></span> {{ 'delete.revision' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<label><input type="checkbox" ng-model="share_settings.linkSharing.enabled">
|
||||
{{ 'enable.link.sharing' | translate}}.</label><br/>
|
||||
<input id="linkSharing.enabled" class="checkbox" type="checkbox"
|
||||
ng-model="share_settings.linkSharing.enabled">
|
||||
<label for="linkSharing.enabled">{{'enable.link.sharing' | translate}}</label><br>
|
||||
|
||||
<div class="pull-left col-xs-6 nopadding">
|
||||
<span credential-field value="share_link" secret="false" use-input="true" input-placeholder="'click.share' | translate" ></span>
|
||||
</div>
|
||||
|
@ -36,4 +38,4 @@
|
|||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Reference in a new issue