diff --git a/.travis.yml b/.travis.yml index fe5c0511..09871b13 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,9 @@ language: php php: - - 5.6 - 7 + - 7.0 + - 7.1 + - 7.2 env: global: - CORE_BRANCH=master @@ -15,6 +17,7 @@ env: branches: only: - master + - fix_layout_for_14 before_install: @@ -83,17 +86,13 @@ addons: matrix: include: - - php: 5.6 - env: DB=sqlite;CLOUD=owncloud;SERVER_FOLDER=core - - php: 5.6 - env: DB=mysql;CLOUD=owncloud;SERVER_FOLDER=core - - php: 5.6 - env: DB=mysql;JSTESTS=1; - php: 7.0 env: DB=mysql; +# - php: 7.0 +# env: DB=sqlite;CLOUD=owncloud;SERVER_FOLDER=core +# - php: 7.0 +# env: DB=mysql;CLOUD=owncloud;SERVER_FOLDER=core - php: 7.0 - env: DB=sqlite;CLOUD=owncloud;SERVER_FOLDER=core - - php: 7.0 - env: DB=mysql;CLOUD=owncloud;SERVER_FOLDER=core + env: DB=mysql;JSTESTS=1; allow_failures: - env: DB=sqlite;CODECHECK=2 diff --git a/README.md b/README.md index 8ed6ad1f..d2c50d70 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,12 @@ Passman is a full featured password manager. [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/749bb288c9fd4592a73056549d44a85e)](https://www.codacy.com/app/brantje/passman?utm_source=github.com&utm_medium=referral&utm_content=nextcloud/passman&utm_campaign=Badge_Coverage) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/passman/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/passman/?branch=master) +## Join us! +There is a Telegram-Group: +* [Passman General](https://t.me/passman_general) + +Those are mainly used to discuss all sorts of topics for Passman and it's apps! + ## Contents * [Screenshots](https://github.com/nextcloud/passman#Screenshots) @@ -16,6 +22,7 @@ Passman is a full featured password manager. * [Password generation](https://github.com/nextcloud/passman#password-generation) * [Storing credentials](https://github.com/nextcloud/passman#storing-credentials) * [Support passman](https://github.com/nextcloud/passman#support-passman) +* [Development](https://github.com/nextcloud/passman#development) * [API](https://github.com/nextcloud/passman#api) * [Docker](https://github.com/nextcloud/passman#docker) * [Maintainers](https://github.com/nextcloud/passman#main-developers) @@ -57,8 +64,9 @@ For more screenshots: [Click here](http://imgur.com/a/giKVt) For a demo of this app visit [https://demo.passman.cc](https://demo.passman.cc) ## Tested on -- NextCloud 10 / 11 -- ownCloud 9.1+ +- Nextcloud 14 + +For older Versions see the [Releases Tab](https://github.com/nextcloud/passman/releases) ## External apps @@ -103,8 +111,6 @@ This time using the following routine: ### Sharing credentials. Passman allows users to share passwords (this can be turned off by an administrator). - - ## API For developers Passman offers an [api](https://github.com/nextcloud/passman/wiki/API). @@ -160,7 +166,7 @@ To run the unit tests install phpunit globally, and setup the environment variab ## Contributors Add yours when creating a [pull request](https://help.github.com/articles/creating-a-pull-request/)! -- None +- Newhinton ## FAQ diff --git a/appinfo/info.xml b/appinfo/info.xml index 6bdb634d..9abd6b5b 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -19,7 +19,7 @@ Features: - Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is ) For an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc) ]]> - 2.1.5 + 2.2.0 agpl Sander Brand Marcos Zuriaga @@ -37,13 +37,13 @@ For an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc) https://img.passman.cc/share_credential.png https://img.passman.cc/password_audit.png - + sqlite pgsql mysql openssl - - + + diff --git a/bower.json b/bower.json new file mode 100644 index 00000000..8567955a --- /dev/null +++ b/bower.json @@ -0,0 +1,43 @@ +{ + "name": "Passman", + "description": "Passman is a fully featured password manager", + "main": "", + "authors": [ + "Sander Brand " + ], + "license": "AGPLv3", + "homepage": "passman.cc", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "core/vendor", + "test", + "tests" + ], + "dependencies": { + "angular": "1.5.8", + "angular-animate": "1.5.8", + "angular-cookies": "1.5.8", + "angular-local-storage": "0.4.0", + "angular-mocks": "1.5.8", + "angular-off-click": "1.0.6", + "angular-resource": "1.5.8", + "angular-route": "1.5.8", + "angular-sanitize": "1.5.8", + "angular-touch": "1.5.8", + "angular-translate": "2.9.0", + "angular-xeditable": "0.3.0", + "angular-datetime-picker": "", + "ng-clipboard": "1.5.10", + "ng-password-meter": "0.4.0", + "ng-tags-input": "3.1.1", + "papa-parse": "4.1.2", + "llqrcode": "0.0.2", + "sha": " 2.0.1", + "sjcl": " 1.0.8", + "ui-sortable": "0.19.0", + "zxcvbn": "4.4.2" + } +} diff --git a/controller/translationcontroller.php b/controller/translationcontroller.php index abf64f10..76b0f085 100644 --- a/controller/translationcontroller.php +++ b/controller/translationcontroller.php @@ -347,6 +347,16 @@ class TranslationController extends ApiController { 'decline' => $this->trans->t('Decline'), 'session.time.left' => $this->trans->t('You have {{session_time}} left before logout.'), 'vault.locked' => $this->trans->t('Your vault has been locked for {{time}} because of {{tries}} failed attempts!'), + 'vault.hint.hello' => $this->trans->t('Hello there!'), + 'vault.hint.hello.add' => $this->trans->t('It does not seem that you have any passwords. Do you want to add one?'), + 'vault.hint.list.nogood' => $this->trans->t('You don\'t have good credentials'), + 'vault.hint.list.nomedium' => $this->trans->t('You don\'t have medium credentials'), + 'vault.hint.list.nobad' => $this->trans->t('You don\'t have bad credentials'), + 'vault.hint.list.noexpired' => $this->trans->t('You don\'t have expired credentials'), + 'vault.hint.list.nodeleted' => $this->trans->t('You don\'t have deleted credentials'), + 'vault.hint.list.notags' => $this->trans->t('There are no credentials with your selected tags'), + 'vault.hint.list.nosearch' => $this->trans->t('There are no credentials matching'), + // templates/views/vaults.html 'last.access' => $this->trans->t('Last accessed'), @@ -391,6 +401,16 @@ class TranslationController extends ApiController { 'deleted.credentials' => $this->trans->t('Deleted credentials'), 'logout' => $this->trans->t('Logout'), 'donate' => $this->trans->t('Donate'), + 'navigation.show.all' => $this->trans->t('Show All'), + 'navigation.tags' => $this->trans->t('Tags'), + 'navigation.tags.search' => $this->trans->t('Search Tags'), + 'navigation.strength.good' => $this->trans->t('Good Strength'), + 'navigation.strength.medium' => $this->trans->t('Medium Strength'), + 'navigation.strength.bad' => $this->trans->t('Bad Strength'), + 'navigation.expired' => $this->trans->t('Expired'), + 'navigation.advanced.filter' => $this->trans->t('Filter Tags'), + 'navigation.advanced.checkbox' => $this->trans->t('Simple Navigation'), + // templates/public_share.php 'share.page.text' => $this->trans->t('Someone has shared a credential with you.'), diff --git a/css/admin.css b/css/admin.css index e732ee21..f362cfb5 100644 --- a/css/admin.css +++ b/css/admin.css @@ -4,10 +4,5 @@ width: 350px; } #passwordSharingSettings #requests-table { width: 100%; } -#passwordSharingSettings .link { - color: #0066ff !important; - cursor: pointer; } -#passwordSharingSettings .link:hover { - text-decoration: underline; } /*# sourceMappingURL=admin.css.map */ diff --git a/css/admin.css.map b/css/admin.css.map index f71ec9fd..410bb786 100644 --- a/css/admin.css.map +++ b/css/admin.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "AAGM,wCAAE;EACA,OAAO,EAAE,GAAG;AAGhB,kDAAkB;EAChB,KAAK,EAAE,KAAK;AAGhB,wCAAe;EACb,KAAK,EAAE,IAAI;AAIb,8BAAK;EACH,KAAK,EAAE,kBAA2B;EAClC,MAAM,EAAE,OAAO;AAEjB,oCAAW;EACT,eAAe,EAAE,SAAS", +"mappings": "AAGM,wCAAE;EACA,OAAO,EAAE,GAAG;AAGhB,kDAAkB;EAChB,KAAK,EAAE,KAAK;AAGhB,wCAAe;EACb,KAAK,EAAE,IAAI", "sources": ["../sass/admin.scss"], "names": [], "file": "admin.css" diff --git a/css/app.css b/css/app.css index 4833647f..cf346dae 100644 --- a/css/app.css +++ b/css/app.css @@ -98,13 +98,6 @@ background: #d83a02; color: #fff; } -.link { - color: #0066ff !important; - cursor: pointer; } - -.link:hover { - text-decoration: underline; } - /** * Nextcloud - passman * @@ -126,67 +119,6 @@ * along with this program. If not, see . * */ -/** - * Nextcloud - passman - * - * @copyright Copyright (c) 2016, Sander Brand (brantje@gmail.com) - * @copyright Copyright (c) 2016, Marcos Zuriaga Miguel (wolfi@wolfi.es) - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -.tab_header { - margin: 44px 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.active { - color: #fff; - position: relative; } - .tab_header li.active .indicator { - display: inline-block; - position: absolute; - height: 7px; - left: 0; - right: 0; - bottom: -1px; } - -.tab_container { - border: 1px solid; - border-color: #eee; - border-top-color: #0082c9; - border-bottom: 0; - clear: both; - padding: 0 1em; } - /** * Nextcloud - passman * @@ -231,7 +163,8 @@ .pw-gen .generate_pw { float: left; margin-top: 3px; - margin-left: -3px; } + margin-left: -3px; + padding-bottom: 1px; } .pw-gen .generate_pw .cell { padding: 5px; display: inline-block; @@ -275,7 +208,7 @@ padding: 12px; font-weight: bold; text-align: center; - z-index: 800; + z-index: 1800; background-color: red; color: white; } .warning_bar .fa-times { @@ -284,9 +217,8 @@ cursor: pointer; } .vault_wrapper { - margin: 0 auto; - margin-top: 20px; - width: 100%; + margin: 0 auto auto auto; + transform: translate(-150px); max-width: 420px; -webkit-border-radius: 5px; border-radius: 5px; @@ -360,21 +292,45 @@ * along with this program. If not, see . * */ +#content { + padding-top: 47px !important; + height: 100%; + width: 100%; } + +.icon-image { + width: 16px; } + +#app-sidebar { + height: auto; } + #app-sidebar .sidebar { + display: inline-block; } + #app-sidebar .sidebar .sidebar-icon { + margin-right: 15px; } + #app-sidebar .sidebar .sidebar-icon .icon-image { + width: 44px; } + #app-sidebar .sidebar .sidebar-icon i { + width: 44px; } + #app-sidebar .sidebar .sidebar-label { + float: right; + line-height: 44px; } + #app-content { + margin-left: 300px; + width: calc(100vw - 300px); overflow-x: hidden; } #app-content #app-content-wrapper { - min-height: 95%; } + min-height: 95%; + display: flex; + height: calc(100vh - 49px); } #app-content #app-content-wrapper #passman-controls { text-align: center; border-bottom: 1px solid #c9c9c9; } - #app-content #app-content-wrapper #passman-controls.sidebar-shown { - padding-right: 27% !important; } - @media screen and (max-width: 765px) { - #app-content #app-content-wrapper #passman-controls.sidebar-shown .title { - display: none; } } - @media screen and (min-width: 769px) and (max-width: 1120px) { - #app-content #app-content-wrapper #passman-controls.sidebar-shown .title { - display: none; } } + @media screen and (max-width: 765px) { + #app-content #app-content-wrapper #passman-controls.sidebar-shown .title { + display: none; } } + @media screen and (min-width: 769px) and (max-width: 1120px) { + #app-content #app-content-wrapper #passman-controls.sidebar-shown .title { + display: none; } } #app-content #app-content-wrapper .title { text-align: center; display: inline-block; @@ -386,6 +342,8 @@ @media screen and (min-width: 769px) and (max-width: 820px) { #app-content #app-content-wrapper .title { display: none; } } + #app-content #app-content-wrapper .breadcrumb { + float: left; } #app-content #app-content-wrapper .actions.creatable { float: left; overflow: hidden; } @@ -437,7 +395,9 @@ display: inline-block; padding: 7px; } #app-content #app-content-wrapper .searchboxContainer { - display: inline-block; + /*display: inline-block;*/ + visibility: hidden; + display: none; margin-right: 14px; float: right; } #app-content #app-content-wrapper .searchboxContainer .searchbox { @@ -466,8 +426,7 @@ border-bottom-left-radius: 3px; background-clip: padding-box; } #app-content #app-content-wrapper .credential-table { - width: 100%; - margin-top: 44px; } + width: 100%; } #app-content #app-content-wrapper .credential-table tr:hover { background-color: whitesmoke; } #app-content #app-content-wrapper .credential-table tr.selected { @@ -524,7 +483,8 @@ #app-content #app-content-wrapper .tags .tag:last-child { margin-right: 8px; } #app-content #app-content-wrapper .grid-view { - margin-top: 44px; + width: 100%; + height: 100%; display: flex; flex-wrap: wrap; } #app-content #app-content-wrapper .grid-view .credential { @@ -542,20 +502,21 @@ flex-direction: column; width: 100%; cursor: pointer; - font-size: 1.75em; - text-align: center; } + font-size: 1.75em; } #app-content #app-content-wrapper .grid-view .credential .credential_content .label { padding-top: 0.5em; - padding-left: 1em; padding-right: 1em; line-height: 1.3em; - word-wrap: break-word; } + word-wrap: break-word; + float: right; } #app-content #app-content-wrapper .grid-view .credential .credential_content .tags { - margin-bottom: 0.5em; } + margin: 0 0 auto; + text-align: right; } #app-content #app-content-wrapper .grid-view .credential .credential_content .tags .tag { color: #000 !important; margin-top: 5px; - display: inline-block; } + display: inline-block; + left: 0; } @media all and (min-width: 40em) { #app-content #app-content-wrapper .grid-view .credential { width: 40%; } } @@ -648,7 +609,16 @@ vertical-align: middle; } #app-content #app-content-wrapper .edit_credential .otpText { padding-right: 10px; } + #app-content #app-content-wrapper .main_list { + flex: 1; + float: left; + height: auto; + overflow: auto; + width: 100%; } + #app-content #app-content-wrapper .main_list .share { + overflow: hidden; } #app-content #app-content-wrapper .app_sidebar { + float: right; padding: 10px; overflow-y: auto; } #app-content #app-content-wrapper .app_sidebar h2 { @@ -762,7 +732,8 @@ /* "hand" cursor */ } .btn-danger { - color: #fff; } + color: #000000; + background-color: #ff0000; } .icon-label { overflow: hidden; } @@ -787,15 +758,12 @@ .icon-label .icon-picker { float: left; margin-top: 3px; - margin-left: -3px; - -webkit-border-bottom-left-radius: 3px; - border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-top-left-radius: 3px; - background-clip: padding-box; } + padding-top: 7px; } .icon-label .icon-picker .cell { + margin-top: 0px; + margin-left: -0px; padding: 7px 12px 2px 12px; - display: inline-block; + display: inline; font-size: 14px; border: 1px solid #ddd; background-color: #eaeaea; @@ -805,8 +773,6 @@ -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; background-clip: padding-box; } - .icon-label .icon-picker .cell img { - height: 16px; } .icon-label .icon-picker .cell:hover { color: #0066ff; } @@ -849,29 +815,38 @@ */ .settings-container div { padding-left: 15px; } +.settings-container button { + width: 80%; + margin-left: 15px; + margin-right: 15px; } -#app-navigation > ul { - padding-bottom: 80px; } - #app-navigation > ul > li > a { - padding-left: 12px !important; - z-index: auto; } +#app-navigation > ul > li > a { + z-index: auto; } .nav-trashbin { - position: fixed !important; - bottom: 44px; width: inherit !important; border-right: 1px solid #eee; } .nav-trashbin a { background-color: #fff !important; opacity: 1 !important; - z-index: 140; - padding: 0 20px; } - .nav-trashbin a.active { - border-left: 3px solid #0082c9; } + z-index: 140; } .nav-trashbin a .fa { margin-right: 15px; } +#taginput { + visibility: hidden; + display: none; } + +#app-navigation .collapsible:hover .app-navigation-entry-bullet { + background: var(--color-primary) !important; } + +#app-navigation li .app-navigation-entry-bullet-color { + background-color: var(--color-primary); } +#app-navigation li .highlight-selected { + background-color: var(--color-primary); } #app-navigation li a.taginput { + visibility: hidden; + display: none; opacity: 1; } #app-navigation li a { overflow: visible; } @@ -985,7 +960,6 @@ padding: 3px 5px; } #app-settings-content:not(.ng-hide) { - height: 90px; display: inherit !important; padding: 0; transition: height 0.15s ease-out; } @@ -1004,7 +978,8 @@ margin-right: 0 !important; } #app-content #app-content-wrapper #passman-controls { - border-bottom: 1px solid #c9c9c9; } + border-bottom: 1px solid #c9c9c9; + margin-top: 5px; } #passman-controls { box-sizing: border-box; @@ -1012,6 +987,7 @@ top: 45px; right: 0; left: 0; + border-bottom: 1px solid #c9c9c9; padding: 0 !important; margin: 0; background-color: rgba(255, 255, 255, 0.95); @@ -1027,8 +1003,8 @@ width: 100%; } } @media only screen and (min-width: 768px) { #app-navigation + #app-content #passman-controls { - left: 250px; - width: calc( 100% - 250px ) !important; } } + left: 300px; + width: calc( 100% - 300px ) !important; } } #passman-controls .button, #passman-controls, #passman-controls input[type='submit'], #passman-controls input[type='text'], #passman-controls input[type='password'], #passman-controls select { box-sizing: border-box; display: inline-block; diff --git a/css/app.css.map b/css/app.css.map index 8e3e697a..42ee8f57 100644 --- a/css/app.css.map +++ b/css/app.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "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", +"mappings": "AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;ACpBH;;;;;;;;;;;;;;;;;;;;GAoBG;ACpBH;;;;;;;;;;;;;;;;;;;;GAoBG;ACpBH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,YAAY;EACV,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;AAEb,kBAAkB;EAChB,UAAU,EAAE,OAAoB;EAChC,KAAK,EAAE,IAAI;;AAGb,WAAW;EACT,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;AAEb,iBAAiB;EACf,UAAU,EAAE,OAAoB;EAChC,KAAK,EAAE,IAAI;;ACrCb;;;;;;;;;;;;;;;;;;;;GAoBG;ACpBH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,WAAY;EACV,KAAK,EAAE,mBAAmB;EAE1B,MAAM,EAAE,KAAK;EACb,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,CAAC;EACV,8BAAmB;IACjB,WAAW,EAAE,CAAC;EAEhB,kBAAO;IACL,oCAAoC;IACpC,KAAK,EAAE,IAAI;IACX,mBAAmB,EAAE,CAAC;IACtB,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,mBAAmB;IAE5B,MAAM,EAAE,OAAO;IACf,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,6BAA6B;IACjD,eAAe,EAAE,6BAA6B;IAC9C,aAAa,EAAE,6BAA6B;IAC5C,cAAc,EAAE,6BAA6B;IAC7C,UAAU,EAAE,6BAA6B;IACzC,6BAAW;MACT,OAAO,EAAE,IAAI;EAIjB,uBAAY;IACV,gBAAgB,EAAE,eAAe;IACjC,KAAK,EAAE,gBAAgB;EAMvB,gCAAW;IACT,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,IAAI;;AAKlB,cAAe;EACb,MAAM,EAAE,cAAc;EACtB,gBAAgB,EAAE,OAAO;EACzB,mBAAmB,EAAE,CAAC;EACtB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;;AC1EhB;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO;EACL,QAAQ,EAAC,MAAM;EACf,aAAK;IACH,KAAK,EAAE,4BAA4B;IACnC,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,OAAO;IACpB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,GAAG;IAClB,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,IAAI;IJYjB,kCAAkC,EIXH,CAAC;IJYhC,0BAA0B,EIZK,CAAC;IJahC,+BAA+B,EIbA,CAAC;IJchC,uBAAuB,EIdQ,CAAC;IJehC,eAAe,EAAE,WAAW;EIb5B,oBAAY;IACV,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAC,GAAG;IAClB,0BAAK;MACH,OAAO,EAAE,GAAG;MACZ,OAAO,EAAE,YAAY;MACrB,SAAS,EAAE,IAAI;MACf,MAAM,EAAE,cAAc;MACtB,gBAAgB,EAAE,OAAiB;MACnC,MAAM,EAAE,OAAO;IAEjB,gCAAW;MACT,KAAK,EAAE,OAAgB;IAEzB,qCAAgB;MJPlB,kCAAkC,EIQD,GAAG;MJPpC,0BAA0B,EIOO,GAAG;MJNpC,+BAA+B,EIME,GAAG;MJLpC,uBAAuB,EIKU,GAAG;MJJpC,eAAe,EAAE,WAAW;;AKpD9B;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,YAAY;EACV,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI;EACb,gBAAgB,EAAE,GAAG;EACrB,KAAK,EAAE,KAAK;EACZ,sBAAS;IACP,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,OAAO;;AAGnB,cAAc;EACZ,MAAM,EAAC,gBAAgB;EACvB,SAAS,EAAE,iBAAiB;EAE5B,SAAS,EAAE,KAAK;ELRhB,qBAAqB,EKSE,GAAG;ELR1B,aAAa,EKQU,GAAG;ELP1B,eAAe,EAAE,WAAW;EAAG,qDAAqD;EKQpF,UAAU,EAAE,cAAc;EAC1B,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,KAAK;EACd,yBAAU;IAER,OAAO,EAAE,GAAG;IACZ,4HAAiB;MACf,MAAM,EAAE,OAAO;IAEjB,+BAAK;MACH,KAAK,EAAE,OAAO;IAEhB,qCAAW;MACT,gBAAgB,EAAE,kBAAkB;MACpC,KAAK,EAAE,IAAI;IAEb,4BAAE;MACA,aAAa,EAAE,iBAAiB;MAChC,OAAO,EAAE,IAAI;IAEf,kCAAQ;MACN,gBAAgB,EAAE,OAAO;EAG7B,0BAAW;IACT,OAAO,EAAE,IAAI;IACb,iCAAM;MACJ,KAAK,EAAE,OAAO;IAGd,iDAAY;MACV,KAAK,EAAE,OAAO;IAIlB,gGAA0C;MACxC,KAAK,EAAE,IAAI;ML9Cf,qBAAqB,EK+CM,GAAG;ML9C9B,aAAa,EK8Cc,GAAG;ML7C9B,eAAe,EAAE,WAAW;MAAG,qDAAqD;IKgDhF,kDAAO;MACL,KAAK,EAAE,GAAG;MACV,OAAO,EAAE,YAAY;IAGzB,kCAAO;MACL,UAAU,EAAE,IAAI;EAGpB,0BAAY;IACV,OAAO,EAAE,IAAI;IACb,gCAAK;MACH,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,KAAK;IAEhB,6CAAkB;MAChB,KAAK,EAAE,IAAI;EAIf,0BAAW;IACT,aAAa,EAAE,IAAI;;AAKvB,oCAAoC;EAClC,cAAc;IACZ,KAAK,EAAE,GAAG;AC/Gd;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,QAAS;EACP,WAAW,EAAE,eAAe;EAC5B,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;;AAIb,WAAW;EACT,KAAK,EAAE,IAAI;;AAIb,YAAY;EACV,MAAM,EAAE,IAAI;EACZ,qBAAQ;IACN,OAAO,EAAE,YAAY;IACrB,mCAAc;MACZ,YAAY,EAAE,IAAI;MAClB,+CAAW;QACT,KAAK,EAAE,IAAI;MAEb,qCAAE;QACA,KAAK,EAAE,IAAI;IAGf,oCAAc;MACZ,KAAK,EAAC,KAAK;MACX,WAAW,EAAE,IAAI;;AAKvB,YAAa;EACX,WAAW,EAAE,KAAK;EAClB,KAAK,EAAE,mBAAmB;EAC1B,UAAU,EAAE,MAAM;EAGlB,iCAAqB;IACnB,UAAU,EAAE,GAAG;IACf,OAAO,EAAC,IAAI;IAEZ,MAAM,EAAE,kBAAkB;IAE1B,mDAAkB;MAChB,UAAU,EAAE,MAAM;MAYlB,aAAa,EAAE,iBAAiB;MAR5B,oCAAqC;QADvC,wEAAO;UAEH,OAAO,EAAE,IAAI;MAEf,4DAA6D;QAJ/D,wEAAO;UAKH,OAAO,EAAE,IAAI;IAQrB,wCAAO;MACL,UAAU,EAAE,MAAM;MAClB,OAAO,EAAE,YAAY;MACrB,WAAW,EAAE,IAAI;MACjB,UAAU,EAAE,IAAI;MAChB,oCAAqC;QALvC,wCAAO;UAMH,OAAO,EAAE,IAAI;MAEf,2DAA4D;QAR9D,wCAAO;UASH,OAAO,EAAE,IAAI;IAGjB,6CAAY;MACV,KAAK,EAAE,IAAI;IAEb,oDAAmB;MACjB,KAAK,EAAE,IAAI;MACX,QAAQ,EAAE,MAAM;MAChB,4DAAQ;QACN,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,KAAK;QNvElB,qBAAqB,EMwEQ,GAAG;QNvEhC,aAAa,EMuEgB,GAAG;QNtEhC,eAAe,EAAE,WAAW;QAAG,qDAAqD;QMuE9E,UAAU,EAAE,gCAA+B;QAEzC,kEAAG;UACD,YAAY,EAAE,IAAI;QAEpB,yEAAU;UACR,SAAS,EAAE,IAAI;UACf,OAAO,EAAE,MAAM;MAIrB,kEAAc;QACZ,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,KAAK;IAId,4CAAW;MACT,KAAK,EAAE,KAAK;MACZ,YAAY,EAAE,GAAG;MACjB,UAAU,EAAE,GAAG;MACf,mEAAuB;QNlE3B,iCAAiC,EMmEC,GAAG;QNlErC,yBAAyB,EMkES,GAAG;QNjErC,8BAA8B,EMiEI,GAAG;QNhErC,sBAAsB,EMgEY,GAAG;QN/DrC,eAAe,EAAE,WAAW;QMgEtB,MAAM,EAAE,kCAAiC;MAE3C,kEAAsB;QNpF1B,kCAAkC,EMqFC,GAAG;QNpFtC,0BAA0B,EMoFS,GAAG;QNnFtC,+BAA+B,EMmFI,GAAG;QNlFtC,uBAAuB,EMkFY,GAAG;QNjFtC,eAAe,EAAE,WAAW;QMkFtB,MAAM,EAAE,kCAAiC;MAE3C,uDAAW;QACT,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,GAAG;QACZ,gBAAgB,EAAE,wBAAuB;MAE3C,8DAAkB;QAChB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,GAAG;QACZ,gBAAgB,EAAE,wBAAwB;MAE5C,uDAAW;QACT,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,GAAG;IAIhB,qDAAoB;MAElB,0BAA0B;MAC1B,UAAU,EAAE,MAAM;MAClB,OAAO,EAAE,IAAI;MACb,YAAY,EAAE,IAAI;MAClB,KAAK,EAAE,KAAK;MACZ,gEAAW;QACT,OAAO,EAAE,YAAY;MAEvB,kEAAa;QACX,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,mBAAmB;QAC7B,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,QAAQ;MAEnB,oEAAe;QACb,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,mBAAmB;QN9HrC,kCAAkC,EM+HE,GAAG;QN9HvC,0BAA0B,EM8HU,GAAG;QN7HvC,iCAAiC,EM6HG,GAAG;QN5HvC,yBAAyB,EM4HW,GAAG;QN3HvC,eAAe,EAAE,WAAW;IM+H1B,mDAAkB;MAChB,KAAK,EAAE,IAAI;MACX,4DAAS;QACP,gBAAgB,EAAE,UAAgB;MAGlC,+DAAW;QACT,gBAAgB,EAAE,OAAO;MAE3B,yDAAG;QACD,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,GAAG;QACZ,aAAa,EAAE,iBAAiB;QAChC,+DAAM;UACJ,SAAS,EAAE,IAAI;UACf,KAAK,EAAE,IAAI;UACX,YAAY,EAAE,GAAG;UACjB,WAAW,EAAE,GAAG;QAGlB,oEAAW;UACT,OAAO,EAAE,YAAY;UACrB,KAAK,EAAE,KAAK;UACZ,WAAW,EAAE,GAAG;UAChB,UAAU,EAAE,GAAG;UACf,OAAO,EAAE,GAAG;UACZ,MAAM,EAAE,IAAI;UACZ,KAAK,EAAE,IAAI;UACX,MAAM,EAAE,OAAO;QAEjB,0EAAiB;UACf,OAAO,EAAE,CAAC;QAEZ,sEAAa;UACX,UAAU,EAAE,IAAI;UAChB,MAAM,EAAE,KAAK;UACb,KAAK,EAAE,KAAK;UACZ,KAAK,EAAE,eAAe;UACtB,UAAU,EAAE,gCAA+B;UAC3C,yEAAG;YACD,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,IAAI;YACZ,4EAAG;cACD,OAAO,EAAE,GAAG;YAEd,mFAAU;cACR,SAAS,EAAE,IAAI;cACf,OAAO,EAAE,MAAM;UAGnB,8EAAQ;YACN,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,KAAK;IAOvB,uCAAM;MACJ,KAAK,EAAE,KAAK;MACZ,4CAAK;QACH,gBAAgB,EAAE,wBAAuB;QACzC,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,GAAG;QN3NvB,qBAAqB,EM4NQ,GAAG;QN3NhC,aAAa,EM2NgB,GAAG;QN1NhC,eAAe,EAAE,WAAW;QAAG,qDAAqD;MM4NhF,uDAAgB;QACd,YAAY,EAAE,GAAG;IAIrB,4CAAW;MACT,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MAEZ,OAAO,EAAE,IAAI;MACb,SAAS,EAAE,IAAI;MACf,wDAAY;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,kCAAiC;QACzC,MAAM,EAAE,IAAI;QN7OlB,qBAAqB,EM8OQ,IAAI;QN7OjC,aAAa,EM6OgB,IAAI;QN5OjC,eAAe,EAAE,WAAW;QAAG,qDAAqD;QM6O9E,4EAAoB;UAClB,OAAO,EAAE,IAAI;UACb,OAAO,EAAE,GAAG;UACZ,cAAc,EAAE,MAAM;UACtB,KAAK,EAAE,IAAI;UACX,MAAM,EAAE,OAAO;UACf,SAAS,EAAE,MAAM;UAEjB,mFAAO;YACL,WAAW,EAAE,KAAK;YAElB,aAAa,EAAE,GAAG;YAClB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,KAAK;UAId,kFAAM;YACJ,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,KAAK;YAEjB,uFAAK;cACH,KAAK,EAAE,eAAe;cACtB,UAAU,EAAE,GAAG;cACf,OAAO,EAAE,YAAY;cACrB,IAAI,EAAC,CAAC;MAKd,gCAAiC;QAC/B,wDAAY;UACV,KAAK,EAAE,GAAG;MAGd,gCAAiC;QAC/B,wDAAY;UACV,KAAK,EAAE,GAAG;MAGd,gCAAiC;QAC/B,wDAAY;UACV,KAAK,EAAE,GAAG;IAMhB,kDAAiB;MACf,WAAW,EAAE,IAAI;MACjB,wDAAM;QACJ,OAAO,EAAE,KAAK;MAEhB,gJAA2C;QACzC,KAAK,EAAE,IAAI;MAEb,wDAAM;QACJ,KAAK,EAAE,IAAI;QACX,6DAAK;UACH,gBAAgB,EAAE,wBAAuB;UACzC,OAAO,EAAE,GAAG;UACZ,SAAS,EAAE,IAAI;MAIjB,mEAAM;QACJ,KAAK,EAAE,IAAI;MAKf,uEAAqB;QACnB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,KAAK;MAGb,2EAAM;QACJ,QAAQ,EAAE,MAAM;QAChB,kGAAuB;UACrB,KAAK,EAAE,eAAe;UACtB,KAAK,EAAE,IAAI;QAEb,kFAAO;UAIL,KAAK,EAAE,IAAI;UAHX,qFAAK;YACH,SAAS,EAAE,IAAI;MAOrB,2EAAY;QACV,aAAa,EAAE,CAAC;QAChB,iFAAM;UN9Td,kCAAkC,EM+TK,CAAC;UN9TxC,0BAA0B,EM8Ta,CAAC;UN7TxC,+BAA+B,EM6TQ,CAAC;UN5TxC,uBAAuB,EM4TgB,CAAC;UN3TxC,eAAe,EAAE,WAAW;QM6TpB,iHAAsC;UNjU9C,kCAAkC,EMkUK,CAAC;UNjUxC,0BAA0B,EMiUa,CAAC;UNhUxC,+BAA+B,EMgUQ,CAAC;UN/TxC,uBAAuB,EM+TgB,CAAC;UN9TxC,eAAe,EAAE,WAAW;MMiUtB,2EAAY;QACV,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,IAAI;QACjB,kFAAO;UN1Tf,iCAAiC,EM2TK,CAAC;UN1TvC,yBAAyB,EM0Ta,CAAC;UNzTvC,8BAA8B,EMyTQ,CAAC;UNxTvC,sBAAsB,EMwTgB,CAAC;UNvTvC,eAAe,EAAE,WAAW;MM2TxB,4HAAuB;QACrB,UAAU,EAAE,IAAI;QAChB,wIAAM;UACJ,KAAK,EAAE,IAAI;UAET,0KAAW;YACT,KAAK,EAAE,EAAE;UAEX,0JAAG;YACD,KAAK,EAAE,IAAI;UAEb,sLAAiB;YACf,KAAK,EAAE,GAAG;UAGd,0JAAS;YACP,gBAAgB,EAAE,WAAW;UAG7B,oKAAW;YACT,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI;UAEd,gLAAiB;YACf,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,GAAG;YACV,oLAAE;cACA,MAAM,EAAE,OAAO;UAGnB,0SAAO;YACL,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG;YACZ,8bAAqC;cACnC,KAAK,EAAE,GAAG;UAGd,oJAAG;YACD,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,MAAM;MAQ9B,2DAAS;QACP,aAAa,EAAE,IAAI;IAIvB,4CAAU;MACR,IAAI,EAAC,CAAC;MACN,KAAK,EAAC,IAAI;MACV,MAAM,EAAC,IAAI;MACX,QAAQ,EAAC,IAAI;MACb,KAAK,EAAC,IAAI;IAGZ,8CAAa;MACX,KAAK,EAAC,KAAK;MAeX,OAAO,EAAE,IAAI;MAKb,UAAU,EAAE,IAAI;MAnBhB,iDAAG;QACD,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,MAAM;QAChB,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,GAAG;MAEhB,gEAAkB;QAChB,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,OAAO;MAGjB,4DAAgB;QACd,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,YAAY;MAKrB,oEAAK;QACH,aAAa,EAAE,IAAI;MAErB,qEAAM;QACJ,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,IAAI;QACX,0EAAK;UACH,gBAAgB,EAAE,wBAAuB;UACzC,OAAO,EAAE,GAAG;UACZ,YAAY,EAAE,GAAG;;AAQ7B,iBAAkB;EAChB,QAAQ,EAAE,MAAM;EAChB,iDAAc;IACZ,KAAK,EAAE,IAAI;EAEb,wBAAO;IAIL,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,SAAS,EAAE,GAAG;EAEhB,wBAAO;IACL,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,IAAI;IACX,8BAAM;MACJ,MAAM,EAAE,OAAO;MACf,YAAY,EAAE,GAAG;;AAKvB,SAAU;EACR,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,IAAI;EACZ,uBAAc;IACZ,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,OAAO;IACzB,uCAAgB;MACd,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,CAAC;MACN,OAAO,EAAE,CAAC;MACV,UAAU,EAAE,MAAM;MAClB,KAAK,EAAE,IAAI;;AAKjB,gBAAiB;EACf,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,IAAI;EAChB,WAAW,EAAE,KAAK;EAClB,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,GAAG;EACT,QAAQ,EAAE,QAAQ;;AAGpB,sBAAuB;EACrB,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,MAAM;;AAGpB,OAAQ;EACN,aAAa,EAAE,kBAAkB;EACjC,WAAW,EAAE,kBAAkB;EAC/B,YAAY,EAAE,kBAAkB;EAChC,UAAU,EAAE,kBAAkB;EAC9B,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,KAAK;EACZ,aAAa,EAAE,KAAK;EACpB,SAAS,EAAE,iDAAiD;;AAG9D,gBAOC;EANC,EAAG;IACD,SAAS,EAAE,YAAY;EAEzB,IAAK;IACH,SAAS,EAAE,cAAc;AAI7B,UAAW;EACT,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,EAAE;;AAGb,kBAAmB;EACjB,SAAS,EAAE,MAAM;EACjB,gBAAgB,EAAE,wBAAuB;EACzC,UAAU,EAAE,GAAG;EACf,OAAO,EAAE,GAAG;EACZ,YAAY,EAAE,GAAG;EACjB,YAAY,EAAE,iBAAiB;;AAGjC;wBACyB;EACvB,gBAAgB,EAAE,OAAO;;AAG3B,kBAAmB;EACjB,MAAM,EAAE,OAAO;EAAE,mBAAmB;;AAGtC,WAAY;EACV,KAAK,EAAE,OAAO;EACd,gBAAgB,EAAE,OAAO;;AAG3B,WAAY;EACV,QAAQ,EAAE,MAAM;EAChB,iBAAM;IACJ,KAAK,EAAE,4BAA4B;IACnC,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,OAAO;IACpB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,GAAG;IAClB,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,IAAI;INriBjB,iCAAiC,EMsiBH,CAAC;INriB/B,yBAAyB,EMqiBK,CAAC;INpiB/B,8BAA8B,EMoiBA,CAAC;INniB/B,sBAAsB,EMmiBQ,CAAC;INliB/B,eAAe,EAAE,WAAW;EMoiB5B,wBAAa;IAGX,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,8BAAM;MAEJ,UAAU,EAAE,GAAG;MACf,WAAW,EAAE,IAAI;MAEjB,OAAO,EAAE,iBAAiB;MAC1B,OAAO,EAAE,MAAM;MAEf,SAAS,EAAE,IAAI;MACf,MAAM,EAAE,cAAc;MACtB,gBAAgB,EAAE,OAAiB;MACnC,MAAM,EAAE,OAAO;MNzjBnB,iCAAiC,EM0jBD,GAAG;MNzjBnC,yBAAyB,EMyjBO,GAAG;MNxjBnC,8BAA8B,EMwjBE,GAAG;MNvjBnC,sBAAsB,EMujBU,GAAG;MNtjBnC,eAAe,EAAE,WAAW;IMwjB1B,oCAAY;MACV,KAAK,EAAE,OAAgB;;AAM3B,qBAAU;EACR,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,GAAG;EACV,UAAU,EAAE,KAAK;EACjB,QAAQ,EAAE,IAAI;EACd,2BAAK;IAIH,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,IAAI;IALX,+BAAG;MACD,MAAM,EAAE,OAAO;AAOrB,yBAAc;EACZ,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,KAAK;EACZ,KAAK,EAAE,gBAAgB;;AClpB3B;;;;;;;;;;;;;;;;;;;;GAoBG;AAGD,uBAAI;EACF,YAAY,EAAE,IAAI;AAEpB,0BAAO;EACL,KAAK,EAAE,GAAG;EACV,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;;AAKpB,6BAAQ;EACN,OAAO,EAAE,IAAI;;AAIjB,aAAc;EAGZ,KAAK,EAAE,kBAAkB;EAEzB,YAAY,EAAE,cAAc;EAC5B,eAAE;IAIA,gBAAgB,EAAE,eAAe;IACjC,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,GAAG;IALZ,sBAAQ;MACN,YAAY,EAAE,iBAAiB;IAMjC,mBAAI;MACF,YAAY,EAAE,IAAI;;AAMxB,SAAS;EACP,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI;;AAKX,sCAAmB;EACf,gBAAgB,EAAE,oBAAoB;AAE1C,6BAAU;EACR,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,CAAC;AAEZ,oBAAC;EACC,QAAQ,EAAE,OAAO;EACjB,+BAAU;IACR,OAAO,EAAE,GAAG;IACZ,kCAAE;MACA,KAAK,EAAE,eAAe;AAK9B,uBAAQ;EACN,OAAO,EAAE,kBAAkB;;ACtF/B;;;;;;;;;;;;;;;;;;;;GAoBG;AAKD,6BAAe;EACb,KAAK,EAAE,GAAG;EAER,8CAAM;IACJ,KAAK,EAAE,IAAI;EAMf,2CAAc;IACZ,UAAU,EAAE,IAAI;;AAKtB,MAAO;EACL,KAAK,EAAE,IAAI;;AAEb,iBAAiB;EACf,WAAW,EAAE,IAAI;EACjB,uBAAK;IACH,KAAK,EAAE,IAAI;EAEb,uBAAI;IACF,aAAa,EAAE,IAAI;;AAIrB,uBAAU;EACR,MAAM,EAAE,OAAO;AAEjB,6BAAgB;EACd,KAAK,EAAE,OAAO;;AC1DlB;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,kBAAmB;EACjB,UAAU,EAAE,IAAI;EAChB,yBAAO;IACL,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,IAAI;;AAIvB,MAAO;EACL,KAAK,EAAE,OAAO;;AAGhB,WAAY;EACV,UAAU,EAAE,KAAK;EACjB,UAAU,EAAE,IAAI;EAChB,oBAAS;IACP,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,KAAK;;AAIjB,uBAAwB;EACtB,aAAa,EAAE,IAAI;;AAGrB,aAAc;EACZ,YAAY,EAAE,IAAI;EAIlB,aAAa,EAAE,IAAI;EAHnB,gBAAG;IACD,eAAe,EAAE,IAAI;;AAIzB,oBAAqB;EACnB,UAAU,EAAE,MAAM;;AAEpB,aAAc;EACZ,aAAa,EAAE,IAAI;EACnB,sBAAQ;IACN,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,OAAO;EAEjB,kCAAO;IACL,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,OAAO;;AXhCpB,mCAAoC;EAClC,OAAO,EAAE,kBAAkB;EAC3B,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,qBAAqB;;AAEnC,6BAA6B;EAC3B,OAAO,EAAE,kBAAkB;EAC3B,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,oBAAoB;;AAElC,UAAU;EACR,OAAO,EAAE,IAAI;;AAGb,kBAAI;EACF,WAAW,EAAE,YAAY;EACzB,YAAY,EAAE,YAAY;;AAI9B,mDAAoD;EAClD,aAAa,EAAE,iBAAiB;EAChC,UAAU,EAAE,GAAG;;AAGjB,iBAAkB;EAChB,UAAU,EAAE,UAAU;EACtB,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,IAAI;EACT,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,CAAC;EACP,aAAa,EAAE,iBAAiB;EAChC,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,CAAC;EACT,gBAAgB,EAAE,yBAAwB;EAC1C,OAAO,EAAE,EAAE;EACX,mBAAmB,EAAE,IAAI;EACzB,gBAAgB,EAAE,IAAI;EACtB,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,IAAI;EAEjB,MAAM,EAAE,eAAe;;AAEzB,yCAAyC;EACvC,iBAAiB;IACf,KAAK,EAAE,IAAI;AAGf,yCAAyC;EACvC,gDAA+C;IAC7C,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,+BAA+B;AAG1C,8LAAmM;EACjM,UAAU,EAAE,UAAU;EACtB,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,QAAQ;;AAEnB,UAAU;EACR,aAAa,EAAE,CAAC;EAChB,YAAY,EAAE,CAAC;;AAEjB,SAAS;EACP,KAAK,EAAE,IAAI;;AAGb,sBAAsB;EACpB,UAAU,EAAE,OAAO;;AAErB,MAAO;EACL,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,IAAI;EACnB,MAAM,EAAE,qBAAqB;EAC7B,aAAa,EAAE,GAAG;;AAEpB,aAAc;EACZ,KAAK,EAAE,OAAO;EACd,gBAAgB,EAAE,OAAO;EACzB,YAAY,EAAE,OAAO;;AAGvB,oBAAoB;EAClB,UAAU,EAAE,gBAAgB", "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/vaults.scss","../sass/credentials.scss","../sass/menu.scss","../sass/share_credential.scss","../sass/settings.scss"], "names": [], "file": "app.css" diff --git a/css/vendor/bootstrap/bootstrap.min.css b/css/vendor/bootstrap/bootstrap.min.css index 3206a90c..35d950e1 100644 --- a/css/vendor/bootstrap/bootstrap.min.css +++ b/css/vendor/bootstrap/bootstrap.min.css @@ -11,4 +11,11 @@ * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}} \ No newline at end of file + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}} + +/* + +There is a problem regarding nextcloud styles. Nextcloud provides a 'hidden' style which handles the appmenu icons. If this file is edited to remove the hidden style, everything works. +If this file is not edited, the appmenu flashes and shows wrong elements. Removing .hidden{display:none !important;} fixes this. + +*/ \ No newline at end of file diff --git a/js/app/controllers/bookmarklet.js b/js/app/controllers/bookmarklet.js index a95135d4..a1d292bd 100644 --- a/js/app/controllers/bookmarklet.js +++ b/js/app/controllers/bookmarklet.js @@ -44,6 +44,8 @@ } $scope.logout = function () { + //see vault.js:54 + $rootScope.override_default_vault=true; $scope.active_vault = false; }; if (SettingsService.getSetting('defaultVault') && SettingsService.getSetting('defaultVaultPass')) { diff --git a/js/app/controllers/credential.js b/js/app/controllers/credential.js index 303635f1..0a22a0e2 100644 --- a/js/app/controllers/credential.js +++ b/js/app/controllers/credential.js @@ -59,7 +59,7 @@ $scope.active_vault = vault; $scope.active_vault.vaultKey = vaultKey; if(!$rootScope.vaultCache){ - $rootScope.vaultCache = []; + $rootScope.vaultCache = []; } VaultService.setActiveVault($scope.active_vault); for (var i = 0; i < _credentials.length; i++) { @@ -325,97 +325,218 @@ fields: ['label', 'username', 'email', 'custom_fields'] }; + //searchboxfix + $scope.$on('nc_searchbox', function(event, args) { + $scope.filterOptions.filterText=args; + }); - $scope.filtered_credentials = []; - $scope.$watch('[selectedtags, filterOptions, delete_time, active_vault.credentials]', function () { - if (!$scope.active_vault) { - return; - } - if ($scope.active_vault.credentials) { - var credentials = angular.copy($scope.active_vault.credentials); - var filtered_credentials = $filter('credentialSearch')(credentials, $scope.filterOptions); - filtered_credentials = $filter('tagFilter')(filtered_credentials, $scope.selectedtags); - filtered_credentials = $filter('filter')(filtered_credentials, {hidden: 0}); - $scope.filtered_credentials = filtered_credentials; - $scope.filterOptions.selectedtags = angular.copy($scope.selectedtags); - for (var i = 0; i < $scope.active_vault.credentials.length; i++) { - var _credential = $scope.active_vault.credentials[i]; - if (_credential.tags) { - TagService.addTags(_credential.tags); - } + + $scope.filtered_credentials = []; + $scope.$watch('[selectedtags, filterOptions, delete_time, active_vault.credentials]', function () { + if (!$scope.active_vault) { + return; + } + if ($scope.active_vault.credentials) { + var credentials = angular.copy($scope.active_vault.credentials); + var filtered_credentials = $filter('credentialSearch')(credentials, $scope.filterOptions); + filtered_credentials = $filter('tagFilter')(filtered_credentials, $scope.selectedtags); + filtered_credentials = $filter('filter')(filtered_credentials, {hidden: 0}); + $scope.filtered_credentials = filtered_credentials; + $scope.filterOptions.selectedtags = angular.copy($scope.selectedtags); + for (var i = 0; i < $scope.active_vault.credentials.length; i++) { + var _credential = $scope.active_vault.credentials[i]; + if (_credential.tags) { + TagService.addTags(_credential.tags); + } + } + } + + }, true); + + $scope.no_credentials_label=[]; + $scope.no_credentials_label.all=true; + $scope.no_credentials_label.s_good=false; + $scope.no_credentials_label.s_medium=false; + $scope.no_credentials_label.s_low=false; + $scope.no_credentials_label.expired=false; + + $scope.disableAllLabels = function(){ + $scope.no_credentials_label.all=false; + $scope.no_credentials_label.s_good=false; + $scope.no_credentials_label.s_medium=false; + $scope.no_credentials_label.s_low=false; + $scope.no_credentials_label.expired=false; + }; + + //watch for special tags + $scope.$on('filterSpecial', function(event, args) { + + $scope.disableAllLabels(); + switch (args) { + case "strength_good": + $scope.filterStrength(3,1000); + $scope.no_credentials_label.s_good=true; + break; + case "strength_medium": + $scope.filterStrength(2,3); + $scope.no_credentials_label.s_medium=true; + break; + case "strength_low": + $scope.filterStrength(0,1); + $scope.no_credentials_label.s_low=true; + break; + case "expired": + $scope.filterExpired(); + $scope.no_credentials_label.expired=true; + break; + case "all": + $scope.filterAll(); + $scope.no_credentials_label.all=true; + break; + } + }); + + $scope.getListSizes = function(){ + var l = $scope.filtered_credentials; + + var deleted=0; + for (var i = 0; i < l.length; i++) { + if(l[i].delete_time>0){ + deleted++; } - } + } - }, true); - - $scope.selectedtags = []; - var to; - $rootScope.$on('selected_tags_updated', function (evt, _sTags) { - var _selectedTags = []; - for (var x = 0; x < _sTags.length; x++) { - _selectedTags.push(_sTags[x].text); - } - $scope.selectedtags = _selectedTags; - $timeout.cancel(to); - if (_selectedTags.length > 0) { - to = $timeout(function () { - if ($scope.filtered_credentials) { - var _filtered_tags = []; - for (var i = 0; i < $scope.filtered_credentials.length; i++) { - var tags = $scope.filtered_credentials[i].tags_raw; - for (var x = 0; x < tags.length; x++) { - var tag = tags[x].text; - if (_filtered_tags.indexOf(tag) === -1) { - _filtered_tags.push(tag); - } - } - } - - $rootScope.$emit('limit_tags_in_list', _filtered_tags); - } - }, 50); - } - }); - - $scope.delete_time = 0; - $scope.showCredentialRow = function (credential) { - if ($scope.delete_time === 0) { - return credential.delete_time === 0; - } else { - return credential.delete_time > $scope.delete_time; - } + var result=[]; + result.listsize=l.length; + result.listsize_wout_deleted=l.length-deleted; + result.listsize_deleted=deleted; + return result; }; - $rootScope.$on('set_delete_time', function (event, time) { - $scope.delete_time = time; - }); + $scope.filterAll = function(){ + $scope.selectedtags=[]; + $scope.filterOptions.filterText=""; + var creds_filtered=[]; - $scope.setDeleteTime = function (delete_time) { - $scope.delete_time = delete_time; - }; + for (var i = 0; i < $scope.active_vault.credentials.length; i++) { + if($scope.active_vault.credentials[i].delete_time===0){ + creds_filtered.push($scope.active_vault.credentials[i]); + } + } - $scope.selectedCredential = false; - $scope.selectCredential = function (credential) { - if(credential.description) { - credential.description_html = $sce.trustAsHtml(angular.copy(credential.description).replace("\n", '
')); - } - $scope.selectedCredential = angular.copy(credential); - $rootScope.$emit('app_menu', true); - }; + $scope.filtered_credentials=$scope.filterHidden(creds_filtered); + }; - $scope.closeSelected = function () { - $rootScope.$emit('app_menu', false); - $scope.selectedCredential = false; - }; + $scope.filterStrength = function(strength_min, strength_max){ + var initialCredentials=$scope.active_vault.credentials; + var postFiltered=[]; + for (var i = 0; i < initialCredentials.length; i++) { + var _credential = initialCredentials[i]; + var zxcvbn_result = zxcvbn(_credential.password); - $rootScope.$on('logout', function () { - if($scope.active_vault) { - $rootScope.vaultCache[$scope.active_vault.guid] = null; - } - $scope.active_vault = null; - $scope.credentials = []; -// $scope.$parent.selectedVault = false; + if(zxcvbn_result.score>=strength_min && zxcvbn_result.score<=strength_max){ + postFiltered.push(initialCredentials[i]); + } + } + $scope.filtered_credentials=$scope.filterHidden(postFiltered); + }; + + $scope.filterExpired = function(){ + var initialCredentials=$scope.active_vault.credentials; + var now = Date.now(); + var postFiltered=[]; + + for (var i = 0; i < initialCredentials.length; i++) { + var _credential = initialCredentials[i]; + + if(_credential.expire_time!==0 && _credential.expire_time <= now){ + postFiltered.push(initialCredentials[i]); + } + } + $scope.filtered_credentials=$scope.filterHidden(postFiltered); + }; + + $scope.filterHidden = function(list){ + var list_without_hidden=[]; + for (var i = 0; i < list.length; i++) { + if(list[i].hidden!==1){ + list_without_hidden.push(list[i]); + } + } + return list_without_hidden; + }; + + + + $scope.selectedtags = []; + var to; + $rootScope.$on('selected_tags_updated', function (evt, _sTags) { + var _selectedTags = []; + for (var x = 0; x < _sTags.length; x++) { + _selectedTags.push(_sTags[x].text); + } + $scope.selectedtags = _selectedTags; + $timeout.cancel(to); + if (_selectedTags.length > 0) { + to = $timeout(function () { + if ($scope.filtered_credentials) { + var _filtered_tags = []; + for (var i = 0; i < $scope.filtered_credentials.length; i++) { + var tags = $scope.filtered_credentials[i].tags_raw; + for (var x = 0; x < tags.length; x++) { + var tag = tags[x].text; + if (_filtered_tags.indexOf(tag) === -1) { + _filtered_tags.push(tag); + } + } + } + + $rootScope.$emit('limit_tags_in_list', _filtered_tags); + } + }, 50); + } + }); + + $scope.delete_time = 0; + $scope.showCredentialRow = function (credential) { + if ($scope.delete_time === 0) { + return credential.delete_time === 0; + } else { + return credential.delete_time > $scope.delete_time; + } + + }; + + $rootScope.$on('set_delete_time', function (event, time) { + $scope.delete_time = time; + }); + + $scope.setDeleteTime = function (delete_time) { + $scope.delete_time = delete_time; + }; + + $scope.selectedCredential = false; + $scope.selectCredential = function (credential) { + if (credential.description) { + credential.description_html = $sce.trustAsHtml(angular.copy(credential.description).replace("\n", '
')); + } + $scope.selectedCredential = angular.copy(credential); + $rootScope.$emit('app_menu', true); + }; + + $scope.closeSelected = function () { + $rootScope.$emit('app_menu', false); + $scope.selectedCredential = false; + }; + + $rootScope.$on('logout', function () { + if ($scope.active_vault) { + $rootScope.vaultCache[$scope.active_vault.guid] = null; + } + $scope.active_vault = null; + $scope.credentials = []; + //$scope.$parent.selectedVault = false; }); diff --git a/js/app/controllers/edit_credential.js b/js/app/controllers/edit_credential.js index 5c9ad4f0..6f1abc9a 100644 --- a/js/app/controllers/edit_credential.js +++ b/js/app/controllers/edit_credential.js @@ -32,8 +32,8 @@ * Controller of the passmanApp */ angular.module('passmanApp') - .controller('CredentialEditCtrl', ['$scope', 'VaultService', 'CredentialService', 'SettingsService', '$location', '$routeParams', 'FileService', 'EncryptService', 'TagService', 'NotificationService', 'ShareService', '$translate', - function ($scope, VaultService, CredentialService, SettingsService, $location, $routeParams, FileService, EncryptService, TagService, NotificationService, ShareService, $translate) { + .controller('CredentialEditCtrl', ['$scope', 'VaultService', 'CredentialService', 'SettingsService', '$location', '$routeParams', 'FileService', 'EncryptService', 'TagService', 'NotificationService', 'ShareService', '$translate', '$rootScope', + function ($scope, VaultService, CredentialService, SettingsService, $location, $routeParams, FileService, EncryptService, TagService, NotificationService, ShareService, $translate, $rootScope) { $scope.active_vault = VaultService.getActiveVault(); if (!SettingsService.getSetting('defaultVault') || !SettingsService.getSetting('defaultVaultPass')) { if (!$scope.active_vault) { @@ -292,7 +292,7 @@ }; $scope.saving = false; $scope.saveCredential = function () { - $scope.saving = true; + $scope.saving = true; if ($scope.new_custom_field.label && $scope.new_custom_field.value) { @@ -301,8 +301,8 @@ if ($scope.storedCredential.password !== $scope.storedCredential.password_repeat){ - $scope.saving = false; - NotificationService.showNotification($translate.instant('password.do.not.match'), 5000); + $scope.saving = false; + NotificationService.showNotification($translate.instant('password.do.not.match'), 5000); return; } @@ -313,7 +313,7 @@ if (!$scope.storedCredential.credential_id) { $scope.storedCredential.vault_id = $scope.active_vault.vault_id; CredentialService.createCredential($scope.storedCredential).then(function () { - $scope.saving = false; + $scope.saving = false; $location.path('/vault/' + $routeParams.vault_id); NotificationService.showNotification($translate.instant('credential.created'), 5000); @@ -345,14 +345,26 @@ _credential.description = _credential.description.replace(regex, ""); } CredentialService.updateCredential(_credential, _useKey).then(function () { - $scope.saving = false; + $scope.saving = false; SettingsService.setSetting('edit_credential', null); $location.path('/vault/' + $routeParams.vault_id); NotificationService.showNotification($translate.instant('credential.updated'), 5000); }); } + $scope.refreshListWithSaved(); + }; - }; + $scope.refreshListWithSaved = function () { + var current_vault = $rootScope.vaultCache[$scope.active_vault.guid]; + var cv_credentials = current_vault.credentials; + for (var i = 0; i < cv_credentials.length; i++) { + if (cv_credentials[i].credential_id === $scope.storedCredential.credential_id) { + cv_credentials[i] = $scope.storedCredential; + } + } + current_vault.credentials=cv_credentials; + $rootScope.vaultCache[$scope.active_vault.guid] = current_vault; + }; $scope.cancel = function () { $location.path('/vault/' + $routeParams.vault_id); diff --git a/js/app/controllers/main.js b/js/app/controllers/main.js index c122501c..d54a46d3 100644 --- a/js/app/controllers/main.js +++ b/js/app/controllers/main.js @@ -41,6 +41,10 @@ } + $scope.removeHiddenStyles = function(){ + document.getElementById('warning_bar').classList.remove('template-hidden'); + }; + $rootScope.$on('settings_loaded', function(){ if (SettingsService.isEnabled('disable_contextmenu')) { document.addEventListener('contextmenu', function (event) { diff --git a/js/app/controllers/menu.js b/js/app/controllers/menu.js index f892af38..fdb3a208 100644 --- a/js/app/controllers/menu.js +++ b/js/app/controllers/menu.js @@ -23,7 +23,6 @@ (function () { 'use strict'; - /** * @ngdoc function * @name passmanApp.controller:MenuCtrl @@ -32,15 +31,21 @@ * Controller of the passmanApp */ angular.module('passmanApp') - .controller('MenuCtrl', ['$scope', 'VaultService', '$location', '$rootScope', 'TagService','SettingsService', - function ($scope, VaultService, $location, $rootScope, TagService, SettingsService) { + .controller('MenuCtrl', ['$scope', 'VaultService', '$location', '$rootScope', 'TagService','SettingsService', '$translate', + function ($scope, VaultService, $location, $rootScope, TagService, SettingsService, $translate) { $rootScope.logout = function () { + //see vault.js:54 + $rootScope.override_default_vault=true; SettingsService.setSetting('defaultVaultPass', false); TagService.resetTags(); $rootScope.$broadcast('logout'); $location.path('/'); }; + $scope.removeHiddenStyles = function(){ + document.getElementById('app-navigation').classList.remove('template-hidden'); + }; + $scope.selectedTags = []; $scope.getTags = function ($query) { return TagService.searchTag($query); @@ -77,12 +82,139 @@ $rootScope.$broadcast('selected_tags_updated', $scope.selectedTags); }, true); - $scope.tagClicked = function (tag) { - $scope.selectedTags.push(tag); + $scope.tagSelected = function (tag) { + for (var i = 0; i < $scope.selectedTags.length; i++) { + if($scope.selectedTags[i].text === tag.text){ + return true; + } + } + return false; }; + $scope.removeTagFromSelected = function (tag) { + var where =-1; + for (var i = 0; i < $scope.selectedTags.length; i++) { + if($scope.selectedTags[i].text === tag.text){ + where=i; + } + } + if(where === -1){ + //console.log("Cant remove selected Tag, Tag not present!"); + } + $scope.selectedTags.splice(where, 1); + }; + + $scope.clearForm = function () { + document.getElementById('tagsearch').value=""; + }; + + $scope.tagClickedString = function (tagtext) { + var tag=[]; + tag.text=tagtext; + $scope.tagClicked(tag); + }; + + $scope.tagClicked = function (tag) { + //check if tag already selected + if(!$scope.tagSelected(tag)){ + $scope.selectedTags.push(tag); + }else{ + //console.log("Already selected Tag!"); + $scope.removeTagFromSelected(tag); + } + }; + + //searchboxfix + var native_search = document.getElementById("searchbox"); + if(native_search !== null){ + native_search.nextElementSibling.addEventListener('click', function (e) { + $scope.$apply(function () { + $rootScope.$broadcast('nc_searchbox',""); + }); + }); + + native_search.classList.remove('hidden'); + native_search.addEventListener('keypress', function (e) { + if(e.keyCode === 13){ + e.preventDefault(); + } + }); + + native_search.addEventListener('keyup', function (e) { + $scope.$apply(function () { + $rootScope.$broadcast('nc_searchbox',native_search.value); + }); + }); + } + + + $scope.clickedNavigationItem="all"; + $scope.filterCredentialBySpecial = function (string) { + $scope.clickedNavigationItem=string; + if(string !== "nav_trashbin"){ + $scope.delete_time=0; + $rootScope.$broadcast('set_delete_time', $scope.delete_time); + } + $scope.selectedTags =[]; + + $rootScope.$broadcast('filterSpecial',string); + + //close settings when item is selected + $scope.settingsShown=false; + }; + + $scope.collapsedDefaultValue=true; + $scope.tagCollapsibleOpen=VaultService.getVaultSetting("vaultTagCollapsedState",$scope.collapsedDefaultValue); + $scope.tagCollapsibleClicked = function () { + if (VaultService.getVaultSetting("vaultTagCollapsedState",$scope.collapsedDefaultValue) === true) { + VaultService.setVaultSetting("vaultTagCollapsedState",false); + } else { + VaultService.setVaultSetting("vaultTagCollapsedState",true); + } + }; + + $scope.tagCollapsibleState = function () { + if(VaultService.getVaultSetting('vaultTagCollapsedState',$scope.collapsedDefaultValue)){ + return ""; + } + return "open"; + }; + + + + //this is needed, because the translation is not ready when the dom loads and the translation only returns the key. + //then the key is set, and the taginput is collapsed by angular. If the correct translation loads, the collapsed dom element does not update itself. + //here we set the value manually + $scope.initPlaceholder = function () { + $translate.onReady().then(function(){ + var string=$translate.instant('navigation.advanced.filter'); + document.getElementById("tags-input-outer").setAttribute("placeholder", string); + document.getElementById("tags-input-outer").firstChild.firstChild.childNodes[1].setAttribute("placeholder", string); + }); + }; + + $scope.legacyNavbarDefault=true; + $scope.legacyNavbarAlreadyInitialized=false; + + if (typeof $scope.legacyNavbar === 'undefined') { + $scope.legacyNavbar = $scope.legacyNavbarDefault; + } + + $scope.$watch('legacyNavbar', function(newValue, oldValue) { + VaultService.setVaultSetting("vaultNavBarLegacy",newValue); + }); + + $scope.initializeNavbar = function () { + if($scope.legacyNavbarAlreadyInitialized){ + return; + } + $scope.legacyNavbar = VaultService.getVaultSetting('vaultNavBarLegacy',$scope.legacyNavbarDefault); + $scope.legacyNavbarAlreadyInitialized=true; + }; + $rootScope.$on('credentials_loaded', function () { $rootScope.$broadcast('selected_tags_updated', $scope.selectedTags); + $scope.initializeNavbar(); }); $scope.available_tags = TagService.getTags(); @@ -91,10 +223,14 @@ if ($scope.selectedTags.length === 0) { return TagService.getTags(); } else { - return $scope.filtered_tags; + return TagService.getTags(); + //Always show all tags + //return $scope.filtered_tags; } }, function (tags) { - $scope.available_tags = tags; + //Always show all tags + //$scope.available_tags = tags; + $scope.available_tags = TagService.getTags(); }, true); $scope.toggleDeleteTime = function () { @@ -102,8 +238,9 @@ $scope.delete_time = 0; } else { $scope.delete_time = 1; + this.filterCredentialBySpecial('nav_trashbin'); } $rootScope.$broadcast('set_delete_time', $scope.delete_time); }; }]); -}()); \ No newline at end of file +}()); diff --git a/js/app/controllers/vault.js b/js/app/controllers/vault.js index de14b39a..cf724524 100644 --- a/js/app/controllers/vault.js +++ b/js/app/controllers/vault.js @@ -46,7 +46,11 @@ var vault = vaults[i]; if (vault.guid === default_vault.guid) { $scope.default_vault = true; - $scope.list_selected_vault = vault; + //This prevents the opening of the default vault if the user logs out + if(!$rootScope.override_default_vault){ + $scope.list_selected_vault = vault; + $rootScope.override_default_vault=false; + } SettingsService.setSetting('defaultVault', vault); if (SettingsService.getSetting('defaultVaultPass')) { $location.path('/vault/' + vault.guid); @@ -219,7 +223,8 @@ }; - $scope.createVault = function (vault_name, vault_key, vault_key2) { + + $scope.createVault = function (vault_name, vault_key, vault_key2) { if (vault_key !== vault_key2) { $scope.error = $translate.instant('password.do.not.match'); return; diff --git a/js/app/directives/credentialfield.js b/js/app/directives/credentialfield.js index fbf7905e..44a6c276 100644 --- a/js/app/directives/credentialfield.js +++ b/js/app/directives/credentialfield.js @@ -50,12 +50,12 @@ '
' + '
' + '
' + - '
' + + '
' + '
', link: function (scope) { var expression = /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi; var regex = new RegExp(expression); - $translate(['toggle.visibility', 'copy', 'copied']).then(function (translations) { + $translate(['toggle.visibility','copy.field', 'copy', 'copied']).then(function (translations) { scope.tggltxt = translations['toggle.visibility']; scope.copy_msg = translations['copy.field']; }); diff --git a/js/app/directives/icon.js b/js/app/directives/icon.js index 21e70d1d..646dec01 100644 --- a/js/app/directives/icon.js +++ b/js/app/directives/icon.js @@ -32,7 +32,7 @@ angular.module('passmanApp').directive('credentialIcon', [ '$window', function($window) { return { - template: '', + template: '', restrict: 'E', scope: { credential: '=', diff --git a/js/app/services/vaultservice.js b/js/app/services/vaultservice.js index 4ca35ee6..b24577d2 100644 --- a/js/app/services/vaultservice.js +++ b/js/app/services/vaultservice.js @@ -66,7 +66,7 @@ return false; } else { _activeVault.vault_settings[key] = value; - _this.updateVault(_activeVault); + this.updateVault(_activeVault); } }, diff --git a/js/templates.js b/js/templates.js index fe20bdc9..7555f7e2 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', - '
  • {{tab.title}}
'); + '
  • {{tab.title}}
'); }]); angular.module('views/partials/credential_template.html', []).run(['$templateCache', function ($templateCache) { @@ -107,7 +107,7 @@ angular.module('views/partials/forms/share_credential/link_sharing.html', []).ru angular.module('views/partials/icon-picker.html', []).run(['$templateCache', function ($templateCache) { 'use strict'; $templateCache.put('views/partials/icon-picker.html', - '
'); + '
'); }]); angular.module('views/partials/password-meter.html', []).run(['$templateCache', function ($templateCache) { @@ -119,7 +119,7 @@ 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', - '
  • {{tab.title}}
'); + '
  • {{tab.title | translate}}
'); }]); angular.module('views/share_credential.html', []).run(['$templateCache', function ($templateCache) { @@ -131,8 +131,8 @@ angular.module('views/share_credential.html', []).run(['$templateCache', functio angular.module('views/show_vault.html', []).run(['$templateCache', function ($templateCache) { 'use strict'; $templateCache.put('views/show_vault.html', - '
+
{{ \'use.regex\' | translate }}
{{ ::tag.text}} {{ ::credential.label}}
  • {{ ::credential.label}}
    {{ ::tag.text}}

{{selectedCredential.label}}

'); + '
{{ \'use.regex\' | translate }}
{{ ::tag.text}} {{ ::credential.label}}
  • {{ ::credential.label}}
    {{ ::tag.text}}
'); }]); angular.module('views/vault_req_deletion.html', []).run(['$templateCache', function ($templateCache) { diff --git a/karma.conf.js b/karma.conf.js index df8b7a0e..e938efdc 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -20,7 +20,7 @@ module.exports = function (config) { // list of files / patterns to load in the browser files: [ '../../core/vendor/jquery/dist/jquery.js', - '../../core/vendor/underscore/underscore.js', + '../../core/vendor/underscore/underscore-min.js', 'js/vendor/angular/angular.min.js', 'tests/unit/js/mocks/*.js', 'js/vendor/angular-mocks/angular-mocks.js', diff --git a/package.json b/package.json index b3d314c6..321224d0 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "karma-verbose-reporter": "0.0.3" }, "dependencies": { - "grunt": "~0.4.5", + "grunt": "~1.0.3", "grunt-cli": "~1.2.0", "grunt-contrib-clean": "^1.0.0", "grunt-contrib-concat": "^1.0.1", diff --git a/sass/admin.scss b/sass/admin.scss index 8bac6f46..2eae188d 100644 --- a/sass/admin.scss +++ b/sass/admin.scss @@ -12,13 +12,4 @@ #requests-table{ width: 100%; } - - - .link{ - color: rgb(0, 102, 255) !important; - cursor: pointer; - } - .link:hover{ - text-decoration: underline; - } } \ No newline at end of file diff --git a/sass/app.scss b/sass/app.scss index ee09012f..f064c217 100644 --- a/sass/app.scss +++ b/sass/app.scss @@ -32,18 +32,20 @@ @import 'share_credential'; @import 'settings'; -#app-settings-content:not(.ng-hide) { - height: 90px; - display: inherit !important; - padding: 0; - transition: height 0.15s ease-out; + +.template-hidden{ + display: none !important; } -#app-settings-content.ng-hide{ + +.hide-animation { display: inherit !important; - height: 0; - padding: 0; - transition: height 0.15s ease-in; + transition: ease-in-out .15s; } +.hide-animation.ng-hide { + opacity: 0; +} + + .ui-dialog{ z-index: 9999; } @@ -54,22 +56,18 @@ } } - -// #app-content #app-content-wrapper #passman-controls { border-bottom: 1px solid #c9c9c9; } - #passman-controls { box-sizing: border-box; position: fixed; - top: 45px; + margin: -45px 0 0; right: 0; left: 0; - + border-bottom: 1px solid #c9c9c9; padding: 0 !important; - margin: 0; background-color: rgba(255, 255, 255, .95); z-index: 50; -webkit-user-select: none; @@ -78,6 +76,15 @@ user-select: none; height: 44px !important; + .breadcrumb{ + //Move Homeicon to the right to prevent overlap with burgermenu + @media only screen and (max-width: 769px) { + padding-left: 15px; + } + .addCredential{ + padding-top: 1px; + } + } } @media only screen and (max-width: 768px){ #passman-controls{ @@ -86,8 +93,8 @@ } @media only screen and (min-width: 768px){ #app-navigation+#app-content #passman-controls { - left: 250px; - width: calc( 100% - 250px ) !important; + left: 300px; + width: calc( 100% - 300px ) !important; } } #passman-controls .button, #passman-controls, #passman-controls input[type='submit'], #passman-controls input[type='text'], #passman-controls input[type='password'], #passman-controls select { diff --git a/sass/credentials.scss b/sass/credentials.scss index 254585bc..59011a72 100644 --- a/sass/credentials.scss +++ b/sass/credentials.scss @@ -20,14 +20,77 @@ * */ +//override nc style to fix wrong offset +#content { + padding-top: 47px !important; // 45px but +2 because of borders + height: 100%; + width: 100%; +} + +//fix for different heights of passwordicon +.icon-image{ + width: 16px; +} + +//fix for ui-element behind Background +.angularjs-datetime-picker{ + z-index: 1000; +} + +.link{ + color:var(--color-primary); +} + + +//this fixes the scrollbars, because passman-contols are shown above the sidebar. +#app-sidebar{ + height: auto; + .sidebar{ + display: inline-block; + .sidebar-icon { + margin-right: 15px; + .icon-image{ + width: 44px; + } + i { + width: 44px; + } + } + .sidebar-label{ + float:right; + line-height: 44px; + } + } +} + +.vaultlist_sidebar_hidden{ + width: 100vw !important; + margin-left: 0px !important; +} #app-content { + + margin-left: 300px; + + @media only screen and (max-width: 769px) { + width: 100vw; + } + @media only screen and (min-width: 770px) { + width: calc(100vw - 300px); + } + overflow-x: hidden; + + //width: 100%; #app-content-wrapper { min-height: 95%; + display:flex; + //hack for missing separatorbar when app-sidebar is opened + height: calc(100vh - 49px); + #passman-controls { text-align: center; &.sidebar-shown { - padding-right: 27% !important; + //padding-right: 27% !important; .title { @media screen and (max-width: 765px) { display: none; @@ -53,6 +116,9 @@ display: none; } } + .breadcrumb { + float: left; + } .actions.creatable { float: left; overflow: hidden; @@ -108,7 +174,9 @@ } .searchboxContainer { - display: inline-block; + /*display: inline-block;*/ + visibility: hidden; + display: none; margin-right: 14px; float: right; .searchbox { @@ -136,9 +204,9 @@ @include border-bottom-radius(3px); } } + .credential-table { width: 100%; - margin-top: 44px; tr:hover { background-color: darken(#fff, 4%); } @@ -212,7 +280,9 @@ } .grid-view { - margin-top: 44px; + width: 100%; + height: 100%; + //margin-top: 44px; display: flex; flex-wrap: wrap; .credential { @@ -228,20 +298,26 @@ width: 100%; cursor: pointer; font-size: 1.75em; - text-align: center; + //text-align: center; .label { padding-top: 0.5em; - padding-left: 1em; + //padding-left: 1em; padding-right: 1em; line-height: 1.3em; word-wrap: break-word; + float: right; + } + .icon{ } .tags { - margin-bottom: 0.5em; + margin: 0 0 auto; + text-align: right; + //margin-bottom: 0.5em; .tag { color: #000 !important; margin-top: 5px; display: inline-block; + left:0; } } } @@ -305,6 +381,9 @@ float: left; } } + .password-settings-padding-left-fix{ + padding-left: 0 !important; + } } .field-value { .valueInput { @@ -318,7 +397,7 @@ } .selectType { padding-left: 0; - margin-left: -4px; + margin-left: 0px; select { @include border-left-radius(0); } @@ -378,8 +457,40 @@ .otpText { padding-right: 10px; } + + .import-selection{ + select{ + margin-left: 15px; + } + } + } + + .main_list{ + flex:1; + float:left; + height:auto; + overflow:auto; + width:100%; + .share{ + overflow:hidden; + } + .nopasswords{ + margin-right: auto; + margin-left: auto; + margin-top: 10%; + text-align: center; + } + .belowList{ + margin-right: auto; + margin-left: auto; + margin-top: 1%; + text-align: center; + } + } + .app_sidebar { + float:right; h2 { margin-bottom: 10px; font-weight: 400; @@ -430,12 +541,12 @@ } white-space: nowrap; - overflow: hidden; text-overflow: ellipsis; - max-width: 70%; + max-width: 100%; } .tools { margin-left: 10px; + margin-top: 8px; overflow: hidden; float: left; .cell { @@ -468,7 +579,7 @@ width: 120px; margin-top: 30px; margin-left: -60px; - top: 50%; + top: 30%; left: 50%; position: absolute; } @@ -526,13 +637,14 @@ } .btn-danger { - color: #fff; + color: #000000; + background-color: #ff0000; } .icon-label { overflow: hidden; input { - width: calc(100% - 45px) !important; + width: calc(100% - 28px) !important; float: left; background: #fff; color: #555; @@ -541,7 +653,7 @@ border: 1px solid #ddd; outline: none; border-radius: 3px; - margin: 3px 3px 3px 0; + margin: 3px 0 3px 0; padding: 7px 6px 5px; font-size: 13px; @include border-left-radius(0) @@ -549,19 +661,14 @@ .icon-picker { float: left; margin-top: 3px; - margin-left: -3px; - @include border-left-radius(3px); .cell { + height: 32px; padding: 7px 12px 2px 12px; - display: inline-block; font-size: 14px; border: 1px solid #ddd; background-color: lighten(#ddd, 5%); cursor: pointer; @include border-left-radius(6px); - img { - height: 16px; - } } .cell:hover { color: rgb(0, 102, 255); @@ -589,4 +696,4 @@ float: right; width: calc(40% - 10px); } -} \ No newline at end of file +} diff --git a/sass/menu.scss b/sass/menu.scss index 9138c431..ca130af2 100644 --- a/sass/menu.scss +++ b/sass/menu.scss @@ -23,40 +23,90 @@ .settings-container { div { padding-left: 15px; - + } + button { + width: 80%; + margin-left: 15px; + margin-right: 15px; } } +.settings-container-label { + padding-left: 15px; +} + #app-navigation > ul{ - padding-bottom: 80px; > li > a{ - padding-left: 12px !important; z-index: auto; } + > li { + display: block; + } } .nav-trashbin { - position: fixed !important; - bottom: 44px; + //position: fixed !important; + //bottom: 44px; width: inherit !important; border-right: 1px solid #eee; a { &.active{ - border-left: 3px solid #0082c9; + //border-left: 3px solid #0082c9; + background-image: var(--icon-delete-e9322d); } background-color: #fff !important; opacity: 1 !important; z-index: 140; - padding: 0 20px; + //padding: 0 20px; .fa { margin-right: 15px; } } } +//Overrides transparent entry bullet on hover from server +#app-navigation{ + .collapsible:hover .app-navigation-entry-bullet{ + background: var(--color-primary) !important; + } +} + + #app-navigation { + + a{ + .selected{ + opacity: 1!important; + box-shadow: inset 4px 0 var(--color-primary)!important; + } + } + li{ + .app-navigation-entry-bullet-color { + background-color: var(--color-primary); + } + + .bullet-color-red { + background-color: #ff0000; + } + + .bullet-color-yellow { + background-color: #ebbb00; + } + + .bullet-color-green { + background-color: #4db728; + } + + .highlight-selected{ + background-color: var(--color-primary); + } + + .autocomplete{ + position: relative; + } + a.taginput{ opacity: 1; } @@ -73,4 +123,13 @@ > ul ul { display: inherit !important; } +} + +.hidden-list{ + display: none !important; +} + +//source https://material.io/tools/icons/?icon=restore&style=baseline +.icon-expired{ + background-image: url("data:image/svg+xml;utf8,"); } \ No newline at end of file diff --git a/sass/partials/button.scss b/sass/partials/button.scss index 5275fc04..f819ef8f 100644 --- a/sass/partials/button.scss +++ b/sass/partials/button.scss @@ -36,11 +36,4 @@ .button-red:hover{ background: lighten(#ce3702, 2%); color: #fff; -} -.link{ - color: rgb(0, 102, 255) !important; - cursor: pointer; -} -.link:hover{ - text-decoration: underline; } \ No newline at end of file diff --git a/sass/partials/pwgen.scss b/sass/partials/pwgen.scss index 5e8d0173..db593ae2 100644 --- a/sass/partials/pwgen.scss +++ b/sass/partials/pwgen.scss @@ -23,7 +23,7 @@ .pw-gen{ overflow:hidden; input{ - width: calc(100% - 80px) !important; + width: calc(100% - 76px) !important; float: left; background: #fff; color: #555; @@ -41,6 +41,7 @@ float: left; margin-top: 3px; margin-left: -3px; + padding-bottom:1px; .cell{ padding: 5px; display: inline-block; diff --git a/sass/partials/tabs.scss b/sass/partials/tabs.scss index d9e33964..7a5a0ca6 100644 --- a/sass/partials/tabs.scss +++ b/sass/partials/tabs.scss @@ -21,7 +21,9 @@ */ .tab_header { - margin: 44px 0 0; + width: calc(100vw - 300px); + // margin: 44px 0 0; + margin: 0 0 0; list-style: none; padding: 0; li.tab:first-child { @@ -45,9 +47,15 @@ display: none; } } + + li.inactive { + background-color: #fff !important; + color: unset !important; + } + li.active { - color: #fff; - position: relative; + + //position: relative; .indicator { display: inline-block; position: absolute; @@ -60,10 +68,9 @@ } .tab_container { - border: 1px solid; - border-color: #eee; + border: 1px solid #eee; border-top-color: #0082c9; - border-bottom: 0; + border-bottom-width: 0; clear: both; padding: 0 1em; } diff --git a/sass/public-page.scss b/sass/public-page.scss index 88873b46..49a5c093 100644 --- a/sass/public-page.scss +++ b/sass/public-page.scss @@ -30,6 +30,16 @@ header { padding-top: 0; } +.share-controller{ + width: 100%; + .share-container{ + margin-top: 50px; + margin-left: auto; + margin-right: auto; + width: 25%; + } +} + .credential_container{ margin-top: 20px; margin-bottom: 20px; @@ -45,6 +55,7 @@ header { } button, .text{ margin: 0 auto; + margin-bottom: 25px; display: block; i{ margin-right: 5px; diff --git a/sass/settings.scss b/sass/settings.scss index 51f1a415..51c1051c 100644 --- a/sass/settings.scss +++ b/sass/settings.scss @@ -42,6 +42,9 @@ } .tab_container.settings { + textarea{ + height: 300px; + } margin-bottom: 50px; } @@ -66,4 +69,4 @@ text-align: left; padding: 3px 5px; } -} \ No newline at end of file +} diff --git a/sass/share_credential.scss b/sass/share_credential.scss index 13eb11ad..0a2c96c3 100644 --- a/sass/share_credential.scss +++ b/sass/share_credential.scss @@ -22,6 +22,10 @@ .sharing_table { + .button{ + min-height: 42px; + margin: 5px 0 0 0; + } td:first-child { width: 55%; @@ -52,6 +56,10 @@ } } .shared_table { + .pending{ + margin-right: 10px; + } + .fa-trash { cursor: pointer; } diff --git a/sass/vaults.scss b/sass/vaults.scss index 2af23141..25242c8a 100644 --- a/sass/vaults.scss +++ b/sass/vaults.scss @@ -26,7 +26,7 @@ padding: 12px; font-weight: bold; text-align: center; - z-index: 800; + z-index: 1800; background-color: red; color: white; .fa-times{ @@ -36,9 +36,8 @@ } } .vault_wrapper{ - margin: 0 auto; - margin-top: 20px; - width: 100%; + margin:0 auto auto auto; + max-width: 420px; @include border-radius(5px); box-shadow: 0 1px 1px #777; diff --git a/templates/main.php b/templates/main.php index 0e8c79c4..0cae6042 100644 --- a/templates/main.php +++ b/templates/main.php @@ -118,60 +118,121 @@ style('passman', 'app'); ?>
-
-
- {{ 'http.warning' | translate }} - -
+
+
+ {{ 'http.warning' | translate }} + +
-
- + +
  • +
    + {{ 'navigation.strength.bad' | translate }} +
  • +
  • +
    + {{ 'navigation.strength.medium' | translate }} +
  • +
  • +
    + {{ 'navigation.strength.good' | translate }} +
  • +
  • + {{ 'navigation.expired' | translate }} +
  • + + + -
    -
    -
    +
    +
    + +
    +
    -
    -
    -
    +
    + + +
    + + +
    + +
    + +
    +
    + {{'session.time.left' | translate:translationData}} +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    diff --git a/templates/public_share.php b/templates/public_share.php index ddb7e035..2515cdf9 100644 --- a/templates/public_share.php +++ b/templates/public_share.php @@ -66,8 +66,9 @@ style('passman', 'app'); style('passman', 'public-page'); ?> -
    -
    + diff --git a/templates/views/credential_revisions.html b/templates/views/credential_revisions.html index 6cea920f..49fc33d6 100644 --- a/templates/views/credential_revisions.html +++ b/templates/views/credential_revisions.html @@ -1,21 +1,19 @@ -
    -
    - diff --git a/templates/views/partials/forms/settings/import.html b/templates/views/partials/forms/settings/import.html index 97c01169..74007afa 100644 --- a/templates/views/partials/forms/settings/import.html +++ b/templates/views/partials/forms/settings/import.html @@ -8,16 +8,16 @@
    -