X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/69487544de1e7fa7c636473e338fe90dde6c3c06..65f13986f98a75f8da7cfe695ea5960ff741d402:/apps/workbench/app/assets/javascripts/components/sessions.js diff --git a/apps/workbench/app/assets/javascripts/components/sessions.js b/apps/workbench/app/assets/javascripts/components/sessions.js index be4b7e39dd..17c144c589 100644 --- a/apps/workbench/app/assets/javascripts/components/sessions.js +++ b/apps/workbench/app/assets/javascripts/components/sessions.js @@ -3,51 +3,60 @@ // SPDX-License-Identifier: AGPL-3.0 $(document).on('ready', function() { - var db = new window.models.SessionDB() + var db = new SessionDB() db.checkForNewToken() db.fillMissingUUIDs() }) -window.components = window.components || {} -window.components.sessions = { +window.SessionsTable = { oninit: function(vnode) { - vnode.state.db = new window.models.SessionDB() + vnode.state.db = new SessionDB() vnode.state.hostToAdd = m.stream('') }, view: function(vnode) { var db = vnode.state.db var sessions = db.loadAll() - return m('container', [ - m('table.table.table-condensed.table-hover', m('tbody', [ - Object.keys(sessions).map(function(uuidPrefix) { - var session = sessions[uuidPrefix] - return m('tr', [ - session.token && session.user ? [ - m('td', m('a.btn.btn-xs.btn-default', { + return m('.container', [ + m('table.table.table-condensed.table-hover', [ + m('thead', m('tr', [ + m('th', 'status'), + m('th', 'cluster ID'), + m('th', 'username'), + m('th', 'email'), + m('th', 'actions'), + m('th'), + ])), + m('tbody', [ + Object.keys(sessions).map(function(uuidPrefix) { + var session = sessions[uuidPrefix] + return m('tr', [ + session.token && session.user ? [ + m('td', m('span.label.label-success', 'logged in')), + m('td', {title: session.baseURL}, uuidPrefix), + m('td', session.user.username), + m('td', session.user.email), + m('td', session.isFromRails ? null : m('button.btn.btn-xs.btn-default', { + uuidPrefix: uuidPrefix, + onclick: m.withAttr('uuidPrefix', db.logout), + }, 'Log out ', m('span.glyphicon.glyphicon-log-out'))), + ] : [ + m('td', m('span.label.label-default', 'logged out')), + m('td', {title: session.baseURL}, uuidPrefix), + m('td'), + m('td'), + m('td', m('a.btn.btn-xs.btn-primary', { + uuidPrefix: uuidPrefix, + onclick: db.login.bind(db, session.baseURL), + }, 'Log in ', m('span.glyphicon.glyphicon-log-in'))), + ], + m('td', session.isFromRails ? null : m('button.btn.btn-xs.btn-default', { uuidPrefix: uuidPrefix, - onclick: m.withAttr('uuidPrefix', db.logout), - }, 'log out')), - m('td', m('span.label.label-info', 'logged in')), - m('td', {title: session.baseURL}, uuidPrefix), - m('td', session.user.username), - m('td', session.user.email), - ] : [ - m('td', m('a.btn.btn-xs.btn-info', { - uuidPrefix: uuidPrefix, - onclick: m.withAttr('uuidPrefix', db.login), - }, 'log in')), - m('td', 'span.label.label-default', 'logged out'), - m('td', {title: session.baseURL}, uuidPrefix), - m('td'), - m('td'), - ], - m('td', m('a.glyphicon.glyphicon-trash', { - uuidPrefix: uuidPrefix, - onclick: m.withAttr('uuidPrefix', db.trash), - })), - ]) - }), - ])), + onclick: m.withAttr('uuidPrefix', db.trash), + }, 'Remove ', m('span.glyphicon.glyphicon-trash'))), + ]) + }), + ]), + ]), m('.row', m('.col-md-6', [ m('form', { onsubmit: function() {