Example #1
0
  function renderCategories(ctx) {
    const {results} = ctx;
    const compareCats = util.compareByFields('type', 'name');
    const table = Dom.h({table: '', class: 'categories'});
    if (results) {
      const catMap = {};
      for (let {event_id, cats} of results) {
        for (let {category_id} of cats) {
          catMap[category_id] || (catMap[category_id] = Category.findById(category_id));
        }
      }
      let type;
      for (let cat of util.values(catMap).sort(compareCats)) {
        if (type !== cat.type) {
          type = cat.type;
          table.appendChild(Dom.h({tr: {td: '', $colspan: '2'}, class: 'heading fmt '+type}));
        }
        table.appendChild(Tpl.CatList.$autoRender(cat, ctx));
      }
    }

    return table;
  }
Example #2
0
define((require, exports, module)=>{
  const koru     = require('koru');
  const Dom      = require('koru/dom');
  const Form     = require('koru/ui/form');
  const Route    = require('koru/ui/route');
  const util     = require('koru/util');
  const Category = require('models/category');
  const CrudPage = require('ui/crud-page');
  const App      = require('./app-base');

  const Tpl = CrudPage.newTemplate(module, Category, require('koru/html!./category'));
  const $ = Dom.current;
  const {Index} = Tpl;

  const typeNameComparitor = util.compareByFields('type', 'heatFormat', 'name');

  Tpl.title = "Categories";

  const cancel = (event)=>{
    Dom.stopEvent();
    Route.gotoPage(Tpl);
  };

  Tpl.Form.$helpers({
    typeList: ()=> [["L", "Lead"], ["B", "Boulder"], ["S", "Speed"]],
  });

  Tpl.Add.$events({
    'click [name=cancel]': cancel,
    'click [type=submit]': Form.submitFunc('AddCategory', Tpl),
  });

  Tpl.Edit.$events({
    'click [name=cancel]': cancel,
    'click [name=delete]'(event) {
      const doc = $.data();

      Dom.stopEvent();
      Dom.Dialog.confirm({
        data: doc,
        classes: 'warn',
        okay: 'Delete',
        content: Tpl.ConfirmDelete,
        callback(confirmed) {
          if (confirmed) {
            doc.$remove();
            Route.gotoPage(Tpl);
          }
        },
      });

    },
    'click [type=submit]': Form.submitFunc('EditCategory', Tpl),
  });

  Tpl.Edit.$extend({
    $destroyed(ctx, elm) {
      ctx.data.$clearChanges();
    }
  });

  return Tpl;
});