2018-10-17 02:29:36 +08:00
|
|
|
<div class="main_list" off-click-filter="'.download-js-link, .sidebar-shown, #app-sidebar'">
|
2016-10-16 23:52:52 +08:00
|
|
|
<div id="passman-controls" ng-class="{ 'sidebar-shown': selectedCredential }">
|
2016-09-21 02:51:41 +08:00
|
|
|
<div class="breadcrumb">
|
2016-10-16 23:52:52 +08:00
|
|
|
<div class="breadcrumb">
|
|
|
|
<div class="crumb svg ui-droppable" data-dir="/">
|
2017-10-17 04:21:21 +08:00
|
|
|
<a ng-click="logout()"><i class="fa fa-home"></i></a>
|
2016-10-16 23:52:52 +08:00
|
|
|
</div>
|
2018-10-01 05:11:25 +08:00
|
|
|
<div class="crumb svg" ng-click="clearState()">
|
2018-10-13 18:51:46 +08:00
|
|
|
<a>{{active_vault.name}}</a>
|
2016-10-16 23:52:52 +08:00
|
|
|
</div>
|
2018-10-17 01:41:00 +08:00
|
|
|
|
|
|
|
</div>
|
2018-11-13 01:18:50 +08:00
|
|
|
<div class="addCredential" ng-hide="delete_time>0">
|
2018-10-17 01:41:00 +08:00
|
|
|
<button ng-click="addCredential()">+</button>
|
2016-09-21 02:51:41 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
2016-09-27 01:15:39 +08:00
|
|
|
|
2017-02-10 18:18:31 +08:00
|
|
|
<div class="title" credential-counter="filtered_credentials" vault="active_vault" delete-time="delete_time" filters="filterOptions"></div>
|
2018-09-30 01:06:54 +08:00
|
|
|
|
2017-01-03 23:19:53 +08:00
|
|
|
<div class="searchboxContainer" ng-init="filterOptionShown = false;" off-click="filterOptionShown = false;">
|
|
|
|
<input type="text" ng-model="filterOptions.filterText" class="searchbox" id="searchBox"
|
|
|
|
placeholder="{{'search.credential' | translate}}" select-on-click clear-btn ng-click="filterOptionShown = true;">
|
|
|
|
<div class="searchOptions" ng-show="filterOptionShown">
|
2017-01-09 20:46:43 +08:00
|
|
|
<input type="checkbox" ng-model="filterOptions.useRegex"> {{ 'use.regex' | translate }}
|
2017-01-03 23:19:53 +08:00
|
|
|
</div>
|
2016-10-16 23:52:52 +08:00
|
|
|
</div>
|
2018-09-28 20:07:40 +08:00
|
|
|
|
2016-10-16 23:52:52 +08:00
|
|
|
<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>
|
2016-09-28 06:14:32 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
2016-09-30 23:44:21 +08:00
|
|
|
<div class="loaderContainer" ng-if="show_spinner">
|
2016-09-27 01:15:39 +08:00
|
|
|
<div class="loader" use-theme type="'border-bottom-color'"></div>
|
|
|
|
</div>
|
2018-09-30 06:21:05 +08:00
|
|
|
<div ng-init="menuOpen = false;">
|
2016-09-28 06:14:32 +08:00
|
|
|
<table class="credential-table"
|
|
|
|
ng-if="view_mode === 'list'">
|
2016-10-07 17:15:51 +08:00
|
|
|
<tr ng-repeat="credential in filtered_credentials | orderBy:'label'"
|
2016-10-07 18:16:44 +08:00
|
|
|
ng-if="showCredentialRow(credential)"
|
2016-12-31 21:18:44 +08:00
|
|
|
ng-click="selectCredential(credential)" ng-dblclick="editCredential(credential)"
|
2016-09-28 06:14:32 +08:00
|
|
|
ng-class="{'selected': selectedCredential.credential_id == credential.credential_id}">
|
|
|
|
<td>
|
2016-10-07 19:46:52 +08:00
|
|
|
<span class="tags">
|
|
|
|
<span class="tag" ng-repeat="tag in credential.tags_raw">{{ ::tag.text}}</span>
|
|
|
|
|
|
|
|
</span>
|
2017-08-13 20:23:23 +08:00
|
|
|
<span class="icon" ng-if="credential.url">
|
|
|
|
<credential-icon credential="credential"></credential-icon>
|
|
|
|
</span>
|
|
|
|
<span class="icon" ng-if="!credential.url">
|
2016-10-06 01:46:03 +08:00
|
|
|
<i class="fa fa-lock" ng-if="!credential.acl && !credential.shared_key"></i>
|
2016-10-03 03:34:05 +08:00
|
|
|
<i class="fa fa-share-alt" ng-if="credential.acl"></i>
|
2016-10-06 05:26:31 +08:00
|
|
|
<i class="fa fa-share-alt-square" ng-if="credential.shared_key"> </i>
|
2016-10-03 03:34:05 +08:00
|
|
|
</span>
|
2018-10-13 18:54:12 +08:00
|
|
|
<a class="label">{{ ::credential.label}}</a>
|
2016-09-16 03:43:23 +08:00
|
|
|
|
2016-10-07 19:46:52 +08:00
|
|
|
|
2016-09-28 06:14:32 +08:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
2016-10-07 17:15:51 +08:00
|
|
|
|
2016-09-30 23:44:21 +08:00
|
|
|
<ul class="grid-view" ng-if="view_mode === 'grid'">
|
2016-10-02 22:10:04 +08:00
|
|
|
<li class="credential"
|
2016-10-07 17:15:51 +08:00
|
|
|
ng-repeat="credential in filtered_credentials | orderBy:'label'"
|
2016-10-02 22:10:04 +08:00
|
|
|
ng-if="credential.hidden == 0 && showCredentialRow(credential)"
|
|
|
|
ng-click="selectCredential(credential)"
|
|
|
|
use-theme type="'border-color'">
|
|
|
|
<div class="credential_content">
|
2018-10-14 07:05:10 +08:00
|
|
|
<div>
|
|
|
|
<span class="icon" ng-if="credential.url">
|
|
|
|
<credential-icon credential="credential"></credential-icon>
|
|
|
|
</span>
|
|
|
|
<span class="icon" ng-if="!credential.url">
|
|
|
|
<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>
|
|
|
|
<div class="label">{{ ::credential.label}}</div>
|
|
|
|
</div>
|
2016-10-02 22:10:04 +08:00
|
|
|
<div class="tags">
|
|
|
|
<div class="tag" ng-repeat="tag in credential.tags_raw">
|
|
|
|
{{ ::tag.text}}
|
2016-09-28 06:14:32 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
2016-10-02 22:10:04 +08:00
|
|
|
</div>
|
|
|
|
</li>
|
2016-09-28 06:14:32 +08:00
|
|
|
</ul>
|
2018-11-21 02:18:35 +08:00
|
|
|
<div ng-if="getListSizes().listsize_wout_deleted==0 && no_credentials_label.all && !show_spinner && selectedtags.length==0" class="nopasswords" ng-hide="delete_time>0">
|
2018-11-13 02:06:09 +08:00
|
|
|
<b>{{'vault.hint.hello' | translate}}</b><br>
|
|
|
|
<div>{{'vault.hint.hello.add' | translate}}</div>
|
2018-11-03 20:21:04 +08:00
|
|
|
<div class="">
|
|
|
|
<button ng-click="addCredential()">+</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
2018-11-21 02:18:35 +08:00
|
|
|
<div ng-if="getListSizes().listsize_wout_deleted==0 && no_credentials_label.all && !show_spinner && selectedtags.length>0" class="nopasswords" ng-hide="delete_time>0">
|
|
|
|
<div>{{ 'vault.hint.list.notags' | translate}}</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
2018-11-04 18:04:13 +08:00
|
|
|
|
|
|
|
<!--nopassword-hint for good strength -->
|
|
|
|
<div class="belowList" ng-if="no_credentials_label.s_good" ng-hide="getListSizes().listsize_wout_deleted>0">
|
2018-11-13 02:06:09 +08:00
|
|
|
<div>{{ 'vault.hint.list.nogood' | translate}}</div>
|
2018-11-04 18:04:13 +08:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<!--nopassword-hint for medium strength -->
|
|
|
|
<div class="belowList" ng-if="no_credentials_label.s_medium" ng-hide="getListSizes().listsize_wout_deleted>0">
|
2018-11-13 02:06:09 +08:00
|
|
|
<div>{{ 'vault.hint.list.nomedium' | translate}}</div>
|
2018-11-04 18:04:13 +08:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<!--nopassword-hint for bad strength -->
|
|
|
|
<div class="belowList" ng-if="no_credentials_label.s_low" ng-hide="getListSizes().listsize_wout_deleted>0">
|
2018-11-13 02:06:09 +08:00
|
|
|
<div>{{ 'vault.hint.list.nobad' | translate}}</div>
|
2018-11-04 18:04:13 +08:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<!--nopassword-hint for expired -->
|
|
|
|
<div class="belowList" ng-if="no_credentials_label.expired" ng-hide="getListSizes().listsize_wout_deleted>0">
|
2018-11-13 02:06:09 +08:00
|
|
|
<div>{{ 'vault.hint.list.noexpired' | translate}}</div>
|
2018-11-04 18:04:13 +08:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<!--nopassword-hint for deleted -->
|
|
|
|
<div class="belowList" ng-if="getListSizes().listsize_deleted==0" ng-hide="delete_time==0">
|
2018-11-13 02:06:09 +08:00
|
|
|
<div>{{ 'vault.hint.list.nodeleted' | translate}}</div>
|
2018-11-04 18:04:13 +08:00
|
|
|
</div>
|
|
|
|
|
2016-09-28 06:14:32 +08:00
|
|
|
</div>
|
2018-09-30 01:06:54 +08:00
|
|
|
</div>
|
2016-10-07 18:31:17 +08:00
|
|
|
|
2018-11-07 04:57:59 +08:00
|
|
|
<div id="app-sidebar" class="app_sidebar" ng-show="selectedCredential" off-click="closeSelected()" >
|
2018-09-30 01:06:54 +08:00
|
|
|
|
2018-10-14 06:40:46 +08:00
|
|
|
<span class="close icon-close" ng-click="closeSelected()" alt="Close"></span>
|
2018-09-30 01:06:54 +08:00
|
|
|
|
2018-10-14 06:40:46 +08:00
|
|
|
<div class="sidebar">
|
|
|
|
<span class="icon sidebar-icon" ng-if="selectedCredential.url">
|
|
|
|
<credential-icon credential="selectedCredential"></credential-icon>
|
|
|
|
</span>
|
|
|
|
<span class="icon sidebar-icon" ng-if="!selectedCredential.url">
|
|
|
|
<credential-icon credential="selectedCredential"></credential-icon>
|
|
|
|
</span>
|
|
|
|
<h2 class="sidebar-label">{{selectedCredential.label}}</h2>
|
|
|
|
</div>
|
2018-09-30 01:06:54 +08:00
|
|
|
|
2018-10-14 06:40:46 +08:00
|
|
|
<div credential-template="selectedCredential"></div>
|
2018-09-30 01:06:54 +08:00
|
|
|
|
|
|
|
<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 &&
|
2016-12-29 01:54:54 +08:00
|
|
|
(settings.user_sharing_enabled === 1 || settings.user_sharing_enabled === '1' || settings.link_sharing_enabled === 1 || settings.link_sharing_enabled === '1')">
|
2018-09-30 01:06:54 +08:00
|
|
|
<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>
|
2016-10-02 22:10:04 +08:00
|
|
|
</div>
|
2016-10-07 18:31:17 +08:00
|
|
|
|
2016-10-02 22:10:04 +08:00
|
|
|
<div class="share_popup" style="display: none">
|
2016-12-20 06:51:15 +08:00
|
|
|
{{ 'sharereq.title' | translate}}<br/>
|
2017-04-17 18:35:18 +08:00
|
|
|
<p>{{ 'sharereq.line1' | translate}}</p>
|
2016-10-02 22:10:04 +08:00
|
|
|
{{active_vault.vault_id}}
|
|
|
|
<table class="table">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
2016-12-20 06:51:15 +08:00
|
|
|
<td>{{ 'label' | translate}}</td>
|
|
|
|
<td>{{ 'permissions' | translate}}</td>
|
|
|
|
<td>{{ 'received.from' | translate}}</td>
|
|
|
|
<td>{{ 'date' | translate}}</td>
|
2016-10-02 22:10:04 +08:00
|
|
|
</tr>
|
|
|
|
</thead>
|
2016-10-03 03:47:57 +08:00
|
|
|
<tr ng-repeat="share_request in incoming_share_requests"
|
|
|
|
ng-if="share_request.target_vault_id == active_vault.vault_id">
|
2016-10-02 22:10:04 +08:00
|
|
|
<td>
|
|
|
|
{{share_request.credential_label}}
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{{share_request.permissions}}
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{{share_request.from_user_id}}
|
|
|
|
</td>
|
|
|
|
<td>
|
2016-12-20 06:51:15 +08:00
|
|
|
{{share_request.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
2016-10-02 22:10:04 +08:00
|
|
|
</td>
|
|
|
|
<td>
|
2016-12-20 06:51:15 +08:00
|
|
|
<span class="link" ng-click="acceptShareRequest(share_request)">{{ 'accept' | translate}}</span>
|
|
|
|
| <span class="link" ng-click="declineShareRequest(share_request)">{{ 'decline' | translate}}</span>
|
2016-10-02 22:10:04 +08:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
2017-10-17 04:21:21 +08:00
|
|
|
</div>
|