parent
a5a80b895d
commit
698a652a92
|
@ -0,0 +1,3 @@
|
|||
```release-note:improvement
|
||||
ui: remove wizard
|
||||
```
|
|
@ -15,16 +15,7 @@ export default class App extends Application {
|
|||
},
|
||||
replication: {
|
||||
dependencies: {
|
||||
services: [
|
||||
'auth',
|
||||
'flash-messages',
|
||||
'namespace',
|
||||
'replication-mode',
|
||||
'router',
|
||||
'store',
|
||||
'version',
|
||||
'wizard',
|
||||
],
|
||||
services: ['auth', 'flash-messages', 'namespace', 'replication-mode', 'router', 'store', 'version'],
|
||||
externalRoutes: {
|
||||
replication: 'vault.cluster.replication.index',
|
||||
},
|
||||
|
@ -41,7 +32,6 @@ export default class App extends Application {
|
|||
'router',
|
||||
'store',
|
||||
'version',
|
||||
'wizard',
|
||||
'secret-mount-path',
|
||||
],
|
||||
externalRoutes: {
|
||||
|
@ -69,7 +59,6 @@ export default class App extends Application {
|
|||
'secret-mount-path',
|
||||
'store',
|
||||
'version',
|
||||
'wizard',
|
||||
],
|
||||
externalRoutes: {
|
||||
secrets: 'vault.cluster.secrets.backends',
|
||||
|
|
|
@ -23,7 +23,6 @@ const AuthConfigBase = Component.extend({
|
|||
|
||||
flashMessages: service(),
|
||||
router: service(),
|
||||
wizard: service(),
|
||||
saveModel: task(
|
||||
waitFor(function* () {
|
||||
try {
|
||||
|
@ -36,9 +35,6 @@ const AuthConfigBase = Component.extend({
|
|||
}
|
||||
return;
|
||||
}
|
||||
if (this.wizard.currentMachine === 'authentication' && this.wizard.featureState === 'config') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE');
|
||||
}
|
||||
this.router.transitionTo('vault.cluster.access.methods').followRedirects();
|
||||
this.flashMessages.success('The configuration was saved successfully.');
|
||||
})
|
||||
|
|
|
@ -20,7 +20,6 @@ import { waitFor } from '@ember/test-waiters';
|
|||
export default AuthConfigComponent.extend({
|
||||
flashMessages: service(),
|
||||
router: service(),
|
||||
wizard: service(),
|
||||
|
||||
saveModel: task(
|
||||
waitFor(function* () {
|
||||
|
@ -49,9 +48,6 @@ export default AuthConfigComponent.extend({
|
|||
}
|
||||
return;
|
||||
}
|
||||
if (this.wizard.currentMachine === 'authentication' && this.wizard.featureState === 'config') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE');
|
||||
}
|
||||
this.router.transitionTo('vault.cluster.access.methods').followRedirects();
|
||||
this.flashMessages.success('The configuration was saved successfully.');
|
||||
})
|
||||
|
|
|
@ -17,7 +17,6 @@ import { tracked } from '@glimmer/tracking';
|
|||
*/
|
||||
export default class AuthInfoComponent extends Component {
|
||||
@service auth;
|
||||
@service wizard;
|
||||
@service router;
|
||||
|
||||
@tracked fakeRenew = false;
|
||||
|
@ -36,11 +35,6 @@ export default class AuthInfoComponent extends Component {
|
|||
this.router.transitionTo(...arguments);
|
||||
}
|
||||
|
||||
@action
|
||||
restartGuide() {
|
||||
this.wizard.restartGuide();
|
||||
}
|
||||
|
||||
@action
|
||||
renewToken() {
|
||||
this.fakeRenew = true;
|
||||
|
|
|
@ -19,7 +19,6 @@ export default class DatabaseConnectionEdit extends Component {
|
|||
@service store;
|
||||
@service router;
|
||||
@service flashMessages;
|
||||
@service wizard;
|
||||
|
||||
@tracked
|
||||
showPasswordField = false; // used for edit mode
|
||||
|
@ -27,13 +26,6 @@ export default class DatabaseConnectionEdit extends Component {
|
|||
@tracked
|
||||
showSaveModal = false; // used for create mode
|
||||
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
if (this.wizard.featureState === 'details' || this.wizard.featureState === 'connection') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', 'database');
|
||||
}
|
||||
}
|
||||
|
||||
rotateCredentials(backend, name) {
|
||||
const adapter = this.store.adapterFor('database/connection');
|
||||
return adapter.rotateRootCredentials(backend, name);
|
||||
|
|
|
@ -9,17 +9,10 @@ const SHOW_ROUTE = 'vault.cluster.secrets.backend.show';
|
|||
export default class DatabaseRoleEdit extends Component {
|
||||
@service router;
|
||||
@service flashMessages;
|
||||
@service wizard;
|
||||
@service store;
|
||||
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
if (
|
||||
this.wizard.featureState === 'displayConnection' ||
|
||||
this.wizard.featureState === 'displayRoleDatabase'
|
||||
) {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', 'database');
|
||||
}
|
||||
if (this.args.initialKey) {
|
||||
this.args.model.database = [this.args.initialKey];
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@ const MODEL_TYPES = {
|
|||
};
|
||||
|
||||
export default Component.extend({
|
||||
wizard: service(),
|
||||
store: service(),
|
||||
router: service(),
|
||||
// set on the component
|
||||
|
@ -58,13 +57,6 @@ export default Component.extend({
|
|||
this.createOrReplaceModel();
|
||||
},
|
||||
|
||||
didReceiveAttrs() {
|
||||
this._super();
|
||||
if (this.wizard.featureState === 'displayRole') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', this.backendType);
|
||||
}
|
||||
},
|
||||
|
||||
willDestroy() {
|
||||
if (!this.model.isDestroyed && !this.model.isDestroying) {
|
||||
this.model.unloadRecord();
|
||||
|
@ -98,17 +90,10 @@ export default Component.extend({
|
|||
create() {
|
||||
const model = this.model;
|
||||
this.set('loading', true);
|
||||
this.model
|
||||
.save()
|
||||
.catch(() => {
|
||||
if (this.wizard.featureState === 'credentials') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'ERROR', this.backendType);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
model.set('hasGenerated', true);
|
||||
this.set('loading', false);
|
||||
});
|
||||
this.model.save().finally(() => {
|
||||
model.set('hasGenerated', true);
|
||||
this.set('loading', false);
|
||||
});
|
||||
},
|
||||
|
||||
codemirrorUpdated(attr, val, codemirror) {
|
||||
|
|
|
@ -35,7 +35,6 @@ export default class KeymgmtDistribute extends Component {
|
|||
@service store;
|
||||
@service flashMessages;
|
||||
@service router;
|
||||
@service wizard;
|
||||
|
||||
@tracked keyModel;
|
||||
@tracked isNewKey = false;
|
||||
|
@ -57,14 +56,6 @@ export default class KeymgmtDistribute extends Component {
|
|||
this.getKeyInfo(this.args.key);
|
||||
}
|
||||
this.formData.operations = [];
|
||||
this.updateWizard('nextStep');
|
||||
}
|
||||
|
||||
updateWizard(key) {
|
||||
// wizard will pause unless we manually continue it -- verify that keymgmt tutorial is in progress
|
||||
if (this.wizard[key] === 'distribute') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', 'keymgmt');
|
||||
}
|
||||
}
|
||||
|
||||
get keyTypes() {
|
||||
|
@ -198,8 +189,6 @@ export default class KeymgmtDistribute extends Component {
|
|||
this.store.clearDataset('keymgmt/key');
|
||||
const providerModel = this.store.peekRecord('keymgmt/provider', provider);
|
||||
providerModel.fetchKeys(providerModel.keys?.meta?.currentPage || 1);
|
||||
// move wizard forward if tutorial is in progress
|
||||
this.updateWizard('featureState');
|
||||
this.args.onClose();
|
||||
})
|
||||
.catch((e) => {
|
||||
|
|
|
@ -21,7 +21,6 @@ import { methods } from 'vault/helpers/mountable-auth-methods';
|
|||
|
||||
export default class MountBackendForm extends Component {
|
||||
@service store;
|
||||
@service wizard;
|
||||
@service flashMessages;
|
||||
|
||||
// validation related properties
|
||||
|
@ -139,22 +138,9 @@ export default class MountBackendForm extends Component {
|
|||
this.args.mountModel[name] = value;
|
||||
}
|
||||
|
||||
@action
|
||||
onTypeChange(path, value) {
|
||||
if (path === 'type') {
|
||||
this.wizard.set('componentState', value);
|
||||
}
|
||||
}
|
||||
|
||||
@action
|
||||
setMountType(value) {
|
||||
this.args.mountModel.type = value;
|
||||
this.checkPathChange(value);
|
||||
if (value) {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', this.args.mountModel.type);
|
||||
} else if (this.wizard.featureState === 'idle') {
|
||||
// resets wizard
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'RESET', this.args.mountModel.type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ const SHOW_ROUTE = 'vault.cluster.secrets.backend.show';
|
|||
|
||||
export default Component.extend(FocusOnInsertMixin, {
|
||||
router: service(),
|
||||
wizard: service(),
|
||||
|
||||
mode: null,
|
||||
emptyData: '{\n}',
|
||||
|
@ -21,19 +20,6 @@ export default Component.extend(FocusOnInsertMixin, {
|
|||
model: null,
|
||||
requestInFlight: or('model.isLoading', 'model.isReloading', 'model.isSaving'),
|
||||
|
||||
didReceiveAttrs() {
|
||||
this._super(...arguments);
|
||||
if (
|
||||
(this.wizard.featureState === 'details' && this.mode === 'create') ||
|
||||
(this.wizard.featureState === 'role' && this.mode === 'show')
|
||||
) {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', this.backendType);
|
||||
}
|
||||
if (this.wizard.featureState === 'displayRole') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'NOOP', this.backendType);
|
||||
}
|
||||
},
|
||||
|
||||
willDestroyElement() {
|
||||
this._super(...arguments);
|
||||
if (this.model && this.model.isError) {
|
||||
|
@ -69,9 +55,6 @@ export default Component.extend(FocusOnInsertMixin, {
|
|||
const model = this.model;
|
||||
return model[method]().then(() => {
|
||||
if (!model.isError) {
|
||||
if (this.wizard.featureState === 'role') {
|
||||
this.wizard.transitionFeatureMachine('role', 'CONTINUE', this.backendType);
|
||||
}
|
||||
successCallback(model);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -48,7 +48,6 @@ export default class SecretCreateOrUpdate extends Component {
|
|||
@service controlGroup;
|
||||
@service router;
|
||||
@service store;
|
||||
@service wizard;
|
||||
|
||||
@action
|
||||
setup(elem, [secretData, model, mode]) {
|
||||
|
@ -164,9 +163,6 @@ export default class SecretCreateOrUpdate extends Component {
|
|||
});
|
||||
}
|
||||
saveComplete(callback, key) {
|
||||
if (this.wizard.featureState === 'secret') {
|
||||
this.wizard.transitionFeatureMachine('secret', 'CONTINUE');
|
||||
}
|
||||
callback(key);
|
||||
}
|
||||
transitionToRoute() {
|
||||
|
|
|
@ -27,7 +27,6 @@ import { maybeQueryRecord } from 'vault/macros/maybe-query-record';
|
|||
import { alias, or } from '@ember/object/computed';
|
||||
|
||||
export default class SecretEdit extends Component {
|
||||
@service wizard;
|
||||
@service store;
|
||||
|
||||
@tracked secretData = null;
|
||||
|
@ -43,10 +42,6 @@ export default class SecretEdit extends Component {
|
|||
}
|
||||
this.secretData = KVObject.create({ content: [] }).fromJSON(model.secretData);
|
||||
this.codemirrorString = this.secretData.toJSONString();
|
||||
if (this.wizard.featureState === 'details' && this.args.mode === 'create') {
|
||||
const engine = model.backend.includes('kv') ? 'kv' : model.backend;
|
||||
this.wizard.transitionFeatureMachine('details', 'CONTINUE', engine);
|
||||
}
|
||||
}
|
||||
|
||||
@maybeQueryRecord(
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
* content here
|
||||
* </SplashPage
|
||||
* ```
|
||||
* @param {boolean} [hasAltContent] - boolean to bypass the UiWizard.
|
||||
* @param {boolean} [hasAltContent] - boolean to bypass container styling
|
||||
* @param {boolean} [showTruncatedNavBar = true] - boolean to hide or show the navBar. By default this is true.
|
||||
*
|
||||
*/
|
||||
|
|
|
@ -26,7 +26,6 @@ const WRAPPING_ENDPOINTS = ['lookup', 'wrap', 'unwrap', 'rewrap'];
|
|||
|
||||
export default Component.extend(DEFAULTS, {
|
||||
store: service(),
|
||||
wizard: service(),
|
||||
// putting these attrs here so they don't get reset when you click back
|
||||
//random
|
||||
bytes: 32,
|
||||
|
@ -93,9 +92,6 @@ export default Component.extend(DEFAULTS, {
|
|||
const keyName = action === 'rewrap' ? 'rewrap_token' : 'token';
|
||||
props = assign({}, props, { [keyName]: resp.wrap_info.token });
|
||||
}
|
||||
if (props.token || props.rewrap_token || props.unwrap_data || action === 'lookup') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE');
|
||||
}
|
||||
setProperties(this, props);
|
||||
},
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@ const SHOW_ROUTE = 'vault.cluster.secrets.backend.show';
|
|||
|
||||
export default Component.extend(FocusOnInsertMixin, {
|
||||
router: service(),
|
||||
wizard: service(),
|
||||
mode: null,
|
||||
onDataChange() {},
|
||||
onRefresh() {},
|
||||
|
@ -56,13 +55,6 @@ export default Component.extend(FocusOnInsertMixin, {
|
|||
const key = this.key;
|
||||
return key[method]().then(() => {
|
||||
if (!key.isError) {
|
||||
if (this.wizard.featureState === 'secret') {
|
||||
this.wizard.transitionFeatureMachine('secret', 'CONTINUE');
|
||||
} else {
|
||||
if (this.wizard.featureState === 'encryption') {
|
||||
this.wizard.transitionFeatureMachine('encryption', 'CONTINUE', 'transit');
|
||||
}
|
||||
}
|
||||
successCallback(key);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import { computed } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
const DEFAULTS = {
|
||||
|
@ -12,8 +11,6 @@ const DEFAULTS = {
|
|||
};
|
||||
|
||||
export default Controller.extend(DEFAULTS, {
|
||||
wizard: service(),
|
||||
|
||||
reset() {
|
||||
this.setProperties(DEFAULTS);
|
||||
},
|
||||
|
@ -22,8 +19,6 @@ export default Controller.extend(DEFAULTS, {
|
|||
this.set('loading', false);
|
||||
this.set('keyData', resp);
|
||||
this.model.reload();
|
||||
this.wizard.set('initEvent', 'SAVE');
|
||||
this.wizard.transitionTutorialMachine(this.wizard.currentState, 'TOSAVE');
|
||||
},
|
||||
|
||||
initError(e) {
|
||||
|
|
|
@ -4,7 +4,6 @@ import Controller from '@ember/controller';
|
|||
|
||||
export default Controller.extend({
|
||||
flashMessages: service(),
|
||||
wizard: service(),
|
||||
|
||||
queryParams: {
|
||||
page: 'page',
|
||||
|
@ -58,9 +57,6 @@ export default Controller.extend({
|
|||
// this will clear the dataset cache on the store
|
||||
this.send('reload');
|
||||
flash.success(`${policyType.toUpperCase()} policy "${name}" was successfully deleted.`);
|
||||
if (this.wizard.featureState === 'delete') {
|
||||
this.wizard.transitionFeatureMachine('delete', 'CONTINUE', policyType);
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
const errors = e.errors ? e.errors.join('') : e.message;
|
||||
|
|
|
@ -5,7 +5,6 @@ import { inject as service } from '@ember/service';
|
|||
export default class PolicyEditController extends Controller {
|
||||
@service router;
|
||||
@service flashMessages;
|
||||
@service wizard;
|
||||
|
||||
@action
|
||||
async deletePolicy() {
|
||||
|
@ -14,9 +13,6 @@ export default class PolicyEditController extends Controller {
|
|||
await this.model.destroyRecord();
|
||||
this.flashMessages.success(`${policyType.toUpperCase()} policy "${name}" was successfully deleted.`);
|
||||
this.router.transitionTo('vault.cluster.policies', policyType);
|
||||
if (this.wizard.featureState === 'delete') {
|
||||
this.wizard.transitionFeatureMachine('delete', 'CONTINUE', policyType);
|
||||
}
|
||||
} catch (error) {
|
||||
this.model.rollbackAttributes();
|
||||
const errors = error.errors ? error.errors.join('. ') : error.message;
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
import { inject as service } from '@ember/service';
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default Controller.extend({
|
||||
wizard: service(),
|
||||
actions: {
|
||||
onMountSuccess: function (type, path) {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', type);
|
||||
const transition = this.transitionToRoute('vault.cluster.settings.auth.configure', path);
|
||||
return transition.followRedirects();
|
||||
},
|
||||
|
|
|
@ -7,7 +7,6 @@ import { action } from '@ember/object';
|
|||
const SUPPORTED_BACKENDS = supportedSecretBackends();
|
||||
|
||||
export default class MountSecretBackendController extends Controller {
|
||||
@service wizard;
|
||||
@service router;
|
||||
|
||||
@action
|
||||
|
@ -27,8 +26,6 @@ export default class MountSecretBackendController extends Controller {
|
|||
} else {
|
||||
transition = this.router.transitionTo('vault.cluster.secrets.backends');
|
||||
}
|
||||
return transition.followRedirects().then(() => {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', type);
|
||||
});
|
||||
return transition.followRedirects();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,15 @@
|
|||
import { inject as service } from '@ember/service';
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default Controller.extend({
|
||||
wizard: service(),
|
||||
showLicenseError: false,
|
||||
|
||||
actions: {
|
||||
transitionToCluster(resp) {
|
||||
transitionToCluster() {
|
||||
return this.model.reload().then(() => {
|
||||
this.wizard.transitionTutorialMachine(this.wizard.currentState, 'CONTINUE', resp);
|
||||
return this.transitionToRoute('vault.cluster', this.model.name);
|
||||
});
|
||||
},
|
||||
|
||||
setUnsealState(resp) {
|
||||
this.wizard.set('componentState', resp);
|
||||
},
|
||||
|
||||
isUnsealed(data) {
|
||||
return data.sealed === false;
|
||||
},
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
import { inject as service } from '@ember/service';
|
||||
import { next } from '@ember/runloop';
|
||||
import Route from '@ember/routing/route';
|
||||
import ControlGroupError from 'vault/lib/control-group-error';
|
||||
|
||||
export default Route.extend({
|
||||
controlGroup: service(),
|
||||
routing: service('router'),
|
||||
wizard: service(),
|
||||
namespaceService: service('namespace'),
|
||||
featureFlagService: service('featureFlag'),
|
||||
|
||||
|
@ -60,28 +58,6 @@ export default Route.extend({
|
|||
|
||||
return true;
|
||||
},
|
||||
didTransition() {
|
||||
const wizard = this.wizard;
|
||||
|
||||
if (wizard.get('currentState') !== 'active.feature') {
|
||||
return true;
|
||||
}
|
||||
next(() => {
|
||||
const applicationURL = this.routing.currentURL;
|
||||
const activeRoute = this.routing.currentRouteName;
|
||||
|
||||
if (this.wizard.setURLAfterTransition) {
|
||||
this.set('wizard.setURLAfterTransition', false);
|
||||
this.set('wizard.expectedURL', applicationURL);
|
||||
this.set('wizard.expectedRouteName', activeRoute);
|
||||
}
|
||||
const expectedRouteName = this.wizard.expectedRouteName;
|
||||
if (this.routing.isActive(expectedRouteName) === false) {
|
||||
wizard.transitionTutorialMachine(wizard.get('currentState'), 'PAUSE');
|
||||
}
|
||||
});
|
||||
return true;
|
||||
},
|
||||
},
|
||||
|
||||
async beforeModel() {
|
||||
|
|
|
@ -3,7 +3,6 @@ import Route from '@ember/routing/route';
|
|||
import { singularize } from 'ember-inflector';
|
||||
|
||||
export default Route.extend({
|
||||
wizard: service(),
|
||||
pathHelp: service('path-help'),
|
||||
|
||||
beforeModel() {
|
||||
|
|
|
@ -5,7 +5,6 @@ import ListRoute from 'vault/mixins/list-route';
|
|||
|
||||
export default Route.extend(ListRoute, {
|
||||
store: service(),
|
||||
wizard: service(),
|
||||
pathHelp: service('path-help'),
|
||||
|
||||
getMethodAndModelInfo() {
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
import AdapterError from '@ember-data/adapter/error';
|
||||
import { set } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
|
||||
export default Route.extend({
|
||||
wizard: service(),
|
||||
|
||||
model(params) {
|
||||
const { section_name: section } = params;
|
||||
if (section !== 'configuration') {
|
||||
|
@ -13,9 +10,7 @@ export default Route.extend({
|
|||
set(error, 'httpStatus', 404);
|
||||
throw error;
|
||||
}
|
||||
const backend = this.modelFor('vault.cluster.access.method');
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'DETAILS', backend.type);
|
||||
return backend;
|
||||
return this.modelFor('vault.cluster.access.method');
|
||||
},
|
||||
|
||||
setupController(controller) {
|
||||
|
|
|
@ -10,7 +10,6 @@ export default ClusterRouteBase.extend({
|
|||
},
|
||||
flashMessages: service(),
|
||||
version: service(),
|
||||
wizard: service(),
|
||||
beforeModel() {
|
||||
return this._super().then(() => {
|
||||
return this.version.fetchFeatures();
|
||||
|
@ -30,15 +29,4 @@ export default ClusterRouteBase.extend({
|
|||
this.flashMessages.stickyInfo(config.welcomeMessage);
|
||||
}
|
||||
},
|
||||
activate() {
|
||||
this.wizard.set('initEvent', 'LOGIN');
|
||||
this.wizard.transitionTutorialMachine(this.wizard.currentState, 'TOLOGIN');
|
||||
},
|
||||
actions: {
|
||||
willTransition(transition) {
|
||||
if (transition.targetName !== this.routeName) {
|
||||
this.wizard.transitionTutorialMachine(this.wizard.currentState, 'INITDONE');
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
|
@ -1,12 +1,3 @@
|
|||
import { inject as service } from '@ember/service';
|
||||
import ClusterRoute from './cluster-route-base';
|
||||
|
||||
export default ClusterRoute.extend({
|
||||
wizard: service(),
|
||||
|
||||
activate() {
|
||||
// always start from idle instead of using the current state
|
||||
this.wizard.transitionTutorialMachine('idle', 'INIT');
|
||||
this.wizard.set('initEvent', 'START');
|
||||
},
|
||||
});
|
||||
export default ClusterRoute.extend({});
|
||||
|
|
|
@ -6,17 +6,9 @@ import UnsavedModelRoute from 'vault/mixins/unsaved-model-route';
|
|||
export default Route.extend(UnloadModelRoute, UnsavedModelRoute, {
|
||||
store: service(),
|
||||
version: service(),
|
||||
wizard: service(),
|
||||
|
||||
model() {
|
||||
const policyType = this.policyType();
|
||||
if (
|
||||
policyType === 'acl' &&
|
||||
this.wizard.currentMachine === 'policies' &&
|
||||
this.wizard.featureState === 'idle'
|
||||
) {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE');
|
||||
}
|
||||
if (!this.version.hasSentinel && policyType !== 'acl') {
|
||||
return this.transitionTo('vault.cluster.policies', policyType);
|
||||
}
|
||||
|
|
|
@ -6,13 +6,6 @@ import ListRoute from 'core/mixins/list-route';
|
|||
export default Route.extend(ClusterRoute, ListRoute, {
|
||||
store: service(),
|
||||
version: service(),
|
||||
wizard: service(),
|
||||
|
||||
activate() {
|
||||
if (this.wizard.featureState === 'details') {
|
||||
this.wizard.transitionFeatureMachine('details', 'CONTINUE', this.policyType());
|
||||
}
|
||||
},
|
||||
|
||||
shouldReturnEmptyModel(policyType, version) {
|
||||
return policyType !== 'acl' && (version.get('isOSS') || !version.get('hasSentinel'));
|
||||
|
|
|
@ -1,13 +1,4 @@
|
|||
import UnsavedModelRoute from 'vault/mixins/unsaved-model-route';
|
||||
import ShowRoute from './show';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
export default ShowRoute.extend(UnsavedModelRoute, {
|
||||
wizard: service(),
|
||||
|
||||
activate() {
|
||||
if (this.wizard.featureState === 'details') {
|
||||
this.wizard.transitionFeatureMachine('details', 'CONTINUE', this.policyType());
|
||||
}
|
||||
},
|
||||
});
|
||||
export default ShowRoute.extend(UnsavedModelRoute, {});
|
||||
|
|
|
@ -5,13 +5,6 @@ import { inject as service } from '@ember/service';
|
|||
|
||||
export default Route.extend(UnloadModelRoute, {
|
||||
store: service(),
|
||||
wizard: service(),
|
||||
|
||||
activate() {
|
||||
if (this.wizard.featureState === 'create') {
|
||||
this.wizard.transitionFeatureMachine('create', 'CONTINUE', this.policyType());
|
||||
}
|
||||
},
|
||||
|
||||
beforeModel() {
|
||||
const params = this.paramsFor(this.routeName);
|
||||
|
|
|
@ -2,13 +2,9 @@ import { inject as service } from '@ember/service';
|
|||
import Route from '@ember/routing/route';
|
||||
|
||||
export default Route.extend({
|
||||
wizard: service(),
|
||||
store: service(),
|
||||
async model() {
|
||||
const backend = this.modelFor('vault.cluster.secrets.backend');
|
||||
if (this.wizard.featureState === 'list') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', backend.get('type'));
|
||||
}
|
||||
if (backend.isV2KV) {
|
||||
const canRead = await this.store
|
||||
.findRecord('capabilities', `${backend.id}/config`)
|
||||
|
|
|
@ -29,7 +29,6 @@ const transformModel = (queryParams) => {
|
|||
|
||||
export default EditBase.extend({
|
||||
store: service(),
|
||||
wizard: service(),
|
||||
|
||||
createModel(transition) {
|
||||
const { backend } = this.paramsFor('vault.cluster.secrets.backend');
|
||||
|
@ -44,9 +43,6 @@ export default EditBase.extend({
|
|||
modelType = 'database/role';
|
||||
}
|
||||
if (modelType !== 'secret' && modelType !== 'secret-v2') {
|
||||
if (this.wizard.featureState === 'details' && this.wizard.componentState === 'transit') {
|
||||
this.wizard.transitionFeatureMachine('details', 'CONTINUE', 'transit');
|
||||
}
|
||||
return this.store.createRecord(modelType);
|
||||
}
|
||||
// create record in capabilities that checks for access to create metadata
|
||||
|
@ -59,10 +55,6 @@ export default EditBase.extend({
|
|||
},
|
||||
|
||||
model(params, transition) {
|
||||
// wizard will pause unless we manually continue it -- verify that keymgmt tutorial is in progress
|
||||
if (params.itemType === 'provider' && this.wizard.nextStep === 'provider') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, 'CONTINUE', 'keymgmt');
|
||||
}
|
||||
return hash({
|
||||
secret: this.createModel(transition),
|
||||
capabilities: {},
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import { toolsActions } from 'vault/helpers/tools-actions';
|
||||
|
||||
export default Route.extend({
|
||||
wizard: service(),
|
||||
|
||||
beforeModel(transition) {
|
||||
const supportedActions = toolsActions();
|
||||
const { selected_action: selectedAction } = this.paramsFor(this.routeName);
|
||||
|
@ -26,9 +23,6 @@ export default Route.extend({
|
|||
actions: {
|
||||
didTransition() {
|
||||
const params = this.paramsFor(this.routeName);
|
||||
if (this.wizard.currentMachine === 'tools') {
|
||||
this.wizard.transitionFeatureMachine(this.wizard.featureState, params.selected_action.toUpperCase());
|
||||
}
|
||||
/* eslint-disable-next-line ember/no-controller-access-in-routes */
|
||||
this.controller.setProperties(params);
|
||||
return true;
|
||||
|
|
|
@ -1,11 +1,3 @@
|
|||
import { inject as service } from '@ember/service';
|
||||
import ClusterRoute from './cluster-route-base';
|
||||
|
||||
export default ClusterRoute.extend({
|
||||
wizard: service(),
|
||||
|
||||
activate() {
|
||||
this.wizard.set('initEvent', 'UNSEAL');
|
||||
this.wizard.transitionTutorialMachine(this.wizard.currentState, 'TOUNSEAL');
|
||||
},
|
||||
});
|
||||
export default ClusterRoute.extend({});
|
||||
|
|
|
@ -23,11 +23,6 @@
|
|||
</LinkTo>
|
||||
</li>
|
||||
{{/if}}
|
||||
<li class="action">
|
||||
<button type="button" class="link" onclick={{action "restartGuide"}}>
|
||||
Restart guide
|
||||
</button>
|
||||
</li>
|
||||
<li class="action">
|
||||
<CopyButton
|
||||
@clipboardText={{this.auth.currentToken}}
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
<FormFieldGroups
|
||||
@model={{@mountModel}}
|
||||
@renderGroup="default"
|
||||
@onChange={{this.onTypeChange}}
|
||||
@modelValidations={{this.modelValidations}}
|
||||
@onKeyUp={{this.onKeyUp}}
|
||||
/>
|
||||
|
|
|
@ -12,26 +12,24 @@
|
|||
</Nav.items>
|
||||
</NavHeader>
|
||||
{{/if}}
|
||||
{{! bypass UiWizard and container styling }}
|
||||
{{! bypass container styling }}
|
||||
{{#if @hasAltContent}}
|
||||
{{yield (hash altContent=(component "splash-page/splash-content"))}}
|
||||
{{else}}
|
||||
<UiWizard>
|
||||
<div class="splash-page-container section is-flex-v-centered-tablet is-flex-1 is-fullwidth">
|
||||
<div class="columns is-centered is-gapless is-fullwidth">
|
||||
<div class="column is-4-desktop is-6-tablet">
|
||||
<div class="splash-page-header">
|
||||
{{yield (hash header=(component "splash-page/splash-header"))}}
|
||||
</div>
|
||||
<div class="splash-page-sub-header">
|
||||
{{yield (hash sub-header=(component "splash-page/splash-header"))}}
|
||||
</div>
|
||||
<div class="login-form box is-paddingless is-relative">
|
||||
{{yield (hash content=(component "splash-page/splash-content"))}}
|
||||
</div>
|
||||
{{yield (hash footer=(component "splash-page/splash-content"))}}
|
||||
<div class="splash-page-container section is-flex-v-centered-tablet is-flex-1 is-fullwidth">
|
||||
<div class="columns is-centered is-gapless is-fullwidth">
|
||||
<div class="column is-4-desktop is-6-tablet">
|
||||
<div class="splash-page-header">
|
||||
{{yield (hash header=(component "splash-page/splash-header"))}}
|
||||
</div>
|
||||
<div class="splash-page-sub-header">
|
||||
{{yield (hash sub-header=(component "splash-page/splash-header"))}}
|
||||
</div>
|
||||
<div class="login-form box is-paddingless is-relative">
|
||||
{{yield (hash content=(component "splash-page/splash-content"))}}
|
||||
</div>
|
||||
{{yield (hash footer=(component "splash-page/splash-content"))}}
|
||||
</div>
|
||||
</div>
|
||||
</UiWizard>
|
||||
</div>
|
||||
{{/if}}
|
|
@ -132,15 +132,13 @@
|
|||
<LogoSplash />
|
||||
{{else}}
|
||||
{{#if this.showNav}}
|
||||
<UiWizard>
|
||||
<section class="section">
|
||||
<div class="container is-widescreen">
|
||||
<TokenExpireWarning @expirationDate={{this.auth.tokenExpirationDate}}>
|
||||
{{outlet}}
|
||||
</TokenExpireWarning>
|
||||
</div>
|
||||
</section>
|
||||
</UiWizard>
|
||||
<section class="section">
|
||||
<div class="container is-widescreen">
|
||||
<TokenExpireWarning @expirationDate={{this.auth.tokenExpirationDate}}>
|
||||
{{outlet}}
|
||||
</TokenExpireWarning>
|
||||
</div>
|
||||
</section>
|
||||
{{else}}
|
||||
{{outlet}}
|
||||
{{/if}}
|
||||
|
|
|
@ -50,7 +50,6 @@
|
|||
</div>
|
||||
<ShamirFlow
|
||||
@action="unseal"
|
||||
@onUpdate={{action "setUnsealState"}}
|
||||
@onLicenseError={{action "handleLicenseError"}}
|
||||
@onShamirSuccess={{action "transitionToCluster"}}
|
||||
@buttonText="Unseal"
|
||||
|
|
|
@ -18,7 +18,6 @@ const Eng = Engine.extend({
|
|||
'router',
|
||||
'store',
|
||||
'version',
|
||||
'wizard',
|
||||
'secret-mount-path',
|
||||
],
|
||||
externalRoutes: ['secrets'],
|
||||
|
|
|
@ -21,7 +21,6 @@ export default class PkiEngine extends Engine {
|
|||
'secret-mount-path',
|
||||
'store',
|
||||
'version',
|
||||
'wizard',
|
||||
],
|
||||
externalRoutes: ['secrets', 'secretsListRoot', 'secretsListRootConfiguration', 'externalMountIssuer'],
|
||||
};
|
||||
|
|
|
@ -21,7 +21,6 @@ const DEFAULTS = {
|
|||
export default Component.extend(ReplicationActions, DEFAULTS, {
|
||||
replicationMode: 'dr',
|
||||
mode: 'primary',
|
||||
wizard: service(),
|
||||
version: service(),
|
||||
didReceiveAttrs() {
|
||||
this._super(...arguments);
|
||||
|
|
|
@ -9,16 +9,7 @@ const Eng = Engine.extend({
|
|||
modulePrefix,
|
||||
Resolver,
|
||||
dependencies: {
|
||||
services: [
|
||||
'auth',
|
||||
'flash-messages',
|
||||
'namespace',
|
||||
'replication-mode',
|
||||
'router',
|
||||
'store',
|
||||
'version',
|
||||
'wizard',
|
||||
],
|
||||
services: ['auth', 'flash-messages', 'namespace', 'replication-mode', 'router', 'store', 'version'],
|
||||
externalRoutes: ['replication'],
|
||||
},
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue