2016-09-12 04:14:11 +08:00
|
|
|
<div id="controls">
|
|
|
|
<div class="breadcrumb">
|
2016-09-21 02:51:41 +08:00
|
|
|
<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>
|
2016-09-12 04:14:11 +08:00
|
|
|
</div>
|
|
|
|
<div class="actions creatable">
|
2016-09-15 06:11:59 +08:00
|
|
|
<span ng-click="menuOpen = !menuOpen" class="button new"
|
|
|
|
ng-init="menuOpen = false" off-click="menuOpen = false;">
|
2016-09-12 05:40:06 +08:00
|
|
|
<span
|
2016-09-21 02:51:41 +08:00
|
|
|
>+</span></span>
|
2016-09-15 06:11:59 +08:00
|
|
|
<div class="actionList popovermenu bubble menu" ng-show="menuOpen">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<span ng-click="addCredential()"
|
|
|
|
class="menuitem action">
|
2016-09-13 06:10:24 +08:00
|
|
|
<span
|
2016-09-15 06:11:59 +08:00
|
|
|
class="icon icon-rename"></span>
|
2016-09-13 06:10:24 +08:00
|
|
|
<span>New credential</span>
|
|
|
|
</span>
|
2016-09-15 06:11:59 +08:00
|
|
|
</li>
|
|
|
|
<li>
|
2016-09-13 06:10:24 +08:00
|
|
|
<span href="#" class="menuitem action">
|
|
|
|
<span class="icon icon-shared"></span>
|
|
|
|
<span>New shared credential</span>
|
2016-09-25 02:16:57 +08:00
|
|
|
</span>w
|
2016-09-15 06:11:59 +08:00
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
2016-09-21 01:05:00 +08:00
|
|
|
<div class="searchboxContainer">
|
2016-09-21 02:51:41 +08:00
|
|
|
<input type="text" ng-model="itemFilter.label" class="searchbox"
|
|
|
|
placeholder="Search credential...">
|
2016-09-21 01:05:00 +08:00
|
|
|
</div>
|
2016-09-16 20:01:25 +08:00
|
|
|
<span class="title" ng-if="delete_time">
|
|
|
|
Showing deleted since:
|
|
|
|
<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>
|
2016-09-12 04:14:11 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
2016-09-15 06:11:59 +08:00
|
|
|
<div off-click="closeSelected()">
|
|
|
|
<table class="credential-table" ng-init="menuOpen = false;">
|
2016-09-21 00:38:49 +08:00
|
|
|
<tr ng-repeat="credential in credentials | filter:itemFilter | tagFilter:selectedtags | as:this:'filtered_credentials'"
|
2016-09-16 20:01:25 +08:00
|
|
|
ng-if="credential.hidden == 0 && showCredentialRow(credential)"
|
2016-09-15 06:11:59 +08:00
|
|
|
ng-click="selectCredential(credential)"
|
|
|
|
ng-class="{'selected': selectedCredential.credential_id == credential.credential_id}">
|
|
|
|
<td>
|
2016-09-21 00:49:36 +08:00
|
|
|
<span class="icon"><i class="fa fa-lock"></i> </span>
|
2016-09-15 06:11:59 +08:00
|
|
|
<span class="label">{{credential.label}}</span>
|
2016-09-21 02:51:41 +08:00
|
|
|
<span class="tags">
|
2016-09-16 03:43:23 +08:00
|
|
|
<span class="tag" ng-repeat="tag in credential.tags_raw">{{tag.text}}</span>
|
|
|
|
|
2016-09-12 04:14:11 +08:00
|
|
|
</span>
|
2016-09-15 04:50:14 +08:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
2016-09-15 06:11:59 +08:00
|
|
|
|
|
|
|
<div id="app-sidebar" class="detailsView scroll-container app_sidebar"
|
|
|
|
ng-show="selectedCredential">
|
|
|
|
<span class="close icon-close" ng-click="closeSelected()"
|
|
|
|
alt="Close"></span>
|
|
|
|
<table>
|
|
|
|
<tr ng-show="selectedCredential.label">
|
|
|
|
<td>
|
|
|
|
Label
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{{selectedCredential.label}}
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr ng-show="selectedCredential.username">
|
|
|
|
<td>
|
|
|
|
Account
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<span credential-field
|
|
|
|
value="selectedCredential.username"></span>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr ng-show="selectedCredential.password">
|
|
|
|
<td>
|
|
|
|
Password
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<span credential-field value="selectedCredential.password"
|
|
|
|
secret="'true'"></span>
|
|
|
|
</td>
|
|
|
|
</tr>
|
2016-09-16 20:01:25 +08:00
|
|
|
<tr ng-show="selectedCredential.otp.secret">
|
|
|
|
<td>
|
|
|
|
OTP
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<span otp-generator
|
2016-09-21 02:51:41 +08:00
|
|
|
secret="selectedCredential.otp.secret"></span>
|
2016-09-16 20:01:25 +08:00
|
|
|
</td>
|
|
|
|
</tr>
|
2016-09-15 06:11:59 +08:00
|
|
|
<tr ng-show="selectedCredential.email">
|
|
|
|
<td>
|
|
|
|
E-mail
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<span credential-field
|
|
|
|
value="selectedCredential.email"></span>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr ng-show="selectedCredential.url">
|
|
|
|
<td>
|
|
|
|
URL
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<span credential-field
|
|
|
|
value="selectedCredential.url"></span>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr ng-show="selectedCredential.files.length > 0">
|
|
|
|
<td>
|
|
|
|
Files
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<div ng-repeat="file in selectedCredential.files"
|
2016-09-16 03:21:34 +08:00
|
|
|
class="link" ng-click="downloadFile(file)">
|
2016-09-15 06:11:59 +08:00
|
|
|
{{file.filename}} ({{file.size | bytes}})
|
|
|
|
</div>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr ng-repeat="field in selectedCredential.custom_fields">
|
|
|
|
<td>
|
|
|
|
{{field.label}}
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<span credential-field value="field.value"
|
|
|
|
secret="field.secret"></span>
|
|
|
|
</td>
|
|
|
|
</tr>
|
2016-09-24 19:03:12 +08:00
|
|
|
<tr ng-show="selectedCredential.expire_time > 0">
|
|
|
|
<td>
|
|
|
|
Expire time
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{{selectedCredential.expire_time * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
|
|
|
</td>
|
2016-09-24 19:09:17 +08:00
|
|
|
</tr>
|
|
|
|
<tr ng-show="selectedCredential.changed">
|
2016-09-15 06:11:59 +08:00
|
|
|
<td>
|
|
|
|
Changed
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{{selectedCredential.changed * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr ng-show="selectedCredential.created">
|
|
|
|
<td>
|
|
|
|
Created
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
{{selectedCredential.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
|
|
|
|
</td>
|
|
|
|
</tr>
|
2016-09-16 20:01:25 +08:00
|
|
|
|
2016-09-15 06:11:59 +08:00
|
|
|
</table>
|
2016-09-16 20:01:25 +08:00
|
|
|
|
|
|
|
<div class="tags">
|
|
|
|
<span class="tag" ng-repeat="tag in selectedCredential.tags">{{tag.text}}</span>
|
|
|
|
</div>
|
|
|
|
|
2016-09-15 06:19:56 +08:00
|
|
|
<div ng-show="selectedCredential">
|
2016-09-24 16:59:37 +08:00
|
|
|
<button class="button" ng-click="editCredential(selectedCredential)" ng-if="selectedCredential.delete_time == 0" >
|
2016-09-15 06:11:59 +08:00
|
|
|
<span class="fa fa-edit"></span> Edit
|
2016-09-24 16:59:37 +08:00
|
|
|
</button>
|
|
|
|
<button class="button" ng-click="deleteCredential(selectedCredential)" ng-if="selectedCredential.delete_time == 0" >
|
2016-09-16 20:01:25 +08:00
|
|
|
<span class="fa fa-trash" ></span> Delete
|
2016-09-24 16:59:37 +08:00
|
|
|
</button>
|
|
|
|
<button class="button" ng-click="shareCredential(selectedCredential)" ng-if="selectedCredential.delete_time == 0" >
|
|
|
|
<span class="fa fa-share"></span> Share
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<button class="button" ng-click="getRevisions(selectedCredential)" ng-if="selectedCredential.delete_time == 0" >
|
|
|
|
<span class="fa fa-undo"></span> Revisions
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<button class="button" ng-if="selectedCredential.delete_time > 0"
|
2016-09-21 02:51:41 +08:00
|
|
|
ng-click="recoverCredential(selectedCredential)">
|
|
|
|
<span class="fa fa-recycle"></span> Recover
|
2016-09-24 16:59:37 +08:00
|
|
|
</button>
|
|
|
|
<button class="button" ng-if="selectedCredential.delete_time > 0"
|
2016-09-24 03:30:07 +08:00
|
|
|
ng-click="destroyCredential(selectedCredential)">
|
|
|
|
<span class="fa fa-bomb"></span> Destroy
|
2016-09-24 16:59:37 +08:00
|
|
|
</button>
|
2016-09-15 06:11:59 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
2016-09-15 03:12:10 +08:00
|
|
|
</div>
|