mirror of
https://github.com/ascribe/onion.git
synced 2024-12-22 09:23:13 +01:00
Merge with AD-1255
This commit is contained in:
commit
f92fa972bf
@ -19,65 +19,67 @@ import ApiUrls from '../../../constants/api_urls';
|
||||
import { getAclFormMessage, getAclFormDataId } from '../../../utils/form_utils';
|
||||
import { getLangText } from '../../../utils/lang_utils';
|
||||
|
||||
let AclButton = React.createClass({
|
||||
propTypes: {
|
||||
action: React.PropTypes.oneOf(AppConstants.aclList).isRequired,
|
||||
availableAcls: React.PropTypes.object.isRequired,
|
||||
buttonAcceptName: React.PropTypes.string,
|
||||
buttonAcceptClassName: React.PropTypes.string,
|
||||
currentUser: React.PropTypes.object.isRequired,
|
||||
email: React.PropTypes.string,
|
||||
pieceOrEditions: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.array
|
||||
]).isRequired,
|
||||
title: React.PropTypes.string,
|
||||
handleSuccess: React.PropTypes.func.isRequired,
|
||||
className: React.PropTypes.string
|
||||
},
|
||||
|
||||
// Removes the acl_ prefix and converts to upper case
|
||||
sanitizeAction() {
|
||||
if (this.props.buttonAcceptName) {
|
||||
return this.props.buttonAcceptName;
|
||||
}
|
||||
return this.props.action.split('acl_')[1].toUpperCase();
|
||||
},
|
||||
|
||||
render() {
|
||||
const {
|
||||
action,
|
||||
availableAcls,
|
||||
buttonAcceptClassName,
|
||||
currentUser,
|
||||
email,
|
||||
pieceOrEditions,
|
||||
handleSuccess,
|
||||
title } = this.props;
|
||||
|
||||
return (
|
||||
<AclProxy
|
||||
aclName={action}
|
||||
aclObject={availableAcls}>
|
||||
<ModalWrapper
|
||||
trigger={
|
||||
<button
|
||||
className={classNames('btn', 'btn-default', 'btn-sm', buttonAcceptClassName)}>
|
||||
{this.sanitizeAction()}
|
||||
</button>
|
||||
}
|
||||
handleSuccess={handleSuccess}
|
||||
title={title}>
|
||||
<AclFormFactory
|
||||
action={action}
|
||||
currentUser={currentUser}
|
||||
email={email}
|
||||
pieceOrEditions={pieceOrEditions}
|
||||
showNotification />
|
||||
</ModalWrapper>
|
||||
</AclProxy>
|
||||
);
|
||||
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.');
|
||||
}
|
||||
});
|
||||
|
||||
export default AclButton;
|
||||
return React.createClass({
|
||||
displayName: displayName,
|
||||
|
||||
propTypes: {
|
||||
availableAcls: React.PropTypes.object.isRequired,
|
||||
buttonAcceptName: React.PropTypes.string,
|
||||
buttonAcceptClassName: React.PropTypes.string,
|
||||
currentUser: React.PropTypes.object.isRequired,
|
||||
email: React.PropTypes.string,
|
||||
pieceOrEditions: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.array
|
||||
]).isRequired,
|
||||
handleSuccess: React.PropTypes.func.isRequired,
|
||||
className: React.PropTypes.string
|
||||
},
|
||||
|
||||
// Removes the acl_ prefix and converts to upper case
|
||||
sanitizeAction() {
|
||||
if (this.props.buttonAcceptName) {
|
||||
return this.props.buttonAcceptName;
|
||||
}
|
||||
return action.split('acl_')[1].toUpperCase();
|
||||
},
|
||||
|
||||
render() {
|
||||
const {
|
||||
availableAcls,
|
||||
buttonAcceptClassName,
|
||||
currentUser,
|
||||
email,
|
||||
pieceOrEditions,
|
||||
handleSuccess } = this.props;
|
||||
|
||||
return (
|
||||
<AclProxy
|
||||
aclName={action}
|
||||
aclObject={availableAcls}>
|
||||
<ModalWrapper
|
||||
trigger={
|
||||
<button
|
||||
className={classNames('btn', 'btn-default', 'btn-sm', buttonAcceptClassName)}>
|
||||
{this.sanitizeAction()}
|
||||
</button>
|
||||
}
|
||||
handleSuccess={handleSuccess}
|
||||
title={title}>
|
||||
<AclFormFactory
|
||||
action={action}
|
||||
currentUser={currentUser}
|
||||
email={email}
|
||||
pieceOrEditions={pieceOrEditions}
|
||||
showNotification />
|
||||
</ModalWrapper>
|
||||
</AclProxy>
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -4,24 +4,11 @@ import React from 'react';
|
||||
|
||||
import AclButton from './acl_button';
|
||||
|
||||
import { omitFromObject } from '../../../utils/general_utils';
|
||||
import { getLangText } from '../../../utils/lang_utils';
|
||||
|
||||
let ConsignButton = React.createClass({
|
||||
propTypes: {
|
||||
...omitFromObject(AclButton.propTypes, ['action']),
|
||||
email: React.PropTypes.string
|
||||
},
|
||||
|
||||
render() {
|
||||
return (
|
||||
<AclButton
|
||||
{...this.props}
|
||||
action='acl_consign'
|
||||
title={getLangText('Consign artwork')}
|
||||
tooltip={getLangText('Have someone else sell the artwork')} />
|
||||
);
|
||||
}
|
||||
export default AclButton({
|
||||
action: 'acl_consign',
|
||||
displayName: 'ConsignButton',
|
||||
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 { omitFromObject } from '../../../utils/general_utils';
|
||||
import { getLangText } from '../../../utils/lang_utils';
|
||||
|
||||
let LoanButton = React.createClass({
|
||||
propTypes: {
|
||||
...omitFromObject(AclButton.propTypes, ['action']),
|
||||
email: React.PropTypes.string
|
||||
},
|
||||
|
||||
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 AclButton({
|
||||
action: 'acl_loan',
|
||||
displayName: 'LoanButton',
|
||||
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 { omitFromObject } from '../../../utils/general_utils';
|
||||
import { getLangText } from '../../../utils/lang_utils';
|
||||
|
||||
let LoanButton = React.createClass({
|
||||
propTypes: omitFromObject(AclButton.propTypes, ['action']),
|
||||
|
||||
render() {
|
||||
return (
|
||||
<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 AclButton({
|
||||
action: 'acl_loan_request',
|
||||
displayName: 'LoanRequestButton',
|
||||
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 { omitFromObject } from '../../../utils/general_utils';
|
||||
import { getLangText } from '../../../utils/lang_utils';
|
||||
|
||||
let ShareButton = React.createClass({
|
||||
propTypes: omitFromObject(AclButton.propTypes, ['action']),
|
||||
|
||||
render() {
|
||||
return (
|
||||
<AclButton
|
||||
{...this.props}
|
||||
action='acl_share'
|
||||
title={getLangText('Share artwork')}
|
||||
tooltip={getLangText('Share the artwork')} />
|
||||
);
|
||||
}
|
||||
export default AclButton({
|
||||
action: 'acl_share',
|
||||
displayName: 'ShareButton',
|
||||
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 { omitFromObject } from '../../../utils/general_utils';
|
||||
import { getLangText } from '../../../utils/lang_utils';
|
||||
|
||||
let TransferButton = React.createClass({
|
||||
propTypes: omitFromObject(AclButton.propTypes, ['action']),
|
||||
|
||||
render() {
|
||||
return (
|
||||
<AclButton
|
||||
{...this.props}
|
||||
action='acl_transfer'
|
||||
title={getLangText('Transfer artwork')}
|
||||
tooltip={getLangText('Transfer the ownership of the artwork')} />
|
||||
);
|
||||
}
|
||||
export default AclButton({
|
||||
action: 'acl_transfer',
|
||||
displayName: 'TransferButton',
|
||||
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 { omitFromObject } from '../../../utils/general_utils';
|
||||
import { getLangText } from '../../../utils/lang_utils';
|
||||
|
||||
let UnconsignButton = React.createClass({
|
||||
propTypes: omitFromObject(AclButton.propTypes, ['action']),
|
||||
|
||||
render() {
|
||||
return (
|
||||
<AclButton
|
||||
{...this.props}
|
||||
action='acl_unconsign'
|
||||
title={getLangText('Unconsign artwork')}
|
||||
tooltip={getLangText('Have the owner manage his sales again')} />
|
||||
);
|
||||
}
|
||||
export default AclButton({
|
||||
action: 'acl_unconsign',
|
||||
displayName: 'UnconsignButton',
|
||||
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 React.createClass({
|
||||
displayName: 'AuthProxyHandler',
|
||||
|
||||
propTypes: {
|
||||
location: object
|
||||
},
|
||||
|
@ -11,7 +11,7 @@ let constants = {
|
||||
'serverUrl': window.SERVER_URL,
|
||||
'baseUrl': window.BASE_URL,
|
||||
'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'],
|
||||
|
||||
'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
|
||||
* @param {object} options Options object for creating the message:
|
||||
|
Loading…
Reference in New Issue
Block a user