1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 $(document).on('ready', function() {
6 var db = new SessionDB()
11 window.SessionsTable = {
12 oninit: function(vnode) {
13 vnode.state.db = new SessionDB()
14 vnode.state.hostToAdd = m.stream('')
16 view: function(vnode) {
17 var db = vnode.state.db
18 var sessions = db.loadAll()
19 return m('.container', [
20 m('table.table.table-condensed.table-hover', [
23 m('th', 'cluster ID'),
30 Object.keys(sessions).map(function(uuidPrefix) {
31 var session = sessions[uuidPrefix]
33 session.token && session.user ? [
34 m('td', m('span.label.label-success', 'logged in')),
35 m('td', {title: session.baseURL}, uuidPrefix),
36 m('td', session.user.username),
37 m('td', session.user.email),
38 m('td', session.isFromRails ? null : m('button.btn.btn-xs.btn-default', {
39 uuidPrefix: uuidPrefix,
40 onclick: m.withAttr('uuidPrefix', db.logout),
41 }, 'Log out ', m('span.glyphicon.glyphicon-log-out'))),
43 m('td', m('span.label.label-default', 'logged out')),
44 m('td', {title: session.baseURL}, uuidPrefix),
47 m('td', m('a.btn.btn-xs.btn-primary', {
48 uuidPrefix: uuidPrefix,
49 onclick: db.login.bind(db, session.baseURL),
50 }, 'Log in ', m('span.glyphicon.glyphicon-log-in'))),
52 m('td', session.isFromRails ? null : m('button.btn.btn-xs.btn-default', {
53 uuidPrefix: uuidPrefix,
54 onclick: m.withAttr('uuidPrefix', db.trash),
55 }, 'Remove ', m('span.glyphicon.glyphicon-trash'))),
60 m('.row', m('.col-md-6', [
62 onsubmit: function() {
63 db.login(vnode.state.hostToAdd())
68 m('input.form-control[type=text][name=apiHost][placeholder="API host"]', {
69 oninput: m.withAttr('value', vnode.state.hostToAdd),
71 m('.input-group-btn', [
72 m('input.btn.btn-primary[type=submit][value="Log in"]', {
73 disabled: !vnode.state.hostToAdd(),