diff --git a/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js b/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js index babe28f5f..0cfb61dbf 100644 --- a/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js +++ b/ui/desktop/app/controllers/scopes/scope/projects/sessions/index.js @@ -1,5 +1,4 @@ import Controller from '@ember/controller'; -import { computed } from '@ember/object'; import { inject as service } from '@ember/service'; export default class ScopesScopeProjectsSessionsIndexController extends Controller { @@ -15,7 +14,6 @@ export default class ScopesScopeProjectsSessionsIndexController extends Controll * and active/pending. * @type {SessionModel[]} */ - @computed('model.@each.{created_time,active}', 'session.data.authenticated.user_id') get sorted() { const userId = this.session.data.authenticated.user_id; const sessions = this.model; diff --git a/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js b/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js index dfab20739..9b10b7e0d 100644 --- a/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js +++ b/ui/desktop/app/controllers/scopes/scope/projects/targets/target/sessions.js @@ -1,5 +1,4 @@ import Controller from '@ember/controller'; -import { computed } from '@ember/object'; import { inject as service } from '@ember/service'; import { A } from '@ember/array'; @@ -9,14 +8,21 @@ export default class ScopesScopeProjectsTargetsTargetSessionsController extends @service session; /** - * Sort and filter to active sessions of current user + * Sessions belonging to the target. + * @type {SessionModel[]} + */ + get sessions() { + return this.model.sessions; + } + + /** + * Sort and filter to active sessions of current user. * @param {[SessionModel]} model * @param {object} session * @type {[SessionModel]} */ - @computed('model.@each.{created_time,active}', 'session.data.authenticated.user_id') - get selfActiveSessions() { - const sessions = this.model; + get cancelableUserSessions() { + const sessions = this.sessions; const userId = this.session.data.authenticated.user_id; const filteredSessions = sessions.filter(session => @@ -27,10 +33,6 @@ export default class ScopesScopeProjectsTargetsTargetSessionsController extends // Sort sessions const sortedSessions = A(filteredSessions).sortBy('created_time').reverse(); - // Move active sessions to top - return [ - ...sortedSessions.filter(session => session.isActive), - ...sortedSessions.filter(session => !session.isActive) - ] + return sortedSessions; } } diff --git a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js index 203b74d62..9306118c7 100644 --- a/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js +++ b/ui/desktop/app/routes/scopes/scope/projects/targets/target/sessions.js @@ -4,15 +4,6 @@ import { notifySuccess, notifyError } from 'core/decorators/notify'; export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route { - // =methods - - /** - * @return {[SessionModel]} - */ - model() { - return this.modelFor('scopes.scope.projects.targets.target').sessions; - } - // =actions /** @@ -25,4 +16,5 @@ export default class ScopesScopeProjectsTargetsTargetSessionsRoute extends Route async cancelSession(session) { await session.cancelSession(); } + } diff --git a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs index fa93594e3..8593787fe 100644 --- a/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs +++ b/ui/desktop/app/templates/scopes/scope/projects/targets/target/sessions.hbs @@ -1,8 +1,19 @@ -{{#if this.selfActiveSessions}} +{{#if this.cancelableUserSessions}} + + + + {{t "form.id.label"}} + {{t "form.proxy.label"}} + {{t "form.started.label"}} + + + - {{#each this.selfActiveSessions as |session|}} + + {{#each this.cancelableUserSessions as |session|}} + {{session.id}} + {{session.status}} + - {{!-- - Two if's here because: - 1) Local proxy info is only relevant if the session is - active or pending (aka isCancelable). Once the session - is canceled or in the process thereof, the local proxy - may no longer be used. - 2) The session actually has proxy information associated - with it. It's possible for the user to start sessions - from other devices (or even another tab), in which case we - won't have the local proxy info available here. - --}} - {{#if session.isCancelable}} - {{#if session.proxy}} - - {{session.proxy}} - - {{/if}} + {{#if session.proxy}} + + {{session.proxy}} + {{/if}} + + + + + + + {{#if session.isCancelable}} + + {{t "actions.cancel"}} + + {{/if}} + + {{/each}} + @@ -56,4 +75,3 @@ {{/if}} -