2020-04-01 12:58:30 +02:00
|
|
|
import { observes, on, default as discourseComputed } from 'discourse-common/utils/decorators';
|
|
|
|
import { not } from "@ember/object/computed";
|
2017-10-19 04:17:36 +02:00
|
|
|
|
2017-09-23 04:34:07 +02:00
|
|
|
export default Ember.Component.extend({
|
|
|
|
classNames: 'wizard-custom-step',
|
2017-10-06 04:59:02 +02:00
|
|
|
currentField: null,
|
|
|
|
currentAction: null,
|
2020-04-01 12:58:30 +02:00
|
|
|
disableId: not('step.isNew'),
|
2020-03-22 07:47:56 +01:00
|
|
|
|
|
|
|
@on('didInsertElement')
|
2017-10-19 04:17:36 +02:00
|
|
|
@observes('step')
|
|
|
|
resetCurrentObjects() {
|
2020-04-01 12:58:30 +02:00
|
|
|
const fields = this.step.fields;
|
|
|
|
const actions = this.step.actions;
|
|
|
|
|
2017-10-19 04:17:36 +02:00
|
|
|
this.setProperties({
|
|
|
|
currentField: fields.length ? fields[0] : null,
|
|
|
|
currentAction: actions.length ? actions[0] : null
|
|
|
|
});
|
2019-07-02 06:49:14 +02:00
|
|
|
},
|
|
|
|
|
2020-04-01 12:58:30 +02:00
|
|
|
@discourseComputed('wizardFields', 'wizard.steps')
|
2020-03-21 18:30:11 +01:00
|
|
|
requiredContent(wizardFields, steps) {
|
|
|
|
let content = wizardFields;
|
2019-07-02 06:49:14 +02:00
|
|
|
let actions = [];
|
|
|
|
|
|
|
|
steps.forEach(s => {
|
|
|
|
actions.push(...s.actions);
|
|
|
|
});
|
|
|
|
|
|
|
|
actions.forEach(a => {
|
|
|
|
if (a.type === 'route_to' && a.code) {
|
2020-04-01 07:03:26 +02:00
|
|
|
content.push(
|
|
|
|
Ember.Object.create({
|
|
|
|
id: a.code,
|
|
|
|
label: "code (Route To)"
|
|
|
|
})
|
|
|
|
);
|
2019-07-02 06:49:14 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return content;
|
|
|
|
},
|
2020-03-30 01:53:28 +02:00
|
|
|
|
|
|
|
actions: {
|
|
|
|
bannerUploadDone(upload) {
|
|
|
|
this.set("step.banner", upload.url);
|
|
|
|
},
|
|
|
|
|
|
|
|
bannerUploadDeleted() {
|
|
|
|
this.set("step.banner", null);
|
|
|
|
}
|
|
|
|
}
|
2017-09-23 04:34:07 +02:00
|
|
|
});
|