@cap-js-community/sap-afc-sdk
Version:
SAP Advanced Financial Closing SDK for CDS
52 lines (48 loc) • 1.81 kB
JavaScript
;
sap.ui.define(
["sap/ui/core/mvc/ControllerExtension", "sap/m/MessageToast"],
function (ControllerExtension, MessageToast) {
return ControllerExtension.extend("sapafcsdk.scheduling.monitoring.job.ext.controller.ListReportController", {
override: {
onInit: function () {
this.base.onInit();
window.websockets?.main?.message((oMessage) => {
if (oMessage?.event === "jobStatusChanged") {
if (oMessage.data?.status === "requested") {
this.refreshForAll();
} else {
this.refreshForContext(oMessage);
}
}
});
},
},
refreshForContext(oMessage) {
const table = this.getView().byId(
"sapafcsdk.scheduling.monitoring.job::JobList--fe::table::Job::LineItem::Table",
);
const contexts = table.tableBindingInfo?.binding?.getAllCurrentContexts();
for (const context of contexts ?? []) {
if (oMessage.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);
},
});
},
);