1
0
mirror of https://github.com/ascribe/onion.git synced 2024-06-28 00:28:00 +02:00

Merge remote-tracking branch 'origin/master' into AD-456-ikonotv-branded-page-for-registra

This commit is contained in:
Tim Daubenschütz 2015-08-27 13:48:33 +02:00
commit 4b2f48bc50
4 changed files with 66 additions and 13 deletions

View File

@ -26,13 +26,24 @@ let AccordionListItemPiece = React.createClass({
mixins: [Router.Navigation], mixins: [Router.Navigation],
getLinkData(){ getLinkData() {
return {
to: 'piece', if(this.props.piece && this.props.piece.first_edition) {
params: { return {
pieceId: this.props.piece.id to: 'edition',
} params: {
}; editionId: this.props.piece.first_edition.bitcoin_id
}
};
} else {
return {
to: 'piece',
params: {
pieceId: this.props.piece.id
}
};
}
}, },
render() { render() {

View File

@ -76,7 +76,27 @@ let PieceContainer = React.createClass({
}, },
onChange(state) { onChange(state) {
this.setState(state); /*
ATTENTION:
THIS IS JUST A TEMPORARY USABILITY FIX THAT ESSENTIALLY REMOVES THE LOAN BUTTON
FROM THE PIECE DETAIL PAGE SO THAT USERS DO NOT CONFUSE A PIECE WITH AN EDITION.
IT SHOULD BE REMOVED AND REPLACED WITH A BETTER SOLUTION ASAP!
*/
if(state && state.piece && state.piece.acl && typeof state.piece.acl.acl_loan !== 'undefined') {
let pieceState = mergeOptions({}, state.piece);
pieceState.acl.acl_loan = false;
this.setState({
piece: pieceState
});
} else {
this.setState(state);
}
}, },
loadPiece() { loadPiece() {

View File

@ -39,13 +39,16 @@ let Form = React.createClass({
// You can use the form for inline requests, like the submit click on a button. // You can use the form for inline requests, like the submit click on a button.
// For the form to then not display the error on top, you need to enable this option. // For the form to then not display the error on top, you need to enable this option.
// It will make use of the GlobalNotification // It will make use of the GlobalNotification
isInline: React.PropTypes.bool isInline: React.PropTypes.bool,
autoComplete: React.PropTypes.string
}, },
getDefaultProps() { getDefaultProps() {
return { return {
method: 'post', method: 'post',
buttonSubmitText: 'SAVE' buttonSubmitText: 'SAVE',
autoComplete: 'off'
}; };
}, },
@ -217,6 +220,25 @@ let Form = React.createClass({
}); });
}, },
/**
* All webkit-based browsers are ignoring the attribute autoComplete="off",
* as stated here: http://stackoverflow.com/questions/15738259/disabling-chrome-autofill/15917221#15917221
* So what we actually have to do is depended on whether or not this.props.autoComplete is set to "on" or "off"
* insert two fake hidden inputs that mock password and username so that chrome/safari is filling those
*/
getFakeAutocompletableInputs() {
if(this.props.autoComplete === 'off') {
return (
<span>
<input style={{display: 'none'}} type="text" name="fakeusernameremembered"/>
<input style={{display: 'none'}} type="password" name="fakepasswordremembered"/>
</span>
);
} else {
return null;
}
},
render() { render() {
let className = 'ascribe-form'; let className = 'ascribe-form';
@ -229,7 +251,8 @@ let Form = React.createClass({
role="form" role="form"
className={className} className={className}
onSubmit={this.submit} onSubmit={this.submit}
autoComplete="on"> autoComplete={this.props.autoComplete}>
{this.getFakeAutocompletableInputs()}
{this.getErrors()} {this.getErrors()}
{this.renderChildren()} {this.renderChildren()}
{this.getButtons()} {this.getButtons()}

View File

@ -101,6 +101,7 @@ let LoginForm = React.createClass({
ref="loginForm" ref="loginForm"
url={ApiUrls.users_login} url={ApiUrls.users_login}
handleSuccess={this.handleSuccess} handleSuccess={this.handleSuccess}
autoComplete="on"
buttons={ buttons={
<button <button
type="submit" type="submit"
@ -121,7 +122,6 @@ let LoginForm = React.createClass({
<input <input
type="email" type="email"
placeholder={getLangText('Enter your email')} placeholder={getLangText('Enter your email')}
autoComplete="on"
name="username" name="username"
required/> required/>
</Property> </Property>
@ -131,7 +131,6 @@ let LoginForm = React.createClass({
<input <input
type="password" type="password"
placeholder={getLangText('Enter your password')} placeholder={getLangText('Enter your password')}
autoComplete="on"
name="password" name="password"
required/> required/>
</Property> </Property>