Diffstat (limited to 'frontend/beta/js/Clipperz/CSVProcessor.js') (more/less context) (show whitespace changes)
-rw-r--r-- | frontend/beta/js/Clipperz/CSVProcessor.js | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/CSVProcessor.js b/frontend/beta/js/Clipperz/CSVProcessor.js index ec94206..f429468 100644 --- a/frontend/beta/js/Clipperz/CSVProcessor.js +++ b/frontend/beta/js/Clipperz/CSVProcessor.js @@ -1,214 +1,212 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +This file is part of Clipperz, the online password manager. For further information about its features and functionalities please refer to http://www.clipperz.com. -* Clipperz Community Edition 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. +* Clipperz 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. -* Clipperz Community Edition 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. +* Clipperz 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 Clipperz Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } Clipperz.CSVProcessor = function(args) { args = args || {}; // this._status = undefined; // this._error_input = undefined; // this._string = undefined; // this._fields = undefined; this._quoteChar = args['quoteChar'] || "\042"; this._eol = args['eol'] || ""; this._escapeChar = args['escapeChar'] || "\042"; this._separatorChar = args['separatorChar'] || ","; this._binary = args['binary'] || false; this._alwaysQuote = args['alwaysQuote'] || false; return this; } //============================================================================= Clipperz.CSVProcessor.prototype = MochiKit.Base.update(null, { //------------------------------------------------------------------------- 'quoteChar': function() { return this._quoteChar; }, //------------------------------------------------------------------------- 'eol': function() { return this._eol; }, //------------------------------------------------------------------------- 'escapeChar': function() { return this._escapeChar; }, //------------------------------------------------------------------------- 'separatorChar': function() { return this._separatorChar; }, 'setSeparatorChar': function(aValue) { this._separatorChar = aValue; }, //------------------------------------------------------------------------- 'binary': function() { return this._binary; }, //------------------------------------------------------------------------- 'alwaysQuote': function() { return this._alwaysQuote; }, //------------------------------------------------------------------------- /* 'parse': function(aValue) { var result; var lines; var parameter; //MochiKit.Logging.logDebug(">>> CSVProcessor.parse"); result = []; lines = aValue.replace(/\r?\n/g, "\n").replace(/^\n* /g, "").replace(/\n$/g, "");; parameter = { line: lines } do { var fields; fields = this.parseLine(parameter); if (fields != null) { result.push(fields); } parameter.line = parameter.line.replace(/^\n* /g, "").replace(/\n$/g, ""); //MochiKit.Logging.logDebug("line: '" + parameter.line + "'"); } while (parameter.line != ""); //MochiKit.Logging.logDebug("--- CSVProcessor.parse - result: " + Clipperz.Base.serializeJSON(result)); //MochiKit.Logging.logDebug("<<< CSVProcessor.parse"); return result; }, */ //------------------------------------------------------------------------- 'deferredParse_core': function(aContext) { var deferredResult; if (aContext.line == "") { deferredResult = MochiKit.Async.succeed(aContext.result); } else { var fields; fields = this.parseLine(aContext); if (fields != null) { aContext.result.push(fields); } aContext.line = aContext.line.replace(/^\n*/g, "").replace(/\n$/g, ""); deferredResult = new MochiKit.Async.Deferred(); deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'importProcessorProgressUpdate', {status:'processing', size:aContext.size, progress:(aContext.size - aContext.line.length)}); deferredResult.addCallback(MochiKit.Async.wait, 0.2); deferredResult.addCallback(MochiKit.Base.method(this, 'deferredParse_core')) deferredResult.callback(aContext); } return deferredResult; }, //......................................................................... 'deferredParse': function(aValue) { var deferredResult; var lines; var context; lines = aValue.replace(/\r?\n/g, "\n").replace(/^\n*/g, "").replace(/\n$/g, ""); context = { line: lines, size: lines.length, result: [] } deferredResult = new MochiKit.Async.Deferred(); deferredResult.addCallback(MochiKit.Base.method(this, 'deferredParse_core')); deferredResult.callback(context); return deferredResult; }, //------------------------------------------------------------------------- 'parseLine': function(aParameter) { var result; var palatable; var line; var processedField; result = []; do { processedField = this.parseField(aParameter); if (processedField != null) { result.push(processedField) }; } while (processedField != null); return result; }, //------------------------------------------------------------------------- 'parseField': function(aParameter) { var result; var inQuotes; var validRegExp; var singleQuoteBeginRegexp; var escapedQuoteBeginRegexp; var singleQuoteCommaEndRegexp; var singleQuoteNewLineEndRegexp; var commaBeginRegexp; var newlineRegexp; singleQuoteBeginRegexp = new RegExp("^" + '\\' + this.quoteChar()); escapedQuoteBeginRegexp = new RegExp("^" + '\\' + this.escapeChar() + '\\' + this.quoteChar()); singleQuoteCommaEndRegexp = new RegExp("^" + '\\' + this.quoteChar() + '\\' + this.separatorChar()); singleQuoteNewLineEndRegexp = new RegExp("^" + '\\' + this.quoteChar() + "\n"); commaBeginRegexp = new RegExp("^" + '\\' + this.separatorChar()); newlineRegexp = new RegExp("^\n"); |