diff --git a/addons/core/public/logo-app-background.svg b/addons/core/public/logo-app-background.svg new file mode 100644 index 000000000..489ba32c2 --- /dev/null +++ b/addons/core/public/logo-app-background.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/addons/core/public/targets.svg b/addons/core/public/targets.svg new file mode 100644 index 000000000..be93132f0 --- /dev/null +++ b/addons/core/public/targets.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/addons/core/translations/actions/en-us.yaml b/addons/core/translations/actions/en-us.yaml index 7e3dd4e45..d8af5ca89 100644 --- a/addons/core/translations/actions/en-us.yaml +++ b/addons/core/translations/actions/en-us.yaml @@ -9,6 +9,7 @@ save: Save submit: Submit manage: Manage confirm: Confirm +done: Done ok: OK deny: Deny help: Need help? diff --git a/addons/core/translations/en-us.yaml b/addons/core/translations/en-us.yaml index 580cebbdb..12a866d2b 100644 --- a/addons/core/translations/en-us.yaml +++ b/addons/core/translations/en-us.yaml @@ -32,6 +32,7 @@ titles: no-results: No Results choose-a-provider: Choose a provider provider: Provider + success: Success create-resources: Create Resources descriptions: empty-set: There are no items to display yet. You may be able to add items or try back later. @@ -70,3 +71,17 @@ onboarding: resource-setup-info: Hosts are organized in host catalogs, which live in projects, which live in orgs. We will create these for you, and they can be edited or deleted later. host-address: "Example: “192.168.0.1” or IPv6" target-port: "Example: “22”" + success: + titles: + connect: Connect to your Target + desktop: Using Boundary Desktop + developers: Developers + descriptions: + download: Download the Boundary Desktop app to browse and connect to targets (available for Windows, Mac, and Linux) + developers: You can also connect to targets using the Boundary CLI or API. + links: + install: Install the Boundary Desktop app + learn: Learn about Boundary Desktop app + cli: Learn about Boundary command-line (CLI) + api: Learn about Boundary API + diff --git a/addons/rose/addon/styles/rose/components/_icon.scss b/addons/rose/addon/styles/rose/components/_icon.scss index 451af3823..46cd19121 100644 --- a/addons/rose/addon/styles/rose/components/_icon.scss +++ b/addons/rose/addon/styles/rose/components/_icon.scss @@ -3,6 +3,10 @@ .rose-icon { --size: #{sizing.rems(l)}; + &.extra-large { + --size: #{sizing.rems(m) * 2}; + } + &.medium { --size: #{sizing.rems(m)}; } diff --git a/ui/admin/app/styles/app.scss b/ui/admin/app/styles/app.scss index 96e41492a..05ffbb862 100644 --- a/ui/admin/app/styles/app.scss +++ b/ui/admin/app/styles/app.scss @@ -245,6 +245,43 @@ display: flex; justify-content: space-between; } + +.success-centered { + width: min-content; +} + +.success-boundary { + .rose-icon { + margin-bottom: sizing.rems(xs); + } +} + +.success-sub-title { + display: inline-flex; + + > h3 { + margin-left: sizing.rems(xs); + margin-top: sizing.rems(xxs); + } +} + +.success-link { + display: block; + margin-top: sizing.rems(xs); + text-decoration: none; +} + +.success-image { + margin-bottom: sizing.rems(xl); + margin-top: sizing.rems(l); +} + +.success-button { + display: flex; + justify-content: center; + margin-bottom: 0; + margin-top: sizing.rems(xl); +} .create-resources { display: block; width: sizing.rems(xl) * 15; diff --git a/ui/admin/app/templates/onboarding/quick-setup/create-resources/success.hbs b/ui/admin/app/templates/onboarding/quick-setup/create-resources/success.hbs index c9f37b4e7..e8762ab5c 100644 --- a/ui/admin/app/templates/onboarding/quick-setup/create-resources/success.hbs +++ b/ui/admin/app/templates/onboarding/quick-setup/create-resources/success.hbs @@ -1,2 +1,68 @@ -{{page-title 'Success'}} -{{outlet}} \ No newline at end of file +{{page-title (t 'titles.success')}} + + + <:header> +

{{t 'onboarding.success.titles.connect'}}

+ + <:body> +
+
+ +

+ {{t 'onboarding.success.titles.desktop'}} +

+
+ +

{{t 'onboarding.success.descriptions.download'}}

+ + + + {{t 'onboarding.success.links.install'}} + + + + + {{t 'onboarding.success.links.learn'}} + + +
+ +
+
+ +

{{t 'onboarding.success.titles.developers'}}

+ +

{{t 'onboarding.success.descriptions.developers'}}

+ + + + {{t 'onboarding.success.links.cli'}} + + + + + {{t 'onboarding.success.links.api'}} + + +
+
\ No newline at end of file diff --git a/ui/admin/config/environment.js b/ui/admin/config/environment.js index 2a6020cd5..37faa8d80 100644 --- a/ui/admin/config/environment.js +++ b/ui/admin/config/environment.js @@ -89,6 +89,10 @@ module.exports = function (environment) { 'target.add-host-sources': '/targets/add-host-sets', 'target.worker-filters': '/targets/worker-filters', user: '/users', + downloads: '/downloads', + 'getting-started.desktop': '/gettting-started/desktop', + 'api-client.cli': '/api-client/cli', + 'api-client.api': '/api-client/api', }, }, diff --git a/ui/admin/tests/acceptance/onboarding/success-test.js b/ui/admin/tests/acceptance/onboarding/success-test.js new file mode 100644 index 000000000..71cdbddf8 --- /dev/null +++ b/ui/admin/tests/acceptance/onboarding/success-test.js @@ -0,0 +1,30 @@ +import { module, test } from 'qunit'; +import { visit, currentURL, click } from '@ember/test-helpers'; +import { setupApplicationTest } from 'ember-qunit'; +import setupMirage from 'ember-cli-mirage/test-support/setup-mirage'; +import { authenticateSession } from 'ember-simple-auth/test-support'; + +module( + 'Acceptance | onboarding | quick-setup | create-resources | success', + function (hooks) { + setupApplicationTest(hooks); + setupMirage(hooks); + + hooks.beforeEach(function () { + authenticateSession({}); + }); + + const urls = { + createResources: + '/scopes/global/onboarding/quick-setup/create-resources/success', + targets: '/scopes/global/targets', + }; + + test.skip('clicking done takes user to targets screen', async function (assert) { + assert.expect(1); + await visit(urls.createResources); + await click('.success-button'); + assert.equal(currentURL(), urls.targets); + }); + } +);