summaryrefslogtreecommitdiff
path: root/animism-align/frontend/views/media/components/media.form.js
diff options
context:
space:
mode:
Diffstat (limited to 'animism-align/frontend/views/media/components/media.form.js')
-rw-r--r--animism-align/frontend/views/media/components/media.form.js55
1 files changed, 50 insertions, 5 deletions
diff --git a/animism-align/frontend/views/media/components/media.form.js b/animism-align/frontend/views/media/components/media.form.js
index 9b93788..1463041 100644
--- a/animism-align/frontend/views/media/components/media.form.js
+++ b/animism-align/frontend/views/media/components/media.form.js
@@ -16,6 +16,7 @@ const newMedia = () => ({
title: '',
author: '',
pre_title: '',
+ post_title: '',
translated_title: '',
date: '',
source: '',
@@ -38,9 +39,11 @@ export default class MediaForm extends Component {
constructor(props) {
super(props)
+ this.handleKeyDown = this.handleKeyDown.bind(this)
this.handleSelect = this.handleSelect.bind(this)
this.handleChange = this.handleChange.bind(this)
this.handleSettingsChange = this.handleSettingsChange.bind(this)
+ this.handleSettingsChangeEvent = this.handleSettingsChangeEvent.bind(this)
this.handleSubmit = this.handleSubmit.bind(this)
}
@@ -57,6 +60,21 @@ export default class MediaForm extends Component {
...data
},
})
+ window.addEventListener('keydown', this.handleKeyDown)
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('keydown', this.handleKeyDown)
+ }
+
+ handleKeyDown(e) {
+ // console.log(e, e.keyCode)
+ if ((e.ctrlKey || e.metaKey) && e.keyCode === 83) {
+ if (e) {
+ e.preventDefault()
+ }
+ this.handleSubmit()
+ }
}
handleChange(e) {
@@ -78,7 +96,13 @@ export default class MediaForm extends Component {
})
}
+ handleSettingsChangeEvent(e) {
+ const { name, value } = e.target
+ this.handleSettingsChange(name, value)
+ }
+
handleSettingsChange(name, value) {
+ console.log(name, value)
if (name !== 'multiple') {
value = { [name]: value }
}
@@ -94,11 +118,13 @@ export default class MediaForm extends Component {
}
handleSubmit(e) {
- e.preventDefault()
+ if (e) {
+ e.preventDefault()
+ }
const { isNew, onSubmit } = this.props
const { data } = this.state
const requiredKeys = "author title date".split(" ")
- const validKeys = "type tag url title author pre_title translated_title date source medium start_ts settings".split(" ")
+ const validKeys = "type tag url title author pre_title post_title translated_title date source medium start_ts settings".split(" ")
const validData = validKeys.reduce((a,b) => { a[b] = data[b]; return a }, {})
const errorFields = requiredKeys.filter(key => !validData[key])
if (errorFields.length) {
@@ -167,7 +193,13 @@ export default class MediaForm extends Component {
<TextInput
title="Title Prefix"
name="pre_title"
- required
+ data={data}
+ onChange={this.handleChange}
+ autoComplete="off"
+ />
+ <TextInput
+ title="Title Suffix"
+ name="post_title"
data={data}
onChange={this.handleChange}
autoComplete="off"
@@ -175,7 +207,6 @@ export default class MediaForm extends Component {
<TextInput
title="Translated Title"
name="translated_title"
- required
data={data}
onChange={this.handleChange}
autoComplete="off"
@@ -205,6 +236,20 @@ export default class MediaForm extends Component {
autoComplete="off"
/>
<TextArea
+ title="Citation"
+ name="bibliography"
+ placeholder="Use if special HTML formatting needed"
+ data={data.settings}
+ onChange={this.handleSettingsChangeEvent}
+ />
+ <Checkbox
+ label="Hide in list of works"
+ name="hide_in_bibliography"
+ checked={data.settings.hide_in_bibliography}
+ onChange={this.handleSettingsChange}
+ autoComplete="off"
+ />
+ <TextArea
title="Description"
name="description"
data={data}
@@ -217,7 +262,7 @@ export default class MediaForm extends Component {
{!!errorFields.size &&
<label>
<span></span>
- <span>Please complete the required fields =)</span>
+ <span>Please complete the required fields</span>
</label>
}
</form>