Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/passman.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcos Zuriaga <wolfi@wolfi.es>2021-08-22 14:45:17 +0300
committerMarcos Zuriaga <wolfi@wolfi.es>2021-08-22 14:45:17 +0300
commit88fef6029bfaddaf82395d7893cc401487aba554 (patch)
tree8045a2b3cc8dc6963b2a0097b499170942cb41f6
parent337f8cf32e254d48c554013e38509b6001960cbc (diff)
parent796b3091ffb27e12858a5e7d156ca502d743c6b8 (diff)
Merge branch 'ui-improvements' into next
-rw-r--r--controller/translationcontroller.php1
-rw-r--r--css/app.css86
-rw-r--r--css/app.css.map2
-rw-r--r--css/bookmarklet.css17
-rw-r--r--css/bookmarklet.css.map2
-rw-r--r--js/app/controllers/bookmarklet.js6
-rw-r--r--js/app/controllers/export.js20
-rw-r--r--js/app/controllers/settings.js6
-rw-r--r--js/exporters/exporter-csv.js4
-rw-r--r--js/exporters/exporter-json.js4
-rw-r--r--js/exporters/exporter-main.js177
-rw-r--r--js/templates.js8
-rw-r--r--sass/bookmarklet.scss49
-rw-r--r--sass/menu.scss33
-rw-r--r--sass/partials/tabs.scss78
-rw-r--r--templates/bookmarklet.php61
-rw-r--r--templates/main.php6
-rw-r--r--templates/views/edit_credential.html61
-rw-r--r--templates/views/settings.html24
-rw-r--r--templates/views/share_credential.html68
-rw-r--r--templates/views/show_vault.html8
21 files changed, 417 insertions, 304 deletions
diff --git a/controller/translationcontroller.php b/controller/translationcontroller.php
index d06e1de8..9e123c39 100644
--- a/controller/translationcontroller.php
+++ b/controller/translationcontroller.php
@@ -65,6 +65,7 @@ class TranslationController extends ApiController {
// js/app/controllers/export.js
'export.starting' => $this->trans->t('Starting export'),
'export.decrypt' => $this->trans->t('Decrypting credentials'),
+ 'export.decrypt.error' => $this->trans->t('Failed to decrypt {{credential}}'),
'done' => $this->trans->t('Done'),
// js/app/controllers/import.js
diff --git a/css/app.css b/css/app.css
index 0071e930..f96f3fa3 100644
--- a/css/app.css
+++ b/css/app.css
@@ -140,38 +140,42 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-.tab_header {
- width: calc(100vw - 300px);
- margin: 0 0 0;
- list-style: none;
- padding: 0; }
- .tab_header li.tab:first-child {
- margin-left: 0; }
- .tab_header li.tab {
- /*@include border-top-radius(2px);*/
- float: left;
- border-bottom-width: 0;
- margin: 0;
- padding: 10px 10px 10px 10px;
- cursor: pointer;
- border-right: 1px solid #eee;
- -webkit-transition: background-color 250ms linear;
- -moz-transition: background-color 250ms linear;
- -o-transition: background-color 250ms linear;
- -ms-transition: background-color 250ms linear;
- transition: background-color 250ms linear; }
- .tab_header li.tab .indicator {
- display: none; }
- .tab_header li.inactive {
- background-color: #fff !important;
- color: unset !important; }
- .tab_header li.active .indicator {
- display: inline-block;
- position: absolute;
- height: 7px;
- left: 0;
- right: 0;
- bottom: -1px; }
+.app-sidebar-tabs {
+ display: flex;
+ flex-direction: column;
+ min-height: 0;
+ flex: 1 1 100%; }
+
+.app-sidebar-tabs__nav ul {
+ display: flex;
+ justify-content: stretch; }
+
+.app-sidebar-tabs__tab.active {
+ color: var(--color-text-light);
+ border-bottom-color: var(--color-primary-element);
+ box-shadow: inset 0 -1px 0 var(--color-primary-element);
+ font-weight: bold; }
+
+.app-sidebar-tabs__tab:not(.active):hover, .app-sidebar-tabs__tab:not(.active):focus {
+ border-bottom-color: var(--color-background-darker);
+ box-shadow: inset 0 -1px 0 var(--color-background-darker); }
+
+.app-sidebar-tabs__tab:hover, .app-sidebar-tabs__tab:focus, .app-sidebar-tabs__tab:active, .app-sidebar-tabs__tab.active {
+ opacity: 1;
+ cursor: pointer; }
+
+.app-sidebar-tabs__tab {
+ position: relative;
+ display: block;
+ overflow: hidden;
+ padding: 10px 10px 10px 10px;
+ transition: color var(--animation-quick), opacity var(--animation-quick), border-color var(--animation-quick);
+ text-align: center;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ opacity: .7;
+ color: var(--color-main-text);
+ border-bottom: 1px solid var(--color-border); }
.tab_container {
border: 1px solid #eee;
@@ -1067,7 +1071,6 @@
width: inherit !important;
border-right: 1px solid #eee; }
.nav-trashbin a {
- background-color: #fff !important;
opacity: 1 !important;
z-index: 140; }
.nav-trashbin a.active {
@@ -1075,8 +1078,21 @@
.nav-trashbin a .fa {
margin-right: 15px; }
-#app-navigation .collapsible:hover .app-navigation-entry-bullet {
- background: var(--color-primary) !important; }
+#app-navigation {
+ /* Custom bullet icon */ }
+ #app-navigation .collapsible:hover .app-navigation-entry-bullet {
+ background: var(--color-primary) !important; }
+ #app-navigation .app-navigation-entry-bullet-with-hover {
+ position: absolute;
+ display: block;
+ margin: 16px;
+ width: 12px;
+ height: 12px;
+ border: none;
+ border-radius: 50%;
+ cursor: pointer;
+ transition: background 100ms ease-in-out;
+ z-index: 101; }
#app-navigation a .selected {
opacity: 1 !important;
diff --git a/css/app.css.map b/css/app.css.map
index f819c34f..de086ec5 100644
--- a/css/app.css.map
+++ b/css/app.css.map
@@ -1,6 +1,6 @@
{
"version": 3,
-"mappings": "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",
+"mappings": "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",
"sources": ["../sass/app.scss","../sass/variables.scss","../sass/mixins.scss","../sass/partials/button.scss","../sass/partials/popovermenu.scss","../sass/partials/tabs.scss","../sass/partials/pwgen.scss","../sass/partials/icon-picker.scss","../sass/partials/share-incoming.scss","../sass/vaults.scss","../sass/credentials.scss","../sass/menu.scss","../sass/share_credential.scss","../sass/settings.scss","../sass/searchboxexpander.scss"],
"names": [],
"file": "app.css"
diff --git a/css/bookmarklet.css b/css/bookmarklet.css
index 58742fab..7d436955 100644
--- a/css/bookmarklet.css
+++ b/css/bookmarklet.css
@@ -19,18 +19,27 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-header, nav {
+header {
display: none; }
#content-wrapper {
padding-top: 0; }
+#app-content {
+ margin-left: 0;
+ overflow-x: auto; }
+
#app-content-wrapper {
min-height: inherit !important; }
.warning_bar .fa-times {
margin-right: 20px; }
+#passman-controls .breadcrumb {
+ padding-left: 0; }
+ #passman-controls .breadcrumb a, #passman-controls .breadcrumb a i {
+ cursor: default; }
+
.tab_container {
padding-top: 10px;
margin-bottom: 20px; }
@@ -47,10 +56,10 @@ header, nav {
padding-right: 5px;
font-size: 10px; }
-.tab_header {
- margin: 0; }
-
.angularjs-datetime-picker {
z-index: 9999; }
+.icon-picker {
+ display: none; }
+
/*# sourceMappingURL=bookmarklet.css.map */
diff --git a/css/bookmarklet.css.map b/css/bookmarklet.css.map
index 965bcb8c..c37211e7 100644
--- a/css/bookmarklet.css.map
+++ b/css/bookmarklet.css.map
@@ -1,6 +1,6 @@
{
"version": 3,
-"mappings": "AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,WAAW;EACT,OAAO,EAAE,IAAI;;AAKf,gBAAgB;EACd,WAAW,EAAE,CAAC;;AAIhB,oBAAoB;EAClB,UAAU,EAAE,kBAAkB;;AAGhC,sBAAuB;EACtB,YAAY,EAAE,IAAI;;AAEnB,cAAc;EACZ,WAAW,EAAE,IAAI;EAKjB,aAAa,EAAE,IAAI;EAJnB,kBAAG;IACD,aAAa,EAAE,GAAG;IAClB,QAAQ,EAAE,MAAM;;AAIpB,cAAc;EACZ,UAAU,EAAE,IAAI;;AAElB,aAAa;EACX,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;;AAEjB,WAAW;EACT,MAAM,EAAE,CAAC;;AAEX,0BAA0B;EACxB,OAAO,EAAE,IAAI",
+"mappings": "AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAO;EACL,OAAO,EAAE,IAAI;;AAOf,gBAAiB;EACf,WAAW,EAAE,CAAC;;AAIhB,YAAa;EACX,WAAW,EAAE,CAAC;EACd,UAAU,EAAE,IAAI;;AAGlB,oBAAqB;EACnB,UAAU,EAAE,kBAAkB;;AAGhC,sBAAuB;EACrB,YAAY,EAAE,IAAI;;AAGpB,6BAA8B;EAC5B,YAAY,EAAE,CAAC;EACf,kEAAO;IACL,MAAM,EAAE,OAAO;;AAInB,cAAe;EACb,WAAW,EAAE,IAAI;EAOjB,aAAa,EAAE,IAAI;EALnB,kBAAI;IACF,aAAa,EAAE,GAAG;IAClB,QAAQ,EAAE,MAAM;;AAMpB,cAAe;EACb,UAAU,EAAE,IAAI;;AAGlB,aAAc;EACZ,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;;AAGjB,0BAA2B;EACzB,OAAO,EAAE,IAAI;;AAGf,YAAa;EACX,OAAO,EAAE,IAAI",
"sources": ["../sass/bookmarklet.scss"],
"names": [],
"file": "bookmarklet.css"
diff --git a/js/app/controllers/bookmarklet.js b/js/app/controllers/bookmarklet.js
index a1d292bd..6673dba2 100644
--- a/js/app/controllers/bookmarklet.js
+++ b/js/app/controllers/bookmarklet.js
@@ -411,9 +411,13 @@
NotificationService.showNotification($translate.instant('credential.created'), 5000);
});
}
+ setTimeout(() => window.close(), 3000);
};
+ $scope.cancel = function () {
+ window.close();
+ };
}
]);
-}()); \ No newline at end of file
+}());
diff --git a/js/app/controllers/export.js b/js/app/controllers/export.js
index b284048c..f152b506 100644
--- a/js/app/controllers/export.js
+++ b/js/app/controllers/export.js
@@ -72,15 +72,19 @@
if (vault.hasOwnProperty('credentials')) {
if (vault.credentials.length > 0) {
for (var i = 0; i < vault.credentials.length; i++) {
- var _credential = angular.copy(vault.credentials[i]);
- if (_credential.hidden === 0) {
- var key = CredentialService.getSharedKeyFromCredential(_credential);
- _credential = CredentialService.decryptCredential(_credential, key);
- _credential.vault_key = key;
- _credentials.push(_credential);
+ try {
+ var _credential = angular.copy(vault.credentials[i]);
+ if (_credential.hidden === 0) {
+ var key = CredentialService.getSharedKeyFromCredential(_credential);
+ _credential = CredentialService.decryptCredential(_credential, key);
+ _credential.vault_key = key;
+ _credentials.push(_credential);
+ }
+ } catch (e) {
+ _log($translate.instant('export.decrypt.error', {credential: (vault.credentials[i].label !== undefined) ? vault.credentials[i].label : i}));
}
}
- $window.PassmanExporter[$scope.selectedExporter.id].export(_credentials, FileService, EncryptService).then(function () {
+ $window.PassmanExporter[$scope.selectedExporter.id].export(_credentials, FileService, EncryptService, $scope.log, $translate).then(function () {
_log($translate.instant('done'));
});
}
@@ -92,4 +96,4 @@
}]);
-}()); \ No newline at end of file
+}());
diff --git a/js/app/controllers/settings.js b/js/app/controllers/settings.js
index 750b41a4..9fa1f155 100644
--- a/js/app/controllers/settings.js
+++ b/js/app/controllers/settings.js
@@ -87,8 +87,8 @@
});
var btn_txt = $translate.instant('bookmarklet.text');
- var http = location.protocol, slashes = http.concat("//"), host = slashes.concat(window.location.hostname), complete = host + location.pathname;
- $scope.bookmarklet = $sce.trustAsHtml("<a class=\"button\" href=\"javascript:(function(){var a=window,b=document,c=encodeURIComponent,e=c(document.title),d=a.open('" + complete + "bookmarklet?url='+c(b.location)+'&title='+e,'bkmk_popup','left='+((a.screenX||a.screenLeft)+10)+',top='+((a.screenY||a.screenTop)+10)+',height=750px,width=475px,resizable=0,alwaysRaised=1');a.setTimeout(function(){d.focus()},300);})();\">" + btn_txt + "</a>");
+ var http = location.protocol, slashes = http.concat("//"), host = slashes.concat(window.location.hostname + ":" + window.location.port), complete = host + location.pathname;
+ $scope.bookmarklet = $sce.trustAsHtml("<a class=\"button\" href=\"javascript:(function(){var a=window,b=document,c=encodeURIComponent,e=c(document.title),d=a.open('" + complete + "/bookmarklet?url='+c(b.location)+'&title='+e,'bkmk_popup','left='+((a.screenX||a.screenLeft)+10)+',top='+((a.screenY||a.screenTop)+10)+',height=750px,width=475px,resizable=0,alwaysRaised=1');a.setTimeout(function(){d.focus()},300);})();\">" + btn_txt + "</a>");
$scope.saveVaultSettings = function () {
@@ -322,4 +322,4 @@
}]);
-}()); \ No newline at end of file
+}());
diff --git a/js/exporters/exporter-csv.js b/js/exporters/exporter-csv.js
index 25fbc67c..0d348406 100644
--- a/js/exporters/exporter-csv.js
+++ b/js/exporters/exporter-csv.js
@@ -30,10 +30,10 @@ PassmanExporter.csv = {
}
};
-PassmanExporter.csv.export = function (credentials, FileService, EncryptService) {
+PassmanExporter.csv.export = function (credentials, FileService, EncryptService, _log, $translate) {
/** global: C_Promise */
return new C_Promise(function () {
- PassmanExporter.getCredentialsWithFiles(credentials, FileService, EncryptService).then((function(){
+ PassmanExporter.getCredentialsWithFiles(credentials, FileService, EncryptService, _log, $translate).then((function(){
var headers = ['label', 'username', 'password', 'email', 'description', 'tags', 'url', 'custom_fields', 'files'];
var file_data = '"' + headers.join('","') + '"\n';
for (var i = 0; i < credentials.length; i++) {
diff --git a/js/exporters/exporter-json.js b/js/exporters/exporter-json.js
index dc20b68b..17a29259 100644
--- a/js/exporters/exporter-json.js
+++ b/js/exporters/exporter-json.js
@@ -30,10 +30,10 @@ PassmanExporter.json = {
}
};
-PassmanExporter.json.export = function (credentials, FileService, EncryptService) {
+PassmanExporter.json.export = function (credentials, FileService, EncryptService, _log, $translate) {
/** global: C_Promise */
return new C_Promise(function () {
- PassmanExporter.getCredentialsWithFiles(credentials, FileService, EncryptService).then((function(){
+ PassmanExporter.getCredentialsWithFiles(credentials, FileService, EncryptService, _log, $translate).then((function(){
var _output = [];
for (var i = 0; i < credentials.length; i++) {
var _credential = angular.copy(credentials[i]);
diff --git a/js/exporters/exporter-main.js b/js/exporters/exporter-main.js
index 48cccc5f..296cce11 100644
--- a/js/exporters/exporter-main.js
+++ b/js/exporters/exporter-main.js
@@ -23,87 +23,104 @@
// Importers should always start with this
if (!window['PassmanExporter']) {
var PassmanExporter = {
- getCredentialsWithFiles: function(credentials, FileService, EncryptService) {
- var t = {
- cred: credentials,
- FS: FileService,
- ES: EncryptService
- };
- /** global: C_Promise */
- return new C_Promise(function() {
- var _this = this.parent;
- var credentials = _this.cred;
- this.parent.total = 0;
- this.parent.finished = 0;
- this.parent.fileGUID_cred = [];
- this.parent.files = [];
- this.parent.step = (function(file) {
- this.parent.finished ++;
- this.call_progress({
- total: this.parent.total,
- finished: this.parent.finished
- });
-
- var dta = this.parent.fileGUID_cred[file.guid];
-
- file.filename = this.parent.ES.decryptString(file.filename, this.parent.cred[dta.cred_pos].vault_key);
- file.file_data = this.parent.ES.decryptString(file.file_data, this.parent.cred[dta.cred_pos].vault_key);
-
- // Files and custom_fields have different field structure
- if (dta.on === 'files') {
- this.parent.cred[dta.cred_pos][dta.on][dta.at] = file;
- }
- else {
- this.parent.cred[dta.cred_pos][dta.on][dta.at].value = file;
- }
-
- // We have finished downloading everything, so let's hand over job to somewhere else!
- if (this.parent.total === this.parent.finished) {
- this.call_then(this.parent.cred);
- }
- }).bind(this);
+ getCredentialsWithFiles: function (credentials, FileService, EncryptService, _log, $translate) {
+ var t = {
+ cred: credentials,
+ FS: FileService,
+ ES: EncryptService
+ };
+ /** global: C_Promise */
+ return new C_Promise(function () {
+ var _this = this.parent;
+ var credentials = _this.cred;
+ this.parent.total = 0;
+ this.parent.finished = 0;
+ this.parent.fileGUID_cred = [];
+ this.parent.files = [];
+ this.parent.step = (function (file) {
+ this.parent.finished++;
+ this.call_progress({
+ total: this.parent.total,
+ finished: this.parent.finished
+ });
- for (var i = 0; i < credentials.length; i++) {
-
- var item = credentials[i];
-
- // Custom fields
- for (c = 0; c < item.custom_fields.length; c++) {
- var cf = item.custom_fields[c];
- if (cf.field_type === 'file') {
- this.parent.total ++;
- this.parent.fileGUID_cred[cf.value.guid] = {
- cred_pos: i,
- on: 'custom_fields',
- at: c
- };
+ var dta = this.parent.fileGUID_cred[file.guid];
- this.parent.FS.getFile(cf.value).then((function(data){
- this.parent.step(data);
- }).bind(this));
- }
- }
-
- // Also get all files
- for (var c = 0; c < item.files.length; c++) {
- this.parent.total ++;
- this.parent.fileGUID_cred[item.files[c].guid] = {
- cred_pos: i,
- on: 'files',
- at: c
- };
+ file.filename = this.parent.ES.decryptString(file.filename, this.parent.cred[dta.cred_pos].vault_key);
+ file.file_data = this.parent.ES.decryptString(file.file_data, this.parent.cred[dta.cred_pos].vault_key);
- this.parent.FS.getFile(item.files[c]).then((function(data){
- this.parent.step(data);
- }).bind(this));
- }
- }
-
- // We have finished downloading everything, so let's hand over job to somewhere else!
- if (this.parent.total === 0) {
- this.call_then(this.parent.cred);
- }
- }, t);
- }
+ // Files and custom_fields have different field structure
+ if (dta.on === 'files') {
+ this.parent.cred[dta.cred_pos][dta.on][dta.at] = file;
+ } else {
+ this.parent.cred[dta.cred_pos][dta.on][dta.at].value = file;
+ }
+
+ // We have finished downloading everything, so let's hand over job to somewhere else!
+ if (this.parent.total === this.parent.finished) {
+ this.call_then(this.parent.cred);
+ }
+ }).bind(this);
+ this.parent.stepFailed = (function (error) {
+ _log.push($translate.instant('export.decrypt.error', {credential: error.config.filename}));
+ this.parent.finished++;
+ this.call_progress({
+ total: this.parent.total,
+ finished: this.parent.finished
+ });
+
+ // We have finished downloading everything, so let's hand over job to somewhere else!
+ if (this.parent.total === this.parent.finished) {
+ this.call_then(this.parent.cred);
+ }
+ }).bind(this);
+
+ for (var i = 0; i < credentials.length; i++) {
+
+ var item = credentials[i];
+
+ // Custom fields
+ for (c = 0; c < item.custom_fields.length; c++) {
+ var cf = item.custom_fields[c];
+ if (cf.field_type === 'file') {
+ this.parent.total++;
+ this.parent.fileGUID_cred[cf.value.guid] = {
+ cred_pos: i,
+ on: 'custom_fields',
+ at: c
+ };
+
+ this.parent.FS.getFile(cf.value).then((function (data) {
+ this.parent.step(data);
+ }).bind(this), (function (error) {
+ this.parent.stepFailed(error);
+ }).bind(this));
+ }
+ }
+
+ // Also get all files
+ for (var c = 0; c < item.files.length; c++) {
+ this.parent.total++;
+ this.parent.fileGUID_cred[item.files[c].guid] = {
+ cred_pos: i,
+ on: 'files',
+ at: c
+ };
+
+ this.parent.FS.getFile(item.files[c]).then((function (data) {
+ this.parent.step(data);
+ }).bind(this), (function (error) {
+ this.parent.stepFailed(error);
+ }).bind(this));
+ }
+ }
+
+ // We have finished downloading everything, so let's hand over job to somewhere else!
+ console.warn("parent.total " + this.parent.total);
+ if (this.parent.total === 0) {
+ this.call_then(this.parent.cred);
+ }
+ }, t);
+ }
};
-} \ No newline at end of file
+}
diff --git a/js/templates.js b/js/templates.js
index 1ea17bfe..34c2e989 100644
--- a/js/templates.js
+++ b/js/templates.js
@@ -9,7 +9,7 @@ angular.module('views/credential_revisions.html', []).run(['$templateCache', fun
angular.module('views/edit_credential.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/edit_credential.html',
- '<div id="passman-controls"><div class="breadcrumb"><div class="breadcrumb"><div class="crumb svg ui-droppable" data-dir="/"><a ng-click="logout()"><i class="fa fa-home"></i></a></div><div class="crumb svg" data-dir="/Test"><a ng-click="cancel()">{{active_vault.name}}</a></div><div class="crumb svg last" data-dir="/Test"><a ng-if="storedCredential.credential_id">{{ \'edit.credential\' | translate}} "{{storedCredential.label}}"</a> <a ng-if="!storedCredential.credential_id">{{ \'create.credential\' | translate}}</a></div></div></div></div><div><ul class="tab_header"><li ng-repeat="tab in tabs track by $index" class="tab" ng-class="isActiveTab(tab)? \'active\' : \'inactive\'" ng-click="onClickTab(tab)" use-theme color="\'true\'">{{tab.title}}<div class="indicator" use-theme negative="\'true\'"></div></li></ul><div class="tab_container edit_credential" use-theme type="\'border-top-color\'"><div ng-include="currentTab.url"></div><button ng-click="saveCredential()" ng-disabled="saving"><i class="fa fa-spinner fa-spin" ng-show="saving"></i> {{ \'save\' | translate}}</button> <button ng-click="cancel()">{{ \'cancel\' | translate}}</button></div></div>');
+ '<div id="passman-controls"><div class="breadcrumb"><div class="breadcrumb"><div class="crumb svg ui-droppable" data-dir="/"><a ng-click="logout()"><i class="fa fa-home"></i></a></div><div class="crumb svg" data-dir="/Test"><a ng-click="cancel()">{{ active_vault.name }}</a></div><div class="crumb svg last" data-dir="/Test"><a ng-if="storedCredential.credential_id">{{ \'edit.credential\' | translate }} "{{ storedCredential.label }}"</a> <a ng-if="!storedCredential.credential_id">{{ \'create.credential\' | translate }}</a></div></div></div></div><div class="app-sidebar-tabs"><nav class="app-sidebar-tabs__nav"><ul><li ng-repeat="tab in tabs track by $index" class="app-sidebar-tabs__tab" ng-class="isActiveTab(tab)? \'active\' : \'inactive\'" ng-click="onClickTab(tab)">{{ tab.title }}</li></ul></nav><div class="tab_container edit_credential" use-theme type="\'border-top-color\'"><div ng-include="currentTab.url"></div><button ng-click="saveCredential()" ng-disabled="saving"><i class="fa fa-spinner fa-spin" ng-show="saving"></i> {{ \'save\' | translate }}</button> <button ng-click="cancel()">{{ \'cancel\' | translate }}</button></div></div>');
}]);
angular.module('views/partials/credential_template.html', []).run(['$templateCache', function($templateCache) {
@@ -119,19 +119,19 @@ angular.module('views/partials/password-meter.html', []).run(['$templateCache',
angular.module('views/settings.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/settings.html',
- '<div id="passman-controls"><div class="breadcrumb"><div class="breadcrumb"><div class="crumb svg ui-droppable" data-dir="/"><a ng-click="logout()"><i class="fa fa-home"></i></a></div><div class="crumb svg"><a ng-click="cancel()">{{active_vault.name}}</a></div><div class="crumb svg last"><a>{{ \'settings\' | translate}}</a></div></div></div></div><div><ul class="tab_header"><li ng-repeat="tab in tabs track by $index" class="tab" ng-class="isActiveTab(tab)? \'active\' : \'inactive\'" ng-click="onClickTab(tab)" use-theme color="\'true\'">{{tab.title | translate}}<div class="indicator" use-theme negative="\'true\'"></div></li></ul><div class="tab_container settings edit_credential" use-theme type="\'border-top-color\'"><div ng-include="currentTab.url"></div></div></div>');
+ '<div id="passman-controls"><div class="breadcrumb"><div class="breadcrumb"><div class="crumb svg ui-droppable" data-dir="/"><a ng-click="logout()"><i class="fa fa-home"></i></a></div><div class="crumb svg"><a ng-click="cancel()">{{ active_vault.name }}</a></div><div class="crumb svg last"><a>{{ \'settings\' | translate }}</a></div></div></div></div><div class="app-sidebar-tabs"><nav class="app-sidebar-tabs__nav"><ul><li ng-repeat="tab in tabs track by $index" class="app-sidebar-tabs__tab" ng-class="isActiveTab(tab)? \'active\' : \'inactive\'" ng-click="onClickTab(tab)">{{ tab.title | translate }}</li></ul></nav><div class="tab_container settings edit_credential" use-theme type="\'border-top-color\'"><div ng-include="currentTab.url"></div></div></div>');
}]);
angular.module('views/share_credential.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/share_credential.html',
- '<div class="main_list.share"><div id="passman-controls"><div class="actions creatable"><div class="breadcrumb"><div class="crumb svg ui-droppable" data-dir="/"><a ng-click="logout()"><i class="fa fa-home"></i></a></div><div class="crumb svg" data-dir="/Test"><a ng-click="cancel()">{{active_vault.name}}</a></div><div class="crumb svg last" data-dir="/Test"><a ng-if="storedCredential.credential_id">{{ \'share.credential\' | translate}} {{storedCredential.label}}</a></div></div></div></div><ul class="tab_header"><li ng-repeat="tab in tabs track by $index" class="tab" ng-class="{active:isActiveTab(tab)}" ng-click="onClickTab(tab)" use-theme color="\'true\'">{{tab.title | translate}}<div class="indicator" use-theme negative="\'true\'"></div></li></ul><div class="tab_container share_credential" ng-show="currentTab"><div ng-include="currentTab.url"></div><button ng-click="applyShare()" ng-disabled="share_settings.linkSharing.enabled === false && share_settings.credentialSharedWithUserAndGroup.length === 0">{{ \'share\' | translate}}</button> <button ng-click="cancel()">{{ \'cancel\' | translate}}</button> <button class="btn btn-danger" ng-disabled="!storedCredential.shared_key" ng-click="unshareCredential(storedCredential)">{{ \'unshare\' | translate}}</button></div></div>');
+ '<div id="passman-controls"><div class="actions creatable"><div class="breadcrumb"><div class="crumb svg ui-droppable" data-dir="/"><a ng-click="logout()"><i class="fa fa-home"></i></a></div><div class="crumb svg" data-dir="/Test"><a ng-click="cancel()">{{ active_vault.name }}</a></div><div class="crumb svg last" data-dir="/Test"><a ng-if="storedCredential.credential_id">{{ \'share.credential\' | translate }} {{ storedCredential.label }}</a></div></div></div></div><div class="app-sidebar-tabs"><nav class="app-sidebar-tabs__nav"><ul><li ng-repeat="tab in tabs track by $index" class="app-sidebar-tabs__tab" ng-class="isActiveTab(tab)? \'active\' : \'inactive\'" ng-click="onClickTab(tab)">{{ tab.title | translate }}</li></ul></nav><div class="tab_container share_credential" ng-show="currentTab"><div ng-include="currentTab.url"></div><button ng-click="applyShare()" ng-disabled="share_settings.linkSharing.enabled === false && share_settings.credentialSharedWithUserAndGroup.length === 0">{{ \'share\' | translate }}</button> <button ng-click="cancel()">{{ \'cancel\' | translate }}</button> <button class="btn btn-danger" ng-disabled="!storedCredential.shared_key" ng-click="unshareCredential(storedCredential)">{{ \'unshare\' | translate }}</button></div></div>');
}]);
angular.module('views/show_vault.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/show_vault.html',
- '<div class="main_list" off-click-filter="\'.download-js-link, .sidebar-shown, #app-sidebar\'"><div id="passman-controls" ng-class="{ \'sidebar-shown\': selectedCredential }"><div class="breadcrumb"><div class="breadcrumb"><div class="crumb svg ui-droppable" data-dir="/"><a ng-click="logout()"><i class="fa fa-home"></i></a></div><div class="crumb svg" ng-click="clearState()"><a>{{active_vault.name}}</a></div></div><div class="addCredential" ng-hide="delete_time>0"><button ng-click="addCredential()"><i class="fa fa-plus"></i></button></div><div class="addCredential" ng-hide="delete_time>0"><button ng-click="refresh()"><i class="fa fa-refresh"></i></button></div></div><div class="title" credential-counter="filtered_credentials" vault="active_vault" delete-time="delete_time" filters="filterOptions"></div><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"><input type="checkbox" ng-model="filterOptions.useRegex"> {{ \'use.regex\' | translate }}</div></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-dblclick="editCredential(credential)" ng-class="{\'selected\': selectedCredential.credential_id == credential.credential_id}"><td ng-class="{\'compromised\': credential.compromised }"><span class="tags"><span class="tag" ng-repeat="tag in credential.tags_raw">{{ ::tag.text}}</span> </span><span class="icon" ng-if="credential.url || credential.icon"><credential-icon credential="credential"></credential-icon></span><span class="icon" ng-if="!credential.url && !credential.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><a class="label">{{ ::credential.label}}</a> <span ng-if="credential.compromised" class="compromised-list"><i class="icon-error icon"></i> <span class="text">{{ \'compromised.warning.list\' | translate}}</span></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><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><div class="tags"><div class="tag" ng-repeat="tag in credential.tags_raw">{{ ::tag.text}}</div></div></div></li></ul><div ng-if="getListSizes().listsize_wout_deleted==0 && no_credentials_label.all && !show_spinner && selectedtags.length==0 && filterOptions.filterText==\'\'" class="nopasswords" ng-hide="delete_time>0"><b>{{\'vault.hint.hello\' | translate}}</b><br><div>{{\'vault.hint.hello.add\' | translate}}</div><div class=""><button ng-click="addCredential()">+</button></div></div><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><div ng-if="getListSizes().listsize_wout_deleted==0 && no_credentials_label.all && !show_spinner && selectedtags.length==0 && filterOptions.filterText!=\'\'" class="nopasswords" ng-hide="delete_time>0"><div>{{ \'vault.hint.list.nosearch\' | translate}} <b>\'{{filterOptions.filterText}}\'</b></div></div><div class="nopasswords" ng-if="no_credentials_label.s_good" ng-hide="getListSizes().listsize_wout_deleted>0"><div>{{ \'vault.hint.list.nogood\' | translate}}</div></div><div class="nopasswords" ng-if="no_credentials_label.s_medium" ng-hide="getListSizes().listsize_wout_deleted>0"><div>{{ \'vault.hint.list.nomedium\' | translate}}</div></div><div class="nopasswords" ng-if="no_credentials_label.s_low" ng-hide="getListSizes().listsize_wout_deleted>0"><div>{{ \'vault.hint.list.nobad\' | translate}}</div></div><div class="nopasswords" ng-if="no_credentials_label.expired" ng-hide="getListSizes().listsize_wout_deleted>0"><div>{{ \'vault.hint.list.noexpired\' | translate}}</div></div><div class="nopasswords" ng-if="getListSizes().listsize_deleted==0" ng-hide="delete_time==0"><div>{{ \'vault.hint.list.nodeleted\' | translate}}</div></div></div></div><div id="app-sidebar" class="app_sidebar" ng-show="selectedCredential" off-click="closeSelected()"><span class="close icon-close" ng-click="closeSelected()" alt="Close"></span><div class="sidebar"><span class="icon sidebar-icon" ng-if="selectedCredential.url || selectedCredential.icon"><credential-icon credential="selectedCredential"></credential-icon></span><span class="icon sidebar-icon" ng-if="!selectedCredential.url && !selectedCredential.icon"><i class="fa fa-lock fa-3x icon-image"></i></span><h2 class="sidebar-label">{{selectedCredential.label}}</h2></div><div credential-template="selectedCredential"></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 &&\n' +
+ '<div class="main_list" off-click-filter="\'.download-js-link, .sidebar-shown, #app-sidebar\'"><div id="passman-controls" ng-class="{ \'sidebar-shown\': selectedCredential }"><div class="breadcrumb"><div class="breadcrumb"><div class="crumb svg ui-droppable" data-dir="/"><a ng-click="logout()"><i class="fa fa-home"></i></a></div><div class="crumb svg" ng-click="clearState()"><a>{{active_vault.name}}</a></div></div><div class="addCredential" ng-hide="delete_time>0"><button ng-click="addCredential()"><i class="fa fa-plus"></i></button></div><div class="addCredential" ng-hide="delete_time>0"><button ng-click="refresh()"><i class="fa fa-refresh"></i></button></div></div><div class="title" credential-counter="filtered_credentials" vault="active_vault" delete-time="delete_time" filters="filterOptions"></div><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"><input type="checkbox" ng-model="filterOptions.useRegex"> {{ \'use.regex\' | translate }}</div></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-dblclick="editCredential(credential)" ng-class="{\'selected\': selectedCredential.credential_id == credential.credential_id}"><td ng-class="{\'compromised\': credential.compromised }"><span class="tags"><span class="tag" ng-repeat="tag in credential.tags_raw">{{ ::tag.text}}</span> </span><span class="icon" ng-if="credential.url || (credential.icon && credential.icon.type !== false)"><credential-icon credential="credential"></credential-icon></span><span class="icon" ng-if="!credential.url && (!credential.icon || (credential.icon && !credential.icon.type))"><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><a class="label">{{ ::credential.label}}</a> <span ng-if="credential.compromised" class="compromised-list"><i class="icon-error icon"></i> <span class="text">{{ \'compromised.warning.list\' | translate}}</span></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><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><div class="tags"><div class="tag" ng-repeat="tag in credential.tags_raw">{{ ::tag.text}}</div></div></div></li></ul><div ng-if="getListSizes().listsize_wout_deleted==0 && no_credentials_label.all && !show_spinner && selectedtags.length==0 && filterOptions.filterText==\'\'" class="nopasswords" ng-hide="delete_time>0"><b>{{\'vault.hint.hello\' | translate}}</b><br><div>{{\'vault.hint.hello.add\' | translate}}</div><div class=""><button ng-click="addCredential()">+</button></div></div><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><div ng-if="getListSizes().listsize_wout_deleted==0 && no_credentials_label.all && !show_spinner && selectedtags.length==0 && filterOptions.filterText!=\'\'" class="nopasswords" ng-hide="delete_time>0"><div>{{ \'vault.hint.list.nosearch\' | translate}} <b>\'{{filterOptions.filterText}}\'</b></div></div><div class="nopasswords" ng-if="no_credentials_label.s_good" ng-hide="getListSizes().listsize_wout_deleted>0"><div>{{ \'vault.hint.list.nogood\' | translate}}</div></div><div class="nopasswords" ng-if="no_credentials_label.s_medium" ng-hide="getListSizes().listsize_wout_deleted>0"><div>{{ \'vault.hint.list.nomedium\' | translate}}</div></div><div class="nopasswords" ng-if="no_credentials_label.s_low" ng-hide="getListSizes().listsize_wout_deleted>0"><div>{{ \'vault.hint.list.nobad\' | translate}}</div></div><div class="nopasswords" ng-if="no_credentials_label.expired" ng-hide="getListSizes().listsize_wout_deleted>0"><div>{{ \'vault.hint.list.noexpired\' | translate}}</div></div><div class="nopasswords" ng-if="getListSizes().listsize_deleted==0" ng-hide="delete_time==0"><div>{{ \'vault.hint.list.nodeleted\' | translate}}</div></div></div></div><div id="app-sidebar" class="app_sidebar" ng-show="selectedCredential" off-click="closeSelected()"><span class="close icon-close" ng-click="closeSelected()" alt="Close"></span><div class="sidebar"><span class="icon sidebar-icon" ng-if="selectedCredential.url || (selectedCredential.icon && selectedCredential.icon.type !== false)"><credential-icon credential="selectedCredential"></credential-icon></span><span class="icon sidebar-icon" ng-if="!selectedCredential.url && (!selectedCredential.icon || (selectedCredential.icon && !selectedCredential.icon.type))"><i class="fa fa-lock fa-3x icon-image"></i></span><h2 class="sidebar-label">{{selectedCredential.label}}</h2></div><div credential-template="selectedCredential"></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 &&\n' +
' (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 class="share_popup" style="display: none" title="{{ \'sharereq.title\' | translate }}"><p>{{ \'sharereq.line1\' | translate}} {{ \'sharereq.line2\' | translate}}</p><br><table class="table"><thead><tr><td><b>{{ \'label\' | translate}}</b></td><td><b>{{ \'permissions\' | translate}}</b></td><td><b>{{ \'received.from\' | translate}}</b></td><td><b>{{ \'date\' | translate}}</b></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)"><b>{{ \'accept\' | translate}}</b></span> | <span class="link" ng-click="declineShareRequest(share_request)">{{ \'decline\' | translate}}</span></td></tr></table></div>');
}]);
diff --git a/sass/bookmarklet.scss b/sass/bookmarklet.scss
index fca8bc17..50e63061 100644
--- a/sass/bookmarklet.scss
+++ b/sass/bookmarklet.scss
@@ -20,44 +20,65 @@
*
*/
-header, nav{
+header {
display: none;
}
-#content{
+
+#content {
}
-#content-wrapper{
+
+#content-wrapper {
padding-top: 0;
}
-#app-content-wrapper{
+#app-content {
+ margin-left: 0;
+ overflow-x: auto;
+}
+
+#app-content-wrapper {
min-height: inherit !important;
}
.warning_bar .fa-times {
- margin-right: 20px;
+ margin-right: 20px;
}
-.tab_container{
+
+#passman-controls .breadcrumb {
+ padding-left: 0;
+ a, a i {
+ cursor: default;
+ }
+}
+
+.tab_container {
padding-top: 10px;
- div{
+
+ div {
margin-bottom: 5px;
overflow: hidden;
}
+
margin-bottom: 20px;
}
-.vault_wrapper{
+
+.vault_wrapper {
margin-top: 70px;
}
-.active_vault{
+
+.active_vault {
float: right;
text-align: right;
padding-right: 5px;
font-size: 10px;
}
-.tab_header{
- margin: 0;
-}
-.angularjs-datetime-picker{
+
+.angularjs-datetime-picker {
z-index: 9999;
-} \ No newline at end of file
+}
+
+.icon-picker {
+ display: none;
+}
diff --git a/sass/menu.scss b/sass/menu.scss
index 66a268a7..8d849417 100644
--- a/sass/menu.scss
+++ b/sass/menu.scss
@@ -55,7 +55,7 @@
//border-left: 3px solid #0082c9;
background-image: var(--icon-delete-e9322d);
}
- background-color: #fff !important;
+ //background-color: #fff !important;
opacity: 1 !important;
z-index: 140;
//padding: 0 20px;
@@ -70,6 +70,19 @@
.collapsible:hover .app-navigation-entry-bullet{
background: var(--color-primary) !important;
}
+ /* Custom bullet icon */
+ .app-navigation-entry-bullet-with-hover {
+ position: absolute;
+ display: block;
+ margin: 16px;
+ width: 12px;
+ height: 12px;
+ border: none;
+ border-radius: 50%;
+ cursor: pointer;
+ transition: background 100ms ease-in-out;
+ z-index: 101;
+ }
}
@@ -82,7 +95,7 @@
}
}
- li{
+ li {
.app-navigation-entry-bullet-color {
background-color: var(--color-primary);
}
@@ -99,22 +112,22 @@
background-color: #4db728;
}
- .highlight-selected{
- background-color: var(--color-primary);
+ .highlight-selected {
+ background-color: var(--color-primary);
}
- .autocomplete{
+ .autocomplete {
position: relative;
}
- a.taginput{
+ a.taginput {
opacity: 1;
}
- a{
+ a {
overflow: visible;
- tags-input{
+ tags-input {
opacity: 1.0;
- li{
+ li {
width: auto !important;
}
}
@@ -129,4 +142,4 @@
//source https://material.io/tools/icons/?icon=restore&style=baseline
.icon-expired{
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M0 0h24v24H0z' fill='none'/><path d='M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z'/></svg>");
-} \ No newline at end of file
+}
diff --git a/sass/partials/tabs.scss b/sass/partials/tabs.scss
index 7a5a0ca6..3ba79aa7 100644
--- a/sass/partials/tabs.scss
+++ b/sass/partials/tabs.scss
@@ -20,51 +20,47 @@
*
*/
-.tab_header {
- width: calc(100vw - 300px);
- // margin: 44px 0 0;
- margin: 0 0 0;
- list-style: none;
- padding: 0;
- li.tab:first-child {
- margin-left: 0;
- }
- li.tab {
- /*@include border-top-radius(2px);*/
- float: left;
- border-bottom-width: 0;
- margin: 0;
- padding: 10px 10px 10px 10px;
+.app-sidebar-tabs {
+ display: flex;
+ flex-direction: column;
+ min-height: 0;
+ flex: 1 1 100%;
+}
+
+.app-sidebar-tabs__nav ul {
+ display: flex;
+ justify-content: stretch;
+}
- cursor: pointer;
- border-right: 1px solid #eee;
- -webkit-transition: background-color 250ms linear;
- -moz-transition: background-color 250ms linear;
- -o-transition: background-color 250ms linear;
- -ms-transition: background-color 250ms linear;
- transition: background-color 250ms linear;
- .indicator {
- display: none;
- }
- }
+.app-sidebar-tabs__tab.active {
+ color: var(--color-text-light);
+ border-bottom-color: var(--color-primary-element);
+ box-shadow: inset 0 -1px 0 var(--color-primary-element);
+ font-weight: bold;
+}
- li.inactive {
- background-color: #fff !important;
- color: unset !important;
- }
+.app-sidebar-tabs__tab:not(.active):hover, .app-sidebar-tabs__tab:not(.active):focus {
+ border-bottom-color: var(--color-background-darker);
+ box-shadow: inset 0 -1px 0 var(--color-background-darker);
+}
- li.active {
+.app-sidebar-tabs__tab:hover, .app-sidebar-tabs__tab:focus, .app-sidebar-tabs__tab:active, .app-sidebar-tabs__tab.active {
+ opacity: 1;
+ cursor: pointer;
+}
- //position: relative;
- .indicator {
- display: inline-block;
- position: absolute;
- height: 7px;
- left: 0;
- right: 0;
- bottom: -1px;
- }
- }
+.app-sidebar-tabs__tab {
+ position: relative;
+ display: block;
+ overflow: hidden;
+ padding: 10px 10px 10px 10px;
+ transition: color var(--animation-quick), opacity var(--animation-quick), border-color var(--animation-quick);
+ text-align: center;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ opacity: .7;
+ color: var(--color-main-text);
+ border-bottom: 1px solid var(--color-border);
}
.tab_container {
diff --git a/templates/bookmarklet.php b/templates/bookmarklet.php
index 0d89e76a..dd65d678 100644
--- a/templates/bookmarklet.php
+++ b/templates/bookmarklet.php
@@ -17,7 +17,6 @@ script('passman', 'vendor/angular-translate/angular-translate.min');
script('passman', 'vendor/angular-translate/angular-translate-loader-url.min');
script('passman', 'vendor/ng-password-meter/ng-password-meter');
script('passman', 'vendor/sjcl/sjcl');
-script('passman', 'vendor/ui-sortable/sortable');
script('passman', 'vendor/zxcvbn/zxcvbn');
script('passman', 'vendor/ng-clipboard/clipboard.min');
script('passman', 'vendor/ng-clipboard/ngclipboard');
@@ -26,6 +25,9 @@ script('passman', 'vendor/angular-xeditable/xeditable.min');
script('passman', 'vendor/sha/sha');
script('passman', 'vendor/llqrcode/llqrcode');
script('passman', 'vendor/forge.0.6.9.min');
+script('passman', 'vendor/download');
+script('passman', 'vendor/ui-sortable/sortable');
+script('passman', 'vendor/papa-parse/papaparse.min');
script('passman', 'lib/promise');
script('passman', 'lib/crypto_wrap');
@@ -37,6 +39,9 @@ script('passman', 'app/controllers/bookmarklet');
script('passman', 'app/filters/range');
script('passman', 'app/filters/propsfilter');
script('passman', 'app/filters/byte');
+script('passman', 'app/filters/tagfilter');
+script('passman', 'app/filters/escapeHTML');
+script('passman', 'app/filters/as');
script('passman', 'app/services/vaultservice');
script('passman', 'app/services/credentialservice');
script('passman', 'app/services/settingsservice');
@@ -88,23 +93,43 @@ style('passman', 'bookmarklet');
<div ng-include="'views/vaults.html'"></div>
</div>
<div id="app-content-wrapper" ng-if="active_vault !== false">
- <div class="active_vault">
- {{ 'bm.active.vault' | translate}} {{active_vault.name}}<br />
- <span class="link" ng-click="logout()">{{ 'change.vault' | translate }}</span>
- </div>
- <ul class="tab_header">
- <li ng-repeat="tab in tabs track by $index" class="tab"
- ng-class="{active:isActiveTab(tab)}"
- ng-click="onClickTab(tab)" use-theme
- >{{tab.title}}
- </li>
- </ul>
+ <div id="content">
+ <div id="passman-controls">
+ <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" data-dir="/Test">
+ <a>{{ active_vault.name }}</a>
+ </div>
+ <div class="crumb svg last" data-dir="/Test">
+ <a ng-if="storedCredential.credential_id">{{ 'edit.credential' | translate }}
+ "{{ storedCredential.label }}"</a>
+ <a ng-if="!storedCredential.credential_id">{{ 'create.credential' | translate }}</a>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ <div class="app-sidebar-tabs">
+ <nav class="app-sidebar-tabs__nav">
+ <ul>
+ <li ng-repeat="tab in tabs track by $index" class="app-sidebar-tabs__tab"
+ ng-class="isActiveTab(tab)? 'active' : 'inactive'"
+ ng-click="onClickTab(tab)">{{ tab.title }}
+ </li>
+ </ul>
+ </nav>
- <div class="tab_container edit_credential">
- <div ng-include="currentTab.url"></div>
- <button ng-click="saveCredential()">{{ 'save' | translate }}</button>
- <button ng-click="cancel()">{{ 'cancel' | translate }}</button>
- </div>
+ <div class="tab_container edit_credential">
+ <div ng-include="currentTab.url"></div>
+ <button ng-click="saveCredential()">{{ 'save' | translate }}</button>
+ <button ng-click="cancel()">{{ 'cancel' | translate }}</button>
+ </div>
+ </div>
+ </div>
</div>
</div>
-</div> \ No newline at end of file
+</div>
diff --git a/templates/main.php b/templates/main.php
index 7300e4c1..b81d0a71 100644
--- a/templates/main.php
+++ b/templates/main.php
@@ -155,15 +155,15 @@ style('passman', 'app');
</ul>
</li>
<li>
- <div class="app-navigation-entry-bullet bullet-color-red"></div>
+ <div class="app-navigation-entry-bullet-with-hover bullet-color-red"></div>
<a ng-class="{selected: clickedNavigationItem=='strength_low'}" ng-click="filterCredentialBySpecial('strength_low')">{{ 'navigation.strength.bad' | translate }}</a>
</li>
<li>
- <div class="app-navigation-entry-bullet bullet-color-yellow"></div>
+ <div class="app-navigation-entry-bullet-with-hover bullet-color-yellow"></div>
<a ng-class="{selected: clickedNavigationItem=='strength_medium'}" ng-click="filterCredentialBySpecial('strength_medium')">{{ 'navigation.strength.medium' | translate }}</a>
</li>
<li>
- <div class="app-navigation-entry-bullet bullet-color-green"></div>
+ <div class="app-navigation-entry-bullet-with-hover bullet-color-green"></div>
<a ng-class="{selected: clickedNavigationItem=='strength_good'}" ng-click="filterCredentialBySpecial('strength_good')">{{ 'navigation.strength.good' | translate }}</a>
</li>
<li>
diff --git a/templates/views/edit_credential.html b/templates/views/edit_credential.html
index b03e8031..7dbc3606 100644
--- a/templates/views/edit_credential.html
+++ b/templates/views/edit_credential.html
@@ -1,35 +1,36 @@
<div id="passman-controls">
+ <div class="breadcrumb">
+ <div class="breadcrumb">
+ <div class="crumb svg ui-droppable" data-dir="/">
+ <a ng-click="logout()"><i class="fa fa-home"></i></a>
+ </div>
+ <div class="crumb svg" data-dir="/Test">
+ <a ng-click="cancel()">{{ active_vault.name }}</a>
+ </div>
+ <div class="crumb svg last" data-dir="/Test">
+ <a ng-if="storedCredential.credential_id">{{ 'edit.credential' | translate }}
+ "{{ storedCredential.label }}"</a>
+ <a ng-if="!storedCredential.credential_id">{{ 'create.credential' | translate }}</a>
+ </div>
+ </div>
- <div class="breadcrumb">
- <div class="breadcrumb">
- <div class="crumb svg ui-droppable" data-dir="/">
- <a ng-click="logout()"><i class="fa fa-home"></i></a>
- </div>
- <div class="crumb svg" data-dir="/Test">
- <a ng-click="cancel()">{{active_vault.name}}</a>
- </div>
- <div class="crumb svg last" data-dir="/Test">
- <a ng-if="storedCredential.credential_id">{{ 'edit.credential' | translate}}
- "{{storedCredential.label}}"</a>
- <a ng-if="!storedCredential.credential_id">{{ 'create.credential' | translate}}</a>
- </div>
- </div>
-
- </div>
+ </div>
</div>
-<div>
-<ul class="tab_header">
- <li ng-repeat="tab in tabs track by $index" class="tab"
- ng-class="isActiveTab(tab)? 'active' : 'inactive'"
- ng-click="onClickTab(tab)" use-theme color="'true'"
- >{{tab.title}}
- <div class="indicator" use-theme negative="'true'"></div>
- </li>
-</ul>
+<div class="app-sidebar-tabs">
+ <nav class="app-sidebar-tabs__nav">
+ <ul>
+ <li ng-repeat="tab in tabs track by $index" class="app-sidebar-tabs__tab"
+ ng-class="isActiveTab(tab)? 'active' : 'inactive'"
+ ng-click="onClickTab(tab)">{{ tab.title }}
+ </li>
+ </ul>
+ </nav>
-<div class="tab_container edit_credential" use-theme type="'border-top-color'">
- <div ng-include="currentTab.url"></div>
- <button ng-click="saveCredential()" ng-disabled="saving"><i class="fa fa-spinner fa-spin" ng-show="saving"></i> {{ 'save' | translate}}</button>
- <button ng-click="cancel()">{{ 'cancel' | translate}}</button>
-</div>
+ <div class="tab_container edit_credential" use-theme type="'border-top-color'">
+ <div ng-include="currentTab.url"></div>
+ <button ng-click="saveCredential()" ng-disabled="saving"><i class="fa fa-spinner fa-spin" ng-show="saving"></i>
+ {{ 'save' | translate }}
+ </button>
+ <button ng-click="cancel()">{{ 'cancel' | translate }}</button>
+ </div>
</div>
diff --git a/templates/views/settings.html b/templates/views/settings.html
index b9601cd5..f54353f7 100644
--- a/templates/views/settings.html
+++ b/templates/views/settings.html
@@ -5,26 +5,26 @@
<a ng-click="logout()"><i class="fa fa-home"></i></a>
</div>
<div class="crumb svg">
- <a ng-click="cancel()">{{active_vault.name}}</a>
+ <a ng-click="cancel()">{{ active_vault.name }}</a>
</div>
<div class="crumb svg last">
- <a>{{ 'settings' | translate}}</a>
+ <a>{{ 'settings' | translate }}</a>
</div>
</div>
</div>
</div>
-<div>
- <ul class="tab_header">
- <li ng-repeat="tab in tabs track by $index" class="tab"
- ng-class="isActiveTab(tab)? 'active' : 'inactive'"
- ng-click="onClickTab(tab)" use-theme color="'true'">{{tab.title | translate}}
- <div class="indicator" use-theme negative="'true'"></div>
- </li>
-
- </ul>
+<div class="app-sidebar-tabs">
+ <nav class="app-sidebar-tabs__nav">
+ <ul>
+ <li ng-repeat="tab in tabs track by $index" class="app-sidebar-tabs__tab"
+ ng-class="isActiveTab(tab)? 'active' : 'inactive'"
+ ng-click="onClickTab(tab)">{{ tab.title | translate }}
+ </li>
+ </ul>
+ </nav>
<div class="tab_container settings edit_credential" use-theme type="'border-top-color'">
<div ng-include="currentTab.url"></div>
</div>
-</div> \ No newline at end of file
+</div>
diff --git a/templates/views/share_credential.html b/templates/views/share_credential.html
index d0ac326e..65443c1e 100644
--- a/templates/views/share_credential.html
+++ b/templates/views/share_credential.html
@@ -1,34 +1,40 @@
-<div class="main_list.share">
- <div id="passman-controls">
- <div class="actions creatable">
- <div class="breadcrumb">
- <div class="crumb svg ui-droppable" data-dir="/">
- <a ng-click="logout()"><i class="fa fa-home"></i></a>
- </div>
- <div class="crumb svg" data-dir="/Test">
- <a ng-click="cancel()">{{active_vault.name}}</a>
- </div>
- <div class="crumb svg last" data-dir="/Test">
- <a ng-if="storedCredential.credential_id">
- {{ 'share.credential' | translate}} {{storedCredential.label}}
- </a>
- </div>
- </div>
- </div>
+<div id="passman-controls">
+ <div class="actions creatable">
+ <div class="breadcrumb">
+ <div class="crumb svg ui-droppable" data-dir="/">
+ <a ng-click="logout()"><i class="fa fa-home"></i></a>
+ </div>
+ <div class="crumb svg" data-dir="/Test">
+ <a ng-click="cancel()">{{ active_vault.name }}</a>
+ </div>
+ <div class="crumb svg last" data-dir="/Test">
+ <a ng-if="storedCredential.credential_id">
+ {{ 'share.credential' | translate }} {{ storedCredential.label }}
+ </a>
+ </div>
+ </div>
+ </div>
</div>
- <ul class="tab_header">
- <li ng-repeat="tab in tabs track by $index" class="tab"
- ng-class="{active:isActiveTab(tab)}"
- ng-click="onClickTab(tab)" use-theme color="'true'">{{tab.title | translate}}
- <div class="indicator" use-theme negative="'true'"></div>
- </li>
- </ul>
- <div class="tab_container share_credential" ng-show="currentTab">
- <div ng-include="currentTab.url"></div>
+<div class="app-sidebar-tabs">
+ <nav class="app-sidebar-tabs__nav">
+ <ul>
+ <li ng-repeat="tab in tabs track by $index" class="app-sidebar-tabs__tab"
+ ng-class="isActiveTab(tab)? 'active' : 'inactive'"
+ ng-click="onClickTab(tab)">{{ tab.title | translate }}
+ </li>
+ </ul>
+ </nav>
- <button ng-click="applyShare()" ng-disabled="share_settings.linkSharing.enabled === false && share_settings.credentialSharedWithUserAndGroup.length === 0">{{ 'share' | translate}}</button>
- <button ng-click="cancel()">{{ 'cancel' | translate}}</button>
- <button class="btn btn-danger" ng-disabled="!storedCredential.shared_key" ng-click="unshareCredential(storedCredential)">{{ 'unshare' | translate}}</button>
-</div>
-</div>
+ <div class="tab_container share_credential" ng-show="currentTab">
+ <div ng-include="currentTab.url"></div>
+ <button ng-click="applyShare()"
+ ng-disabled="share_settings.linkSharing.enabled === false && share_settings.credentialSharedWithUserAndGroup.length === 0">
+ {{ 'share' | translate }}
+ </button>
+ <button ng-click="cancel()">{{ 'cancel' | translate }}</button>
+ <button class="btn btn-danger" ng-disabled="!storedCredential.shared_key"
+ ng-click="unshareCredential(storedCredential)">{{ 'unshare' | translate }}
+ </button>
+ </div>
+</div>
diff --git a/templates/views/show_vault.html b/templates/views/show_vault.html
index d4bcccb1..442540bf 100644
--- a/templates/views/show_vault.html
+++ b/templates/views/show_vault.html
@@ -51,10 +51,10 @@
<span class="tag" ng-repeat="tag in credential.tags_raw">{{ ::tag.text}}</span>
</span>
- <span class="icon" ng-if="credential.url || credential.icon">
+ <span class="icon" ng-if="credential.url || (credential.icon && credential.icon.type !== false)">
<credential-icon credential="credential"></credential-icon>
</span>
- <span class="icon" ng-if="!credential.url && !credential.icon">
+ <span class="icon" ng-if="!credential.url && (!credential.icon || (credential.icon && !credential.icon.type))">
<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>
@@ -148,10 +148,10 @@
<span class="close icon-close" ng-click="closeSelected()" alt="Close"></span>
<div class="sidebar">
- <span class="icon sidebar-icon" ng-if="selectedCredential.url || selectedCredential.icon">
+ <span class="icon sidebar-icon" ng-if="selectedCredential.url || (selectedCredential.icon && selectedCredential.icon.type !== false)">
<credential-icon credential="selectedCredential"></credential-icon>
</span>
- <span class="icon sidebar-icon" ng-if="!selectedCredential.url && !selectedCredential.icon">
+ <span class="icon sidebar-icon" ng-if="!selectedCredential.url && (!selectedCredential.icon || (selectedCredential.icon && !selectedCredential.icon.type))">
<i class="fa fa-lock fa-3x icon-image"></i>
</span>
<h2 class="sidebar-label">{{selectedCredential.label}}</h2>