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({