From ef68436ac04da078ffdcacd7e1f785473a303d45 Mon Sep 17 00:00:00 2001 From: Giulio Cesare Solaroli Date: Sun, 02 Oct 2011 23:56:18 +0000 Subject: First version of the newly restructured repository --- (limited to 'frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js') diff --git a/frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js b/frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js new file mode 100644 index 0000000..d35bdc6 --- a/dev/null +++ b/frontend/beta/js/Clipperz/PM/Components/Import/RoboFormImportComponent.js @@ -0,0 +1,392 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz's Javascript Crypto Library. +Javascript Crypto Library provides web developers with an extensive +and efficient set of cryptographic functions. The library aims to +obtain maximum execution speed while preserving modularity and +reusability. +For further information about its features and functionalities please +refer to http://www.clipperz.com + +* Javascript Crypto Library is free software: you can redistribute + it and/or modify it under the terms of the GNU Affero General Public + License as published by the Free Software Foundation, either version + 3 of the License, or (at your option) any later version. + +* Javascript Crypto Library is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU Affero General Public License for more details. + +* You should have received a copy of the GNU Affero General Public + License along with Javascript Crypto Library. If not, see + . + +*/ + +if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } +if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } +if (typeof(Clipperz.PM.Components) == 'undefined') { Clipperz.PM.Components = {}; } +if (typeof(Clipperz.PM.Components.Import) == 'undefined') { Clipperz.PM.Components.Import = {}; } + +//############################################################################# + +Clipperz.PM.Components.Import.RoboFormImportComponent = function(anElement, args) { + args = args || {}; + + Clipperz.PM.Components.Import.RoboFormImportComponent.superclass.constructor.call(this, anElement, args); + + this.render(); + + return this; +} + +//============================================================================= + +YAHOO.extendX(Clipperz.PM.Components.Import.RoboFormImportComponent, Clipperz.PM.Components.Import.GenericImportComponent, { + + 'toString': function() { + return "Clipperz.PM.Components.Import.RoboFormImportComponent component"; + }, + + //------------------------------------------------------------------------- + + 'render': function() { +//MochiKit.Logging.logDebug(">>> Import.RoboFormImportComponent.render"); + this.domHelper().append(this.element(), {tag:'div', cls:'roboFormImportWizard', children:[ + {tag:'h3', htmlString:Clipperz.PM.Strings['RoboForm_ImportWizard_Title']}, + {tag:'div', cls:'importSteps', id:this.getId('importSteps')}, + {tag:'div', cls:'importStepBlocks', children:[ + {tag:'div', cls:'step_0', id:this.getId('step_0'), children:[ + {tag:'div', children:[ + {tag:'div', cls:'importOptionsDescription', htmlString:Clipperz.PM.Strings['importOptions_roboForm_description']}, + {tag:'div', cls:'importOptionsParameters', children:[]}, + this.textAreaConfig() + ]} + ]}, + {tag:'div', cls:'step_1', id:this.getId('step_1'), children:[ + {tag:'div', children:[ + {tag:'div', id:this.getId('previewDiv'), html:"preview"} + ]} + ]}, + {tag:'div', cls:'step_2', id:this.getId('step_2'), children:[ + {tag:'div', children:[ + {tag:'h4', html:"done"} + ]} + ]} + ]}, + {tag:'div', cls:'importOptionsButtons', children:[ + {tag:'table', children:[ + {tag:'tbody', children:[ + {tag:'tr', children:[ + {tag:'td', html:' '}, + {tag:'td', children:[ + {tag:'div', id:this.getId('backActionButton')} + ]}, + {tag:'td', html:' '}, + {tag:'td', children:[ + {tag:'div', id:this.getId('nextActionButton')} + ]}, + {tag:'td', html:' '} + ]} + ]} + ]} + ]} + ]}); + + this.updateSteps(); + + this.setBackButton(new YAHOO.ext.Button(this.getDom('backActionButton'), {text:"back", handler:this.backAction, scope:this})); + this.setNextButton(new YAHOO.ext.Button(this.getDom('nextActionButton'), {text:"next", handler:this.nextAction, scope:this})); + + this.getElement('step_0').setVisibilityMode(YAHOO.ext.Element.DISPLAY).show() + this.getElement('step_1').setVisibilityMode(YAHOO.ext.Element.DISPLAY).hide(); + this.getElement('step_2').setVisibilityMode(YAHOO.ext.Element.DISPLAY).hide(); +//MochiKit.Logging.logDebug("<<< Import.RoboFormImportComponent.render"); + }, + + //------------------------------------------------------------------------- + + 'nextAction': function() { + switch (this.currentStep()) { + case 0: // -> 1 + this.previewValues(); + break; + case 1: // -> 2 + this.importValues(); + break; + } + }, + + //------------------------------------------------------------------------- + + 'deferredPreviewValues': function() { + var deferredResult; + +// this.setFormValues(MochiKit.DOM.formContents(this.getDom('dataForm'))); + + deferredResult = new MochiKit.Async.Deferred(); + deferredResult.addCallback(MochiKit.Base.bind(function(res) { + this.startProcessing(); + + return res; + }, this)); + deferredResult.addCallback(MochiKit.Base.method(this, 'processRoboFormValues')); + deferredResult.addCallback(MochiKit.Base.method(this, 'setProcessedValues')); + deferredResult.addCallback(MochiKit.Base.method(this, 'previewRecordValues')); + deferredResult.addCallback(MochiKit.Base.bind(function(res) { + this.processingDone(); + this.getElement('step_0').hide(); + this.getElement('step_1').show(); + this.backButton().enable(); + + return res; + }, this)); +// deferredResult.addErrback(MochiKit.Base.bind(function() { +// this.processingAborted(); +// }, this)) + deferredResult.callback(this.textAreaContent()); + + return deferredResult; + }, + + //------------------------------------------------------------------------- + + 'processRoboFormValues': function(someData) { + var result; + + if (someData.match(/^\\\RoboForm Passcards List /g)) { + result = this.processRoboFormPasscardsValues(someData); + } else if (someData.match(/\\\RoboForm Safenotes List /g)) { + result = this.processRoboFormSafenotesValues(someData); + } + + return result; + }, + + //......................................................................... + + 'processRoboFormPasscardsValues': function(someData) { + var deferredResult; + + deferredResult = new MochiKit.Async.Deferred(); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 1: "/* + res*/); return res;}); + deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'parseImportData'); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 2: "/* + res*/); return res;}); + deferredResult.addCallback(function(someData) { + var result; + var data; + + data = someData.replace(/\r?\n/g, ""); + result = data.match(/\.*?\<\/TABLE\>/g); + + return result; + }); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 3: "/* + res*/); return res;}); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 3.1: " + res.length); return res;}); + deferredResult.addCallback(function(res) { + return Clipperz.NotificationCenter.deferredNotification(this, 'updatedProgressState', {steps:(res.length)}, res); + }) +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 4: "/* + res*/); return res;}); + deferredResult.addCallback(MochiKit.Base.bind(function(someRecordValues) { + var innerDeferredResult; + var records; + var i,c; + + innerDeferredResult = new MochiKit.Async.Deferred(); + records = []; + + c = someRecordValues.length; + for(i=0; i/g, ""); + hasNotes = false; + + /\ + caption = RegExp.$1; +//MochiKit.Logging.logDebug("caption: " + caption); + + /\ + subcaption = RegExp.$1; +//MochiKit.Logging.logDebug("subcaption: " + subcaption); + + record = new Clipperz.PM.DataModel.Record({user:this.user()}); + recordVersion = record.currentVersion() + + record.setLabel(caption); +// record.setNotes(subcaption); + if (subcaption != null) { + var recordField; + + recordField = new Clipperz.PM.DataModel.RecordField({ + recordVersion: recordVersion, + label: "url", + value: subcaption, + type: 'URL' + }); + recordVersion.addField(recordField); + } + + fields = data.match(/\.*?\<\/TR\>/g) || []; + cc = fields.length; +//MochiKit.Logging.logDebug("fields.length: " + cc); + for (ii=0; ii(.*?)\<\/TD\>/.test(fieldString); + fieldName = RegExp.$1; + + /\
(.*?)\<\/TD\>/.test(data); // 110mb(.*?)\<\/TD\>/.test(data); // 110mb.com(.*?)\<\/TD\>/.test(fieldString); + fieldValue = RegExp.$1; + + if (fieldName == "Note$") { + record.setNotes(fieldValue); + hasNotes = true; + } else { + var fieldType; + + if (((ii == 1) && (hasNotes == false)) || ((ii == 2) && (hasNotes == true))) { + fieldType = 'PWD'; + } else { + fieldType = 'TXT'; + } + + recordField = new Clipperz.PM.DataModel.RecordField({ + recordVersion: recordVersion, + label: fieldName, + value: fieldValue, + type: fieldType + }); + recordVersion.addField(recordField); + } + } + + someRecords.push(record); + + return someRecords; + }, this), records, someRecordValues[i]); + } +//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 4: " + res); return res;}); + innerDeferredResult.addCallback(MochiKit.Async.succeed, records); +//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 5: " + res); return res;}); + innerDeferredResult.callback(); + + return innerDeferredResult; + }, this)); + deferredResult.callback(someData); + + return deferredResult; + }, + + + //......................................................................... + + 'processRoboFormSafenotesValues': function(someData) { + var deferredResult; + + deferredResult = new MochiKit.Async.Deferred(); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 1: "/* + res*/); return res;}); + deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'parseImportData'); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 2: "/* + res*/); return res;}); + deferredResult.addCallback(function(someData) { + var result; + var data; + + data = someData.replace(/\r?\n/g, ""); + result = data.match(/\.*?\<\/TABLE\>/g); + + return result; + }); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 3: "/* + res*/); return res;}); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 3.1: " + res.length); return res;}); + deferredResult.addCallback(function(res) { + return Clipperz.NotificationCenter.deferredNotification(this, 'updatedProgressState', {steps:(res.length)}, res); + }) +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues - 4: "/* + res*/); return res;}); + deferredResult.addCallback(MochiKit.Base.bind(function(someRecordValues) { + var innerDeferredResult; + var records; + var i,c; + + innerDeferredResult = new MochiKit.Async.Deferred(); + records = []; + + c = someRecordValues.length; + for(i=0; i/g, ""); + hasNotes = false; + + /\ + caption = RegExp.$1; +//MochiKit.Logging.logDebug("caption: " + caption); + + /\ + wordbreakfield = RegExp.$1; +//MochiKit.Logging.logDebug("subcaption: " + subcaption); + + record = new Clipperz.PM.DataModel.Record({user:this.user()}); + recordVersion = record.currentVersion() + + record.setLabel(caption); + record.setNotes(wordbreakfield); + + someRecords.push(record); + + return someRecords; + }, this), records, someRecordValues[i]); + } +//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 4: " + res); return res;}); + innerDeferredResult.addCallback(MochiKit.Async.succeed, records); +//innerDeferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("RoboFormImportComponent.processRoboFormValues __inner loop__ - 5: " + res); return res;}); + innerDeferredResult.callback(); + + return innerDeferredResult; + }, this)); + deferredResult.callback(someData); + + return deferredResult; + }, + + + //------------------------------------------------------------------------- + __syntaxFix__: "syntax fix" +}); + -- cgit v0.9.0.2
(.*?)\<\/TD\>/.test(data); // 110mb(.*?)\<\/TD\>/.test(data); // 7759500