Skip to content
Snippets Groups Projects
index.js 1.32 KiB
Newer Older
import m from 'mithril';
Hermann's avatar
Hermann committed
import LoginScreen from './login';
import TableView from './views/tableView';
Hermann's avatar
Hermann committed
import { UserModal, UserTable, NewUser } from './userTool';
Hermann's avatar
Hermann committed
import { MembershipView } from './membershipTool';
import EventTable from './events/table';
Hermann's avatar
Hermann committed
import newEvent from './events/newEvent';
import viewEvent from './events/viewEvent';
Hermann's avatar
Hermann committed
import eventDraft from './events/eventDraft';
import eventWithExport from './events/eventWithExport';
Hermann's avatar
Hermann committed
import Layout from './layout';
Hermann's avatar
Hermann committed
// import AnnounceTool from './announceTool';

const main = document.createElement('div');
document.body.appendChild(main);
const root = main;


function layoutWith(view) {
  return {
    view() {
      return m(Layout, m(view));
    },
  };
}

m.route(root, '/users', {
  '/users': layoutWith(UserTable),
  '/users/:id': layoutWith(UserModal),
Hermann's avatar
Hermann committed
  '/newuser': layoutWith(NewUser),
Hermann's avatar
Hermann committed
  '/groupmemberships/:id': layoutWith(MembershipView),
Hermann's avatar
Hermann committed
  '/events': layoutWith(EventTable),
Hermann's avatar
Hermann committed
  '/events/:id': layoutWith(viewEvent),
  '/newevent': layoutWith(newEvent),
Hermann's avatar
Hermann committed
  '/draftevent': layoutWith(eventDraft),
  '/eventwithexport': layoutWith(eventWithExport),
  '/groups': layoutWith({
    view() {
      return m(TableView, {
        resource: 'groups',
        keys: ['name'],
      });
    },
  '/login': LoginScreen,
Hermann's avatar
Hermann committed
  // '/announce': layoutWith(AnnounceTool),