Skip to content
Snippets Groups Projects
Commit 55170df1 authored by Hermann's avatar Hermann
Browse files

move small ui elements to separate file

parent 58dbac59
No related branches found
No related tags found
No related merge requests found
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');
......
......@@ -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);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment