diff --git a/admin/app/components/target-profiles/target-profile.gjs b/admin/app/components/target-profiles/target-profile.gjs
index 76f23de5b6f..80632ce709a 100644
--- a/admin/app/components/target-profiles/target-profile.gjs
+++ b/admin/app/components/target-profiles/target-profile.gjs
@@ -9,6 +9,7 @@ import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { t } from 'ember-intl';
import { pageTitle } from 'ember-page-title';
+import ENV from 'pix-admin/config/environment';
import formatDate from '../../helpers/format-date';
import ConfirmPopup from '../confirm-popup';
@@ -51,6 +52,11 @@ export default class TargetProfile extends Component {
return Boolean(this.args.model.hasLinkedAutonomousCourse);
}
+ get externalURL() {
+ const urlDashboardPrefix = ENV.APP.TARGET_PROFILE_DASHBOARD_URL;
+ return urlDashboardPrefix && `${urlDashboardPrefix}?id=${this.args.model.id}`;
+ }
+
displayBooleanState = (bool) => {
const yes = this.intl.t('common.words.yes');
const no = this.intl.t('common.words.no');
@@ -235,21 +241,26 @@ export default class TargetProfile extends Component {
@route="authenticated.target-profiles.edit"
@model={{@model.id}}
@size="small"
- @variant="secondary"
+ @variant="primary"
>
{{t "common.actions.edit"}}
-
- {{#unless @model.isSimplifiedAccess}}
-
- Marquer comme accès simplifié
-
- {{/unless}}
+ {{t
+ "pages.target-profiles.copy.button.label"
+ }}
+
+
+
+
+ Tableau de bord
+
Télécharger le profil cible (JSON)
@@ -259,14 +270,14 @@ export default class TargetProfile extends Component {
Télécharger le profil cible (PDF)
- {{t
- "pages.target-profiles.copy.button.label"
- }}
-
-
+
+ {{#unless @model.isSimplifiedAccess}}
+
+ Marquer comme accès simplifié
+
+ {{/unless}}
{{#unless @model.outdated}}
-
Marquer comme obsolète
diff --git a/admin/config/environment.js b/admin/config/environment.js
index 56facdc7e88..b625d695de6 100644
--- a/admin/config/environment.js
+++ b/admin/config/environment.js
@@ -73,6 +73,7 @@ module.exports = function (environment) {
minValue: 1,
}),
ORGANIZATION_DASHBOARD_URL: process.env.ORGANIZATION_DASHBOARD_URL,
+ TARGETPROFILE_DASHBOARD_URL: process.env.TARGETPROFILE_DASHBOARD_URL,
CERTIFICATION_CENTER_DASHBOARD_URL: process.env.CERTIFICATION_CENTER_DASHBOARD_URL,
USER_DASHBOARD_URL: process.env.USER_DASHBOARD_URL,
MAX_LEVEL: 8,
@@ -124,6 +125,7 @@ module.exports = function (environment) {
// ENV.APP.LOG_TRANSITIONS = true;
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
// ENV.APP.LOG_VIEW_LOOKUPS = true;
+ ENV.APP.TARGET_PROFILE_DASHBOARD_URL = 'https://exemple.net';
if (analyticsEnabled) {
ENV.matomo.url = process.env.WEB_ANALYTICS_URL;
ENV.matomo.debug = true;
@@ -133,12 +135,12 @@ module.exports = function (environment) {
if (environment === 'test') {
// Testem prefers this...
ENV.locationType = 'none';
-
ENV.APP.API_HOST = 'http://localhost:3000';
// keep test console output quieter
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
+ ENV.APP.TARGET_PROFILE_DASHBOARD_URL = 'https://example.net';
ENV.APP.rootElement = '#ember-testing';
ENV.APP.autoboot = false;
diff --git a/admin/tests/integration/components/target-profiles/target-profile-test.gjs b/admin/tests/integration/components/target-profiles/target-profile-test.gjs
index a54cc5e7174..c77889a92fd 100644
--- a/admin/tests/integration/components/target-profiles/target-profile-test.gjs
+++ b/admin/tests/integration/components/target-profiles/target-profile-test.gjs
@@ -1,6 +1,7 @@
import { render } from '@1024pix/ember-testing-library';
import { t } from 'ember-intl/test-support';
import TargetProfile from 'pix-admin/components/target-profiles/target-profile';
+import ENV from 'pix-admin/config/environment';
import { module, test } from 'qunit';
import setupIntlRenderingTest from '../../../helpers/setup-intl-rendering';
@@ -41,6 +42,18 @@ module('Integration | Component | TargetProfile', function (hooks) {
assert.ok(_findByListItemText(screen, `${t('pages.target-profiles.resettable-checkbox.label')} : Non`));
assert.ok(_findByListItemText(screen, `${t('pages.target-profiles.tubes-count')} : ${model.tubesCount}`));
});
+ test('it should display link to a metabase dashboard', async function (assert) {
+ //given
+ const model = { ...targetProfileSampleData };
+
+ // when
+ const screen = await render();
+
+ //then
+ const buttonLink = screen.getByRole('link', { name: 'Tableau de bord' });
+ assert.ok(buttonLink);
+ assert.strictEqual(buttonLink.getAttribute('href'), `${ENV.APP.TARGET_PROFILE_DASHBOARD_URL}?id=${model.id}`);
+ });
});
module('when no campaign is linked', function () {