1
0
mirror of https://github.com/ascribe/onion.git synced 2024-11-15 09:35:10 +01:00

Merge with AD-1255

This commit is contained in:
Brett Sun 2015-11-06 15:26:37 +01:00
commit f92fa972bf
10 changed files with 95 additions and 173 deletions

View File

@ -19,9 +19,15 @@ import ApiUrls from '../../../constants/api_urls';
import { getAclFormMessage, getAclFormDataId } from '../../../utils/form_utils'; import { getAclFormMessage, getAclFormDataId } from '../../../utils/form_utils';
import { getLangText } from '../../../utils/lang_utils'; import { getLangText } from '../../../utils/lang_utils';
let AclButton = React.createClass({ export default function ({ action, displayName, title, tooltip }) {
if (AppConstants.aclList.indexOf(action) < 0) {
console.warn('Your specified aclName did not match a an acl class.');
}
return React.createClass({
displayName: displayName,
propTypes: { propTypes: {
action: React.PropTypes.oneOf(AppConstants.aclList).isRequired,
availableAcls: React.PropTypes.object.isRequired, availableAcls: React.PropTypes.object.isRequired,
buttonAcceptName: React.PropTypes.string, buttonAcceptName: React.PropTypes.string,
buttonAcceptClassName: React.PropTypes.string, buttonAcceptClassName: React.PropTypes.string,
@ -31,7 +37,6 @@ let AclButton = React.createClass({
React.PropTypes.object, React.PropTypes.object,
React.PropTypes.array React.PropTypes.array
]).isRequired, ]).isRequired,
title: React.PropTypes.string,
handleSuccess: React.PropTypes.func.isRequired, handleSuccess: React.PropTypes.func.isRequired,
className: React.PropTypes.string className: React.PropTypes.string
}, },
@ -41,19 +46,17 @@ let AclButton = React.createClass({
if (this.props.buttonAcceptName) { if (this.props.buttonAcceptName) {
return this.props.buttonAcceptName; return this.props.buttonAcceptName;
} }
return this.props.action.split('acl_')[1].toUpperCase(); return action.split('acl_')[1].toUpperCase();
}, },
render() { render() {
const { const {
action,
availableAcls, availableAcls,
buttonAcceptClassName, buttonAcceptClassName,
currentUser, currentUser,
email, email,
pieceOrEditions, pieceOrEditions,
handleSuccess, handleSuccess } = this.props;
title } = this.props;
return ( return (
<AclProxy <AclProxy
@ -79,5 +82,4 @@ let AclButton = React.createClass({
); );
} }
}); });
}
export default AclButton;

View File

@ -4,24 +4,11 @@ import React from 'react';
import AclButton from './acl_button'; import AclButton from './acl_button';
import { omitFromObject } from '../../../utils/general_utils';
import { getLangText } from '../../../utils/lang_utils'; import { getLangText } from '../../../utils/lang_utils';
let ConsignButton = React.createClass({ export default AclButton({
propTypes: { action: 'acl_consign',
...omitFromObject(AclButton.propTypes, ['action']), displayName: 'ConsignButton',
email: React.PropTypes.string title: getLangText('Consign artwork'),
}, tooltip: getLangText('Have someone else sell the artwork')
render() {
return (
<AclButton
{...this.props}
action='acl_consign'
title={getLangText('Consign artwork')}
tooltip={getLangText('Have someone else sell the artwork')} />
);
}
}); });
export default ConsignButton;

View File

@ -4,24 +4,11 @@ import React from 'react';
import AclButton from './acl_button'; import AclButton from './acl_button';
import { omitFromObject } from '../../../utils/general_utils';
import { getLangText } from '../../../utils/lang_utils'; import { getLangText } from '../../../utils/lang_utils';
let LoanButton = React.createClass({ export default AclButton({
propTypes: { action: 'acl_loan',
...omitFromObject(AclButton.propTypes, ['action']), displayName: 'LoanButton',
email: React.PropTypes.string title: getLangText('Loan artwork'),
}, tooltip: getLangText('Loan your artwork for a limited period of time')
render() {
return (
<AclButton
{...this.props}
action='acl_loan'
title={getLangText('Loan artwork')}
tooltip={getLangText('Loan your artwork for a limited period of time')} />
);
}
}); });
export default LoanButton;

View File

@ -4,21 +4,11 @@ import React from 'react';
import AclButton from './acl_button'; import AclButton from './acl_button';
import { omitFromObject } from '../../../utils/general_utils';
import { getLangText } from '../../../utils/lang_utils'; import { getLangText } from '../../../utils/lang_utils';
let LoanButton = React.createClass({ export default AclButton({
propTypes: omitFromObject(AclButton.propTypes, ['action']), action: 'acl_loan_request',
displayName: 'LoanRequestButton',
render() { title: getLangText('Loan artwork'),
return ( tooltip: getLangText('Someone requested you to loan your artwork for a limited period of time')
<AclButton
{...this.props}
action='acl_loan_request'
title={getLangText('Loan artwork')}
tooltip={getLangText('Someone requested you to loan your artwork for a limited period of time')} />
);
}
}); });
export default LoanButton;

View File

@ -4,21 +4,11 @@ import React from 'react';
import AclButton from './acl_button'; import AclButton from './acl_button';
import { omitFromObject } from '../../../utils/general_utils';
import { getLangText } from '../../../utils/lang_utils'; import { getLangText } from '../../../utils/lang_utils';
let ShareButton = React.createClass({ export default AclButton({
propTypes: omitFromObject(AclButton.propTypes, ['action']), action: 'acl_share',
displayName: 'ShareButton',
render() { title: getLangText('Share artwork'),
return ( tooltip: getLangText('Share the artwork')
<AclButton
{...this.props}
action='acl_share'
title={getLangText('Share artwork')}
tooltip={getLangText('Share the artwork')} />
);
}
}); });
export default ShareButton;

View File

@ -4,21 +4,11 @@ import React from 'react';
import AclButton from './acl_button'; import AclButton from './acl_button';
import { omitFromObject } from '../../../utils/general_utils';
import { getLangText } from '../../../utils/lang_utils'; import { getLangText } from '../../../utils/lang_utils';
let TransferButton = React.createClass({ export default AclButton({
propTypes: omitFromObject(AclButton.propTypes, ['action']), action: 'acl_transfer',
displayName: 'TransferButton',
render() { title: getLangText('Transfer artwork'),
return ( tooltip: getLangText('Transfer the ownership of the artwork')
<AclButton
{...this.props}
action='acl_transfer'
title={getLangText('Transfer artwork')}
tooltip={getLangText('Transfer the ownership of the artwork')} />
);
}
}); });
export default TransferButton;

View File

@ -4,21 +4,11 @@ import React from 'react';
import AclButton from './acl_button'; import AclButton from './acl_button';
import { omitFromObject } from '../../../utils/general_utils';
import { getLangText } from '../../../utils/lang_utils'; import { getLangText } from '../../../utils/lang_utils';
let UnconsignButton = React.createClass({ export default AclButton({
propTypes: omitFromObject(AclButton.propTypes, ['action']), action: 'acl_unconsign',
displayName: 'UnconsignButton',
render() { title: getLangText('Unconsign artwork'),
return ( tooltip: getLangText('Have the owner manage his sales again')
<AclButton
{...this.props}
action='acl_unconsign'
title={getLangText('Unconsign artwork')}
tooltip={getLangText('Have the owner manage his sales again')} />
);
}
}); });
export default UnconsignButton;

View File

@ -31,6 +31,8 @@ export default function AuthProxyHandler({to, when}) {
return (Component) => { return (Component) => {
return React.createClass({ return React.createClass({
displayName: 'AuthProxyHandler',
propTypes: { propTypes: {
location: object location: object
}, },

View File

@ -11,7 +11,7 @@ let constants = {
'serverUrl': window.SERVER_URL, 'serverUrl': window.SERVER_URL,
'baseUrl': window.BASE_URL, 'baseUrl': window.BASE_URL,
'aclList': ['acl_coa', 'acl_consign', 'acl_delete', 'acl_download', 'acl_edit', 'acl_create_editions', 'acl_view_editions', 'aclList': ['acl_coa', 'acl_consign', 'acl_delete', 'acl_download', 'acl_edit', 'acl_create_editions', 'acl_view_editions',
'acl_loan', 'acl_share', 'acl_transfer', 'acl_unconsign', 'acl_unshare', 'acl_view', 'acl_loan', 'acl_loan_request', 'acl_share', 'acl_transfer', 'acl_unconsign', 'acl_unshare', 'acl_view',
'acl_withdraw_transfer', 'acl_wallet_submit'], 'acl_withdraw_transfer', 'acl_wallet_submit'],
'version': 0.1, 'version': 0.1,

View File

@ -20,22 +20,6 @@ export function getAclFormDataId(isPiece, pieceOrEditions) {
} }
} }
/**
* Get the data ids of the given piece or editions.
* @param {boolean} isPiece Is the given entities parameter a piece? (False: array of editions)
* @param {(object|object[])} pieceOrEditions Piece or array of editions
* @return {(object|object[])} Data IDs of the pieceOrEditions for the form
*/
export function getAclFormDataId(isPiece, pieceOrEditions) {
if (isPiece) {
return {piece_id: pieceOrEditions.id};
} else {
return {bitcoin_id: pieceOrEditions.map(function(edition){
return edition.bitcoin_id;
}).join()};
}
}
/** /**
* Generates a message for submitting a form * Generates a message for submitting a form
* @param {object} options Options object for creating the message: * @param {object} options Options object for creating the message: