From a1d940c932947752f97863d33f3a62a333f4c6ee Mon Sep 17 00:00:00 2001
From: Hermann <blumh@student.ethz.ch>
Date: Mon, 30 Apr 2018 22:33:25 +0200
Subject: [PATCH] option to add groups

---
 src/groups/newGroup.js | 27 +++++++++++++++++++++++++++
 src/groups/overview.js |  9 ++++++++-
 src/index.js           |  2 ++
 3 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 src/groups/newGroup.js

diff --git a/src/groups/newGroup.js b/src/groups/newGroup.js
new file mode 100644
index 0000000..2b88252
--- /dev/null
+++ b/src/groups/newGroup.js
@@ -0,0 +1,27 @@
+import m from 'mithril';
+import EditView from '../views/editView';
+import { RaisedButton } from 'polythene-mithril';
+
+
+export default class NewGroup extends EditView {
+  constructor(vnode) {
+    super(vnode, 'groups', {});
+    this.callback = () => { m.route.set('/groups'); };
+  }
+
+  view() {
+    const submitButton = m(RaisedButton, {
+      disabled: !this.valid,
+      label: 'Submit',
+      events: { onclick: () => { this.submit(); } },
+    });
+
+    return m('div.mywrapper', [
+      m('h3', 'Add a New Group'),
+      ...this.renderPage({
+        name: { type: 'text', label: 'Group Name'},
+      }),
+      submitButton,
+    ]);
+  }
+}
diff --git a/src/groups/overview.js b/src/groups/overview.js
index be8acda..e1f051b 100644
--- a/src/groups/overview.js
+++ b/src/groups/overview.js
@@ -33,8 +33,15 @@ export default class GroupList {
     if (!this.data) return '';
 
     return m(
-      'div', { style: { display: 'flex' } },
+      'div', { style: { display: 'flex', 'flex-wrap': 'wrap' } },
       this.data.map(item => m(GroupItem, item)),
+      m('div', {
+        style: {
+          padding: '20px',
+          'max-width': '500px',
+        },
+        onclick: () => { m.route.set('/newgroup'); },
+      }, m(Card, { content: [{ primary: { title: '+ add' } }] })),
     );
   }
 }
diff --git a/src/index.js b/src/index.js
index a21e823..7ff710a 100644
--- a/src/index.js
+++ b/src/index.js
@@ -4,6 +4,7 @@ import GroupList from './groups/overview';
 import viewGroup from './groups/viewGroup';
 import { UserModal, UserTable, NewUser } from './users/userTool';
 import { MembershipView } from './membershipTool';
+import NewGroup from './groups/newGroup';
 import EventTable from './events/table';
 import newEvent from './events/newEvent';
 import EventModal from './events/eventModal';
@@ -35,6 +36,7 @@ m.route(root, '/users', {
   '/eventwithexport': layoutWith(eventWithExport),
   '/groups': layoutWith(GroupList),
   '/groups/:id': layoutWith(viewGroup),
+  '/newgroup': layoutWith(NewGroup),
   '/oauthcallback': OauthRedirect,
   // '/announce': layoutWith(AnnounceTool),
 });
-- 
GitLab