open-vault/ui/app/components/ui-wizard.js
claire bontempo f58990677f
UI: Implement new policy SS + modal designs (#17749)
* refactor ss+modal to accept multiple models

* create policy form

* cleanup and fix test

* add tabs to policy modal form

* add search select with modal to entity form

* update group form;

* allow modal to fit-content

* add changelog

* add check for policy create ability

* add id so tests pass

* filter out root option

* fix test

* add cleanup method

* add ACL policy link

* cleanup from comments

* refactor sending action to parent

* refactor, data down actions up!

* cleanup comments

* form field refactor

* add ternary to options

* update tests

* Remodel component structure for clearer logic

Includes fixing the wizard

* address comments

* cleanup args

* refactor inline oidc assignment form

* add line break

* cleanup comments

* fix tests

* add policy template to ss+modal test

* cleanup =true from test

* final cleanup!!!!!!

* actual final cleanup

* fix typo, please be done

Co-authored-by: Chelsea Shaw <82459713+hashishaw@users.noreply.github.com>
2022-11-18 17:29:04 -08:00

54 lines
1.7 KiB
JavaScript

import { inject as service } from '@ember/service';
import { alias, or } from '@ember/object/computed';
import Component from '@ember/component';
import { matchesState } from 'xstate';
export default Component.extend({
classNames: ['ui-wizard-container'],
wizard: service(),
auth: service(),
router: service(),
shouldRender: or('auth.currentToken', 'wizard.showWhenUnauthenticated'),
currentState: alias('wizard.currentState'),
featureState: alias('wizard.featureState'),
featureComponent: alias('wizard.featureComponent'),
tutorialComponent: alias('wizard.tutorialComponent'),
componentState: alias('wizard.componentState'),
nextFeature: alias('wizard.nextFeature'),
nextStep: alias('wizard.nextStep'),
currentRouteName: alias('router.currentRouteName'),
actions: {
dismissWizard() {
this.wizard.transitionTutorialMachine(this.currentState, 'DISMISS');
},
advanceWizard() {
const inInit = matchesState('init', this.wizard.currentState);
const event = inInit ? this.wizard.initEvent || 'CONTINUE' : 'CONTINUE';
this.wizard.transitionTutorialMachine(this.currentState, event);
},
advanceFeature() {
this.wizard.transitionFeatureMachine(this.featureState, 'CONTINUE');
},
finishFeature() {
this.wizard.transitionFeatureMachine(this.featureState, 'DONE');
},
repeatStep() {
this.wizard.transitionFeatureMachine(this.featureState, 'REPEAT', this.componentState);
},
resetFeature() {
this.wizard.transitionFeatureMachine(this.featureState, 'RESET', this.componentState);
},
pauseWizard() {
this.wizard.transitionTutorialMachine(this.currentState, 'PAUSE');
},
},
});