From 826a565a81590c541427879a9f9609cc94806548 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Date: Tue, 14 Mar 2023 14:37:41 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Use=20mirage=20data=20fo?= =?UTF-8?q?r=20simple=20navigation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use provided mirage data for simple navigation from the list of session recordings to a detailed channel within a connection --- addons/core/translations/resources/en-us.yaml | 3 +++ .../routes/scopes/scope/session-recordings.js | 9 +++---- .../session-recordings/session-recording.js | 20 ++++++++++---- .../channels-by-connection/channel.js | 9 +++++-- .../scopes/scope/session-recordings/index.hbs | 16 ++++++----- .../channels-by-connection/channel.hbs | 2 +- .../session-recording/index.hbs | 27 ++++++++++--------- 7 files changed, 54 insertions(+), 32 deletions(-) diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml index cb5ae2fc4..3e6ee2b6b 100644 --- a/addons/core/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -214,6 +214,9 @@ org: session-recording: title: Session Recording title_plural: Session Recordings + connection: + title: Connection + title_plural: Connections channel: title: Channel title_plural: Channels diff --git a/ui/admin/app/routes/scopes/scope/session-recordings.js b/ui/admin/app/routes/scopes/scope/session-recordings.js index efffa07f1..d7dc6b09c 100644 --- a/ui/admin/app/routes/scopes/scope/session-recordings.js +++ b/ui/admin/app/routes/scopes/scope/session-recordings.js @@ -24,14 +24,11 @@ export default class ScopesScopeSessionRecordingsRoute extends Route { */ model() { // TODO: awaiting modeled data - // const scope = this.modelFor('scopes.scope'); - // const { id: scope_id } = scope; + const scope = this.modelFor('scopes.scope'); + const { id: scope_id } = scope; // if (this.can.can('list session-recording', scope, { collection: 'session-recordings' })) { - // return this.store.query('session-recording', { scope_id }); + return this.store.query('recording', { scope_id }); // } - return { - session_recording_id: 'sr_1234567890', - }; } // =actions diff --git a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording.js b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording.js index eda72d65e..e09ebbfc8 100644 --- a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording.js +++ b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording.js @@ -1,12 +1,22 @@ import Route from '@ember/routing/route'; +import { inject as service } from '@ember/service'; export default class ScopesScopeSessionRecordingsSessionRecordingRoute extends Route { // =services + @service store; + @service session; + @service router; + // =methods - model() { - return { - session_recording_id: 'sr_1234567890', - channel_connection_id: 'srcc_1234567890', - }; + + /** + * If arriving here unauthenticated, redirect to index for further processing. + */ + beforeModel() { + if (!this.session.isAuthenticated) this.router.transitionTo('index'); + } + + async model({ session_recording_id }) { + return this.store.findRecord('recording', session_recording_id); } } diff --git a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.js b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.js index 494ee45e6..037f8ee20 100644 --- a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.js +++ b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.js @@ -1,12 +1,17 @@ import Route from '@ember/routing/route'; +import { inject as service } from '@ember/service'; export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConnectionChannelRoute extends Route { - async model() { + // =services + @service store; + + // =methods + async model({ channel_id }) { const response = await fetch('/session.cast'); const asciicast = await response.text(); return { - scope_id: 'srcc_1234567890', + channel_id: channel_id, asciicast: asciicast, }; } diff --git a/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs b/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs index 1ce0230e6..5762bc212 100644 --- a/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs +++ b/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs @@ -4,11 +4,15 @@ - - {{@model.session_recording_id}} - + {{#each @model as |recording|}} +

+ + {{recording.id}} + +

+ {{/each}}
\ No newline at end of file diff --git a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.hbs b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.hbs index 015c8a546..f36440b2a 100644 --- a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.hbs +++ b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/channel.hbs @@ -12,7 +12,7 @@ -

{{@model.scope_id}}

+

{{@model.channel_id}}

diff --git a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/index.hbs b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/index.hbs index 4bdc99323..0100fa33a 100644 --- a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/index.hbs +++ b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/index.hbs @@ -8,20 +8,23 @@

{{t 'resources.session-recording.title'}} - {{@model.session_recording_id}} + {{@model.id}}

-

- {{t 'resources.session-recording.channel.title'}} - {{@model.channel_connection_id}} -

- - - {{@model.channel_connection_id}} - + {{#each @model.connections as |connection|}} +

{{t 'resources.session-recording.connection.title'}} + {{connection.id}}

+ {{#each connection.channels as |channel|}} +

+ + {{channel.id}} + +

+ {{/each}} + {{/each}}