import m from 'mithril';
import { DatalistController } from 'amiv-web-ui-components';
import TableView from '../views/tableView';
import { dateFormatter } from '../utils';
import { ResourceHandler } from '../auth';


/* Table of all current Jobs
 *
 * Makes use of the standard TableView
 */


export default class JobTable {
  constructor() {
    this.handler = new ResourceHandler('joboffers');
    this.ctrl = new DatalistController((query, search) => this.handler.get({ search, ...query }));
  }

  getItemData(data) {
    return [
      m('div', { style: { width: 'calc(100% - 30em)' } }, data.title_de || data.title_en),
      m('div', { style: { width: '21em' } }, data.company),
      m('div', { style: { width: '9em' } }, dateFormatter(data.time_end)),
    ];
  }

  view(data) {
    return m(TableView, {
      controller: this.ctrl,
      keys: [(data.title_de) ? 'title_de' : 'title_en', 'company', 'time_end'],
      tileContent: this.getItemData,
      titles: [
        { text: 'Title', width: 'calc(100% - 30em)' },
        { text: 'Company', width: '21em' },
        { text: 'End', width: '9em' },
      ],
      onAdd: () => { m.route.set('/newjoboffer'); },
    });
  }
}