0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-26 19:10:29 +01:00
discourse-custom-wizard/assets/javascripts/wizard/routes/wizard.js.es6

81 Zeilen
1,9 KiB
Text

2022-03-16 12:33:34 +01:00
import { findCustomWizard, updateCachedWizard } from "../models/wizard";
import WizardI18n from "../lib/wizard-i18n";
2022-03-16 12:33:34 +01:00
import Route from "@ember/routing/route";
import { scheduleOnce } from "@ember/runloop";
import { getOwner } from "discourse-common/lib/get-owner";
2017-10-13 15:02:34 +02:00
2022-03-16 12:33:34 +01:00
export default Route.extend({
beforeModel(transition) {
2022-03-16 12:33:34 +01:00
if (transition.intent.queryParams) {
this.set("queryParams", transition.intent.queryParams);
}
},
2017-10-13 15:02:34 +02:00
model(params) {
return findCustomWizard(params.wizard_id, this.get("queryParams"));
2017-10-13 15:02:34 +02:00
},
showDialog(wizardModel) {
const title = WizardI18n("wizard.incomplete_submission.title", {
date: moment(wizardModel.submission_last_updated_at).format(
"MMMM Do YYYY"
2022-03-16 12:46:16 +01:00
),
});
const buttons = [
{
label: WizardI18n("wizard.incomplete_submission.restart"),
class: "btn btn-default",
callback: () => {
wizardModel.restart();
},
},
{
label: WizardI18n("wizard.incomplete_submission.resume"),
class: "btn btn-primary",
},
];
const options = {
onEscape: false,
};
bootbox.dialog(title, buttons, options);
},
afterModel(model) {
updateCachedWizard(model);
2022-03-16 12:33:34 +01:00
},
2022-03-16 12:33:34 +01:00
renderTemplate() {
2022-03-16 12:46:16 +01:00
this.render("wizard/templates/wizard");
2017-10-13 15:02:34 +02:00
},
setupController(controller, model) {
2022-03-16 12:33:34 +01:00
const background = model ? model.get("background") : "";
scheduleOnce("afterRender", this, function () {
$("body").css("background", background);
if (model && model.id) {
2022-03-16 12:33:34 +01:00
$(getOwner(this).rootElement).addClass(model.id.dasherize());
2017-12-03 08:57:40 +01:00
}
2017-10-13 15:02:34 +02:00
});
2022-03-16 12:33:34 +01:00
2017-10-13 15:02:34 +02:00
controller.setProperties({
customWizard: true,
2022-03-16 12:33:34 +01:00
logoUrl: this.siteSettings.logo_small,
reset: null,
2017-10-13 15:02:34 +02:00
});
2022-03-16 12:33:34 +01:00
const stepModel = this.modelFor("step");
if (
model.resume_on_revisit &&
model.submission_last_updated_at &&
stepModel.index > 0
) {
this.showDialog(model);
}
},
2017-10-13 15:02:34 +02:00
});