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.descriptions.create-resource'}}