123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import { default as computed } from 'ember-addons/ember-computed-decorators';
- export default Ember.Controller.extend({
- @computed('model.steps.@each.id', 'currentStep')
- stepLinks(steps, currentStep) {
- return steps.map((s) => {
- if (s) {
- const id = s.get('id');
- const title = s.get('title');
- let link = { id, title: title || id || 'new' };
- let classes = 'btn';
- if (currentStep && id === currentStep.get('id')) {
- classes += ' btn-primary';
- };
- link['classes'] = classes;
- return link;
- }
- });
- },
- @computed('model.id', 'model.name')
- wizardUrl(wizardId) {
- return window.location.origin + '/w/' + Ember.String.dasherize(wizardId);
- },
- actions: {
- save() {
- this.setProperties({
- saving: true,
- error: null
- });
- const wizard = this.get('model');
- wizard.save().then(() => {
- this.set('saving', false);
- if (this.get('newWizard')) {
- this.send("refreshAllWizards");
- } else {
- this.send("refreshWizard");
- }
- }).catch((error) => {
- this.set('saving', false);
- this.set('error', I18n.t(`admin.wizard.error.${error}`));
- Ember.run.later(() => this.set('error', null), 10000);
- });
- },
- remove() {
- this.get('model').remove().then(() => {
- this.send("refreshAllWizards");
- });
- },
- addStep() {
- const steps = this.get('model.steps');
- const step = Ember.Object.create({
- fields: Ember.A(),
- actions: Ember.A()
- });
- steps.pushObject(step);
- this.set('currentStep', step);
- },
- removeStep(stepId) {
- const steps = this.get('model.steps');
- steps.removeObject(steps.findBy('id', stepId));
- this.set('currentStep', steps[steps.length - 1]);
- },
- changeStep(stepId) {
- const steps = this.get('model.steps');
- this.set('currentStep', steps.findBy('id', stepId));
- }
- }
- });
|