diff --git a/addons/api/addon/models/session-recording.js b/addons/api/addon/models/session-recording.js index 89ee6560d..e2b297054 100644 --- a/addons/api/addon/models/session-recording.js +++ b/addons/api/addon/models/session-recording.js @@ -28,7 +28,19 @@ export default class SessionRecordingModel extends GeneratedSessionRecordingMode return !TYPES_SESSION_RECORDING.includes(this.type); } + /** + * Returns scope name or scope id from the target that belongs to the session recording. + * @type {string} + */ get targetScopeDisplayName() { return this.target?.scope?.name || this.target?.scope?.id; } + + /** + * Returns the user name or user id that belongs to the session recording. + * @type {string} + */ + get userDisplayName() { + return this.user?.name || this.user?.id; + } } diff --git a/addons/api/tests/unit/models/session-recording-test.js b/addons/api/tests/unit/models/session-recording-test.js index af61282a6..d65a3f1c2 100644 --- a/addons/api/tests/unit/models/session-recording-test.js +++ b/addons/api/tests/unit/models/session-recording-test.js @@ -56,32 +56,37 @@ module('Unit | Model | session-recording', function (hooks) { const store = this.owner.lookup('service:store'); const fakeName = 'Scope name'; const fakeId = 's_123456789'; - // Scope models: A has just name, B has just id. - const scopeModelA = await store.createRecord('scope', { - type: 'global', - name: fakeName, - id: 's_1234567890', - }); - const scopeModelB = await store.createRecord('scope', { - type: 'org', - id: fakeId, - }); - - const targetModelA = await store.createRecord('target', { - scope: scopeModelA, - }); - const targetModelB = await store.createRecord('target', { - scope: scopeModelB, - }); const modelA = store.createRecord('session-recording', { - target: targetModelA, + target: { + scope: { name: fakeName, id: fakeId }, + }, }); const modelB = store.createRecord('session-recording', { - target: targetModelB, + target: { + scope: { id: fakeId }, + }, }); assert.strictEqual(modelA.targetScopeDisplayName, fakeName); assert.strictEqual(modelB.targetScopeDisplayName, fakeId); }); + + test('it has userDisplayName and returns the expected values', async function (assert) { + assert.expect(2); + const store = this.owner.lookup('service:store'); + const fakeUserName = 'User name'; + const fakeUserId = 'userid'; + + const userModelA = store.createRecord('session-recording', { + user: { name: fakeUserName, id: fakeUserId }, + }); + + const userModelB = store.createRecord('session-recording', { + user: { id: fakeUserId }, + }); + + assert.strictEqual(userModelA.userDisplayName, fakeUserName); + assert.strictEqual(userModelB.userDisplayName, fakeUserId); + }); }); diff --git a/ui/admin/app/controllers/scopes/scope/session-recordings/session-recording.js b/ui/admin/app/controllers/scopes/scope/session-recordings/session-recording.js index cf762b744..732c8432e 100644 --- a/ui/admin/app/controllers/scopes/scope/session-recordings/session-recording.js +++ b/ui/admin/app/controllers/scopes/scope/session-recordings/session-recording.js @@ -10,6 +10,6 @@ export default class ScopesScopeSessionRecordingsSessionRecordingController exte * Session recording breadcrumb */ get breadCrumb() { - return this.model.displayName; + return this.model.sessionRecording.displayName; } } 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 57fc48f2e..c05d6f907 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 @@ -7,7 +7,7 @@ export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConne // =methods async model({ channel_id }) { - const sessionRecording = await this.modelFor( + const { sessionRecording, storageBucket } = await this.modelFor( 'scopes.scope.session-recordings.session-recording' ); const channelRecording = await this.store.peekRecord( @@ -21,6 +21,7 @@ export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConne return { channelRecording, sessionRecording, + storageBucket, 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 3e181c407..38b75519a 100644 --- a/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs +++ b/ui/admin/app/templates/scopes/scope/session-recordings/index.hbs @@ -34,7 +34,7 @@ class='session-recording-list-cell-item hds-font-weight-semibold' > - {{B.data.user.name}} + {{B.data.userDisplayName}} {{! Target }} 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 e9e9ce63d..f2054ee48 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 @@ -17,6 +17,7 @@ + {{! Channel details information }}

{{t 'resources.session-recording.channel.details'}}

{{! Start time }} @@ -25,12 +26,6 @@ {{@model.channelRecording.start_time}}

- {{! Created By }} -

- - {{@model.sessionRecording.user.name}} -

- {{! Type }}

@@ -54,11 +49,27 @@ {{format-bytes-size @model.channelRecording.bytes_down}}

+
- {{! Errors }} + {{! Channel related information }} +
+

{{t 'resources.session-recording.related'}}

+ {{! User name }}

- - {{@model.channelRecording.errors}} + + {{#if @model.sessionRecording.user}} + {{@model.sessionRecording.userDisplayName}} + {{/if}} +

+ {{! Target name }} +

+ + {{@model.sessionRecording.target.name}} +

+ {{! Bucket name }} +

+ + {{@model.storageBucket.name}}

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 6eaebe465..fb69f47f7 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 @@ -111,7 +111,9 @@ {{! User name }}

- {{@model.sessionRecording.user.name}} + {{#if @model.sessionRecording.user}} + {{@model.sessionRecording.userDisplayName}} + {{/if}}

{{! Target name }}

@@ -121,10 +123,7 @@ {{! Bucket name }}

- {{or - @model.storageBucket.name - (t 'resources.storage-bucket.title') - }} + {{@model.storageBucket.name}}