summaryrefslogtreecommitdiff
path: root/frontend
authorMichael Krelin <hacker@klever.net>2013-11-28 20:04:10 (UTC)
committer Michael Krelin <hacker@klever.net>2013-11-28 20:04:10 (UTC)
commit11a51653179a40dff1ecf13b9b4eb5e073920c04 (patch) (side-by-side diff)
treef3dc8437724ecf8d5967ce61e6734ab89fb58704 /frontend
parent6cd9e34b5b49473923190a6a70c436908c98505e (diff)
downloadclipperz-11a51653179a40dff1ecf13b9b4eb5e073920c04.zip
clipperz-11a51653179a40dff1ecf13b9b4eb5e073920c04.tar.gz
clipperz-11a51653179a40dff1ecf13b9b4eb5e073920c04.tar.bz2
frontend: turn off autocompletion for input elements in record
otherwise the very presence of saved form values for the same host may (at least in some browsers) ruin the record if it was edited and carelessly saved.
Diffstat (limited to 'frontend') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/Components/RecordDetail/FieldValueComponent.js12
1 files changed, 6 insertions, 6 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Components/RecordDetail/FieldValueComponent.js b/frontend/beta/js/Clipperz/PM/Components/RecordDetail/FieldValueComponent.js
index f2c70aa..a8117d7 100644
--- a/frontend/beta/js/Clipperz/PM/Components/RecordDetail/FieldValueComponent.js
+++ b/frontend/beta/js/Clipperz/PM/Components/RecordDetail/FieldValueComponent.js
@@ -124,111 +124,111 @@ YAHOO.extendX(Clipperz.PM.Components.RecordDetail.FieldValueComponent, Clipperz.
Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'span', html:this.value()});
break;
case 'ADDR':
Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'a', href:this.addrUrl(), html:this.value(), target:'_blank'});
break;
}
} else {
var tableElement;
var tdElement;
var inputElement;
var passwordElementConfiguration;
if (scrambledStatus == 'SCRAMBLED') {
var scrambledInputElement;
if ((Clipperz_IEisBroken === true) && (Clipperz.PM.Proxy.defaultProxy.isReadOnly())) {
- scrambledInputElement = {tag:'input', type:'password', value:"this.value()"};
+ scrambledInputElement = {tag:'input', type:'password', value:"this.value()", autocomplete:"off"};
} else {
- scrambledInputElement = {tag:'input', type:'text', cls:'scrambledField', title:Clipperz.PM.Strings['recordDetailPasswordFieldTooltipLabel'], value:"this.value()"};
+ scrambledInputElement = {tag:'input', type:'text', cls:'scrambledField', title:Clipperz.PM.Strings['recordDetailPasswordFieldTooltipLabel'], value:"this.value()", autocomplete:"off"};
}
passwordElementConfiguration =
{tag:'table', border:'0', cellspacing:'2', cellpadding:'0', children:[
{tag:'tbody', children:[
{tag:'tr', children:[
{tag:'td', valign:'top', children:[
scrambledInputElement,
{tag:'a', cls:'scrambleLink', id:this.getId('scrambleLink'), href:'#', htmlString:Clipperz.PM.Strings['recordDetailPasswordFieldUnscrambleLabel']}
]},
{tag:'td', valign:'top', children:[
{tag:'span', cls:'scrambledFieldLabel', htmlString:Clipperz.PM.Strings['recordDetailPasswordFieldHelpLabel']}
]}
]}
]}
]};
} else {
passwordElementConfiguration =
{tag:'div', children:[
- {tag:'input', type:'text', cls:'unscrambledField', value:"this.value()"},
+ {tag:'input', type:'text', cls:'unscrambledField', value:"this.value()", autocomplete:"off"},
{tag:'a', cls:'scrambleLink', id:this.getId('scrambleLink'), href:'#', htmlString:Clipperz.PM.Strings['recordDetailPasswordFieldScrambleLabel']}
]};
}
tableElement = Clipperz.YUI.DomHelper.append(this.element().dom, passwordElementConfiguration, true);
inputElement = tableElement.getChildrenByTagName('input')[0];
inputElement.dom.value = this.value();
inputElement.wrap({tag:'div', cls:'passwordBackground'}).setStyle('background-position', "0px -" + Math.min(128, Clipperz.PM.Crypto.passwordEntropy(this.value())) + "px");
MochiKit.Signal.connect(inputElement.dom, 'onfocus', this, 'selectHiddenFieldOnFocus');
MochiKit.Signal.connect(this.getDom('scrambleLink'), 'onclick', this, 'toggleScramble');
}
},
//-------------------------------------------------------------------------
'updateEditMode': function() {
var inputElement;
var scarmbledStatus;
scrambledStatus = this.scrambledStatus() || 'SCRAMBLED';
this.element().update("");
switch(this.recordField().type()) {
case 'TXT':
case 'URL':
case 'ADDR':
- inputElement = Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'input', type:'text', value:"this.value()"}, true);
+ inputElement = Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'input', type:'text', value:"this.value()", autocomplete:"off"}, true);
inputElement.dom.value = this.value();
break;
case 'PWD':
Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'table', width:'100%', cellpadding:'0', cellspacing:'0', children:[
{tag:'tbody', children:[
{tag:'tr', children:[
{tag:'td', valign:'top', children:[
- {tag:'input', type:((scrambledStatus == 'SCRAMBLED') ? 'password' : 'text'), id:this.getId('passwordInputElement'), value:"this.value()"},
+ {tag:'input', type:((scrambledStatus == 'SCRAMBLED') ? 'password' : 'text'), id:this.getId('passwordInputElement'), value:"this.value()", autocomplete:"off"},
{tag:'a', cls:'scrambleLink', id:this.getId('scrambleLink'), href:'#', html:(scrambledStatus == 'SCRAMBLED' ? Clipperz.PM.Strings['recordDetailPasswordFieldUnscrambleLabel'] : Clipperz.PM.Strings['recordDetailPasswordFieldScrambleLabel'])}
]},
{tag:'td', valign:'top', children:[
{tag:'div', id:this.getId('passwordGenerator'), cls:'Clipperz_PasswordGenerator_button', html:'&nbsp;'}
]}
]}
]}
]})
inputElement = this.getElement('passwordInputElement');
inputElement.dom.value = this.value();
new Clipperz.PM.Components.PasswordEntropyDisplay(this.getElement('passwordInputElement'));
new Clipperz.PM.Components.PasswordGenerator(this.getElement('passwordGenerator'), this);
MochiKit.Signal.connect(this.getDom('scrambleLink'), 'onclick', this, 'toggleScramble');
break;
// case 'NOTE':
// inputElement = Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'textarea', rows:'5', html:this.value()}, true);
// break
case 'DATE':
- inputElement = Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'input', type:'text', value:"this.value()"}, true);
+ inputElement = Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'input', type:'text', value:"this.value()", autocomplete:"off"}, true);
inputElement.dom.value = this.value();
break;
}
this.setInputElement(inputElement);
},
//-------------------------------------------------------------------------
'synchronizeComponentValues': function() {
//MochiKit.Logging.logDebug(">>> FieldValueComponent.synchronizeComponentValues");
if (this.inputElement() != null) {
var value;
switch(this.recordField().type()) {
case 'TXT':