mirror of
https://github.com/ascribe/onion.git
synced 2025-02-14 21:10:27 +01:00
request form on piece level
bug fix cyland piece endpoint bug fix otherDataUploader editable
This commit is contained in:
parent
7a09b863b5
commit
3b27238adf
@ -242,7 +242,9 @@ let EditionSummary = React.createClass({
|
|||||||
actions = (
|
actions = (
|
||||||
<RequestActionForm
|
<RequestActionForm
|
||||||
currentUser={this.props.currentUser}
|
currentUser={this.props.currentUser}
|
||||||
editions={ [this.props.edition] }
|
pieceOrEditions={ [this.props.edition] }
|
||||||
|
requestAction={this.props.edition.request_action}
|
||||||
|
requestUser={this.props.edition.owner}
|
||||||
handleSuccess={this.showNotification}/>);
|
handleSuccess={this.showNotification}/>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,6 +82,7 @@ let FurtherDetails = React.createClass({
|
|||||||
setIsUploadReady={this.setIsUploadReady}
|
setIsUploadReady={this.setIsUploadReady}
|
||||||
isReadyForFormSubmission={isReadyForFormSubmission}
|
isReadyForFormSubmission={isReadyForFormSubmission}
|
||||||
editable={this.props.editable}
|
editable={this.props.editable}
|
||||||
|
overrideForm={true}
|
||||||
pieceId={this.props.pieceId}
|
pieceId={this.props.pieceId}
|
||||||
otherData={this.props.otherData}
|
otherData={this.props.otherData}
|
||||||
multiple={true}/>
|
multiple={true}/>
|
||||||
|
@ -30,6 +30,7 @@ let FurtherDetailsFileuploader = React.createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
console.log(this.props)
|
||||||
// Essentially there a three cases important to the fileuploader
|
// Essentially there a three cases important to the fileuploader
|
||||||
//
|
//
|
||||||
// 1. there is no other_data => do not show the fileuploader at all
|
// 1. there is no other_data => do not show the fileuploader at all
|
||||||
|
@ -151,11 +151,15 @@ let PieceContainer = React.createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
getActions(){
|
getActions(){
|
||||||
if (this.state.piece.request_action && this.state.piece.request_action.length > 0) {
|
if (this.state.piece &&
|
||||||
|
this.state.piece.request_action &&
|
||||||
|
this.state.piece.request_action.length > 0) {
|
||||||
return (
|
return (
|
||||||
<RequestActionForm
|
<RequestActionForm
|
||||||
currentUser={this.state.currentUser}
|
currentUser={this.state.currentUser}
|
||||||
editions={ [this.state.piece] }
|
pieceOrEditions={ this.state.piece }
|
||||||
|
requestAction={this.state.piece.request_action}
|
||||||
|
requestUser={this.state.piece.user_registered}
|
||||||
handleSuccess={this.showNotification}/>);
|
handleSuccess={this.showNotification}/>);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -16,40 +16,49 @@ import { getLangText } from '../../utils/lang_utils.js';
|
|||||||
|
|
||||||
let RequestActionForm = React.createClass({
|
let RequestActionForm = React.createClass({
|
||||||
propTypes: {
|
propTypes: {
|
||||||
editions: React.PropTypes.arrayOf(React.PropTypes.object),
|
pieceOrEditions: React.PropTypes.oneOfType([
|
||||||
|
React.PropTypes.object,
|
||||||
|
React.PropTypes.array
|
||||||
|
]).isRequired,
|
||||||
|
requestAction: React.PropTypes.string,
|
||||||
|
requestUser: React.PropTypes.string,
|
||||||
currentUser: React.PropTypes.object,
|
currentUser: React.PropTypes.object,
|
||||||
handleSuccess: React.PropTypes.func
|
handleSuccess: React.PropTypes.func
|
||||||
},
|
},
|
||||||
|
|
||||||
|
isPiece(){
|
||||||
|
return this.props.pieceOrEditions.constructor !== Array;
|
||||||
|
},
|
||||||
|
|
||||||
getUrls() {
|
getUrls() {
|
||||||
let edition = this.props.editions[0];
|
|
||||||
let urls = {};
|
let urls = {};
|
||||||
|
|
||||||
|
if (this.props.requestAction === 'consign'){
|
||||||
if (edition.request_action === 'consign'){
|
|
||||||
urls.accept = ApiUrls.ownership_consigns_confirm;
|
urls.accept = ApiUrls.ownership_consigns_confirm;
|
||||||
urls.deny = ApiUrls.ownership_consigns_deny;
|
urls.deny = ApiUrls.ownership_consigns_deny;
|
||||||
} else if (edition.request_action === 'unconsign'){
|
} else if (this.props.requestAction === 'unconsign'){
|
||||||
urls.accept = ApiUrls.ownership_unconsigns;
|
urls.accept = ApiUrls.ownership_unconsigns;
|
||||||
urls.deny = ApiUrls.ownership_unconsigns_deny;
|
urls.deny = ApiUrls.ownership_unconsigns_deny;
|
||||||
} else if (edition.request_action === 'loan'){
|
} else if (this.props.requestAction === 'loan' && !this.isPiece()){
|
||||||
urls.accept = ApiUrls.ownership_loans_confirm;
|
urls.accept = ApiUrls.ownership_loans_confirm;
|
||||||
urls.deny = ApiUrls.ownership_loans_deny;
|
urls.deny = ApiUrls.ownership_loans_deny;
|
||||||
|
} else if (this.props.requestAction === 'loan' && this.isPiece()){
|
||||||
|
urls.accept = ApiUrls.ownership_loans_pieces_confirm;
|
||||||
|
urls.deny = ApiUrls.ownership_loans_pieces_deny;
|
||||||
}
|
}
|
||||||
|
|
||||||
return urls;
|
return urls;
|
||||||
},
|
},
|
||||||
|
|
||||||
getBitcoinIds(){
|
getFormData(){
|
||||||
return this.props.editions.map(function(edition){
|
if (this.isPiece()) {
|
||||||
|
return {piece_id: this.props.pieceOrEditions.id};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return {bitcoin_id: this.props.pieceOrEditions.map(function(edition){
|
||||||
return edition.bitcoin_id;
|
return edition.bitcoin_id;
|
||||||
});
|
}).join()};
|
||||||
},
|
}
|
||||||
|
|
||||||
getFormData() {
|
|
||||||
return {
|
|
||||||
bitcoin_id: this.getBitcoinIds().join()
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
|
|
||||||
showNotification(option, action, owner) {
|
showNotification(option, action, owner) {
|
||||||
@ -66,8 +75,7 @@ let RequestActionForm = React.createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
getContent() {
|
getContent() {
|
||||||
let edition = this.props.editions[0];
|
let message = this.props.requestUser + ' ' + getLangText('requests you') + ' ' + this.props.requestAction + ' ' + getLangText('this edition%s', '.');
|
||||||
let message = edition.owner + ' ' + getLangText('requests you') + ' ' + edition.request_action + ' ' + getLangText('this edition%s', '.');
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span>
|
<span>
|
||||||
@ -77,14 +85,12 @@ let RequestActionForm = React.createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
getAcceptButtonForm(urls) {
|
getAcceptButtonForm(urls) {
|
||||||
let edition = this.props.editions[0];
|
if(this.props.requestAction === 'unconsign') {
|
||||||
|
|
||||||
if(edition.request_action === 'unconsign') {
|
|
||||||
return (
|
return (
|
||||||
<AclButton
|
<AclButton
|
||||||
availableAcls={{'acl_unconsign': true}}
|
availableAcls={{'acl_unconsign': true}}
|
||||||
action="acl_unconsign"
|
action="acl_unconsign"
|
||||||
pieceOrEditions={this.props.editions}
|
pieceOrEditions={this.props.pieceOrEditions}
|
||||||
currentUser={this.props.currentUser}
|
currentUser={this.props.currentUser}
|
||||||
handleSuccess={this.props.handleSuccess} />
|
handleSuccess={this.props.handleSuccess} />
|
||||||
);
|
);
|
||||||
@ -93,7 +99,9 @@ let RequestActionForm = React.createClass({
|
|||||||
<Form
|
<Form
|
||||||
url={urls.accept}
|
url={urls.accept}
|
||||||
getFormData={this.getFormData}
|
getFormData={this.getFormData}
|
||||||
handleSuccess={this.showNotification(getLangText('accepted'), edition.request_action, edition.owner)}
|
handleSuccess={
|
||||||
|
this.showNotification(getLangText('accepted'), this.props.requestAction, this.props.requestUser)
|
||||||
|
}
|
||||||
isInline={true}
|
isInline={true}
|
||||||
className='inline pull-right'>
|
className='inline pull-right'>
|
||||||
<button
|
<button
|
||||||
@ -107,8 +115,6 @@ let RequestActionForm = React.createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
getButtonForm() {
|
getButtonForm() {
|
||||||
let edition = this.props.editions[0];
|
|
||||||
|
|
||||||
let urls = this.getUrls();
|
let urls = this.getUrls();
|
||||||
let acceptButtonForm = this.getAcceptButtonForm(urls);
|
let acceptButtonForm = this.getAcceptButtonForm(urls);
|
||||||
|
|
||||||
@ -118,7 +124,9 @@ let RequestActionForm = React.createClass({
|
|||||||
url={urls.deny}
|
url={urls.deny}
|
||||||
isInline={true}
|
isInline={true}
|
||||||
getFormData={this.getFormData}
|
getFormData={this.getFormData}
|
||||||
handleSuccess={this.showNotification(getLangText('denied'), edition.request_action, edition.owner)}
|
handleSuccess={
|
||||||
|
this.showNotification(getLangText('denied'), this.props.requestAction, this.props.requestUser)
|
||||||
|
}
|
||||||
className='inline pull-right'>
|
className='inline pull-right'>
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
|
@ -30,6 +30,8 @@ let ApiUrls = {
|
|||||||
'ownership_consigns_confirm': AppConstants.apiEndpoint + 'ownership/consigns/confirm/',
|
'ownership_consigns_confirm': AppConstants.apiEndpoint + 'ownership/consigns/confirm/',
|
||||||
'ownership_consigns_deny': AppConstants.apiEndpoint + 'ownership/consigns/deny/',
|
'ownership_consigns_deny': AppConstants.apiEndpoint + 'ownership/consigns/deny/',
|
||||||
'ownership_loans_pieces': AppConstants.apiEndpoint + 'ownership/loans/pieces/',
|
'ownership_loans_pieces': AppConstants.apiEndpoint + 'ownership/loans/pieces/',
|
||||||
|
'ownership_loans_pieces_confirm': AppConstants.apiEndpoint + 'ownership/loans/pieces/confirm/',
|
||||||
|
'ownership_loans_pieces_deny': AppConstants.apiEndpoint + 'ownership/loans/pieces/deny/',
|
||||||
'ownership_loans_editions': AppConstants.apiEndpoint + 'ownership/loans/editions/',
|
'ownership_loans_editions': AppConstants.apiEndpoint + 'ownership/loans/editions/',
|
||||||
'ownership_loans_confirm': AppConstants.apiEndpoint + 'ownership/loans/editions/confirm/',
|
'ownership_loans_confirm': AppConstants.apiEndpoint + 'ownership/loans/editions/confirm/',
|
||||||
'ownership_loans_deny': AppConstants.apiEndpoint + 'ownership/loans/editions/deny/',
|
'ownership_loans_deny': AppConstants.apiEndpoint + 'ownership/loans/editions/deny/',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user