{"version":3,"sources":["EncompassWebServices/Controls/JsonPath.js","EncompassWebServices/Reporting_ECP/SavedReport.js","EncompassWebServices/includes/SitemapHeader_INC.js","EncompassWebServices/includes/ToggleCheckboxes_INC.js"],"names":["EWS","JsonPath","options","Object","assign","data","resultType","keepHistory","onFound","_path","_value","onNormalize","_expression","onTrace","onWalk","_loc","_func","P","result","normalize","expr","subx","replace","$0","$1","$2","push","asPath","path","x","split","let","p","i","n","length","test","store","v","value","query","trace","val","loc","shift","join","prototype","hasOwnProperty","call","walk","m","l","z","eval","substr","lastIndexOf","Array","slice","s","f","keyArr","keys","len","start","end","step","$3","parseInt","Math","max","min","_v","_vname","e","SyntaxError","message","expression","Json","Escape","Query","BC_SavedReport","me","this","UserName","FullName","UserId","SelectedReportIDArr","Command","Add","control","args","VerifySession","ECP","Dialog","ShowLoading","ownerauthenticationid","undefined","AuthenticationID","EC_Fmt","isNull","myRequest","EC_Request","AddRequestVariable","search","FilterPivot","DashboardID","isArray","Submit","then","HideLoading","html","reportDisplay","querySelector","shared","results","owner","name","j","category","k","report","IsPivot","reporttype","id","multipleSelect","indexOf","toString","source","innerHTML","reportIdArr","reportId","reportInput","checked","treeNode","closest","currentSavedReports","HtmlStrToElement","prepend","NodeArray","parentNode","forEach","node","click","TriggerEvent","ownerNodeSet","Set","checkedInputArr","document","querySelectorAll","checkedInput","ownerNode","add","ownerNodeArr","from","getElementById","insertBefore","firstElementChild","firstChild","addEventListener","event","target","matches","checkbox","splice","HTML","Snackbar","index","ReportType","Default","Cube","Delete","trigger","ConfirmDelete","Trn","ShowDialog","barPosition","cancelButtonTitle","confirmButtonTitle","confirmButtonType","confirmButtonAction","dialog","CloseDialog","item","remove","success","Alert","catch","error","Edit","format","favorite","link","roles","ApplicationID","Show_BC_SavedReport_EditReport_Dialog","Favorite","ReportURL","Name","window","location","href","substring","RemoveFavorite","Width","disableResize","clearDashboardMenuCache","NewName","getElementsByClassName","ID","UpdateFavoriteRequest","SetReturnType","EC_ReturnType","Text","EC_Verb","Post","reload","Error","LoadRoles","selected","UserTypeArr","UserTypeRoles","reduce","userTypeRoles","role","includes","UserType","selectCount","rolesHTML","userType","Null2ZeroInt","RoleID","Role","classList","contains","style","display","getAttribute","input","childUserType","CheckParentAll","childusertypeinputarr","Run","system","status","dashboard","encodeURIComponent","Save","url","permission","callback","urlProcessCallback","draft","username","parentreportid","Show_BC_SavedReport_SaveReport_Dialog","uri","toUpperCase","mySubRequest","Verb","SaveAs","CDec","GetPageParameter","CommonDashboards","FusionView","FusionEdit","original","SaveDraft","method","Select","selectCommand","title","fullName","optionsHtml","Show_BC_SavedReport_ReportList_Dialog","SelectReport","parentReport","fusion","reportType","Show_BC_SavedReport_FusionAddReport_Dialog","Ready","SavedReport","Report_Save","Report_SaveAs","IsImpersonateUser","OldUrl","NewUrl","LogOn","Report_SaveDraft","saveReportArgs","isMobile","LoadingDialogTimeout","setTimeout","content","width","height","cancel","save","SaveURL","UrlArr","GetURLParameters","DashboardFormat","isInteger","_myRequest","ReportTypeEle","selectedRoles","checkedRoles","myResult","SaveMethod","observer","MutationObserver","mutations","type","attributeName","truncatedValue","observe","attributes","ajaxInputs","FieldID","AjaxInputs","AjaxInput","rolesSelectAllCheckbox","toLowerCase","SavedReportType","ApplicationInput","append","clearTimeout","FormData","async","selectArgs","ReportLayers","await","CheckFusionReportLayers","DialogCancel","DialogSelect","DialogTitle","fullname","OwnerAuthenticationID","requestAnimationFrame","loadingMask","zIndex","radio","CheckSaveReportLayers","manualTitle","tagName","reportTitle","text","ReportOwnerHtml","dashboardIDElement","ownerAuthenTicationID","OwnerAuthenTicationElement","Execute","userName","key","focus","closeDialog","inputArr","map","AllowHideAllDivs","PageSizeCallback","PageResizeCallback","MenuScrollTop","Menu","MenuTop","PageEndMilliseconds","AllowZoom","SetupEncompassSiteMapHeader","requestIdleCallback","application","CurrentLocalStorageKey","floor","Date","UserID","DashboardMenuHTML","GetLocalStorageValue","localStorage","startsWith","removeItem","GetDashboardMenuURL","getTime","GetCookie","token","Distributor","Get_QueryString","fetch","credentials","response","returnHTML","Login","WriteDashboardMenuHTML","SetLocalStorageValue","expandingTimeout","collapsingTimeout","Menumouseenter","overflowY","highlightedSection","background","boxShadow","expandedSubCategory","Menumouseleave","CollapseAndUnHighlightMenu","passive","stopPropagation","scrollLeft","MainMenuItemHighlight","isVisible","scrollIntoView","behavior","block","inline","parentElement","Settings","MainMenuItemNoCategory","addViewRoleDiv","createElement","setAttribute","TableView","appendChild","ReplaceState","history","state","hash","titleObserver","recentlyVisited","JSON","parse","pages","lastIndex","cleanTitle","mutation","textContent","URL","pathname","stringify","subtree","characterData","childList","timeout","innerContent","elementsHidden","debouncedScrollHandler","debounce","hideAllElements","scrollTop","MainLayout","debouncedResize","ResizeLayout","button","HideAllDivs","isScale","dist","scale","mainLayoutTable","zoomables","DashboardElement","transition","originalEvent","touches","sqrt","pageX","pageY","currentDist","diff","abs","currentScale","scrollWidth","outerWidth","transform","transformOrigin","offsetWidth","zoomable","ApplicationVersionLinks","MainLayoutHeader","previousEl","previousElementSibling","scrollTo","ShowToolTipMessage","CreateSwitchDashboardVersionTypeButton","showSQL","UserMenuToggleInMenu","UserMenuInMenu","GetUserMenuInMenu","bottom","nextSibling","ShowMenu","top","OverFlowMenu","HeaderOverflowMenu","GetHeaderOverflowMenu","SetRenderTime","FavoriteURL","CloseMenu","GetUserDom","UserMenuHtml","outerHTML","MyProfile","switchVersionTypeContent","CurrentSettings","DashboardSetting","ExistsBetaVersion","EnableBeta","ShowBetaDialog","CreateEnableBetaDialog","OpenManageBeta","CreateManageBetaDialog","switchVersionTypeInput","gtag","enableBeta","EnableBetaVersion","setPageBreadcrumbTitle","Breadcrumb","BreadcrumbURL","Title","Button","htmlB","PageBreadcrumb_Title","HeaderMenuLoading","currentCategoryName","HighlightMenu","ToggleMenuCategory","EncompassMobileItem","shareButton","preventDefault","Load_QuicklinkMenu","elements","loadTime","PageLoadTime","body","renderTime","round","PageStartMilliseconds","setInternetSpeed","internetSpeed","isLocalhost","hostname","navigator","connection","downlink","backgroundColor","Round","rtt","SubmitTo","Id","Url","Form","submit","RegisterPageSizeCallback","Callback","CurrentFunction","RegisterPageResizeCallback","NeedScrollToCurrent","AllowResize","userMenu","offsetHeight","HideMenu","windowInnerHeight","innerHeight","windowInnerWidth","innerWidth","position","SetLayoutHeight","NewMenuTop","LeftSideMenu","getBoundingClientRect","outerHeight","myDashboard","MainContent","LoadKnowledgeHelpAlerts","KnowledgeHelpAlert","KnowledgeHelpKey","KnowledgeHelpKeyValue","json","Data","TotalCount","DestroyContent","hideableDivs","includesMobileTouchOverItem","MobileCurrentInput","ToggleMainMenu","cookie","SiteMenuToggle","visible","BreadCrumbMenu","removeAttribute","BreadCrumbMenuIcon","Content","headerApplication","categoryHighlight","mobileMenuMask","resetPositionAfterAnimationEnd","removeEventListener","mainMenuCategory","nextElementSibling","mobileMenuMaskDIV","dashboardId","tempDiv","currentPrimaryDashboard","oldCategory","oldMenuItem","currentURL","currentMenuLink","dashboardMenuLink","dashboardEditIDArr","currentMenuItem","arrow","oldCategoryHighlight","dashboardMenuItemArr","dashboardMenuItem","FieldName","Null2EmptyStr","parameterArr","parsingParameterArr","ToggleExcelMenu","ExcelMenu","buttonPosition","left","ShowSwitchDialog","Tips","cssText","ItemArr","childNodes","scrollIntoViewIfNeeded","highlightedItem","SiteSwitchSearch","currentTarget","InitSiteSwitchData","isDialogDragAttached","PositionDialog","Mask","clientWidth","documentElement","clientHeight","Height","opacity","overflow","Top","Left","minWidth","marginLeft","marginTop","SRDOwner","borderTopWidth","paddingTop","DialogScrollContent","DialogScrollContentTable","border","DialogScrollContentCells","borderBottom","dragDialog","currentDialog","startX","startY","handle","clientX","clientY","webkitUserSelect","MoveDone","MoveDialog","topMaxLimit","leftMaxLimit","DialogContent","DialogHeader","DialogFooter","HideDialog","DialogMask","myElement","embedElements","getElementsByTagName","pdfIframe","overflowX","ScrollPosition","scrollPosition","Category","CollapseOtherCategories","CategoryLayer","Collapsed","OtherCategories","CategoryArrow","OpenApplicationDownload","EncompassMobileCategory","getComputedStyle","get_searchOp","Value","Replace","Find","ReplaceVal","ReplaceAll","ClockIn","TimeClockActivityID","SitesData","SitesHTML","Sites","site","SiteSearchInput","myItemArr","SwitchSiteButton","SiteSwitchForm","action","InputArr","ctrlKey","metaKey","ViewNewDashboards","ShowUnshared","mySetShowUnsharedDashboardRequest","ShowHiddenDashboards","ShowDashboards","mySetShowDefaultDashboardRequest","ShowOtherSiteDashboard","ShowOther","mySetShowOtherSiteDashboardRequest","ShowHideFilters","TableFilter","WriteEncompassMobileItemHtml","clientApplication","clientOS","clientOSVersion","contentHtml","ClientApplication","DownloadURL","ClientVersion","isEmptyContent","trim","isMobileDevice","maxTouchPoints","isAndroid","isIOS","userAgent","ShareButtonHandle","displayCommandMenu","ele","ShowReMindMeDialog","dateTimeNow","DateTimeParseFormat","ScreenFmt","DataType","_DateTime","DateTimeInput","date","delayRequest","State","errors","detail","ShowBetaFeedbackDialog","innerText","head","myDashboardData","EC_TableView","AddSubTableJoinID","AddSubTableColumn","AddFilter","EC_Operator","Equals","GetResults","myRecordSet","EC_Recordset","Records","FeedbackDetail","Get","Dashboard","RemoveHTMLFromStr","OwnerAuthenticationID_DBValue","TaskID","tipContainers","tipMessage","right","EditLanguageString","userLanguage","LocaleStrings","open","ShowBeta","currentTab","DashboardName","BetaType","padding","BetaDescriptions","TypeID","Description","imgUrl","BetaDescription","find","shadowRoot","enableBetaDialog","CreateBetaTask","ErrorMessage","TaskTitle","Rows","Application","disableButtons","footer","refreshMenu","ClearMenuCache","OnClick_ToggleCheckboxes","InputForm","form","checkboxes","OnClick_ToggleCheckboxesBarcodes","ToggleCheckboxes","ToggleTextboxes","inputTextBox","InputFmt","_Integer","OnClick_CheckCheckboxes","IsChecked","InputFormElement","InputElements","OnClick_CheckRadioButton","OnClick_CheckAll","tableID"],"mappings":"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","file":"DefaultNoEchatAll.min.js","sourcesContent":["\"use strict\";\r\n\r\n(function (EWS) {\r\n const JsonPath = function (options) {\r\n options = Object.assign({}, {\r\n data: {},\r\n resultType: \"VALUE\",\r\n keepHistory: true,\r\n onFound(_path, _value) { },\r\n onNormalize(_expression) { },\r\n onTrace(_expression, _value, _path) { },\r\n onWalk(_loc, _expression, _value, _path, _func) { }\r\n }, options);\r\n\r\n const P = {\r\n result: [],\r\n\r\n normalize(expr) {\r\n options.onNormalize(expr);\r\n\r\n const subx = [];\r\n\r\n return expr.replace(/[['](\\??\\(.*?\\))[\\]']|\\['(.*?)'\\]/g, ($0, $1, $2) => `[#${subx.push($1 || $2) - 1}]`).replace(/'?\\.'?|\\['?/g, \";\").replace(/;;;|;;/g, \";..;\").replace(/;$|'?\\]|'$/g, \"\")\r\n .replace(/#([0-9]+)/g, ($0, $1) => subx[$1]);\r\n },\r\n\r\n asPath(path) {\r\n const x = path.split(\";\");\r\n let p = \"$\";\r\n\r\n for (let i = 1, n = x.length; i < n; i++) {\r\n p += /^[0-9*]+$/.test(x[i]) ? (`[${x[i]}]`) : (`['${x[i]}']`);\r\n }\r\n\r\n return p;\r\n },\r\n\r\n store(p, v) {\r\n options.onFound(p, v);\r\n\r\n if (p) {\r\n switch (options.resultType) {\r\n case \"PATH\":\r\n P.result[P.result.length] = P.asPath(p);\r\n break;\r\n\r\n case \"BOTH\":\r\n P.result[P.result.length] = {\r\n path: P.asPath(p),\r\n value: v,\r\n query: p\r\n };\r\n\r\n break;\r\n\r\n default:\r\n case \"VALUE\":\r\n P.result[P.result.length] = v;\r\n break;\r\n }\r\n }\r\n\r\n return !!p;\r\n },\r\n\r\n trace(expr, val, path) {\r\n options.onTrace(expr, val, path);\r\n\r\n if (expr !== \"\") {\r\n let x = expr.split(\";\");\r\n const loc = x.shift();\r\n\r\n x = x.join(\";\");\r\n\r\n if (val && Object.prototype.hasOwnProperty.call(val, loc)) {\r\n P.trace(x, val[loc], `${path};${loc}`);\r\n } else if (loc === \"*\") {\r\n P.walk(loc, x, val, path, (m, l, z, v, p) => {\r\n P.trace(`${m};${z}`, v, p);\r\n });\r\n } else if (loc === \"..\") {\r\n P.trace(x, val, path);\r\n\r\n P.walk(loc, x, val, path, (m, l, z, v, p) => {\r\n // eslint-disable-next-line no-unused-expressions\r\n typeof v[m] === \"object\" && P.trace(`..;${z}`, v[m], `${p};${m}`);\r\n });\r\n } else if (/^\\(.*?\\)$/.test(loc)) {\r\n P.trace(`${P.eval(loc, val, path.substr(path.lastIndexOf(\";\") + 1))};${x}`, val, path);\r\n } else if (/^\\?\\(.*?\\)$/.test(loc)) {\r\n P.walk(loc, x, val, path, (m, l, z, v, p) => {\r\n if (P.eval(l.replace(/^\\?\\((.*?)\\)$/, \"$1\"), v instanceof Array ? v[m] : v, m)) {\r\n P.trace(`${m};${z}`, v, p);\r\n }\r\n });\r\n } else if (/^(-?[0-9]*):(-?[0-9]*):?([0-9]*)$/.test(loc)) {\r\n P.slice(loc, x, val, path);\r\n } else if (/,/.test(loc)) {\r\n for (let s = loc.split(/'?,'?/), i = 0, n = s.length; i < n; i++) {\r\n P.trace(`${s[i]};${x}`, val, path);\r\n }\r\n }\r\n } else {\r\n P.store(path, val);\r\n }\r\n },\r\n\r\n walk(loc, expr, val, path, f) {\r\n if (val instanceof Array) {\r\n for (let i = 0, n = val.length; i < n; i++) {\r\n if (i in val) {\r\n f(i, loc, expr, val, path);\r\n }\r\n }\r\n } else if (typeof val === \"object\") {\r\n const keyArr = Object.keys(val);\r\n for (let i = 0; i < keyArr.length; i++) {\r\n const m = keyArr[i];\r\n if (Object.prototype.hasOwnProperty.call(val, m)) {\r\n f(m, loc, expr, val, path);\r\n }\r\n }\r\n }\r\n },\r\n\r\n slice(loc, expr, val, path) {\r\n if (val instanceof Array) {\r\n const len = val.length;\r\n let start = 0;\r\n let end = len;\r\n let step = 1;\r\n\r\n loc.replace(/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$/g, ($0, $1, $2, $3) => {\r\n start = parseInt($1 || start);\r\n end = parseInt($2 || end);\r\n step = parseInt($3 || step);\r\n });\r\n\r\n start = (start < 0) ? Math.max(0, start + len) : Math.min(len, start);\r\n end = (end < 0) ? Math.max(0, end + len) : Math.min(len, end);\r\n\r\n for (let i = start; i < end; i += step) {\r\n P.trace(`${i};${expr}`, val, path);\r\n }\r\n }\r\n },\r\n\r\n eval(x, _v, _vname) {\r\n try {\r\n return _v && eval(x.replace(/(^|[^\\\\])@/g, \"$1_v\").replace(/\\\\@/g, \"@\"));\r\n } catch (e) {\r\n throw new SyntaxError(`jsonPath: ${e.message}: ${x.replace(/(^|[^\\\\])@/g, \"$1_v\").replace(/\\\\@/g, \"@\")}`);\r\n }\r\n },\r\n\r\n query(expression) {\r\n if (!options.keepHistory) {\r\n P.result = [];\r\n }\r\n\r\n if (expression) {\r\n P.trace(P.normalize(expression).replace(/^\\$;?/, \"\"), options.data, \"$\");\r\n return P.result.length ? P.result : false;\r\n }\r\n return null;\r\n }\r\n };\r\n\r\n return P;\r\n };\r\n\r\n EWS.Json = {\r\n Escape(value) {\r\n value = value.replace(/\\(/g, \"\");\r\n value = value.replace(/\\)/g, \"\");\r\n value = value.replace(/\\//g, \"\");\r\n value = value.replace(/\\\\/g, \"\");\r\n value = value.replace(/\\+/g, \"\");\r\n value = value.replace(/-/g, \"\");\r\n value = value.replace(/([.^$*'?()[{\\\\|])/g, \"\\\\$1\");\r\n\r\n return value;\r\n },\r\n\r\n Query(data, expression) {\r\n return JsonPath({\r\n data\r\n }).query(expression);\r\n }\r\n };\r\n}(EWS));\r\n","const BC_SavedReport = function (EWS) {\r\n const me = this;\r\n\r\n this.EWS = EWS;\r\n this.UserName = \"\";\r\n this.FullName = \"\";\r\n this.UserId = 0;\r\n // Task 726729: Create dashboard widget to display a selected list of reports in a 'Report Library UI' format\r\n this.SelectedReportIDArr = [];\r\n\r\n this.EWS.Command.Add(\"BC_SavedReport_GetReports\", (control, args) => {\r\n EWS.VerifySession(() => {\r\n ECP.Dialog.ShowLoading();\r\n\r\n if (args.ownerauthenticationid === undefined && AuthenticationID) {\r\n args.ownerauthenticationid = AuthenticationID;\r\n }\r\n if (!args.ownerauthenticationid || EC_Fmt.isNull(parseInt(args.ownerauthenticationid))) {\r\n args.ownerauthenticationid = \"0\";\r\n }\r\n const myRequest = new ECP.EC_Request(\"SavedReport_GetReports\");\r\n myRequest.AddRequestVariable(\"OwnerAuthenticationID\", args.ownerauthenticationid);\r\n\r\n if (args.search) {\r\n // Task 662357: Run Test Case 3968 Fail : Can not search this Fusion Report in Dashboard Report Search\r\n myRequest.AddRequestVariable(\"SearchStr\", args.search);\r\n }\r\n // Task 667701: Improve performance when saving a fusion report that has 'columns' on it - Prevent 'Columns' reports from being used as base reports\r\n if (args.FilterPivot) {\r\n myRequest.AddRequestVariable(\"FilterPivot\", args.FilterPivot);\r\n }\r\n\r\n if (args.DashboardID) {\r\n if (Array.isArray(args.DashboardID)) {\r\n myRequest.AddRequestVariable(\"DashboardID\", args.DashboardID.join(\",\"));\r\n } else {\r\n myRequest.AddRequestVariable(\"DashboardID\", args.DashboardID);\r\n }\r\n }\r\n\r\n if (this.SelectedReportIDArr.length > 0) {\r\n myRequest.AddRequestVariable(\"SelectedReportID\", this.SelectedReportIDArr.join(\",\"));\r\n }\r\n\r\n myRequest.Submit().then((results) => {\r\n ECP.Dialog.HideLoading();\r\n\r\n let html = \"\";\r\n const reportDisplay = args.Dialog.querySelector(\"#ews-report-display\");\r\n\r\n const shared = results.owner;\r\n\r\n for (let i = 0; i < shared.length; i++) {\r\n html += \"
\";\r\n\r\n if (shared.length === 1) {\r\n html += \"
\"\r\n + \"
\"\r\n + `${shared[i].name}`\r\n + \"
\";\r\n } else {\r\n html += \"
\"\r\n + \"
\"\r\n + `${shared[i].name}`\r\n + \"
\";\r\n }\r\n\r\n for (let j = 0; j < shared[i].category.length; j++) {\r\n if (shared[i].category[j].name === \"\") {\r\n for (let k = 0; k < shared[i].category[j].report.length; k++) {\r\n // 1) Pivot 2)Data\r\n const IsPivot = shared[i].category[j].report[k].reporttype === 1;\r\n html += `
`\r\n + \"
\"\r\n + \"
\";\r\n // Task 1011667: Include all reports in the report selector for Import Routines\r\n if (IsPivot) {\r\n html += ``;\r\n } else {\r\n html += ` -1 ? \"checked\" : \"\"} name=saved-report source=\"${shared[i].category[j].report[k].source}\" owner=\"${shared[i].owner}\" fullname=\"${shared[i].name}\" value=\"${shared[i].category[j].report[k].id}\" category=\"${shared[i].category[j].name}\" />`;\r\n }\r\n html += \"
\"\r\n + `${shared[i].category[j].report[k].name}`\r\n + \"
\";\r\n if (IsPivot) {\r\n html += `Cannot use this report as a source, it contains child/details rows, a column (pivot), or a grand total`;\r\n }\r\n }\r\n } else {\r\n html += \"
\"\r\n + \"
\"\r\n + \"
\"\r\n + `${shared[i].category[j].name}`\r\n + \"
\";\r\n\r\n for (let k = 0; k < shared[i].category[j].report.length; k++) {\r\n const IsPivot = shared[i].category[j].report[k].category === 1;\r\n html += `
`\r\n + \"
\"\r\n + \"
\";\r\n if (IsPivot) {\r\n html += ``;\r\n } else {\r\n html += ` -1 ? \"checked\" : \"\"} name=saved-report source=\"${shared[i].category[j].report[k].source}\"owner=\"${shared[i].owner}\"fullname=\"${shared[i].name}\"value=\"${shared[i].category[j].report[k].id}\" category=\"${shared[i].category[j].name}\" />`;\r\n }\r\n html += \"
\"\r\n + `${shared[i].category[j].report[k].name}`\r\n + \"
\";\r\n if (IsPivot) {\r\n html += `Cannot use this report as a source, it contains child/details rows, a column (pivot), or a grand total`;\r\n }\r\n }\r\n\r\n html += \"
\";\r\n }\r\n }\r\n\r\n html += \"
\";\r\n }\r\n\r\n reportDisplay.innerHTML = html;\r\n\r\n if (args && args !== undefined && (args.report || (args.multipleSelect && this.SelectedReportIDArr.length > 0))) {\r\n // Task 923438: Dashboard Report Widget: Editing a Dashboard forces me to re-select the Report\r\n const reportIdArr = args.multipleSelect ? this.SelectedReportIDArr : [args.report];\r\n\r\n for (let i = 0; i < reportIdArr.length; i++) {\r\n const reportId = reportIdArr[i];\r\n const reportInput = args.Dialog.querySelector(`#ews-report-display input[type=${args.multipleSelect ? \"checkbox\" : \"radio\"}][value='${reportId}']`);\r\n if (reportInput) {\r\n reportInput.checked = true;\r\n let treeNode = reportInput.closest(\".ews-tree-node\");\r\n // Task 1034256: Show report already selected in report widget on dashboards\r\n if (!args.multipleSelect) {\r\n const currentSavedReports = EC_Fmt.HtmlStrToElement(\"
\");\r\n reportDisplay.prepend(currentSavedReports);\r\n currentSavedReports.prepend(treeNode);\r\n }\r\n // Expands the Report tree by default.\r\n const NodeArray = [];\r\n while (treeNode) {\r\n NodeArray.push(treeNode);\r\n if (treeNode.parentNode && !treeNode.parentNode.closest(\".ews-tree-node\")) {\r\n break;\r\n }\r\n treeNode = treeNode.parentNode.closest(\".ews-tree-node\");\r\n }\r\n NodeArray.forEach((node) => {\r\n if (node.querySelector(\".ews-tree-collapsed\")) {\r\n node.querySelector(\".ews-tree-collapsed\").click();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (args.multipleSelect) {\r\n EC_Fmt.TriggerEvent(args.Dialog.querySelector(\"#ews-report-title\"), \"keyup\");\r\n\r\n const ownerNodeSet = new Set();\r\n const checkedInputArr = document.querySelectorAll(\"input[type=checkbox]:checked\");\r\n\r\n for (let i = 0; i < checkedInputArr.length; i++) {\r\n const checkedInput = checkedInputArr[i];\r\n const ownerNode = checkedInput.closest(\"#ews-report-display > .ews-tree-node\");\r\n\r\n ownerNodeSet.add(ownerNode);\r\n }\r\n\r\n const ownerNodeArr = Array.from(ownerNodeSet);\r\n\r\n for (let i = ownerNodeArr.length - 1; i > 0; i--) {\r\n const ownerNode = ownerNodeArr[i];\r\n\r\n document.getElementById(\"ews-report-display\").insertBefore(ownerNode, document.getElementById(\"ews-report-display\").firstElementChild);\r\n }\r\n\r\n if (!EC_Fmt.isNull(reportDisplay.firstChild)) {\r\n reportDisplay.firstChild.addEventListener(\"click\", (event) => {\r\n if (event.target.matches(\"input[type='checkbox']\")) {\r\n const checkbox = event.target;\r\n\r\n if (checkbox.checked) {\r\n this.SelectedReportIDArr.push(checkbox.value);\r\n if (this.SelectedReportIDArr.length > 100) {\r\n this.SelectedReportIDArr.splice(99, 1);\r\n checkbox.checked = false;\r\n ECP.HTML.Snackbar(\"You can only select up to 100 reports.\", \"Warning\");\r\n }\r\n } else {\r\n const index = this.SelectedReportIDArr.indexOf(checkbox.value);\r\n\r\n if (index > -1) {\r\n this.SelectedReportIDArr.splice(index, 1);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n });\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.ReportType = {\r\n Default: 0,\r\n Cube: 1\r\n};\r\n\r\nBC_SavedReport.prototype.Delete = function (id, trigger) {\r\n const me = this;\r\n // Task 726325: Save Fusion report is very very slow, and does not give the user a 'saving' message of any kind\r\n me.ConfirmDelete(id, trigger, EC_Fmt.Trn(\"Are you sure you want to delete this saved report?
Deleting this report is irreversible and the report cannot be recovered once it's deleted.\"));\r\n};\r\n\r\nBC_SavedReport.prototype.ConfirmDelete = function (id, trigger, message) {\r\n const html = \"\"\r\n + \"\"\r\n + ``\r\n + \"\"\r\n + \"
${message}
\";\r\n\r\n ECP.Dialog.ShowDialog(\"Confirm delete report\", html, {\r\n barPosition: \"top\",\r\n cancelButtonTitle: \"Cancel\",\r\n confirmButtonTitle: \"Delete report\",\r\n confirmButtonType: \"permanent-destructive\",\r\n confirmButtonAction(dialog) {\r\n ECP.Dialog.CloseDialog(dialog);\r\n\r\n ECP.Dialog.ShowLoading();\r\n\r\n const myRequest = new ECP.EC_Request(\"SavedReport_DeleteReport\");\r\n myRequest.AddRequestVariable(\"ReportID\", id);\r\n\r\n myRequest.Submit().then((result) => {\r\n if (trigger) {\r\n document.querySelectorAll(trigger).forEach((item) => {\r\n item.remove();\r\n });\r\n }\r\n\r\n ECP.Dialog.HideLoading();\r\n\r\n if (result.success !== \"True\") {\r\n ECP.Dialog.Alert(\"Unable to delete report\");\r\n }\r\n }).catch((error) => {\r\n ECP.Dialog.HideLoading();\r\n throw error;\r\n });\r\n }\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.Edit = function (id) {\r\n const me = this;\r\n\r\n if (id && !EC_Fmt.isNull(parseInt(id))) {\r\n EWS.VerifySession(() => {\r\n const myRequest = new ECP.EC_Request(\"SavedReport_GetReport\");\r\n myRequest.AddRequestVariable(\"ReportID\", id);\r\n\r\n myRequest.Submit().then((result) => {\r\n if (result.error) {\r\n EWS.HideLoading();\r\n ECP.Dialog.Alert(result.error);\r\n return;\r\n }\r\n const args = {\r\n id: parseInt(id),\r\n document: result.document,\r\n name: result.name,\r\n DashboardID: result.DashboardID,\r\n format: result.format,\r\n category: result.category,\r\n owner: result.owner,\r\n ownerauthenticationid: result.ownerauthenticationid,\r\n favorite: result.favorite,\r\n link: result.link,\r\n roles: result.roles,\r\n ReportType: result.ReportType,\r\n ApplicationID: result.ApplicationID\r\n };\r\n\r\n me.Show_BC_SavedReport_EditReport_Dialog(args);\r\n });\r\n });\r\n } else {\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"Invalid Report ID\"));\r\n }\r\n};\r\n\r\nBC_SavedReport.prototype.Favorite = function (event, ReportURL, Name) {\r\n if (ReportURL === \"\") {\r\n ReportURL = window.location.href.substring(window.location.href.indexOf(\"/Home?\") + 1);\r\n }\r\n\r\n const myRequest = new ECP.EC_Request(\"GetFavoritesDialog\");\r\n myRequest.AddRequestVariable(\"FavoriteURL\", ReportURL);\r\n // Task 615639: Favoriting Reports with Names Longer than 50 Characters Prevents TextArea from Generating and Throws Error Upon Save\r\n myRequest.AddRequestVariable(\"FavoriteName\", Name.substring(0, 50));\r\n\r\n myRequest.Submit().then((result) => {\r\n const RemoveFavorite = result.RemoveFavorite === \"true\";\r\n ECP.Dialog.ShowDialog(RemoveFavorite ? \"Remove Favorite?\" : \"Save Favorite?\", result.html, {\r\n barPosition: \"top\",\r\n Width: 460,\r\n disableResize: true,\r\n cancelButtonTitle: \"Cancel\",\r\n confirmButtonTitle: RemoveFavorite ? \"Remove\" : \"Save\",\r\n confirmButtonAction: (Dialog) => {\r\n clearDashboardMenuCache();\r\n\r\n let NewName = \"\";\r\n if (!RemoveFavorite) {\r\n NewName = Dialog.getElementsByClassName(\"FavoritesName\")[0].value;\r\n } else {\r\n NewName = `DeleteRecord_${result.ID}`;\r\n }\r\n if (RemoveFavorite || NewName !== \"\") {\r\n // Task 624857: SystemError: UnknownFile:JavaScript Error: UnknownFile (0) - Error in promise - TypeError: Failed to fetch\r\n const UpdateFavoriteRequest = new ECP.EC_Request(\"UpdateFavorite\");\r\n UpdateFavoriteRequest.SetReturnType(ECP.EC_ReturnType.Text);\r\n UpdateFavoriteRequest.AddRequestVariable(\"ID\", result.ID);\r\n UpdateFavoriteRequest.AddRequestVariable(\"Name\", NewName);\r\n if (!RemoveFavorite) {\r\n UpdateFavoriteRequest.AddRequestVariable(\"FavoriteURL\", ReportURL, ECP.EC_Verb.Post);\r\n }\r\n UpdateFavoriteRequest.Submit().then(() => {\r\n window.location.reload();\r\n }).catch((error) => {\r\n ECP.Dialog.HideLoading();\r\n throw new Error(`Error saving to favorites ${error}`);\r\n });\r\n } else if (NewName === \"\") {\r\n ECP.Dialog.Alert(\"Name can not be empty\");\r\n }\r\n }\r\n });\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.LoadRoles = function (dialog, selected) {\r\n EWS.VerifySession(() => {\r\n const myRequest = new ECP.EC_Request(\"SavedReport_GetSharingRoles\");\r\n\r\n myRequest.Submit().then((result) => {\r\n // Task 940845: Update Report Sharing Roles to group by User Type and limit view by UserType.ViewPermission IN {UserPermissionArr}\r\n\r\n const UserTypeArr = [];\r\n const UserTypeRoles = result.roles.reduce((userTypeRoles, role) => {\r\n if (!UserTypeArr.includes(role.UserType)) {\r\n UserTypeArr.push(role.UserType);\r\n }\r\n const roles = userTypeRoles[role.UserType] || (userTypeRoles[role.UserType] = []);\r\n roles.push(role);\r\n return userTypeRoles;\r\n }, {});\r\n\r\n let html = \"
\";\r\n for (let i = 0; i < UserTypeArr.length; i++) {\r\n let selectCount = 0;\r\n let rolesHTML = \"\";\r\n const userType = UserTypeArr[i];\r\n const roles = UserTypeRoles[userType];\r\n for (let z = 0; z < roles.length; z++) {\r\n rolesHTML += \"
\"\r\n + `
`\r\n + `
`;\r\n\r\n if (selected?.indexOf(EC_Fmt.Null2ZeroInt(roles[z].RoleID)) >= 0) {\r\n rolesHTML += ``;\r\n selectCount++;\r\n } else {\r\n rolesHTML += ``;\r\n }\r\n rolesHTML += \"
\"\r\n + ``\r\n + \"
\";\r\n }\r\n html += `
`\r\n + `
`\r\n + `
`\r\n + ``\r\n + `
0 ? \"style=display:block\" : \"\"}>${rolesHTML}
`\r\n + \"
\";\r\n }\r\n html += \"
\";\r\n\r\n dialog.querySelector(\".ews-savedreport-roles-display\").innerHTML = html;\r\n const UserType = dialog.querySelector(\".usertypeall\");\r\n if (UserType) {\r\n UserType.addEventListener(\"click\", (e) => {\r\n const click = e.target;\r\n if (!click || click.classList.contains(\"ews-savedreport-roles-container\")) {\r\n return;\r\n }\r\n\r\n if (click.classList.contains(\"ews-tree-trigger\")) {\r\n if (click.classList.contains(\"ews-tree-collapsed\")) {\r\n click.parentNode.querySelector(\".ews-tree-child-node\").style.display = \"block\";\r\n click.classList.remove(\"ews-tree-collapsed\");\r\n click.classList.add(\"ews-tree-expanded\");\r\n } else {\r\n click.parentNode.querySelector(\".ews-tree-child-node\").style.display = \"\";\r\n click.classList.add(\"ews-tree-collapsed\");\r\n click.classList.remove(\"ews-tree-expanded\");\r\n }\r\n }\r\n\r\n if (!EC_Fmt.isNull(click.getAttribute(\"usertype\"))) {\r\n dialog.querySelectorAll(`.ews-tree-child-node[usertype='${click.getAttribute(\"usertype\")}'] input[type='checkbox']`).forEach((input) => {\r\n input.checked = event.target.checked;\r\n });\r\n }\r\n\r\n const childUserType = click.closest(\".ews-tree-child-node\");\r\n if (childUserType && EC_Fmt.isNull(click.getAttribute(\"usertype\"))) {\r\n let CheckParentAll = true;\r\n const childusertypeinputarr = childUserType.querySelectorAll(\"input[type='checkbox']\");\r\n for (let i = 0; i < childusertypeinputarr.length; i++) {\r\n if (!childusertypeinputarr[i].checked) {\r\n CheckParentAll = false;\r\n break;\r\n }\r\n }\r\n const parentNode = childUserType.closest(\".ews-tree-node\").querySelector(\".ews-tree-parent-node input[type='checkbox']\");\r\n if (CheckParentAll) {\r\n parentNode.checked = true;\r\n } else {\r\n parentNode.checked = false;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.Run = function (id, system) {\r\n ECP.Dialog.ShowLoading();\r\n\r\n const myRequest = new ECP.EC_Request(\"SavedReport_GetReportUrl\");\r\n\r\n myRequest.AddRequestVariable(\"ReportID\", id);\r\n\r\n if (system) {\r\n myRequest.AddRequestVariable(\"System\", \"True\");\r\n }\r\n\r\n myRequest.Submit().then((results) => {\r\n if (results.status === \"success\") {\r\n if (results.dashboard > 0) {\r\n window.location.href = `Home?DashboardID=${results.dashboard}&ParseFromReportURL=True&ReportID=${results.id}&ReportName=${encodeURIComponent(results.name)}`;\r\n } else {\r\n window.location.href = `${results.source}?ParseFromReportURL=True&ReportID=${results.id}&ReportName=${encodeURIComponent(results.name)}`;\r\n }\r\n } else {\r\n ECP.Dialog.HideLoading();\r\n ECP.Dialog.Alert(results.message);\r\n }\r\n }).catch((error) => {\r\n ECP.Dialog.HideLoading();\r\n throw error;\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.Save = function (url, id, permission, callback, urlProcessCallback) {\r\n const me = this;\r\n\r\n if (id && !EC_Fmt.isNull(parseInt(id))) {\r\n EWS.VerifySession(() => {\r\n const myRequest = new ECP.EC_Request(\"SavedReport_GetReport\");\r\n\r\n myRequest.AddRequestVariable(\"ReportID\", id);\r\n\r\n myRequest.Submit().then((result) => {\r\n if (result.error) {\r\n EWS.HideLoading();\r\n ECP.Dialog.Alert(result.error);\r\n return;\r\n }\r\n if (result.draft) {\r\n const args = {\r\n id: parseInt(id),\r\n url,\r\n document: result.document,\r\n owner: result.username,\r\n ownerauthenticationid: result.ownerauthenticationid,\r\n parentreportid: result.parentreportid,\r\n format: result.format,\r\n callback,\r\n urlProcessCallback,\r\n name: result.name\r\n };\r\n\r\n me.EWS.HideLoading();\r\n me.Show_BC_SavedReport_SaveReport_Dialog(args);\r\n } else {\r\n const roles = [];\r\n const name = result.name;\r\n\r\n for (let i = 0; i < result.roles.length; i++) {\r\n roles.push(result.roles[i].id);\r\n }\r\n\r\n const format = result.format;\r\n\r\n if (urlProcessCallback) {\r\n url = urlProcessCallback(url, format);\r\n }\r\n\r\n const uri = url.split(\"?\");\r\n const source = uri[0].toUpperCase() === \"API\" ? \"Home\" : uri[0];\r\n\r\n if (uri.length > 1) {\r\n uri.shift();\r\n url = uri.join(\"?\");\r\n } else {\r\n url = \"\";\r\n }\r\n\r\n const mySubRequest = new ECP.EC_Request(\"SavedReport_SaveReport\");\r\n mySubRequest.Verb = ECP.EC_Verb.Post;\r\n\r\n mySubRequest.AddRequestVariable(\"Request\", \"SaveReport\", ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"ReportID\", id, ECP.EC_Verb.Post);\r\n\r\n if (result.document && result.document > 0) {\r\n mySubRequest.AddRequestVariable(\"DocumentID\", result.document, ECP.EC_Verb.Post);\r\n }\r\n\r\n mySubRequest.AddRequestVariable(\"Url\", url, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"SourcePage\", source, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"PagePermission\", permission, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Report\", name, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Category\", result.category, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"OwnerAuthenticationID\", result.ownerauthenticationid, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Favorite\", result.favorite, ECP.EC_Verb.Post);\r\n\r\n if (result.link && result.link > 0) {\r\n mySubRequest.AddRequestVariable(\"LinkFavoritesID\", result.link, ECP.EC_Verb.Post);\r\n }\r\n\r\n mySubRequest.AddRequestVariable(\"RoleID\", roles.join(), ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Draft\", \"0\", ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Table\", \"Reports\", ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Format\", format, ECP.EC_Verb.Post);\r\n\r\n mySubRequest.Submit().then(() => {\r\n if (callback && callback !== undefined) {\r\n callback(id);\r\n } else {\r\n // Task 641114: ReportEdit page click SaveButton Always showing loading.\r\n EWS.HideLoading();\r\n ECP.Dialog.Alert(\"Report saved successfully.\");\r\n }\r\n });\r\n }\r\n });\r\n });\r\n } else {\r\n this.SaveAs(url, null, permission, callback, urlProcessCallback);\r\n }\r\n};\r\n\r\nBC_SavedReport.prototype.SaveAs = function (url, id, permission, callback, urlProcessCallback) {\r\n const me = this;\r\n\r\n if (url && url !== \"\") {\r\n // Task 1043998: Can't Save report shared through quicklink\r\n const DashboardID = EC_Fmt.CDec(EC_Fmt.GetPageParameter(\"DashboardID\"));\r\n if (id && !EC_Fmt.isNull(parseInt(id)) && (DashboardID === ECP.CommonDashboards.FusionView || DashboardID === ECP.CommonDashboards.FusionEdit)) {\r\n EWS.VerifySession(() => {\r\n // Task 726325: Save Fusion report is very very slow, and does not give the user a 'saving' message of any kind\r\n const myRequest = new ECP.EC_Request(\"SavedReport_GetReport\");\r\n myRequest.AddRequestVariable(\"ReportID\", id);\r\n myRequest.Submit().then((result) => {\r\n if (result.error) {\r\n EWS.HideLoading();\r\n ECP.Dialog.Alert(result.error);\r\n return;\r\n }\r\n const args = {\r\n url,\r\n permission,\r\n name: result.name,\r\n format: result.format,\r\n category: result.category,\r\n document: result.document,\r\n ownerauthenticationid: result.ownerauthenticationid,\r\n owner: result.username,\r\n favorite: result.favorite,\r\n link: result.link,\r\n roles: result.roles,\r\n callback,\r\n original: id,\r\n urlProcessCallback\r\n };\r\n\r\n ECP.Dialog.HideLoading();\r\n me.Show_BC_SavedReport_SaveReport_Dialog(args);\r\n }).catch((error) => {\r\n ECP.Dialog.HideLoading();\r\n throw error;\r\n });\r\n });\r\n } else {\r\n EWS.VerifySession(() => {\r\n const myRequest = new ECP.EC_Request(\"SavedReport_GetCurrentUser\");\r\n\r\n myRequest.Submit().then((result) => {\r\n const args = {\r\n url,\r\n ownerauthenticationid: result.ownerauthenticationid,\r\n owner: result.username,\r\n format: result.format,\r\n callback,\r\n urlProcessCallback\r\n };\r\n\r\n ECP.Dialog.HideLoading();\r\n me.Show_BC_SavedReport_SaveReport_Dialog(args);\r\n }).catch((error) => {\r\n ECP.Dialog.HideLoading();\r\n throw error;\r\n });\r\n });\r\n }\r\n } else {\r\n ECP.Dialog.HideLoading();\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"Invalid Report URL\"));\r\n }\r\n};\r\n\r\nBC_SavedReport.prototype.SaveDraft = function (url, id, callback) {\r\n const me = this;\r\n\r\n if (url && url !== \"\") {\r\n if (id && !EC_Fmt.isNull(parseInt(id))) {\r\n EWS.VerifySession(() => {\r\n const myRequest = new ECP.EC_Request(\"SavedReport_GetReport\");\r\n myRequest.AddRequestVariable(\"ReportID\", id);\r\n\r\n myRequest.Submit().then((result) => {\r\n if (result.error) {\r\n EWS.HideLoading();\r\n ECP.Dialog.Alert(result.error);\r\n return;\r\n }\r\n if (result.draft) {\r\n const args = {\r\n id: parseInt(id),\r\n url: \"\",\r\n document: result.document,\r\n owner: result.owner,\r\n ownerauthenticationid: result.ownerauthenticationid,\r\n callback,\r\n method: \"SaveDraft\"\r\n };\r\n\r\n me.Show_BC_SavedReport_SaveReport_Dialog(args);\r\n }\r\n });\r\n });\r\n }\r\n } else {\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"Invalid Report URL\"));\r\n }\r\n};\r\n\r\nBC_SavedReport.prototype.Select = function (callback, selectCommand, title, report, owner, fullName, dashboard, ownerauthenticationid, multipleSelect, FilterPivot, ReportType, optionsHtml) {\r\n if (multipleSelect) {\r\n this.SelectedReportIDArr = report ? report.split(\",\") : [];\r\n }\r\n\r\n this.Show_BC_SavedReport_ReportList_Dialog({\r\n callback,\r\n selectCommand,\r\n title,\r\n report,\r\n owner,\r\n fullName,\r\n ownerauthenticationid,\r\n dashboard,\r\n multipleSelect,\r\n FilterPivot,\r\n ReportType,\r\n optionsHtml\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.SelectReport = function (callback, selectCommand, parentReport, fusion, reportType) {\r\n this.Show_BC_SavedReport_FusionAddReport_Dialog({\r\n callback,\r\n selectCommand,\r\n parentReport,\r\n fusion,\r\n reportType\r\n });\r\n};\r\n\r\nEWS.Ready((EWS) => {\r\n EWS.SavedReport = new BC_SavedReport(EWS);\r\n});\r\n\r\nfunction Report_Save(url, id, permission, callback, urlProcessCallback) {\r\n if (EWS?.SavedReport) {\r\n EWS.SavedReport.Save(url, id, permission, callback, urlProcessCallback);\r\n }\r\n}\r\n\r\nfunction Report_SaveAs(url, id, permission, callback, urlProcessCallback) {\r\n if (EWS?.SavedReport) {\r\n if (IsImpersonateUser) {\r\n // Task 667450: ReportView dashboard View through QuickLink, button displays prompt information questions.\r\n ECP.Dialog.ShowDialog(\"Confirm\", `
You are impersonating a user.Do you want to leave and go back to your login?
`, {\r\n barPosition: \"top\",\r\n cancelButtonTitle: \"Cancel\",\r\n confirmButtonTitle: \"Confirm\",\r\n confirmButtonAction: () => {\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 }\r\n });\r\n } else {\r\n EWS.SavedReport.SaveAs(url, id, permission, callback, urlProcessCallback);\r\n }\r\n }\r\n}\r\n\r\nfunction Report_SaveDraft(url, id, callback) {\r\n if (EWS?.SavedReport) {\r\n EWS.SavedReport.SaveDraft(url, id, callback);\r\n }\r\n}\r\n\r\nBC_SavedReport.prototype.Show_BC_SavedReport_SaveReport_Dialog = function (args) {\r\n const me = this;\r\n\r\n if (!args) {\r\n args = {};\r\n }\r\n\r\n const saveReportArgs = args;\r\n\r\n EWS.VerifySession(() => {\r\n const myRequest = new ECP.EC_Request(\"SavedReport_SaveDialog\");\r\n myRequest.AddRequestVariable(\"Mobile\", EC_Fmt.isMobile);\r\n // Task 690648: Fusion Report Format: Fusion report is running in HTML format when the Format is set to CSV.\r\n myRequest.AddRequestVariable(\"DashboardID\", EC_Fmt.GetPageParameter(\"DashboardID\"));\r\n // Task 748410: Fusion View: Click Save Report As refreshes report, but no Save As Dialogue pops up\r\n const LoadingDialogTimeout = setTimeout(() => {\r\n ECP.Dialog.ShowLoading(\"Loading Dialog...\");\r\n }, 500);\r\n myRequest.Submit().then((result) => {\r\n const Dialog = ECP.Dialog.ShowDialog(result.title, result.content, {\r\n barPosition: \"top\",\r\n width: 750,\r\n height: 550,\r\n cancelButtonTitle: result.cancel,\r\n confirmButtonTitle: result.save,\r\n confirmButtonAction(dialog) {\r\n EWS.ShowLoading();\r\n\r\n const report = dialog.querySelector(\"#SavedReportName\").value;\r\n\r\n if (report !== \"\") {\r\n let format = \"\";\r\n let SaveURL = dialog.querySelector(\"#SavedReportUrl\").value;\r\n\r\n const UrlArr = EC_Fmt.GetURLParameters(SaveURL);\r\n let DashboardID = \"\";\r\n if (UrlArr.DashboardID) {\r\n DashboardID = UrlArr.DashboardID;\r\n }\r\n const DashboardFormat = (EC_Fmt.GetPageParameter(\"DashboardID\") === ECP.CommonDashboards.FusionView.toString()) || (EC_Fmt.GetPageParameter(\"DashboardID\") === ECP.CommonDashboards.FusionEdit.toString());\r\n if (Dialog.querySelector(\"#SavedReportFormat\") || !DashboardFormat) {\r\n if (!EC_Fmt.isMobile) {\r\n format = dialog.querySelector(\"#SavedReportFormat\").value;\r\n } else {\r\n format = dialog.querySelector(\"input[name='SavedReportFormat']:checked\").value;\r\n }\r\n }\r\n\r\n if (saveReportArgs.urlProcessCallback) {\r\n SaveURL = saveReportArgs.urlProcessCallback(SaveURL, format);\r\n }\r\n\r\n const uri = SaveURL.split(\"?\");\r\n // Task 920004: Saved report 3615248 - running the report, some are getting specific errors, but running the report now gives a long list of errors.\r\n const source = uri[0].toUpperCase() === \"API\" ? \"Home\" : uri[0];\r\n let url = \"\";\r\n\r\n if (uri.length > 1) {\r\n uri.shift();\r\n url = uri.join(\"?\");\r\n }\r\n // Task 645424: Change FusionEdit.aspx to Dashboard\r\n // Task 676375: In SaveReportAS, add the parameter DashboardID\r\n\r\n if (source === \"Home\" && !EC_Fmt.isInteger(DashboardID)) {\r\n ECP.Dialog.Alert(\"Saved DashboardID Error\");\r\n ECP.Dialog.HideLoading();\r\n return;\r\n }\r\n\r\n const _myRequest = new ECP.EC_Request(\"SavedReport_SaveReport\");\r\n _myRequest.Verb = ECP.EC_Verb.Post;\r\n\r\n _myRequest.AddRequestVariable(\"ReportID\", dialog.querySelector(\"#SavedReportReportID\").value, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"DocumentID\", dialog.querySelector(\"#SavedReportDocumentID\").value, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"DashboardID\", DashboardID, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"SourcePage\", source, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"Url\", url, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"PagePermission\", dialog.querySelector(\"#SavedReportPermission\").value, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"Report\", report, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"Category\", dialog.querySelector(\"#SavedReportCategoryHidden\").value, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"OwnerAuthenticationID\", dialog.querySelector(\"#OwnerAuthenticationIDHidden\").value, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"OriginalReportID\", dialog.querySelector(\"#SavedReportOriginalReportID\").value, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"Favorite\", \"0\", ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"LinkFavoritesID\", dialog.querySelector(\"#SavedReportLinkID\").value, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"Draft\", \"0\", ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"Table\", \"Reports\", ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"Format\", format, ECP.EC_Verb.Post);\r\n\r\n const ReportTypeEle = dialog.querySelector(\"#SavedReportType\");\r\n if (ReportTypeEle) {\r\n _myRequest.AddRequestVariable(\"ReportType\", (ReportTypeEle.checked ? EWS.SavedReport.ReportType.Cube : EWS.SavedReport.ReportType.Default), ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"ApplicationID\", dialog.querySelector(\"#ReoprtApplicationID\").value, ECP.EC_Verb.Post);\r\n }\r\n\r\n const selectedRoles = [];\r\n\r\n const checkedRoles = Dialog.querySelectorAll(\".ews-savedreport-roles-display input[type='checkbox']:checked\");\r\n for (let i = 0, len = checkedRoles.length; i < len; i++) {\r\n selectedRoles.push(checkedRoles[i].value);\r\n }\r\n\r\n _myRequest.AddRequestVariable(\"RoleID\", selectedRoles.join(), ECP.EC_Verb.Post);\r\n\r\n ECP.Dialog.CloseDialog(dialog);\r\n\r\n _myRequest.Submit().then((myResult) => {\r\n if (format === \"Excel\" || format === \"PDF\" || format === \"XML\" || format === \"JSON\") {\r\n EWS.HideLoading();\r\n }\r\n\r\n if (saveReportArgs.callback && saveReportArgs.callback !== undefined) {\r\n saveReportArgs.callback(myResult.id, report);\r\n } else if (saveReportArgs.parentreportid > 0) {\r\n window.location.href = `Home?DashboardID=${ECP.CommonDashboards.FusionEdit}&ReportID=${saveReportArgs.parentreportid}&ChildReportID=${saveReportArgs.id}`;\r\n } else if (saveReportArgs.SaveMethod && saveReportArgs.SaveMethod === \"SaveDraft\") {\r\n window.location.reload();\r\n } else {\r\n // Task 631270: Export of a Compound report uses the name of one of the base reports, not the name of the Compound report\r\n window.location = `${source}?ParseFromReportURL=True&ReportID=${myResult.id}&ReportName=${encodeURIComponent(report)}`;\r\n // Task 644859: Get error with Invalid report action (). when save a table report\r\n }\r\n }).catch((error) => {\r\n EWS.HideLoading();\r\n throw error;\r\n });\r\n } else {\r\n EWS.HideLoading();\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"You must enter a report name.\"));\r\n }\r\n }\r\n });\r\n\r\n // EC-3571: Prompt users when they have exceeded 50 character limit for Report Category names\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach(({ target, type, attributeName }) => {\r\n if (type === \"attributes\" && attributeName === \"value\" && target.value.length > 50) {\r\n ECP.HTML.Snackbar(EC_Fmt.Trn(\"Report Category Name entered exceeds the 50 character limit. The name will be truncated to the first 50 characters.\"), \"Warning\");\r\n const truncatedValue = target.value.slice(0, 50);\r\n Dialog.querySelector(\"#SavedReportCategoryInput\").value = truncatedValue;\r\n target.value = truncatedValue;\r\n }\r\n });\r\n });\r\n observer.observe(Dialog.querySelector(\"#SavedReportCategoryHidden\"), { attributes: true });\r\n\r\n if (EC_Fmt.isMobile) {\r\n Dialog.firstChild.classList.add(\"ecp-dialog-mobile\");\r\n }\r\n\r\n const ajaxInputs = Dialog.querySelectorAll(\"input[KeyValue][DisplayVal][LimitToList]\");\r\n for (let i = 0, len = ajaxInputs.length; i < len; i++) {\r\n const input = ajaxInputs[i];\r\n const FieldID = input.closest(\"section\").getAttribute(\"FieldID\");\r\n\r\n EWS.AjaxInputs[FieldID] = new ECP.HTML.AjaxInput(input);\r\n\r\n input.closest(\"table\").style.width = \"\";\r\n }\r\n\r\n const rolesSelectAllCheckbox = Dialog.querySelector(\"#ews-savedreport-roles-select-all\");\r\n if (rolesSelectAllCheckbox) {\r\n rolesSelectAllCheckbox.addEventListener(\"click\", (event) => {\r\n Dialog.querySelectorAll(\".ews-savedreport-roles-display input[type='checkbox']\").forEach((input) => {\r\n input.checked = event.target.checked;\r\n });\r\n });\r\n }\r\n\r\n Dialog.querySelector(\"#SavedReportReportID\").value = saveReportArgs.id || \"\";\r\n\r\n if (saveReportArgs.document && saveReportArgs.document > 0) {\r\n Dialog.querySelector(\"#SavedReportDocumentID\").value = saveReportArgs.document;\r\n } else {\r\n Dialog.querySelector(\"#SavedReportDocumentID\").value = \"\";\r\n }\r\n\r\n Dialog.querySelector(\"#SavedReportReportID\").value = saveReportArgs.id || \"\";\r\n Dialog.querySelector(\"#SavedReportUrl\").value = saveReportArgs.url || \"\";\r\n Dialog.querySelector(\"#SavedReportPermission\").value = saveReportArgs.permission || \"\";\r\n Dialog.querySelector(\"#SavedReportName\").value = saveReportArgs.name || \"\";\r\n Dialog.querySelector(\"#SavedReportCategoryHidden\").value = saveReportArgs.category || \"\";\r\n Dialog.querySelector(\"#SavedReportCategoryInput\").value = saveReportArgs.category || \"\";\r\n Dialog.querySelector(\"#SavedReportOriginalReportID\").value = saveReportArgs.original || \"\";\r\n\r\n // Task 603764: User set Report Format to Null on Inventory Status Report\r\n if (saveReportArgs.format && saveReportArgs.format.toLowerCase() === \"\") {\r\n saveReportArgs.format = \"HTML\";\r\n }\r\n const DashboardID = (EC_Fmt.GetPageParameter(\"DashboardID\") === ECP.CommonDashboards.FusionView.toString()) || (EC_Fmt.GetPageParameter(\"DashboardID\") === ECP.CommonDashboards.FusionEdit.toString());\r\n if (Dialog.querySelector(\"#SavedReportFormat\") || !DashboardID) {\r\n if (!EC_Fmt.isMobile) {\r\n Dialog.querySelector(\"#SavedReportFormat\").value = saveReportArgs.format || \"\";\r\n } else {\r\n Dialog.querySelector(\"input[name='SavedReportFormat']:checked\").checked = false;\r\n Dialog.querySelector(`input[name='SavedReportFormat'][value='${saveReportArgs.format || \"\"}']`).checked = true;\r\n }\r\n }\r\n\r\n if (saveReportArgs.link && saveReportArgs.link > 0) {\r\n Dialog.querySelector(\"#SavedReportLinkID\").value = saveReportArgs.link;\r\n } else {\r\n Dialog.querySelector(\"#SavedReportLinkID\").value = \"\";\r\n }\r\n\r\n const checkedRoles = Dialog.querySelectorAll(\".ews-savedreport-roles-display input[type='checkbox']:checked\");\r\n for (let i = 0, len = checkedRoles.length; i < len; i++) {\r\n checkedRoles[i].checked = false;\r\n }\r\n\r\n const SavedReportType = Dialog.querySelector(\"#SavedReportType\");\r\n if (args.ReportType === EWS.SavedReport.ReportType.Cube.toString() && SavedReportType) {\r\n SavedReportType.checked = true;\r\n }\r\n if (SavedReportType) {\r\n const ApplicationInput = Dialog.querySelector(\"#ApplicationInput\");\r\n ApplicationInput.append(EC_Fmt.HtmlStrToElement(``));\r\n }\r\n\r\n clearTimeout(LoadingDialogTimeout);\r\n ECP.Dialog.HideLoading();\r\n\r\n me.LoadRoles(Dialog);\r\n }).catch((e) => {\r\n clearTimeout(LoadingDialogTimeout);\r\n EWS.HideLoading();\r\n throw e;\r\n });\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.Show_BC_SavedReport_EditReport_Dialog = function (args) {\r\n const me = this;\r\n\r\n EWS.VerifySession(() => {\r\n const myRequest = new ECP.EC_Request(\"SavedReport_EditDialog\");\r\n myRequest.AddRequestVariable(\"Mobile\", EC_Fmt.isMobile);\r\n // Task 690648: Fusion Report Format: Fusion report is running in HTML format when the Format is set to CSV.\r\n myRequest.AddRequestVariable(\"DashboardID\", args.DashboardID);\r\n\r\n myRequest.Submit().then((result) => {\r\n const Dialog = ECP.Dialog.ShowDialog(result.title, result.content, {\r\n barPosition: \"top\",\r\n width: 750,\r\n height: 550,\r\n cancelButtonTitle: result.cancel,\r\n confirmButtonTitle: result.save,\r\n confirmButtonAction(dialog) {\r\n EWS.ShowLoading();\r\n\r\n if (dialog.querySelector(\"#SavedReportName\").value !== \"\") {\r\n const data = new FormData();\r\n\r\n if (data) {\r\n let format = \"\";\r\n // Task 927264: When saving a comparison report on a mobile device on safari, the default format = HTML is not saving as expected\r\n const DashboardID = (args.DashboardID === ECP.CommonDashboards.FusionView.toString()) || (args.DashboardID === ECP.CommonDashboards.FusionEdit.toString());\r\n if (Dialog.querySelector(\"#SavedReportFormat\") || !DashboardID) {\r\n if (!EC_Fmt.isMobile) {\r\n format = dialog.querySelector(\"#SavedReportFormat\").value;\r\n } else {\r\n format = dialog.querySelector(\"input[name='SavedReportFormat']:checked\").value;\r\n }\r\n }\r\n\r\n const mySubRequest = new ECP.EC_Request(\"SavedReport_SaveReport\", ECP.EC_Verb.Post);\r\n\r\n mySubRequest.AddRequestVariable(\"ReportID\", dialog.querySelector(\"#SavedReportReportID\").value, ECP.EC_Verb.Post);\r\n // Task 678816: Comparison Sales Report: Report Record Dashboard ID is being updated when saved or edited\r\n mySubRequest.AddRequestVariable(\"Url\", \"\", ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"DocumentID\", dialog.querySelector(\"#SavedReportDocumentID\").value, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Report\", dialog.querySelector(\"#SavedReportName\").value, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Category\", dialog.querySelector(\"#SavedReportCategoryHidden\").value, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"OwnerAuthenticationID\", dialog.querySelector(\"#OwnerAuthenticationIDHidden\").value, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Favorite\", \"0\", ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"LinkFavoritesID\", dialog.querySelector(\"#SavedReportLinkID\").value, ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Draft\", \"0\", ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Table\", \"Reports\", ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"Format\", format, ECP.EC_Verb.Post);\r\n if (dialog.querySelector(\"#SavedReportType\")) {\r\n mySubRequest.AddRequestVariable(\"ReportType\", (dialog.querySelector(\"#SavedReportType\").checked ? EWS.SavedReport.ReportType.Cube : EWS.SavedReport.ReportType.Default), ECP.EC_Verb.Post);\r\n mySubRequest.AddRequestVariable(\"ApplicationID\", dialog.querySelector(\"#ReoprtApplicationID\").value, ECP.EC_Verb.Post);\r\n }\r\n\r\n const selectedRoles = [];\r\n\r\n dialog.querySelectorAll(\".ews-savedreport-roles-display input[type='checkbox']:checked\").forEach((input) => {\r\n selectedRoles.push(input.value);\r\n });\r\n\r\n mySubRequest.AddRequestVariable(\"RoleID\", selectedRoles.join(), ECP.EC_Verb.Post);\r\n\r\n ECP.Dialog.CloseDialog(dialog);\r\n\r\n mySubRequest.Submit().then(() => {\r\n if (format === \"Excel\" || format === \"PDF\" || format === \"XML\" || format === \"JSON\") {\r\n EWS.HideLoading();\r\n }\r\n\r\n window.location.reload();\r\n }).catch((error) => {\r\n EWS.HideLoading();\r\n throw error;\r\n });\r\n }\r\n } else {\r\n EWS.HideLoading();\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"You must enter a report name.\"));\r\n }\r\n }\r\n });\r\n\r\n if (EC_Fmt.isMobile) {\r\n Dialog.firstChild.classList.add(\"ecp-dialog-mobile\");\r\n }\r\n\r\n Dialog.querySelectorAll(\"input[KeyValue][DisplayVal][LimitToList]\").forEach((input) => {\r\n const FieldID = input.closest(\"section\").getAttribute(\"FieldID\");\r\n\r\n EWS.AjaxInputs[FieldID] = new ECP.HTML.AjaxInput(input);\r\n\r\n input.closest(\"table\").style.width = \"\";\r\n });\r\n\r\n if (Dialog.querySelector(\"#ews-savedreport-roles-select-all\")) {\r\n Dialog.querySelector(\"#ews-savedreport-roles-select-all\").addEventListener(\"click\", (event) => {\r\n Dialog.querySelectorAll(\".ews-savedreport-roles-display input[type='checkbox']\").forEach((input) => {\r\n input.checked = event.target.checked;\r\n });\r\n });\r\n }\r\n\r\n if (!args) {\r\n args = {};\r\n }\r\n\r\n Dialog.querySelector(\"#SavedReportReportID\").value = args.id || \"\";\r\n\r\n if (args.document && args.document > 0) {\r\n Dialog.querySelector(\"#SavedReportDocumentID\").value = args.document;\r\n } else {\r\n Dialog.querySelector(\"#SavedReportDocumentID\").value = \"\";\r\n }\r\n\r\n Dialog.querySelector(\"#SavedReportUrl\").value = \"\";\r\n Dialog.querySelector(\"#SavedReportPermission\").value = \"\";\r\n Dialog.querySelector(\"#SavedReportName\").value = args.name || \"\";\r\n Dialog.querySelector(\"#SavedReportCategoryHidden\").value = args.category || \"\";\r\n Dialog.querySelector(\"#SavedReportCategoryInput\").value = args.category || \"\";\r\n const DashboardID = (args.DashboardID === ECP.CommonDashboards.FusionView.toString()) || (args.DashboardID === ECP.CommonDashboards.FusionEdit.toString());\r\n if (Dialog.querySelector(\"#SavedReportFormat\") || !DashboardID) {\r\n if (!EC_Fmt.isMobile) {\r\n Dialog.querySelector(\"#SavedReportFormat\").value = args.format || \"\";\r\n } else {\r\n Dialog.querySelector(\"input[name='SavedReportFormat']:checked\").checked = false;\r\n Dialog.querySelector(`input[name='SavedReportFormat'][value='${args.format || \"\"}']`).checked = true;\r\n }\r\n }\r\n const SavedReportType = Dialog.querySelector(\"#SavedReportType\");\r\n if (args.ReportType === EWS.SavedReport.ReportType.Cube.toString() && SavedReportType) {\r\n SavedReportType.checked = true;\r\n }\r\n if (SavedReportType) {\r\n const ApplicationInput = Dialog.querySelector(\"#ApplicationInput\");\r\n ApplicationInput.append(EC_Fmt.HtmlStrToElement(``));\r\n }\r\n if (args.link && args.link > 0) {\r\n Dialog.querySelector(\"#SavedReportLinkID\").value = args.link;\r\n } else {\r\n Dialog.querySelector(\"#SavedReportLinkID\").value = \"\";\r\n }\r\n\r\n Dialog.querySelectorAll(\".ews-savedreport-roles-display input[type='checkbox']:checked\").forEach((input) => {\r\n input.checked = false;\r\n });\r\n\r\n if (args.roles) {\r\n const roles = [];\r\n\r\n for (let i = 0; i < args.roles.length; i++) {\r\n roles.push(args.roles[i].id);\r\n }\r\n\r\n me.LoadRoles(Dialog, roles);\r\n } else {\r\n me.LoadRoles(Dialog);\r\n }\r\n }).catch((e) => {\r\n EWS.HideLoading();\r\n throw e;\r\n });\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.Show_BC_SavedReport_FusionAddReport_Dialog = function (args) {\r\n const me = this;\r\n\r\n EWS.VerifySession(async () => {\r\n const selectArgs = args;\r\n const ReportLayers = await CheckFusionReportLayers(args.parentReport);\r\n if (!ReportLayers) {\r\n return;\r\n }\r\n const myRequest = new ECP.EC_Request(\"SavedReport_ReportListDialog\");\r\n if (selectArgs.reportType) {\r\n myRequest.AddRequestVariable(\"ReportType\", selectArgs.reportType);\r\n }\r\n try {\r\n const result = await myRequest.Submit();\r\n const DialogCancel = EC_Fmt.Trn(\"Cancel\");\r\n const DialogSelect = EC_Fmt.Trn(\"Select\");\r\n let DialogTitle = EC_Fmt.Trn(\"Select Report\");\r\n if (selectArgs.reportType === EWS.SavedReport.ReportType.Cube) {\r\n DialogTitle = EC_Fmt.Trn(\"Add Fusion Cube\");\r\n }\r\n\r\n me.UserName = result.username;\r\n me.FullName = result.fullname;\r\n me.OwnerAuthenticationID = result.ownerauthenticationid;\r\n const Dialog = ECP.Dialog.ShowDialog(DialogTitle, result.content, {\r\n barPosition: \"top\",\r\n width: 750,\r\n height: 730,\r\n cancelButtonTitle: DialogCancel,\r\n confirmButtonTitle: DialogSelect,\r\n async confirmButtonAction(dialog) {\r\n EWS.ShowLoading();\r\n requestAnimationFrame(() => {\r\n const loadingMask = document.getElementById(\"ews-loading-mask\");\r\n if (loadingMask) {\r\n loadingMask.style.zIndex = parseInt(dialog.style.zIndex) + 30;\r\n }\r\n });\r\n\r\n const radio = dialog.querySelector(\"input[name='saved-report']:checked\");\r\n\r\n let report = radio.value;\r\n // Task 662223: Prevent users from adding more than 3 layers of reports to a fusion report\r\n const CheckSaveReportLayers = await CheckFusionReportLayers(report, true);\r\n if (!CheckSaveReportLayers) {\r\n return;\r\n }\r\n if (CheckSaveReportLayers + ReportLayers > 3) {\r\n ECP.Dialog.Alert(\"No more than 3 layers allowed in a Fusion Report\");\r\n EWS.HideLoading();\r\n return;\r\n }\r\n\r\n const title = dialog.querySelector(\"#ews-report-title\").value.replace(/(^\\s*)|(\\s*$)/g, \"\");\r\n\r\n if (selectArgs.dashboard && title === \"\") {\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"You must enter a title.\"));\r\n return;\r\n }\r\n\r\n if (selectArgs.report && !EC_Fmt.isNull(parseInt(selectArgs.report)) && !report) {\r\n report = selectArgs.report;\r\n }\r\n\r\n const source = radio.getAttribute(\"source\");\r\n const owner = radio.getAttribute(\"owner\");\r\n let fullName = radio.getAttribute(\"fullname\");\r\n\r\n if (report && !EC_Fmt.isNull(parseInt(report))) {\r\n if (owner.length > 0 && owner.substr(owner.length - 1) === \"$\") {\r\n fullName = owner;\r\n }\r\n\r\n const _myRequest = new ECP.EC_Request(\"FluxEdit_CloneReport\");\r\n _myRequest.AddRequestVariable(\"ReportID\", report, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"ParentReportID\", selectArgs.parentReport, ECP.EC_Verb.Post);\r\n _myRequest.AddRequestVariable(\"Alias\", title, ECP.EC_Verb.Post);\r\n\r\n _myRequest.Submit().then((myResult) => {\r\n if (selectArgs.callback && selectArgs.callback !== undefined) {\r\n ECP.Dialog.CloseDialog(dialog);\r\n\r\n EWS.HideLoading();\r\n\r\n selectArgs.callback(me, myResult.report, title, source, owner, fullName);\r\n }\r\n }).catch((e) => {\r\n EWS.HideLoading();\r\n throw e;\r\n });\r\n } else {\r\n EWS.HideLoading();\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"You must select a report.\"));\r\n }\r\n }\r\n });\r\n\r\n let manualTitle = false;\r\n\r\n Dialog.querySelectorAll(\"input[KeyValue][DisplayVal][LimitToList]\").forEach((input) => {\r\n const FieldID = input.closest(\"section\").getAttribute(\"FieldID\");\r\n\r\n EWS.AjaxInputs[FieldID] = new ECP.HTML.AjaxInput(input);\r\n\r\n input.closest(\"table\").style.width = \"\";\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-title\").addEventListener(\"keyup\", () => {\r\n manualTitle = true;\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-display\").addEventListener(\"change\", (event) => {\r\n const target = event.target;\r\n\r\n if (target.tagName.toLowerCase() === \"input\" && target.name === \"saved-report\") {\r\n Dialog.querySelectorAll(\".ews-tree-selected\").forEach((item) => {\r\n item.classList.remove(\"ews-tree-selected\");\r\n });\r\n\r\n const reportTitle = Dialog.querySelector(\"#ews-report-title\");\r\n\r\n if (reportTitle.value === \"\") {\r\n manualTitle = false;\r\n }\r\n\r\n if (!manualTitle) {\r\n reportTitle.value = target.closest(\".ews-tree-node\").querySelector(\"a[type=report]\").innerHTML;\r\n }\r\n\r\n // Task 677137: Syntax Error when selecting a saved report from table import\r\n target.closest(\".ews-tree-node\").querySelector(\"a[type=report]\").classList.add(\"ews-tree-selected\");\r\n }\r\n });\r\n\r\n if (selectArgs.title) {\r\n Dialog.querySelector(\"#ews-report-title\").value = selectArgs.title;\r\n }\r\n\r\n if (selectArgs.dashboard) {\r\n Dialog.querySelector(\"#ews-saved-report-title-container\").style.display = \"flex\";\r\n } else if (selectArgs.fusion) {\r\n Dialog.querySelector(\"#ews-saved-report-title-container\").style.display = \"flex\";\r\n Dialog.querySelector(\"#ews-saved-report-title-display\").text = EC_Fmt.Trn(\"Alias\");\r\n const ReportOwnerHtml = Dialog.querySelector(\".ews-report-owner\");\r\n if (ReportOwnerHtml) {\r\n ReportOwnerHtml.style.display = \"\";\r\n }\r\n } else {\r\n Dialog.querySelector(\"#ews-saved-report-title-container\").style.display = \"none\";\r\n }\r\n\r\n let selectCommand = \"BC_SavedReport_GetReports\";\r\n\r\n if (selectArgs.selectCommand && selectArgs.selectCommand !== undefined && selectArgs.selectCommand !== \"\") {\r\n selectCommand = selectArgs.selectCommand;\r\n }\r\n\r\n let DashboardID = \"\";\r\n const dashboardIDElement = document.getElementById(\"ews-report-dashboard-id\");\r\n if (dashboardIDElement) {\r\n DashboardID = dashboardIDElement.value;\r\n }\r\n\r\n let ownerAuthenTicationID = \"\";\r\n const OwnerAuthenTicationElement = Dialog.querySelector(\"#ews-report-ownerauthenticationHidden\");\r\n if (OwnerAuthenTicationElement) {\r\n ownerAuthenTicationID = OwnerAuthenTicationElement.value;\r\n }\r\n\r\n EWS.Command.Execute(selectCommand, {\r\n Dialog,\r\n ownerauthenticationid: ownerAuthenTicationID,\r\n search: Dialog.querySelector(\"#ews-report-search\").value,\r\n report: selectArgs.report,\r\n userName: (me.UserName || \"\").toLowerCase(),\r\n DashboardID,\r\n ReportType: selectArgs.reportType\r\n });\r\n\r\n if (OwnerAuthenTicationElement) {\r\n OwnerAuthenTicationElement.addEventListener(\"change\", () => {\r\n EWS.Command.Execute(selectCommand, {\r\n Dialog,\r\n ownerauthenticationid: ownerAuthenTicationID,\r\n search: Dialog.querySelector(\"#ews-report-search\").value,\r\n report: selectArgs.report,\r\n userName: (me.UserName || \"\").toLowerCase(),\r\n DashboardID,\r\n ReportType: selectArgs.reportType\r\n });\r\n });\r\n }\r\n\r\n Dialog.querySelector(\"#ews-report-search\").addEventListener(\"keydown\", (event) => {\r\n if (event.key === \"Enter\") {\r\n EWS.Command.Execute(selectCommand, {\r\n Dialog,\r\n ownerauthenticationid: ownerAuthenTicationID,\r\n search: Dialog.querySelector(\"#ews-report-search\").value,\r\n report: selectArgs.report,\r\n userName: (me.UserName || \"\").toLowerCase(),\r\n DashboardID,\r\n ReportType: selectArgs.reportType\r\n });\r\n\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n Dialog.querySelector(\".ews-edit-form\").addEventListener(\"click\", (event) => {\r\n const target = event.target;\r\n\r\n if (target.tagName.toLowerCase() === \"a\" && target.type === \"report\") {\r\n target.parentNode.querySelector(\"input[name='saved-report']\").click();\r\n } else if (target.tagName.toLowerCase() === \"a\" && target.type === \"folder\") {\r\n target.parentNode.querySelector(\".ews-tree-selector\").click();\r\n } else if (target.classList.contains(\"ews-tree-collapsed\")) {\r\n target.parentNode.querySelector(\".ews-tree-child-node\").style.display = \"block\";\r\n\r\n target.classList.add(\"ews-tree-expanded\");\r\n target.classList.remove(\"ews-tree-collapsed\");\r\n } else if (target.classList.contains(\"ews-tree-expanded\")) {\r\n target.parentNode.querySelector(\".ews-tree-child-node\").style.display = \"none\";\r\n\r\n target.classList.remove(\"ews-tree-expanded\");\r\n target.classList.add(\"ews-tree-collapsed\");\r\n }\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-search-button\").addEventListener(\"click\", () => {\r\n EWS.Command.Execute(selectCommand, {\r\n Dialog,\r\n ownerauthenticationid: OwnerAuthenTicationElement ? OwnerAuthenTicationElement.value : \"\",\r\n search: Dialog.querySelector(\"#ews-report-search\").value,\r\n report: selectArgs.report,\r\n userName: (me.UserName || \"\").toLowerCase(),\r\n DashboardID,\r\n ReportType: selectArgs.reportType\r\n });\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-search\").focus();\r\n\r\n requestAnimationFrame(() => {\r\n Dialog.querySelector(\"#ews-report-search\").focus();\r\n });\r\n } catch (e) {\r\n EWS.HideLoading();\r\n throw (e);\r\n }\r\n });\r\n};\r\n\r\nBC_SavedReport.prototype.Show_BC_SavedReport_ReportList_Dialog = function (args) {\r\n const me = this;\r\n\r\n EWS.VerifySession(() => {\r\n const selectArgs = args;\r\n\r\n const myRequest = new ECP.EC_Request(\"SavedReport_ReportListDialog\");\r\n\r\n myRequest.Submit().then((result) => {\r\n me.UserName = result.username;\r\n me.FullName = result.fullname;\r\n me.OwnerAuthenticationID = result.ownerauthenticationid;\r\n me.closeDialog = true;\r\n\r\n const DialogCancel = EC_Fmt.Trn(\"Cancel\");\r\n const DialogSelect = EC_Fmt.Trn(\"Select\");\r\n let DialogTitle = EC_Fmt.Trn(\"Select Report\");\r\n if (selectArgs.reportType === EWS.SavedReport.ReportType.Cube) {\r\n DialogTitle = EC_Fmt.Trn(\"Select Fusion Cube\");\r\n }\r\n\r\n const Dialog = ECP.Dialog.ShowDialog(DialogTitle, result.content, {\r\n barPosition: \"top\",\r\n width: 750,\r\n height: 730,\r\n cancelButtonTitle: DialogCancel,\r\n confirmButtonTitle: DialogSelect,\r\n confirmButtonAction(dialog) {\r\n let closeDialog = true;\r\n const inputArr = dialog.querySelectorAll(\"input[name='saved-report']:checked\");\r\n const title = dialog.querySelector(\"#ews-report-title\").value.replace(/(^\\s*)|(\\s*$)/g, \"\");\r\n\r\n if (selectArgs.dashboard && title === \"\") {\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"You must enter a title.\"));\r\n return;\r\n }\r\n\r\n if (selectArgs.multipleSelect) {\r\n if (inputArr.length <= 0) {\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"You must select a report.\"));\r\n closeDialog = false;\r\n }\r\n\r\n if (selectArgs.callback && selectArgs.callback !== undefined) {\r\n selectArgs.callback(me, Array.from(inputArr).map(input => input.value).join(\",\"), title);\r\n }\r\n } else {\r\n const radio = inputArr.length > 0 ? inputArr[0] : null;\r\n\r\n if (radio) {\r\n let report = radio.value;\r\n\r\n if (selectArgs.report && !EC_Fmt.isNull(parseInt(selectArgs.report)) && !report) {\r\n report = selectArgs.report;\r\n }\r\n\r\n const source = radio.getAttribute(\"source\");\r\n const owner = radio.getAttribute(\"owner\");\r\n let fullName = radio.getAttribute(\"fullname\");\r\n\r\n if (report && !EC_Fmt.isNull(parseInt(report))) {\r\n if (owner.length > 0 && owner.substr(owner.length - 1) === \"$\") {\r\n fullName = owner;\r\n }\r\n\r\n if (selectArgs.callback && selectArgs.callback !== undefined) {\r\n selectArgs.callback(me, report, title, source, owner, fullName);\r\n }\r\n }\r\n } else {\r\n ECP.Dialog.Alert(EC_Fmt.Trn(\"You must select a report.\"));\r\n closeDialog = false;\r\n }\r\n }\r\n\r\n if (!closeDialog || !me.closeDialog) {\r\n dialog.style.display = \"block\";\r\n } else {\r\n ECP.Dialog.CloseDialog(dialog);\r\n }\r\n }\r\n });\r\n me.Dialog = Dialog;\r\n\r\n let manualTitle = false;\r\n\r\n Dialog.querySelectorAll(\"input[KeyValue][DisplayVal][LimitToList]\").forEach((input) => {\r\n const FieldID = input.closest(\"section\").getAttribute(\"FieldID\");\r\n\r\n EWS.AjaxInputs[FieldID] = new ECP.HTML.AjaxInput(input);\r\n\r\n input.closest(\"table\").style.width = \"\";\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-title\").addEventListener(\"keyup\", () => {\r\n manualTitle = true;\r\n });\r\n\r\n Dialog.addEventListener(\"change\", (event) => {\r\n const target = event.target;\r\n\r\n if (target.tagName.toLowerCase() === \"input\" && target.name === \"saved-report\") {\r\n Dialog.querySelectorAll(\".ews-tree-selected\").forEach((item) => {\r\n item.classList.remove(\"ews-tree-selected\");\r\n });\r\n\r\n if (Dialog.querySelector(\"#ews-report-title\").value === \"\") {\r\n manualTitle = false;\r\n }\r\n\r\n if (!manualTitle) {\r\n Dialog.querySelector(\"#ews-report-title\").value = target.parentNode.parentNode.querySelector(\"a[type=report]\").innerHTML;\r\n }\r\n\r\n // Task 677137: Syntax Error when selecting a saved report from table import\r\n target.parentNode.parentNode.querySelector(\"a[type=report]\").classList.add(\"ews-tree-selected\");\r\n }\r\n });\r\n\r\n if (selectArgs.title) {\r\n Dialog.querySelector(\"#ews-report-title\").value = selectArgs.title;\r\n }\r\n\r\n if (selectArgs.optionsHtml) {\r\n Dialog.querySelector(\".addReport-Options\").style.display = \"\";\r\n Dialog.querySelector(\"#ews-saved-report-options-container\").innerHTML = selectArgs.optionsHtml;\r\n }\r\n if (selectArgs.dashboard) {\r\n Dialog.querySelector(\"#ews-saved-report-title-container\").style.display = \"flex\";\r\n } else if (selectArgs.fusion) {\r\n Dialog.querySelector(\"#ews-saved-report-title-container\").style.display = \"none\";\r\n Dialog.querySelector(\".ews-report-owner\").style.display = \"none\";\r\n } else {\r\n Dialog.querySelector(\"#ews-saved-report-title-container\").style.display = \"none\";\r\n }\r\n\r\n if (selectArgs.owner) {\r\n Dialog.querySelector(\"#ews-report-ownerauthenticationHidden\").value = selectArgs.ownerauthenticationid;\r\n Dialog.querySelector(\"#ews-report-ownerauthenticationInput\").value = selectArgs.owner;\r\n }\r\n\r\n let selectCommand = \"BC_SavedReport_GetReports\";\r\n\r\n if (selectArgs.selectCommand && selectArgs.selectCommand !== undefined && selectArgs.selectCommand !== \"\") {\r\n selectCommand = selectArgs.selectCommand;\r\n }\r\n\r\n EWS.Command.Execute(selectCommand, {\r\n Dialog,\r\n ownerauthenticationid: Dialog.querySelector(\"#ews-report-ownerauthenticationHidden\").value,\r\n search: Dialog.querySelector(\"#ews-report-search\").value,\r\n report: selectArgs.report,\r\n userName: (me.UserName || \"\").toLowerCase(),\r\n DashboardID: args.ReportType,\r\n multipleSelect: selectArgs.multipleSelect,\r\n FilterPivot: selectArgs.FilterPivot,\r\n ReportType: selectArgs.reportType\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-ownerauthenticationHidden\").addEventListener(\"change\", () => {\r\n EWS.Command.Execute(selectCommand, {\r\n Dialog,\r\n ownerauthenticationid: Dialog.querySelector(\"#ews-report-ownerauthenticationHidden\").value,\r\n search: Dialog.querySelector(\"#ews-report-search\").value,\r\n report: selectArgs.report,\r\n userName: (me.UserName || \"\").toLowerCase(),\r\n DashboardID: args.ReportType,\r\n FilterPivot: selectArgs.FilterPivot\r\n });\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-search\").addEventListener(\"keydown\", (event) => {\r\n if (event.key === \"Enter\") {\r\n EWS.Command.Execute(selectCommand, {\r\n Dialog,\r\n ownerauthenticationid: Dialog.querySelector(\"#ews-report-ownerauthenticationHidden\").value,\r\n search: Dialog.querySelector(\"#ews-report-search\").value,\r\n report: selectArgs.report,\r\n userName: (me.UserName || \"\").toLowerCase(),\r\n DashboardID: args.ReportType,\r\n FilterPivot: selectArgs.FilterPivot\r\n });\r\n\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-search\").focus();\r\n\r\n Dialog.addEventListener(\"click\", (event) => {\r\n const target = event.target;\r\n\r\n if (target.tagName.toLowerCase() === \"a\" && target.type === \"report\") {\r\n target.parentNode.querySelector(\"input[name='saved-report']\").click();\r\n } else if (target.tagName.toLowerCase() === \"a\" && target.type === \"folder\") {\r\n target.parentNode.querySelector(\".ews-tree-selector\").click();\r\n } else if (target.classList.contains(\"ews-tree-collapsed\")) {\r\n target.parentNode.querySelector(\".ews-tree-child-node\").style.display = \"block\";\r\n\r\n target.classList.add(\"ews-tree-expanded\");\r\n target.classList.remove(\"ews-tree-collapsed\");\r\n } else if (target.classList.contains(\"ews-tree-expanded\")) {\r\n target.parentNode.querySelector(\".ews-tree-child-node\").style.display = \"none\";\r\n\r\n target.classList.remove(\"ews-tree-expanded\");\r\n target.classList.add(\"ews-tree-collapsed\");\r\n }\r\n });\r\n\r\n Dialog.querySelector(\"#ews-report-search-button\").addEventListener(\"click\", () => {\r\n EWS.Command.Execute(selectCommand, {\r\n Dialog,\r\n ownerauthenticationid: Dialog.querySelector(\"#ews-report-ownerauthenticationHidden\").value,\r\n search: Dialog.querySelector(\"#ews-report-search\").value,\r\n report: selectArgs.report,\r\n userName: (me.UserName || \"\").toLowerCase(),\r\n DashboardID: args.ReportType,\r\n multipleSelect: selectArgs.multipleSelect,\r\n FilterPivot: selectArgs.FilterPivot\r\n });\r\n });\r\n\r\n requestAnimationFrame(() => {\r\n Dialog.querySelector(\"#ews-report-search\").focus();\r\n });\r\n });\r\n });\r\n};\r\n","\"use strict\";\r\n\r\nlet AllowHideAllDivs = true;\r\nlet PageSizeCallback = () => { };\r\nlet PageResizeCallback = () => { };\r\nlet MenuScrollTop;\r\nlet Menu;\r\nlet MenuTop;\r\nlet PageEndMilliseconds = 0;\r\nlet AllowZoom = true;\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction SetupEncompassSiteMapHeader() {\r\n requestIdleCallback(() => {\r\n Menu = document.getElementById(\"Menu\");\r\n MenuTop = document.getElementById(\"MenuTop\");\r\n\r\n if (IsImpersonateUser) {\r\n if (Menu) {\r\n Menu.classList.add(\"MenuCollapsed\");\r\n }\r\n\r\n if (MenuTop) {\r\n MenuTop.classList.add(\"MenuCollapsed\");\r\n }\r\n\r\n const content = document.getElementById(\"Content\");\r\n if (content) {\r\n content.classList.add(\"MenuCollapsed\");\r\n }\r\n\r\n const application = document.querySelector(\"#Header .Application\");\r\n if (application) {\r\n application.classList.add(\"MenuCollapsed\");\r\n }\r\n }\r\n\r\n if (Menu) {\r\n // Task 698176: Removing a user's permission to view a certain dashboard does not remove it from their menu until after they click the 'Refresh' icon\r\n // Task 702904: Dashboard Menu is not showing the correct dashboards when logged in.\r\n const CurrentLocalStorageKey = `DashboardMenuHTML_${parseInt(Math.floor((new Date()) / 86400000))}_${UserID}_${UserType}_${IsImpersonateUser}_Key`;\r\n let DashboardMenuHTML;\r\n try {\r\n DashboardMenuHTML = EC_Fmt.GetLocalStorageValue(CurrentLocalStorageKey);\r\n } catch (e) {\r\n DashboardMenuHTML = \"Cookies Must Be Enabled\";\r\n }\r\n\r\n requestIdleCallback(() => {\r\n if (DashboardMenuHTML !== \"Cookies Must Be Enabled\") {\r\n for (let i = 0, len = localStorage.length; i < len; i++) {\r\n const key = localStorage.key(i);\r\n if (key?.startsWith(\"DashboardMenuHTML_\") && key !== CurrentLocalStorageKey) {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (!DashboardMenuHTML) {\r\n let GetDashboardMenuURL = \"api?APICommand=GetDashboardMenu\";\r\n\r\n if (UserType === \"Guest\" || new Date().getTime() > parseInt(EC_Fmt.GetCookie(\"ExpireTime\"))) {\r\n const token = \"bc1020ae20b607f7318ff7c782c6d8ef\";\r\n GetDashboardMenuURL += `_Guest&APIToken=${token}&EncompassID=${Distributor}&${EC_Fmt.Get_QueryString(\"\", \"DashboardID;DestURL\", false, false)}`;\r\n } else {\r\n // Task 701744: Open QuickLink left menu error happen.\r\n GetDashboardMenuURL += `&${EC_Fmt.Get_QueryString(\"\", \"DashboardID;DashboardVersionID;DestURL;CustomerID;ProductID;ChainID;UserID;SupplierID;APAccountID;RouteID;QuickKey\", true, true)}`;\r\n }\r\n\r\n fetch(GetDashboardMenuURL, {\r\n credentials: \"same-origin\"\r\n }).then(response => response.text()).then((returnHTML) => {\r\n // Task 715352: Menu showing user error Session Expired URL Does not include APIToken\r\n if (returnHTML.startsWith(\"{\")) {\r\n EWS.Login(() => {\r\n window.location.reload(true);\r\n });\r\n } else {\r\n // Task 679154: Home>Menu: URL does not include APIToken and User is not logged on.\r\n WriteDashboardMenuHTML(returnHTML);\r\n\r\n // Task 938582: Error when loading the left side dashboard menu: cannot connect to database server\r\n if (returnHTML.startsWith(\" {\r\n clearTimeout(collapsingTimeout);\r\n if (Menu.classList.contains(\"MenuCollapsed\")) {\r\n expandingTimeout = setTimeout(() => {\r\n Menu.style.width = \"256px\";\r\n Menu.querySelector(\".Content\").style.overflowY = \"auto\";\r\n Menu.classList.add(\"open-temp\");\r\n\r\n const highlightedSection = Menu.querySelector(\".CategoryHighlight.Relative\");\r\n if (highlightedSection) {\r\n highlightedSection.style.background = \"\";\r\n highlightedSection.style.boxShadow = \"\";\r\n\r\n const expandedSubCategory = highlightedSection.querySelector(\"div[id$='Category']\");\r\n if (expandedSubCategory) {\r\n expandedSubCategory.style.display = \"\";\r\n }\r\n }\r\n if (MenuTop) {\r\n MenuTop.style.width = \"256px\";\r\n MenuTop.classList.remove(\"MenuCollapsed\");\r\n MenuTop.classList.add(\"MenuOpened\");\r\n }\r\n }, 450);\r\n }\r\n };\r\n const Menumouseleave = () => {\r\n clearTimeout(expandingTimeout);\r\n if (Menu.style.width && Menu.classList.contains(\"MenuCollapsed\")) {\r\n collapsingTimeout = setTimeout(() => {\r\n CollapseAndUnHighlightMenu();\r\n Menu.style.width = \"\";\r\n Menu.classList.remove(\"open-temp\");\r\n Menu.querySelector(\".Content\").style.overflowY = \"hidden\";\r\n if (MenuTop) {\r\n MenuTop.style.width = \"\";\r\n MenuTop.classList.remove(\"MenuOpened\");\r\n MenuTop.classList.add(\"MenuCollapsed\");\r\n }\r\n }, 450);\r\n }\r\n };\r\n if (MenuTop && !EC_Fmt.isMobile) {\r\n MenuTop.addEventListener(\"mouseenter\", Menumouseenter, {\r\n passive: true\r\n });\r\n MenuTop.addEventListener(\"mouseleave\", Menumouseleave, {\r\n passive: true\r\n });\r\n MenuTop.addEventListener(\"touchmove\", (event) => {\r\n event.stopPropagation();\r\n }, {\r\n passive: true\r\n });\r\n }\r\n\r\n Menu.addEventListener(\"mouseenter\", Menumouseenter, {\r\n passive: true\r\n });\r\n Menu.addEventListener(\"mouseleave\", Menumouseleave, {\r\n passive: true\r\n });\r\n Menu.addEventListener(\"touchmove\", (event) => {\r\n event.stopPropagation();\r\n }, {\r\n passive: true\r\n });\r\n\r\n requestIdleCallback(() => {\r\n Menu.scrollLeft = 0;\r\n });\r\n }\r\n\r\n const MainMenuItemHighlight = document.querySelector(\".MainMenuItemHighlight\");\r\n if (MainMenuItemHighlight) {\r\n if (EC_Fmt.isVisible(MainMenuItemHighlight)) {\r\n MainMenuItemHighlight.scrollIntoView({ behavior: \"auto\", block: \"center\", inline: \"center\" });\r\n } else {\r\n MainMenuItemHighlight.parentElement.parentElement.scrollIntoView({ behavior: \"auto\", block: \"center\", inline: \"center\" });\r\n }\r\n if (MainMenuItemHighlight.classList.contains(\"ews-unshared-menu-item\") && typeof Settings === \"object\") {\r\n const MainMenuItemNoCategory = document.querySelector(\".NoCategory\");\r\n\r\n if (MainMenuItemNoCategory) {\r\n const addViewRoleDiv = document.createElement(\"div\");\r\n addViewRoleDiv.classList.add(\"ActionButtonContainer\");\r\n addViewRoleDiv.setAttribute(\"title\", \"Add View Role\");\r\n addViewRoleDiv.innerHTML = `
Add View Role
`;\r\n\r\n MainMenuItemNoCategory.appendChild(addViewRoleDiv);\r\n }\r\n }\r\n }\r\n\r\n // Task 723415: If the DashboardID is not in the URL, add it so that sharing URLs with others and recently visited works correctly\r\n // Task 959560: Add EncompassID to the URL on test sites to make links to them work better\r\n // Task 1017499: The EC_Fmt.GetURLParameters method will not be processed '#'\r\n EC_Fmt.ReplaceState(window.history.state || {}, document.title, window.location.search + window.location.hash);\r\n\r\n // Task 723415: Add current page to the recently visited list\r\n if (UserType !== \"Guest\") {\r\n EWS.Ready(() => {\r\n requestIdleCallback(() => {\r\n // Task 723415: Setup a mutation observer to catch if the title on the page is updated, need to update the title in the RecentlyVistedPages cache\r\n // Task 1029399: System Error: JavaScript Error: includes/DefaultAll.min.js (1) - TypeError: window.WebKitMutationObserver is not a constructor\r\n const titleObserver = new window.MutationObserver(((mutations) => {\r\n mutations.forEach((mutation) => {\r\n let recentlyVisited = EC_Fmt.GetLocalStorageValue(`RecentlyVisitedPages_${UserID}`);\r\n if (recentlyVisited) {\r\n recentlyVisited = JSON.parse(recentlyVisited);\r\n } else {\r\n recentlyVisited = { pages: [] };\r\n }\r\n const lastIndex = recentlyVisited.pages.length - 1;\r\n if (recentlyVisited.pages[lastIndex].title === \"Table View\") {\r\n recentlyVisited.pages.splice(lastIndex, 1);\r\n }\r\n // Remove eChat notification from the title number\r\n const cleanTitle = mutation.target.textContent.replace(/\\(\\d+\\)$/, \"\");\r\n for (let i = 0; i < recentlyVisited.pages.length; i++) {\r\n if (recentlyVisited.pages[i].title === cleanTitle) {\r\n recentlyVisited.pages.splice(i, 1);\r\n }\r\n }\r\n recentlyVisited.pages.push({ title: cleanTitle, URL: window.location.pathname + window.location.search });\r\n if (recentlyVisited.pages.length > 15) {\r\n recentlyVisited.pages.shift();\r\n }\r\n\r\n EC_Fmt.SetLocalStorageValue(`RecentlyVisitedPages_${UserID}`, JSON.stringify(recentlyVisited));\r\n });\r\n }));\r\n titleObserver.observe(document.querySelector(\"head > title\"), { subtree: true, characterData: true, childList: true });\r\n\r\n // Task 723415: Pushing the current page into the recently visited list\r\n let recentlyVisited = EC_Fmt.GetLocalStorageValue(`RecentlyVisitedPages_${UserID}`);\r\n if (recentlyVisited) {\r\n recentlyVisited = JSON.parse(recentlyVisited);\r\n } else {\r\n recentlyVisited = { pages: [] };\r\n }\r\n // Remove eChat notification from the title number\r\n const cleanTitle = document.title.replace(/\\(\\d+\\)$/, \"\");\r\n for (let i = 0; i < recentlyVisited.pages.length; i++) {\r\n if (recentlyVisited.pages[i].title === cleanTitle) {\r\n recentlyVisited.pages.splice(i, 1);\r\n }\r\n }\r\n recentlyVisited.pages.push({ title: cleanTitle, URL: window.location.pathname + window.location.search });\r\n if (recentlyVisited.pages.length > 15) {\r\n recentlyVisited.pages.shift();\r\n }\r\n EC_Fmt.SetLocalStorageValue(`RecentlyVisitedPages_${UserID}`, JSON.stringify(recentlyVisited));\r\n }, { timeout: 300 });\r\n });\r\n }\r\n }, { timeout: 500 });\r\n}\r\n\r\nAllowZoom = true;\r\n\r\nEWS.Ready(() => {\r\n const innerContent = document.querySelector(\"#Content .Inner\");\r\n\r\n if (innerContent) {\r\n // Performance sensitive code, runs every time a user scrolls, for each pixel scrolled, please performance test if making changes\r\n let elementsHidden = false;\r\n\r\n const debouncedScrollHandler = debounce(() => {\r\n if (!elementsHidden) {\r\n hideAllElements(document.getElementsByClassName(\"ews-menu\"));\r\n hideAllElements(document.getElementsByClassName(\"AutocompleteMenu\"));\r\n hideAllElements(document.querySelectorAll(\"body > .ColumnMenu\"));\r\n hideAllElements(document.getElementsByClassName(\"DateInputCalendar\"));\r\n elementsHidden = true;\r\n }\r\n\r\n EC_Fmt.ReplaceState(\r\n Object.assign(window.history.state || {}, {\r\n scrollTop: innerContent.scrollTop,\r\n scrollLeft: innerContent.scrollLeft\r\n }), \"\"\r\n );\r\n elementsHidden = false;\r\n }, 1500);\r\n\r\n innerContent.addEventListener(\"scroll\", debouncedScrollHandler, {\r\n passive: true\r\n });\r\n }\r\n\r\n const MainLayout = document.getElementById(\"MainLayout\");\r\n\r\n if (MainLayout?.innerHTML.replace(/ /g, \"\") === \"\") {\r\n MainLayout.innerHTML = \" \";\r\n }\r\n\r\n const debouncedResize = debounce(() => ResizeLayout(), 1500);\r\n window.addEventListener(\"resize\", debouncedResize);\r\n\r\n window.addEventListener(\"click\", (event) => {\r\n if (event.button !== 2) {\r\n HideAllDivs(false);\r\n }\r\n });\r\n\r\n // Zoom on mobile\r\n if (EC_Fmt.isMobile) {\r\n let isScale = false;\r\n let dist = 0;\r\n let scale = 1;\r\n const mainLayoutTable = document.getElementById(\"MainLayoutTable\");\r\n\r\n if (mainLayoutTable) {\r\n const zoomables = document.querySelectorAll(\".Zoomable\");\r\n const DashboardElement = document.getElementById(\"Dashboard\");\r\n\r\n innerContent.style.transition = \"transform 0.2s\";\r\n\r\n innerContent.addEventListener(\"touchstart\", (event) => {\r\n if (AllowZoom) {\r\n const originalEvent = event;\r\n\r\n if (originalEvent.touches.length === 2) {\r\n isScale = true;\r\n\r\n dist = Math.sqrt(\r\n (originalEvent.touches[0].pageX - originalEvent.touches[1].pageX) * (originalEvent.touches[0].pageX - originalEvent.touches[1].pageX)\r\n + (originalEvent.touches[0].pageY - originalEvent.touches[1].pageY) * (originalEvent.touches[0].pageY - originalEvent.touches[1].pageY)\r\n );\r\n }\r\n }\r\n }, {\r\n passive: true\r\n });\r\n\r\n innerContent.addEventListener(\"touchmove\", (event) => {\r\n if (isScale && AllowZoom) {\r\n const originalEvent = event;\r\n\r\n if (originalEvent.touches.length < 2 || !originalEvent.touches[0] || !originalEvent.touches[1]) {\r\n return false;\r\n }\r\n\r\n const currentDist = Math.sqrt(\r\n (originalEvent.touches[0].pageX - originalEvent.touches[1].pageX) * (originalEvent.touches[0].pageX - originalEvent.touches[1].pageX)\r\n + (originalEvent.touches[0].pageY - originalEvent.touches[1].pageY) * (originalEvent.touches[0].pageY - originalEvent.touches[1].pageY)\r\n );\r\n\r\n const diff = currentDist - dist;\r\n\r\n if (Math.abs(diff) >= 10) {\r\n const currentScale = scale + 0.0001 * (currentDist - dist);\r\n\r\n if (mainLayoutTable.scrollWidth * currentScale >= window.outerWidth && currentScale <= 1.8) {\r\n if (DashboardElement) {\r\n DashboardElement.style.transform = `scale(${currentScale})`;\r\n DashboardElement.style.transformOrigin = \"0 0\";\r\n DashboardElement.style.width = DashboardElement.offsetWidth / scale * currentScale;\r\n } else {\r\n mainLayoutTable.style.transform = `scale(${currentScale})`;\r\n mainLayoutTable.style.transformOrigin = \"0 0\";\r\n }\r\n\r\n for (let i = 0; i < zoomables.length; i++) {\r\n const zoomable = zoomables[i];\r\n\r\n zoomable.style.transform = `scale(${currentScale})`;\r\n zoomable.style.transformOrigin = \"0 0\";\r\n }\r\n\r\n scale = currentScale;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n return true;\r\n }, {\r\n passive: true\r\n });\r\n\r\n innerContent.addEventListener(\"touchend\", () => {\r\n isScale = false;\r\n dist = 0;\r\n }, {\r\n passive: true\r\n });\r\n }\r\n\r\n const ApplicationVersionLinks = document.querySelectorAll(\".application-versions a\");\r\n for (let i = 0; i < ApplicationVersionLinks.length; i++) {\r\n ApplicationVersionLinks[i].addEventListener(\"click\", () => {\r\n ECP.Dialog.Alert(\"Encompass Mobile download has started. Please exit your browser to view the progress.\");\r\n });\r\n }\r\n }\r\n\r\n // Task 911147: Browser Render time is not accurate on dashboards\r\n PageEndMilliseconds = new Date().getTime();\r\n\r\n const MainLayoutHeader = document.getElementById(\"MainLayoutHeader\");\r\n if (MainLayoutHeader) {\r\n const previousEl = MainLayoutHeader.previousElementSibling;\r\n\r\n if (previousEl?.tagName.toLowerCase() === \"tbody\") {\r\n MainLayoutHeader.parentElement.insertBefore(MainLayoutHeader, previousEl);\r\n }\r\n }\r\n\r\n if (window.history.state && (window.history.state.scrollLeft !== undefined || window.history.state.scrollTop !== undefined)) {\r\n innerContent.scrollTo(window.history.state.scrollLeft, window.history.state.scrollTop);\r\n }\r\n\r\n ShowToolTipMessage();\r\n\r\n CreateSwitchDashboardVersionTypeButton(document.querySelector(\"#Header .Inner .switchVersionTypeContent\"));\r\n\r\n // Task 1038521: Collapse dashboard header tabs when the user scrolls away from the header\r\n if (document.querySelector(\"#MainLayoutTable .HeaderTabsSticky\")) {\r\n document.getElementById(\"MainLayoutTable\").classList.add(\"OverflowInherit\");\r\n }\r\n\r\n // Task 1113290: Move ShowSQL=true logic to save the results into a logs table\r\n const showSQL = EC_Fmt.GetPageParameter(\"ShowSQL\");\r\n if ((showSQL === \"true\" || showSQL === \"True\") && UserType !== \"Guest\") {\r\n requestIdleCallback(() => {\r\n ECP.Dialog.Alert(\"ShowSQL recorded to the System Logs table\");\r\n }, { timeout: 2000 });\r\n }\r\n\r\n const UserMenuToggleInMenu = document.getElementById(\"UserMenuToggleInMenu\");\r\n if (UserMenuToggleInMenu) {\r\n UserMenuToggleInMenu.addEventListener(\"click\", async (e) => {\r\n let UserMenuInMenu = document.getElementById(\"UserMenuInMenu\");\r\n if (!UserMenuInMenu) {\r\n UserMenuInMenu = await GetUserMenuInMenu();\r\n UserMenuInMenu.style.bottom = \"68px\";\r\n UserMenuToggleInMenu.parentElement.insertBefore(UserMenuInMenu, UserMenuToggleInMenu.nextSibling);\r\n }\r\n UserMenuInMenu.ShowMenu(UserMenuToggleInMenu);\r\n requestAnimationFrame(() => {\r\n UserMenuInMenu.style.top = \"\";\r\n });\r\n e.stopPropagation();\r\n });\r\n }\r\n\r\n const OverFlowMenu = document.getElementById(\"OverFlowMenu\");\r\n if (OverFlowMenu) {\r\n OverFlowMenu.addEventListener(\"click\", async (e) => {\r\n let HeaderOverflowMenu = document.getElementById(\"HeaderOverflowMenu\");\r\n if (!HeaderOverflowMenu) {\r\n HeaderOverflowMenu = await GetHeaderOverflowMenu();\r\n OverFlowMenu.parentElement.insertBefore(HeaderOverflowMenu, OverFlowMenu.nextSibling);\r\n SetRenderTime();\r\n }\r\n HeaderOverflowMenu.ShowMenu(OverFlowMenu);\r\n e.stopPropagation();\r\n });\r\n }\r\n});\r\n\r\nasync function GetHeaderOverflowMenu() {\r\n const myRequest = new ECP.EC_Request(\"HeaderOverflowMenu\");\r\n myRequest.SetReturnType(ECP.EC_ReturnType.Text);\r\n if (EC_Fmt.GetPageParameter(\"DashboardID\")) {\r\n myRequest.AddRequestVariable(\"DashboardID\", EC_Fmt.GetPageParameter(\"DashboardID\"));\r\n }\r\n const FavoriteURL = window.location.href.substring(window.location.href.indexOf(\"/Home?\") + 1);\r\n myRequest.AddRequestVariable(\"FavoriteURL\", FavoriteURL);\r\n let HeaderOverflowMenu = await myRequest.Submit();\r\n HeaderOverflowMenu = EC_Fmt.HtmlStrToElement(HeaderOverflowMenu);\r\n HeaderOverflowMenu.addEventListener(\"click\", (event) => {\r\n const target = event.target.matches(\"ecp-list-item\") || event.target.closest(\"ecp-list-item\");\r\n if (target) {\r\n // EC-12307: Overlay mask not removed when tapping download Encompass Mobile\r\n event.target.closest(\"ecp-menu\").CloseMenu();\r\n }\r\n });\r\n return HeaderOverflowMenu;\r\n}\r\n\r\nasync function GetUserMenuInMenu() {\r\n const GetUserDom = document.getElementById(\"UserMenuToggleInMenu\").querySelector(\".UserStyle\");\r\n GetUserDom.querySelector(\".ews-icon-emcaretdown\").classList.add(\"arrowup\");\r\n let UserMenuHtml = ``\r\n + ``\r\n + `${GetUserDom.outerHTML}`;\r\n if (!IsImpersonateUser) {\r\n UserMenuHtml += ``\r\n + ``\r\n + `Profile`\r\n + ``;\r\n } else {\r\n UserMenuHtml += ``\r\n + ``\r\n + `Profile`\r\n + ``\r\n + `Can not use this tool while cloning another user`;\r\n }\r\n\r\n UserMenuHtml += ``;\r\n\r\n if (AuthenticationID > 0 && !IsImpersonateUser) {\r\n UserMenuHtml += ``\r\n + ``\r\n + `Switch Site`\r\n + ``;\r\n } else {\r\n UserMenuHtml += ``\r\n + ``\r\n + `Switch Site`\r\n + ``\r\n + `Can not use this tool while cloning another user`;\r\n }\r\n\r\n UserMenuHtml += ``\r\n + ``\r\n + ``\r\n + `Log out`\r\n + ``\r\n + ``\r\n + `\")`;\r\n UserMenuHtml = EC_Fmt.HtmlStrToElement(UserMenuHtml);\r\n UserMenuHtml.addEventListener(\"click\", (event) => {\r\n const target = event.target.matches(\"ecp-list-item\") || event.target.closest(\"ecp-list-item\");\r\n if (target) {\r\n event.target.closest(\"ecp-menu\").style.display = \"none\";\r\n }\r\n });\r\n return UserMenuHtml;\r\n}\r\n\r\nfunction CreateSwitchDashboardVersionTypeButton(switchVersionTypeContent, isMobile, CurrentSettings) {\r\n let DashboardSetting = null;\r\n if (EC_Fmt.isNull(CurrentSettings) && typeof Settings === \"object\") {\r\n DashboardSetting = Settings;\r\n } else {\r\n DashboardSetting = CurrentSettings;\r\n }\r\n if (typeof DashboardSetting === \"object\" && DashboardSetting.ExistsBetaVersion && switchVersionTypeContent) {\r\n let html;\r\n\r\n if (isMobile) {\r\n html = \"
\"\r\n + \"\"\r\n + \"View Beta Version\"\r\n + \"
\"\r\n + \"
\"\r\n + \"
\"\r\n + \"
\"\r\n + ``\r\n + `
\"\r\n + `${isMobile ? \"\" : \"Beta\"}`\r\n + \"
\"\r\n + \"
\"\r\n + \"
\";\r\n } else {\r\n html = \"
\";\r\n if (!DashboardSetting.EnableBeta) {\r\n html += `Enable Beta`;\r\n } else {\r\n html += `Manage beta`;\r\n }\r\n html += \"
\";\r\n }\r\n\r\n switchVersionTypeContent.innerHTML = html;\r\n\r\n if (!isMobile && !DashboardSetting.EnableBeta && DashboardSetting.ShowBetaDialog) {\r\n CreateEnableBetaDialog();\r\n }\r\n\r\n const OpenManageBeta = document.getElementById(\"OpenManageBeta\");\r\n if (OpenManageBeta) {\r\n OpenManageBeta.addEventListener(\"click\", async () => {\r\n CreateManageBetaDialog(DashboardSetting);\r\n });\r\n }\r\n const switchVersionTypeInput = switchVersionTypeContent.querySelector(\"#switchVersionTypeInput, .ews-menu-item[name='SwitchVersionMenuItem']\");\r\n\r\n if (switchVersionTypeInput) {\r\n switchVersionTypeInput.addEventListener(\"click\", async () => {\r\n // Task 1033298: Adding Google Analytics as a default feature of dashboards\r\n gtag(\"event\", \"switchDashboardVersionType\", { enableBeta: DashboardSetting.EnableBeta });\r\n await EnableBetaVersion(DashboardSetting);\r\n });\r\n }\r\n } else if (switchVersionTypeContent) {\r\n switchVersionTypeContent.innerHTML = \"\";\r\n }\r\n}\r\n\r\nfunction clearDashboardMenuCache() {\r\n // Task 705574: Show More Dashboards button does not respond on iOS Safari\r\n try {\r\n localStorage.removeItem(`DashboardMenuHTML_${parseInt(Math.floor((new Date()) / 86400000))}_${UserID}_${UserType}_${IsImpersonateUser}_Key`);\r\n // Task 916139: Redesigning the public web site with a different menu\r\n localStorage.removeItem(`PublicSiteMenuHTML_${parseInt(Math.floor((new Date()) / 86400000))}_${UserType}`);\r\n } catch (e) {\r\n // Ignore, cookie requirement message will be shown when page refreshes (just after this)\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction setPageBreadcrumbTitle(Breadcrumb, BreadcrumbURL, Title, Button) {\r\n let htmlB = \"\";\r\n if (!EC_Fmt.isNull(BreadcrumbURL) && !EC_Fmt.isNull(Breadcrumb)) {\r\n htmlB += `${Breadcrumb} / `;\r\n } else if (!EC_Fmt.isNull(Breadcrumb)) {\r\n htmlB += `${Breadcrumb} / `;\r\n }\r\n htmlB += ``;\r\n if (EC_Fmt.GetPageParameter(\"Release\")?.toLowerCase() === \"false\") {\r\n htmlB += `Draft`;\r\n }\r\n if (Button) {\r\n htmlB += ``;\r\n }\r\n\r\n const PageBreadcrumb_Title = document.getElementById(\"PageBreadcrumb_Title\");\r\n if (PageBreadcrumb_Title) {\r\n PageBreadcrumb_Title.innerHTML = htmlB;\r\n }\r\n}\r\n\r\nfunction WriteDashboardMenuHTML(DashboardMenuHTML) {\r\n // Task 636615: End of day error\r\n const HeaderMenuLoading = Menu.querySelector(\"#HeaderMenuLoading\");\r\n if (HeaderMenuLoading) {\r\n const currentCategoryName = HighlightMenu(DashboardMenuHTML, HeaderMenuLoading);\r\n\r\n HeaderMenuLoading.id = \"\";\r\n HeaderMenuLoading.setAttribute(\"id\", \"\");\r\n\r\n if (currentCategoryName) {\r\n ToggleMenuCategory(currentCategoryName, true);\r\n }\r\n\r\n if (Menu.classList.contains(\"MenuCollapsed\")) {\r\n CollapseAndUnHighlightMenu();\r\n }\r\n\r\n EncompassMobileItem();\r\n }\r\n\r\n const shareButton = Menu.querySelector(\"#ActionButtonShare\");\r\n\r\n if (shareButton) {\r\n shareButton.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n Load_QuicklinkMenu(shareButton, `Home?${EC_Fmt.Get_QueryString(\" \")}`, \"Dashboard\");\r\n });\r\n }\r\n}\r\n\r\n// Task 1058438: Master Task 1058050: mobile when open Side Menu, page is very narrow and still can use\r\nfunction hideAllElements(elements) {\r\n if (elements) {\r\n for (let i = 0; i < elements.length; i++) {\r\n elements[i].style.display = \"none\";\r\n }\r\n }\r\n}\r\n\r\nfunction CollapseAndUnHighlightMenu() {\r\n const highlightedSection = Menu.querySelector(\".CategoryHighlight.Relative\");\r\n if (highlightedSection) {\r\n const expandedSubCategory = highlightedSection.querySelector(\"div[id$='Category']\");\r\n if (expandedSubCategory) {\r\n expandedSubCategory.style.display = \"none\";\r\n }\r\n }\r\n}\r\n\r\nfunction SetRenderTime() {\r\n const loadTime = document.getElementById(\"PageLoadTime\");\r\n if (loadTime) {\r\n loadTime.textContent = `Server Time: ${PageLoadTime} sec`;\r\n document.body.appendChild(EC_Fmt.HtmlStrToElement(`Time taken for Encompass to create and send the page`));\r\n }\r\n\r\n const renderTime = document.getElementById(\"RenderTime\");\r\n if (renderTime) {\r\n // Task 911147: Browser Render time is not accurate on dashboards\r\n renderTime.textContent = `Browser Render: ${Math.round(Math.abs((PageStartMilliseconds - PageEndMilliseconds) / 1000) * 100) / 100} sec`;\r\n document.body.appendChild(EC_Fmt.HtmlStrToElement(`Time taken for your browser to parse and display the page`));\r\n }\r\n\r\n setInternetSpeed();\r\n}\r\n\r\nfunction setInternetSpeed() {\r\n const internetSpeed = document.getElementById(\"InternetSpeed\");\r\n if (internetSpeed) {\r\n const isLocalhost = window.location.hostname === \"localhost\" || window.location.hostname === \"127.0.0.1\";\r\n\r\n if (isLocalhost) {\r\n internetSpeed.innerHTML = \"Internet Speed: ∞ {localhost}\";\r\n } else if (navigator.connection && navigator.connection.downlink) {\r\n if (navigator.connection.downlink >= 10) {\r\n internetSpeed.textContent = \"Internet Speed: 10+ Mbps\";\r\n } else if (navigator.connection.downlink < 0.75) {\r\n internetSpeed.style.backgroundColor = \"red\";\r\n internetSpeed.textContent = `Internet Speed: ${EC_Fmt.Round(navigator.connection.downlink, 2)} Mbps (Very Slow)`;\r\n } else if (navigator.connection.downlink < 2) {\r\n internetSpeed.style.backgroundColor = \"orange\";\r\n internetSpeed.textContent = `Internet Speed: ${EC_Fmt.Round(navigator.connection.downlink, 2)} Mbps (Slow)`;\r\n } else {\r\n internetSpeed.textContent = `Internet Speed: ${EC_Fmt.Round(navigator.connection.downlink, 2)} Mbps`;\r\n }\r\n\r\n if (navigator.connection.rtt > 250) {\r\n if (EC_Fmt.isNull(internetSpeed.style.backgroundColor)) {\r\n internetSpeed.style.backgroundColor = \"orange\";\r\n }\r\n internetSpeed.textContent += ` (High Latency)`;\r\n }\r\n } else {\r\n internetSpeed.textContent = \"Internet Speed: unknown\";\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated SubmitTo() is deprecated, it is recommended to put the action on the form directly and submit it like normal\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\nfunction SubmitTo(Id, Url) {\r\n const Form = document.getElementById(Id);\r\n\r\n if (Form) {\r\n Form.setAttribute(\"action\", Url);\r\n Form.submit();\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction RegisterPageSizeCallback(Callback) {\r\n if (Callback) {\r\n const CurrentFunction = PageSizeCallback;\r\n\r\n PageSizeCallback = () => {\r\n CurrentFunction();\r\n Callback();\r\n };\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction RegisterPageResizeCallback(Callback) {\r\n if (Callback) {\r\n const CurrentFunction = PageResizeCallback;\r\n\r\n PageResizeCallback = () => {\r\n CurrentFunction();\r\n Callback();\r\n };\r\n }\r\n}\r\n\r\nfunction ResizeLayout(NeedScrollToCurrent) {\r\n let AllowResize = true;\r\n\r\n if (EWS?.AllowResize) {\r\n AllowResize = EWS.AllowResize;\r\n }\r\n\r\n if (EC_Fmt.isMobile) {\r\n const userMenu = document.getElementById(\"ews-BC_EWS_UserMenu-menu\");\r\n if (userMenu && !(userMenu.offsetWidth === 0 && userMenu.offsetHeight === 0)) {\r\n EWS.Command.HideMenu(\"BC_EWS_UserMenu\");\r\n EWS.Command.ShowMenu(\"BC_EWS_UserMenu\", document.querySelector(\"#Header .Inner .LabelButton[name=UserMenu]\"));\r\n }\r\n }\r\n\r\n if (AllowResize) {\r\n EWS.windowInnerHeight = window.innerHeight;\r\n EWS.windowInnerWidth = window.innerWidth;\r\n\r\n if (document.body && document.body.style.position !== \"fixed\") {\r\n PageResizeCallback();\r\n SetLayoutHeight(NeedScrollToCurrent, MenuScrollTop, Menu);\r\n }\r\n }\r\n}\r\n\r\nfunction SetLayoutHeight(NeedScrollToCurrent, NewMenuTop, LeftSideMenu) {\r\n if (!LeftSideMenu) {\r\n LeftSideMenu = Menu;\r\n }\r\n\r\n if (LeftSideMenu) {\r\n if (NeedScrollToCurrent) {\r\n let top = 0;\r\n const MainMenuItemHighlight = LeftSideMenu.querySelector(\".MainMenuItemHighlight\");\r\n if (MainMenuItemHighlight) {\r\n top = MainMenuItemHighlight.getBoundingClientRect().top - LeftSideMenu.getBoundingClientRect().top;\r\n }\r\n\r\n if ((top - LeftSideMenu.outerHeight) > LeftSideMenu.scrollTop) {\r\n top -= LeftSideMenu.outerHeight / 2;\r\n\r\n LeftSideMenu.scrollTop = top;\r\n }\r\n } else {\r\n LeftSideMenu.scrollTop = NewMenuTop;\r\n }\r\n }\r\n\r\n if (EC_Fmt.isMobile) {\r\n const myDashboard = document.getElementById(\"Dashboard\");\r\n\r\n if (myDashboard) {\r\n const MainContent = document.getElementById(\"Content\");\r\n if (Menu?.classList.contains(\"MenuOpened\") && !Menu.classList.contains(\"FullMenu\") && !Menu.classList.contains(\"MenuCollapsed\")) {\r\n MainContent.style.display = `none`;\r\n } else {\r\n // Task 1033489: No list of packaging orders displayed\r\n MainContent.style.display = \"flex\";\r\n }\r\n }\r\n\r\n requestAnimationFrame(() => {\r\n document.querySelector(\"meta[name=viewport]\").setAttribute(\"content\", `height=${window.outerHeight},width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0,user-scalable=no`);\r\n });\r\n } else {\r\n PageSizeCallback();\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction LoadKnowledgeHelpAlerts() {\r\n const KnowledgeHelpAlert = document.getElementById(\"KnowledgeHelpAlert\");\r\n\r\n if (KnowledgeHelpAlert) {\r\n const KnowledgeHelpKey = KnowledgeHelpAlert.getAttribute(\"KnowledgeHelpKey\");\r\n const KnowledgeHelpKeyValue = KnowledgeHelpAlert.getAttribute(\"KnowledgeHelpKeyValue\");\r\n\r\n if (EC_Fmt.isNull(KnowledgeHelpKey) || EC_Fmt.isNull(KnowledgeHelpKeyValue)) {\r\n return;\r\n }\r\n\r\n EWS.VerifySession(() => {\r\n fetch(`api?APICommand=GetKnowledgeHelpAlerts&KnowledgeHelpKey=${KnowledgeHelpKey}&KnowledgeHelpKeyValue=${KnowledgeHelpKeyValue}`, {\r\n credentials: \"same-origin\"\r\n }).then(response => response.json()).then((Data) => {\r\n if (Data.TotalCount && Data.TotalCount !== \"0\") {\r\n KnowledgeHelpAlert.style.display = \"inline-table\";\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nfunction HideAllDivs(DestroyContent) {\r\n if (AllowHideAllDivs) {\r\n const hideableDivs = document.getElementsByClassName(\"Hideable\");\r\n if (hideableDivs.length > 0) {\r\n let includesMobileTouchOverItem = false;\r\n\r\n if (window.MobileCurrentInput) {\r\n for (let i = 0; i < hideableDivs.length; i++) {\r\n if (hideableDivs[i].contains(window.MobileCurrentInput)) {\r\n includesMobileTouchOverItem = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!includesMobileTouchOverItem) {\r\n for (let i = 0; i < hideableDivs.length; i++) {\r\n hideableDivs[i].style.display = \"none\";\r\n hideableDivs[i].classList.remove(\"slide-show\");\r\n if (DestroyContent === true) {\r\n hideableDivs[i].innerHTML = \"\";\r\n }\r\n }\r\n\r\n if (EC_Fmt.isMobile) {\r\n document.getElementById(\"Content\").classList.remove(\"overflow-hidden\");\r\n }\r\n }\r\n }\r\n } else {\r\n AllowHideAllDivs = true;\r\n }\r\n}\r\n\r\nfunction ToggleMainMenu() {\r\n if (UserType !== \"Guest\" && IsImpersonateUser) {\r\n return false;\r\n }\r\n\r\n if (!Menu.classList.contains(\"MenuCollapsed\")) {\r\n if (!EC_Fmt.isMobile) {\r\n document.cookie = \"MenuCollapsed=True;path=/\";\r\n }\r\n SiteMenuToggle(true);\r\n } else {\r\n if (!EC_Fmt.isMobile) {\r\n document.cookie = \"MenuCollapsed=False;path=/\";\r\n }\r\n SiteMenuToggle(false);\r\n }\r\n}\r\n\r\nfunction SiteMenuToggle(visible, LeftSideMenu) {\r\n if (!LeftSideMenu) {\r\n LeftSideMenu = Menu;\r\n }\r\n const BreadCrumbMenu = document.getElementById(\"BreadCrumbMenuArrow\");\r\n Menu.classList.remove(\"open-temp\");\r\n LeftSideMenu.querySelector(\".Content\").removeAttribute(\"style\");\r\n if (BreadCrumbMenu?.querySelector(\"span\")) {\r\n const BreadCrumbMenuIcon = BreadCrumbMenu.querySelector(\"span\");\r\n if (visible) {\r\n BreadCrumbMenuIcon.classList.remove(\"ews-icon-unlock\");\r\n BreadCrumbMenuIcon.classList.add(\"ews-icon-password\");\r\n BreadCrumbMenu.querySelector(\"ecp-list-item-title\").textContent = \"Lock sidebar open\";\r\n } else {\r\n BreadCrumbMenuIcon.classList.remove(\"ews-icon-password\");\r\n BreadCrumbMenuIcon.classList.add(\"ews-icon-unlock\");\r\n BreadCrumbMenu.querySelector(\"ecp-list-item-title\").textContent = \"Auto-collapse sidebar\";\r\n }\r\n }\r\n const Content = document.getElementById(\"Content\");\r\n const headerApplication = document.querySelector(\"#Header .menu-in-header\");\r\n\r\n LeftSideMenu.style.width = \"\";\r\n\r\n const categoryHighlight = document.getElementById(\"MenuInnerContents\").querySelector(\".CategoryHighlight\");\r\n\r\n const mobileMenuMask = LeftSideMenu.parentElement.querySelector(\"#MobileMenuMask\");\r\n if (visible) {\r\n if (EC_Fmt.isMobile) {\r\n // Task 1058438: mobile when open Side Menu, page is very narrow and still can use\r\n const resetPositionAfterAnimationEnd = () => {\r\n if (mobileMenuMask && document.getElementById(\"Menu\").classList.contains(\"MenuCollapsed\")) {\r\n mobileMenuMask.remove();\r\n }\r\n LeftSideMenu.removeEventListener(\"transitionend\", resetPositionAfterAnimationEnd);\r\n };\r\n\r\n LeftSideMenu.addEventListener(\"transitionend\", resetPositionAfterAnimationEnd);\r\n }\r\n if (UserType !== \"Guest\" && !EC_Fmt.isMobile) {\r\n fetch(\"api?APICommand=SetMenuStatus&Collapsed=true\", {\r\n credentials: \"same-origin\"\r\n });\r\n }\r\n LeftSideMenu.classList.add(\"MenuCollapsed\");\r\n LeftSideMenu.classList.remove(\"MenuOpened\");\r\n Content.classList.add(\"MenuCollapsed\");\r\n Content.classList.remove(\"MenuOpened\");\r\n\r\n if (headerApplication && !EC_Fmt.isMobile) {\r\n headerApplication.classList.add(\"MenuCollapsed\");\r\n headerApplication.classList.remove(\"MenuOpened\");\r\n headerApplication.style.width = \"\";\r\n }\r\n\r\n if (categoryHighlight) {\r\n const mainMenuCategory = categoryHighlight.querySelector(\".MainMenuCategory\");\r\n mainMenuCategory.nextElementSibling.style.display = \"none\";\r\n\r\n mainMenuCategory.querySelector(\".ews-icon-emcaretdown\").classList.remove(\"arrowup\");\r\n categoryHighlight.scrollIntoView({ behavior: \"auto\", block: \"center\", inline: \"center\" });\r\n }\r\n } else {\r\n // Task 1058438: mobile when open Side Menu, page is very narrow and still can use\r\n if (EC_Fmt.isMobile) {\r\n if (!mobileMenuMask && !visible) {\r\n const mobileMenuMaskDIV = document.createElement(\"div\");\r\n mobileMenuMaskDIV.id = \"MobileMenuMask\";\r\n mobileMenuMaskDIV.style = \"position:fixed;z-index:199;top:0;left:0;width:100%;height:100%;background-color:var(--neutral-120);opacity:0.08\";\r\n mobileMenuMaskDIV.addEventListener(\"click\", () => { SiteMenuToggle(true); });\r\n LeftSideMenu.parentElement.appendChild(mobileMenuMaskDIV);\r\n }\r\n }\r\n if (UserType !== \"Guest\" && !EC_Fmt.isMobile) {\r\n fetch(\"api?APICommand=SetMenuStatus&Collapsed=false\", {\r\n credentials: \"same-origin\"\r\n });\r\n }\r\n\r\n LeftSideMenu.classList.add(\"MenuOpened\");\r\n LeftSideMenu.classList.remove(\"MenuCollapsed\");\r\n Content.classList.add(\"MenuOpened\");\r\n Content.classList.remove(\"MenuCollapsed\");\r\n\r\n if (headerApplication && !EC_Fmt.isMobile) {\r\n headerApplication.classList.add(\"MenuOpened\");\r\n headerApplication.classList.remove(\"MenuCollapsed\");\r\n }\r\n\r\n if (categoryHighlight) {\r\n categoryHighlight.style.background = \"\";\r\n categoryHighlight.style.boxShadow = \"\";\r\n const mainMenuCategory = categoryHighlight.querySelector(\".MainMenuCategory\");\r\n if (mainMenuCategory.nextElementSibling) {\r\n mainMenuCategory.nextElementSibling.style.display = \"block\";\r\n mainMenuCategory.querySelector(\".ews-icon-emcaretdown\").classList.add(\"arrowup\");\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction HighlightMenu(DashboardMenuHTML, HeaderMenuLoading) {\r\n const dashboardId = EC_Fmt.GetPageParameter(\"DashboardID\");\r\n const tempDiv = document.createElement(\"div\");\r\n\r\n tempDiv.innerHTML = DashboardMenuHTML;\r\n\r\n const currentPrimaryDashboard = tempDiv.querySelector(`.MainMenuPrimaryDashboards[PrimaryDashboardID='${dashboardId}']`);\r\n if (currentPrimaryDashboard) {\r\n currentPrimaryDashboard.classList.add(\"CategoryHighlight\");\r\n }\r\n\r\n const oldCategory = tempDiv.querySelector(\".CategoryHighlight\");\r\n const oldMenuItem = tempDiv.querySelector(\".MainMenuItemHighlight\");\r\n const currentURL = window.location.href.substring(window.location.href.indexOf(\"aspx1\") + 6);\r\n let currentMenuLink = tempDiv.querySelector(`.FavoritesSubcategory a[href*='${currentURL}']`);\r\n\r\n if (!currentMenuLink || currentMenuLink.href.substring(window.location.href.indexOf(\"aspx1\") + 6) !== currentURL) {\r\n currentMenuLink = tempDiv.querySelector(`.MainMenuItem a[href*='Home?DashboardID=${dashboardId}']`);\r\n if (currentMenuLink?.parentElement.classList.contains(\"FavoritesSubcategory\")) {\r\n currentMenuLink = null;\r\n }\r\n } else {\r\n // Task 738573: Edit Dashboard button is grayed out on left side menu and I am the owner.\r\n const dashboardMenuLink = tempDiv.querySelector(`.MainMenuItem:not(.FavoritesSubcategory) a[href*='Home?DashboardID=${dashboardId}']`);\r\n\r\n if (dashboardMenuLink) {\r\n const dashboardEditIDArr = dashboardMenuLink.parentElement.getAttribute(\"dashboardeditidarr\");\r\n\r\n if (dashboardEditIDArr) {\r\n currentMenuLink.parentElement.setAttribute(\"dashboardeditidarr\", dashboardEditIDArr);\r\n }\r\n }\r\n }\r\n\r\n let currentMenuItem = currentMenuLink ? currentMenuLink.parentElement : null;\r\n\r\n if (!currentMenuLink && !currentMenuItem) {\r\n currentMenuItem = tempDiv.querySelector(`.MainMenuItem[dashboardidarr*=\"^${dashboardId}^\"]`);\r\n }\r\n\r\n let currentCategoryName = \"\";\r\n\r\n if (oldCategory) {\r\n const arrow = oldCategory.querySelector(\".arrowup\");\r\n\r\n if (arrow) {\r\n arrow.classList.remove(\"arrowup\");\r\n }\r\n\r\n const oldCategoryHighlight = oldCategory.querySelector(\"div[id*='Category']\");\r\n if (oldCategoryHighlight) {\r\n oldCategoryHighlight.style.display = \"none\";\r\n }\r\n\r\n if (oldMenuItem) {\r\n oldMenuItem.classList.remove(\"MainMenuItemHighlight\");\r\n }\r\n }\r\n\r\n if (currentMenuItem) {\r\n currentMenuItem.classList.add(\"MainMenuItemHighlight\");\r\n currentCategoryName = currentMenuItem.parentElement.id.replace(\"Category\", \"\");\r\n }\r\n\r\n // Task 688388: CRM -> Customer Search Dashboard: Customer Dashboard is Not Taking User Back to Correct Page\r\n const dashboardMenuItemArr = tempDiv.querySelectorAll(\"[dashboardmenufilter]\");\r\n for (let i = 0; i < dashboardMenuItemArr.length; i++) {\r\n const dashboardMenuItem = dashboardMenuItemArr[i];\r\n\r\n let FieldName = \"\";\r\n switch (dashboardMenuItem.getAttribute(\"dashboardmenufilter\")) {\r\n case \"Customer\":\r\n FieldName = \"CustomerID\";\r\n break;\r\n case \"Product\":\r\n FieldName = \"ProductID\";\r\n break;\r\n case \"Chain\":\r\n FieldName = \"ChainID\";\r\n break;\r\n case \"User\":\r\n FieldName = \"UserID\";\r\n break;\r\n case \"Supplier\":\r\n FieldName = \"SupplierID\";\r\n break;\r\n case \"APAccount\":\r\n FieldName = \"APAccountID\";\r\n break;\r\n case \"Route\":\r\n FieldName = \"RouteID\";\r\n break;\r\n }\r\n\r\n if (FieldName !== \"\") {\r\n if (EC_Fmt.isInteger(EC_Fmt.GetPageParameter(FieldName))) {\r\n dashboardMenuItem.href += `&${FieldName}=${EC_Fmt.GetPageParameter(FieldName)}`;\r\n } else if (EC_Fmt.Null2EmptyStr(EC_Fmt.GetPageParameter(\"Parameters\")).indexOf(FieldName) > -1) {\r\n const parameterArr = EC_Fmt.Null2EmptyStr(EC_Fmt.GetPageParameter(\"Parameters\")).split(\"|\");\r\n for (let j = 0; j < parameterArr.length; j++) {\r\n const parsingParameterArr = parameterArr[j].split(\"~\");\r\n if (parsingParameterArr[0].split(\":\")[1] === FieldName) {\r\n dashboardMenuItem.href += `&${FieldName}=${parsingParameterArr[1].split(\":\")[1]}`;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n HeaderMenuLoading.innerHTML += tempDiv.innerHTML;\r\n\r\n return currentCategoryName;\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction ToggleExcelMenu(Button, Name) {\r\n const ExcelMenu = document.getElementById(Name);\r\n\r\n if (ExcelMenu?.offsetWidth === 0 && ExcelMenu.offsetHeight === 0) {\r\n HideAllDivs();\r\n AllowHideAllDivs = false;\r\n\r\n const buttonPosition = Button.getBoundingClientRect();\r\n\r\n ExcelMenu.style.display = \"block\";\r\n ExcelMenu.style.top = `${buttonPosition.top + buttonPosition.height + 3}px`;\r\n ExcelMenu.style.left = `${buttonPosition.left}px`;\r\n ExcelMenu.style.zIndex = \"9999\";\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction ShowSwitchDialog() {\r\n if (AuthenticationID > 0) {\r\n EWS.VerifySession(() => {\r\n fetch(`api?APICommand=CreateSiteSwitchDialog&EncompassID=${Distributor}`, {\r\n credentials: \"same-origin\"\r\n }).then(response => response.json()).then((result) => {\r\n // Task 657698: Clone User / Switch Site vulnerability.\r\n if (result.Tips === undefined) {\r\n // Task 1064395: Change the 'Switch site' modal to be an action type dialog\r\n const Dialog = ECP.Dialog.ShowDialog(\"Switch site\", result.content, {\r\n width: 350,\r\n height: 420,\r\n barPosition: \"top\",\r\n confirmButtonTitle: result.cancel,\r\n confirmButtonAction(dialog) {\r\n ECP.Dialog.CloseDialog(dialog);\r\n }\r\n });\r\n\r\n Dialog.querySelector(\".ews-form-content\").style.cssText += \"width:100%;height:100%;position:relative;box-sizing:border-box;user-select:none\";\r\n\r\n Dialog.querySelector(\".ecp-dialog-confirm-button\").classList.add(\"ecp-dialog-cancel-button\");\r\n Dialog.querySelector(\".ecp-dialog-confirm-button\").classList.remove(\"ecp-dialog-confirm-button\");\r\n\r\n Dialog.querySelector(\"input#SiteSearchInput\").addEventListener(\"keydown\", (event) => {\r\n // Task 949378: Switch Site: Change functionality of hitting enter key after typing EncompassID\r\n const ItemArr = Array.from(document.querySelectorAll(\".database-list-item.show\"));\r\n switch (event.key) {\r\n case \"ArrowUp\":\r\n {\r\n if (!EC_Fmt.isNull(ItemArr)) {\r\n let index = ItemArr.indexOf(document.querySelector(\".database-list-item.show.highlight\"));\r\n if (index <= 0) {\r\n index = ItemArr.length - 1;\r\n } else if (index <= (ItemArr.length - 1)) {\r\n index -= 1;\r\n }\r\n for (let i = 0, len = ItemArr.length; i < len; i++) {\r\n ItemArr[i].classList.remove(\"highlight\");\r\n ItemArr[i].childNodes[0].childNodes[1].style = \"color:var(--neutral-70)\";\r\n }\r\n ItemArr[index].classList.add(\"highlight\");\r\n ItemArr[index].childNodes[0].childNodes[1].style = \"color:var(--neutral-10)\";\r\n\r\n if (ItemArr[index].scrollIntoViewIfNeeded) {\r\n ItemArr[index].scrollIntoViewIfNeeded();\r\n } else {\r\n ItemArr[index].scrollIntoView();\r\n }\r\n }\r\n break;\r\n }\r\n case \"ArrowDown\":\r\n {\r\n if (!EC_Fmt.isNull(ItemArr)) {\r\n let index = ItemArr.indexOf(document.querySelector(\".database-list-item.show.highlight\"));\r\n if (index < (ItemArr.length - 1)) {\r\n index += 1;\r\n } else if (index >= (ItemArr.length - 1)) {\r\n index = 0;\r\n }\r\n for (let i = 0, len = ItemArr.length; i < len; i++) {\r\n ItemArr[i].classList.remove(\"highlight\");\r\n ItemArr[i].childNodes[0].childNodes[1].style = \"color:var(--neutral-70)\";\r\n }\r\n ItemArr[index].classList.add(\"highlight\");\r\n ItemArr[index].childNodes[0].childNodes[1].style = \"color:var(--neutral-10)\";\r\n if (ItemArr[index].scrollIntoViewIfNeeded) {\r\n ItemArr[index].scrollIntoViewIfNeeded();\r\n } else {\r\n ItemArr[index].scrollIntoView();\r\n }\r\n }\r\n break;\r\n }\r\n case \"Enter\":\r\n {\r\n if (!EC_Fmt.isNull(ItemArr)) {\r\n const highlightedItem = document.querySelector(\".database-list-item.show.highlight\");\r\n if (highlightedItem) {\r\n EC_Fmt.TriggerEvent(highlightedItem.getElementsByClassName(\"switch-btn\")[0], \"click\");\r\n } else {\r\n EC_Fmt.TriggerEvent(ItemArr[0].getElementsByClassName(\"switch-btn\")[0], \"click\");\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n\r\n Dialog.querySelector(\"input#SiteSearchInput\").addEventListener(\"keyup\", (event) => {\r\n switch (event.key) {\r\n case \"ArrowUp\":\r\n case \"Enter\":\r\n case \"ArrowDown\":\r\n {\r\n break;\r\n }\r\n default:\r\n {\r\n SiteSwitchSearch(Dialog, event.target.value);\r\n const ItemArr = Array.from(document.querySelectorAll(\".database-list-item.show\"));\r\n if (ItemArr.length > 0) {\r\n if (ItemArr[0].scrollIntoViewIfNeeded) {\r\n ItemArr[0].scrollIntoViewIfNeeded();\r\n } else {\r\n ItemArr[0].scrollIntoView();\r\n }\r\n }\r\n const highlightedItem = document.querySelector(\".database-list-item.show.highlight\");\r\n if (highlightedItem) {\r\n highlightedItem.childNodes[0].childNodes[1].style = \"color:var(--neutral-70)\";\r\n }\r\n for (let i = 0, len = ItemArr.length; i < len; i++) {\r\n ItemArr[i].classList.remove(\"highlight\");\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n\r\n Dialog.querySelector(\"input#SiteSearchInput\").addEventListener(\"paste\", (event) => {\r\n setTimeout(() => {\r\n EC_Fmt.TriggerEvent(event.currentTarget, \"keyup\");\r\n }, 1);\r\n });\r\n\r\n InitSiteSwitchData(Dialog);\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nlet isDialogDragAttached = false;\r\n\r\n/**\r\n * @deprecated PositionDialog() is no longer supported, please use ECP.Dialog in the SDK instead\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\nfunction PositionDialog(Dialog) {\r\n const Mask = document.getElementById(\"DialogMask\");\r\n const clientWidth = document.documentElement.clientWidth;\r\n const clientHeight = document.documentElement.clientHeight;\r\n let Width;\r\n let Height;\r\n\r\n Mask.style.width = `${clientWidth}px`;\r\n\r\n if (EC_Fmt.isMobile) {\r\n Width = clientWidth;\r\n Height = Dialog.outerHeight + Math.round(clientHeight - Dialog.outerHeight) / 2 - 30;\r\n\r\n if (Height > clientHeight) {\r\n Height = clientHeight;\r\n }\r\n\r\n Mask.style.opacity = \"0.3\";\r\n Dialog.style.overflow = \"auto\";\r\n } else {\r\n Width = Dialog?.offsetWidth;\r\n Height = Dialog?.offsetHeight;\r\n\r\n if (Width > window.outerWidth) {\r\n Width = window.outerWidth;\r\n Dialog.style.overflow = \"auto\";\r\n }\r\n\r\n if (Height > window.outerHeight) {\r\n Height = window.outerHeight;\r\n Dialog.style.overflow = \"auto\";\r\n }\r\n }\r\n\r\n let Top = Math.floor((window.outerHeight / 2) - (Height / 2));\r\n let Left = Math.floor((window.outerWidth / 2) - (Width / 2));\r\n\r\n Top = Math.max(Top, 0);\r\n Left = Math.max(Left, 0);\r\n\r\n Dialog.style.minWidth = `${Width}px`;\r\n Dialog.style.height = `${Height}px`;\r\n Dialog.style.marginLeft = \"0\";\r\n Dialog.style.marginTop = \"0\";\r\n Dialog.style.top = `${Top}px`;\r\n Dialog.style.left = `${Left}px`;\r\n Dialog.style.zIndex = \"100000\";\r\n\r\n const SRDOwner = document.getElementById(\"SRDOwner\");\r\n if (SRDOwner) {\r\n SRDOwner.parentElement.style.height = SRDOwner.outerHeight + 2 * EC_Fmt.Null2ZeroInt(SRDOwner.style.borderTopWidth).replace(\"px\", \"\") + 2 * EC_Fmt.Null2ZeroInt(SRDOwner.style.paddingTop).replace(\"px\", \"\") + 1;\r\n }\r\n\r\n const DialogScrollContent = Dialog.querySelector(\".ScrollContent\");\r\n\r\n if (DialogScrollContent) {\r\n const DialogScrollContentTable = DialogScrollContent.querySelector(\"table\");\r\n if (DialogScrollContentTable) {\r\n DialogScrollContentTable.style.border = \"none\";\r\n const DialogScrollContentCells = DialogScrollContentTable.querySelectorAll(\"td\");\r\n for (let i = 0; i < DialogScrollContentCells.length; i++) {\r\n DialogScrollContentCells[i].style.border = \"none\";\r\n DialogScrollContentCells[i].style.borderBottom = \"1px solid var(--neutral-40)\";\r\n }\r\n }\r\n }\r\n\r\n const dragDialog = (handle) => {\r\n if (isDialogDragAttached) {\r\n return;\r\n }\r\n\r\n let currentDialog;\r\n let startX;\r\n let startY;\r\n\r\n handle.addEventListener(\"mousedown\", (event) => {\r\n currentDialog = Dialog;\r\n startX = event.clientX;\r\n startY = event.clientY;\r\n\r\n document.body.style.webkitUserSelect = \"none\";\r\n });\r\n\r\n const MoveDone = () => {\r\n if (currentDialog) {\r\n currentDialog = null;\r\n startX = 0;\r\n startY = 0;\r\n document.body.style.webkitUserSelect = \"auto\";\r\n }\r\n };\r\n const MoveDialog = (e) => {\r\n if (currentDialog) {\r\n let top = (currentDialog.style.top ? parseInt(currentDialog.style.top.replace(\"px\", \"\")) : 0) + e.clientY - startY;\r\n let left = (currentDialog.style.left ? parseInt(currentDialog.style.left.replace(\"px\", \"\")) : 0) + e.clientX - startX;\r\n const topMaxLimit = window.innerHeight - currentDialog.clientHeight - 3;\r\n const leftMaxLimit = window.innerWidth - currentDialog.clientWidth;\r\n\r\n if (top < 0) {\r\n top = 0;\r\n }\r\n if (top > topMaxLimit) {\r\n top = topMaxLimit;\r\n }\r\n if (left < 0) {\r\n left = 0;\r\n }\r\n if (left > leftMaxLimit) {\r\n left = leftMaxLimit;\r\n }\r\n\r\n currentDialog.style.top = `${top}px`;\r\n currentDialog.style.left = `${left}px`;\r\n\r\n startY = e.clientY;\r\n startX = e.clientX;\r\n }\r\n };\r\n\r\n document.addEventListener(\"mousemove\", MoveDialog);\r\n document.addEventListener(\"mouseup\", MoveDone);\r\n\r\n isDialogDragAttached = true;\r\n };\r\n\r\n const DialogContent = document.querySelector(\".DialogContent\");\r\n\r\n if (DialogContent?.offsetWidth > 0 && DialogContent.offsetHeight > 0) {\r\n const DialogHeader = document.querySelector(\".DialogHeader\");\r\n const DialogFooter = document.querySelector(\".DialogFooter\");\r\n if (EC_Fmt.isMobile) {\r\n DialogContent.style.overflow = \"auto\";\r\n }\r\n\r\n DialogFooter.style.width = DialogContent.offsetWidth;\r\n\r\n dragDialog(DialogHeader);\r\n\r\n Dialog.style.height = DialogContent.outerHeight + DialogHeader.offsetHeight + DialogFooter.offsetHeight;\r\n\r\n if (Dialog.outerHeight > clientHeight) {\r\n DialogContent.style.height = `${Height - DialogHeader.offsetHeight - DialogFooter.offsetHeight}px`;\r\n } else {\r\n DialogContent.style.height = \"auto\";\r\n }\r\n\r\n setTimeout(() => {\r\n Dialog.style.height = DialogContent.outerHeight + DialogHeader.offsetHeight + DialogFooter.offsetHeight;\r\n\r\n if (Dialog.outerHeight > clientHeight) {\r\n DialogContent.height(Height - DialogHeader.offsetHeight - DialogFooter.offsetHeight);\r\n } else {\r\n DialogContent.style.height = \"auto\";\r\n }\r\n }, 1000);\r\n } else {\r\n Dialog.classList.add(\"BoxShowNone\");\r\n\r\n const handle = Dialog.querySelector(\".DialogLayout>thead\");\r\n\r\n dragDialog(handle);\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated HideDialog() is no longer supported, please use ECP.Dialog in the SDK instead\r\n */\r\nfunction HideDialog(Name) {\r\n if (Name === \"UrlDialog\") {\r\n document.getElementById(\"UrlFrame\").setAttribute(\"src\", \"about:blank\");\r\n }\r\n\r\n const DialogMask = document.getElementById(\"DialogMask\");\r\n if (DialogMask) {\r\n DialogMask.style.display = \"none\";\r\n }\r\n const myElement = document.getElementById(Name);\r\n if (myElement) {\r\n myElement.style.display = \"none\";\r\n }\r\n const embedElements = document.getElementsByTagName(\"EMBED\");\r\n for (let i = 0; i < embedElements.length; i++) {\r\n embedElements[i].style.display = \"block\";\r\n }\r\n const pdfIframe = document.getElementById(\"pdfIframe\");\r\n if (pdfIframe) {\r\n pdfIframe.style.display = \"block\";\r\n }\r\n\r\n document.body.style.overflowX = \"auto\";\r\n document.body.style.overflowY = \"auto\";\r\n document.body.style.position = \"static\";\r\n document.body.style.minWidth = \"auto\";\r\n\r\n const ScrollPosition = document.scrollPosition;\r\n\r\n if (ScrollPosition) {\r\n window.scrollTo(ScrollPosition[0], ScrollPosition[1]);\r\n }\r\n}\r\n\r\nfunction ToggleMenuCategory(Category, CollapseOtherCategories) {\r\n const CategoryLayer = document.getElementById(`${Category}Category`);\r\n let Collapsed = false;\r\n\r\n // Task 645555: Creating Bills has Java Script error\r\n if (CategoryLayer !== null) {\r\n if (CategoryLayer.offsetWidth === 0 && CategoryLayer.offsetHeight === 0) {\r\n CategoryLayer.parentElement.classList.add(\"CategoryHighlight\");\r\n } else {\r\n Collapsed = true;\r\n CategoryLayer.parentElement.classList.remove(\"CategoryHighlight\");\r\n }\r\n\r\n if (CollapseOtherCategories) {\r\n const OtherCategories = CategoryLayer.parentElement.parentElement.querySelectorAll(\"div div[id$='Category']\");\r\n for (let i = 0; i < OtherCategories.length; i++) {\r\n const category = OtherCategories[i];\r\n if (category.id && CategoryLayer.id !== category.id) {\r\n if (category.offsetWidth === 0 && category.offsetHeight === 0) {\r\n category.parentElement.classList.remove(\"CategoryHighlight\");\r\n } else {\r\n ToggleMenuCategory(category.id.replace(\"Category\", \"\"), false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const CategoryArrow = document.getElementById(`${Category}Arrow`);\r\n\r\n if (Collapsed) {\r\n CategoryLayer.style.display = \"none\";\r\n CategoryArrow.classList.remove(\"arrowup\");\r\n } else {\r\n CategoryLayer.style.display = \"block\";\r\n CategoryArrow.classList.add(\"arrowup\");\r\n }\r\n\r\n if (CategoryLayer.id === \"EncompassMobileCategory\" && !Collapsed) {\r\n EncompassMobileItem();\r\n }\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction OpenApplicationDownload() {\r\n if (document.getElementById(\"EncompassMobileArrow\")) {\r\n if (Menu.classList.contains(\"MenuCollapsed\")) {\r\n ToggleMainMenu();\r\n }\r\n const EncompassMobileCategory = document.getElementById(\"EncompassMobileCategory\");\r\n if (EncompassMobileCategory && getComputedStyle(EncompassMobileCategory).display === \"none\") {\r\n // Task 425424\r\n Menu.scrollTop = 0;\r\n\r\n ToggleMenuCategory(\"EncompassMobile\", true);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated No longer supported, please use EC_Fmt.get_searchOp() directly instead\r\n */\r\nfunction get_searchOp(Value) {\r\n return EC_Fmt.get_searchOp(Value);\r\n}\r\n\r\n/**\r\n * @deprecated No longer supported, please use EC_Fmt.ReplaceAll() directly instead\r\n */\r\nfunction Replace(Value, Find, ReplaceVal) {\r\n return EC_Fmt.ReplaceAll(Value, Find, ReplaceVal);\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction ClockIn() {\r\n let TimeClockActivityID = document.getElementById(\"TimeClockActivityIDHidden\");\r\n if (TimeClockActivityID) {\r\n TimeClockActivityID = TimeClockActivityID.value;\r\n }\r\n if (EC_Fmt.isInteger(TimeClockActivityID)) {\r\n fetch(`Home?LogOnType=ClockIn&TimeClockActivityID=${TimeClockActivityID}`, {\r\n credentials: \"same-origin\"\r\n }).then(response => response.text()).then((Data) => {\r\n if (Data === \"Success\") {\r\n window.location.reload();\r\n } else if (Data === \"Already Clocked In\") {\r\n ECP.Dialog.Alert(\"You are Already Clocked In\");\r\n window.location.reload();\r\n } else {\r\n ECP.Dialog.Alert(\"Unable to Clock In\");\r\n }\r\n });\r\n } else {\r\n ECP.Dialog.Alert(\"You Must Select an Activity\");\r\n }\r\n}\r\n\r\nlet SitesData = {};\r\n\r\nfunction InitSiteSwitchData(dialog) {\r\n SitesData = {};\r\n\r\n EWS.VerifySession(async () => {\r\n // Task 744067: Switch Site:When the switch site is not loaded, an error will be reported when input is input\r\n ECP.Dialog.ShowLoading(\"Loading......\", dialog.firstElementChild);\r\n const myRequest = new ECP.EC_Request(\"GetSiteDatabase\");\r\n myRequest.AddRequestVariable(\"EncompassID\", Distributor);\r\n SitesData = await myRequest.Submit();\r\n\r\n let SitesHTML = ``;\r\n for (let i = 0; i < SitesData.Sites.length; i++) {\r\n const site = SitesData.Sites[i];\r\n SitesHTML += ``\r\n + \"\"\r\n + ` ${site.Name}`\r\n + \"\"\r\n + \"\"\r\n + ` `\r\n + \"\"\r\n + \"\";\r\n }\r\n // Task 443511\r\n if (SitesHTML === \"\") {\r\n SitesHTML += \"No sites available to switch to.\";\r\n }\r\n\r\n dialog.querySelector(\".database-list\").innerHTML = SitesHTML;\r\n ECP.Dialog.HideLoading();\r\n // Task 917191: System Error: JavaScript Error: includes/DefaultNoEchatAll.min.js (1) - Uncaught TypeError: Cannot read property 'length' of undefined\r\n const SiteSearchInput = document.getElementById(\"SiteSearchInput\");\r\n SiteSearchInput.removeAttribute(\"disabled\");\r\n if (SiteSearchInput) {\r\n SiteSearchInput.focus();\r\n }\r\n });\r\n}\r\n\r\nfunction SiteSwitchSearch(dialog, search) {\r\n // Task 752570: User with AllDatabases permission did not get an AuthenticationsSites record created for the Founders database\r\n const myItemArr = dialog.querySelectorAll(`.database-list-item`);\r\n if (!EC_Fmt.isNull(search)) {\r\n for (let i = 0; i < SitesData.Sites.length; i++) {\r\n if (SitesData.Sites[i].Name.toLowerCase().indexOf(search.toLowerCase()) > -1) {\r\n myItemArr[i].classList.add(\"show\");\r\n myItemArr[i].classList.remove(\"hidden\");\r\n } else {\r\n myItemArr[i].classList.add(\"hidden\");\r\n myItemArr[i].classList.remove(\"show\");\r\n }\r\n }\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction SwitchSiteButton(site) {\r\n let SiteSwitchForm = document.getElementById(\"SiteSwitchForm\");\r\n if (!SiteSwitchForm) {\r\n SiteSwitchForm = document.createElement(\"form\");\r\n SiteSwitchForm.id = \"SiteSwitchForm\";\r\n SiteSwitchForm.name = \"SiteSwitchForm\";\r\n SiteSwitchForm.action = \"Home?LogOnType=SwitchSite\";\r\n SiteSwitchForm.method = \"post\";\r\n const InputArr = EC_Fmt.HtmlStrToElement(`
`);\r\n SiteSwitchForm.appendChild(InputArr);\r\n document.body.appendChild(SiteSwitchForm);\r\n }\r\n // AuthenticationSiteID\r\n document.getElementById(\"SiteSwitchHidden\").value = SitesData.Sites[site].ID;\r\n // EncompassID\r\n document.getElementById(\"SiteSwitchHiddenName\").value = SitesData.Sites[site].Name;\r\n // Domain\r\n document.getElementById(\"DomainHiddenName\").value = SitesData.Sites[site].URL;\r\n if ((window.event.ctrlKey || window.event.metaKey) && SiteSwitchForm) {\r\n SiteSwitchForm.setAttribute(\"target\", \"_blank\");\r\n }\r\n SiteSwitchForm.submit();\r\n if (SiteSwitchForm) {\r\n SiteSwitchForm.setAttribute(\"target\", \"_self\");\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nasync function ViewNewDashboards(ShowUnshared) {\r\n ECP.Dialog.ShowLoading();\r\n const mySetShowUnsharedDashboardRequest = new ECP.EC_Request(\"Dashboard_SetShowUnsharedDashboard\");\r\n mySetShowUnsharedDashboardRequest.AddRequestVariable(\"ShowUnshared\", ShowUnshared);\r\n await mySetShowUnsharedDashboardRequest.Submit();\r\n\r\n clearDashboardMenuCache();\r\n window.location.reload();\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nasync function ShowHiddenDashboards(ShowDashboards) {\r\n ECP.Dialog.ShowLoading();\r\n const mySetShowDefaultDashboardRequest = new ECP.EC_Request(\"Dashboard_SetShowDefaultDashboard\");\r\n mySetShowDefaultDashboardRequest.AddRequestVariable(\"ShowHidden\", ShowDashboards);\r\n await mySetShowDefaultDashboardRequest.Submit();\r\n\r\n clearDashboardMenuCache();\r\n window.location.reload();\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nasync function ShowOtherSiteDashboard(ShowOther) {\r\n ECP.Dialog.ShowLoading();\r\n const mySetShowOtherSiteDashboardRequest = new ECP.EC_Request(\"Dashboard_SetShowOtherSiteDashboard\");\r\n mySetShowOtherSiteDashboardRequest.AddRequestVariable(\"ShowOther\", ShowOther);\r\n await mySetShowOtherSiteDashboardRequest.Submit();\r\n\r\n clearDashboardMenuCache();\r\n window.location.reload();\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction ShowHideFilters() {\r\n const content = document.getElementById(\"FilterContent\");\r\n const TableFilter = document.getElementById(\"TableFilter\");\r\n\r\n if (content && TableFilter) {\r\n if (!(content.offsetWidth === 0 && content.offsetHeight === 0)) {\r\n TableFilter.classList.add(\"ews-icon-plus-square-o\");\r\n TableFilter.classList.remove(\"ews-icon-minus-square-o\");\r\n } else {\r\n TableFilter.classList.add(\"ews-icon-minus-square-o\");\r\n TableFilter.classList.remove(\"ews-icon-plus-square-o\");\r\n }\r\n\r\n content.style.display = (content.style.display === \"none\") ? \"block\" : \"none\";\r\n }\r\n}\r\n\r\n// Task 941168: Quickbooks Online sync shows blank page while running\r\nasync function WriteEncompassMobileItemHtml(clientApplication, clientOS, clientOSVersion) {\r\n const EncompassMobileCategory = document.getElementById(\"EncompassMobileCategory\");\r\n EncompassMobileCategory.innerHTML = \"
loading...
\";\r\n\r\n const myRequest = new ECP.EC_Request(\"GetEncompassMobileList\");\r\n myRequest.AddRequestVariable(\"ClientApplication\", clientApplication);\r\n myRequest.AddRequestVariable(\"ClientOS\", clientOS);\r\n myRequest.AddRequestVariable(\"ClientOSVersion\", clientOSVersion);\r\n\r\n const data = await myRequest.Submit();\r\n let contentHtml = \"\";\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n contentHtml += `

${item.ClientApplication}

`;\r\n contentHtml += ``;\r\n }\r\n\r\n EncompassMobileCategory.innerHTML = contentHtml;\r\n}\r\n\r\nfunction EncompassMobileItem() {\r\n const EncompassMobileCategory = document.getElementById(\"EncompassMobileCategory\");\r\n const isEmptyContent = EncompassMobileCategory?.innerHTML.trim() === \"\";\r\n const isMobileDevice = navigator.maxTouchPoints > 0;\r\n\r\n if (EC_Fmt.isAndroid || EC_Fmt.isIOS) {\r\n if (isEmptyContent) {\r\n EncompassMobileCategory.innerHTML = \"
loading...
\";\r\n\r\n // Task 960025: Log in window appears in front of report after using a quick link that has required login = false\r\n if (!IsImpersonateUser) {\r\n EWS.VerifySession(() => {\r\n fetch(\"api?APICommand=GetApplicationsCategoryHtml\", {\r\n credentials: \"same-origin\"\r\n }).then(response => response.text()).then((result) => {\r\n EncompassMobileCategory.innerHTML = result;\r\n });\r\n });\r\n }\r\n }\r\n } else if (navigator.userAgent.toLowerCase().indexOf(\"mac\") > 0 && isMobileDevice) {\r\n if (isEmptyContent) {\r\n WriteEncompassMobileItemHtml(6, 2, 13);\r\n }\r\n } else if (navigator.userAgent.toLowerCase().indexOf(\"chrome\") > 0 && isMobileDevice && !/Windows NT \\d+\\.\\d+; Win\\d+; x\\d+/.test(navigator.userAgent)) {\r\n if (isEmptyContent) {\r\n WriteEncompassMobileItemHtml(7, 3, 7);\r\n }\r\n } else if (document.querySelector(\"#Menu .encompass-mobile\")) {\r\n document.querySelector(\"#Menu .encompass-mobile\").remove();\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction ShareButtonHandle(shareButton, event) {\r\n if (shareButton) {\r\n event.stopPropagation();\r\n Load_QuicklinkMenu(shareButton, `Home?${EC_Fmt.Get_QueryString(\" \")}`, \"Dashboard\");\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction displayCommandMenu(name, ele, event) {\r\n event.stopPropagation();\r\n EWS.Command.ShowMenu(name, ele);\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction ShowReMindMeDialog() {\r\n EWS.VerifySession(() => {\r\n const dateTimeNow = EC_Fmt.DateTimeParseFormat(EC_Fmt.ScreenFmt(new Date(), ECP.DataType._DateTime));\r\n const content = `
`\r\n + `
Remind Me`\r\n + `
`\r\n + ``\r\n + `
`\r\n + ``\r\n + ` Set a date and time in the dialog below`\r\n + `
and the Remind Me feature`\r\n + `
will send you an eChat at that time`\r\n + `
with a link that takes you`\r\n + `
back to the page you are on right now.`\r\n + `
`\r\n + `
`\r\n + `
`\r\n + `
`\r\n + ` `\r\n + `
`\r\n + `
`\r\n + `
Reminder Date/Time
`\r\n + `
`\r\n + `
${ECP.HTML.DateTimeInput(\"myDateTime\", \"DateTimeField\", true, dateTimeNow, \"Current Date Time\", 1, 290, true, dateTimeNow)}
`;\r\n const dialog = ECP.Dialog.ShowDialog(\"Remind Me\", content, {\r\n width: 350,\r\n height: 280,\r\n confirmButtonTitle: \"Set Reminder\",\r\n async confirmButtonAction() {\r\n ECP.Dialog.ShowLoading();\r\n\r\n const date = dialog.querySelector(\"#DateTimeField\").value;\r\n const title = dialog.querySelector(\"#remind\").value;\r\n if (!date || !title) {\r\n ECP.Dialog.HideLoading();\r\n ECP.Dialog.Alert(\"Please input information.\");\r\n return;\r\n }\r\n\r\n const delayRequest = new ECP.EC_Request(\"SendRemindMeEChatMessage\");\r\n\r\n delayRequest.AddRequestVariable(\"DelayedSendTime\", EC_Fmt.DateTimeParseFormat(date), ECP.EC_Verb.Post);\r\n delayRequest.AddRequestVariable(\"Title\", title, ECP.EC_Verb.Post);\r\n delayRequest.AddRequestVariable(\"Url\", window.location.href, ECP.EC_Verb.Post);\r\n const message = await delayRequest.Submit();\r\n if (message.State === \"Success\") {\r\n // Task 1024699: Remind Me: Use Snackbar notification instead of pop-up after scheduling a reminder\r\n ECP.HTML.Snackbar(\"Remind Me Event has been created.\", \"Success\");\r\n } else {\r\n ECP.Dialog.Alert(message.errors[0].detail);\r\n }\r\n ECP.Dialog.HideLoading();\r\n }\r\n });\r\n });\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction ShowBetaFeedbackDialog() {\r\n if (AuthenticationID > 0) {\r\n EWS.VerifySession(() => {\r\n // Task 1064388: UI Adjustments for the submit feedback modal\r\n const UserName = document.querySelector(\"div [name='UserMenu']\").innerText.split(\"@\")[0];\r\n const content = ``\r\n + `This feedback should pertain to the beta version of this dashboard. For all other questions/comments, please`\r\n + ` create a task.`\r\n + ``\r\n + `
`\r\n + `
`\r\n + ` Dashboard`\r\n + ` ${document.head.querySelector(\"title\").innerText}`\r\n + `
`\r\n + `
`\r\n + ` Your name`\r\n + ` ${UserName} `\r\n + `
`\r\n + `
`\r\n + ` `\r\n + `
`\r\n + `
`;\r\n\r\n const Dialog = ECP.Dialog.ShowDialog(\"Submit beta dashboard feedback\", content, {\r\n width: 560,\r\n barPosition: \"top\",\r\n cancelButtonTitle: \"Cancel\",\r\n confirmButtonTitle: \"Submit Feedback\",\r\n async confirmButtonAction() {\r\n ECP.Dialog.ShowLoading();\r\n // Get Dashboard and UserData\r\n const myDashboardData = new ECP.EC_TableView(\"Dashboards\");\r\n myDashboardData.AddSubTableJoinID(\"Dashboards_Applications\");\r\n myDashboardData.AddSubTableColumn(\"Dashboards_Applications\", \"Application\");\r\n myDashboardData.AddFilter(\"DashboardID\", EC_Fmt.GetPageParameter(\"DashboardID\"), ECP.EC_Operator.Equals);\r\n const results = await myDashboardData.GetResults();\r\n const myRecordSet = new ECP.EC_Recordset(results).Records[0];\r\n\r\n // Create Task\r\n let FeedbackDetail = Dialog.querySelector(\"#FeedbackDetail\").value;\r\n FeedbackDetail += `

User:${UserName}
EncompassID:${Distributor}`;\r\n FeedbackDetail = `Beta Dashboard Feedback:
${FeedbackDetail}`;\r\n\r\n const myRequest = new ECP.EC_Request(\"BI_CreateTask\");\r\n\r\n myRequest.AddRequestVariable(\"Detail\", FeedbackDetail, ECP.EC_Verb.Get);\r\n myRequest.AddRequestVariable(\"Task\", `Beta Dashboard feedback submitted for the ${myRecordSet.Dashboard} dashboard in the ${EC_Fmt.RemoveHTMLFromStr(myRecordSet.ApplicationID)} application`, ECP.EC_Verb.Get);\r\n myRequest.AddRequestVariable(\"AuthenticationID\", myRecordSet.OwnerAuthenticationID_DBValue, ECP.EC_Verb.Get);\r\n myRequest.SetReturnType(ECP.EC_ReturnType.Json);\r\n\r\n const data = await myRequest.Submit();\r\n const TaskID = data.TaskID;\r\n\r\n ECP.Dialog.HideLoading();\r\n if (TaskID) {\r\n ECP.Dialog.Alert(\"A Task has been created\");\r\n } else {\r\n ECP.Dialog.Alert(\"Task failed to be sent to support, please contact support your feedback or log a task at EncompassTech.com\");\r\n }\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nfunction ShowToolTipMessage() {\r\n const tipContainers = document.querySelectorAll(\".tip-container\");\r\n for (let i = 0; i < tipContainers.length; i++) {\r\n tipContainers[i].addEventListener(\"mouseenter\", () => {\r\n const tipMessage = tipContainers[i].querySelector(\".tip-description\");\r\n tipMessage.style.display = \"block\";\r\n // Task 764637: Replace the Top Tips icon and make the pop-up dialog fixed pop-up display position in UI-Kit\r\n if (window.innerWidth - tipContainers[i].getBoundingClientRect().left > 222) {\r\n tipMessage.style.left = 0;\r\n } else {\r\n tipMessage.style.right = 0;\r\n }\r\n });\r\n\r\n tipContainers[i].addEventListener(\"mouseleave\", () => {\r\n const tipMessage = tipContainers[i].querySelector(\".tip-description\");\r\n tipMessage.style.display = \"none\";\r\n });\r\n }\r\n}\r\n\r\n// Task 1060296: Standardizing javascript Dialogs: Need to delete the code for the old SiteMapHeader.js: ShowDialog()\r\n// eslint-disable-next-line no-unused-vars\r\nfunction EditLanguageString() {\r\n let url = `Home?DashboardID=100101&Action=EditColumn&TableEdit=LanguageStrings&Column=TranslationString&SelectMaxRecords=5000&TableName=LanguageStrings&SelectDisplayInParent=LanguageString,Language,OnMobile,TranslationString,TimeUpdated,UpdatedBy,TimeCreated,CreatedBy&Search=Language~${EC_Fmt.userLanguage}|LanguageString~`;\r\n url += encodeURIComponent(Object.keys(EC_Fmt.LocaleStrings).map(key => `${key}`).join(\"^\"));\r\n url += `&`;\r\n window.open(url);\r\n}\r\n\r\nfunction CreateEnableBetaDialog(ShowBeta) {\r\n const EnableBeta = document.getElementById(\"EnableBeta\");\r\n const currentTab = document.querySelector(\".TableViewTabContainer .TableViewPageTab.Active\");\r\n let DashboardName = document.head.querySelector(\"title\").innerText;\r\n let DashboardSetting = null;\r\n if (currentTab?.getAttribute(\"dashboardid\") && currentTab?.getAttribute(\"dashboardid\") !== ECP.CommonDashboards.TableView.toString()) {\r\n DashboardSetting = {\r\n DashboardID: EC_Fmt.Null2ZeroInt(currentTab.getAttribute(\"dashboardid\")),\r\n ExistsBetaVersion: currentTab.getAttribute(\"existsbetaversion\") === \"true\",\r\n EnableBeta: currentTab.getAttribute(\"enablebeta\") === \"true\",\r\n ShowBetaDialog: currentTab.getAttribute(\"showbetadialog\") === \"true\",\r\n BetaType: EC_Fmt.Null2ZeroInt(currentTab.getAttribute(\"betatype\"))\r\n };\r\n DashboardName = currentTab.innerText;\r\n } else {\r\n DashboardSetting = Settings;\r\n }\r\n if (EnableBeta) {\r\n setTimeout(() => {\r\n EnableBeta.style.height = \"0\";\r\n EnableBeta.style.padding = \"0\";\r\n setTimeout(() => {\r\n EnableBeta.remove();\r\n }, 400);\r\n }, 150);\r\n if (ShowBeta) {\r\n const myRequest = new ECP.EC_Request(\"Dashboard_SwitchDashboardVersionType\");\r\n myRequest.AddRequestVariable(\"DashboardID\", DashboardSetting.DashboardID);\r\n myRequest.AddRequestVariable(\"ShowBetaDialog\", !ShowBeta);\r\n myRequest.Submit();\r\n }\r\n } else {\r\n const BetaDescriptions = [\r\n { TypeID: 1, Description: \"Updates to the layout and visuals of each page provide a smooth, intuitive user experience.\", imgUrl: \"https://cdn.e8.co/GlobalDocs/615e5cc60a7aa01c5bbf55e9df19aab0.svg\" },\r\n { TypeID: 2, Description: \"Similar pages, workflows, and views are now grouped together so you can easily find what you need when you need it.\", imgUrl: \"https://cdn.e8.co/GlobalDocs/c77343d1d87be1611180071352903c37.svg\" },\r\n { TypeID: 3, Description: \"Refreshed branding and usability enable seamless flow from page to page.\", imgUrl: \"https://cdn.e8.co/GlobalDocs/11d677d702f87c9653b901b6161d69a1.svg\" },\r\n { TypeID: 4, Description: \"Exciting new features provide enhanced capabilities.\", imgUrl: \"https://cdn.e8.co/GlobalDocs/81c12a7a0a602de8eca65ff4ab30ffb5.svg\" },\r\n { TypeID: 5, Description: \"Important and exclusive data is now more accessible than ever.\", imgUrl: \"https://cdn.e8.co/GlobalDocs/2e27e6ab04d91a9d722a30546379b86e.svg\" }\r\n ];\r\n\r\n const BetaDescription = BetaDescriptions.find(x => x.TypeID === DashboardSetting.BetaType);\r\n\r\n const html = `
`\r\n + `
`\r\n + `
`\r\n + `
Try the beta ${DashboardName}
`\r\n + `
${BetaDescription.Description}
`\r\n + `
`\r\n + `Enable beta`\r\n + `Not right now`\r\n + `
`\r\n + `
`\r\n + `
`;\r\n\r\n document.getElementById(\"EnableBetaBtn\").parentNode.innerHTML += html;\r\n document.getElementById(\"EnableBetaVersion\").addEventListener(\"click\", async () => {\r\n const myRequest = new ECP.EC_Request(\"Dashboard_SwitchDashboardVersionType\");\r\n myRequest.AddRequestVariable(\"DashboardID\", DashboardSetting.DashboardID);\r\n myRequest.AddRequestVariable(\"ShowBetaDialog\", false);\r\n await myRequest.Submit();\r\n await EnableBetaVersion(DashboardSetting);\r\n });\r\n\r\n document.getElementById(\"CancelBetaVersion\").shadowRoot.querySelector(\"Button\").style = \"background:var(--neutral-90);color:var(--neutral-10);border:0\";\r\n requestAnimationFrame(() => {\r\n const enableBetaDialog = document.getElementById(\"EnableBeta\");\r\n enableBetaDialog.style.height = \"\";\r\n enableBetaDialog.style.padding = \"\";\r\n });\r\n }\r\n}\r\n\r\nasync function EnableBetaVersion(DashboardSetting) {\r\n ECP.Dialog.ShowLoading();\r\n\r\n const myRequest = new ECP.EC_Request(\"Dashboard_SwitchDashboardVersionType\");\r\n\r\n myRequest.AddRequestVariable(\"DashboardID\", DashboardSetting.DashboardID);\r\n myRequest.AddRequestVariable(\"EnableBeta\", !DashboardSetting.EnableBeta);\r\n\r\n const data = await myRequest.Submit();\r\n\r\n if (data.status === \"success\") {\r\n window.location.reload();\r\n }\r\n}\r\n\r\nasync function CreateBetaTask(Dialog) {\r\n let FeedbackDetail = Dialog.querySelector(\"#BetaDetail\").value;\r\n\r\n if (FeedbackDetail) {\r\n // Get Dashboard and UserData\r\n const UserName = document.querySelector(\"div [name='UserMenu']\").innerText.split(\"@\")[0];\r\n // EC-10000: Submitting feedback for the Beta is throwing an error when submitting if you select 'Keep Using the Beta' option\r\n const myDashboardData = new ECP.EC_Request(\"Get_Dashboard_Information\");\r\n myDashboardData.AddRequestVariable(\"DashboardID\", EC_Fmt.GetPageParameter(\"DashboardID\"));\r\n\r\n const result = await myDashboardData.Submit();\r\n\r\n if (EC_Fmt.isNull(result.ErrorMessage)) {\r\n FeedbackDetail += `

User:${UserName}
EncompassID:${Distributor}`;\r\n FeedbackDetail = `Beta Dashboard Feedback:
${FeedbackDetail}`;\r\n // Create Task\r\n let TaskTitle = `Beta Dashboard feedback submitted for the ${result.Rows[0].Dashboard} dashboard`;\r\n if (!EC_Fmt.isNull(result.Rows[0].Application)) {\r\n TaskTitle += ` in the ${EC_Fmt.RemoveHTMLFromStr(result.Rows[0].Application)} application`;\r\n }\r\n const myRequest = new ECP.EC_Request(\"BI_CreateTask\");\r\n myRequest.AddRequestVariable(\"Detail\", FeedbackDetail, ECP.EC_Verb.Get);\r\n myRequest.AddRequestVariable(\"Task\", TaskTitle, ECP.EC_Verb.Get);\r\n myRequest.AddRequestVariable(\"AuthenticationID\", result.Rows[0].OwnerAuthenticationID, ECP.EC_Verb.Get);\r\n myRequest.SetReturnType(ECP.EC_ReturnType.Json);\r\n await myRequest.Submit();\r\n } else {\r\n ECP.Dialog.Alert(result.ErrorMessage);\r\n }\r\n }\r\n}\r\n\r\nfunction CreateManageBetaDialog(DashboardSetting) {\r\n const currentTab = document.querySelector(\".TableViewTabContainer .TableViewPageTab.Active\");\r\n let DashboardName = document.head.querySelector(\"title\").innerText;\r\n if (currentTab) {\r\n DashboardName = currentTab.innerText;\r\n }\r\n let htmlB = `Thanks for trying out beta ${DashboardName}! We’re always trying out new things and trying to find new ways to push the envelope.
`;\r\n htmlB += `
Your feedback is invaluable in order to continue providing great software experiences. Please feel free to use the box below to tell us about your experience with beta ${DashboardName}.
`;\r\n htmlB += ``;\r\n const dialog = ECP.Dialog.ShowDialog(\r\n \"Manage beta experience\",\r\n htmlB,\r\n {\r\n width: 390,\r\n height: 490,\r\n barPosition: \"top\",\r\n disableButtons: true\r\n }\r\n );\r\n const footer = dialog.querySelector(\".ecp-dialog-footer\");\r\n htmlB = `Keep using the beta`;\r\n htmlB += `Revert to original`;\r\n footer.innerHTML = htmlB;\r\n\r\n dialog.querySelector(\"#KeepBeta\").addEventListener(\"click\", async () => {\r\n await CreateBetaTask(dialog);\r\n ECP.Dialog.CloseDialog(dialog);\r\n });\r\n\r\n dialog.querySelector(\"#RevertOriginal\").addEventListener(\"click\", async () => {\r\n await CreateBetaTask(dialog);\r\n await EnableBetaVersion(DashboardSetting);\r\n });\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction refreshMenu() {\r\n EWS.ClearMenuCache(() => {\r\n clearDashboardMenuCache();\r\n window.location.reload(true);\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction OnClick_ToggleCheckboxes(Value, InputForm) {\r\n const form = document.getElementById(InputForm);\r\n if (form) {\r\n const checkboxes = form.querySelectorAll(\"input[type='checkbox']\");\r\n for (let i = 0; i < checkboxes.length; i++) {\r\n checkboxes[i].checked = Value;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated OnClick_ToggleCheckboxesBarcodes() is deprecated, use ecp-checkbox instead\r\n */\r\nfunction OnClick_ToggleCheckboxesBarcodes(Value, InputForm) {\r\n const form = document.getElementById(InputForm);\r\n if (form) {\r\n const checkboxes = form.querySelectorAll(\"input[type='checkbox']\");\r\n for (let i = 0; i < checkboxes.length; i++) {\r\n checkboxes[i].checked = Value;\r\n // Task 660029: Bar Codes: Select all button does not select all.\r\n if (checkboxes[i].value) {\r\n ToggleCheckboxes(checkboxes[i].value);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction ToggleCheckboxes(ID) {\r\n if (ID === \"default\" || ID === \"on\") {\r\n // Skip\r\n } else if (document.getElementById(`${ID}_checkbox`).checked === true) {\r\n document.getElementById(`${ID}_textbox`).value = \"1\";\r\n } else {\r\n document.getElementById(`${ID}_textbox`).value = \"\";\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated ToggleTextboxes() is deprecated, use ecp-checkbox instead\r\n */\r\nfunction ToggleTextboxes(ID) {\r\n // Task 348479\r\n const inputTextBox = document.getElementById(`${ID}_textbox`);\r\n EC_Fmt.InputFmt(inputTextBox, ECP.DataType._Integer, 12, false);\r\n\r\n if (inputTextBox.value !== \"\") {\r\n document.getElementById(`${ID}_checkbox`).checked = true;\r\n } else {\r\n document.getElementById(`${ID}_checkbox`).checked = false;\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated OnClick_CheckCheckboxes() is deprecated, use ecp-checkbox instead\r\n */\r\nfunction OnClick_CheckCheckboxes(InputForm) {\r\n let IsChecked = false;\r\n const InputFormElement = document.getElementById(InputForm);\r\n\r\n if (InputFormElement != null) {\r\n const InputElements = InputFormElement.querySelectorAll(\"input[type='checkbox']\");\r\n for (let i = 0; i < InputElements.length; i++) {\r\n if (InputElements[i].checked) {\r\n IsChecked = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (IsChecked) {\r\n InputFormElement.submit();\r\n } else {\r\n ECP.Dialog.Alert(\"You must first select at least one record.\");\r\n }\r\n\r\n return IsChecked;\r\n}\r\n\r\n/**\r\n * @deprecated OnClick_CheckRadioButton() is deprecated, use ecp-checkbox instead\r\n */\r\nfunction OnClick_CheckRadioButton(InputForm) {\r\n document.getElementById(InputForm).submit();\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction OnClick_CheckAll(checkbox) {\r\n const tableID = checkbox.closest(\"table\").id;\r\n const InputElements = document.getElementById(tableID).querySelectorAll(\"input[type='checkbox']\");\r\n for (let i = 0; i < InputElements.length; i++) {\r\n InputElements[i].checked = checkbox.checked;\r\n }\r\n}\r\n"]}