import discourseComputed from "discourse-common/utils/decorators"; import { notEmpty } from "@ember/object/computed"; import CustomWizardLogs from "../models/custom-wizard-logs"; import Controller from "@ember/controller"; export default Controller.extend({ refreshing: false, hasLogs: notEmpty("logs"), page: 0, canLoadMore: true, logs: [], messageKey: "viewing", loadLogs() { if (!this.canLoadMore) { return; } const page = this.get("page"); const wizardId = this.get("wizard.id"); this.set("refreshing", true); CustomWizardLogs.list(wizardId, page) .then((result) => { this.set("logs", this.logs.concat(result.logs)); }) .finally(() => this.set("refreshing", false)); }, @discourseComputed("hasLogs", "refreshing") noResults(hasLogs, refreshing) { return !hasLogs && !refreshing; }, actions: { loadMore() { if (!this.loadingMore && this.logs.length < this.total) { this.set("page", (this.page += 1)); this.loadLogs(); } }, refresh() { this.setProperties({ canLoadMore: true, page: 0, logs: [], }); this.loadLogs(); }, }, });