+++ /dev/null
-qx.Class.define("org.argeo.security.ria.components.PasswordCredentialImpl", {\r
- extend : qx.ui.container.Composite,\r
- implement : [org.argeo.security.ria.components.ICredentialPane],\r
- events : {\r
- "modified" : "qx.event.type.Event" \r
- },\r
- properties : {\r
- valid : {\r
- init : false\r
- },\r
- selfEdition : {\r
- init : false\r
- },\r
- encoderCallback : {\r
- init : function(string){\r
- var encoderShort = org.argeo.ria.util.Encoder;\r
- return "{SHA}"+encoderShort.base64Encode(encoderShort.hexDecode(encoderShort.hash(string, "sha1")));\r
- },\r
- check : "Function"\r
- }\r
- },\r
- \r
- construct : function(selfEdition){\r
- this.base(arguments);\r
- if(selfEdition){\r
- this.setSelfEdition(selfEdition);\r
- }\r
- this.setLayout(new qx.ui.layout.HBox(5, "center"));\r
- this.getLayout().setAlignY("middle");\r
- if(this.getSelfEdition()){\r
- this.oldPass = new qx.ui.form.PasswordField();\r
- this.add(new qx.ui.basic.Label("Old"), {flex:1});\r
- this.add(this.oldPass, {flex:2});\r
- this.oldPass.addListener("changeValue", function(){this.fireEvent("modified");}, this);\r
- }\r
- this.add(new qx.ui.basic.Label((selfEdition?"New":"Password")), {flex:1});\r
- this.pass1 = new qx.ui.form.PasswordField();\r
- this.add(this.pass1, {flex:2});\r
- this.add(new qx.ui.basic.Label((selfEdition?"Confirm":"Confirm Password")), {flex:1});\r
- this.pass2 = new qx.ui.form.PasswordField();\r
- this.add(this.pass2, {flex:2});\r
- this.pass1.addListener("changeValue", function(){this.fireEvent("modified");}, this);\r
- this.pass2.addListener("changeValue", function(){this.fireEvent("modified");}, this);\r
- this.pass2.addListener("changeValue", this.validate, this);\r
- },\r
- \r
- members : {\r
- getContainer : function(){\r
- return this;\r
- },\r
- getData : function(format){\r
- var encoder = this.getEncoderCallback();\r
- var encoded = null; \r
- if(this.pass1.getValue() != null && this.pass1.getValue() != ""){\r
- encoded = encoder(this.pass1.getValue()); \r
- }\r
- if(this.getSelfEdition() && encoded && this.oldPass.getValue()!=""){\r
- return {oldPass:encoder(this.oldPass.getValue()), newPass:encoded};\r
- }\r
- return encoded;\r
- },\r
- clear : function(){\r
- this.pass1.setValue("");\r
- this.pass2.setValue(""); \r
- if(this.getSelfEdition()){\r
- this.oldPass.setValue("");\r
- }\r
- },\r
- validate : function(){\r
- if(this.pass1.getValue() != this.pass2.getValue()){\r
- this.pass1.setValid(false);\r
- this.pass2.setValid(false);\r
- this.setValid(false); \r
- }else{\r
- this.pass1.setValid(true);\r
- this.pass2.setValid(true); \r
- this.setValid(true);\r
- }\r
- return this.getValid();\r
- },\r
- setEditMode : function(editMode){return true;} \r
- }\r
-});
\ No newline at end of file