mirror of
https://github.com/keepassxreboot/keepassxc-browser.git
synced 2026-03-11 08:54:43 +00:00
Updated Bootstrap, jQuery and jQuery UI. Updated and removed some old code. UI modified to use plain Bootstrap.
This commit is contained in:
parent
c0de6941cd
commit
8b16e0808b
25 changed files with 550 additions and 1010 deletions
|
|
@ -248,8 +248,8 @@ keepass.associate = function(callback, tab) {
|
|||
|
||||
page.tabs[tab.id].errorMessage = null;
|
||||
|
||||
var rawKey = nacl.randomBytes(keepass.keySize * 2);
|
||||
//var rawKey = [41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]; // This is just for testing with the test client. KSorLC0uLzAxMjM0NTY3OA== )*+,-./012345678
|
||||
//var rawKey = nacl.randomBytes(keepass.keySize * 2);
|
||||
var rawKey = [41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]; // This is just for testing with the test client. KSorLC0uLzAxMjM0NTY3OA== )*+,-./012345678
|
||||
//console.log(rawKey);
|
||||
var key = keepass.b64e(rawKey);
|
||||
|
||||
|
|
|
|||
468
chromeKeePassXC/bootstrap-btn.css
vendored
468
chromeKeePassXC/bootstrap-btn.css
vendored
|
|
@ -1,468 +0,0 @@
|
|||
.b2c-btn {
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
padding: 4px 14px;
|
||||
margin-bottom: 0;
|
||||
*margin-left: .3em;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
*line-height: 20px;
|
||||
color: #333333;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
background-color: #f5f5f5;
|
||||
*background-color: #e6e6e6;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
|
||||
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
|
||||
background-repeat: repeat-x;
|
||||
border: 1px solid #bbbbbb;
|
||||
*border: 0;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
||||
border-bottom-color: #a2a2a2;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
|
||||
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
||||
*zoom: 1;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.b2c-btn:hover,
|
||||
.b2c-btn:active,
|
||||
.b2c-btn.active,
|
||||
.b2c-btn.disabled,
|
||||
.b2c-btn[disabled] {
|
||||
color: #333333;
|
||||
background-color: #e6e6e6;
|
||||
*background-color: #d9d9d9;
|
||||
}
|
||||
|
||||
.b2c-btn:active,
|
||||
.b2c-btn.active {
|
||||
background-color: #cccccc \9;
|
||||
}
|
||||
|
||||
.b2c-btn:first-child {
|
||||
*margin-left: 0;
|
||||
}
|
||||
|
||||
.b2c-btn:hover {
|
||||
color: #333333;
|
||||
text-decoration: none;
|
||||
background-color: #e6e6e6;
|
||||
*background-color: #d9d9d9;
|
||||
/* Buttons in IE7 don't get borders, so darken on hover */
|
||||
|
||||
background-position: 0 -15px;
|
||||
-webkit-transition: background-position 0.1s linear;
|
||||
-moz-transition: background-position 0.1s linear;
|
||||
-o-transition: background-position 0.1s linear;
|
||||
transition: background-position 0.1s linear;
|
||||
}
|
||||
|
||||
.b2c-btn:focus {
|
||||
outline: thin dotted #333;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
.b2c-btn.active,
|
||||
.b2c-btn:active {
|
||||
background-color: #e6e6e6;
|
||||
background-color: #d9d9d9 \9;
|
||||
background-image: none;
|
||||
outline: 0;
|
||||
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.b2c-btn.disabled,
|
||||
.b2c-btn[disabled] {
|
||||
cursor: default;
|
||||
background-color: #e6e6e6;
|
||||
background-image: none;
|
||||
opacity: 0.65;
|
||||
filter: alpha(opacity=65);
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.b2c-btn-large {
|
||||
padding: 9px 14px;
|
||||
font-size: 16px;
|
||||
line-height: normal;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.b2c-btn-large [class^="icon-"] {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.b2c-btn-small {
|
||||
padding: 3px 9px;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.b2c-btn-small [class^="icon-"] {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.b2c-btn-mini {
|
||||
padding: 2px 6px;
|
||||
font-size: 11px;
|
||||
line-height: 17px;
|
||||
}
|
||||
|
||||
.b2c-btn-block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.b2c-btn-block + .b2c-btn-block {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
input[type="submit"].b2c-btn-block,
|
||||
input[type="reset"].b2c-btn-block,
|
||||
input[type="button"].b2c-btn-block {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.b2c-btn-primary.active,
|
||||
.b2c-btn-warning.active,
|
||||
.b2c-btn-danger.active,
|
||||
.b2c-btn-success.active,
|
||||
.b2c-btn-info.active,
|
||||
.b2c-btn-inverse.active {
|
||||
color: rgba(255, 255, 255, 0.75);
|
||||
}
|
||||
|
||||
.b2c-btn {
|
||||
border-color: #c5c5c5;
|
||||
border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.b2c-btn-primary {
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background-color: #006dcc;
|
||||
*background-color: #0044cc;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-image: linear-gradient(to bottom, #0088cc, #0044cc);
|
||||
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
|
||||
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
||||
}
|
||||
|
||||
.b2c-btn-primary:hover,
|
||||
.b2c-btn-primary:active,
|
||||
.b2c-btn-primary.active,
|
||||
.b2c-btn-primary.disabled,
|
||||
.b2c-btn-primary[disabled] {
|
||||
color: #ffffff;
|
||||
background-color: #0044cc;
|
||||
*background-color: #003bb3;
|
||||
}
|
||||
|
||||
.b2c-btn-primary:active,
|
||||
.b2c-btn-primary.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
|
||||
.b2c-btn-warning {
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background-color: #faa732;
|
||||
*background-color: #f89406;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
|
||||
background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
|
||||
background-image: -o-linear-gradient(top, #fbb450, #f89406);
|
||||
background-image: linear-gradient(to bottom, #fbb450, #f89406);
|
||||
background-image: -moz-linear-gradient(top, #fbb450, #f89406);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #f89406 #f89406 #ad6704;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
|
||||
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
||||
}
|
||||
|
||||
.b2c-btn-warning:hover,
|
||||
.b2c-btn-warning:active,
|
||||
.b2c-btn-warning.active,
|
||||
.b2c-btn-warning.disabled,
|
||||
.b2c-btn-warning[disabled] {
|
||||
color: #ffffff;
|
||||
background-color: #f89406;
|
||||
*background-color: #df8505;
|
||||
}
|
||||
|
||||
.b2c-btn-warning:active,
|
||||
.b2c-btn-warning.active {
|
||||
background-color: #c67605 \9;
|
||||
}
|
||||
|
||||
.b2c-btn-danger {
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background-color: #da4f49;
|
||||
*background-color: #bd362f;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
|
||||
background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
|
||||
background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
|
||||
background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
|
||||
background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #bd362f #bd362f #802420;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
|
||||
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
||||
}
|
||||
|
||||
.b2c-btn-danger:hover,
|
||||
.b2c-btn-danger:active,
|
||||
.b2c-btn-danger.active,
|
||||
.b2c-btn-danger.disabled,
|
||||
.b2c-btn-danger[disabled] {
|
||||
color: #ffffff;
|
||||
background-color: #bd362f;
|
||||
*background-color: #a9302a;
|
||||
}
|
||||
|
||||
.b2c-btn-danger:active,
|
||||
.b2c-btn-danger.active {
|
||||
background-color: #942a25 \9;
|
||||
}
|
||||
|
||||
.b2c-btn-success {
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background-color: #5bb75b;
|
||||
*background-color: #51a351;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
|
||||
background-image: -webkit-linear-gradient(top, #62c462, #51a351);
|
||||
background-image: -o-linear-gradient(top, #62c462, #51a351);
|
||||
background-image: linear-gradient(to bottom, #62c462, #51a351);
|
||||
background-image: -moz-linear-gradient(top, #62c462, #51a351);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #51a351 #51a351 #387038;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
|
||||
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
||||
}
|
||||
|
||||
.b2c-btn-success:hover,
|
||||
.b2c-btn-success:active,
|
||||
.b2c-btn-success.active,
|
||||
.b2c-btn-success.disabled,
|
||||
.b2c-btn-success[disabled] {
|
||||
color: #ffffff;
|
||||
background-color: #51a351;
|
||||
*background-color: #499249;
|
||||
}
|
||||
|
||||
.b2c-btn-success:active,
|
||||
.b2c-btn-success.active {
|
||||
background-color: #408140 \9;
|
||||
}
|
||||
|
||||
.b2c-btn-info {
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background-color: #49afcd;
|
||||
*background-color: #2f96b4;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
|
||||
background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
|
||||
background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
|
||||
background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #2f96b4 #2f96b4 #1f6377;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
|
||||
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
||||
}
|
||||
|
||||
.b2c-btn-info:hover,
|
||||
.b2c-btn-info:active,
|
||||
.b2c-btn-info.active,
|
||||
.b2c-btn-info.disabled,
|
||||
.b2c-btn-info[disabled] {
|
||||
color: #ffffff;
|
||||
background-color: #2f96b4;
|
||||
*background-color: #2a85a0;
|
||||
}
|
||||
|
||||
.b2c-btn-info:active,
|
||||
.b2c-btn-info.active {
|
||||
background-color: #24748c \9;
|
||||
}
|
||||
|
||||
.b2c-btn-inverse {
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background-color: #363636;
|
||||
*background-color: #222222;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
|
||||
background-image: -webkit-linear-gradient(top, #444444, #222222);
|
||||
background-image: -o-linear-gradient(top, #444444, #222222);
|
||||
background-image: linear-gradient(to bottom, #444444, #222222);
|
||||
background-image: -moz-linear-gradient(top, #444444, #222222);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #222222 #222222 #000000;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
|
||||
filter: progid:dximagetransform.microsoft.gradient(enabled=false);
|
||||
}
|
||||
|
||||
.b2c-btn-inverse:hover,
|
||||
.b2c-btn-inverse:active,
|
||||
.b2c-btn-inverse.active,
|
||||
.b2c-btn-inverse.disabled,
|
||||
.b2c-btn-inverse[disabled] {
|
||||
color: #ffffff;
|
||||
background-color: #222222;
|
||||
*background-color: #151515;
|
||||
}
|
||||
|
||||
.b2c-btn-inverse:active,
|
||||
.b2c-btn-inverse.active {
|
||||
background-color: #080808 \9;
|
||||
}
|
||||
|
||||
button.b2c-btn,
|
||||
input[type="submit"].b2c-btn {
|
||||
*padding-top: 3px;
|
||||
*padding-bottom: 3px;
|
||||
}
|
||||
|
||||
button.b2c-btn::-moz-focus-inner,
|
||||
input[type="submit"].b2c-btn::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
button.b2c-btn.b2c-btn-large,
|
||||
input[type="submit"].b2c-btn.b2c-btn-large {
|
||||
*padding-top: 7px;
|
||||
*padding-bottom: 7px;
|
||||
}
|
||||
|
||||
button.b2c-btn.b2c-btn-small,
|
||||
input[type="submit"].b2c-btn.b2c-btn-small {
|
||||
*padding-top: 3px;
|
||||
*padding-bottom: 3px;
|
||||
}
|
||||
|
||||
button.b2c-btn.b2c-btn-mini,
|
||||
input[type="submit"].b2c-btn.b2c-btn-mini {
|
||||
*padding-top: 1px;
|
||||
*padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.b2c-input-append {
|
||||
display: inline-block;
|
||||
margin-bottom: 10px;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.b2c-input-append input,
|
||||
.b2c-input-append select,
|
||||
.b2c-input-append .b2c-uneditable-input,
|
||||
.b2c-input-append .b2c-dropdown-menu,
|
||||
.b2c-input-append .b2c-popover {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.b2c-input-append input,
|
||||
.b2c-input-append select,
|
||||
.b2c-input-append .b2c-uneditable-input {
|
||||
position: relative;
|
||||
margin-bottom: 0;
|
||||
*margin-left: 0;
|
||||
vertical-align: top;
|
||||
-webkit-border-radius: 0 4px 4px 0;
|
||||
-moz-border-radius: 0 4px 4px 0;
|
||||
border-radius: 0 4px 4px 0;
|
||||
}
|
||||
|
||||
.b2c-input-append input:focus,
|
||||
.b2c-input-append select:focus,
|
||||
.b2c-input-append .b2c-b2c-uneditable-input:focus {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.b2c-input-append .b2c-add-on {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
height: 20px;
|
||||
min-width: 16px;
|
||||
padding: 4px 5px;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 #ffffff;
|
||||
background-color: #eeeeee;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.b2c-input-append .b2c-add-on,
|
||||
.b2c-input-append .b2c-btn,
|
||||
.b2c-input-append .b2c-btn-group > .b2c-dropdown-toggle {
|
||||
vertical-align: top;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.b2c-input-append .b2c-active {
|
||||
background-color: #a9dba9;
|
||||
border-color: #46a546;
|
||||
}
|
||||
|
||||
.b2c-input-append input,
|
||||
.b2c-input-append select,
|
||||
.b2c-input-append .b2c-uneditable-input {
|
||||
-webkit-border-radius: 4px 0 0 4px;
|
||||
-moz-border-radius: 4px 0 0 4px;
|
||||
border-radius: 4px 0 0 4px;
|
||||
}
|
||||
|
||||
.b2c-input-append .b2c-add-on,
|
||||
.b2c-input-append .b2c-btn,
|
||||
.b2c-input-append .b2c-btn-group {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.b2c-input-append .b2c-add-on:last-child,
|
||||
.b2c-input-append .b2c-btn:last-child,
|
||||
.b2c-input-append .b2c-btn-group:last-child > .b2c-dropdown-toggle {
|
||||
-webkit-border-radius: 0 4px 4px 0;
|
||||
-moz-border-radius: 0 4px 4px 0;
|
||||
border-radius: 0 4px 4px 0;
|
||||
}
|
||||
|
|
@ -79,12 +79,12 @@ window.addEventListener("keydown", function(e) {
|
|||
}, false);
|
||||
|
||||
function _f(fieldId) {
|
||||
var field = (fieldId) ? cIPJQ("input[data-cip-id='"+fieldId+"']:first") : [];
|
||||
var field = (fieldId) ? jQuery("input[data-cip-id='"+fieldId+"']:first") : [];
|
||||
return (field.length > 0) ? field : null;
|
||||
}
|
||||
|
||||
function _fs(fieldId) {
|
||||
var field = (fieldId) ? cIPJQ("input[data-cip-id='"+fieldId+"']:first,select[data-cip-id='"+fieldId+"']:first").first() : [];
|
||||
var field = (fieldId) ? jQuery("input[data-cip-id='"+fieldId+"']:first,select[data-cip-id='"+fieldId+"']:first").first() : [];
|
||||
return (field.length > 0) ? field : null;
|
||||
}
|
||||
|
||||
|
|
@ -115,17 +115,17 @@ cipAutocomplete.init = function(field) {
|
|||
}
|
||||
|
||||
cipAutocomplete.onClick = function() {
|
||||
cIPJQ(this).autocomplete("search", cIPJQ(this).val());
|
||||
jQuery(this).autocomplete("search", jQuery(this).val());
|
||||
}
|
||||
|
||||
cipAutocomplete.onOpen = function(event, ui) {
|
||||
// NOT BEAUTIFUL!
|
||||
// modifies ALL ui-autocomplete menus of class .cip-ui-menu
|
||||
cIPJQ("ul.cip-ui-autocomplete.cip-ui-menu").css("z-index", 2147483636);
|
||||
jQuery("ul.cip-ui-autocomplete.cip-ui-menu").css("z-index", 2147483636);
|
||||
}
|
||||
|
||||
cipAutocomplete.onSource = function (request, callback) {
|
||||
var matches = cIPJQ.map( cipAutocomplete.elements, function(tag) {
|
||||
var matches = jQuery.map( cipAutocomplete.elements, function(tag) {
|
||||
if ( tag.label.toUpperCase().indexOf(request.term.toUpperCase()) === 0 ) {
|
||||
return tag;
|
||||
}
|
||||
|
|
@ -135,32 +135,32 @@ cipAutocomplete.onSource = function (request, callback) {
|
|||
|
||||
cipAutocomplete.onSelect = function (e, ui) {
|
||||
e.preventDefault();
|
||||
cip.setValueWithChange(cIPJQ(this), ui.item.value);
|
||||
var fieldId = cipFields.prepareId(cIPJQ(this).attr("data-cip-id"));
|
||||
cip.setValueWithChange(jQuery(this), ui.item.value);
|
||||
var fieldId = cipFields.prepareId(jQuery(this).attr("data-cip-id"));
|
||||
var combination = cipFields.getCombination("username", fieldId);
|
||||
combination.loginId = ui.item.loginId;
|
||||
cip.fillInCredentials(combination, true, false);
|
||||
cIPJQ(this).data("fetched", true);
|
||||
jQuery(this).data("fetched", true);
|
||||
}
|
||||
|
||||
cipAutocomplete.onBlur = function() {
|
||||
if(cIPJQ(this).data("fetched") == true) {
|
||||
cIPJQ(this).data("fetched", false);
|
||||
if(jQuery(this).data("fetched") == true) {
|
||||
jQuery(this).data("fetched", false);
|
||||
}
|
||||
else {
|
||||
var fieldId = cipFields.prepareId(cIPJQ(this).attr("data-cip-id"));
|
||||
var fieldId = cipFields.prepareId(jQuery(this).attr("data-cip-id"));
|
||||
var fields = cipFields.getCombination("username", fieldId);
|
||||
if(_f(fields.password) && _f(fields.password).data("unchanged") != true && cIPJQ(this).val() != "") {
|
||||
if(_f(fields.password) && _f(fields.password).data("unchanged") != true && jQuery(this).val() != "") {
|
||||
cip.fillInCredentials(fields, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cipAutocomplete.onFocus = function() {
|
||||
cip.u = cIPJQ(this);
|
||||
cip.u = jQuery(this);
|
||||
|
||||
if(cIPJQ(this).val() == "") {
|
||||
cIPJQ(this).autocomplete("search", "");
|
||||
if(jQuery(this).val() == "") {
|
||||
jQuery(this).autocomplete("search", "");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -218,16 +218,16 @@ cipPassword.createDialog = function() {
|
|||
|
||||
_called.passwordCreateDialog = true;
|
||||
|
||||
var $dialog = cIPJQ("<div>")
|
||||
var $dialog = jQuery("<div>")
|
||||
.attr("id", "cip-genpw-dialog");
|
||||
|
||||
var $divFloat = cIPJQ("<div>").addClass("cip-genpw-clearfix");
|
||||
var $btnGenerate = cIPJQ("<button>")
|
||||
var $divFloat = jQuery("<div>").addClass("cip-genpw-clearfix");
|
||||
var $btnGenerate = jQuery("<button>")
|
||||
.text("Generate")
|
||||
.attr("id", "cip-genpw-btn-generate")
|
||||
.addClass("b2c-btn")
|
||||
.addClass("b2c-btn-primary")
|
||||
.addClass("b2c-btn-small")
|
||||
.addClass("btn")
|
||||
.addClass("btn-primary")
|
||||
.addClass("btn-sm")
|
||||
.css("float", "left")
|
||||
.click(function(e) {
|
||||
e.preventDefault();
|
||||
|
|
@ -237,78 +237,78 @@ cipPassword.createDialog = function() {
|
|||
});
|
||||
$divFloat.append($btnGenerate);
|
||||
|
||||
var $btnClipboard = cIPJQ("<button>")
|
||||
var $btnClipboard = jQuery("<button>")
|
||||
.text("Copy to clipboard")
|
||||
.attr("id", "cip-genpw-btn-clipboard")
|
||||
.addClass("b2c-btn")
|
||||
.addClass("b2c-btn-small")
|
||||
.addClass("btn")
|
||||
.addClass("btn-sm")
|
||||
.css("float", "right")
|
||||
.click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
chrome.extension.sendMessage({
|
||||
action: "copy_password",
|
||||
args: [cIPJQ("input#cip-genpw-textfield-password").val()]
|
||||
args: [jQuery("input#cip-genpw-textfield-password").val()]
|
||||
}, cipPassword.callbackPasswordCopied);
|
||||
});
|
||||
$divFloat.append($btnClipboard);
|
||||
|
||||
$dialog.append($divFloat);
|
||||
|
||||
var $textfieldPassword = cIPJQ("<input>")
|
||||
var $textfieldPassword = jQuery("<input>")
|
||||
.attr("id", "cip-genpw-textfield-password")
|
||||
.attr("type", "text")
|
||||
.addClass("cip-genpw-textfield")
|
||||
.on('change keypress paste textInput input', function() {
|
||||
cIPJQ("#cip-genpw-btn-clipboard:first").removeClass("b2c-btn-success");
|
||||
jQuery("#cip-genpw-btn-clipboard:first").removeClass("btn-success");
|
||||
});
|
||||
var $quality = cIPJQ("<span>")
|
||||
var $quality = jQuery("<span>")
|
||||
.addClass("b2c-add-on")
|
||||
.attr("id", "cip-genpw-quality")
|
||||
.text("123 Bits");
|
||||
var $frameInputAppend = cIPJQ("<div>")
|
||||
var $frameInputAppend = jQuery("<div>")
|
||||
.addClass("b2c-input-append")
|
||||
.addClass("cip-genpw-password-frame");
|
||||
$frameInputAppend.append($textfieldPassword).append($quality);
|
||||
$dialog.append($frameInputAppend);
|
||||
|
||||
var $checkboxNextField = cIPJQ("<input>")
|
||||
var $checkboxNextField = jQuery("<input>")
|
||||
.attr("id", "cip-genpw-checkbox-next-field")
|
||||
.attr("type", "checkbox")
|
||||
.addClass("cip-genpw-checkbox");
|
||||
var $labelNextField = cIPJQ("<label>")
|
||||
var $labelNextField = jQuery("<label>")
|
||||
.append($checkboxNextField)
|
||||
.addClass("cip-genpw-label")
|
||||
.append(" also fill in the next password-field");
|
||||
$dialog.append($labelNextField);
|
||||
|
||||
var $btnFillIn = cIPJQ("<button>")
|
||||
var $btnFillIn = jQuery("<button>")
|
||||
.text("Fill in & copy to clipboard")
|
||||
.attr("id", "cip-genpw-btn-fillin")
|
||||
.addClass("b2c-btn")
|
||||
.addClass("b2c-btn-small")
|
||||
.addClass("btn")
|
||||
.addClass("btn-sm")
|
||||
.click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var fieldId = cIPJQ("#cip-genpw-dialog:first").data("cip-genpw-field-id");
|
||||
var field = cIPJQ("input[data-cip-id='"+fieldId+"']:first");
|
||||
var fieldId = jQuery("#cip-genpw-dialog:first").data("cip-genpw-field-id");
|
||||
var field = jQuery("input[data-cip-id='"+fieldId+"']:first");
|
||||
if(field.length == 1) {
|
||||
var $password = cIPJQ("input#cip-genpw-textfield-password:first").val();
|
||||
var $password = jQuery("input#cip-genpw-textfield-password:first").val();
|
||||
|
||||
if(field.attr("maxlength")) {
|
||||
if($password.length > field.attr("maxlength")) {
|
||||
$password = $password.substring(0, field.attr("maxlength"));
|
||||
cIPJQ("input#cip-genpw-textfield-password:first").val($password);
|
||||
cIPJQ("#cip-genpw-btn-clipboard:first").removeClass("b2c-btn-success");
|
||||
jQuery("input#cip-genpw-textfield-password:first").val($password);
|
||||
jQuery("#cip-genpw-btn-clipboard:first").removeClass("b2c-btn-success");
|
||||
alert("The generated password is longer than the allowed length!\nIt has been cut to fit the length.\n\nPlease remember the new password!");
|
||||
}
|
||||
}
|
||||
|
||||
field.val($password);
|
||||
if(cIPJQ("input#cip-genpw-checkbox-next-field:checked").length == 1) {
|
||||
if(jQuery("input#cip-genpw-checkbox-next-field:checked").length == 1) {
|
||||
if(field.data("cip-genpw-next-field-exists")) {
|
||||
var nextFieldId = field.data("cip-genpw-next-field-id");
|
||||
var nextField = cIPJQ("input[data-cip-id='"+nextFieldId+"']:first");
|
||||
var nextField = jQuery("input[data-cip-id='"+nextFieldId+"']:first");
|
||||
if(nextField.length == 1) {
|
||||
nextField.val($password);
|
||||
}
|
||||
|
|
@ -325,7 +325,7 @@ cipPassword.createDialog = function() {
|
|||
$dialog.append($btnFillIn);
|
||||
|
||||
$dialog.hide();
|
||||
cIPJQ("body").append($dialog);
|
||||
jQuery("body").append($dialog);
|
||||
$dialog.dialog({
|
||||
closeText: "×",
|
||||
autoOpen: false,
|
||||
|
|
@ -334,12 +334,12 @@ cipPassword.createDialog = function() {
|
|||
minWidth: 340,
|
||||
title: "Password Generator",
|
||||
open: function(event, ui) {
|
||||
cIPJQ(".cip-ui-widget-overlay").click(function() {
|
||||
cIPJQ("#cip-genpw-dialog:first").dialog("close");
|
||||
jQuery(".cip-ui-widget-overlay").click(function() {
|
||||
jQuery("#cip-genpw-dialog:first").dialog("close");
|
||||
});
|
||||
|
||||
if(cIPJQ("input#cip-genpw-textfield-password:first").val() == "") {
|
||||
cIPJQ("button#cip-genpw-btn-generate:first").click();
|
||||
if(jQuery("input#cip-genpw-textfield-password:first").val() == "") {
|
||||
jQuery("button#cip-genpw-btn-generate:first").click();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -372,7 +372,7 @@ cipPassword.createIcon = function(field) {
|
|||
}
|
||||
$zIndex += 1;
|
||||
|
||||
var $icon = cIPJQ("<div>").addClass("cip-genpw-icon")
|
||||
var $icon = jQuery("<div>").addClass("cip-genpw-icon")
|
||||
.addClass($className)
|
||||
.css("z-index", $zIndex)
|
||||
.data("size", $size)
|
||||
|
|
@ -388,17 +388,17 @@ cipPassword.createIcon = function(field) {
|
|||
return;
|
||||
}
|
||||
|
||||
var $dialog = cIPJQ("#cip-genpw-dialog");
|
||||
var $dialog = jQuery("#cip-genpw-dialog");
|
||||
if($dialog.dialog("isOpen")) {
|
||||
$dialog.dialog("close");
|
||||
}
|
||||
$dialog.dialog("option", "position", { my: "left-10px top", at: "center bottom", of: cIPJQ(this) });
|
||||
$dialog.dialog("option", "position", { my: "left-10px top", at: "center bottom", of: jQuery(this) });
|
||||
$dialog.data("cip-genpw-field-id", field.data("cip-id"));
|
||||
$dialog.data("cip-genpw-next-field-id", field.data("cip-genpw-next-field-id"));
|
||||
$dialog.data("cip-genpw-next-is-password-field", field.data("cip-genpw-next-is-password-field"));
|
||||
|
||||
var $bool = Boolean(field.data("cip-genpw-next-field-exists"));
|
||||
cIPJQ("input#cip-genpw-checkbox-next-field:first")
|
||||
jQuery("input#cip-genpw-checkbox-next-field:first")
|
||||
.attr("checked", $bool)
|
||||
.attr("disabled", !$bool);
|
||||
|
||||
|
|
@ -407,7 +407,7 @@ cipPassword.createIcon = function(field) {
|
|||
|
||||
cipPassword.observedIcons.push($icon);
|
||||
|
||||
cIPJQ("body").append($icon);
|
||||
jQuery("body").append($icon);
|
||||
}
|
||||
|
||||
cipPassword.setIconPosition = function($icon, $field) {
|
||||
|
|
@ -417,30 +417,30 @@ cipPassword.setIconPosition = function($icon, $field) {
|
|||
|
||||
cipPassword.callbackPasswordCopied = function(bool) {
|
||||
if(bool) {
|
||||
cIPJQ("#cip-genpw-btn-clipboard").addClass("b2c-btn-success");
|
||||
jQuery("#cip-genpw-btn-clipboard").addClass("btn-success");
|
||||
}
|
||||
}
|
||||
|
||||
cipPassword.callbackGeneratedPassword = function(entries) {
|
||||
if(entries && entries.length >= 1) {
|
||||
console.log(entries[0]);
|
||||
cIPJQ("#cip-genpw-btn-clipboard:first").removeClass("b2c-btn-success");
|
||||
cIPJQ("input#cip-genpw-textfield-password:first").val(entries[0].password);
|
||||
jQuery("#cip-genpw-btn-clipboard:first").removeClass("btn-success");
|
||||
jQuery("input#cip-genpw-textfield-password:first").val(entries[0].password);
|
||||
if(isNaN(entries[0].login)) {
|
||||
cIPJQ("#cip-genpw-quality:first").text("??? Bits");
|
||||
jQuery("#cip-genpw-quality:first").text("??? Bits");
|
||||
}
|
||||
else {
|
||||
cIPJQ("#cip-genpw-quality:first").text(entries[0].login + " Bits");
|
||||
jQuery("#cip-genpw-quality:first").text(entries[0].login + " Bits");
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(cIPJQ("div#cip-genpw-error:first").length == 0) {
|
||||
cIPJQ("button#cip-genpw-btn-generate:first").after("<div style='block' id='cip-genpw-error'>Cannot receive generated password.<br />Is your version of KeePassHttp up-to-date?<br /><br /><a href='https://github.com/pfn/keepasshttp/'>Please visit the KeePassHttp homepage</a></div>");
|
||||
cIPJQ("input#cip-genpw-textfield-password:first").parent().hide();
|
||||
cIPJQ("input#cip-genpw-checkbox-next-field:first").parent("label").hide();
|
||||
cIPJQ("button#cip-genpw-btn-generate").hide();
|
||||
cIPJQ("button#cip-genpw-btn-clipboard").hide();
|
||||
cIPJQ("button#cip-genpw-btn-fillin").hide();
|
||||
if(jQuery("div#cip-genpw-error:first").length == 0) {
|
||||
jQuery("button#cip-genpw-btn-generate:first").after("<div style='block' id='cip-genpw-error'>Cannot receive generated password.<br />Is your version of KeePassXC up-to-date?<br /><br /><a href='https://keepassxc.org'>Please visit the KeePassXC homepage</a></div>");
|
||||
jQuery("input#cip-genpw-textfield-password:first").parent().hide();
|
||||
jQuery("input#cip-genpw-checkbox-next-field:first").parent("label").hide();
|
||||
jQuery("button#cip-genpw-btn-generate").hide();
|
||||
jQuery("button#cip-genpw-btn-clipboard").hide();
|
||||
jQuery("button#cip-genpw-btn-fillin").hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -457,10 +457,10 @@ cipPassword.checkObservedElements = function() {
|
|||
}
|
||||
|
||||
cipPassword.observingLock = true;
|
||||
cIPJQ.each(cipPassword.observedIcons, function(index, iconField) {
|
||||
jQuery.each(cipPassword.observedIcons, function(index, iconField) {
|
||||
if(iconField && iconField.length == 1) {
|
||||
var fieldId = iconField.data("cip-genpw-field-id");
|
||||
var field = cIPJQ("input[data-cip-id='"+fieldId+"']:first");
|
||||
var field = jQuery("input[data-cip-id='"+fieldId+"']:first");
|
||||
if(!field || field.length != 1) {
|
||||
iconField.remove();
|
||||
cipPassword.observedIcons.splice(index, 1);
|
||||
|
|
@ -505,8 +505,8 @@ cipForm.destroy = function(form, credentialFields) {
|
|||
}
|
||||
}
|
||||
|
||||
if(form && cIPJQ(form).length > 0) {
|
||||
cIPJQ(form).unbind('submit', cipForm.onSubmit);
|
||||
if(form && jQuery(form).length > 0) {
|
||||
jQuery(form).unbind('submit', cipForm.onSubmit);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -516,8 +516,8 @@ cipForm.setInputFields = function(form, credentialFields) {
|
|||
}
|
||||
|
||||
cipForm.onSubmit = function() {
|
||||
var usernameId = cIPJQ(this).data("cipUsername");
|
||||
var passwordId = cIPJQ(this).data("cipPassword");
|
||||
var usernameId = jQuery(this).data("cipUsername");
|
||||
var passwordId = jQuery(this).data("cipPassword");
|
||||
|
||||
var usernameValue = "";
|
||||
var passwordValue = "";
|
||||
|
|
@ -547,13 +547,13 @@ cipDefine.selection = {
|
|||
cipDefine.eventFieldClick = null;
|
||||
|
||||
cipDefine.init = function () {
|
||||
var $backdrop = cIPJQ("<div>").attr("id", "b2c-backdrop").addClass("b2c-modal-backdrop");
|
||||
cIPJQ("body").append($backdrop);
|
||||
var $backdrop = jQuery("<div>").attr("id", "b2c-backdrop").addClass("b2c-modal-backdrop");
|
||||
jQuery("body").append($backdrop);
|
||||
|
||||
var $chooser = cIPJQ("<div>").attr("id", "b2c-cipDefine-fields");
|
||||
cIPJQ("body").append($chooser);
|
||||
var $chooser = jQuery("<div>").attr("id", "b2c-cipDefine-fields");
|
||||
jQuery("body").append($chooser);
|
||||
|
||||
var $description = cIPJQ("<div>").attr("id", "b2c-cipDefine-description");
|
||||
var $description = jQuery("<div>").attr("id", "b2c-cipDefine-description");
|
||||
$backdrop.append($description);
|
||||
|
||||
cipFields.getAllFields();
|
||||
|
|
@ -567,44 +567,44 @@ cipDefine.init = function () {
|
|||
}
|
||||
|
||||
cipDefine.initDescription = function() {
|
||||
var $description = cIPJQ("div#b2c-cipDefine-description");
|
||||
var $h1 = cIPJQ("<div>").addClass("b2c-chooser-headline");
|
||||
var $description = jQuery("div#b2c-cipDefine-description");
|
||||
var $h1 = jQuery("<div>").addClass("b2c-chooser-headline");
|
||||
$description.append($h1);
|
||||
var $help = cIPJQ("<div>").addClass("b2c-chooser-help").attr("id", "b2c-help");
|
||||
var $help = jQuery("<div>").addClass("b2c-chooser-help").attr("id", "b2c-help");
|
||||
$description.append($help);
|
||||
|
||||
var $btnDismiss = cIPJQ("<button>").text("Dismiss").attr("id", "b2c-btn-dismiss")
|
||||
.addClass("b2c-btn").addClass("b2c-btn-danger")
|
||||
var $btnDismiss = jQuery("<button>").text("Dismiss").attr("id", "b2c-btn-dismiss")
|
||||
.addClass("btn").addClass("btn-danger")
|
||||
.click(function(e) {
|
||||
cIPJQ("div#b2c-backdrop").remove();
|
||||
cIPJQ("div#b2c-cipDefine-fields").remove();
|
||||
jQuery("div#b2c-backdrop").remove();
|
||||
jQuery("div#b2c-cipDefine-fields").remove();
|
||||
});
|
||||
var $btnSkip = cIPJQ("<button>").text("Skip").attr("id", "b2c-btn-skip")
|
||||
.addClass("b2c-btn").addClass("b2c-btn-info")
|
||||
var $btnSkip = jQuery("<button>").text("Skip").attr("id", "b2c-btn-skip")
|
||||
.addClass("btn").addClass("btn-info")
|
||||
.css("margin-right", "5px")
|
||||
.click(function() {
|
||||
if(cIPJQ(this).data("step") == 1) {
|
||||
if(jQuery(this).data("step") == 1) {
|
||||
cipDefine.selection.username = null;
|
||||
cipDefine.prepareStep2();
|
||||
cipDefine.markAllPasswordFields(cIPJQ("#b2c-cipDefine-fields"));
|
||||
cipDefine.markAllPasswordFields(jQuery("#b2c-cipDefine-fields"));
|
||||
}
|
||||
else if(cIPJQ(this).data("step") == 2) {
|
||||
else if(jQuery(this).data("step") == 2) {
|
||||
cipDefine.selection.password = null;
|
||||
cipDefine.prepareStep3();
|
||||
cipDefine.markAllStringFields(cIPJQ("#b2c-cipDefine-fields"));
|
||||
cipDefine.markAllStringFields(jQuery("#b2c-cipDefine-fields"));
|
||||
}
|
||||
});
|
||||
var $btnAgain = cIPJQ("<button>").text("Again").attr("id", "b2c-btn-again")
|
||||
.addClass("b2c-btn").addClass("b2c-btn-warning")
|
||||
var $btnAgain = jQuery("<button>").text("Again").attr("id", "b2c-btn-again")
|
||||
.addClass("btn").addClass("btn-warning")
|
||||
.css("margin-right", "5px")
|
||||
.click(function(e) {
|
||||
cipDefine.resetSelection();
|
||||
cipDefine.prepareStep1();
|
||||
cipDefine.markAllUsernameFields(cIPJQ("#b2c-cipDefine-fields"));
|
||||
cipDefine.markAllUsernameFields(jQuery("#b2c-cipDefine-fields"));
|
||||
})
|
||||
.hide();
|
||||
var $btnConfirm = cIPJQ("<button>").text("Confirm").attr("id", "b2c-btn-confirm")
|
||||
.addClass("b2c-btn").addClass("b2c-btn-primary")
|
||||
var $btnConfirm = jQuery("<button>").text("Confirm").attr("id", "b2c-btn-confirm")
|
||||
.addClass("btn").addClass("btn-primary")
|
||||
.css("margin-right", "15px")
|
||||
.click(function(e) {
|
||||
if(!cip.settings["defined-credential-fields"]) {
|
||||
|
|
@ -615,7 +615,7 @@ cipDefine.initDescription = function() {
|
|||
cipDefine.selection.username = cipFields.prepareId(cipDefine.selection.username);
|
||||
}
|
||||
|
||||
var passwordId = cIPJQ("div#b2c-cipDefine-fields").data("password");
|
||||
var passwordId = jQuery("div#b2c-cipDefine-fields").data("password");
|
||||
if(cipDefine.selection.password) {
|
||||
cipDefine.selection.password = cipFields.prepareId(cipDefine.selection.password);
|
||||
}
|
||||
|
|
@ -637,7 +637,7 @@ cipDefine.initDescription = function() {
|
|||
args: [cip.settings]
|
||||
});
|
||||
|
||||
cIPJQ("button#b2c-btn-dismiss").click();
|
||||
jQuery("button#b2c-btn-dismiss").click();
|
||||
})
|
||||
.hide();
|
||||
|
||||
|
|
@ -647,14 +647,14 @@ cipDefine.initDescription = function() {
|
|||
$description.append($btnDismiss);
|
||||
|
||||
if(cip.settings["defined-credential-fields"] && cip.settings["defined-credential-fields"][document.location.origin]) {
|
||||
var $p = cIPJQ("<p>").html("For this page credential fields are already selected and will be overwritten.<br />");
|
||||
var $btnDiscard = cIPJQ("<button>")
|
||||
.attr("id", "b2c-btn-discard")
|
||||
var $p = jQuery("<p>").html("For this page credential fields are already selected and will be overwritten.<br />");
|
||||
var $btnDiscard = jQuery("<button>")
|
||||
.attr("id", "btn-warning")
|
||||
.text("Discard selection")
|
||||
.css("margin-top", "5px")
|
||||
.addClass("b2c-btn")
|
||||
.addClass("b2c-btn-small")
|
||||
.addClass("b2c-btn-danger")
|
||||
.addClass("btn")
|
||||
.addClass("btn-sm")
|
||||
.addClass("btn-danger")
|
||||
.click(function(e) {
|
||||
delete cip.settings["defined-credential-fields"][document.location.origin];
|
||||
|
||||
|
|
@ -667,13 +667,13 @@ cipDefine.initDescription = function() {
|
|||
action: 'load_settings'
|
||||
});
|
||||
|
||||
cIPJQ(this).parent("p").remove();
|
||||
jQuery(this).parent("p").remove();
|
||||
});
|
||||
$p.append($btnDiscard);
|
||||
$description.append($p);
|
||||
}
|
||||
|
||||
cIPJQ("div#b2c-cipDefine-description").draggable();
|
||||
jQuery("div#b2c-cipDefine-description").draggable();
|
||||
}
|
||||
|
||||
cipDefine.resetSelection = function() {
|
||||
|
|
@ -694,52 +694,52 @@ cipDefine.isFieldSelected = function($cipId) {
|
|||
|
||||
cipDefine.markAllUsernameFields = function($chooser) {
|
||||
cipDefine.eventFieldClick = function(e) {
|
||||
cipDefine.selection.username = cIPJQ(this).data("cip-id");
|
||||
cIPJQ(this).addClass("b2c-fixed-username-field").text("Username").unbind("click");
|
||||
cipDefine.selection.username = jQuery(this).data("cip-id");
|
||||
jQuery(this).addClass("b2c-fixed-username-field").text("Username").unbind("click");
|
||||
cipDefine.prepareStep2();
|
||||
cipDefine.markAllPasswordFields(cIPJQ("#b2c-cipDefine-fields"));
|
||||
cipDefine.markAllPasswordFields(jQuery("#b2c-cipDefine-fields"));
|
||||
};
|
||||
cipDefine.markFields($chooser, cipFields.inputQueryPattern);
|
||||
}
|
||||
|
||||
cipDefine.markAllPasswordFields = function($chooser) {
|
||||
cipDefine.eventFieldClick = function(e) {
|
||||
cipDefine.selection.password = cIPJQ(this).data("cip-id");
|
||||
cIPJQ(this).addClass("b2c-fixed-password-field").text("Password").unbind("click");
|
||||
cipDefine.selection.password = jQuery(this).data("cip-id");
|
||||
jQuery(this).addClass("b2c-fixed-password-field").text("Password").unbind("click");
|
||||
cipDefine.prepareStep3();
|
||||
cipDefine.markAllStringFields(cIPJQ("#b2c-cipDefine-fields"));
|
||||
cipDefine.markAllStringFields(jQuery("#b2c-cipDefine-fields"));
|
||||
};
|
||||
cipDefine.markFields($chooser, "input[type='password']");
|
||||
}
|
||||
|
||||
cipDefine.markAllStringFields = function($chooser) {
|
||||
cipDefine.eventFieldClick = function(e) {
|
||||
cipDefine.selection.fields[cIPJQ(this).data("cip-id")] = true;
|
||||
cipDefine.selection.fields[jQuery(this).data("cip-id")] = true;
|
||||
var count = Object.keys(cipDefine.selection.fields).length;
|
||||
cIPJQ(this).addClass("b2c-fixed-string-field").text("String field #"+count.toString()).unbind("click");
|
||||
jQuery(this).addClass("b2c-fixed-string-field").text("String field #"+count.toString()).unbind("click");
|
||||
|
||||
cIPJQ("button#b2c-btn-confirm:first").addClass("b2c-btn-primary").attr("disabled", false);
|
||||
jQuery("button#b2c-btn-confirm:first").addClass("b2c-btn-primary").attr("disabled", false);
|
||||
};
|
||||
cipDefine.markFields($chooser, cipFields.inputQueryPattern + ", select");
|
||||
}
|
||||
|
||||
cipDefine.markFields = function ($chooser, $pattern) {
|
||||
//var $found = false;
|
||||
cIPJQ($pattern).each(function() {
|
||||
if(cipDefine.isFieldSelected(cIPJQ(this).data("cip-id"))) {
|
||||
jQuery($pattern).each(function() {
|
||||
if(cipDefine.isFieldSelected(jQuery(this).data("cip-id"))) {
|
||||
//continue
|
||||
return true;
|
||||
}
|
||||
|
||||
if(cIPJQ(this).is(":visible") && cIPJQ(this).css("visibility") != "hidden" && cIPJQ(this).css("visibility") != "collapsed") {
|
||||
var $field = cIPJQ("<div>").addClass("b2c-fixed-field")
|
||||
.css("top", cIPJQ(this).offset().top)
|
||||
.css("left", cIPJQ(this).offset().left)
|
||||
.css("width", cIPJQ(this).outerWidth())
|
||||
.css("height", cIPJQ(this).outerHeight())
|
||||
.attr("data-cip-id", cIPJQ(this).attr("data-cip-id"))
|
||||
if(jQuery(this).is(":visible") && jQuery(this).css("visibility") != "hidden" && jQuery(this).css("visibility") != "collapsed") {
|
||||
var $field = jQuery("<div>").addClass("b2c-fixed-field")
|
||||
.css("top", jQuery(this).offset().top)
|
||||
.css("left", jQuery(this).offset().left)
|
||||
.css("width", jQuery(this).outerWidth())
|
||||
.css("height", jQuery(this).outerHeight())
|
||||
.attr("data-cip-id", jQuery(this).attr("data-cip-id"))
|
||||
.click(cipDefine.eventFieldClick)
|
||||
.hover(function() {cIPJQ(this).addClass("b2c-fixed-hover-field");}, function() {cIPJQ(this).removeClass("b2c-fixed-hover-field");});
|
||||
.hover(function() {jQuery(this).addClass("b2c-fixed-hover-field");}, function() {jQuery(this).removeClass("b2c-fixed-hover-field");});
|
||||
$chooser.append($field);
|
||||
//$found = true;
|
||||
}
|
||||
|
|
@ -748,48 +748,48 @@ cipDefine.markFields = function ($chooser, $pattern) {
|
|||
/* skip step if no entry was found
|
||||
if(!$found) {
|
||||
alert("No username field found.\nContinue with choosing a password field.");
|
||||
cIPJQ("button#b2c-btn-skip").click();
|
||||
jQuery("button#b2c-btn-skip").click();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
cipDefine.prepareStep1 = function() {
|
||||
cIPJQ("div#b2c-help").text("").css("margin-bottom", 0);
|
||||
cIPJQ("div#b2c-cipDefine-fields").removeData("username");
|
||||
cIPJQ("div#b2c-cipDefine-fields").removeData("password");
|
||||
cIPJQ("div.b2c-fixed-field", cIPJQ("div#b2c-cipDefine-fields")).remove();
|
||||
cIPJQ("div:first", cIPJQ("div#b2c-cipDefine-description")).text("1. Choose a username field");
|
||||
cIPJQ("button#b2c-btn-skip:first").data("step", "1").show();
|
||||
cIPJQ("button#b2c-btn-confirm:first").hide();
|
||||
cIPJQ("button#b2c-btn-again:first").hide();
|
||||
jQuery("div#b2c-help").text("").css("margin-bottom", 0);
|
||||
jQuery("div#b2c-cipDefine-fields").removeData("username");
|
||||
jQuery("div#b2c-cipDefine-fields").removeData("password");
|
||||
jQuery("div.b2c-fixed-field", jQuery("div#b2c-cipDefine-fields")).remove();
|
||||
jQuery("div:first", jQuery("div#b2c-cipDefine-description")).text("1. Choose a username field");
|
||||
jQuery("button#b2c-btn-skip:first").data("step", "1").show();
|
||||
jQuery("button#b2c-btn-confirm:first").hide();
|
||||
jQuery("button#b2c-btn-again:first").hide();
|
||||
}
|
||||
|
||||
cipDefine.prepareStep2 = function() {
|
||||
cIPJQ("div#b2c-help").text("").css("margin-bottom", 0);
|
||||
cIPJQ("div.b2c-fixed-field:not(.b2c-fixed-username-field)", cIPJQ("div#b2c-cipDefine-fields")).remove();
|
||||
cIPJQ("div:first", cIPJQ("div#b2c-cipDefine-description")).text("2. Now choose a password field");
|
||||
cIPJQ("button#b2c-btn-skip:first").data("step", "2");
|
||||
cIPJQ("button#b2c-btn-again:first").show();
|
||||
jQuery("div#b2c-help").text("").css("margin-bottom", 0);
|
||||
jQuery("div.b2c-fixed-field:not(.b2c-fixed-username-field)", jQuery("div#b2c-cipDefine-fields")).remove();
|
||||
jQuery("div:first", jQuery("div#b2c-cipDefine-description")).text("2. Now choose a password field");
|
||||
jQuery("button#b2c-btn-skip:first").data("step", "2");
|
||||
jQuery("button#b2c-btn-again:first").show();
|
||||
}
|
||||
|
||||
cipDefine.prepareStep3 = function() {
|
||||
/* skip step if no entry was found
|
||||
if(!cIPJQ("div#b2c-cipDefine-fields").data("username") && !cIPJQ("div#b2c-cipDefine-fields").data("password")) {
|
||||
if(!jQuery("div#b2c-cipDefine-fields").data("username") && !jQuery("div#b2c-cipDefine-fields").data("password")) {
|
||||
alert("Neither an username field nor a password field were selected.\nNothing will be changed and chooser will be closed now.");
|
||||
cIPJQ("button#b2c-btn-dismiss").click();
|
||||
jQuery("button#b2c-btn-dismiss").click();
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
if(!cipDefine.selection.username && !cipDefine.selection.password) {
|
||||
cIPJQ("button#b2c-btn-confirm:first").removeClass("b2c-btn-primary").attr("disabled", true);
|
||||
jQuery("button#b2c-btn-confirm:first").removeClass("b2c-btn-primary").attr("disabled", true);
|
||||
}
|
||||
|
||||
cIPJQ("div#b2c-help").html("Please confirm your selection or choose more fields as <em>String fields</em>.").css("margin-bottom", "5px");
|
||||
cIPJQ("div.b2c-fixed-field:not(.b2c-fixed-password-field,.b2c-fixed-username-field)", cIPJQ("div#b2c-cipDefine-fields")).remove();
|
||||
cIPJQ("button#b2c-btn-confirm:first").show();
|
||||
cIPJQ("button#b2c-btn-skip:first").data("step", "3").hide();
|
||||
cIPJQ("div:first", cIPJQ("div#b2c-cipDefine-description")).text("3. Confirm selection");
|
||||
jQuery("div#b2c-help").html("Please confirm your selection or choose more fields as <em>String fields</em>.").css("margin-bottom", "5px");
|
||||
jQuery("div.b2c-fixed-field:not(.b2c-fixed-password-field,.b2c-fixed-username-field)", jQuery("div#b2c-cipDefine-fields")).remove();
|
||||
jQuery("button#b2c-btn-confirm:first").show();
|
||||
jQuery("button#b2c-btn-skip:first").data("step", "3").hide();
|
||||
jQuery("div:first", jQuery("div#b2c-cipDefine-description")).text("3. Confirm selection");
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -808,7 +808,7 @@ cipFields.setUniqueId = function(field) {
|
|||
// yes, it should be, but there are many bad developers outside...
|
||||
var fieldId = field.attr("id");
|
||||
if(fieldId) {
|
||||
var foundIds = cIPJQ("input#" + cipFields.prepareId(fieldId));
|
||||
var foundIds = jQuery("input#" + cipFields.prepareId(fieldId));
|
||||
if(foundIds.length == 1) {
|
||||
field.attr("data-cip-id", fieldId);
|
||||
return;
|
||||
|
|
@ -817,7 +817,7 @@ cipFields.setUniqueId = function(field) {
|
|||
|
||||
// create own ID if no ID is set for this field
|
||||
cipFields.uniqueNumber += 1;
|
||||
field.attr("data-cip-id", "cIPJQ"+String(cipFields.uniqueNumber));
|
||||
field.attr("data-cip-id", "jQuery"+String(cipFields.uniqueNumber));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -830,10 +830,10 @@ cipFields.prepareId = function(id) {
|
|||
cipFields.getAllFields = function() {
|
||||
var fields = [];
|
||||
// get all input fields which are text, email or password and visible
|
||||
cIPJQ(cipFields.inputQueryPattern).each(function() {
|
||||
if(cIPJQ(this).is(":visible") && cIPJQ(this).css("visibility") != "hidden" && cIPJQ(this).css("visibility") != "collapsed") {
|
||||
cipFields.setUniqueId(cIPJQ(this));
|
||||
fields.push(cIPJQ(this));
|
||||
jQuery(cipFields.inputQueryPattern).each(function() {
|
||||
if(jQuery(this).is(":visible") && jQuery(this).css("visibility") != "hidden" && jQuery(this).css("visibility") != "collapsed") {
|
||||
cipFields.setUniqueId(jQuery(this));
|
||||
fields.push(jQuery(this));
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -841,9 +841,9 @@ cipFields.getAllFields = function() {
|
|||
}
|
||||
|
||||
cipFields.prepareVisibleFieldsWithID = function($pattern) {
|
||||
cIPJQ($pattern).each(function() {
|
||||
if(cIPJQ(this).is(":visible") && cIPJQ(this).css("visibility") != "hidden" && cIPJQ(this).css("visibility") != "collapsed") {
|
||||
cipFields.setUniqueId(cIPJQ(this));
|
||||
jQuery($pattern).each(function() {
|
||||
if(jQuery(this).is(":visible") && jQuery(this).css("visibility") != "hidden" && jQuery(this).css("visibility") != "collapsed") {
|
||||
cipFields.setUniqueId(jQuery(this));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -956,19 +956,19 @@ cipFields.getUsernameField = function(passwordId, checkDisabled) {
|
|||
|
||||
// search all inputs on this one form
|
||||
if(form) {
|
||||
cIPJQ(cipFields.inputQueryPattern, form).each(function() {
|
||||
cipFields.setUniqueId(cIPJQ(this));
|
||||
if(cIPJQ(this).attr("data-cip-id") == passwordId) {
|
||||
jQuery(cipFields.inputQueryPattern, form).each(function() {
|
||||
cipFields.setUniqueId(jQuery(this));
|
||||
if(jQuery(this).attr("data-cip-id") == passwordId) {
|
||||
// break
|
||||
return false;
|
||||
}
|
||||
|
||||
if(cIPJQ(this).attr("type") && cIPJQ(this).attr("type").toLowerCase() == "password") {
|
||||
if(jQuery(this).attr("type") && jQuery(this).attr("type").toLowerCase() == "password") {
|
||||
// continue
|
||||
return true;
|
||||
}
|
||||
|
||||
usernameField = cIPJQ(this);
|
||||
usernameField = jQuery(this);
|
||||
});
|
||||
}
|
||||
// search all inputs on page
|
||||
|
|
@ -1018,7 +1018,7 @@ cipFields.getPasswordField = function(usernameId, checkDisabled) {
|
|||
|
||||
// search all inputs on this one form
|
||||
if(form) {
|
||||
passwordField = cIPJQ("input[type='password']:first", form);
|
||||
passwordField = jQuery("input[type='password']:first", form);
|
||||
if(passwordField.length < 1) {
|
||||
passwordField = null;
|
||||
}
|
||||
|
|
@ -1038,7 +1038,7 @@ cipFields.getPasswordField = function(usernameId, checkDisabled) {
|
|||
if(inputs[i].attr("data-cip-id") == usernameId) {
|
||||
active = true;
|
||||
}
|
||||
if(active && cIPJQ(inputs[i]).attr("type") && cIPJQ(inputs[i]).attr("type").toLowerCase() == "password") {
|
||||
if(active && jQuery(inputs[i]).attr("type") && jQuery(inputs[i]).attr("type").toLowerCase() == "password") {
|
||||
passwordField = inputs[i];
|
||||
break;
|
||||
}
|
||||
|
|
@ -1068,7 +1068,7 @@ cipFields.prepareCombinations = function(combinations) {
|
|||
if(pwField && !pwField.data("cipFields-onChange")) {
|
||||
pwField.data("cipFields-onChange", true);
|
||||
pwField.change(function() {
|
||||
cIPJQ(this).data("unchanged", false);
|
||||
jQuery(this).data("unchanged", false);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -1129,7 +1129,7 @@ cip.submitUrl = null;
|
|||
// received credentials from KeePassXC
|
||||
cip.credentials = [];
|
||||
|
||||
cIPJQ(function() {
|
||||
jQuery(function() {
|
||||
cip.init();
|
||||
});
|
||||
|
||||
|
|
@ -1350,8 +1350,8 @@ cip.fillInFromActiveElement = function(suppressWarnings) {
|
|||
return;
|
||||
}
|
||||
|
||||
cipFields.setUniqueId(cIPJQ(el));
|
||||
var fieldId = cipFields.prepareId(cIPJQ(el).attr("data-cip-id"));
|
||||
cipFields.setUniqueId(jQuery(el));
|
||||
var fieldId = cipFields.prepareId(jQuery(el).attr("data-cip-id"));
|
||||
var combination = null;
|
||||
if(el.type && el.type.toLowerCase() == "password") {
|
||||
combination = cipFields.getCombination("password", fieldId);
|
||||
|
|
@ -1373,8 +1373,8 @@ cip.fillInFromActiveElementPassOnly = function(suppressWarnings) {
|
|||
return;
|
||||
}
|
||||
|
||||
cipFields.setUniqueId(cIPJQ(el));
|
||||
var fieldId = cipFields.prepareId(cIPJQ(el).attr("data-cip-id"));
|
||||
cipFields.setUniqueId(jQuery(el));
|
||||
var fieldId = cipFields.prepareId(jQuery(el).attr("data-cip-id"));
|
||||
var combination = null;
|
||||
if(el.type && el.type.toLowerCase() == "password") {
|
||||
combination = cipFields.getCombination("password", fieldId);
|
||||
|
|
@ -1400,9 +1400,9 @@ cip.fillInFromActiveElementPassOnly = function(suppressWarnings) {
|
|||
cip.setValue = function(field, value) {
|
||||
if(field.is("select")) {
|
||||
value = value.toLowerCase().trim();
|
||||
cIPJQ("option", field).each(function() {
|
||||
if(cIPJQ(this).text().toLowerCase().trim() == value) {
|
||||
cip.setValueWithChange(field, cIPJQ(this).val());
|
||||
jQuery("option", field).each(function() {
|
||||
if(jQuery(this).text().toLowerCase().trim() == value) {
|
||||
cip.setValueWithChange(field, jQuery(this).val());
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
|
@ -1605,8 +1605,8 @@ cip.contextMenuRememberCredentials = function() {
|
|||
return;
|
||||
}
|
||||
|
||||
cipFields.setUniqueId(cIPJQ(el));
|
||||
var fieldId = cipFields.prepareId(cIPJQ(el).attr("data-cip-id"));
|
||||
cipFields.setUniqueId(jQuery(el));
|
||||
var fieldId = cipFields.prepareId(jQuery(el).attr("data-cip-id"));
|
||||
var combination = null;
|
||||
if(el.type && el.type.toLowerCase() == "password") {
|
||||
combination = cipFields.getCombination("password", fieldId);
|
||||
|
|
@ -1672,7 +1672,7 @@ cip.rememberCredentials = function(usernameValue, passwordValue) {
|
|||
});
|
||||
}
|
||||
|
||||
var url = cIPJQ(this)[0].action;
|
||||
var url = jQuery(this)[0].action;
|
||||
if(!url) {
|
||||
url = document.location.href;
|
||||
if(url.indexOf("?") > 0) {
|
||||
|
|
|
|||
17
chromeKeePassXC/jquery-1.11.1.min.js
vendored
17
chromeKeePassXC/jquery-1.11.1.min.js
vendored
File diff suppressed because one or more lines are too long
4
chromeKeePassXC/jquery-3.2.0.min.js
vendored
Normal file
4
chromeKeePassXC/jquery-3.2.0.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
chromeKeePassXC/jquery-ui-1.10.2.custom.min.css
vendored
11
chromeKeePassXC/jquery-ui-1.10.2.custom.min.css
vendored
File diff suppressed because one or more lines are too long
11
chromeKeePassXC/jquery-ui-1.10.2.custom.min.js
vendored
11
chromeKeePassXC/jquery-ui-1.10.2.custom.min.js
vendored
File diff suppressed because one or more lines are too long
7
chromeKeePassXC/jquery-ui.min.css
vendored
Normal file
7
chromeKeePassXC/jquery-ui.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
13
chromeKeePassXC/jquery-ui.min.js
vendored
Normal file
13
chromeKeePassXC/jquery-ui.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -43,14 +43,13 @@
|
|||
],
|
||||
"js":
|
||||
[
|
||||
"jquery-1.11.1.min.js",
|
||||
"jquery-ui-1.10.2.custom.min.js",
|
||||
"jquery-3.2.0.min.js",
|
||||
"jquery-ui.min.js",
|
||||
"chromekeepassxc.js"
|
||||
],
|
||||
"css":
|
||||
[
|
||||
"jquery-ui-1.10.2.custom.min.css",
|
||||
"bootstrap-btn.css",
|
||||
"jquery-ui.min.css",
|
||||
"chromekeepassxc.css"
|
||||
],
|
||||
"run_at": "document_idle",
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
13
chromeKeePassXC/options/bootstrap.min.css
vendored
13
chromeKeePassXC/options/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
11
chromeKeePassXC/options/bootstrap.min.js
vendored
11
chromeKeePassXC/options/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
143
chromeKeePassXC/options/options.css
Normal file
143
chromeKeePassXC/options/options.css
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
body {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
|
||||
/* Custom container */
|
||||
.container {
|
||||
margin: 0 auto;
|
||||
max-width: 1000px;
|
||||
}
|
||||
.container > hr {
|
||||
margin: 30px 0;
|
||||
}
|
||||
|
||||
/* Custom navbar */
|
||||
.navbar-default {
|
||||
background-color: #3a8233;
|
||||
border-color: #01520e;
|
||||
display: inline-block;
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
.navbar-default .navbar-brand {
|
||||
color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-brand:hover,
|
||||
.navbar-default .navbar-brand:focus {
|
||||
color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-text {
|
||||
color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-nav > li > a {
|
||||
color: #ffffff;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
.navbar-default .navbar-nav > li > a:hover,
|
||||
.navbar-default .navbar-nav > li > a:focus {
|
||||
color: #cccccc;
|
||||
}
|
||||
.navbar-default .navbar-nav > .active > a,
|
||||
.navbar-default .navbar-nav > .active > a:hover,
|
||||
.navbar-default .navbar-nav > .active > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: #01520e;
|
||||
}
|
||||
.navbar-default .navbar-nav > .open > a,
|
||||
.navbar-default .navbar-nav > .open > a:hover,
|
||||
.navbar-default .navbar-nav > .open > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: #01520e;
|
||||
}
|
||||
.navbar-default .navbar-toggle {
|
||||
border-color: #01520e;
|
||||
}
|
||||
.navbar-default .navbar-toggle:hover,
|
||||
.navbar-default .navbar-toggle:focus {
|
||||
background-color: #01520e;
|
||||
}
|
||||
.navbar-default .navbar-toggle .icon-bar {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-collapse,
|
||||
.navbar-default .navbar-form {
|
||||
border-color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-link {
|
||||
color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-link:hover {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
|
||||
color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
|
||||
color: #ffffff;
|
||||
}
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .active > a,
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: #01520e;
|
||||
}
|
||||
}
|
||||
|
||||
.tab {
|
||||
display: none;
|
||||
}
|
||||
|
||||
h2+hr {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#tab-connected-databases .color.dropdown .dropdown-menu {
|
||||
width: 180px;
|
||||
padding: 7px 10px;
|
||||
line-height: 175%;
|
||||
}
|
||||
|
||||
#tab-connected-databases .color.dropdown .dropdown-menu a {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
#tab-connected-databases .color.dropdown a.dropdown-toggle img {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
tr.clone {
|
||||
display: none;
|
||||
}
|
||||
|
||||
td.last-used,
|
||||
td.created {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.radio.inline,
|
||||
.checkbox.inline {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.radio.inline + .radio.inline,
|
||||
.checkbox.inline + .checkbox.inline {
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.checkUpdateKeePassXC {
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
#dangerousSettings {
|
||||
display: none;
|
||||
}
|
||||
|
|
@ -3,121 +3,24 @@
|
|||
<head>
|
||||
<title>Settings | chromeKeePassXC</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="bootstrap.min.css" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="../bootstrap-btn.css" />
|
||||
<link href="bootstrap-responsive.min.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="../jquery-1.11.1.min.js"></script>
|
||||
<!--<script type="text/javascript" src="../jquery-3.2.0.min.js"></script>-->
|
||||
<link rel="stylesheet" href="bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="options.css" />
|
||||
<script type="text/javascript" src="../jquery-3.2.0.min.js"></script>
|
||||
<script type="text/javascript" src="bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="options.js"></script>
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
|
||||
/* Custom container */
|
||||
.container {
|
||||
margin: 0 auto;
|
||||
max-width: 1000px;
|
||||
}
|
||||
.container > hr {
|
||||
margin: 30px 0;
|
||||
}
|
||||
|
||||
/* Customize the navbar links to be fill the entire space of the .navbar */
|
||||
.navbar .navbar-inner {
|
||||
padding: 0;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.navbar .nav {
|
||||
margin: 0;
|
||||
display: table;
|
||||
width: 100%;
|
||||
}
|
||||
.navbar .nav li {
|
||||
display: table-cell;
|
||||
width: 1%;
|
||||
float: none;
|
||||
}
|
||||
.navbar .nav li a {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border-left: 1px solid rgba(255,255,255,.75);
|
||||
border-right: 1px solid rgba(0,0,0,.1);
|
||||
}
|
||||
.navbar .nav li:first-child a {
|
||||
border-left: 0;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
.navbar .nav li:last-child a {
|
||||
border-right: 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.tab {
|
||||
display: none;
|
||||
}
|
||||
h2+hr {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#tab-connected-databases .color.dropdown .dropdown-menu {
|
||||
width: 180px;
|
||||
padding: 7px 10px;
|
||||
line-height: 175%;
|
||||
}
|
||||
#tab-connected-databases .color.dropdown .dropdown-menu a {
|
||||
margin-right: 3px;
|
||||
}
|
||||
#tab-connected-databases .color.dropdown a.dropdown-toggle img {
|
||||
margin-right: 5px;
|
||||
}
|
||||
tr.clone {
|
||||
display: none;
|
||||
}
|
||||
td.last-used,
|
||||
td.created {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.radio.inline,
|
||||
.checkbox.inline {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.radio.inline + .radio.inline,
|
||||
.checkbox.inline + .checkbox.inline {
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.checkUpdateKeePassXC {
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
#dangerousSettings {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="masthead">
|
||||
<h3 class="muted"><img src="/icons/keepassxc_48x48.png" alt="logo" /> chromeKeePassXC</h3>
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
<ul class="nav">
|
||||
<li class="active"><a href="#general-settings">General</a></li>
|
||||
<li><a href="#connected-databases">Connected Databases</a></li>
|
||||
<li><a href="#specified-fields">Specified credential fields</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.navbar -->
|
||||
</div>
|
||||
<h3 class="muted"><img src="/icons/keepassxc_48x48.png" alt="logo" /> chromeKeePassXC</h3>
|
||||
|
||||
<nav class="navbar navbar-default">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#general-settings">General</a></li>
|
||||
<li><a href="#connected-databases">Connected Databases</a></li>
|
||||
<li><a href="#specified-fields">Specified credential fields</a></li>
|
||||
<li><a href="#about">About</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<!-- General Settings -->
|
||||
<div class="tab" id="tab-general-settings">
|
||||
|
|
@ -129,86 +32,100 @@
|
|||
If you only want to insert the password, just press Ctrl + Shift + P.
|
||||
</p>
|
||||
<p>
|
||||
<label for="blinkTimeout">Blink Time:</label>
|
||||
<div class="control-group">
|
||||
<div class="input-append">
|
||||
<input type="number" id="blinkTimeout" placeholder="7500" value="7500" />
|
||||
<button class="btn" id="blinkTimeoutButton" type="button">Save</button>
|
||||
<div class="form-group">
|
||||
<label for="blinkTimeout">Blink Time:</label>
|
||||
<div class="control-group">
|
||||
<div class="input-append">
|
||||
<input type="number" id="blinkTimeout" placeholder="7500" value="7500" />
|
||||
<button class="btn btn-sm" id="blinkTimeoutButton" type="button">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
<span class="help-inline">
|
||||
What is the maximum time (ms) the icon should blink after detecting new credentials
|
||||
<br />
|
||||
Default: 7500
|
||||
</span>
|
||||
</div>
|
||||
<span class="help-inline">
|
||||
What is the maximum time (ms) the icon should blink after detecting new credentials
|
||||
<br />
|
||||
Default: 7500
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<div class="form-group">
|
||||
<label for="blinkMinTimeout">Redirect Offset:</label>
|
||||
<div class="control-group">
|
||||
<div class="input-append">
|
||||
<input type="number" id="blinkMinTimeout" placeholder="2000" value="2000" />
|
||||
<button class="btn btn-sm" id="blinkMinTimeoutButton" type="button">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
<span class="help-inline">
|
||||
What is the minimum time (ms) the icon should blink before deactivating due to page redirects.
|
||||
<br />
|
||||
-1 to only use <i>Blink Time</i> ignoring Redirect Allowance (old behavior)
|
||||
<br />
|
||||
Default: -1, Recommended: 2000
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
||||
<p>
|
||||
<label for="blinkMinTimeout">Redirect Offset:</label>
|
||||
<div class="control-group">
|
||||
<div class="input-append">
|
||||
<input type="number" id="blinkMinTimeout" placeholder="2000" value="2000" />
|
||||
<button class="btn" id="blinkMinTimeoutButton" type="button">Save</button>
|
||||
</div>
|
||||
<span class="help-inline">
|
||||
What is the minimum time (ms) the icon should blink before deactivating due to page redirects.
|
||||
<br />
|
||||
-1 to only use <i>Blink Time</i> ignoring Redirect Allowance (old behavior)
|
||||
<br />
|
||||
Default: -1, Recommended: 2000
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
||||
<p>
|
||||
<label for="allowedRedirect">Redirect Allowance:</label>
|
||||
<div class="control-group">
|
||||
<div class="input-append">
|
||||
<input type="number" id="allowedRedirect" placeholder="1" value="1" />
|
||||
<button class="btn" id="allowedRedirectButton" type="button">Save</button>
|
||||
</div>
|
||||
<span class="help-inline">
|
||||
How many pages should the tab cycle through after the redirect offset before deactivating the icon
|
||||
<br />
|
||||
Default: 1
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<div class="form-group">
|
||||
<label for="allowedRedirect">Redirect Allowance:</label>
|
||||
<div class="control-group">
|
||||
<div class="input-append">
|
||||
<input type="number" id="allowedRedirect" placeholder="1" value="1" />
|
||||
<button class="btn btn-sm" id="allowedRedirectButton" type="button">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
<span class="help-inline">
|
||||
How many pages should the tab cycle through after the redirect offset before deactivating the icon
|
||||
<br />
|
||||
Default: 1
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="usePasswordGenerator" value="1" /> Activate password generator.
|
||||
</label>
|
||||
<span class="help-block">For all password-fields there will be an icon added to generate a new password.<br />
|
||||
It is generated by KeePassXC with the profile for automatically generated passwords for new entries.</span>
|
||||
<div class="checkbox">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="usePasswordGenerator" value="1" /> Activate password generator.
|
||||
</label>
|
||||
<span class="help-block">For all password-fields there will be an icon added to generate a new password.<br />
|
||||
It is generated by KeePassXC with the profile for automatically generated passwords for new entries.</span>
|
||||
</div>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="autoRetrieveCredentials" value="1" /> Automatically retrieve credentials.
|
||||
</label>
|
||||
<span class="help-block">chromeKeePassXC will immediately retrieve the credentials when the tab is activated.</span>
|
||||
<div class="checkbox">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="autoRetrieveCredentials" value="1" /> Automatically retrieve credentials.
|
||||
</label>
|
||||
<span class="help-block">chromeKeePassXC will immediately retrieve the credentials when the tab is activated.</span>
|
||||
</div>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="autoFillSingleEntry" value="1" /> Automatically fill-in single credentials entry.
|
||||
</label>
|
||||
<span class="help-block">If chromeKeePassXC does only receive a single entry from KeePassXC it automatically fills this credentials into the found credential fields.</span>
|
||||
<div class="checkbox">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="autoFillSingleEntry" value="1" /> Automatically fill-in single credentials entry.
|
||||
</label>
|
||||
<span class="help-block">If chromeKeePassXC does only receive a single entry from KeePassXC it automatically fills this credentials into the found credential fields.</span>
|
||||
</div>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="autoCompleteUsernames" value="1" /> Activate autocomplete for username fields.
|
||||
</label>
|
||||
<span class="help-block">For all username fields on a page a dropdown list appears which contains all available credentials.</span>
|
||||
<div class="checkbox">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="autoCompleteUsernames" value="1" /> Activate autocomplete for username fields.
|
||||
</label>
|
||||
<span class="help-block">For all username fields on a page a dropdown list appears which contains all available credentials.</span>
|
||||
</div>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
Check for updates of KeePassXC:
|
||||
<br />
|
||||
<label class="radio inline"><input type="radio" name="checkUpdateKeePassXC" value="3" /> every 3 days</label>
|
||||
<label class="radio inline"><input type="radio" name="checkUpdateKeePassXC" value="7" /> every week</label>
|
||||
<label class="radio inline"><input type="radio" name="checkUpdateKeePassXC" value="30" /> every month</label>
|
||||
<label class="radio inline"><input type="radio" name="checkUpdateKeePassXC" value="0" /> never</label>
|
||||
<label class="radio-inline"><input type="radio" name="checkUpdateKeePassXC" value="3" /> every 3 days</label>
|
||||
<label class="radio-inline"><input type="radio" name="checkUpdateKeePassXC" value="7" /> every week</label>
|
||||
<label class="radio-inline"><input type="radio" name="checkUpdateKeePassXC" value="30" /> every month</label>
|
||||
<label class="radio-inline"><input type="radio" name="checkUpdateKeePassXC" value="0" /> never</label>
|
||||
</p>
|
||||
<div class="help-block kphVersion">
|
||||
chromeKeePassXC needs KeePassXC to retrieve credentials.
|
||||
|
|
@ -216,25 +133,26 @@
|
|||
You can download the latest stable version from here: <a target="_blank" href="https://keepassxc.org/">https://keepassxc.org/</a>
|
||||
<br />
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="span3">Your running version of KeePassXC:</div>
|
||||
<div class="span6"><em class="yourVersion"></em></div>
|
||||
<div>
|
||||
Your running version of KeePassXC: <em class="yourVersion"></em>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span3">Latest available version of KeePassXC:</div>
|
||||
<div class="span6"><em class="latestVersion"></em><button class="btn btn-mini checkUpdateKeePassXC">Check for updates</button></div>
|
||||
<div>
|
||||
Latest available version of KeePassXC: <em class="latestVersion"></em>
|
||||
<button class="btn btn-sm checkUpdateKeePassXC">Check for updates</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<p>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="autoFillAndSend" value="1" /> Auto fill HTTP Auth dialogs and send them.
|
||||
</label>
|
||||
<span class="help-block">
|
||||
If credentials are found for a page and the login-type is an HTTP Auth request, chromeKeePassXC tries to login with the first given credentials.
|
||||
<br />
|
||||
An HTTP Auth dialog looks like this:
|
||||
</span>
|
||||
<div class="checkbox">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="autoFillAndSend" value="1" /> Auto fill HTTP Auth dialogs and send them.
|
||||
</label>
|
||||
<span class="help-block">
|
||||
If credentials are found for a page and the login-type is an HTTP Auth request, chromeKeePassXC tries to login with the first given credentials.
|
||||
<br />
|
||||
An HTTP Auth dialog looks like this:
|
||||
</span>
|
||||
</div>
|
||||
<img src="/options/http-auth-dialog.png" alt="http-auth-dialog" />
|
||||
</p>
|
||||
<hr />
|
||||
|
|
@ -252,11 +170,11 @@
|
|||
<table class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span5">Identifier</th>
|
||||
<th class="span2">Icon</th>
|
||||
<th class="span2">Last used</th>
|
||||
<th class="span2">Created</th>
|
||||
<th class="span1">Delete</th>
|
||||
<th>Identifier</th>
|
||||
<th>Icon</th>
|
||||
<th>Last used</th>
|
||||
<th>Created</th>
|
||||
<th>Delete</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
@ -273,20 +191,25 @@
|
|||
</tbody>
|
||||
</table>
|
||||
<div style="text-align: right">
|
||||
<button id="connect-button" class="b2c-btn b2c-btn-primary">Connect</button>
|
||||
</div>
|
||||
<div id="dialogDeleteConnectedDatabase" class="modal hide" tabindex="-1" role="dialog">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 id="myModalLabel">Remove identifier from Chrome?</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Do you really want to remove the identifier <span class="bold"></span> from Chrome?</p>
|
||||
<p class="help-block">You can reconnect your database at any time.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
|
||||
<button class="btn yes btn-primary">Yes, remove now</button>
|
||||
<button id="connect-button" class="btn btn-primary">Connect</button>
|
||||
</div>
|
||||
|
||||
<div id="dialogDeleteConnectedDatabase" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 class="modal-title" id="myModalLabel">Remove identifier from Chrome?</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Do you really want to remove the identifier <span class="bold"></span> from Chrome?</p>
|
||||
<p class="help-block">You can reconnect your database at any time.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cancel</button>
|
||||
<button class="btn yes btn-primary">Yes, remove now</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -305,8 +228,8 @@
|
|||
<table class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span10">Page URL</th>
|
||||
<th class="span2">Delete</th>
|
||||
<th>Page URL</th>
|
||||
<th>Delete</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
@ -319,18 +242,22 @@
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="dialogDeleteSpecifiedCredentialFields" class="modal hide" tabindex="-1" role="dialog">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 id="myModalLabel">Remove specified credential fields?</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Do you really want to remove the specified credential fields on the page <strong></strong>?</p>
|
||||
<p class="help-block">chromeKeePassXC will automatically detect the credential fields the next time you visit this page.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
|
||||
<button class="btn yes btn-primary">Yes, remove now</button>
|
||||
<div id="dialogDeleteSpecifiedCredentialFields" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 id="myModalLabel">Remove specified credential fields?</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Do you really want to remove the specified credential fields on the page <strong></strong>?</p>
|
||||
<p class="help-block">chromeKeePassXC will automatically detect the credential fields the next time you visit this page.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
|
||||
<button class="btn yes btn-primary">Yes, remove now</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -350,14 +277,12 @@
|
|||
<a target="_blank" href="https://github.com/varjolintu/chromeKeePassXC">Visit project's page in GitHub</a>.
|
||||
</p>
|
||||
<hr />
|
||||
<div class="row">
|
||||
<div class="span2">chromeKeePassXC Version:</div>
|
||||
<div class="span6"><em class="versionCIP"></em></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span2">KeePassXC Version:</div>
|
||||
<div class="span6"><em class="versionKPH"></em></div>
|
||||
</div>
|
||||
<p>
|
||||
chromeKeePassXC Version: <em class="versionCIP"></em>
|
||||
</p>
|
||||
<p>
|
||||
KeePassXC Version: <em class="versionKPH"></em>
|
||||
</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="footer">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
if(cIPJQ) {
|
||||
var $ = cIPJQ.noConflict(true);
|
||||
if (jQuery) {
|
||||
var $ = jQuery.noConflict(true);
|
||||
}
|
||||
|
||||
$(function() {
|
||||
|
|
@ -79,46 +79,7 @@ options.initGeneralSettings = function() {
|
|||
$("#blinkMinTimeout").val(options.settings["blinkMinTimeout"]);
|
||||
$("#allowedRedirect").val(options.settings["allowedRedirect"]);
|
||||
|
||||
$("#portButton").click(function() {
|
||||
var port = $.trim($("#port").val());
|
||||
var portNumber = parseInt(port);
|
||||
if(isNaN(port) || portNumber < 1025 || portNumber > 99999) {
|
||||
$("#port").closest(".control-group").addClass("error");
|
||||
alert("The port number has to be in range 1025 - 99999.\nNothing saved!");
|
||||
return;
|
||||
}
|
||||
|
||||
options.settings["port"] = portNumber.toString();
|
||||
$("#port").closest(".control-group").removeClass("error").addClass("success");
|
||||
setTimeout(function() {$("#port").closest(".control-group").removeClass("success")}, 2500);
|
||||
|
||||
localStorage.settings = JSON.stringify(options.settings);
|
||||
|
||||
chrome.extension.sendMessage({
|
||||
action: 'load_settings'
|
||||
});
|
||||
});
|
||||
|
||||
$("#hostnameButton").click(function() {
|
||||
var hostname = $("#hostname").val();
|
||||
if($.trim(hostname) == "") {
|
||||
$("#hostname").closest(".control-group").addClass("error");
|
||||
alert("Hostname cannot be empty.\nNothing saved!");
|
||||
return;
|
||||
}
|
||||
|
||||
options.settings["hostname"] = hostname;
|
||||
$("#hostname").closest(".control-group").removeClass("error").addClass("success");
|
||||
setTimeout(function() {$("#hostname").closest(".control-group").removeClass("success")}, 2500);
|
||||
|
||||
localStorage.settings = JSON.stringify(options.settings);
|
||||
|
||||
chrome.extension.sendMessage({
|
||||
action: 'load_settings'
|
||||
});
|
||||
});
|
||||
|
||||
$("#blinkTimeoutButton").click(function(){
|
||||
$("#blinkTimeoutButton").click(function(){
|
||||
var blinkTimeout = $.trim($("#blinkTimeout").val());
|
||||
var blinkTimeoutval = parseInt(blinkTimeout);
|
||||
|
||||
|
|
@ -249,6 +210,7 @@ options.initConnectedDatabases = function() {
|
|||
else {
|
||||
$("#tab-connected-databases table tbody:first tr.empty:first").show();
|
||||
}
|
||||
|
||||
$("#connect-button").click(function() {
|
||||
chrome.extension.sendMessage({
|
||||
action: "associate"
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@ body {
|
|||
font-family: sans-serif;
|
||||
min-width:357px;
|
||||
overflow-x:hidden;
|
||||
background: #eee;
|
||||
background-color: #eee;
|
||||
font-size: 15px;
|
||||
padding: 8px;
|
||||
}
|
||||
.credentials ul {
|
||||
margin-left: 0;
|
||||
|
|
|
|||
|
|
@ -2,16 +2,16 @@
|
|||
<head>
|
||||
<title>KeePassXC - Popup</title>
|
||||
<link rel="stylesheet" href="popup.css" />
|
||||
<link rel="stylesheet" href="../bootstrap-btn.css" />
|
||||
<script type="text/javascript" src="../jquery-1.11.1.min.js"></script>
|
||||
<!--<script type="text/javascript" src="../jquery-3.2.0.min.js">-->
|
||||
<script type="text/javascript" src="popup_functions.js"></script>
|
||||
<script type="text/javascript" src="popup.js"></script>
|
||||
<link rel="stylesheet" href="../options/bootstrap.min.css" />
|
||||
<script type="text/javascript" src="../jquery-3.2.0.min.js"></script>
|
||||
<script type="text/javascript" src="../options/bootstrap.min.js" /></script>
|
||||
<script type="text/javascript" src="popup_functions.js" /></script>
|
||||
<script type="text/javascript" src="popup.js" /></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="settings" class="settings">
|
||||
<button id="btn-options" class="b2c-btn b2c-btn-small b2c-btn-warning">Settings</button>
|
||||
<button id="btn-choose-credential-fields" class="b2c-btn b2c-btn-small">Choose own credential fields for this page</button>
|
||||
<button id="btn-options" class="btn btn-sm btn-success">Settings</button>
|
||||
<button id="btn-choose-credential-fields" class="btn btn-sm">Choose own credential fields for this page</button>
|
||||
|
||||
<div id="update-available">
|
||||
You use an old version of KeePassXC.
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
Press the connect button to register and pair with KeePassXC.
|
||||
</p>
|
||||
<div style="text-align: right">
|
||||
<button id="connect-button" class="b2c-btn b2c-btn-primary">Connect</button>
|
||||
<button id="connect-button" class="btn btn-primary">Connect</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
Press the reconnect button to establish a new connection.
|
||||
</p>
|
||||
<div style="text-align: right">
|
||||
<button id="reconnect-button" class="b2c-btn b2c-btn-primary">Reconnect</button>
|
||||
<button id="reconnect-button" class="btn btn-primary">Reconnect</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
connected to KeePassXC.
|
||||
</p>
|
||||
<div style="text-align: right">
|
||||
<button id="redetect-fields-button" class="b2c-btn">Redetect credential fields</button>
|
||||
<button id="redetect-fields-button" class="btn">Redetect credential fields</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
<code id="error-message"></code>
|
||||
</p>
|
||||
<div style="text-align: right">
|
||||
<button id="reload-status-button" class="b2c-btn">Reload</button>
|
||||
<button id="reload-status-button" class="btn">Reload</button>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var $ = cIPJQ.noConflict(true);
|
||||
var $ = jQuery.noConflict(true);
|
||||
var _settings = typeof(localStorage.settings)=='undefined' ? {} : JSON.parse(localStorage.settings);
|
||||
//var global = chrome.extension.getBackgroundPage();
|
||||
|
||||
|
|
|
|||
|
|
@ -2,15 +2,16 @@
|
|||
<head>
|
||||
<title>KeePassXC - Popup</title>
|
||||
<link rel="stylesheet" href="popup.css" />
|
||||
<link rel="stylesheet" href="../bootstrap-btn.css" />
|
||||
<script type="text/javascript" src="../jquery-1.11.1.min.js"></script>
|
||||
<link rel="stylesheet" href="../options/bootstrap.min.css" />
|
||||
<script type="text/javascript" src="../jquery-3.2.0.min.js"></script>
|
||||
<script type="text/javascript" src="../options/bootstrap.min.js" /></script>
|
||||
<script type="text/javascript" src="popup_functions.js"></script>
|
||||
<script type="text/javascript" src="popup_httpauth.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="settings" class="settings">
|
||||
<button id="btn-options" class="b2c-btn b2c-btn-small b2c-btn-warning">Settings</button>
|
||||
<button id="btn-choose-credential-fields" class="b2c-btn b2c-btn-small">Choose own credential fields for this page</button>
|
||||
<button id="btn-options" class="btn btn-sm btn-warning">Settings</button>
|
||||
<button id="btn-choose-credential-fields" class="btn btn-sm">Choose own credential fields for this page</button>
|
||||
|
||||
<div id="update-available">
|
||||
You use an old version of KeePassXC.
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ $(function() {
|
|||
for (var i = 0; i < data.logins.length; i++) {
|
||||
var li = document.createElement("li");
|
||||
var a = document.createElement("a");
|
||||
a.textContent = data.logins[i].Login + " (" + data.logins[i].Name + ")";
|
||||
a.textContent = data.logins[i].login + " (" + data.logins[i].name + ")";
|
||||
li.appendChild(a);
|
||||
$(a).data("url", data.url.replace(/:\/\//g, "://" + data.logins[i].Login + ":" + data.logins[i].Password + "@"));
|
||||
$(a).data("url", data.url.replace(/:\/\//g, "://" + data.logins[i].login + ":" + data.logins[i].password + "@"));
|
||||
$(a).click(function() {
|
||||
chrome.tabs.update(tab.id, {"url": $(this).data("url")});
|
||||
close();
|
||||
|
|
|
|||
|
|
@ -2,15 +2,16 @@
|
|||
<head>
|
||||
<title>KeePassXC - Popup</title>
|
||||
<link rel="stylesheet" href="popup.css" />
|
||||
<link rel="stylesheet" href="../bootstrap-btn.css" />
|
||||
<script type="text/javascript" src="../jquery-1.11.1.min.js"></script>
|
||||
<link rel="stylesheet" href="../options/bootstrap.min.css" />
|
||||
<script type="text/javascript" src="../jquery-3.2.0.min.js"></script>
|
||||
<script type="text/javascript" src="../options/bootstrap.min.js" /></script>
|
||||
<script type="text/javascript" src="popup_functions.js"></script>
|
||||
<script type="text/javascript" src="popup_login.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="settings" class="settings">
|
||||
<button id="btn-options" class="b2c-btn b2c-btn-small b2c-btn-warning">Settings</button>
|
||||
<button id="btn-choose-credential-fields" class="b2c-btn b2c-btn-small">Choose own credential fields for this page</button>
|
||||
<button id="btn-options" class="btn btn-sm btn-warning">Settings</button>
|
||||
<button id="btn-choose-credential-fields" class="btn btn-sm">Choose own credential fields for this page</button>
|
||||
|
||||
<div id="update-available">
|
||||
You use an old version of KeePassXC.
|
||||
|
|
|
|||
|
|
@ -2,14 +2,15 @@
|
|||
<head>
|
||||
<title>KeePassXC - Popup</title>
|
||||
<link rel="stylesheet" href="popup.css" />
|
||||
<link rel="stylesheet" href="../bootstrap-btn.css" />
|
||||
<script type="text/javascript" src="../jquery-1.11.1.min.js"></script>
|
||||
<link rel="stylesheet" href="../options/bootstrap.min.css" />
|
||||
<script type="text/javascript" src="../jquery-3.2.0.min.js"></script>
|
||||
<script type="text/javascript" src="../options/bootstrap.min.js" /></script>
|
||||
<script type="text/javascript" src="popup_functions.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="settings" class="settings">
|
||||
<button id="btn-options" class="b2c-btn b2c-btn-small b2c-btn-warning">Settings</button>
|
||||
<button id="btn-choose-credential-fields" class="b2c-btn b2c-btn-small">Choose own credential fields for this page</button>
|
||||
<button id="btn-options" class="btn btn-sm btn-warning">Settings</button>
|
||||
<button id="btn-choose-credential-fields" class="btn btn-sm">Choose own credential fields for this page</button>
|
||||
|
||||
<div id="update-available">
|
||||
You use an old version of KeePassXC.
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@
|
|||
<head>
|
||||
<title>KeePassXC - Popup</title>
|
||||
<link rel="stylesheet" href="popup.css" />
|
||||
<link rel="stylesheet" href="../bootstrap-btn.css" />
|
||||
<script type="text/javascript" src="../jquery-1.11.1.min.js"></script>
|
||||
<link rel="stylesheet" href="../options/bootstrap.min.css" />
|
||||
<script type="text/javascript" src="../jquery-3.2.0.min.js"></script>
|
||||
<script type="text/javascript" src="../options/bootstrap.min.js" /></script>
|
||||
<script type="text/javascript" src="popup_functions.js"></script>
|
||||
<script type="text/javascript" src="popup_remember.js"></script>
|
||||
<style type="text/css">
|
||||
|
|
@ -25,9 +26,9 @@
|
|||
<span class="small information-username">Username: <span class="normal"></span></span>
|
||||
</p>
|
||||
<p>
|
||||
<button id="btn-new" class="b2c-btn b2c-btn-success">New</button>
|
||||
<button id="btn-update" class="b2c-btn b2c-btn-warning">Update</button>
|
||||
<button id="btn-dismiss" class="b2c-btn b2c-btn-danger">Dismiss</button>
|
||||
<button id="btn-new" class="btn btn-success">New</button>
|
||||
<button id="btn-update" class="btn btn-warning">Update</button>
|
||||
<button id="btn-dismiss" class="btn btn-danger">Dismiss</button>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ function _initialize(tab) {
|
|||
|
||||
// no existing credentials to update --> disable update-button
|
||||
if(_tab.credentials.list.length == 0) {
|
||||
$("#btn-update").attr("disabled", true).removeClass("b2c-btn-warning");
|
||||
$("#btn-update").attr("disabled", true).removeClass("btn-warning");
|
||||
}
|
||||
|
||||
var url = _tab.credentials.url;
|
||||
|
|
@ -33,7 +33,7 @@ function _initialize(tab) {
|
|||
if(_tab.credentials.list.length == 1) {
|
||||
chrome.extension.sendMessage({
|
||||
action: 'update_credentials',
|
||||
args: [_tab.credentials.list[0].Uuid, _tab.credentials.username, _tab.credentials.password, _tab.credentials.url]
|
||||
args: [_tab.credentials.list[0].uuid, _tab.credentials.username, _tab.credentials.password, _tab.credentials.url]
|
||||
}, _verifyResult);
|
||||
}
|
||||
else {
|
||||
|
|
@ -52,17 +52,17 @@ function _initialize(tab) {
|
|||
for(var i = 0; i < _tab.credentials.list.length; i++) {
|
||||
var $a = $("<a>")
|
||||
.attr("href", "#")
|
||||
.text(_tab.credentials.list[i].Login + " (" + _tab.credentials.list[i].Name + ")")
|
||||
.text(_tab.credentials.list[i].Login + " (" + _tab.credentials.list[i].name + ")")
|
||||
.data("entryId", i)
|
||||
.click(function(e) {
|
||||
e.preventDefault();
|
||||
chrome.extension.sendMessage({
|
||||
action: 'update_credentials',
|
||||
args: [_tab.credentials.list[$(this).data("entryId")].Uuid, _tab.credentials.username, _tab.credentials.password, _tab.credentials.url]
|
||||
args: [_tab.credentials.list[$(this).data("entryId")].uuid, _tab.credentials.username, _tab.credentials.password, _tab.credentials.url]
|
||||
}, _verifyResult);
|
||||
});
|
||||
|
||||
if(_tab.credentials.usernameExists && _tab.credentials.username == _tab.credentials.list[i].Login) {
|
||||
if(_tab.credentials.usernameExists && _tab.credentials.username == _tab.credentials.list[i].login) {
|
||||
$a.css("font-weight", "bold");
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue