diff --git a/ui/admin/app/router.js b/ui/admin/app/router.js index 4248e5ce6..9a036c377 100644 --- a/ui/admin/app/router.js +++ b/ui/admin/app/router.js @@ -18,15 +18,6 @@ Router.map(function () { }); }); - this.route('onboarding', function () { - this.route('quick-setup', function () { - this.route('choose-path'); - this.route('create-resources', function () { - this.route('success'); - }); - }); - }); - this.route('scopes', function () {}); this.route('edit'); this.route('new'); @@ -136,8 +127,9 @@ Router.map(function () { this.route('onboarding', function () { this.route('quick-setup', function () { this.route('choose-path'); - this.route('create-resources'); - this.route('success'); + this.route('create-resources', function () { + this.route('success'); + }); }); }); }); diff --git a/ui/admin/app/routes/onboarding.js b/ui/admin/app/routes/onboarding.js new file mode 100644 index 000000000..cb0b42389 --- /dev/null +++ b/ui/admin/app/routes/onboarding.js @@ -0,0 +1,36 @@ +import Route from '@ember/routing/route'; +import { inject as service } from '@ember/service'; + +export default class OnboardingRoute extends Route { + // =services + + @service session; + @service router; + + // =methods + + /** + * If arriving here unauthenticated, redirect to index for further processing. + */ + beforeModel() { + if (!this.session.isAuthenticated) this.router.transitionTo('index'); + } + + /** + * List all scopes (orgs) under global. + */ + model() { + return this.store.query('scope', { + scope_id: 'global', + recursive: true, + }); + } + + /** + * If any orgs already exist, redirect to index to skip onboarding. + */ + redirect(model) { + // If there are orgs already created, redirect to index. + if (model.length) this.router.transitionTo('index'); + } +} diff --git a/ui/admin/app/routes/scopes/scope/onboarding/quick-setup/choose-path.js b/ui/admin/app/routes/onboarding/quick-setup/choose-path.js similarity index 67% rename from ui/admin/app/routes/scopes/scope/onboarding/quick-setup/choose-path.js rename to ui/admin/app/routes/onboarding/quick-setup/choose-path.js index 1d8c04385..9e8a9397a 100644 --- a/ui/admin/app/routes/scopes/scope/onboarding/quick-setup/choose-path.js +++ b/ui/admin/app/routes/onboarding/quick-setup/choose-path.js @@ -2,7 +2,7 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; import { action } from '@ember/object'; -export default class ScopesScopeOnboardingQuickSetupChoosePathRoute extends Route { +export default class OnboardingQuickSetupChoosePathRoute extends Route { // =services @service router; @@ -13,9 +13,7 @@ export default class ScopesScopeOnboardingQuickSetupChoosePathRoute extends Rout choosePath(path = 'guided') { switch (path) { case 'guided': - this.router.transitionTo( - 'scopes.scope.onboarding.quick-setup.create-resources' - ); + this.router.transitionTo('onboarding.quick-setup.create-resources'); break; case 'manual': default: diff --git a/ui/admin/app/routes/scopes/scope/onboarding/quick-setup/create-resources.js b/ui/admin/app/routes/onboarding/quick-setup/create-resources.js similarity index 86% rename from ui/admin/app/routes/scopes/scope/onboarding/quick-setup/create-resources.js rename to ui/admin/app/routes/onboarding/quick-setup/create-resources.js index 809bf1b7c..b7eb6f523 100644 --- a/ui/admin/app/routes/scopes/scope/onboarding/quick-setup/create-resources.js +++ b/ui/admin/app/routes/onboarding/quick-setup/create-resources.js @@ -4,7 +4,7 @@ import { action } from '@ember/object'; import { loading } from 'ember-loading'; import { notifyError } from 'core/decorators/notify'; -export default class ScopesScopeOnboardingQuickSetupCreateResourcesRoute extends Route { +export default class OnboardingQuickSetupCreateResourcesRoute extends Route { // =services @service router; @@ -26,6 +26,7 @@ export default class ScopesScopeOnboardingQuickSetupCreateResourcesRoute extends description: 'Sample project created by quick setup', }), hostCatalog: this.store.createRecord('host-catalog', { + type: 'static', name: 'All Databases', description: 'Sample host catalog created by quick setup', }), @@ -38,6 +39,7 @@ export default class ScopesScopeOnboardingQuickSetupCreateResourcesRoute extends description: 'Sample host created by quick setup', }), target: this.store.createRecord('target', { + type: 'tcp', name: 'CRM Database target', description: 'Sample target created by quick setup', }), @@ -48,14 +50,15 @@ export default class ScopesScopeOnboardingQuickSetupCreateResourcesRoute extends @action @loading - @notifyError(({ message }) => message) - async createResource(hostAddress = '1234', targetPort = '42') { + @notifyError(function () { + return this.intl.t('errors.quick-setup-failed.description'); + }) + async createResources(hostAddress = '1234', targetPort = '42') { try { await this.createOnboardingResourcesAndRedirect(hostAddress, targetPort); } catch (e) { - const message = this.intl.t('errors.quick-setup-failed.description'); this.router.replaceWith('scopes.scope', 'global'); - throw new Error(message); + throw new Error(); } } @@ -80,7 +83,7 @@ export default class ScopesScopeOnboardingQuickSetupCreateResourcesRoute extends await target.save(); await target.addHostSources([hostSet.id]); this.router.transitionTo( - 'scopes.scope.onboarding.quick-setup.create-resources.success' + 'onboarding.quick-setup.create-resources.success' ); } else { this.router.transitionTo( diff --git a/ui/admin/app/routes/onboarding/quick-setup/create-resources/success.js b/ui/admin/app/routes/onboarding/quick-setup/create-resources/success.js new file mode 100644 index 000000000..1c896500e --- /dev/null +++ b/ui/admin/app/routes/onboarding/quick-setup/create-resources/success.js @@ -0,0 +1,9 @@ +import Route from '@ember/routing/route'; + +export default class OnboardingQuickSetupCreateResourcesSuccessRoute extends Route { + // =methods + + model() { + return this.modelFor('onboarding.quick-setup.create-resources'); + } +} diff --git a/ui/admin/app/routes/scopes/scope/onboarding/quick-setup/create-resources/success.js b/ui/admin/app/routes/scopes/scope/onboarding/quick-setup/create-resources/success.js deleted file mode 100644 index e673c582d..000000000 --- a/ui/admin/app/routes/scopes/scope/onboarding/quick-setup/create-resources/success.js +++ /dev/null @@ -1,11 +0,0 @@ -import Route from '@ember/routing/route'; - -export default class ScopesScopeOnboardingQuickSetupCreateResourcesSuccessRoute extends Route { - // =methods - - model() { - return this.modelFor( - 'scopes.scope.onboarding.quick-setup.create-resources' - ); - } -} diff --git a/ui/admin/app/templates/onboarding.hbs b/ui/admin/app/templates/onboarding.hbs new file mode 100644 index 000000000..774fd3784 --- /dev/null +++ b/ui/admin/app/templates/onboarding.hbs @@ -0,0 +1,2 @@ +{{page-title 'Onboarding'}} +{{outlet}} \ No newline at end of file diff --git a/ui/admin/app/templates/scopes/scope/onboarding/quick-setup/choose-path.hbs b/ui/admin/app/templates/onboarding/quick-setup/choose-path.hbs similarity index 100% rename from ui/admin/app/templates/scopes/scope/onboarding/quick-setup/choose-path.hbs rename to ui/admin/app/templates/onboarding/quick-setup/choose-path.hbs diff --git a/ui/admin/app/templates/onboarding/quick-setup/create-resources.hbs b/ui/admin/app/templates/onboarding/quick-setup/create-resources.hbs new file mode 100644 index 000000000..b529ba583 --- /dev/null +++ b/ui/admin/app/templates/onboarding/quick-setup/create-resources.hbs @@ -0,0 +1,2 @@ +{{page-title 'CreateResources'}} +{{outlet}} \ No newline at end of file diff --git a/ui/admin/app/templates/scopes/scope/onboarding/quick-setup/create-resources/index.hbs b/ui/admin/app/templates/onboarding/quick-setup/create-resources/index.hbs similarity index 89% rename from ui/admin/app/templates/scopes/scope/onboarding/quick-setup/create-resources/index.hbs rename to ui/admin/app/templates/onboarding/quick-setup/create-resources/index.hbs index 8565db7d5..b81515d23 100644 --- a/ui/admin/app/templates/scopes/scope/onboarding/quick-setup/create-resources/index.hbs +++ b/ui/admin/app/templates/onboarding/quick-setup/create-resources/index.hbs @@ -8,7 +8,7 @@

{{t 'onboarding.quick-start.titles.create-resource'}}

{{t 'onboarding.quick-start.descriptions.create-resource'}}

diff --git a/ui/admin/app/templates/scopes/scope/onboarding/quick-setup/create-resources/success.hbs b/ui/admin/app/templates/onboarding/quick-setup/create-resources/success.hbs similarity index 100% rename from ui/admin/app/templates/scopes/scope/onboarding/quick-setup/create-resources/success.hbs rename to ui/admin/app/templates/onboarding/quick-setup/create-resources/success.hbs diff --git a/ui/admin/tests/acceptance/onboarding/choose-path-test.js b/ui/admin/tests/acceptance/onboarding/choose-path-test.js index 2fdcc213f..223d1e62a 100644 --- a/ui/admin/tests/acceptance/onboarding/choose-path-test.js +++ b/ui/admin/tests/acceptance/onboarding/choose-path-test.js @@ -9,9 +9,9 @@ module('Acceptance | onboarding | choose-path', function (hooks) { setupMirage(hooks); const urls = { - choosePath: '/scopes/global/onboarding/quick-setup/choose-path', + choosePath: '/onboarding/quick-setup/choose-path', newOrg: '/scopes/global/new', - createResources: '/scopes/global/onboarding/quick-setup/create-resources', + createResources: '/onboarding/quick-setup/create-resources', }; hooks.beforeEach(function () { diff --git a/ui/admin/tests/acceptance/onboarding/create-resource-test.js b/ui/admin/tests/acceptance/onboarding/create-resource-test.js index 365b6499d..cb6c09df8 100644 --- a/ui/admin/tests/acceptance/onboarding/create-resource-test.js +++ b/ui/admin/tests/acceptance/onboarding/create-resource-test.js @@ -9,9 +9,8 @@ module('Acceptance | onboarding | create-resources', function (hooks) { setupMirage(hooks); const urls = { - createResources: '/scopes/global/onboarding/quick-setup/create-resources', - successPath: - '/scopes/global/onboarding/quick-setup/create-resources/success', + createResources: '/onboarding/quick-setup/create-resources', + successPath: '/onboarding/quick-setup/create-resources/success', }; hooks.beforeEach(function () { diff --git a/ui/admin/tests/unit/routes/onboarding-test.js b/ui/admin/tests/unit/routes/onboarding-test.js new file mode 100644 index 000000000..e154980db --- /dev/null +++ b/ui/admin/tests/unit/routes/onboarding-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | onboarding', function (hooks) { + setupTest(hooks); + + test('it exists', function (assert) { + let route = this.owner.lookup('route:onboarding'); + assert.ok(route); + }); +}); diff --git a/ui/admin/tests/unit/routes/onboarding/quick-setup/choose-path-test.js b/ui/admin/tests/unit/routes/onboarding/quick-setup/choose-path-test.js new file mode 100644 index 000000000..1d66e331c --- /dev/null +++ b/ui/admin/tests/unit/routes/onboarding/quick-setup/choose-path-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | onboarding/quick-setup/choose-path', function (hooks) { + setupTest(hooks); + + test('it exists', function (assert) { + let route = this.owner.lookup('route:onboarding/quick-setup/choose-path'); + assert.ok(route); + }); +}); diff --git a/ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/choose-path-test.js b/ui/admin/tests/unit/routes/onboarding/quick-setup/create-resources-test.js similarity index 66% rename from ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/choose-path-test.js rename to ui/admin/tests/unit/routes/onboarding/quick-setup/create-resources-test.js index 742594ecb..ddec86774 100644 --- a/ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/choose-path-test.js +++ b/ui/admin/tests/unit/routes/onboarding/quick-setup/create-resources-test.js @@ -2,13 +2,13 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; module( - 'Unit | Route | scopes/scope/onboarding/quick-setup/choose-path', + 'Unit | Route | onboarding/quick-setup/create-resources', function (hooks) { setupTest(hooks); test('it exists', function (assert) { let route = this.owner.lookup( - 'route:scopes/scope/onboarding/quick-setup/choose-path' + 'route:onboarding/quick-setup/create-resources' ); assert.ok(route); }); diff --git a/ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/create-resources-test.js b/ui/admin/tests/unit/routes/onboarding/quick-setup/create-resources/success-test.js similarity index 64% rename from ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/create-resources-test.js rename to ui/admin/tests/unit/routes/onboarding/quick-setup/create-resources/success-test.js index 5abe21e32..4994386a2 100644 --- a/ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/create-resources-test.js +++ b/ui/admin/tests/unit/routes/onboarding/quick-setup/create-resources/success-test.js @@ -2,13 +2,13 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; module( - 'Unit | Route | scopes/scope/onboarding/quick-setup/create-resources', + 'Unit | Route | onboarding/quick-setup/create-resources/success', function (hooks) { setupTest(hooks); test('it exists', function (assert) { let route = this.owner.lookup( - 'route:scopes/scope/onboarding/quick-setup/create-resources' + 'route:onboarding/quick-setup/create-resources/success' ); assert.ok(route); }); diff --git a/ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/create-resources/success-test.js b/ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/create-resources/success-test.js deleted file mode 100644 index eb7e3598a..000000000 --- a/ui/admin/tests/unit/routes/scopes/scope/onboarding/quick-setup/create-resources/success-test.js +++ /dev/null @@ -1,16 +0,0 @@ -import { module, test } from 'qunit'; -import { setupTest } from 'ember-qunit'; - -module( - 'Unit | Route | scopes/scope/onboarding/quick-setup/create-resources/success', - function (hooks) { - setupTest(hooks); - - test('it exists', function (assert) { - let route = this.owner.lookup( - 'route:scopes/scope/onboarding/quick-setup/create-resources/success' - ); - assert.ok(route); - }); - } -);