From a9d110a1b6bb9e266b21594c5f780ed1f0dbc079 Mon Sep 17 00:00:00 2001 From: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:04:46 -0700 Subject: [PATCH] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20remove=20route-actio?= =?UTF-8?q?n=20usage=20for=20session=20recordings=20(#2439)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 💡 remove route-action usage for session recordings ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12620 --- .../channels-by-connection/index.js | 53 +++++++++++- .../routes/scopes/scope/session-recordings.js | 19 ----- .../channels-by-connection.js | 22 ----- .../channels-by-connection/index.hbs | 7 +- .../scope/session-recordings/index-test.js | 2 +- .../channels-by-connection/index-test.js | 82 ++++++++++++------- 6 files changed, 107 insertions(+), 78 deletions(-) diff --git a/ui/admin/app/controllers/scopes/scope/session-recordings/session-recording/channels-by-connection/index.js b/ui/admin/app/controllers/scopes/scope/session-recordings/session-recording/channels-by-connection/index.js index e730af33b..8706e63d9 100644 --- a/ui/admin/app/controllers/scopes/scope/session-recordings/session-recording/channels-by-connection/index.js +++ b/ui/admin/app/controllers/scopes/scope/session-recordings/session-recording/channels-by-connection/index.js @@ -4,15 +4,26 @@ */ import Controller from '@ember/controller'; +import { inject as service } from '@ember/service'; +import { action } from '@ember/object'; +import { loading } from 'ember-loading'; +import { confirm } from 'core/decorators/confirm'; +import { notifySuccess, notifyError } from 'core/decorators/notify'; import { STATE_SESSION_RECORDING_STARTED, STATE_SESSION_RECORDING_UNKNOWN, } from 'api/models/session-recording'; export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConnectionIndexController extends Controller { + // =services + + @service router; + + // =attributes + /** * Returns true if the session recording has started - * but has not started any connections + * but has not started any connections. * @type {boolean} */ get isSessionInprogressWithNoConnections() { @@ -24,7 +35,7 @@ export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConne /** * Returns true if the session recording state is unknown - * and has no connections + * and has no connections. * @type {boolean} */ get isSessionUnknownWithNoConnections() { @@ -33,4 +44,42 @@ export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConne this.model?.sessionRecording?.state === STATE_SESSION_RECORDING_UNKNOWN ); } + + // =actions + + /** + * Reapplies storage policy dates to session recording. + * @param {SessionRecordingModel} + */ + @action + @notifyError(({ message }) => message, { catch: true }) + @notifySuccess(({ end_time }) => + !end_time + ? 'resources.policy.messages.later' + : 'resources.policy.messages.reapply', + ) + async reapplyStoragePolicy(sessionRecording) { + try { + await sessionRecording.reapplyStoragePolicy(); + } catch (e) { + await this.router.replaceWith('scopes.scope.session-recordings'); + this.router.refresh(); + throw new Error(e); + } + } + + /** + * Deletes the session recording. + * @param {SessionRecording} recording + */ + @action + @loading + @confirm('resources.session-recording.questions.delete') + @notifyError(({ message }) => message, { catch: true }) + @notifySuccess('notifications.delete-success') + async delete(sessionRecording) { + await sessionRecording.destroyRecord(); + await this.router.replaceWith('scopes.scope.session-recordings'); + this.router.refresh(); + } } diff --git a/ui/admin/app/routes/scopes/scope/session-recordings.js b/ui/admin/app/routes/scopes/scope/session-recordings.js index 7218479b1..717c74c85 100644 --- a/ui/admin/app/routes/scopes/scope/session-recordings.js +++ b/ui/admin/app/routes/scopes/scope/session-recordings.js @@ -6,10 +6,6 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; import orderBy from 'lodash/orderBy'; -import { loading } from 'ember-loading'; -import { confirm } from 'core/decorators/confirm'; -import { action } from '@ember/object'; -import { notifySuccess, notifyError } from 'core/decorators/notify'; export default class ScopesScopeSessionRecordingsRoute extends Route { // =services @@ -72,19 +68,4 @@ export default class ScopesScopeSessionRecordingsRoute extends Route { }; } } - - /** - * Deletes the session recording - * @param {SessionRecording} recording - */ - @action - @loading - @confirm('resources.session-recording.questions.delete') - @notifyError(({ message }) => message, { catch: true }) - @notifySuccess('notifications.delete-success') - async delete(recording) { - await recording.destroyRecord(); - await this.router.replaceWith('scopes.scope.session-recordings'); - this.router.refresh(); - } } diff --git a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection.js b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection.js index c0d9b9313..094e1b979 100644 --- a/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection.js +++ b/ui/admin/app/routes/scopes/scope/session-recordings/session-recording/channels-by-connection.js @@ -5,8 +5,6 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; -import { action } from '@ember/object'; -import { notifySuccess, notifyError } from 'core/decorators/notify'; export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConnectionRoute extends Route { // =services @@ -50,24 +48,4 @@ export default class ScopesScopeSessionRecordingsSessionRecordingChannelsByConne storageBucket, }; } - /** - * Reapplies storage policy dates to session recording - * @param {SessionRecordingModel} - */ - @action - @notifyError(({ message }) => message, { catch: true }) - @notifySuccess(({ end_time }) => - !end_time - ? 'resources.policy.messages.later' - : 'resources.policy.messages.reapply', - ) - async reapplyStoragepolicy(sessionRecording) { - try { - await sessionRecording.reapplyStoragePolicy(); - } catch (e) { - await this.router.replaceWith('scopes.scope.session-recordings'); - this.router.refresh(); - throw new Error(e); - } - } } diff --git a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/index.hbs b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/index.hbs index aa19d71fd..70e76c213 100644 --- a/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/index.hbs +++ b/ui/admin/app/templates/scopes/scope/session-recordings/session-recording/channels-by-connection/index.hbs @@ -25,10 +25,7 @@