mirror of
https://github.com/nextcloud/passman.git
synced 2024-11-16 04:55:03 +08:00
858195834d
Implement disable context menu Implemement disable http warning Implement vault key strength setting Implement share settings Implement version check setting
259 lines
No EOL
9.6 KiB
HTML
259 lines
No EOL
9.6 KiB
HTML
<div off-click="closeSelected()" off-click-filter="'.download-js-link, .sidebar-shown'">
|
|
<div id="passman-controls" ng-class="{ 'sidebar-shown': selectedCredential }">
|
|
<div class="breadcrumb">
|
|
<div class="breadcrumb">
|
|
<div class="crumb svg ui-droppable" data-dir="/">
|
|
<a><i class="fa fa-home"></i></a>
|
|
</div>
|
|
<div class="crumb svg last">
|
|
<a>{{active_vault.name}}</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<span class="title" ng-if="delete_time">
|
|
{{ 'deleted.since' | translate }}:
|
|
<span ng-if="delete_time == 1">All time</span>
|
|
<span ng-if="delete_time > 1">{{delete_time | date:'dd-MM-yyyy @ HH:mm:ss'}}</span>
|
|
|
|
</span>
|
|
<div class="actions creatable">
|
|
<span ng-click="addCredential()" class="button new">
|
|
<span >+</span></span>
|
|
</div>
|
|
<div class="title" ng-show="filtered_credentials.length > 0" translate="number.filtered"
|
|
translate-values="{number_filtered: filtered_credentials.length, credential_number: active_vault.credentials.length - 1}"
|
|
>
|
|
|
|
</div>
|
|
<div class="searchboxContainer">
|
|
<input type="text" ng-model="filterOptions.filterText" class="searchbox"
|
|
placeholder="{{'search.credential' | translate}}" select-on-click clear-btn>
|
|
</div>
|
|
<div class="viewModes">
|
|
<div class="view-mode" ng-class="{'active': view_mode === 'list' }"
|
|
ng-click="switchViewMode('list')"><i class="fa fa-list"></i></div>
|
|
<div class="view-mode" ng-class="{'active': view_mode === 'grid' }"
|
|
ng-click="switchViewMode('grid')"><i class="fa fa-th-large"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="loaderContainer" ng-if="show_spinner">
|
|
<div class="loader" use-theme type="'border-bottom-color'"></div>
|
|
</div>
|
|
<div ng-init="menuOpen = false;">
|
|
<table class="credential-table"
|
|
ng-if="view_mode === 'list'">
|
|
<tr ng-repeat="credential in filtered_credentials | orderBy:'label'"
|
|
ng-if="showCredentialRow(credential)"
|
|
ng-click="selectCredential(credential)"
|
|
ng-class="{'selected': selectedCredential.credential_id == credential.credential_id}">
|
|
<td>
|
|
<span class="tags">
|
|
<span class="tag" ng-repeat="tag in credential.tags_raw">{{ ::tag.text}}</span>
|
|
|
|
</span>
|
|
<span class="icon">
|
|
<i class="fa fa-lock" ng-if="!credential.acl && !credential.shared_key"></i>
|
|
<i class="fa fa-share-alt" ng-if="credential.acl"></i>
|
|
<i class="fa fa-share-alt-square" ng-if="credential.shared_key"> </i>
|
|
</span>
|
|
<span class="label">{{ ::credential.label}}</span>
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<ul class="grid-view" ng-if="view_mode === 'grid'">
|
|
<li class="credential"
|
|
ng-repeat="credential in filtered_credentials | orderBy:'label'"
|
|
ng-if="credential.hidden == 0 && showCredentialRow(credential)"
|
|
ng-click="selectCredential(credential)"
|
|
use-theme type="'border-color'">
|
|
<div class="credential_content">
|
|
<div class="label">{{ ::credential.label}}</div>
|
|
<div class="tags">
|
|
<div class="tag" ng-repeat="tag in credential.tags_raw">
|
|
{{ ::tag.text}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="app-sidebar" class="detailsView scroll-container app_sidebar"
|
|
ng-show="selectedCredential">
|
|
<h2>{{selectedCredential.label}}</h2>
|
|
<span class="close icon-close" ng-click="closeSelected()"
|
|
alt="Close"></span>
|
|
|
|
<div class="credential-data">
|
|
<div class="row" ng-show="selectedCredential.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="selectedCredential.username"></span></div>
|
|
</div>
|
|
|
|
|
|
<div class="row" ng-show="selectedCredential.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="selectedCredential.password" secret="'true'">
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="row" ng-show="selectedCredential.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="selectedCredential.otp.secret"></span></div>
|
|
</div>
|
|
|
|
|
|
<div class="row" ng-show="selectedCredential.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="selectedCredential.email"></span></div>
|
|
</div>
|
|
|
|
<div class="row" ng-show="selectedCredential.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="selectedCredential.url"></span></div>
|
|
</div>
|
|
|
|
<div class="row" ng-show="selectedCredential.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" ng-bind-html="selectedCredential.description_html"></div>
|
|
</div>
|
|
|
|
<div class="row" ng-show="selectedCredential.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 selectedCredential.files"
|
|
class="link" ng-click="downloadFile(selectedCredential, file)">
|
|
{{file.filename}} ({{file.size | bytes}})
|
|
</div></div>
|
|
</div>
|
|
|
|
<div class="row" ng-repeat="field in selectedCredential.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="selectedCredential.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">
|
|
{{selectedCredential.expire_time * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="row" ng-show="selectedCredential.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">
|
|
{{selectedCredential.changed * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="row" ng-show="selectedCredential.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">
|
|
{{selectedCredential.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 selectedCredential.tags">{{tag.text}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div ng-show="selectedCredential">
|
|
<div>
|
|
<button class="button"
|
|
ng-click="editCredential(selectedCredential)"
|
|
ng-if="selectedCredential.delete_time == 0 && hasPermission(selectedCredential.acl.permissions, permissions.permissions.WRITE)">
|
|
<span class="fa fa-edit"></span> {{ 'edit' | translate}}
|
|
</button>
|
|
<button class="button"
|
|
ng-click="deleteCredential(selectedCredential)"
|
|
ng-if="selectedCredential.delete_time == 0 && hasPermission(selectedCredential.acl.permissions, permissions.permissions.WRITE)">
|
|
<span class="fa fa-trash"></span> {{ 'delete' | translate}}
|
|
</button>
|
|
<button class="button"
|
|
ng-click="shareCredential(selectedCredential)"
|
|
ng-if="selectedCredential.delete_time == 0 && selectedCredential.acl === undefined &&
|
|
(settings.user_sharing_enabled === 1 || settings.user_sharing_enabled === '1' || settings.link_sharing_enabled === 1 || settings.link_sharing_enabled === '1')">
|
|
<span class="fa fa-share"></span> {{ 'share' | translate}}
|
|
</button>
|
|
|
|
<button class="button"
|
|
ng-click="getRevisions(selectedCredential)"
|
|
ng-if="selectedCredential.delete_time == 0 && hasPermission(selectedCredential.acl.permissions, permissions.permissions.HISTORY)">
|
|
<span class="fa fa-undo"></span> {{ 'revisions' | translate}}
|
|
</button>
|
|
|
|
<button class="button"
|
|
ng-if="selectedCredential.delete_time > 0"
|
|
ng-click="recoverCredential(selectedCredential) && hasPermission(selectedCredential.acl.permissions, permissions.permissions.WRITE)">
|
|
<span class="fa fa-recycle"></span> {{'recover' | translate}}
|
|
</button>
|
|
<button class="button"
|
|
ng-if="selectedCredential.delete_time > 0"
|
|
ng-click="destroyCredential(selectedCredential)">
|
|
<span class="fa fa-bomb"></span> {{'destroy' | translate}}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="share_popup" style="display: none">
|
|
{{ 'sharereq.title' | translate}}<br/>
|
|
{{ 'sharereq.line1' | translate}}<br/>
|
|
{{ 'sharereq.line2' | translate}}
|
|
{{active_vault.vault_id}}
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<td>{{ 'label' | translate}}</td>
|
|
<td>{{ 'permissions' | translate}}</td>
|
|
<td>{{ 'received.from' | translate}}</td>
|
|
<td>{{ 'date' | translate}}</td>
|
|
</tr>
|
|
</thead>
|
|
<tr ng-repeat="share_request in incoming_share_requests"
|
|
ng-if="share_request.target_vault_id == active_vault.vault_id">
|
|
<td>
|
|
{{share_request.credential_label}}
|
|
</td>
|
|
<td>
|
|
{{share_request.permissions}}
|
|
</td>
|
|
<td>
|
|
{{share_request.from_user_id}}
|
|
</td>
|
|
<td>
|
|
{{share_request.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
|
</td>
|
|
<td>
|
|
<span class="link" ng-click="acceptShareRequest(share_request)">{{ 'accept' | translate}}</span>
|
|
| <span class="link" ng-click="declineShareRequest(share_request)">{{ 'decline' | translate}}</span>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div> |