author | Giulio Cesare Solaroli <giulio.cesare@clipperz.com> | 2011-10-02 23:56:18 (UTC) |
---|---|---|
committer | Giulio Cesare Solaroli <giulio.cesare@clipperz.com> | 2011-10-02 23:56:18 (UTC) |
commit | ef68436ac04da078ffdcacd7e1f785473a303d45 (patch) (unidiff) | |
tree | c403752d66a2c4775f00affd4fa8431b29c5b68c /frontend/beta/js/Clipperz/PM/Components/PasswordEntropyDisplay.js | |
parent | 597ecfbc0249d83e1b856cbd558340c01237a360 (diff) | |
download | clipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.zip clipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.tar.gz clipperz-ef68436ac04da078ffdcacd7e1f785473a303d45.tar.bz2 |
First version of the newly restructured repository
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/Components/PasswordEntropyDisplay.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/beta/js/Clipperz/PM/Components/PasswordEntropyDisplay.js | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Components/PasswordEntropyDisplay.js b/frontend/beta/js/Clipperz/PM/Components/PasswordEntropyDisplay.js new file mode 100644 index 0000000..530d2cb --- a/dev/null +++ b/frontend/beta/js/Clipperz/PM/Components/PasswordEntropyDisplay.js | |||
@@ -0,0 +1,118 @@ | |||
1 | /* | ||
2 | |||
3 | Copyright 2008-2011 Clipperz Srl | ||
4 | |||
5 | This file is part of Clipperz's Javascript Crypto Library. | ||
6 | Javascript Crypto Library provides web developers with an extensive | ||
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | ||
11 | refer to http://www.clipperz.com | ||
12 | |||
13 | * Javascript Crypto Library is free software: you can redistribute | ||
14 | it and/or modify it under the terms of the GNU Affero General Public | ||
15 | License as published by the Free Software Foundation, either version | ||
16 | 3 of the License, or (at your option) any later version. | ||
17 | |||
18 | * Javascript Crypto Library is distributed in the hope that it will | ||
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | ||
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
21 | See the GNU Affero General Public License for more details. | ||
22 | |||
23 | * You should have received a copy of the GNU Affero General Public | ||
24 | License along with Javascript Crypto Library. If not, see | ||
25 | <http://www.gnu.org/licenses/>. | ||
26 | |||
27 | */ | ||
28 | |||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | ||
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | ||
31 | if (typeof(Clipperz.PM.Components) == 'undefined') { Clipperz.PM.Components = {}; } | ||
32 | |||
33 | Clipperz.PM.Components.PasswordEntropyDisplay = function(anElement, args) { | ||
34 | args = args || {}; | ||
35 | |||
36 | //MochiKit.Logging.logDebug(">>> new TextFormField"); | ||
37 | Clipperz.PM.Components.PasswordEntropyDisplay.superclass.constructor.call(this, anElement, args); | ||
38 | |||
39 | this._wrapperElement = null; | ||
40 | this._entropyElement = null; | ||
41 | |||
42 | this.render(); | ||
43 | //MochiKit.Logging.logDebug("<<< new TextFormField"); | ||
44 | |||
45 | return this; | ||
46 | }; | ||
47 | |||
48 | YAHOO.extendX(Clipperz.PM.Components.PasswordEntropyDisplay, Clipperz.PM.Components.BaseComponent, { | ||
49 | |||
50 | 'toString': function() { | ||
51 | return "Clipperz.PM.Components.PasswordEntropyDisplay"; | ||
52 | }, | ||
53 | |||
54 | //----------------------------------------------------- | ||
55 | |||
56 | 'wrapperElement': function() { | ||
57 | return this._wrapperElement; | ||
58 | }, | ||
59 | |||
60 | 'setWrapperElement': function(aValue) { | ||
61 | this._wrapperElement = aValue; | ||
62 | }, | ||
63 | |||
64 | //----------------------------------------------------- | ||
65 | |||
66 | 'passwordElement': function() { | ||
67 | return this.element(); | ||
68 | }, | ||
69 | |||
70 | //----------------------------------------------------- | ||
71 | |||
72 | 'entropyElement': function() { | ||
73 | return this._entropyElement; | ||
74 | }, | ||
75 | |||
76 | 'setEntropyElement': function(aValue) { | ||
77 | this._entropyElement = aValue; | ||
78 | }, | ||
79 | |||
80 | //----------------------------------------------------- | ||
81 | |||
82 | 'render': function() { | ||
83 | MochiKit.Signal.disconnectAllTo(this); | ||
84 | |||
85 | this.setWrapperElement(this.element().wrap({tag:'div'})); | ||
86 | this.setEntropyElement(Clipperz.YUI.DomHelper.append(this.wrapperElement().dom, {tag:'div', cls:'passwordEntropy', html:" "}, true)); | ||
87 | |||
88 | // this.entropyElement().setWidth(this.passwordElement().getWidth()); | ||
89 | this.updateEntropyElement(); | ||
90 | |||
91 | MochiKit.Signal.connect(this.element().dom, 'onkeyup', this, 'updateEntropyElement'); | ||
92 | MochiKit.Signal.connect(this.element().dom, 'onchange', this, 'updateEntropyElement'); | ||
93 | MochiKit.Signal.connect(this.element().dom, 'onblur', this, 'updateEntropyElement'); | ||
94 | }, | ||
95 | |||
96 | //----------------------------------------------------- | ||
97 | |||
98 | 'computeEntropyForString': function(aValue) { | ||
99 | return Clipperz.PM.Crypto.passwordEntropy(aValue); | ||
100 | }, | ||
101 | |||
102 | //----------------------------------------------------- | ||
103 | |||
104 | 'updateEntropyElement': function(anEvent) { | ||
105 | //MochiKit.Logging.logDebug(">>> PasswordEntropyDisplay.updateEntropyElement"); | ||
106 | varmaxExtent; | ||
107 | varentropy; | ||
108 | |||
109 | entropy = Math.min(128, this.computeEntropyForString(this.passwordElement().dom.value)); | ||
110 | //MochiKit.Logging.logDebug("--- PasswordEntropyDisplay.updateEntropyElement - entropy: " + entropy); | ||
111 | this.entropyElement().setStyle('background-position', "0px " + -entropy + "px"); | ||
112 | this.entropyElement().setWidth(this.passwordElement().getWidth() * (entropy/128)); | ||
113 | //MochiKit.Logging.logDebug("<<< PasswordEntropyDisplay.updateEntropyElement"); | ||
114 | }, | ||
115 | |||
116 | //----------------------------------------------------- | ||
117 | __syntaxFix__: '__syntaxFix__' | ||
118 | }); | ||