@cap-js-community/sap-afc-sdk
Version:
SAP Advanced Financial Closing SDK for CDS
51 lines (47 loc) • 1.84 kB
JavaScript
;
sap.ui.define(
["sap/ui/core/mvc/ControllerExtension", "sap/m/MessageToast"],
function (ControllerExtension, MessageToast) {
return ControllerExtension.extend("scheduling.monitoring.job.ext.controller.ListReportController", {
override: {
onInit: function () {
this.base.onInit();
window.socket.attachMessage("message", (event) => {
const message = JSON.parse(event.getParameter("data"));
if (message?.event === "jobStatusChanged") {
if (message.data?.status === "requested") {
this.refreshForAll();
} else {
this.refreshForContext(message);
}
}
});
},
},
refreshForContext(message) {
const table = this.getView().byId("scheduling.monitoring.job::JobList--fe::table::Job::LineItem::Table");
const contexts = table.tableBindingInfo?.binding?.getAllCurrentContexts();
for (const context of contexts ?? []) {
if (message.data?.IDs?.includes(context.getObject().ID)) {
this.base.getExtensionAPI().refresh();
const router = this.base.getAppComponent().getRouter();
if (router && !router.getHashChanger().getHash().startsWith("Job")) {
const toast = this.base
.getExtensionAPI()
.getModel("i18n")
.getResourceBundle()
.getText("listReportRefresh");
MessageToast.show(toast);
}
break;
}
}
},
refreshForAll() {
this.base.getExtensionAPI().refresh();
const toast = this.base.getExtensionAPI().getModel("i18n").getResourceBundle().getText("listReportRefresh");
MessageToast.show(toast);
},
});
},
);