{"version":3,"file":"ReportView.min.js","sources":["EncompassWebServices/Reporting_ECP/ReportView.js"],"sourcesContent":["\"use strict\";\r\n\r\nEWS.Ready((EWS) => {\r\n if (!IsImpersonateUser) {\r\n EWS.Command.AddMenu(\"ReportEditMenu\", (control, name, menu, callback) => {\r\n menu.innerHTML = \"\";\r\n callback(control, menu);\r\n }, (control, name, menu, menuArgs) => {\r\n menu.style.display = \"none\";\r\n menu.innerHTML = \"\";\r\n\r\n const ReportEditMenu = new ECP.EC_Request(\"SavedReport_ReportEditMenu\");\r\n ReportEditMenu.AddRequestVariable(\"ReportID\", menuArgs.report);\r\n ReportEditMenu.Submit().then((result) => {\r\n if (result.report.length > 1) {\r\n let html = \"\";\r\n\r\n for (let i = 0; i < result.report.length; i++) {\r\n html += `
`\r\n + `
`\r\n + `
${result.report[i].name}
`\r\n + \"
\";\r\n }\r\n menu.innerHTML = html;\r\n menu.style.display = \"block\";\r\n menu = EC_Fmt.RemoveAllEventListeners(menu);\r\n menu.addEventListener(\"click\", () => {\r\n const item = event.target.closest(\".ews-menu-item\");\r\n\r\n if (item && menu.contains(item)) {\r\n window.location.href = item.getAttribute(\"url\");\r\n }\r\n });\r\n } else if (result.report.length === 1) {\r\n EWS.ShowLoading();\r\n window.location.href = result.report[0].url;\r\n } else if (result.type === \"Spreadsheet\") {\r\n ECP.Dialog.Alert(\"This Spreadsheet contains no linked reports.\");\r\n } else {\r\n EWS.ShowLoading();\r\n window.location.href = `Home?DashboardID=${ECP.CommonDashboards.ReportEdit}&ParseFromReportURL=True&ReportID=${menuArgs.report}`;\r\n }\r\n });\r\n });\r\n }\r\n\r\n EWS.Command.AddMenu(\"SwitchGraphMenu\", (control, name, menu, callback) => {\r\n menu.innerHTML = `
`\r\n + `
`\r\n + `
`\r\n + `Area Graph`\r\n + `
`\r\n + `
`\r\n\r\n + `
`\r\n + `
`\r\n + `
`\r\n + `Bar Graph`\r\n + `
`\r\n + `
`\r\n\r\n + `
`\r\n + `
`\r\n + `
`\r\n + `Column Graph`\r\n + `
`\r\n + `
`\r\n\r\n + `
`\r\n + `
`\r\n + `
`\r\n + `Line Graph`\r\n + `
`\r\n + `
`\r\n\r\n + `
`\r\n + `
`\r\n + `
`\r\n + `Pie Chart`\r\n + `
`\r\n + `
`\r\n\r\n + `
`\r\n + `
`\r\n + `
`\r\n + `Doughnut Chart`\r\n + `
`\r\n + `
`;\r\n\r\n callback(control, menu);\r\n }, (control, name, menu, arg) => {\r\n menu = EC_Fmt.RemoveAllEventListeners(menu);\r\n\r\n menu.addEventListener(\"click\", (event) => {\r\n const item = event.target.closest(\".ews-menu-item\");\r\n\r\n if (item && menu.contains(item)) {\r\n EWS.Command.HideAllMenus();\r\n\r\n arg.switchGraph(item.getAttribute(\"command\"));\r\n }\r\n });\r\n });\r\n\r\n const ChartDataIcon = document.querySelector(\".ChartData .ews-icon-graph\");\r\n if (ChartDataIcon) {\r\n ChartDataIcon.addEventListener(\"click\", (event) => {\r\n const target = event.target;\r\n\r\n EWS.Command.ShowMenu(\"SwitchGraphMenu\", target, {\r\n switchGraph(graph) {\r\n const reportUrl = document.getElementById(\"ReportUrl\").value;\r\n const queries = reportUrl.split(\"&\").map((query) => {\r\n if (query.split(\"=\")[0] === \"Parameters\") {\r\n const parameters = query;\r\n const parametersValue = parameters.split(\"=\")[1];\r\n let parameterArray = parametersValue.split(\"%7c\");\r\n // Task 760106: Comparison Sales Report: Change the Report type with report icon in upper right cornerdoes not change Report Type\r\n if (parameterArray.indexOf(\"E|F\")) {\r\n parameterArray = parametersValue.split(\"|\");\r\n }\r\n parameterArray = parameterArray.map((parameter) => {\r\n if (parameter.split(\"%7e\")[0] === \"F%3aDisplay\") {\r\n return `F%3aDisplay%7eV%3a${encodeURIComponent(graph)}`;\r\n } if (parameter.split(\"~\")[0] === \"F:Display\") {\r\n return `F:Display~V:${encodeURIComponent(graph)}`;\r\n }\r\n return parameter;\r\n });\r\n\r\n return `Parameters=${parameterArray.join(\"%7c\")}`;\r\n }\r\n return query;\r\n });\r\n\r\n ECP.Dialog.ShowLoading();\r\n\r\n window.location.href = `Home?DashboardID=${ECP.CommonDashboards.ReportView}&${queries.join(\"&\")}`;\r\n }\r\n });\r\n });\r\n }\r\n\r\n const updateTime = document.getElementById(\"NextUpdateTime\");\r\n if (updateTime) {\r\n DataConnection(updateTime.getAttribute(\"enddatetime\"), updateTime.getAttribute(\"startdatetime\"));\r\n }\r\n\r\n const reportURL = document.getElementById(\"ReportUrl\");\r\n if (reportURL?.value && window.location.search.includes(`DashboardID=${ECP.CommonDashboards.ReportView}`) && (`${window.location.pathname}?${reportURL.value}`).length < 2000) {\r\n EC_Fmt.ReplaceState(window.history.state, \"\", `Home?DashboardID=${ECP.CommonDashboards.ReportView}&${reportURL.value}`);\r\n }\r\n});\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction convertToFusion() {\r\n ECP.Dialog.ShowLoading();\r\n\r\n const myRequest = new ECP.EC_Request(\"Convert_Sales_To_Fusion\");\r\n const ParseFromReportURL = EC_Fmt.GetPageParameter(\"ParseFromReportURL\");\r\n const ReportID = EC_Fmt.GetPageParameter(\"ReportID\");\r\n if (ParseFromReportURL?.toLowerCase() === \"true\" && EC_Fmt.Null2ZeroInt(ReportID) > 0) {\r\n myRequest.AddRequestVariable(\"ReportID\", ReportID, ECP.EC_Verb.Post);\r\n } else {\r\n myRequest.AddRequestVariable(\"ReportURL\", EC_Fmt.Get_QueryString(\"ReportID\"), ECP.EC_Verb.Post);\r\n }\r\n myRequest.Submit().then((result) => {\r\n if (EC_Fmt.Null2ZeroInt(result.FusionReportID) > 0) {\r\n window.location.href = `Home?DashboardID=${ECP.CommonDashboards.FusionView}&ReportID=${result.FusionReportID}`;\r\n }\r\n ECP.Dialog.HideLoading();\r\n }).catch((e) => {\r\n ECP.Dialog.HideLoading();\r\n throw e;\r\n });\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction EditReportMenu(trigger, report) {\r\n if (EWS?.Command) {\r\n EWS.Command.ShowMenu(\"ReportEditMenu\", trigger, {\r\n report\r\n });\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction LeaveImporsonate(url) {\r\n if (EWS) {\r\n const html = \"\"\r\n + \"\"\r\n + \"\"\r\n + \"\"\r\n + \"
You are impersonating a user.
Do you want to leave and go back to your login?
\";\r\n\r\n const dialogConfirm = ECP.Dialog.ShowDialog(\"Confirm\", html, {\r\n cancelButtonTitle: \"Cancel\",\r\n confirmButtonAction(Dialog) {\r\n ECP.Dialog.CloseDialog(Dialog);\r\n // Task 667450: ReportView dashboard View through QuickLink, button displays prompt information questions.\r\n if (IsImpersonateUser) {\r\n // Task 707408: click Edit and SaveReport is pop cinfirm message(The previous Url was really ReportView, now it has always been Quick?QuickKey=(Task 682571))\r\n const OldUrl = url;\r\n const NewUrl = OldUrl.replace(/QuickKey=(.+?)&/, \"\");\r\n window.location.href = `Home?DashboardID=${ECP.CommonDashboards.LogOn}&DestURL=${encodeURIComponent(NewUrl)}`;\r\n } else {\r\n window.location.href = url;\r\n }\r\n }\r\n });\r\n\r\n dialogConfirm.firstChild.style.height = \"200px\";\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction LeaveGuest() {\r\n if (EWS) {\r\n const html = \"\"\r\n + \"\"\r\n + \"\"\r\n + \"\"\r\n + \"
You are currently a guest.
Do you want to log in?
\";\r\n\r\n const dialogConfirm = ECP.Dialog.ShowDialog(\"Confirm\", html, {\r\n cancelButtonTitle: \"Cancel\",\r\n confirmButtonAction(Dialog) {\r\n ECP.Dialog.CloseDialog(Dialog);\r\n\r\n window.location.href = \"Home\";\r\n }\r\n });\r\n\r\n dialogConfirm.firstChild.style.height = \"200px\";\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction SaveAndViewFormatted(id, url, documentID) {\r\n if (EWS?.SavedReport) {\r\n if (id > 0) {\r\n EWS.SavedReport.Save(url, id, null, () => {\r\n EWS.ShowLoading();\r\n // Task 644849: click 'Click here to Save Changes' does not display data with format added\r\n window.location.href = `${url}&DocumentID=${documentID}`;\r\n });\r\n } else {\r\n EWS.SavedReport.SaveAs(url, null, null, () => {\r\n EWS.ShowLoading();\r\n window.location.href = `${url}&DocumentID=${documentID}`;\r\n });\r\n }\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction RefreshReport(LastDate, DocumentID) {\r\n EWS.ShowLoading();\r\n\r\n const ReportURL = document.getElementById(\"ReportUrl\");\r\n if (ReportURL?.value !== \"\") {\r\n if (DocumentID > 0) {\r\n window.location = `Home?DashboardID=${ECP.CommonDashboards.ReportView}&MinCacheTime=${LastDate}&${ReportURL.value}&Regenerate=True&DocumentID=${DocumentID}&`;\r\n } else {\r\n window.location = `Home?DashboardID=${ECP.CommonDashboards.ReportView}&MinCacheTime=${LastDate}&${ReportURL.value}`;\r\n }\r\n } else {\r\n ECP.Dialog.Alert(\"This report is loading. Please wait until the report is finished.\");\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction CreateReport(form) {\r\n if (typeof form === \"string\") {\r\n form = document.querySelector(form);\r\n }\r\n\r\n EWS.ShowLoading();\r\n form.submit();\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction InvoicePaymentReport(form) {\r\n form = document.getElementById(\"ReportFilter\");\r\n\r\n if (form) {\r\n const paymentInvoiceID = form.querySelector(\"#PaymentInvoiceIDInput\").value;\r\n const StartDate = form.querySelector(\"#StartDate\").value;\r\n const EndDate = form.querySelector(\"#EndDate\").value;\r\n\r\n if (StartDate !== \"\" && EndDate === \"\" && paymentInvoiceID === \"\") {\r\n ECP.Dialog.Alert(\"End Date is required to create report.\");\r\n } else if (EndDate !== \"\" && StartDate === \"\" && paymentInvoiceID === \"\") {\r\n ECP.Dialog.Alert(\"Start Date is required to create report.\");\r\n } else if (paymentInvoiceID === \"\" && StartDate === \"\" && EndDate === \"\") {\r\n ECP.Dialog.Alert(\"Start and End Date or Payment Invoice must be selected to create report.\");\r\n } else {\r\n EWS.ShowLoading();\r\n form.submit();\r\n }\r\n }\r\n}\r\n\r\nfunction DataConnection(endDateTime, startDateTime) {\r\n const NextUpdateTime = document.getElementById(\"NextUpdateTime\");\r\n const displayCountdown = (minutes, seconds) => {\r\n if (minutes === 0 && seconds === 0) {\r\n NextUpdateTime.innerHTML = \"0:00\";\r\n } else {\r\n NextUpdateTime.innerHTML = `${minutes}:${EC_Fmt.Right(`0${seconds}`, 2)}`;\r\n }\r\n };\r\n CountdownInterval(endDateTime, startDateTime, 1000, displayCountdown);\r\n}\r\n\r\n// Task 1006136: FluxEdit.js code clean up\r\nfunction CountdownInterval(endDateTime, startDateTime, milliseconds, callback) {\r\n let interval = null;\r\n startDateTime = EC_Fmt.DateTimeParseFormat(startDateTime);\r\n endDateTime = EC_Fmt.DateTimeParseFormat(endDateTime);\r\n\r\n if (new Date(endDateTime) > new Date(startDateTime)) {\r\n let timeDiff = new Date(endDateTime) - new Date(startDateTime);\r\n\r\n interval = setInterval(() => {\r\n timeDiff -= milliseconds;\r\n\r\n if (timeDiff > 0) {\r\n const minutes = parseInt((timeDiff / 1000 / 60) % 60, 10);\r\n const seconds = parseInt((timeDiff / 1000) % 60, 10);\r\n\r\n if (callback) {\r\n callback(minutes, seconds);\r\n }\r\n } else {\r\n clearInterval(interval);\r\n }\r\n }, milliseconds);\r\n }\r\n\r\n return interval;\r\n}\r\n"],"names":["EWS","Ready","IsImpersonateUser","Command","AddMenu","control","name","menu","callback","innerHTML","menuArgs","style","display","ReportEditMenu","ECP","EC_Request","AddRequestVariable","report","Submit","then","result","length","let","html","i","url","icon","EC_Fmt","RemoveAllEventListeners","addEventListener","item","event","target","closest","contains","window","location","href","getAttribute","ShowLoading","type","Dialog","Alert","CommonDashboards","ReportEdit","arg","HideAllMenus","switchGraph","ChartDataIcon","document","querySelector","ShowMenu","graph","reportUrl","getElementById","value","queries","split","map","query","parameters","parametersValue","parameterArray","indexOf","parameter","encodeURIComponent","join","ReportView","updateTime","DataConnection","reportURL","search","includes","pathname","ReplaceState","history","state","convertToFusion","myRequest","ParseFromReportURL","GetPageParameter","ReportID","toLowerCase","Null2ZeroInt","EC_Verb","Post","Get_QueryString","FusionReportID","FusionView","HideLoading","catch","e","EditReportMenu","trigger","LeaveImporsonate","dialogConfirm","ShowDialog","cancelButtonTitle","confirmButtonAction","CloseDialog","OldUrl","NewUrl","replace","LogOn","firstChild","height","LeaveGuest","SaveAndViewFormatted","id","documentID","SavedReport","Save","SaveAs","RefreshReport","LastDate","DocumentID","ReportURL","CreateReport","form","submit","InvoicePaymentReport","paymentInvoiceID","StartDate","EndDate","endDateTime","startDateTime","NextUpdateTime","displayCountdown","minutes","seconds","Right","CountdownInterval","milliseconds","interval","DateTimeParseFormat","Date","timeDiff","setInterval","parseInt","clearInterval"],"mappings":"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"}