admin-wizard.js.es6 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { default as computed } from 'ember-addons/ember-computed-decorators';
  2. export default Ember.Controller.extend({
  3. @computed('model.steps.[]', 'currentStep')
  4. stepLinks(steps, currentStep) {
  5. return steps.map((s) => {
  6. if (s) {
  7. let link = {
  8. id: s.get('id'),
  9. title: s.get('title')
  10. };
  11. let classes = 'btn';
  12. if (currentStep && s.get('id') === currentStep.get('id')) {
  13. classes += ' btn-primary';
  14. };
  15. link['classes'] = classes;
  16. return link;
  17. }
  18. });
  19. },
  20. @computed('model.id')
  21. wizardUrl(wizardId) {
  22. return window.location.origin + '/wizard/custom/' + wizardId;
  23. },
  24. actions: {
  25. save() {
  26. this.get('model').save().then(() => {
  27. this.send("refreshRoute");
  28. });
  29. },
  30. remove() {
  31. this.get('model').remove().then(() => {
  32. this.transitionToRoute('adminWizardsCustom');
  33. });
  34. },
  35. addStep() {
  36. const steps = this.get('model.steps');
  37. const newNum = steps.length + 1;
  38. const step = Ember.Object.create({
  39. fields: Ember.A(),
  40. actions: Ember.A(),
  41. title: `Step ${newNum}`,
  42. id: `step-${newNum}`
  43. });
  44. steps.pushObject(step);
  45. this.set('currentStep', step);
  46. },
  47. removeStep(stepId) {
  48. const steps = this.get('model.steps');
  49. steps.removeObject(steps.findBy('id', stepId));
  50. },
  51. changeStep(stepId) {
  52. const steps = this.get('model.steps');
  53. this.set('currentStep', steps.findBy('id', stepId));
  54. }
  55. }
  56. });