0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-22 09:20:29 +01:00
Dieser Commit ist enthalten in:
angusmcleod 2021-07-14 14:05:13 +08:00
Ursprung 34fee3729c
Commit 56a1463413
3 geänderte Dateien mit 52 neuen und 48 gelöschten Zeilen

Datei anzeigen

@ -1,34 +1,36 @@
import Controller from "@ember/controller"; import Controller from "@ember/controller";
import { fmt } from "discourse/lib/computed"; import { fmt } from "discourse/lib/computed";
import { empty } from '@ember/object/computed'; import { empty } from "@ember/object/computed";
import CustomWizard from "../models/custom-wizard"; import CustomWizard from "../models/custom-wizard";
export default Controller.extend({ export default Controller.extend({
downloadUrl: fmt("wizard.id", "/admin/wizards/submissions/%@/download"), downloadUrl: fmt("wizard.id", "/admin/wizards/submissions/%@/download"),
noResults: empty('submissions'), noResults: empty("submissions"),
page: 0, page: 0,
total: 0, total: 0,
loadMoreSubmissions() { loadMoreSubmissions() {
const page = this.get('page'); const page = this.get("page");
const wizardId = this.get('wizard.id'); const wizardId = this.get("wizard.id");
this.set('loadingMore', true); this.set("loadingMore", true);
CustomWizard.submissions(wizardId, page).then(result => { CustomWizard.submissions(wizardId, page)
if (result.submissions) { .then((result) => {
this.get('submissions').pushObjects(result.submissions); if (result.submissions) {
} this.get("submissions").pushObjects(result.submissions);
}).finally(() => { }
this.set('loadingMore', false); })
}); .finally(() => {
this.set("loadingMore", false);
});
}, },
actions: { actions: {
loadMore() { loadMore() {
if (!this.loadingMore && (this.submissions.length < this.total)) { if (!this.loadingMore && this.submissions.length < this.total) {
this.set('page', this.get('page') + 1); this.set("page", this.get("page") + 1);
this.loadMoreSubmissions(); this.loadMoreSubmissions();
} }
} },
} },
}); });

Datei anzeigen

@ -220,43 +220,45 @@ CustomWizard.reopenClass({
return ajax(`/admin/wizards/submissions/${wizardId}`, { return ajax(`/admin/wizards/submissions/${wizardId}`, {
type: "GET", type: "GET",
data data,
}).then(result => { })
if (result.wizard) { .then((result) => {
let fields = ["username"]; if (result.wizard) {
let submissions = []; let fields = ["username"];
let wizard = result.wizard; let submissions = [];
let total = result.total; let wizard = result.wizard;
let total = result.total;
result.submissions.forEach((s) => { result.submissions.forEach((s) => {
let submission = { let submission = {
username: s.username, username: s.username,
}; };
Object.keys(s.fields).forEach((f) => { Object.keys(s.fields).forEach((f) => {
if (fields.indexOf(f) < 0) { if (fields.indexOf(f) < 0) {
fields.push(f); fields.push(f);
} }
if (fields.includes(f)) { if (fields.includes(f)) {
submission[f] = s.fields[f]; submission[f] = s.fields[f];
} }
});
submission["submitted_at"] = s.submitted_at;
submissions.push(submission);
}); });
submission['submitted_at'] = s.submitted_at;
submissions.push(submission);
});
fields.push("submitted_at"); fields.push("submitted_at");
return { return {
wizard, wizard,
fields, fields,
submissions, submissions,
total total,
}; };
} }
}).catch(popupAjaxError); })
.catch(popupAjaxError);
}, },
create(wizardJson = {}) { create(wizardJson = {}) {

Datei anzeigen

@ -12,7 +12,7 @@ export default DiscourseRoute.extend({
wizard: model.wizard, wizard: model.wizard,
fields: model.fields, fields: model.fields,
submissions: A(model.submissions), submissions: A(model.submissions),
total: model.total total: model.total,
}); });
}, },
}); });