2 AnyText: FilterAnyText,
3 ObjectType: FilterObjectType,
6 var m = require('mithril');
8 function FilterAnyText() {
9 this.view = function(ctrl) {
10 return m('.input-group.input-group-sm', [
11 m('input.form-control[type="text"][placeholder="Search"]',
13 oninput: m.withAttr('value', setFilter)}),
15 function getFilter() {
16 return ctrl.currentFilter() ? ctrl.currentFilter()[2].replace(/^%(.*)%$/, '$1') : ''
18 function setFilter(value) {
19 ctrl.currentFilter('any', 'ilike', '%'+value+'%')
24 function FilterObjectType(opts) {
25 this.view = function(ctrl) {
27 m('.input-group.input-group-sm', [
28 m('.input-group-btn', [
29 m('button.btn.btn-default.dropdown-toggle[type="button"][data-toggle="dropdown"]', [
30 ctrl.currentFilter() ? ctrl.currentFilter()[2].replace(/^.*#/,'') : 'Type',
34 m('ul.dropdown-menu[role="menu"]', [
36 m('a[href="#"][data-value="arvados#collection"]', {onclick: ctrl.currentFilter.bind(ctrl, opts.attr, 'is_a', 'arvados#collection')}, 'Collection'),
39 m('a[href="#"][data-value="arvados#pipelineInstance"]', {onclick: ctrl.currentFilter.bind(ctrl, opts.attr, 'is_a', 'arvados#pipelineInstance')}, 'Pipeline instance'),