Skip to content
Snippets Groups Projects
overview.js 816 B
Newer Older
import m from 'mithril';
import { Card } from 'polythene-mithril';
import DatalistController from '../listcontroller';


class GroupItem {
  view({ attrs: { name, _id }}) {
    return m('div', {
      style: {
        padding: '20px',
        'max-width': '500px',
      },
      onclick: () => {
        m.route.set(`/groups/${_id}`);
      },
    }, m(Card, { content: [{ primary: { title: name } }] }));
  }
}


export default class GroupList {
  constructor() {
    this.ctrl = new DatalistController('groups', {}, ['name']);
    this.data = [];

    this.ctrl.getPageData(1).then((data) => {
      this.data = data;
      m.redraw();
    });
  }

  view() {
    if (!this.data) return '';

    return m(
      'div', { style: { display: 'flex' } },
      this.data.map(item => m(GroupItem, item)),
    );
  }
}