Updated to React 13.1
This commit is contained in:
parent
40d20bb3ac
commit
80e149a8a9
57
frontend/delta/js/Clipperz/PM/UI/Components.js
Normal file
57
frontend/delta/js/Clipperz/PM/UI/Components.js
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
|
||||
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');
|
||||
|
||||
// code snippet taken on March 23, 2015 from here: https://github.com/JedWatson/classnames/blob/master/index.js
|
||||
// This code is licensed with the The MIT License (MIT) - Copyright (c) 2015 Jed Watson
|
||||
// https://github.com/JedWatson/classnames/blob/master/LICENSE
|
||||
|
||||
Clipperz.PM.UI.Components = {
|
||||
'classNames': function () {
|
||||
var classes = '';
|
||||
var arg;
|
||||
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
arg = arguments[i];
|
||||
if (!arg) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ('string' === typeof arg || 'number' === typeof arg) {
|
||||
classes += ' ' + arg;
|
||||
} else if (Object.prototype.toString.call(arg) === '[object Array]') {
|
||||
classes += ' ' + classNames.apply(null, arg);
|
||||
} else if ('object' === typeof arg) {
|
||||
for (var key in arg) {
|
||||
if (!arg.hasOwnProperty(key) || !arg[key]) {
|
||||
continue;
|
||||
}
|
||||
classes += ' ' + key;
|
||||
}
|
||||
}
|
||||
}
|
||||
return classes.substr(1);
|
||||
}
|
||||
}
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
"use strict";
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.AccountStatus = React.createClass({
|
||||
Clipperz.PM.UI.Components.AccountStatusClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
// 'currentSubscriptionType': React.PropTypes.oneOf(['EARLY_ADOPTER', 'FRIEND', 'FAN', 'DEVOTEE', 'PATRON', 'TRIAL', 'TRIAL_EXPIRED', 'PAYMENT_FAILED_2', 'EXPIRED', 'PAYMENT_FAILED', 'VERIFYING_PAYMENT', 'VERIFYING_PAYMENT_2']).isRequired,
|
||||
@ -54,11 +54,11 @@ Clipperz.PM.UI.Components.AccountStatus = React.createClass({
|
||||
proxyInfoClasses[this.props['proxyType']] = true;
|
||||
|
||||
return React.DOM.div({'className':'miscInfo'}, [
|
||||
React.DOM.div({'className':React.addons.classSet(proxyInfoClasses)}, [
|
||||
React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(proxyInfoClasses)}, [
|
||||
React.DOM.span({'className':'proxyDescription'}, this.props['proxyTypeDescription']),
|
||||
React.DOM.span({'className':'referenceDate'}, this.props['referenceDate'])
|
||||
]),
|
||||
React.DOM.div({'className':React.addons.classSet(accountInfoClasses)}, [
|
||||
React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(accountInfoClasses)}, [
|
||||
React.DOM.span({'className':'level'}, Clipperz.PM.DataModel.Feature['featureSets'][this.props['featureSet']]),
|
||||
React.DOM.span({'className':'expirationMessage'}, "expiring on"),
|
||||
React.DOM.span({'className':'expirationDate'}, this.props['expirationDate'])
|
||||
@ -69,3 +69,5 @@ Clipperz.PM.UI.Components.AccountStatus = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.AccountStatus = React.createFactory(Clipperz.PM.UI.Components.AccountStatusClass);
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.Button = React.createClass({
|
||||
Clipperz.PM.UI.Components.ButtonClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
'eventName': React.PropTypes.string.isRequired,
|
||||
@ -42,7 +42,7 @@ Clipperz.PM.UI.Components.Button = React.createClass({
|
||||
classes[this.props['className']] = true;
|
||||
};
|
||||
|
||||
return React.DOM.div({className:React.addons.classSet(classes), onClick:this.props['handler']}, [
|
||||
return React.DOM.div({className:Clipperz.PM.UI.Components.classNames(classes), onClick:this.props['handler']}, [
|
||||
React.DOM.div({className:this.props['eventName']}, [
|
||||
React.DOM.h3({className:'label'}, this.props['label'])
|
||||
])
|
||||
@ -51,3 +51,5 @@ Clipperz.PM.UI.Components.Button = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Button = React.createFactory(Clipperz.PM.UI.Components.ButtonClass);
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.CardToolbar = React.createClass({
|
||||
Clipperz.PM.UI.Components.CardToolbarClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
// 'style': React.PropTypes.oneOf(['extra-short', 'narrow', 'wide', 'extra-wide']).isRequired,
|
||||
@ -107,3 +107,5 @@ Clipperz.PM.UI.Components.CardToolbar = React.createClass({
|
||||
|
||||
//============================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.CardToolbar = React.createFactory(Clipperz.PM.UI.Components.CardToolbarClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.CommandToolbar = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.CommandToolbarClass = React.createClass({
|
||||
|
||||
//============================================================================
|
||||
|
||||
@ -94,7 +94,7 @@ Clipperz.PM.UI.Components.Cards.CommandToolbar = React.createClass({
|
||||
classes['enabled'] = aCommand['enabled'];
|
||||
classes['disabled'] = !aCommand['enabled'];
|
||||
|
||||
return React.DOM.li({'className':React.addons.classSet(classes), 'onClick':aCommand['enabled'] ? commandHandler : null, 'data-broadcast-event':aCommand['broadcastEvent']}, [React.DOM.span({}, aCommand['label'])]);
|
||||
return React.DOM.li({'className':Clipperz.PM.UI.Components.classNames(classes), 'onClick':aCommand['enabled'] ? commandHandler : null, 'data-broadcast-event':aCommand['broadcastEvent']}, [React.DOM.span({}, aCommand['label'])]);
|
||||
}, commandValues));
|
||||
},
|
||||
|
||||
@ -105,7 +105,7 @@ Clipperz.PM.UI.Components.Cards.CommandToolbar = React.createClass({
|
||||
React.DOM.div({}, [
|
||||
React.DOM.div({'className':'back', 'onClick': this.exit}, 'back'),
|
||||
React.DOM.div({'className':'cardMenuOptions', 'onClick':this.toggleMenu}, 'commands'),
|
||||
React.DOM.div({'className':React.addons.classSet({'commandMenu':true, 'show':this.state['showCommandMenu']})}, [
|
||||
React.DOM.div({'className':Clipperz.PM.UI.Components.classNames({'commandMenu':true, 'show':this.state['showCommandMenu']})}, [
|
||||
React.DOM.div({'className':'commandMenuMask', 'onClick':this.toggleMenu}),
|
||||
React.DOM.div({'className':'commandMenu'}, this.renderCommands(true))
|
||||
])
|
||||
@ -139,8 +139,10 @@ Clipperz.PM.UI.Components.Cards.CommandToolbar = React.createClass({
|
||||
};
|
||||
classes[style] = true;
|
||||
|
||||
return React.DOM.div({'className':React.addons.classSet(classes)}, this.renderLayout(style));
|
||||
return React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(classes)}, this.renderLayout(style));
|
||||
},
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.CommandToolbar = React.createFactory(Clipperz.PM.UI.Components.Cards.CommandToolbarClass);
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.Detail = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.DetailClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
'allTags': React.PropTypes.array,
|
||||
@ -55,3 +55,5 @@ Clipperz.PM.UI.Components.Cards.Detail = React.createClass({
|
||||
return result;
|
||||
},
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.Detail = React.createFactory(Clipperz.PM.UI.Components.Cards.DetailClass);
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.Edit = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.EditClass = React.createClass({
|
||||
|
||||
//============================================================================
|
||||
|
||||
@ -327,7 +327,7 @@ console.log("DROP"); //, anEvent);
|
||||
cardFieldValueClasses[aField['actionType']] = true;
|
||||
cardFieldValueClasses['hidden'] = aField['isHidden'];
|
||||
|
||||
return React.DOM.div({'className':React.addons.classSet(cardFieldClasses), 'id':ref, 'key':ref,
|
||||
return React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(cardFieldClasses), 'id':ref, 'key':ref,
|
||||
'data-reference':ref,
|
||||
'data-index':this.positionOfField(ref),
|
||||
'onDragOver':this.dragOver,
|
||||
@ -349,8 +349,8 @@ console.log("DROP"); //, anEvent);
|
||||
React.DOM.input({'_className_':'_fieldLabel_', 'onChange':this.handleChange(field, 'setLabel'), 'defaultValue':aField['label'], 'placeholder': "label"}),
|
||||
]),
|
||||
React.DOM.div({'className':'fieldValue'}, [
|
||||
// React.DOM.textarea({'className':React.addons.classSet(cardFieldValueClasses), 'onChange':this.handleChange(field, 'setValue'), 'defaultValue':aField['value'], 'placeholder': "value"}),
|
||||
Clipperz.PM.UI.Components.Cards.TextArea({'className':React.addons.classSet(cardFieldValueClasses), 'onChange':this.handleChange(field, 'setValue'), 'onKeyDown':this.handleKeyDown(field), 'defaultValue':aField['value'], 'placeholder': "value"}),
|
||||
// React.DOM.textarea({'className':Clipperz.PM.UI.Components.classNames(cardFieldValueClasses), 'onChange':this.handleChange(field, 'setValue'), 'defaultValue':aField['value'], 'placeholder': "value"}),
|
||||
Clipperz.PM.UI.Components.Cards.TextArea({'className':Clipperz.PM.UI.Components.classNames(cardFieldValueClasses), 'onChange':this.handleChange(field, 'setValue'), 'onKeyDown':this.handleKeyDown(field), 'defaultValue':aField['value'], 'placeholder': "value"}),
|
||||
])
|
||||
]),
|
||||
React.DOM.div({'className':'fieldAction'}, [
|
||||
@ -423,7 +423,7 @@ console.log("DROP"); //, anEvent);
|
||||
//console.log("RENDER CARD EDIT", this.props['showGlobalMask']);
|
||||
return React.DOM.div({'className':'editWrapper'}, [
|
||||
this.props['showGlobalMask'] ? null : React.DOM.div({'className':'mask'}),
|
||||
React.DOM.div({'className':React.addons.classSet(classes)},[
|
||||
React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(classes)},[
|
||||
Clipperz.PM.UI.Components.Cards.EditToolbar(this.props),
|
||||
React.DOM.div({'className':'content'}, [
|
||||
this.renderLabel(this.props['label']),
|
||||
@ -440,3 +440,5 @@ console.log("DROP"); //, anEvent);
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.Edit = React.createFactory(Clipperz.PM.UI.Components.Cards.EditClass);
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.EditToolbar = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.EditToolbarClass = React.createClass({
|
||||
|
||||
//============================================================================
|
||||
|
||||
@ -59,7 +59,7 @@ Clipperz.PM.UI.Components.Cards.EditToolbar = React.createClass({
|
||||
};
|
||||
classes[style] = true;
|
||||
|
||||
return React.DOM.div({'className':React.addons.classSet(classes)}, [
|
||||
return React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(classes)}, [
|
||||
React.DOM.ul({}, [
|
||||
React.DOM.li({'onClick':this.cancel, 'className':'cancel'}, [React.DOM.span({}, "cancel")]),
|
||||
React.DOM.li({'onClick':this.save, 'className':'save'}, [React.DOM.span({}, "save")]),
|
||||
@ -69,3 +69,5 @@ Clipperz.PM.UI.Components.Cards.EditToolbar = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.EditToolbar = React.createFactory(Clipperz.PM.UI.Components.Cards.EditToolbarClass);
|
@ -25,7 +25,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.FavIcon = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.FavIconClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
'src': React.PropTypes.string,
|
||||
@ -53,4 +53,6 @@ Clipperz.PM.UI.Components.Cards.FavIcon = React.createClass({
|
||||
return React.DOM.img({'className':'favicon', 'src':this.state['src'] ? this.state['src'] : this.defaultIcon(), /*'onLoad':this.faviconEvent,*/ 'onError':this.faviconEvent}, this.props.children);
|
||||
},
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.FavIcon = React.createFactory(Clipperz.PM.UI.Components.Cards.FavIconClass);
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.List = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.ListClass = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
|
||||
@ -60,7 +60,7 @@ Clipperz.PM.UI.Components.Cards.List = React.createClass({
|
||||
'archived': anItem['_isArchived']
|
||||
};
|
||||
|
||||
result = React.DOM.li({'className':React.addons.classSet(classes), 'onClick': this.handleClick, 'key':anItem['_reference'], 'data-reference':anItem['_reference'], 'data-label':anItem['label']}, [
|
||||
result = React.DOM.li({'className':Clipperz.PM.UI.Components.classNames(classes), 'onClick': this.handleClick, 'key':anItem['_reference'], 'data-reference':anItem['_reference'], 'data-label':anItem['label']}, [
|
||||
// React.DOM.span({'className':'favicon'}, React.DOM.img({'onLoad':this.faviconEvent, 'onError':this.faviconEvent, 'onAbort':this.faviconEvent, 'src':anItem['favicon']})),
|
||||
React.DOM.span({'className':'favicon'}, Clipperz.PM.UI.Components.Cards.FavIcon({'src':anItem['favicon']})),
|
||||
React.DOM.span({'className':'label'}, anItem['label']),
|
||||
@ -80,10 +80,12 @@ Clipperz.PM.UI.Components.Cards.List = React.createClass({
|
||||
};
|
||||
classes[this.props['style']] = true;
|
||||
|
||||
return React.DOM.div({'key':'cardList', 'className':React.addons.classSet(classes)}, [
|
||||
return React.DOM.div({'key':'cardList', 'className':Clipperz.PM.UI.Components.classNames(classes)}, [
|
||||
this.isFeatureEnabled('LIST_CARDS') ? React.DOM.ul({}, MochiKit.Base.map(this.renderItem, cards)) : null
|
||||
]);
|
||||
},
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.List = React.createFactory(Clipperz.PM.UI.Components.Cards.ListClass);
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.TagEditor = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.TagEditorClass = React.createClass({
|
||||
|
||||
//============================================================================
|
||||
|
||||
@ -140,7 +140,7 @@ Clipperz.PM.UI.Components.Cards.TagEditor = React.createClass({
|
||||
'readWrite': !this.props['readOnly']
|
||||
};
|
||||
|
||||
return React.DOM.div({'className':React.addons.classSet(classes)}, [
|
||||
return React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(classes)}, [
|
||||
React.DOM.ul({},[
|
||||
MochiKit.Base.map(this.renderTag, this.props['selectedTags']),
|
||||
]),
|
||||
@ -150,3 +150,5 @@ Clipperz.PM.UI.Components.Cards.TagEditor = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.TagEditor = React.createFactory(Clipperz.PM.UI.Components.Cards.TagEditorClass);
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.TextArea = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.TextAreaClass = React.createClass({
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@ -107,4 +107,6 @@ Clipperz.PM.UI.Components.Cards.TextArea = React.createClass({
|
||||
return React.DOM.textarea(this.props, this.props.children);
|
||||
},
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.TextArea = React.createFactory(Clipperz.PM.UI.Components.Cards.TextAreaClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Cards');
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.View = React.createClass({
|
||||
Clipperz.PM.UI.Components.Cards.ViewClass = React.createClass({
|
||||
|
||||
//============================================================================
|
||||
|
||||
@ -189,14 +189,14 @@ Clipperz.PM.UI.Components.Cards.View = React.createClass({
|
||||
cardFieldActionClasses[aField['actionType']] = true;
|
||||
cardFieldActionClasses['active'] = this.state[aField['_reference']];
|
||||
|
||||
return React.DOM.div({'className':React.addons.classSet(cardFieldClasses)}, [
|
||||
return React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(cardFieldClasses)}, [
|
||||
React.DOM.div({'className':'fieldEditAction'}, null),
|
||||
React.DOM.div({'className':'fieldValues'}, [
|
||||
React.DOM.div({'className':'fieldLabel'}, aField['label']),
|
||||
React.DOM.div({'className':React.addons.classSet(cardFieldValueClasses)}, aField['value']),
|
||||
React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(cardFieldValueClasses)}, aField['value']),
|
||||
]),
|
||||
React.DOM.div({'className':'fieldAction'}, [
|
||||
React.DOM.span({'className':React.addons.classSet(cardFieldActionClasses), 'onClick':this.handleFieldAction(aField)}, aField['actionType'].toLowerCase() == 'password' ? 'view password' : aField['actionType'].toLowerCase())
|
||||
React.DOM.span({'className':Clipperz.PM.UI.Components.classNames(cardFieldActionClasses), 'onClick':this.handleFieldAction(aField)}, aField['actionType'].toLowerCase() == 'password' ? 'view password' : aField['actionType'].toLowerCase())
|
||||
])
|
||||
]);
|
||||
},
|
||||
@ -226,7 +226,7 @@ Clipperz.PM.UI.Components.Cards.View = React.createClass({
|
||||
'archived': this.props['_isArchived']
|
||||
}
|
||||
|
||||
return React.DOM.div({'className':React.addons.classSet(classes)},[
|
||||
return React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(classes)},[
|
||||
Clipperz.PM.UI.Components.Cards.CommandToolbar(this.props),
|
||||
React.DOM.div({'className':'content'}, [
|
||||
this.renderLabel(this.props['label']),
|
||||
@ -257,3 +257,5 @@ Clipperz.PM.UI.Components.Cards.View = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Cards.View = React.createFactory(Clipperz.PM.UI.Components.Cards.ViewClass);
|
||||
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.Checkbox = React.createClass({
|
||||
Clipperz.PM.UI.Components.CheckboxClass = React.createClass({
|
||||
// http://development.tobypitman.com/iphoneCheckboxes/iphoneCheckboxes2.html
|
||||
|
||||
propTypes: {
|
||||
@ -44,3 +44,5 @@ Clipperz.PM.UI.Components.Checkbox = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Checkbox = React.createFactory(Clipperz.PM.UI.Components.CheckboxClass);
|
||||
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.DialogBox = React.createClass({
|
||||
Clipperz.PM.UI.Components.DialogBoxClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
'info': React.PropTypes.object.isRequired,
|
||||
@ -57,7 +57,7 @@ console.log("DIALOG BOX - key UP", anEvent);
|
||||
'isDefault': answerInfo['isDefault']
|
||||
};
|
||||
|
||||
return React.DOM.div({'className':React.addons.classSet(classes), 'onClick':this.handleAnswerButton, 'data-answer-key':anAnswerInfoKey}, answerInfo['label'])
|
||||
return React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(classes), 'onClick':this.handleAnswerButton, 'data-answer-key':anAnswerInfoKey}, answerInfo['label'])
|
||||
},
|
||||
|
||||
//=========================================================================
|
||||
@ -74,3 +74,5 @@ console.log("DIALOG BOX - key UP", anEvent);
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.DialogBox = React.createFactory(Clipperz.PM.UI.Components.DialogBoxClass);
|
||||
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.ExpiredPanel = React.createClass({
|
||||
Clipperz.PM.UI.Components.ExpiredPanelClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
// featureSet: React.PropTypes.oneOf(['FULL', 'EXPIRED', 'TRIAL']).isRequired,
|
||||
@ -38,3 +38,5 @@ Clipperz.PM.UI.Components.ExpiredPanel = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.ExpiredPanel = React.createFactory(Clipperz.PM.UI.Components.ExpiredPanelClass);
|
||||
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.MessageBox = React.createClass({
|
||||
Clipperz.PM.UI.Components.MessageBoxClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
'level': React.PropTypes.oneOf(['HIDE', 'INFO', 'WARNING', 'ERROR']).isRequired,
|
||||
@ -45,3 +45,5 @@ Clipperz.PM.UI.Components.MessageBox = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.MessageBox = React.createFactory(Clipperz.PM.UI.Components.MessageBoxClass);
|
||||
|
@ -140,3 +140,4 @@ Clipperz.Base.extend(Clipperz.PM.UI.Components.Overlay, Object, {
|
||||
//-------------------------------------------------------------------------
|
||||
__syntaxFix__: "syntax fix"
|
||||
});
|
||||
|
||||
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Pages');
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.CardDetailPage = React.createClass({
|
||||
Clipperz.PM.UI.Components.Pages.CardDetailPageClass = React.createClass({
|
||||
propTypes: {
|
||||
'allTags': React.PropTypes.array,
|
||||
},
|
||||
@ -55,3 +55,5 @@ Clipperz.PM.UI.Components.Pages.CardDetailPage = React.createClass({
|
||||
return Clipperz.PM.UI.Components.Cards.Detail(this.props);
|
||||
}
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.CardDetailPage = React.createFactory(Clipperz.PM.UI.Components.Pages.CardDetailPageClass);
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Pages');
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.ErrorPage = React.createClass({
|
||||
Clipperz.PM.UI.Components.Pages.ErrorPageClass = React.createClass({
|
||||
|
||||
getDefaultProps: function () {
|
||||
return {
|
||||
@ -46,3 +46,5 @@ Clipperz.PM.UI.Components.Pages.ErrorPage = React.createClass({
|
||||
// return new this.props.template({'innerComponent': this._render()});
|
||||
// }
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.ErrorPage = React.createFactory(Clipperz.PM.UI.Components.Pages.ErrorPageClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
"use strict";
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Pages');
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.LoginPage = React.createClass({
|
||||
Clipperz.PM.UI.Components.Pages.LoginPageClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
mode: React.PropTypes.oneOf(['CREDENTIALS','PIN']).isRequired,
|
||||
@ -119,12 +119,12 @@ Clipperz.PM.UI.Components.Pages.LoginPage = React.createClass({
|
||||
},
|
||||
|
||||
pinForm: function () {
|
||||
return React.DOM.form({'className':'loginForm pin', 'onChange':this.handleChange, 'onSubmit':this.handlePINSubmit}, [
|
||||
React.DOM.div(null,[
|
||||
return React.DOM.form({'className':'pinForm pin', 'onChange':this.handleChange, 'onSubmit':this.handlePINSubmit}, [
|
||||
React.DOM.div({'key':'pinFormDiv'},[
|
||||
React.DOM.label({'for':'pin'}, "pin"),
|
||||
React.DOM.input({'type':'text', 'name':'pin', 'ref':'pin', placeholder:"PIN", 'key':'pin', 'autocapitalize':'none'})
|
||||
]),
|
||||
React.DOM.button({'type':'submit', 'disabled':this.props.disabled, 'className':'button'}, "login")
|
||||
React.DOM.button({'key':'submitButton', 'type':'submit', 'disabled':this.props.disabled, 'className':'button'}, "login")
|
||||
]);
|
||||
},
|
||||
|
||||
@ -146,21 +146,23 @@ Clipperz.PM.UI.Components.Pages.LoginPage = React.createClass({
|
||||
// React.DOM.a({'key':'signup', 'onClick':this.handleRegistrationLinkClick}, "Sign up")
|
||||
// ]);
|
||||
|
||||
var registrationLink = React.DOM.a({'className':'registrationLink', 'key':'signup', 'onClick':this.handleRegistrationLinkClick}, "Sign up");
|
||||
var registrationLink = React.DOM.a({'key':'signup', 'className':'registrationLink', 'onClick':this.handleRegistrationLinkClick}, "Sign up");
|
||||
|
||||
return React.DOM.div({'className':'loginForm ' + this.props['style']}, [
|
||||
return React.DOM.div({'key':'loginForm', 'className':'loginForm ' + this.props['style']}, [
|
||||
React.DOM.header({'key':'header'}, 'clipperz'),
|
||||
React.DOM.div({'key':'form-wrapper', 'className':'form'}, [
|
||||
React.DOM.div({'key':'formWrapper', 'className':'form'}, [
|
||||
this.props.mode == 'PIN' ? this.pinForm() : this.loginForm(),
|
||||
]),
|
||||
React.DOM.footer({}, [
|
||||
React.DOM.footer({'key':'footer'}, [
|
||||
this.props['isNewUserRegistrationAvailable'] ? registrationLink : null,
|
||||
React.DOM.div({'className':'applicationVersion'}, [
|
||||
React.DOM.span({}, "application version"),
|
||||
React.DOM.a({'href':'https://github.com/clipperz/password-manager/commit/' + Clipperz_version, 'target':'github'}, Clipperz_version)
|
||||
React.DOM.div({'key':'applicationVersion', 'className':'applicationVersion'}, [
|
||||
React.DOM.span({'key':'applicationVersionLabel'}, "application version"),
|
||||
React.DOM.a({'key':'applicationVersionLink', 'href':'https://github.com/clipperz/password-manager/commit/' + Clipperz_version, 'target':'github'}, Clipperz_version)
|
||||
])
|
||||
])
|
||||
// this.props['isNewUserRegistrationAvailable'] ? registrationLink : null
|
||||
]);
|
||||
}
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.LoginPage = React.createFactory(Clipperz.PM.UI.Components.Pages.LoginPageClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Pages');
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.MainPage = React.createClass({
|
||||
Clipperz.PM.UI.Components.Pages.MainPageClass = React.createClass({
|
||||
|
||||
getDefaultProps: function () {
|
||||
return {
|
||||
@ -60,7 +60,7 @@ Clipperz.PM.UI.Components.Pages.MainPage = React.createClass({
|
||||
classes[this.props['style']] = true;
|
||||
|
||||
//console.log("MAIN PAGE", this.props['showGlobalMask']);
|
||||
return React.DOM.div({'className':React.addons.classSet(classes)}, [
|
||||
return React.DOM.div({'key':'mainPage', 'className':Clipperz.PM.UI.Components.classNames(classes)/*Clipperz.PM.UI.Components.classNames(classes)*/}, [
|
||||
this.props['style'] != 'extra-wide' ? Clipperz.PM.UI.Components.Panels.SelectionPanel(this.props) : null,
|
||||
Clipperz.PM.UI.Components.Panels.MainPanel(this.props),
|
||||
Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanel(this.props),
|
||||
@ -70,3 +70,5 @@ Clipperz.PM.UI.Components.Pages.MainPage = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.MainPage = React.createFactory(Clipperz.PM.UI.Components.Pages.MainPageClass);
|
||||
|
@ -23,7 +23,7 @@ refer to http://www.clipperz.com.
|
||||
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Pages');
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.RegistrationPage = React.createClass({
|
||||
Clipperz.PM.UI.Components.Pages.RegistrationPageClass = React.createClass({
|
||||
|
||||
getDefaultProps: function () {
|
||||
return {
|
||||
@ -160,69 +160,69 @@ Clipperz.PM.UI.Components.Pages.RegistrationPage = React.createClass({
|
||||
//=========================================================================
|
||||
|
||||
renderIndexStep: function (aStep) {
|
||||
return React.DOM.div({'className':'stepIndexItem ' + this.statusClassForStep(aStep)}, '.');
|
||||
return React.DOM.div({'key':'indexStep' + aStep['name'], 'className':'stepIndexItem ' + this.statusClassForStep(aStep)}, '.');
|
||||
},
|
||||
|
||||
renderButtons: function () {
|
||||
return [
|
||||
React.DOM.a({className:'back button step_' + (this.currentStepIndex() - 1), onClick:this.handleBackClick}, '<<'),
|
||||
React.DOM.a({className:'forward button step_' + (this.currentStepIndex() + 1) + ' ' + (this.canMoveForward() ? 'enabled' : 'disabled'), onClick:this.handleForwardClick}, '>>')
|
||||
React.DOM.a({'key':'backButton', 'className':'back button step_' + (this.currentStepIndex() - 1), onClick:this.handleBackClick}, '<<'),
|
||||
React.DOM.a({'key':'forwardButton', 'className':'forward button step_' + (this.currentStepIndex() + 1) + ' ' + (this.canMoveForward() ? 'enabled' : 'disabled'), onClick:this.handleForwardClick}, '>>')
|
||||
];
|
||||
},
|
||||
|
||||
render_CREDENTIALS: function () {
|
||||
return React.DOM.div(null,[
|
||||
React.DOM.label({'htmlFor':'name'}, "username"),
|
||||
React.DOM.input({'type':'text', 'name':'name', 'ref':'username', 'placeholder':"username", 'key':'username', 'autoCapitalize':'none'/*, value:this.state.username*/}),
|
||||
React.DOM.label({'htmlFor':'passphrase'}, "passphrase"),
|
||||
React.DOM.input({'type':'password', 'name':'passphrase', 'ref':'passphrase', 'placeholder':"passphrase", 'key':'passphrase'/*, value:this.state.passphrase*/})
|
||||
return React.DOM.div({'key':'credentials'},[
|
||||
React.DOM.label({'key':'usernameLabel', 'htmlFor':'name'}, "username"),
|
||||
React.DOM.input({'key':'username', 'type':'text', 'name':'name', 'ref':'username', 'placeholder':"username", 'autoCapitalize':'none'/*, value:this.state.username*/}),
|
||||
React.DOM.label({'key':'passphraseLabel', 'htmlFor':'passphrase'}, "passphrase"),
|
||||
React.DOM.input({'key':'passphrase', 'type':'password', 'name':'passphrase', 'ref':'passphrase', 'placeholder':"passphrase"/*, value:this.state.passphrase*/})
|
||||
]);
|
||||
},
|
||||
|
||||
render_PASSWORD_VERIFICATION: function () {
|
||||
return React.DOM.div(null,[
|
||||
React.DOM.label({'htmlFor':'verify_passphrase'}, "passphrase"),
|
||||
React.DOM.input({'type':'password', 'name':'verify_passphrase', 'ref':'verify_passphrase', 'placeholder':"verify passphrase", 'key':'verify_passphrase'})
|
||||
return React.DOM.div({'key':'passwordVerification'},[
|
||||
React.DOM.label({'key':'verifyPassphraseLabel', 'htmlFor':'verify_passphrase'}, "passphrase"),
|
||||
React.DOM.input({'key':'verifyPassphrase', 'type':'password', 'name':'verify_passphrase', 'ref':'verify_passphrase', 'placeholder':"verify passphrase"})
|
||||
]);
|
||||
},
|
||||
|
||||
render_TERMS_OF_SERVICE: function () {
|
||||
return React.DOM.div(null, [
|
||||
React.DOM.div({className:'checkboxBlock'}, [
|
||||
React.DOM.label({'htmlFor':'no_password_recovery'}, "I understand that Clipperz will not be able to recover a lost passphrase."),
|
||||
React.DOM.input({'type':'checkbox', 'name':'no_password_recovery', 'ref':'no_password_recovery', 'key':'no_password_recovery'}),
|
||||
React.DOM.p(null, "I understand that Clipperz will not be able to recover a lost passphrase.")
|
||||
return React.DOM.div({'key':'termsOfService'}, [
|
||||
React.DOM.div({'key':'termsOfService_choice_1', 'className':'checkboxBlock'}, [
|
||||
React.DOM.label({'key':'termsOfService_label_1', 'htmlFor':'no_password_recovery'}, "I understand that Clipperz will not be able to recover a lost passphrase."),
|
||||
React.DOM.input({'key':'no_password_recovery', 'type':'checkbox', 'name':'no_password_recovery', 'ref':'no_password_recovery'}),
|
||||
React.DOM.p({'key':'termsOfService_description_1'}, "I understand that Clipperz will not be able to recover a lost passphrase.")
|
||||
]),
|
||||
React.DOM.div({className:'checkboxBlock'}, [
|
||||
React.DOM.label({'htmlFor':'agree_terms_of_service'}, "I have read and agreed to the Terms of Service."),
|
||||
React.DOM.input({'type':'checkbox', 'name':'agree_terms_of_service', 'ref':'agree_terms_of_service', 'key':'agree_terms_of_service'}),
|
||||
React.DOM.p(null, [
|
||||
"I have read and agreed to the ",
|
||||
React.DOM.a({href:'https://clipperz.com/terms_service/', target:'_blank'}, "Terms of Service.")
|
||||
React.DOM.div({'key':'termsOfService_choice_2', 'className':'checkboxBlock'}, [
|
||||
React.DOM.label({'key':'termsOfService_label_2', 'htmlFor':'agree_terms_of_service'}, "I have read and agreed to the Terms of Service."),
|
||||
React.DOM.input({'key':'agree_terms_of_service', 'type':'checkbox', 'name':'agree_terms_of_service', 'ref':'agree_terms_of_service'}),
|
||||
React.DOM.p({'key':'termsOfService_description_2'}, [
|
||||
React.DOM.span({'key':'termsOfService_description_2_p1'}, "I have read and agreed to the "),
|
||||
React.DOM.a({'key':'termsOfService_description_2_p2', 'href':'https://clipperz.com/terms_service/', target:'_blank'}, "Terms of Service.")
|
||||
])
|
||||
])
|
||||
]);
|
||||
},
|
||||
|
||||
renderStep: function (aStep) {
|
||||
return React.DOM.div({'className':'step' + ' ' + aStep['name'] + ' ' + this.statusClassForStep(aStep) + ' step_' + this.currentStepIndex()}, [
|
||||
// React.DOM.h1(null, aStep['label']),
|
||||
React.DOM.p(null, aStep['description']),
|
||||
React.DOM.div({'className':'stepBody'}, this['render_' + aStep['name']].apply()),
|
||||
React.DOM.div({'className':'stepIndex'}, MochiKit.Base.map(this.renderIndexStep, this.props['steps'])),
|
||||
React.DOM.div({'className':'buttons'}, this.renderButtons())
|
||||
return React.DOM.div({'key':'step' + aStep['name'], 'className':'step' + ' ' + aStep['name'] + ' ' + this.statusClassForStep(aStep) + ' step_' + this.currentStepIndex()}, [
|
||||
//! React.DOM.h1(null, aStep['label']),
|
||||
React.DOM.p({'key':'stepDescription'}, aStep['description']),
|
||||
React.DOM.div({'key':'stepBody', 'className':'stepBody'}, this['render_' + aStep['name']].apply()),
|
||||
React.DOM.div({'key':'stepIndex', 'className':'stepIndex'}, MochiKit.Base.map(this.renderIndexStep, this.props['steps'])),
|
||||
React.DOM.div({'key':'stepBottons', 'className':'buttons'}, this.renderButtons())
|
||||
]);
|
||||
},
|
||||
|
||||
render: function () {
|
||||
return React.DOM.div({'className':'registrationForm'},[
|
||||
React.DOM.header({'key':'header'}, 'clipperz'),
|
||||
React.DOM.div({'className':'form'}, [
|
||||
React.DOM.form({onChange: this.handleChange}, [
|
||||
React.DOM.div({'className':'steps'}, MochiKit.Base.map(this.renderStep, this.props['steps']))
|
||||
React.DOM.div({'key':'body', 'className':'form'}, [
|
||||
React.DOM.form({'key':'registrationForm', 'onChange': this.handleChange}, [
|
||||
React.DOM.div({'key':'steps', 'className':'steps'}, MochiKit.Base.map(this.renderStep, this.props['steps']))
|
||||
])
|
||||
]),
|
||||
React.DOM.footer({}, [
|
||||
React.DOM.footer({'key':'footer'}, [
|
||||
React.DOM.a({'key':'login', 'onClick':this.handleLoginLinkClick}, "Login")
|
||||
])
|
||||
]);
|
||||
@ -250,3 +250,5 @@ Clipperz.PM.UI.Components.Pages.RegistrationPage = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Pages.RegistrationPage = React.createFactory(Clipperz.PM.UI.Components.Pages.RegistrationPageClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
"use strict";
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Panels');
|
||||
|
||||
Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanel = React.createClass({
|
||||
Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass = React.createClass({
|
||||
|
||||
settingsToggleHandler: function (anEvent) {
|
||||
//console.log("settingsToggleHandler");
|
||||
@ -77,43 +77,43 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanel = React.createClass({
|
||||
'disabled': !this.isFeatureEnabled('OFFLINE_COPY')
|
||||
}
|
||||
|
||||
return React.DOM.div({'key':'extraFeaturesPanel', 'id':'extraFeaturesPanel', 'className':React.addons.classSet(classes)}, [
|
||||
React.DOM.header({}, [
|
||||
React.DOM.div({'className':'settingsToggle'}, [
|
||||
Clipperz.PM.UI.Components.Button({'eventName':'settingsToggleButton', 'label':"menu", 'handler':this.settingsToggleHandler})
|
||||
return React.DOM.div({'key':'extraFeaturesPanel', 'id':'extraFeaturesPanel', 'className':Clipperz.PM.UI.Components.classNames(classes)}, [
|
||||
React.DOM.header({'key':'header'}, [
|
||||
React.DOM.div({'key':'headerDiv', 'className':'settingsToggle'}, [
|
||||
Clipperz.PM.UI.Components.Button({'key':'button', 'eventName':'settingsToggleButton', 'label':"menu", 'handler':this.settingsToggleHandler})
|
||||
])
|
||||
]),
|
||||
|
||||
React.DOM.div({}, [
|
||||
React.DOM.ul({}, [
|
||||
React.DOM.li({'className':this.state['account'] ? 'open' : 'closed'}, [
|
||||
React.DOM.h1({'onClick':this.toggleState('account')}, "Account"),
|
||||
React.DOM.ul({}, [
|
||||
React.DOM.li({}, [
|
||||
React.DOM.h2({}, "Passphrase"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
React.DOM.div({'key':'ulWrapper'}, [
|
||||
React.DOM.ul({'key':'ul'}, [
|
||||
React.DOM.li({'key':'account', 'className':this.state['account'] ? 'open' : 'closed'}, [
|
||||
React.DOM.h1({'key':'accountH1', 'onClick':this.toggleState('account')}, "Account"),
|
||||
React.DOM.ul({'key':'accountUL'}, [
|
||||
React.DOM.li({'key':'account_1'}, [
|
||||
React.DOM.h2({'key':'account_1_h2'}, "Passphrase"),
|
||||
React.DOM.div({'key':'account_1_div'}, [
|
||||
React.DOM.p({'key':'account_1_p'}, "")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'account_2'}, [
|
||||
React.DOM.h2({}, "One Time Passwords"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'account_3'}, [
|
||||
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.")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'account_4'}, [
|
||||
React.DOM.h2({}, "Preferences"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'account_5'}, [
|
||||
React.DOM.h2({}, "Delete account"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
@ -121,28 +121,28 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanel = React.createClass({
|
||||
])
|
||||
])
|
||||
]),
|
||||
React.DOM.li({'className':this.state['subscription'] ? 'open' : 'closed'}, [
|
||||
React.DOM.li({'key':'subscription', 'className':this.state['subscription'] ? 'open' : 'closed'}, [
|
||||
React.DOM.h1({'onClick':this.toggleState('subscription')}, "Subscription"),
|
||||
React.DOM.ul({}, [
|
||||
React.DOM.li({}, [
|
||||
React.DOM.ul({'key':'subscription'}, [
|
||||
React.DOM.li({'key':'subscription_1'}, [
|
||||
React.DOM.h2({}, "x1"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'subscription_2'}, [
|
||||
React.DOM.h2({}, "x2"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'subscription_3'}, [
|
||||
React.DOM.h2({}, "x3"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'subscription_4'}, [
|
||||
React.DOM.h2({}, "x4"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
@ -150,29 +150,29 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanel = React.createClass({
|
||||
])
|
||||
])
|
||||
]),
|
||||
React.DOM.li({'className':this.state['data'] ? 'open' : 'closed'}, [
|
||||
React.DOM.li({'key':'data', 'className':this.state['data'] ? 'open' : 'closed'}, [
|
||||
React.DOM.h1({'onClick':this.toggleState('data')}, "Data"),
|
||||
React.DOM.ul({}, [
|
||||
React.DOM.li({}, [
|
||||
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':React.addons.classSet(offlineCopyButtonClasses), 'onClick':this.handleDownloadOfflineCopyLink}, "Download")
|
||||
React.DOM.a({'className':Clipperz.PM.UI.Components.classNames(offlineCopyButtonClasses), 'onClick':this.handleDownloadOfflineCopyLink}, "Download")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'data_2'}, [
|
||||
React.DOM.h2({}, "Import"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'data_3'}, [
|
||||
React.DOM.h2({}, "Export"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
])
|
||||
]),
|
||||
React.DOM.li({}, [
|
||||
React.DOM.li({'key':'data_4'}, [
|
||||
React.DOM.h2({}, "Sharing"),
|
||||
React.DOM.div({}, [
|
||||
React.DOM.p({}, "")
|
||||
@ -182,12 +182,14 @@ Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanel = React.createClass({
|
||||
])
|
||||
])
|
||||
]),
|
||||
React.DOM.footer({'className':'applicationVersion'}, [
|
||||
React.DOM.span({}, "application version"),
|
||||
React.DOM.a({'href':'https://github.com/clipperz/password-manager/commit/' + Clipperz_version, 'target':'github'}, Clipperz_version)
|
||||
React.DOM.footer({'key':'footer', 'className':'applicationVersion'}, [
|
||||
React.DOM.span({'key':'applicationVersion'}, "application version"),
|
||||
React.DOM.a({'key':'applicationVersionLink', 'href':'https://github.com/clipperz/password-manager/commit/' + Clipperz_version, 'target':'github'}, Clipperz_version)
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanel = React.createFactory(Clipperz.PM.UI.Components.Panels.ExtraFeaturesPanelClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Panels');
|
||||
|
||||
Clipperz.PM.UI.Components.Panels.MainPanel = React.createClass({
|
||||
Clipperz.PM.UI.Components.Panels.MainPanelClass = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
|
||||
@ -86,7 +86,7 @@ Clipperz.PM.UI.Components.Panels.MainPanel = React.createClass({
|
||||
'addCard': this.isFeatureEnabled('ADD_CARD')
|
||||
}
|
||||
return React.DOM.div({'key':'cardContent', 'className':'cardContent'}, [
|
||||
React.DOM.div({'className':React.addons.classSet(cardColumnClasses)}, [addCardButton, firstColumnComponents]),
|
||||
React.DOM.div({'className':Clipperz.PM.UI.Components.classNames(cardColumnClasses)}, [addCardButton, firstColumnComponents]),
|
||||
React.DOM.div({'className':'cardDetail column right'}, secondColumnComponents)
|
||||
])
|
||||
},
|
||||
@ -193,7 +193,7 @@ Clipperz.PM.UI.Components.Panels.MainPanel = React.createClass({
|
||||
};
|
||||
classes[this.style()] = true;
|
||||
|
||||
return React.DOM.div({'key':'mainPanel', 'id':'mainPanel', 'className':React.addons.classSet(classes)}, [
|
||||
return React.DOM.div({'key':'mainPanel', 'id':'mainPanel', 'className':Clipperz.PM.UI.Components.classNames(classes)}, [
|
||||
React.DOM.div({'className':'mask', 'onClick':this.handleMaskClick, 'onTouchEnd':this.handleMaskClick}),
|
||||
React.DOM.div({'className':'container'},
|
||||
// this.style() == 'extra-wide' ? this.renderExtraWide() : this.renderOther()
|
||||
@ -204,3 +204,5 @@ Clipperz.PM.UI.Components.Panels.MainPanel = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Panels.MainPanel = React.createFactory(Clipperz.PM.UI.Components.Panels.MainPanelClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components.Panels');
|
||||
|
||||
Clipperz.PM.UI.Components.Panels.SelectionPanel = React.createClass({
|
||||
Clipperz.PM.UI.Components.Panels.SelectionPanelClass = React.createClass({
|
||||
|
||||
propTypes: {
|
||||
selectionPanelStatus: React.PropTypes.oneOf(['OPEN', 'CLOSED']).isRequired
|
||||
@ -34,7 +34,7 @@ Clipperz.PM.UI.Components.Panels.SelectionPanel = React.createClass({
|
||||
|
||||
render: function () {
|
||||
//console.log("SelectionPanel", this.props);
|
||||
var classes = React.addons.classSet({
|
||||
var classes = Clipperz.PM.UI.Components.classNames({
|
||||
'panel': true,
|
||||
'left': true,
|
||||
'open': this.props['selectionPanelStatus'] == 'OPEN'
|
||||
@ -47,3 +47,5 @@ Clipperz.PM.UI.Components.Panels.SelectionPanel = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Panels.SelectionPanel = React.createFactory(Clipperz.PM.UI.Components.Panels.SelectionPanelClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.Selections = React.createClass({
|
||||
Clipperz.PM.UI.Components.SelectionsClass = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
|
||||
@ -140,3 +140,5 @@ Clipperz.PM.UI.Components.Selections = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.Selections = React.createFactory(Clipperz.PM.UI.Components.SelectionsClass);
|
||||
|
@ -24,7 +24,7 @@ refer to http://www.clipperz.com.
|
||||
'use strict';
|
||||
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
||||
|
||||
Clipperz.PM.UI.Components.TagIndexItem = React.createClass({
|
||||
Clipperz.PM.UI.Components.TagIndexItemClass = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
|
||||
@ -43,7 +43,7 @@ Clipperz.PM.UI.Components.TagIndexItem = React.createClass({
|
||||
'selected': this.props['selected']
|
||||
}
|
||||
|
||||
return React.DOM.li({'onClick': this.handleClick, 'className':React.addons.classSet(classes), 'data-tag':this.props['label']}, [
|
||||
return React.DOM.li({'onClick': this.handleClick, 'className':Clipperz.PM.UI.Components.classNames(classes), 'data-tag':this.props['label']}, [
|
||||
React.DOM.span({'className':'label'}, this.props['label']),
|
||||
React.DOM.span({'className':'count'}, this.props['count'])
|
||||
]);
|
||||
@ -51,3 +51,5 @@ Clipperz.PM.UI.Components.TagIndexItem = React.createClass({
|
||||
|
||||
//=========================================================================
|
||||
});
|
||||
|
||||
Clipperz.PM.UI.Components.TagIndexItem = React.createFactory(Clipperz.PM.UI.Components.TagIndexItemClass);
|
||||
|
19541
frontend/delta/js/React/react-0.13.1.js
Normal file
19541
frontend/delta/js/React/react-0.13.1.js
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
16
frontend/delta/js/React/react-with-addons.min-0.13.1.js
Normal file
16
frontend/delta/js/React/react-with-addons.min-0.13.1.js
Normal file
File diff suppressed because one or more lines are too long
15
frontend/delta/js/React/react.min-0.13.1.js
Normal file
15
frontend/delta/js/React/react.min-0.13.1.js
Normal file
File diff suppressed because one or more lines are too long
@ -43,7 +43,10 @@
|
||||
"MochiKit/Selector.js",
|
||||
"-- MochiKit/Visual.js",
|
||||
|
||||
"React/react-with-addons-0.12.2.js",
|
||||
"React/react-0.13.1.js",
|
||||
"-- React/react.min-0.13.1.js",
|
||||
"-- #React/react-with-addons-0.13.1.js",
|
||||
"-- #React/react-with-addons.min-0.13.1.js",
|
||||
|
||||
"MouseTrap/mousetrap.js",
|
||||
"-- MouseTrap/mousetrap-bind-dictionary.js",
|
||||
@ -142,6 +145,7 @@
|
||||
|
||||
"-- Clipperz/PM/UI/Web/Controllers/MainController.js",
|
||||
|
||||
"Clipperz/PM/UI/Components.js",
|
||||
"Clipperz/PM/UI/Components/Overlay.js",
|
||||
"Clipperz/PM/UI/Components/Button.js",
|
||||
"Clipperz/PM/UI/Components/Checkbox.js",
|
||||
|
Loading…
Reference in New Issue
Block a user