4831: "Backstage" browser client.
[arvados.git] / apps / backstage / app / component.arv-object-row.js
1 // Render an arvados object as a <div class="row">.
2 //
3 // Usage:
4 // x = m.prop({}); // fill in [later] using ArvConnection.find, etc.
5 // mod = new ArvObjectRowComponent();
6 // ctrl = new mod.controller({item: x});
7 // mod.view(ctrl)
8 module.exports = ArvObjectRowComponent;
9
10 var m = require('mithril')
11 , BaseComponent = require('app/base-component');
12
13 ArvObjectRowComponent.prototype = new BaseComponent();
14 function ArvObjectRowComponent() {
15     this.view = function(ctrl) {
16         var _item = ctrl.vm.item();
17         var _owner = _item.owner_uuid ? _item._conn.find(_item.owner_uuid)() : '';
18         return m('.row', [
19             m('.col-sm-3', [
20                 m('.btn.btn-xs',
21                   {onclick: ctrl.selectUuid.bind(ctrl, _item.uuid)}, [
22                       m('span.glyphicon.glyphicon-link'),
23                   ]),
24                 _item.uuid,
25             ]),
26             m('.col-sm-4', _item.name),
27             m('.col-sm-2', [
28                 m('a[href="/show/'+_item.owner_uuid+'"]', {config:m.route}, [
29                     _owner && (_owner.full_name || _owner.name)
30                 ]),
31             ]),
32             m('.col-sm-2', new Date(_item.created_at).toLocaleString()),
33         ]);
34     };
35 }