uppy/src/plugins/MetaData.js
2016-08-16 00:49:08 -04:00

41 lines
823 B
JavaScript

import Plugin from './Plugin'
/**
* Meta Data
* Adds metadata fields to Uppy
*
*/
export default class MetaData extends Plugin {
constructor (core, opts) {
super(core, opts)
this.type = 'modifier'
this.id = 'MetaData'
this.title = 'Meta Data'
// set default options
const defaultOptions = {}
// merge default options with the ones set by user
this.opts = Object.assign({}, defaultOptions, opts)
}
addInitialMeta () {
const metaFields = this.opts.fields
this.core.setState({
metaFields: metaFields
})
this.core.emitter.on('file-added', (fileID) => {
metaFields.forEach((item) => {
const obj = {}
obj[item.id] = item.value
this.core.updateMeta(obj, fileID)
})
})
}
install () {
this.addInitialMeta()
}
}