diff --git a/src/userTool.js b/src/userTool.js index 78d331d8722801d32edd4a59be18c1746f5e9007..bd69e774b8c03d7c6d9c88a7323a191466e7f14a 100644 --- a/src/userTool.js +++ b/src/userTool.js @@ -1,6 +1,8 @@ import { ItemView } from './views/itemView'; -import { EditView, inputGroup, selectGroup, submitButton } from './views/editView'; +import EditView from './views/editView'; import TableView from './views/tableView'; +import { inputGroup, selectGroup, submitButton } from './views/elements'; +import SelectList from './views/selectList'; import { Users as config } from './config.json'; const m = require('mithril'); diff --git a/src/views/editView.js b/src/views/editView.js index 9fa77168b7a57d124524f921a019eda62a01c27e..0d4d2634db16ffca4303345f3bd61e6c8a12784b 100644 --- a/src/views/editView.js +++ b/src/views/editView.js @@ -14,7 +14,7 @@ const objectNameForResource = { events: 'Event', }; -export class EditView extends ItemView { +export default class EditView extends ItemView { /* Extension of ItemView to edit a data item * * Requires: @@ -148,55 +148,3 @@ export class EditView extends ItemView { }; } } - -export class inputGroup { - constructor(vnode) { - // Link the error-getting function from the binding - this.getErrors = () => []; - if (vnode.attrs.getErrors) { - this.getErrors = vnode.attrs.getErrors; - } - } - - view(vnode) { - // set display-settings accoridng to error-state - let errorField = null; - let groupClasses = vnode.attrs.classes ? vnode.attrs.classes : ''; - const errors = this.getErrors(); - if (errors.length > 0) { - errorField = m('span.help-block', `Error: ${errors.join(', ')}`); - groupClasses += ' has-error'; - } - - return m('div.form-group', { class: groupClasses }, [ - m(`label[for=${vnode.attrs.name}]`, vnode.attrs.title), - m(`input[name=${vnode.attrs.name}][id=${vnode.attrs.name}].form-control`, { - value: vnode.attrs.value, onchange: vnode.attrs.onchange, - }), - errorField, - ]); - } -} - -export class selectGroup { - view(vnode) { - return m('div.form-group', { class: vnode.attrs.classes }, [ - m(`label[for=${vnode.attrs.name}]`, vnode.attrs.title), - m( - `select[name=${vnode.attrs.name}][id=${vnode.attrs.name}].form-control`, - { value: vnode.attrs.value, onchange: vnode.attrs.onchange }, - vnode.attrs.options.map(option => m('option', option)), - ), - ]); - } -} - -export class submitButton { - view(vnode) { - const args = vnode.attrs.args; - if (!vnode.attrs.active) { - args.disabled = 'disabled'; - } - return m('div.btn', args, vnode.attrs.text); - } -}