Files
threshold-ui/ui/desktop/app/controllers/scopes/scope/projects/sessions/session.js
T
Priya Patel fb0020c395 feat: 🎸 Add RDP client launch on session details page (#3037)
* feat: 🎸 preferred clients section on settings page

* refactor: 💡 moved rdp calls to app route

* test: 💍 fixed failings tests

* refactor: 💡 addressed comments

* fix: 🐛 fixed failing tests

* refactor: 💡 add mock rdp service calls to tests

* feat: 🎸 adds open button to session details page

* fix: 🐛 translation string

* refactor: 💡 address feedback

* refactor: 💡 address comment

* fix: 🐛 test failure
2025-11-19 14:22:07 -08:00

47 lines
1.0 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import Controller, { inject as controller } from '@ember/controller';
import { TYPE_TARGET_RDP } from 'api/models/target';
import { service } from '@ember/service';
import { action } from '@ember/object';
export default class ScopesScopeProjectsSessionsSessionController extends Controller {
@controller('scopes/scope/projects/sessions/index') sessions;
// =services
@service rdp;
@service confirm;
// =getters
/**
* Whether to show the "Open" button for launching the RDP client.
* @returns {boolean}
*/
get showOpenButton() {
return (
this.model.target?.type === TYPE_TARGET_RDP &&
this.rdp.isPreferredRdpClientSet &&
this.model.id
);
}
// =methods
@action
async launchRdpClient() {
try {
await this.rdp.launchRdpClient(this.model.id);
} catch (error) {
this.confirm
.confirm(error.message, { isConnectError: true })
// Retry
.then(() => this.launchRdpClient());
}
}
}