From 55170df13837b49fb038f1733518cd711a13a193 Mon Sep 17 00:00:00 2001
From: Hermann Blum <hermannsblum@yahoo.de>
Date: Sun, 3 Dec 2017 16:57:18 +0100
Subject: [PATCH] move small ui elements to separate file

---
 src/userTool.js       |  4 +++-
 src/views/editView.js | 54 +------------------------------------------
 2 files changed, 4 insertions(+), 54 deletions(-)

diff --git a/src/userTool.js b/src/userTool.js
index 78d331d..bd69e77 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 9fa7716..0d4d263 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);
-  }
-}
-- 
GitLab