summaryrefslogtreecommitdiff
path: root/frontend
Side-by-side diff
Diffstat (limited to 'frontend') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/DataModel/Record.js9
-rw-r--r--frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js2
2 files changed, 5 insertions, 6 deletions
diff --git a/frontend/beta/js/Clipperz/PM/DataModel/Record.js b/frontend/beta/js/Clipperz/PM/DataModel/Record.js
index d6ebb39..f89f79c 100644
--- a/frontend/beta/js/Clipperz/PM/DataModel/Record.js
+++ b/frontend/beta/js/Clipperz/PM/DataModel/Record.js
@@ -186,215 +186,214 @@ Clipperz.PM.DataModel.Record.prototype = MochiKit.Base.update(null, {
return Clipperz.Base.serializeJSON(result);
},
//-------------------------------------------------------------------------
'shouldLoadData': function() {
return this._shouldLoadData;
},
'setShouldLoadData': function(aValue) {
this._shouldLoadData = aValue;
},
//-------------------------------------------------------------------------
'shouldDecryptData': function() {
return this._shouldDecryptData;
},
'setShouldDecryptData': function(aValue) {
this._shouldDecryptData = aValue;
},
//-------------------------------------------------------------------------
'shouldProcessData': function() {
return this._shouldProcessData;
},
'setShouldProcessData': function(aValue) {
this._shouldProcessData = aValue;
},
//-------------------------------------------------------------------------
'loadData': function() {
var result;
//MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.loadData - this: " + this);
if (this.shouldLoadData()) {
var deferredResult;
deferredResult = new MochiKit.Async.Deferred();
deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'loadingRecordData');
deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'getRecordDetail', {reference: this.reference()});
deferredResult.addCallback(MochiKit.Base.method(this,'setServerData'));
deferredResult.callback();
result = deferredResult;
} else {
result = MochiKit.Async.succeed(this.serverData());
}
//MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.loadData");
return result;
},
//-------------------------------------------------------------------------
'decryptData': function(anEncryptedData) {
var result;
//MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.decryptData - this: " + this + " (" + anEncryptedData + ")");
if (this.shouldDecryptData()) {
var deferredResult;
deferredResult = new MochiKit.Async.Deferred();
deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'decryptingRecordData');
deferredResult.addCallback(Clipperz.PM.Crypto.deferredDecrypt, this.key(), anEncryptedData['data'], anEncryptedData['version']);
deferredResult.addCallback(function(anEncryptedData, someDecryptedValues) {
var result;
result = anEncryptedData;
result['data'] = someDecryptedValues;
return result;
}, anEncryptedData);
deferredResult.addCallback(MochiKit.Base.method(this, 'setDecryptedData'));
deferredResult.callback();
result = deferredResult;
} else {
result = MochiKit.Async.succeed(this.decryptedData());
}
//MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.decryptData");
return result;
},
//-------------------------------------------------------------------------
'processData': function(someValues) {
//MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Record.processData");
//MochiKit.Logging.logDebug("--- Record.processData: " + Clipperz.Base.serializeJSON(someValues));
if (this.shouldProcessData()) {
var currentVersionParameters;
-console.log("Record.processData", someValues);
this.processDataToExtractLegacyValues(someValues['data']);
if (typeof(someValues['data']['notes']) != 'undefined') {
this.setNotes(someValues['data']['notes']);
}
if (someValues['data']['currentVersionKey'] != null) {
this.setCurrentVersionKey(someValues['data']['currentVersionKey']);
} else {
this.setCurrentVersionKey(this.key());
}
-// community edition doesn't currently pass version
-// information
+// community edition doesn't currently pass version information
if (someValues['versions'] == null) {
currentVersionParameters = someValues['currentVersion'];
} else {
currentVersionParameters = someValues['versions'][someValues['currentVersion']];
}
-console.log("Record.processData - this.currentVersionKey()", this.currentVersionKey());
-console.log("Record.processData - currentVersionParameters", currentVersionParameters);
+//- currentVersionParameters = someValues['currentVersion'];
+// currentVersionParameters = someValues['versions'][someValues['currentVersion']];
+
currentVersionParameters['key'] = this.currentVersionKey();
this.setCurrentVersion(new Clipperz.PM.DataModel.RecordVersion(this, currentVersionParameters));
if (someValues['data']['directLogins'] != null) {
var directLoginReference;
for (directLoginReference in someValues['data']['directLogins']) {
var directLogin;
var directLoginParameters;
directLoginParameters = someValues['data']['directLogins'][directLoginReference];
directLoginParameters.record = this;
directLoginParameters.reference = directLoginReference;
directLogin = new Clipperz.PM.DataModel.DirectLogin(directLoginParameters);
this.addDirectLogin(directLogin, true);
}
}
this.setShouldProcessData(false);
}
Clipperz.NotificationCenter.notify(this, 'recordDataReady');
//MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Record.processData");
//MochiKit.Logging.logDebug("<<< Record.processData");
return this;
},
//-------------------------------------------------------------------------
'processDataToExtractLegacyValues': function(someValues) {
//MochiKit.Logging.logDebug(">>> Record.processDataToExtractLegacyValues");
if (someValues['data'] != null) {
this.setNotes(someValues['data']);
}
if (
(typeof(someValues['loginFormData']) != "undefined")
&& (typeof(someValues['loginBindings'] != "undefined"))
&& (someValues['loginFormData'] != "")
&& (someValues['loginBindings'] != "")
) {
var directLogin;
directLogin = new Clipperz.PM.DataModel.DirectLogin({
record:this,
label:this.label() + Clipperz.PM.Strings['newDirectLoginLabelSuffix'],
reference:Clipperz.Crypto.SHA.sha256(new Clipperz.ByteArray(this.label() +
someValues['loginFormData'] +
someValues['loginBindings'])).toHexString().substring(2),
formData:Clipperz.Base.evalJSON(someValues['loginFormData']),
legacyBindingData:Clipperz.Base.evalJSON(someValues['loginBindings']),
bookmarkletVersion:'0.1'
});
this.addDirectLogin(directLogin, true);
}
//MochiKit.Logging.logDebug("<<< Record.processDataToExtractLegacyValues");
},
//-------------------------------------------------------------------------
'getReadyBeforeUpdatingVersionValues': function() {
},
//-------------------------------------------------------------------------
'addNewField': function() {
var newField;
//MochiKit.Logging.logDebug(">>> Record.addNewField - " + this);
this.getReadyBeforeUpdatingVersionValues();
newField = this.currentVersion().addNewField();
Clipperz.NotificationCenter.notify(this, 'recordUpdated');
//MochiKit.Logging.logDebug("<<< Record.addNewField");
return newField;
},
//-------------------------------------------------------------------------
'removeField': function(aField) {
this.getReadyBeforeUpdatingVersionValues();
this.currentVersion().removeField(aField);
Clipperz.NotificationCenter.notify(this, 'recordUpdated');
},
'removeEmptyFields': function() {
MochiKit.Iter.forEach(MochiKit.Base.values(this.currentVersion().fields()), MochiKit.Base.bind(function(aField) {
if (aField.isEmpty()) {
this.removeField(aField);
// this.currentVersion().removeField(aField);
}
}, this));
},
//-------------------------------------------------------------------------
diff --git a/frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js b/frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js
index 299ebc7..ab1bb0f 100644
--- a/frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js
+++ b/frontend/beta/js/Clipperz/PM/Strings/Strings_en-US.js
@@ -415,193 +415,193 @@ Clipperz.PM.Strings.Languages['en-us'] = {
<p>JSON enables a “lossless” export of your cards. All the information will be preserved, including direct login configurations.</p>\
<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.</p>\
<p>Click on the link below to start the export process.</p>",
'exportLinkLabel': "Export to JSON",
'exportDataInProgressDescription': "<h4>Exporting, please wait while your data are being processed …</h4>",
'exportDataDescription': "\
<h4>Instructions</h4>\
<p>Copy the text below to your favorite editor and save it. (e.g. “clipperz_export_20071217.json”)</p>",
// Contacts panel
'contactsTabLabel': "Contacts",
'contactsTabTitle': "Contacts",
//Tools panel - password generator
'passwordGeneratorTabLabel': "Password generator",
'bookmarkletTabLabel': "Bookmarklet",
'compactTabLabel': "Compact edition",
'httpAuthTabLabel': "HTTP authentication",
'passwordGeneratorTabTitle': "Password generator",
'bookmarkletTabTitle': "Bookmarklet",
'compactTabTitle': "Compact edition",
'httpAuthTabTitle': "HTTP authentication",
// Tools panel - password generator - description
'paswordGeneratorTabDescription': "<p></p>",
'passwordGeneratorTabButtonLabel': "Generate password",
// Tools panel - bookmarklet
'bookmarkletTabLabel': "Bookmarklet",
'bookmarkletTabTitle': "Bookmarklet",
'bookmarkletTabDescription': "\
<!-- FIX CSS DONE! --> \
<p>A bookmarklet is a simple “one-click” tool that can perform very useful tasks. It can be saved and used like a normal web page bookmark.</p>\
<p>The Clipperz bookmarklet will help you to quickly create new cards and new “direct logins” within existing cards.</p>\
<p><b>Please note that the bookmarklet does not include any information related to your account (e.g. your username or passphrase), the bookmarklet is a general tool containing the same code for every Clipperz user.</b></p>\
<h3>How to install the bookmarklet</h3>\
<h>Firefox, Camino, Opera, Safari</h5>\
<ol>\
<li><p>Make sure that the “Bookmarks Bar” is displayed by selecting “View > Toolbars > Bookmarks”, or similar menu items, from the browser menu.</p></li>\
<li><p>Drag and drop the “Add to Clipperz” link below to the bookmark bar.</p></li>\
</ol>\
\
<h5>Internet Explorer</h5>\
<ol>\
<li><p>Make sure that the “Links” toolbar is displayed by selecting “View > Toolbars > Links” from the browser menu.</p></li>\
<li><p>Right-click on the “Add to Clipperz” link below.</p></li>\
<li><p>Select “Add to favorites” from the contextual menu.</p></li>\
<li><p>Click “Yes” for any security message that pops up.</p></li>\
<li><p>Open the “Links” folder and click “OK”</p></li>\
</ol>",
'bookmarkletTabBookmarkletTitle': "Add to Clipperz",
// Tools panel - bookmarklet - instructions
'bookmarkletTabInstructions': "\
<!-- FIX CSS DONE! --> \
<h3>How to create a new card inclusive of a “direct login” link to an online service</h3>\
<ol>\
<li><p>Open the web page where the login form is hosted. (this is the page where you usually enter your sign-in credentials)</p></li>\
<li><p>Launch the bookmarklet by clicking on it: a pop-up window will appear over the web page.</p></li>\
<li><p>Copy to the clipboard the content of the large text area within the pop-up. (ctrl-C)</p></li>\
<li><p>Enter your Clipperz account and click on the <b>Add new card</b> button.</p></li>\
<li><p>Select the “Direct login” template and paste the content of the clipboard to the large text area in the form. (ctrl-V)</p></li>\
<li><p>Press the <b>Create</b> button, complete and review the details, then click <b>Save</b>.</p></li>\
</ol>\
\
<h3>How to add a “direct login” link to an existing card</h3>\
<ol>\
<li><p>Same as above.</p></li>\
<li><p>Same as above.</p></li>\
<li><p>Same as above.</p></li>\
<li><p>Enter your Clipperz account and select the card containing the credentials for the web service you just visited and click the <b>Edit</b> button.</p></li>\
<li><p>Paste the content of the clipboard to the large text area in the “Direct logins” section. (ctrl-V)</p></li>\
<li><p>Press the <b>Add direct login</b> button, review the details and then click <b>Save</b>.</p></li>\
</ol>\
\
<p></p>\
<p>Further information about the bookmarklet are <a href=\"http://www.clipperz.com/support/user_guide/bookmarklet\" target=\"_blank\">available here</a>.</p>",
// Tools panel - Compact - instructions
'compactTabDescription': "\
<!-- FIX CSS DONE! --> \
<p>Clipperz Compact is a special version of Clipperz designed to be opened in the Firefox sidebar.</p>\
<p>Its purpose is to keep your collection of “direct logins” always at hand. Read more <a href=\"http://www.clipperz.com/support/user_guide/clipperz_compact\", target=\"blank\">here</a></p>\
\
<h3>How to launch Clipperz Compact in the sidebar</h3>\
<ol>\
<li><p>Get Firefox! Sidebars are only available in Firefox and you need to switch to Firefox in order to enjoy the convenience of Clipperz Compact.</p></li>\
<li>\
<p>Add the following URL to Firefox bookmarks, or even better, drag it to the bookmark bar.</p>\
- <div id=\"compactLinkBox\"><a href=\"index.html?compact\" target=\"_search\">Clipperz Compact</a></div>\
+ <div id=\"compactLinkBox\"><a href=\"./index.html?compact\" target=\"_search\">Clipperz Compact</a></div>\
</li>\
<li><p>Change the properties of the bookmark so that “load this bookmark in the sidebar” is checked.</p></li>\
</ol>\
\
<h5>Added bonus: Clipperz Compact works also in Opera’s panel.</h5>",
// Tools panel - HTTP authentication - instructions
'httpAuthTabDescription': "\
<!-- FIX CSS DONE! --> \
<p>HTTP authentication is a method designed to allow a web browser to provide credentials – in the form of a username and password – including them in a website address (HTTP or HTTPS URL).</p>\
<p>Nowadays it is rarely used, but it can still be found on small, private websites. You can tell that a website is protected by HTTP authentication when the browser displays a pop-up window to enter username and password.</p>\
<p>Unfortunately the Clipperz bookmarklet does not work on websites that use HTTP authentication. However you can still create a “direct login”.</p>\
\
<h3>How to create a “direct login” for a website that uses HTTP authentication</h3>\
<ol>\
<li><p>Store website URL, username and password in a new card.</p></li>\
<li><p>Copy the configuration below and paste it to the large text area in the “Direct logins” section of the new card.</p></li>\
<li><p>Press the <b>Add direct login</b> button, bind URL, username and password fields and then click <b>Save</b>.</p></li>\
</ol>\
\
<h5><a href=\"http://support.microsoft.com/kb/834489\" target=\"_blank\">Warning: Internet Explorer does not support HTTP authentication.</a></h5>",
// Direct logins block
'mainPanelDirectLoginBlockLabel': "Direct logins",
'directLinkReferenceShowButtonLabel': "show",
// Direct logins - blank slate
'mainPanelDirectLoginBlockDescription': "\
<!-- FIX CSS DONE! --> \
<p>Add “direct logins” to sign in to your web accounts without typing usernames and passwords!</p>\
<p>“Direct logins” greatly enhance your password security since you can:</p>\
<ul>\
<li><p>conveniently adopt and enter complex passwords;</p></li>\
<li><p>never re-use the same and easy-to-guess password.</p></li>\
</ul>\
<p>Simple and quick configuration with the <b>Clipperz bookmarklet</b>.</p>\
<a href=\"http://www.clipperz.com/support/user_guide/direct_logins\" target=\"_blank\">Learn more about “direct logins”</a>",
// Cards block
'mainPanelRecordsBlockLabel': "Cards",
'mainPanelAddRecordButtonLabel': "Add new card",
'mainPanelRemoveRecordButtonLabel': "Delete card",
// Cards block - filter tabs
'mainPanelRecordFilterBlockAllLabel': "all",
'mainPanelRecordFilterBlockTagsLabel': "tags",
'mainPanelRecordFilterBlockSearchLabel': "search",
// Cards block - blank slate
'recordDetailNoRecordAtAllTitle': "Welcome to Clipperz!",
'recordDetailNoRecordAtAllDescription': "\
<h5>Get started by adding cards to your account.</h5>\
<p>Cards are simple and flexible forms where you can store your passwords and any other confidential data.</p>\
<p>Cards could contain credentials for accessing a web site, the combination of your bicycle lock, details of your credit card, …</p>\
\
<h5>Don't forget the Clipperz bookmarklet!</h5>\
<p>Before you start, install the “Add to Clipperz” bookmarklet: it will make creating cards easier and more fun.</p>\
<p>Go to the “Tools” tab to discover how to install it and how it use it.</p>\
<p></p>\
<p>Then simply click the <b>\"Add new card\"</b> button and enjoy your Clipperz account.</p>\
<p></p>\
<a href=\"http://www.clipperz.com/support/user_guide/managing_cards\" target=\"_blank\">Learn more about creating and managing cards</a>",
// Cards block - new card wizard - bookmarklet configuration
'newRecordWizardTitleBox': "\
<h5>Please select a template</h5>\
<p>Cards are simple and flexible forms where you can store passwords or any other confidential data.</p>\
<p>Start choosing one of the templates below. You can always customize your cards later by adding or removing fields.</p>",
'newRecordWizardBookmarkletConfigurationTitle': "Direct login",
'newRecordWizardBookmarkletConfigurationDescription': "\
<p>Paste below the configuration code generated by the Clipperz bookmarklet.</p>\
<p>A new card complete with a direct login to your web account will be created.</p>",
'newRecordWizardCreateButtonLabel': "Create",
'newRecordWizardCancelButtonLabel': "Cancel",
// Create new card - Donation splash
'donateSplashPanelTitle': "Support Clipperz, make a donation today!",
'donateSplashPanelDescription': "\
<!-- FIX CSS DONE! --> \
<p>A few good reasons to make a donation:</p>\
<ul>\
<li><p>support the development of new features</p></li>\
<li><p>keep Clipperz free</p></li>\
<li><p>show appreciation for our hard work</p></li>\
</ul>\
<p>For any further information, please visit our <a href=\"http://www.clipperz.com/donations\" target=\"_blank\">Donations page</a>.</p>\
<p><b>Ready to donate?</b></p>",
'donateCloseButtonLabel': "Not yet",
'donateDonateButtonLabel': "Yes",
// Card templates
'recordTemplates': {