summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/PM/Components/Panels/ToolsPanel.js
Unidiff
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/Components/Panels/ToolsPanel.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/Components/Panels/ToolsPanel.js22
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Components/Panels/ToolsPanel.js b/frontend/beta/js/Clipperz/PM/Components/Panels/ToolsPanel.js
index 4f2a015..1c799d0 100644
--- a/frontend/beta/js/Clipperz/PM/Components/Panels/ToolsPanel.js
+++ b/frontend/beta/js/Clipperz/PM/Components/Panels/ToolsPanel.js
@@ -1,214 +1,212 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Components) == 'undefined') { Clipperz.PM.Components = {}; } 26if (typeof(Clipperz.PM.Components) == 'undefined') { Clipperz.PM.Components = {}; }
29if (typeof(Clipperz.PM.Components.Panels) == 'undefined') { Clipperz.PM.Components.Panels = {}; } 27if (typeof(Clipperz.PM.Components.Panels) == 'undefined') { Clipperz.PM.Components.Panels = {}; }
30 28
31//############################################################################# 29//#############################################################################
32 30
33Clipperz.PM.Components.Panels.ToolsPanel = function(anElement, args) { 31Clipperz.PM.Components.Panels.ToolsPanel = function(anElement, args) {
34 args = args || {}; 32 args = args || {};
35 33
36 Clipperz.PM.Components.Panels.ToolsPanel.superclass.constructor.call(this, anElement, args); 34 Clipperz.PM.Components.Panels.ToolsPanel.superclass.constructor.call(this, anElement, args);
37 35
38 this._generateButtonElement = null; 36 this._generateButtonElement = null;
39 this._needsRenderingUponTabSwitch = false; 37 this._needsRenderingUponTabSwitch = false;
40 38
41 this.render(); 39 this.render();
42 40
43 return this; 41 return this;
44} 42}
45 43
46//============================================================================= 44//=============================================================================
47 45
48YAHOO.extendX(Clipperz.PM.Components.Panels.ToolsPanel, Clipperz.PM.Components.Panels.BasePanel, { 46YAHOO.extendX(Clipperz.PM.Components.Panels.ToolsPanel, Clipperz.PM.Components.Panels.BasePanel, {
49 47
50 'toString': function() { 48 'toString': function() {
51 return "Clipperz.PM.Components.Panels.ToolsPanel component"; 49 return "Clipperz.PM.Components.Panels.ToolsPanel component";
52 }, 50 },
53 51
54 //------------------------------------------------------------------------- 52 //-------------------------------------------------------------------------
55 53
56 'render': function() { 54 'render': function() {
57 var bookmarkletUrl; 55 var bookmarkletUrl;
58 56
59//MochiKit.Logging.logDebug(">>> ToolsPanel.render"); 57//MochiKit.Logging.logDebug(">>> ToolsPanel.render");
60 Clipperz.NotificationCenter.unregister(this); 58 Clipperz.NotificationCenter.unregister(this);
61 MochiKit.Signal.disconnectAllTo(this); 59 MochiKit.Signal.disconnectAllTo(this);
62 60
63 if (Clipperz_IEisBroken == true) { 61 if (Clipperz_IEisBroken == true) {
64 bookmarkletUrl = bookmarklet_ie; 62 bookmarkletUrl = bookmarklet_ie;
65 } else { 63 } else {
66 bookmarkletUrl = bookmarklet; 64 bookmarkletUrl = bookmarklet;
67 } 65 }
68 66
69 this.element().update(""); 67 this.element().update("");
70 Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'table', border:'0', cellspacing:'0', cellpadding:'0', children:[ 68 Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'table', border:'0', cellspacing:'0', cellpadding:'0', children:[
71 {tag:'tbody', children:[ 69 {tag:'tbody', children:[
72 {tag:'tr', children:[ 70 {tag:'tr', children:[
73 {tag:'td', valign:'top', width:'200', children:[ 71 {tag:'td', valign:'top', width:'200', children:[
74 {tag:'ul', id:"dataSubMenu", cls:'subMenu', children:[ 72 {tag:'ul', id:"dataSubMenu", cls:'subMenu', children:[
75 {tag:'li', id:this.getId('passwordGenerator'), htmlString:Clipperz.PM.Strings['passwordGeneratorTabLabel']}, 73 {tag:'li', id:this.getId('passwordGenerator'), htmlString:Clipperz.PM.Strings['passwordGeneratorTabLabel']},
76 {tag:'li', id:this.getId('bookmarklet'), htmlString:Clipperz.PM.Strings['bookmarkletTabLabel']}, 74 {tag:'li', id:this.getId('bookmarklet'), htmlString:Clipperz.PM.Strings['bookmarkletTabLabel']},
77 {tag:'li', id:this.getId('compact'), htmlString:Clipperz.PM.Strings['compactTabLabel']}, 75 {tag:'li', id:this.getId('compact'), htmlString:Clipperz.PM.Strings['compactTabLabel']},
78 {tag:'li', id:this.getId('httpAuth'), htmlString:Clipperz.PM.Strings['httpAuthTabLabel']} 76 {tag:'li', id:this.getId('httpAuth'), htmlString:Clipperz.PM.Strings['httpAuthTabLabel']}
79 ]} 77 ]}
80 ]}, 78 ]},
81 {tag:'td', valign:'top', children:[ 79 {tag:'td', valign:'top', children:[
82 {tag:'ul', cls:'clipperzTabPanels', children:[ 80 {tag:'ul', cls:'clipperzTabPanels', children:[
83 {tag:'li', id:this.getId('passwordGeneratorPanel'), children:[ 81 {tag:'li', id:this.getId('passwordGeneratorPanel'), children:[
84 {tag:'div', cls:'clipperzSubPanel', children:[ 82 {tag:'div', cls:'clipperzSubPanel', children:[
85 {tag:'h5', htmlString:Clipperz.PM.Strings['passwordGeneratorTabTitle']}, 83 {tag:'h5', htmlString:Clipperz.PM.Strings['passwordGeneratorTabTitle']},
86 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['paswordGeneratorTabDescription']}, 84 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['paswordGeneratorTabDescription']},
87 85
88 //--------------------------------------------------- 86 //---------------------------------------------------
89 {tag:'div', children:[ 87 {tag:'div', children:[
90 {tag:'form', id:this.getId('passwordGeneratorForm'), cls:'passwordGenerator', children:[ 88 {tag:'form', id:this.getId('passwordGeneratorForm'), cls:'passwordGenerator', children:[
91 {tag:'input', type:'text', cls:'clipperz_passwordGenerator_password', id:this.getId('passwordField')}, 89 {tag:'input', type:'text', cls:'clipperz_passwordGenerator_password', id:this.getId('passwordField')},
92 {tag:'table', children:[ 90 {tag:'table', children:[
93 {tag:'tbody', children:[ 91 {tag:'tbody', children:[
94 {tag:'tr', children:[ 92 {tag:'tr', children:[
95 {tag:'td', width:'20%', children:[ 93 {tag:'td', width:'20%', children:[
96 {tag:'input', type:'checkbox', name:'lowercase', id:this.getId('lowercase'), checked:true}, 94 {tag:'input', type:'checkbox', name:'lowercase', id:this.getId('lowercase'), checked:true},
97 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorLowercaseLabel']} 95 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorLowercaseLabel']}
98 ]}, 96 ]},
99 {tag:'td', width:'20%', children:[ 97 {tag:'td', width:'20%', children:[
100 {tag:'input', type:'checkbox', name:'uppercase', id:this.getId('uppercase'), checked:true}, 98 {tag:'input', type:'checkbox', name:'uppercase', id:this.getId('uppercase'), checked:true},
101 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorUppercaseLabel']} 99 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorUppercaseLabel']}
102 ]}, 100 ]},
103 {tag:'td', width:'20%', children:[ 101 {tag:'td', width:'20%', children:[
104 {tag:'input', type:'checkbox', name:'numbers', id:this.getId('numbers'), checked:true}, 102 {tag:'input', type:'checkbox', name:'numbers', id:this.getId('numbers'), checked:true},
105 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorNumberLabel']} 103 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorNumberLabel']}
106 ]}, 104 ]},
107 {tag:'td', width:'20%', children:[ 105 {tag:'td', width:'20%', children:[
108 {tag:'input', type:'checkbox', name:'symbols', id:this.getId('symbols'), checked:true}, 106 {tag:'input', type:'checkbox', name:'symbols', id:this.getId('symbols'), checked:true},
109 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorSymbolLabel']} 107 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorSymbolLabel']}
110 ]}, 108 ]},
111 {tag:'td', width:'20%', children:[ 109 {tag:'td', width:'20%', children:[
112 {tag:'span', cls:'passwordGeneratorLength', children:[ 110 {tag:'span', cls:'passwordGeneratorLength', children:[
113 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorLengthLabel']}, 111 {tag:'span', htmlString:Clipperz.PM.Strings['passwordGeneratorLengthLabel']},
114 {tag:'span', id:this.getId('passwordLength'), cls:'passwordGeneratorLengthValue', html:'0'} 112 {tag:'span', id:this.getId('passwordLength'), cls:'passwordGeneratorLengthValue', html:'0'}
115 ]} 113 ]}
116 ]} 114 ]}
117 ]} 115 ]}
118 ]} 116 ]}
119 ]} 117 ]}
120 ]}, 118 ]},
121 {tag:'div', id:this.getId('generateRandomPassword')} 119 {tag:'div', id:this.getId('generateRandomPassword')}
122 ]} 120 ]}
123 //--------------------------------------------------- 121 //---------------------------------------------------
124 122
125 ]} 123 ]}
126 ]}, 124 ]},
127 {tag:'li', id:this.getId('bookmarkletPanel'), children:[ 125 {tag:'li', id:this.getId('bookmarkletPanel'), children:[
128 {tag:'div', cls:'clipperzSubPanel', children:[ 126 {tag:'div', cls:'clipperzSubPanel', children:[
129 {tag:'h5', htmlString:Clipperz.PM.Strings['bookmarkletTabTitle']}, 127 {tag:'h5', htmlString:Clipperz.PM.Strings['bookmarkletTabTitle']},
130 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['bookmarkletTabDescription']}, 128 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['bookmarkletTabDescription']},
131 {tag:'a', href:bookmarkletUrl, cls:'bookmarkletLink', htmlString:Clipperz.PM.Strings['bookmarkletTabBookmarkletTitle']}, 129 {tag:'a', href:bookmarkletUrl, cls:'bookmarkletLink', htmlString:Clipperz.PM.Strings['bookmarkletTabBookmarkletTitle']},
132 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['bookmarkletTabInstructions']} 130 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['bookmarkletTabInstructions']}
133 ]} 131 ]}
134 ]}, 132 ]},
135 {tag:'li', id:this.getId('compactPanel'), children:[ 133 {tag:'li', id:this.getId('compactPanel'), children:[
136 {tag:'div', cls:'clipperzSubPanel', children:[ 134 {tag:'div', cls:'clipperzSubPanel', children:[
137 {tag:'h5', htmlString:Clipperz.PM.Strings['compactTabTitle']}, 135 {tag:'h5', htmlString:Clipperz.PM.Strings['compactTabTitle']},
138 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['compactTabDescription']} 136 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['compactTabDescription']}
139 ]} 137 ]}
140 ]}, 138 ]},
141 {tag:'li', id:this.getId('httpAuthPanel'), children:[ 139 {tag:'li', id:this.getId('httpAuthPanel'), children:[
142 {tag:'div', cls:'clipperzSubPanel', children:[ 140 {tag:'div', cls:'clipperzSubPanel', children:[
143 {tag:'h5', htmlString:Clipperz.PM.Strings['httpAuthTabTitle']}, 141 {tag:'h5', htmlString:Clipperz.PM.Strings['httpAuthTabTitle']},
144 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['httpAuthTabDescription']}, 142 {tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['httpAuthTabDescription']},
145 {tag:'div', cls:'bookmarkletConfiguration', children:[Clipperz.PM.Strings['httpAuthBookmarkletConfiguration']]} 143 {tag:'div', cls:'bookmarkletConfiguration', children:[Clipperz.PM.Strings['httpAuthBookmarkletConfiguration']]}
146 ]} 144 ]}
147 ]} 145 ]}
148 ]} 146 ]}
149 ]} 147 ]}
150 ]} 148 ]}
151 ]} 149 ]}
152 ]}); 150 ]});
153 151
154 new Clipperz.PM.Components.PasswordEntropyDisplay(this.getElement('passwordField')); 152 new Clipperz.PM.Components.PasswordEntropyDisplay(this.getElement('passwordField'));
155 153
156 MochiKit.Signal.connect(this.getId('lowercase'), 'onclick', this, 'updatePasswordValue'); 154 MochiKit.Signal.connect(this.getId('lowercase'), 'onclick', this, 'updatePasswordValue');
157 MochiKit.Signal.connect(this.getId('uppercase'), 'onclick', this, 'updatePasswordValue'); 155 MochiKit.Signal.connect(this.getId('uppercase'), 'onclick', this, 'updatePasswordValue');
158 MochiKit.Signal.connect(this.getId('numbers'), 'onclick', this, 'updatePasswordValue'); 156 MochiKit.Signal.connect(this.getId('numbers'), 'onclick', this, 'updatePasswordValue');
159 MochiKit.Signal.connect(this.getId('symbols'), 'onclick', this, 'updatePasswordValue'); 157 MochiKit.Signal.connect(this.getId('symbols'), 'onclick', this, 'updatePasswordValue');
160 158
161 MochiKit.Signal.connect(this.getDom('passwordField'), 'onkeyup', this, 'updatePasswordLengthLabel'); 159 MochiKit.Signal.connect(this.getDom('passwordField'), 'onkeyup', this, 'updatePasswordLengthLabel');
162 MochiKit.Signal.connect(this.getDom('passwordField'), 'onchange', this, 'updatePasswordLengthLabel'); 160 MochiKit.Signal.connect(this.getDom('passwordField'), 'onchange', this, 'updatePasswordLengthLabel');
163 MochiKit.Signal.connect(this.getDom('passwordField'), 'onblur', this, 'updatePasswordLengthLabel'); 161 MochiKit.Signal.connect(this.getDom('passwordField'), 'onblur', this, 'updatePasswordLengthLabel');
164 162
165 this.setGenerateButtonElement(new YAHOO.ext.Button(this.getDom('generateRandomPassword'), {text:Clipperz.PM.Strings['passwordGeneratorTabButtonLabel'], handler:this.updatePasswordValue, scope:this})); 163 this.setGenerateButtonElement(new YAHOO.ext.Button(this.getDom('generateRandomPassword'), {text:Clipperz.PM.Strings['passwordGeneratorTabButtonLabel'], handler:this.updatePasswordValue, scope:this}));
166 164
167 this.setNeedsRenderingUponTabSwitch(false); 165 this.setNeedsRenderingUponTabSwitch(false);
168 this.tabPanelController().setUp(); 166 this.tabPanelController().setUp();
169 Clipperz.NotificationCenter.register(null, 'tabSelected', this, 'tabSelectedHandler'); 167 Clipperz.NotificationCenter.register(null, 'tabSelected', this, 'tabSelectedHandler');
170 Clipperz.NotificationCenter.register(null, 'switchLanguage', this, 'switchLanguageHandler'); 168 Clipperz.NotificationCenter.register(null, 'switchLanguage', this, 'switchLanguageHandler');
171//MochiKit.Logging.logDebug("<<< ToolsPanel.render"); 169//MochiKit.Logging.logDebug("<<< ToolsPanel.render");
172 }, 170 },
173 171
174 //------------------------------------------------------------------------- 172 //-------------------------------------------------------------------------
175 173
176 'needsRenderingUponTabSwitch': function() { 174 'needsRenderingUponTabSwitch': function() {
177 return this._needsRenderingUponTabSwitch; 175 return this._needsRenderingUponTabSwitch;
178 }, 176 },
179 177
180 'setNeedsRenderingUponTabSwitch': function(aValue) { 178 'setNeedsRenderingUponTabSwitch': function(aValue) {
181 this._needsRenderingUponTabSwitch = aValue; 179 this._needsRenderingUponTabSwitch = aValue;
182 }, 180 },
183 181
184 'tabSelectedHandler': function(anEvent) { 182 'tabSelectedHandler': function(anEvent) {
185 if (this.needsRenderingUponTabSwitch()) { 183 if (this.needsRenderingUponTabSwitch()) {
186 this.render(); 184 this.render();
187 } 185 }
188 186
189 if (anEvent.parameters() == this.getId('httpAuth')) { 187 if (anEvent.parameters() == this.getId('httpAuth')) {
190 var textarea; 188 var textarea;
191 189
192 textarea = document.getElementById("httpAuthDefaultConfiguration"); 190 textarea = document.getElementById("httpAuthDefaultConfiguration");
193 textarea.focus(); 191 textarea.focus();
194 textarea.select(); 192 textarea.select();
195 } 193 }
196 }, 194 },
197 195
198 //------------------------------------------------------------------------- 196 //-------------------------------------------------------------------------
199 197
200 'tabPanelController': function() { 198 'tabPanelController': function() {
201 if (this._tabPanelController == null) { 199 if (this._tabPanelController == null) {
202 var tabPanelControllerConfig; 200 var tabPanelControllerConfig;
203 201
204 tabPanelControllerConfig = {} 202 tabPanelControllerConfig = {}
205 tabPanelControllerConfig[this.getId('passwordGenerator')] = this.getId('passwordGeneratorPanel'); 203 tabPanelControllerConfig[this.getId('passwordGenerator')] = this.getId('passwordGeneratorPanel');
206 tabPanelControllerConfig[this.getId('bookmarklet')] = this.getId('bookmarkletPanel'); 204 tabPanelControllerConfig[this.getId('bookmarklet')] = this.getId('bookmarkletPanel');
207 tabPanelControllerConfig[this.getId('compact')] = this.getId('compactPanel'); 205 tabPanelControllerConfig[this.getId('compact')] = this.getId('compactPanel');
208 tabPanelControllerConfig[this.getId('httpAuth')] = this.getId('httpAuthPanel'); 206 tabPanelControllerConfig[this.getId('httpAuth')] = this.getId('httpAuthPanel');
209 this._tabPanelController = new Clipperz.PM.Components.TabPanel.TabPanelController({ config:tabPanelControllerConfig, selectedTab:this.getId('passwordGenerator') }); 207 this._tabPanelController = new Clipperz.PM.Components.TabPanel.TabPanelController({ config:tabPanelControllerConfig, selectedTab:this.getId('passwordGenerator') });
210 } 208 }
211 209
212 return this._tabPanelController; 210 return this._tabPanelController;
213 }, 211 },
214 212