diff --git a/js/component/form.js b/js/component/form.js index f0826fa2c..7e4b26094 100644 --- a/js/component/form.js +++ b/js/component/form.js @@ -51,6 +51,9 @@ var FormField = React.createClass({ return this.refs.field.value; } }, + getSelectedElement: function() { + return this.refs.field.options[this.refs.field.selectedIndex]; + }, render: function() { var warningStyle = Object.assign({}, requiredFieldWarningStyle); if (this.state.warningState == 'fading') { diff --git a/js/page/publish.js b/js/page/publish.js index d334b006e..063e52efa 100644 --- a/js/page/publish.js +++ b/js/page/publish.js @@ -58,16 +58,6 @@ var PublishPage = React.createClass({ } } - /* - metadata.license = {}; - metadata.license.name = this.refs.meta_license.getValue(); - - var licenseUrl = this.refs.meta_license_url.getValue(); - if (licenseUrl != '') { - metadata.license.url = licenseUrl; - } - */ - var licenseUrl = this.refs.meta_license_url.getValue(); if (licenseUrl) { metadata.license_url = licenseUrl; @@ -125,6 +115,9 @@ var PublishPage = React.createClass({ claimValue: 0.0, claimMetadata: null, fileInfo: null, + copyrightNotice: '', + otherLicenseDescription: '', + otherLicenseUrl: '', uploadProgress: 0.0, uploaded: false, tempFileReady: false, @@ -259,6 +252,44 @@ var PublishPage = React.createClass({ isFee: feeEnabled }); }, + handeLicenseChange: function(event) { + var licenseType = event.target.options[event.target.selectedIndex].getAttribute('data-license-type'); + var newState = { + copyrightChosen: licenseType == 'copyright', + otherLicenseChosen: licenseType == 'other', + }; + + if (licenseType == 'copyright') { + var author = this.refs.meta_author.getValue(); + newState.copyrightNotice = 'Copyright ' + (new Date().getFullYear()) + (author ? ' ' + author : ''); + } + + this.setState(newState); + }, + handleCopyrightNoticeChange: function(event) { + this.setState({ + copyrightNotice: event.target.value, + }); + }, + handleOtherLicenseDescriptionChange: function(event) { + this.setState({ + otherLicenseDescription: event.target.value, + }); + }, + handleOtherLicenseUrlChange: function(event) { + this.setState({ + otherLicenseUrl: event.target.value, + }); + }, + getLicenseUrl: function() { + if (!this.refs.meta_license) { + return ''; + } else if (this.state.otherLicenseChosen) { + return this.state.otherLicenseUrl; + } else { + return this.refs.meta_license.getSelectedElement().getAttribute('data-url') || '' ; + } + }, componentDidMount: function() { document.title = "Publish"; }, @@ -355,8 +386,35 @@ var PublishPage = React.createClass({
- + + + + + + + + + + + +
+ {this.state.copyrightChosen + ?
+ +
+ : null} + {this.state.otherLicenseChosen + ?
+ +
+ : null} + {this.state.otherLicenseChosen + ?
+ +
+ : null} +
@@ -383,9 +441,6 @@ var PublishPage = React.createClass({
-
- -