Skip to content
Snippets Groups Projects
Commit 58dbac59 authored by Hermann's avatar Hermann
Browse files

add submit function

parent 470d96bc
No related branches found
No related tags found
No related merge requests found
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);
}
}
import TableView from './tableView'; import TableView from './tableView';
import { submitButton } from './elements';
const m = require('mithril'); const m = require('mithril');
...@@ -24,11 +25,19 @@ function debounce(func, wait, immediate) { ...@@ -24,11 +25,19 @@ function debounce(func, wait, immediate) {
}; };
export default class SelectList extends TableView { export default class SelectList extends TableView {
constructor(resource, searchKeys, itemView) { constructor({
attrs: {
resource,
searchKeys,
itemView,
onSubmit = () => {},
},
}) {
super({ attrs: { resource, keys: searchKeys } }); super({ attrs: { resource, keys: searchKeys } });
this.itemView = itemView; this.itemView = itemView;
this.selected = null; this.selected = null;
this.showList = false; this.showList = false;
this.onSubmit = onSubmit;
} }
view() { view() {
...@@ -66,7 +75,19 @@ export default class SelectList extends TableView { ...@@ -66,7 +75,19 @@ export default class SelectList extends TableView {
return m('div', { return m('div', {
}, [ }, [
m('div.row', m('div.col-xs-6', input)), m('div.row', [
m('div.col-xs-6', [
input,
m(submitButton, {
text: 'Submit',
active: this.selected !== null,
args: {
class: 'btn-primary',
onclick: () => { this.onSubmit(this.selected); },
},
}),
]),
]),
this.showList ? list : '', this.showList ? list : '',
]); ]);
} }
......
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