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:
commit
f92fa972bf
@ -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;
|
|
||||||
|
@ -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;
|
|
||||||
|
@ -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;
|
|
||||||
|
@ -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;
|
|
||||||
|
@ -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;
|
|
||||||
|
@ -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;
|
|
||||||
|
@ -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;
|
|
||||||
|
@ -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
|
||||||
},
|
},
|
||||||
|
@ -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,
|
||||||
|
@ -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:
|
||||||
|
Loading…
Reference in New Issue
Block a user