{"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","document","createElement","classList","add","prepend","NodeArray","parentNode","forEach","node","click","TriggerEvent","ownerNodeSet","Set","checkedInputArr","querySelectorAll","checkedInput","ownerNode","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","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","HtmlStrToElement","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","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","toolTip","body","renderTime","round","PageStartMilliseconds","renderToolTip","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","cancelButtonAction","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 = document.createElement(\"div\");\r\n currentSavedReports.classList.add(\"currentSavedReports\");\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 const toolTip = document.createElement(\"ecp-tooltip\");\r\n toolTip.setAttribute(\"for\", \"PageLoadTime\");\r\n toolTip.textContent = \"Time taken for Encompass to create and send the page\";\r\n document.body.appendChild(toolTip);\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 const renderToolTip = document.createElement(\"ecp-tooltip\");\r\n renderToolTip.setAttribute(\"for\", \"RenderTime\");\r\n renderToolTip.textContent = \"Time taken for your browser to parse and display the page\";\r\n document.body.appendChild(renderToolTip);\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 = document.createElement(\"div\");\r\n InputArr.innerHTML = \"\";\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 confirmButtonTitle: \"Revert to original\",\r\n cancelButtonTitle: \"Keep using the beta\",\r\n cancelButtonAction: async () => {\r\n await CreateBetaTask(dialog);\r\n ECP.Dialog.CloseDialog(dialog);\r\n },\r\n confirmButtonAction: async () => {\r\n await CreateBetaTask(dialog);\r\n await EnableBetaVersion(DashboardSetting);\r\n }\r\n }\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"]}