summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js
Unidiff
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js22
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js b/frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js
index fe4d45c..443ee17 100644
--- a/frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js
+++ b/frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.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.Import) == 'undefined') { Clipperz.PM.Components.Import = {}; } 27if (typeof(Clipperz.PM.Components.Import) == 'undefined') { Clipperz.PM.Components.Import = {}; }
30 28
31//############################################################################# 29//#############################################################################
32 30
33Clipperz.PM.Components.Import.RoboFormImportComponent = function(anElement, args) { 31Clipperz.PM.Components.Import.RoboFormImportComponent = function(anElement, args) {
34 args = args || {}; 32 args = args || {};
35 33
36 Clipperz.PM.Components.Import.RoboFormImportComponent.superclass.constructor.call(this, anElement, args); 34 Clipperz.PM.Components.Import.RoboFormImportComponent.superclass.constructor.call(this, anElement, args);
37 35
38 this.render(); 36 this.render();
39 37
40 return this; 38 return this;
41} 39}
42 40
43//============================================================================= 41//=============================================================================
44 42
45YAHOO.extendX(Clipperz.PM.Components.Import.RoboFormImportComponent, Clipperz.PM.Components.Import.GenericImportComponent, { 43YAHOO.extendX(Clipperz.PM.Components.Import.RoboFormImportComponent, Clipperz.PM.Components.Import.GenericImportComponent, {
46 44
47 'toString': function() { 45 'toString': function() {
48 return "Clipperz.PM.Components.Import.RoboFormImportComponent component"; 46 return "Clipperz.PM.Components.Import.RoboFormImportComponent component";
49 }, 47 },
50 48
51 //------------------------------------------------------------------------- 49 //-------------------------------------------------------------------------
52 50
53 'render': function() { 51 'render': function() {
54//MochiKit.Logging.logDebug(">>> Import.RoboFormImportComponent.render"); 52//MochiKit.Logging.logDebug(">>> Import.RoboFormImportComponent.render");
55 this.domHelper().append(this.element(), {tag:'div', cls:'roboFormImportWizard', children:[ 53 this.domHelper().append(this.element(), {tag:'div', cls:'roboFormImportWizard', children:[
56 {tag:'h3', htmlString:Clipperz.PM.Strings['RoboForm_ImportWizard_Title']}, 54 {tag:'h3', htmlString:Clipperz.PM.Strings['RoboForm_ImportWizard_Title']},
57 {tag:'div', cls:'importSteps', id:this.getId('importSteps')}, 55 {tag:'div', cls:'importSteps', id:this.getId('importSteps')},
58 {tag:'div', cls:'importStepBlocks', children:[ 56 {tag:'div', cls:'importStepBlocks', children:[
59 {tag:'div', cls:'step_0', id:this.getId('step_0'), children:[ 57 {tag:'div', cls:'step_0', id:this.getId('step_0'), children:[
60 {tag:'div', children:[ 58 {tag:'div', children:[
61 {tag:'div', cls:'importOptionsDescription', htmlString:Clipperz.PM.Strings['importOptions_roboForm_description']}, 59 {tag:'div', cls:'importOptionsDescription', htmlString:Clipperz.PM.Strings['importOptions_roboForm_description']},
62 {tag:'div', cls:'importOptionsParameters', children:[]}, 60 {tag:'div', cls:'importOptionsParameters', children:[]},
63 this.textAreaConfig() 61 this.textAreaConfig()
64 ]} 62 ]}
65 ]}, 63 ]},
66 {tag:'div', cls:'step_1', id:this.getId('step_1'), children:[ 64 {tag:'div', cls:'step_1', id:this.getId('step_1'), children:[
67 {tag:'div', children:[ 65 {tag:'div', children:[
68 {tag:'div', id:this.getId('previewDiv'), html:"preview"} 66 {tag:'div', id:this.getId('previewDiv'), html:"preview"}
69 ]} 67 ]}
70 ]}, 68 ]},
71 {tag:'div', cls:'step_2', id:this.getId('step_2'), children:[ 69 {tag:'div', cls:'step_2', id:this.getId('step_2'), children:[
72 {tag:'div', children:[ 70 {tag:'div', children:[
73 {tag:'h4', html:"done"} 71 {tag:'h4', html:"done"}
74 ]} 72 ]}
75 ]} 73 ]}
76 ]}, 74 ]},
77 {tag:'div', cls:'importOptionsButtons', children:[ 75 {tag:'div', cls:'importOptionsButtons', children:[
78 {tag:'table', children:[ 76 {tag:'table', children:[
79 {tag:'tbody', children:[ 77 {tag:'tbody', children:[
80 {tag:'tr', children:[ 78 {tag:'tr', children:[
81 {tag:'td', html:'&nbsp;'}, 79 {tag:'td', html:'&nbsp;'},
82 {tag:'td', children:[ 80 {tag:'td', children:[
83 {tag:'div', id:this.getId('backActionButton')} 81 {tag:'div', id:this.getId('backActionButton')}
84 ]}, 82 ]},
85 {tag:'td', html:'&nbsp;'}, 83 {tag:'td', html:'&nbsp;'},
86 {tag:'td', children:[ 84 {tag:'td', children:[
87 {tag:'div', id:this.getId('nextActionButton')} 85 {tag:'div', id:this.getId('nextActionButton')}
88 ]}, 86 ]},
89 {tag:'td', html:'&nbsp;'} 87 {tag:'td', html:'&nbsp;'}
90 ]} 88 ]}
91 ]} 89 ]}
92 ]} 90 ]}
93 ]} 91 ]}
94 ]}); 92 ]});
95 93
96 this.updateSteps(); 94 this.updateSteps();
97 95
98 this.setBackButton(new YAHOO.ext.Button(this.getDom('backActionButton'), {text:"back", handler:this.backAction, scope:this})); 96 this.setBackButton(new YAHOO.ext.Button(this.getDom('backActionButton'), {text:"back", handler:this.backAction, scope:this}));
99 this.setNextButton(new YAHOO.ext.Button(this.getDom('nextActionButton'), {text:"next", handler:this.nextAction, scope:this})); 97 this.setNextButton(new YAHOO.ext.Button(this.getDom('nextActionButton'), {text:"next", handler:this.nextAction, scope:this}));
100 98
101 this.getElement('step_0').setVisibilityMode(YAHOO.ext.Element.DISPLAY).show() 99 this.getElement('step_0').setVisibilityMode(YAHOO.ext.Element.DISPLAY).show()
102 this.getElement('step_1').setVisibilityMode(YAHOO.ext.Element.DISPLAY).hide(); 100 this.getElement('step_1').setVisibilityMode(YAHOO.ext.Element.DISPLAY).hide();
103 this.getElement('step_2').setVisibilityMode(YAHOO.ext.Element.DISPLAY).hide(); 101 this.getElement('step_2').setVisibilityMode(YAHOO.ext.Element.DISPLAY).hide();
104//MochiKit.Logging.logDebug("<<< Import.RoboFormImportComponent.render"); 102//MochiKit.Logging.logDebug("<<< Import.RoboFormImportComponent.render");
105 }, 103 },
106 104
107 //------------------------------------------------------------------------- 105 //-------------------------------------------------------------------------
108 106
109 'nextAction': function() { 107 'nextAction': function() {
110 switch (this.currentStep()) { 108 switch (this.currentStep()) {
111 case 0: //-> 1 109 case 0: //-> 1
112 this.previewValues(); 110 this.previewValues();
113 break; 111 break;
114 case 1: //-> 2 112 case 1: //-> 2
115 this.importValues(); 113 this.importValues();
116 break; 114 break;
117 } 115 }
118 }, 116 },
119 117
120 //------------------------------------------------------------------------- 118 //-------------------------------------------------------------------------
121 119
122 'deferredPreviewValues': function() { 120 'deferredPreviewValues': function() {
123 var deferredResult; 121 var deferredResult;
124 122
125 // this.setFormValues(MochiKit.DOM.formContents(this.getDom('dataForm'))); 123 // this.setFormValues(MochiKit.DOM.formContents(this.getDom('dataForm')));
126 124
127 deferredResult = new MochiKit.Async.Deferred(); 125 deferredResult = new MochiKit.Async.Deferred();
128 deferredResult.addCallback(MochiKit.Base.bind(function(res) { 126 deferredResult.addCallback(MochiKit.Base.bind(function(res) {
129 this.startProcessing(); 127 this.startProcessing();
130 128
131 return res; 129 return res;
132 }, this)); 130 }, this));
133 deferredResult.addCallback(MochiKit.Base.method(this, 'processRoboFormValues')); 131 deferredResult.addCallback(MochiKit.Base.method(this, 'processRoboFormValues'));
134 deferredResult.addCallback(MochiKit.Base.method(this, 'setProcessedValues')); 132 deferredResult.addCallback(MochiKit.Base.method(this, 'setProcessedValues'));
135 deferredResult.addCallback(MochiKit.Base.method(this, 'previewRecordValues')); 133 deferredResult.addCallback(MochiKit.Base.method(this, 'previewRecordValues'));
136 deferredResult.addCallback(MochiKit.Base.bind(function(res) { 134 deferredResult.addCallback(MochiKit.Base.bind(function(res) {
137 this.processingDone(); 135 this.processingDone();
138 this.getElement('step_0').hide(); 136 this.getElement('step_0').hide();
139 this.getElement('step_1').show(); 137 this.getElement('step_1').show();
140 this.backButton().enable(); 138 this.backButton().enable();
141 139
142 return res; 140 return res;
143 }, this)); 141 }, this));
144 // deferredResult.addErrback(MochiKit.Base.bind(function() { 142 // deferredResult.addErrback(MochiKit.Base.bind(function() {
145 // this.processingAborted(); 143 // this.processingAborted();
146 // }, this)) 144 // }, this))
147 deferredResult.callback(this.textAreaContent()); 145 deferredResult.callback(this.textAreaContent());
148 146
149 return deferredResult; 147 return deferredResult;
150 }, 148 },
151 149
152 //------------------------------------------------------------------------- 150 //-------------------------------------------------------------------------
153 151
154 'processRoboFormValues': function(someData) { 152 'processRoboFormValues': function(someData) {
155 var result; 153 var result;
156 154
157 if (someData.match(/^\<HTML\>\<HEAD\>\<TITLE\>RoboForm Passcards List /g)) { 155 if (someData.match(/^\<HTML\>\<HEAD\>\<TITLE\>RoboForm Passcards List /g)) {
158 result = this.processRoboFormPasscardsValues(someData); 156 result = this.processRoboFormPasscardsValues(someData);
159 } else if (someData.match(/\<HTML\>\<HEAD\>\<TITLE\>RoboForm Safenotes List /g)) { 157 } else if (someData.match(/\<HTML\>\<HEAD\>\<TITLE\>RoboForm Safenotes List /g)) {
160 result = this.processRoboFormSafenotesValues(someData); 158 result = this.processRoboFormSafenotesValues(someData);
161 } 159 }
162 160
163 return result; 161 return result;
164 }, 162 },
165 163
166 //......................................................................... 164 //.........................................................................
167 165
168 'processRoboFormPasscardsValues': function(someData) { 166 'processRoboFormPasscardsValues': function(someData) {
169 var deferredResult; 167 var deferredResult;
170 168
171 deferredResult = new MochiKit.Async.Deferred(); 169 deferredResult = new MochiKit.Async.Deferred();
172//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 1: "/* + res*/); return res;}); 170//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 1: "/* + res*/); return res;});
173 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'parseImportData'); 171 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'parseImportData');
174//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 2: "/* + res*/); return res;}); 172//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 2: "/* + res*/); return res;});
175 deferredResult.addCallback(function(someData) { 173 deferredResult.addCallback(function(someData) {
176 var result; 174 var result;
177 var data; 175 var data;
178 176
179 data = someData.replace(/\r?\n/g, ""); 177 data = someData.replace(/\r?\n/g, "");
180 result = data.match(/\<TABLE width\=\"100\%\"\>.*?\<\/TABLE\>/g); 178 result = data.match(/\<TABLE width\=\"100\%\"\>.*?\<\/TABLE\>/g);
181 179
182 return result; 180 return result;
183 }); 181 });
184//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 3: "/* + res*/); return res;}); 182//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 3: "/* + res*/); return res;});
185//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 3.1: " + res.length); return res;}); 183//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 3.1: " + res.length); return res;});
186 deferredResult.addCallback(function(res) { 184 deferredResult.addCallback(function(res) {
187 return Clipperz.NotificationCenter.deferredNotification(this, 'updatedProgressState', {steps:(res.length)}, res); 185 return Clipperz.NotificationCenter.deferredNotification(this, 'updatedProgressState', {steps:(res.length)}, res);
188 }) 186 })
189//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 4: "/* + res*/); return res;}); 187//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 4: "/* + res*/); return res;});
190 deferredResult.addCallback(MochiKit.Base.bind(function(someRecordValues) { 188 deferredResult.addCallback(MochiKit.Base.bind(function(someRecordValues) {
191 var innerDeferredResult; 189 var innerDeferredResult;
192 var records; 190 var records;
193 var i,c; 191 var i,c;
194 192
195 innerDeferredResult = new MochiKit.Async.Deferred(); 193 innerDeferredResult = new MochiKit.Async.Deferred();
196 records = []; 194 records = [];
197 195
198 c = someRecordValues.length; 196 c = someRecordValues.length;
199 for(i=0; i<c; i++) { 197 for(i=0; i<c; i++) {
200//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 1: " + res); return res;}); 198//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 1: " + res); return res;});
201 innerDeferredResult.addCallback(MochiKit.Async.wait, 0.2); 199 innerDeferredResult.addCallback(MochiKit.Async.wait, 0.2);
202//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 2: " + res); return res;}); 200//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 2: " + res); return res;});
203 innerDeferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', {}); 201 innerDeferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', {});
204//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 3: " + res); return res;}); 202//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 3: " + res); return res;});
205 innerDeferredResult.addCallback(MochiKit.Base.bind(function(someRecords, someData) { 203 innerDeferredResult.addCallback(MochiKit.Base.bind(function(someRecords, someData) {
206 var data; 204 var data;
207 var record; 205 var record;
208 var recordVersion; 206 var recordVersion;
209 var fields; 207 var fields;
210 var ii, cc; 208 var ii, cc;
211 var hasNotes; 209 var hasNotes;
212 210
213 var caption; 211 var caption;
214 var subcaption; 212 var subcaption;