/********* *Smart Views extended from Interactive Report(IvIr) *01/01/2019(03/05/2017) *By Prashik + Abhishek (mohsin/Manikanta/Niglin) * * * * **********/ var maxNoOfPills = 5; var ivirMainObj = {}; let bkpIvirMainObj = {}; var ivirMainViewObj = {}; var ivirTable = "#GridView1"; var initialChkup = {}; var ivirVisibleColumns = []; var tmpGroupObj = {}; var fixedColumnsObj = ""; var allGrandTotal = []; var groupingCol = ""; var pillDependentCols = {}; var numericColumns = []; var anchorRegexPatter = /]/; var custBtnIVIR = ""; var svHtmlGeneratorRef, saveViewActionRef, cancelViewActionRef, onContentReadyRef, onCloseRef, isOpenSmartStepper = false; var dateOptions = ["Custom", "Today", "Yesterday", "Tomorrow", "This week", "Last week", "Next week", "This month", "Last month", "Next month", "This quarter", "Last quarter", "Next quarter", "This year", "Last year", "Next year"]; var dateOptionsId = ["customOption", "todayOption", "yesterdayOption", "tomorrowOption", "this_weekOption", "last_weekOption", "next_weekOption", "this_monthOption", "last_monthOption", "next_monthOption", "this_quarterOption", "last_quarterOption", "next_quarterOption", "this_yearOption", "last_yearOption", "next_yearOption"]; var dateOptionsCaption = callParentNew('lcm')[445]; //var anchorRegexPatter = /]*>([\s\S]*?)/g; var errorMessages = { "emptyField": eval(callParent('lcm[13]')), "invalidName": eval(callParent('lcm[14]')), "integerChk": eval(callParent('lcm[15]')), "emptySelect": eval(callParent('lcm[16]')), "chartSelection": eval(callParent('lcm[17]')), "columnSelection": eval(callParent('lcm[18]')), "downloadSelection": eval(callParent('lcm[19]')), "maxPills": eval(callParent('lcm[20]')), "duplicateFld": eval(callParent('lcm[21]')), "dependentColumns": eval(callParent('lcm[22]')), "noChartWhileGrpng": "When grouping is enabled chart cannot be viewed." }; var advFiltersObjectToApply = {}; var regexes = { "validName": "^[a-zA-Z0-9][a-zA-Z0-9 ,.'_-]{0,}$" } var isSpecialRow = false; var colTypes = { "c": "string", "n": "num-fmt", "d": "date" }; var colAlign = { "Left": "dt-left", "Right": "dt-right", "Center": "dt-center" }; if ($("body").attr("dir") && $("body").attr("dir") == "rtl") { colAlign = { "Right": "dt-left", "Left": "dt-right", "Center": "dt-center" }; } var btnFilterApplyVal = callParentNew('lcm')[399]; var btnFilterApplyEditVal = callParentNew('lcm')[442]; let widthIncrement = 0; let newBtnGroup = { params: { name: "params", task: "", type: "paramFilter", stage: "[data-dropdown-value=paramFilter]:eq(0)", caption: callParentNew('lcm')[478], icon: "search", open() { $(this.stage).click(); }, clear(elem) { $('#button2').click(); setTimeout(() => { elem.prev("input").val($j("#hdnparamValues").val()); }, 0); }, apply() { }, html(isEdit) { return svHtmlGeneratorRef(this, $(``), isEdit); }, get visible() { // return ($("#hdnIsParaVisible").val() != "hidden" ? true : false) return false; }, get value() { return $j("#hdnparamValues").val(); } }, charts: { name: "charts", task: "chart", type: "chart", stage: "#chartActionLi[data-dropdown-value=chart]:eq(0)", caption: callParentNew('lcm')[402], icon: "pie_chart", open() { $(this.stage).click(); }, clear() { }, apply(indexOfArray, isPillChecked) { ivirCreateChart(indexOfArray, isPillChecked); }, html(isEdit) { return svHtmlGeneratorRef(this, $(``), isEdit); }, get visible() { return false }, get value() { return ivirMainObj.chart && ivirMainObj.chart[0] && JSON.stringify(ivirMainObj.chart[0]) || ""; } }, filters: { name: "filters", task: "filter", type: "moreFilters", stage: "[data-dropdown-value=moreFilters]:eq(0)", caption: callParentNew('lcm')[409], icon: "filter_alt", open() { let pill = $("[onclick=editThePill\\(\\'filter\\'\\,0\\)]"); if (pill.length) { pill.click(); } else { $(this.stage).click(); } }, clear(elem) { resetMoreFilters(); delete ivirMainObj.filter; var moreFiltersBody = $("#newViewTabId").find(".filter-body-cont"); if (moreFiltersBody.length > 0) { moreFiltersBody.data("pillindex", -1); } // elem.prev("input").val(""); }, apply() { $("#btnFilterApply").click(); }, html(isEdit) { return svHtmlGeneratorRef(this, $(``), isEdit); }, get visible() { return true }, get value() { return ivirMainObj.filter && ivirMainObj.filter[0] && JSON.stringify(ivirMainObj.filter[0]) || ""; } }, sort: { name: "sort", task: "sort", type: "sort", stage: "[data-dropdown-value=sort]:eq(0)", caption: callParentNew('lcm')[403], icon: "sort", open() { $(this.stage).click(); }, clear(elem) { $("#clearSorting").click(); delete ivirMainObj.sorting; // elem.prev("input").val(""); }, apply() { ivirSortColumns(); }, html(isEdit) { return svHtmlGeneratorRef(this, $(``), isEdit); }, get visible() { return (iName != "inmemdb" ? true : false) }, get value() { return ivirMainObj.sorting && ivirMainObj.sorting.length > 0 && JSON.stringify(ivirMainObj.sorting) || ""; } }, rowGrouping: { name: "rowGrouping", task: "group", type: "rowGrouping", stage: "[data-dropdown-value=rowGrouping]:eq(0)", caption: callParentNew('lcm')[404], icon: "table_rows", open() { let pill = $("[onclick=editThePill\\(\\'group\\'\\,0\\)]"); if (pill.length) { pill.click(); } else { $(this.stage).click(); } }, clear(elem) { // let pill = $("[onclick=deleteThePill\\(\\'group\\'\\,0\\)]"); // if (pill.length) { // pill.click(); // } delete ivirMainObj.group; // elem.prev("input").val(""); }, apply(indexOfArray, isPillChecked) { ivirRowGrouping(indexOfArray, isPillChecked); }, html(isEdit) { return svHtmlGeneratorRef(this, $(``), isEdit); }, get visible() { return (iName != "inmemdb" && !isListView && !enableCardsUi ? true : false) }, get value() { return ivirMainObj.group && ivirMainObj.group[0] && JSON.stringify(ivirMainObj.group[0]) || ""; } }, columns: { name: "columns", task: "column", type: "SHcolumns", stage: "[data-dropdown-value=SHcolumns]:eq(0)", caption: callParentNew('lcm')[401], icon: "view_week", open() { $(this.stage).click(); }, clear(elem) { if (!isListView || $("#hdnListViewFieldsJSON").val() == "") { ivirMainObj.hiddenColumns = []; } else { ivirMainObj.visibleColumns = []; } // elem.prev("input").val(""); }, apply() { ivirshowHideColumns(); }, html(isEdit) { return svHtmlGeneratorRef(this, $(``), isEdit); }, get visible() { return (iName != "inmemdb" && !enableCardsUi ? true : false) }, get value() { if (!isListView || $("#hdnListViewFieldsJSON").val() == "") { return ivirMainObj.hiddenColumns && ivirMainObj.hiddenColumns.length > 0 && JSON.stringify({ hidden: ivirMainObj.hiddenColumns }) || ""; } else { return ivirMainObj.visibleColumns && ivirMainObj.visibleColumns.length > 0 && JSON.stringify({ visible: ivirMainObj.visibleColumns }) || ""; } } }, design: { name: "design", task: "design", type: "design", stage: "[data-dropdown-value=design]:eq(0)", caption: "Design" || callParentNew('lcm')[401], icon: "design_services", open() { $(this.stage).click(); }, clear(elem) { delete ivirMainObj.design; // elem.prev("input").val(""); }, apply() { ivirDesignColumn(); }, html(isEdit) { return svHtmlGeneratorRef(this, $(``), isEdit); }, get visible() { return (iName != "inmemdb" && isListView && !enableCardsUi ? true : false) }, get value() { return ivirMainObj.design && ivirMainObj.design.length > 0 && JSON.stringify(ivirMainObj.design) || ""; } }, highlight: { name: "highlight", task: "highlight", type: "highlighting", stage: "[data-dropdown-value=highlighting]:eq(0)", caption: callParentNew('lcm')[396], icon: "highlight", open() { let pill = $("[onclick=editThePill\\(\\'highlight\\'\\,0\\)]"); if (pill.length) { pill.click(); } else { $(this.stage).click(); } }, clear(elem) { delete ivirMainObj.highlight; // elem.prev("input").val(""); }, apply(indexOfArray, isPillChecked) { ivirHighlightRow(indexOfArray, isPillChecked); }, html(isEdit) { return svHtmlGeneratorRef(this, $(``), isEdit); }, get visible() { return (iName != "inmemdb" ? true : false) }, get value() { return ivirMainObj.highlight && ivirMainObj.highlight[0] && JSON.stringify(ivirMainObj.highlight[0]) || ""; } } }; $j(document).ready(function ($) { $.fn.dataTableExt.ofnSearch['alt-status'] = function (sData) { }; $.fn.dataTable.ext.errMode = 'none'; Highcharts.setOptions({ lang: { decimalPoint: '.', thousandsSep: ',' } }); /** Will trigger when actions dropdown like highlight,group is selected */ // $(document).on("change", "#IvirActions , #pinnedIvirActions", function (event) { svHtmlGeneratorRef = function svHtmlGenerator(svOption, that = this, isEdit = false) { isOpenSmartStepper = true; if (($("#ivirCButtonsWrapper").is(":visible") && !$("#ivirCButtonsWrapper a.active").hasClass('grdView')) || ($("#pinnedivirCButtonsWrapper").is(":visible") && !$("#pinnedivirCButtonsWrapper a.active").hasClass('grdView'))) { toggleGridView("grid"); } var htmlToShow = ""; var selectedVal = $(that).val(); if (selectedVal && selectedVal != "") { if (selectedVal == 'SHcolumns' && iName != "inmemdb") { //Show hide colums in the report requestTstructFieldsObj(); if (!isListView || $("#hdnListViewFieldsJSON").val() == "") { htmlToShow = '
'; htmlToShow += ''; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; } htmlToShow += '
'; var fixedColumns = 0; if (fixedColumnsObj != "") fixedColumns = fixedColumnsObj.s.iLeftColumns; var groupCol = []; var chartCol = []; if (groupingCol != "") { isGrouped = true; var groupArrayIndex = $("[id^='grouppillCB']:checked").data("index"); groupCol = checkForPillDependentFlds("group", groupArrayIndex, true); } var chartArrayIndex = $("[id^='chartpillCB']:checked").data("index"); if (chartArrayIndex >= 0) { chartCol = checkForPillDependentFlds("chart", chartArrayIndex, true); } if (!isListView || $("#hdnListViewFieldsJSON").val() == "") { var allColumns = ivirDataTableApi.columns(); var allColumnsLength = allColumns[0].length; var allDepCols = groupCol.concat(chartCol); for (var i = 0; i < allColumnsLength; i++) { /** * Do not Create column list if column hided from defination * @author Prashik * @Date 2019-04-11T11:45:39+0530 */ if ((getAjaxIviewData && ivHeadRows[getColumnName(ivirDataTableApi.context[0].aoColumns[i].mData)]["@hide"] == "true") || (!getAjaxIviewData && HideColumn[FieldName.indexOf(getColumnName(ivirDataTableApi.context[0].aoColumns[i].mData))] == "true")) { continue; } var headerName = $(ivirDataTableApi.columns(i).header()).text().trim(); htmlToShow += '
'; var disabled = ""; var isGrouped = false; var totalArrayIngrouping; var isVisibleCol = ivirDataTableApi.column(i).visible() === true; if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { try { if (ivirMainObj.hiddenColumns) { if (ivirMainObj.hiddenColumns.indexOf(FieldName[HeaderText.indexOf(headerName)]) > -1) { isVisibleCol = false; } else { isVisibleCol = true; } } } catch (ex) { } } if ((i < fixedColumns) || ($.inArray(i, allDepCols) !== -1)) disabled = "disabled"; if (isVisibleCol) htmlToShow += ''; else htmlToShow += ''; htmlToShow += ''; htmlToShow += '
'; } } else { var listDropdowns = ``; if ($("#hdnListViewFieldsJSON").val() != "") { try { var lvFldsObj = JSON.parse($("#hdnListViewFieldsJSON").val()); htmlToShow += Object.keys(lvFldsObj).map((dcInd) => { let dc = lvFldsObj[dcInd]; return `
{ return (propName != "fields" ? `data-${propName}="${dc[propName]}"` : ``) }).join(" ")} />
${dc.fields.map((field) => { return field.visible && field.save ? `
0 && ivirMainObj.visibleColumns[0].dcs && ivirMainObj.visibleColumns[0].dcs[dcInd] && typeof ivirMainObj.visibleColumns[0].dcs[dcInd].fields != "undefined" && (checkIt = ivirMainObj.visibleColumns[0].dcs[dcInd].fields.indexOf(field.name) > -1))) || (FieldName.indexOf(field.name) > -1) && (typeof checkIt == "undefined" || checkIt)) ? ((listDropdowns += ``) && `checked="checked"`) : ``} value="${field.name}" ${Object.keys(field).map((propName) => { return `data-${propName}="${field[propName]}"` }).join(" ")} />
` : `` }).join("") }

`; }).join(""); htmlToShow += `
`; } catch (ex) { } } } htmlToShow += '
'; return htmlToShow; var dialogObj = ivirActionDialog(callParentNew('lcm')[401], 'column', htmlToShow, 'ivirshowHideColumns'); setTimeout(function () { if (!(!isListView || $("#hdnListViewFieldsJSON").val() == "")) { dialogObj.$btnc.css({ "width": "100%" }); dialogObj.$btnc.prepend(`
`); try { $("#selColHypOpts").val(ivirMainObj.visibleColumns[0].hyperlink); } catch (ex) { } } }, 0); } else if (selectedVal == 'design' && iName != "inmemdb" && isListView) { htmlToShow = `
`; return htmlToShow; var dialogObj = ivirActionDialog("Design" || callParentNew('lcm')[401], 'design', htmlToShow, 'ivirDesignColumn'); } else if (selectedVal == 'sort' && iName != "inmemdb") { htmlToShow += '
'; htmlToShow += ''; htmlToShow += ''; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; var ivirDataTableApiOrder = ivirDataTableApi.order(); var ivirDataTableApiOrderArray = []; for (var i = 0; i < ivirDataTableApiOrder.length; i++) { ivirDataTableApiOrderArray.push(ivirDataTableApiOrder[i][0]); ivirDataTableApiOrderArray.push(ivirDataTableApiOrder[i][1]); } for (var j = 0; j < ivirDataTableApiOrderArray.length; j += 2) { var headerName = $(ivirDataTableApi.columns(ivirDataTableApiOrderArray[j]).header()).text().trim(); if (groupingCol != ivirDataTableApiOrderArray[j]) { htmlToShow += '
'; htmlToShow += ''; htmlToShow += ''; htmlToShow += ''; if (ivirDataTableApiOrderArray[j + 1] == 'asc') { htmlToShow += ''; htmlToShow += ''; } else { htmlToShow += ''; htmlToShow += ''; } htmlToShow += ''; htmlToShow += '
'; } } var allColumns = ivirDataTableApi.columns(); for (var k = 0; k < allColumns[0].length; k++) { if (isChkBox == "true" && k == 0) continue; if (ivirDataTableApi.column(k).visible() === true && jQuery.inArray(k, ivirDataTableApiOrderArray) === -1) { var headerName = $(ivirDataTableApi.columns(k).header()).text().trim(); htmlToShow += '
'; htmlToShow += ''; htmlToShow += ''; htmlToShow += ''; htmlToShow += ''; htmlToShow += ''; htmlToShow += ''; htmlToShow += '
'; } } htmlToShow += '
'; return htmlToShow; ivirActionDialog(callParentNew('lcm')[403], 'sort', htmlToShow, 'ivirSortColumns'); } else if (selectedVal == 'rowGrouping' && iName != "inmemdb") { if (!checkForPillsLength('group')) { return getGroupHtml(); ivirActionDialog(callParentNew('lcm')[412], 'group', getGroupHtml(), "ivirRowGrouping"); } else if (isEdit) { return getGroupHtml(isEdit); } } else if (selectedVal == 'highlighting' && iName != "inmemdb") { if (!checkForPillsLength('highlight')) { return getHighlightHtml(); ivirActionDialog(callParentNew('lcm')[396], 'highlight', getHighlightHtml(), "ivirHighlightRow"); } else if (isEdit) { return getHighlightHtml("highlight", 0, isEdit); } } else if (selectedVal == 'download') { htmlToShow += '
' htmlToShow += '
' htmlToShow += '
' htmlToShow += '
' htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; return htmlToShow; ivirActionDialog(callParentNew('lcm')[411], 'download', htmlToShow, "DownloadFile"); } else if (selectedVal == 'chart' && iName != "inmemdb") { if (!checkForPillsLength('chart')) smartCharts(); // ivirActionDialog(callParentNew('lcm')[410], 'chart', getChartHtml(), "ivirCreateChart"); } else if (selectedVal == 'save' && iName != "inmemdb") { if (requestJSON && iviewButtonStyle != "old") { if (ivirMainObj.groupName) { if (hasBuildAccess) saveInSessionBeforeSaveNew(ivirMainObj.groupName, ivirMainObj.caption || ivirMainObj.groupName, ivirMainObj.applyTo); else saveInSessionBeforeSaveNew(ivirMainObj.groupName, ivirMainObj.caption || ivirMainObj.groupName, callParentNew("mainUserName")); } else { getViewName(); } } else saveInSessionBeforeSave(); } else if (selectedVal == 'saveAs' && iName != "inmemdb") { newViewTabClick($(that)); } else if (selectedVal == 'moreFilters') { let filPillIndex = isEdit && ivirMainObj.filter ? 0 : -1; return ivirMoreFilters(filPillIndex); } else if (selectedVal == 'clearFilters') { clearFilters(); } else if (selectedVal == 'paramFilter') { $('#Filterscollapse').collapse("toggle"); } } } $(document).on("keydown", "#ivirCndtnToggleBtn", function (event) { if (event.keyCode == 32 || event.keyCode == 13) { toggleIvirPills(); } }); /** Wlll trigger when custom Actions of iview are selected */ $(document).on("change", "#IvirCustomActions", function (event) { var selectedValue = $(this).val(); if (selectedValue != "") { if (selectedValue.startsWith('custBtn')) { var fn = selectedValue.split(','); var btnID = fn[0].substr(7); fireTheCustomAction(btnID); } } }); /** * This function will be trigerred from datatable whenever Advanced Filters Search will be requested. * @author Prashik * @Date 2019-02-28T10:37:05+0530 * var isObjectAvailable [if filters are parsed from filterObject or opened filter Popup Fields] * @return {[boolean]} [return true if current row should be shown in search result] */ $.fn.dataTable.ext.search.push( function (settings, filteredData, dataIndex, data, rowNo) { var isObjectAvailable = false; var loopData = []; if ($.isEmptyObject(advFiltersObjectToApply) || advFiltersObjectToApply.somedummyfilterjsobjectkey) { isObjectAvailable = false; if (!advFiltersObjectToApply.somedummyfilterjsobjectkey) { loopData = $("#newViewTabId .filter-bodyAndFooter-cont table tbody tr"); } } else { isObjectAvailable = true; loopData = $(Object.keys(advFiltersObjectToApply)); } var validationArray = []; $(loopData).each(function (dataIndex) { var dataKey = ""; if (isObjectAvailable) { dataKey = loopData[dataIndex]; var colType = ivirColumnTypeObj[dataKey]; } else { var colType = $(this).data("coltype"); } switch (colType) { case "c": //data, ivirDataTableApi, filteredColumns; if (isObjectAvailable) { var thisVal = advFiltersObjectToApply[dataKey].split("`"); var currentIndex = getPropertyAccess(dataKey); } else { var thisVal = $(this).find(".moreFiltersInput.characterFilter:nth(0)").val(); var currentIndex = getPropertyAccess($(this).find(".moreFiltersInput.characterFilter").data("field")); } var tempData = typeof data[currentIndex] == "object" && data[currentIndex] != null ? data[currentIndex].display : (data[currentIndex] != null ? data[currentIndex] : ""); tempData = $($.parseHTML(tempData)).text().trim(); var currentData = tempData; if (requestJSON) { thisVal != "" ? validationArray.push(thisVal.filter((val, ind) => { return currentData.indexOf(val) > -1 }).length > 0) : ""; } else { thisVal != "" ? validationArray.push(thisVal.filter((val, ind) => { return currentData.indexOf(val) > -1 }).length > 0) : ""; } break; case "n": var minVal = 0, maxVal = 0; if (isObjectAvailable) { var currentIndex = getPropertyAccess(dataKey); if (advFiltersObjectToApply[dataKey]["min"].toString() != "" || advFiltersObjectToApply[dataKey]["max"].toString() != "") { var columnVals = []; try { columnVals = generateUniqueColumnVals(colType, currentIndex + ":name"); if (advFiltersObjectToApply[dataKey]["min"].toString() == "") { advFiltersObjectToApply[dataKey]["min"] = (Math.min(...columnVals) || minVal); } if (advFiltersObjectToApply[dataKey]["max"].toString() == "") { advFiltersObjectToApply[dataKey]["max"] = (Math.max(...columnVals) || maxVal); } } catch (ex) { } try { minVal = parseFloat(advFiltersObjectToApply[dataKey]["min"].toString().replace(/,/g, "")) || minVal; } catch (ex) { } try { maxVal = parseFloat(advFiltersObjectToApply[dataKey]["max"].toString().replace(/,/g, "")) || maxVal; } catch (ex) { } } } else { var currentIndex = getPropertyAccess($(this).find(".moreFiltersInput.numericFilter:nth(0)").data("field")); if ($(this).find(".moreFiltersInput.numericFilter:nth(0)").val() != "" || $(this).find(".moreFiltersInput.numericFilter:nth(1)").val() != "") { var columnVals = []; try { columnVals = generateUniqueColumnVals(colType, currentIndex + ":name"); if ($(this).find(".moreFiltersInput.numericFilter:nth(0)").val() == "") { $(this).find(".moreFiltersInput.numericFilter:nth(0)").val(Math.min(...columnVals) || minVal); } if ($(this).find(".moreFiltersInput.numericFilter:nth(1)").val() == "") { $(this).find(".moreFiltersInput.numericFilter:nth(1)").val(Math.max(...columnVals) || maxVal); } } catch (ex) { } minVal = parseFloat($(this).find(".moreFiltersInput.numericFilter:nth(0)").val().toString().replace(/,/g, "")) || minVal; maxVal = parseFloat($(this).find(".moreFiltersInput.numericFilter:nth(1)").val().toString().replace(/,/g, "")) || maxVal; } } var tempData = typeof data[currentIndex] == "object" && data[currentIndex] != null ? data[currentIndex].display : (data[currentIndex] != null ? data[currentIndex] : ""); tempData = checkFroNegativeValue($($.parseHTML(tempData)).text().trim()); var currentData = parseFloat(tempData.toString().replace(/,/g, "")); currentData = !isInValidNumber(currentData) ? currentData : ""; if (currentData != "") minVal != 0 || maxVal != 0 ? validationArray.push(isNumberBetweenScope(minVal, maxVal, currentData)) : ""; break; case "d": var minVal = 0, maxVal = 0; if (isObjectAvailable) { var currentIndex = getPropertyAccess(dataKey); if (typeof advFiltersObjectToApply[dataKey]["min"] != "undefined" && (advFiltersObjectToApply[dataKey]["min"].toString() != "" || advFiltersObjectToApply[dataKey]["max"].toString() != "")) { var columnVals = []; try { columnVals = generateUniqueColumnVals(colType, currentIndex + ":name"); if (advFiltersObjectToApply[dataKey]["min"].toString() == "") { advFiltersObjectToApply[dataKey]["min"] = new Date(Math.min(...columnVals) || minVal); } if (advFiltersObjectToApply[dataKey]["max"].toString() == "") { advFiltersObjectToApply[dataKey]["max"] = new Date(Math.max(...columnVals) || maxVal); } } catch (ex) { } try { if (advFiltersObjectToApply[dataKey]["min"]) { minVal = getDateStamp(advFiltersObjectToApply[dataKey]["min"]) || minVal; } else { var selectionOption = ""; } } catch (ex) { } try { if (advFiltersObjectToApply[dataKey]["max"]) { maxVal = getDateStamp(advFiltersObjectToApply[dataKey]["max"]) || maxVal; } else { var selectionOption = ""; } } catch (ex) { } } else { var fromToObj = generateAdvFilterDates(advFiltersObjectToApply[dataKey]); minVal = getDateStamp(fromToObj.from); maxVal = getDateStamp(fromToObj.to); } } else { var currentIndex = getPropertyAccess($(this).find("input.moreFiltersInput.dateFilter:nth(0)").data("field")); if ($(this).find("input.moreFiltersInput.dateFilter:nth(0)").val() != "" || $(this).find("input.moreFiltersInput.dateFilter:nth(1)").val() != "") { var columnVals = []; try { columnVals = generateUniqueColumnVals(colType, currentIndex + ":name"); if ($(this).find("input.moreFiltersInput.dateFilter:nth(0)").val() == "") { $(this).find("input.moreFiltersInput.dateFilter:nth(0)").datepicker("setDate", new Date(Math.min(...columnVals) || minVal)); } if ($(this).find("input.moreFiltersInput.dateFilter:nth(1)").val() == "") { $(this).find("input.moreFiltersInput.dateFilter:nth(1)").datepicker("setDate", new Date(Math.max(...columnVals) || maxVal)); } } catch (ex) { } try { minVal = parseInt($(this).find("input.moreFiltersInput.dateFilter:nth(0)").datepicker("getDate").getTime(), 10) || minVal; } catch (ex) { } try { maxVal = parseInt($(this).find("input.moreFiltersInput.dateFilter:nth(1)").datepicker("getDate").getTime(), 10) || maxVal; } catch (ex) { } } } var currentData = ""; try { var tempData = typeof data[currentIndex] == "object" && data[currentIndex] != null ? data[currentIndex].display : (data[currentIndex] != null ? data[currentIndex] : ""); tempData = $($.parseHTML(tempData)).text().trim(); if (getAjaxIviewData) { tempData = getDateBasedOnCulture(tempData); } currentData = getDateStamp(tempData); } catch (ex) { } //future regex to split and swap mm & dd // /[-|.|\/]/ if (currentData != "") minVal != 0 || maxVal != 0 ? validationArray.push(isNumberBetweenScope(minVal, maxVal, currentData)) : ""; break; case "t": break; } }); return validationArray.every(valData => valData); } ); /** * This function will revert table sorting to initial table sorting on doubleCLick of table header. * @author Prashik * @Date 2019-02-28T10:46:02+0530 */ $(document).on("dblclick", 'th.sorting, th.sorting_asc, th.sorting_desc, th.dt-right, th.dt-left', function () { try { ivirDataTableApi.order.neutral().draw() } catch (ex) { } }); /** * Trigger advance filter search functionality * @author Prashik * @Date 2019-02-28T11:32:21+0530 */ $(document).on("click", "#btnFilter", function () { $('[data-dropdown-value="moreFilters"]').attr("data-filter-type", "search"); advFiltersObjectToApply = {}; ivirDataTableApi.draw(); setFilterInfo(); }); /** * Create advanced filter pill and trigger advanced search functionality * @author Prashik * @Date 2019-02-28T11:44:57+0530 */ $(document).on("click", "#btnFilterApply", function () { var advSearchNameValue = $("#advSearchName").val() || "a"; // var moreFilters = $("#divModalAdvancedFilters .filter-body-cont").parent(); var pillindex = $("#newViewTabId").find(".filter-body-cont").data("pillindex"); if (pillindex != -1 || !checkForPillsLength('filter') || ($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { if (advSearchNameValue) { var pillIndex = getFiltersPillIndex(); var isEditPill = pillIndex == undefined ? false : true; if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { if (!ivirDuplicateCheck("filter", isEditPill, pillIndex)) return false; } var searchJSON = JSON.stringify(generateSearchString("JSON")); if (searchJSON != "{}") { if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { // if ($("#divModalAdvancedFilters").is(":visible")) { // $("#btnModalClose").click(); // } let filterObj = [{ n: advSearchNameValue, data: JSON.parse(searchJSON) }]; ivirMainObj.filter = filterObj; // $("#newViewfilters").val(JSON.stringify(filterObj)); } else { generateFilterPill(searchJSON, advSearchNameValue, pillIndex); ivirDataTableApi.draw(); setFilterInfo(); $('[data-dropdown-value="moreFilters"]').attr("data-filter-type", "filter"); } } else { showAlertDialog("info", "Filter fields cannot be empty."); } } else { showAlertDialog("warning", "Enter your filter name."); } } }); /** * Automatic date selection on selecting special case date options in advanced filters * @author Prashik * @Date 2019-02-28T11:45:46+0530 * @param {[type]} ) { var thisSiblings [description] * @return {[type]} [description] */ $(document).on("change", "select.dateFilter", function () { var thisSiblings = $(this).parent().nextAll(); var fromDate = $(thisSiblings[0]).find("input.moreFiltersInput"); var toDate = $(thisSiblings[1]).find("input.moreFiltersInput"); var fromToObj = generateAdvFilterDates($(this).val()); fromDate.val(fromToObj.from); toDate.val(fromToObj.to); enableDisableDateField(thisSiblings.find("input.moreFiltersInput"), $(this).val() == "customOption" ? "enable" : "disable"); }); GetProcessTime(); GetTotalElapsTime(); }); /** * Generate from/to dates for filters for selected options * @author Prashik * @Date 2019-04-11T11:45:39+0530 * @param {string} dateOption : selected date option * @return {object} fromToObj : from/to date object */ function generateAdvFilterDates(dateOption) { var fromToObj = { from: "", to: "" }; var advFilterDtCulture = dtCulture == "en-us" ? "MM/DD/YYYY" : "DD/MM/YYYY"; switch (dateOption) { case "customOption": //enableDisable = "enable"; break; case "todayOption": //enableDisable = "disable"; var dateObj = new Date(); fromToObj.from = fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "yesterdayOption": //enableDisable = "disable"; var dateObj = new Date(); dateObj.setDate(dateObj.getDate() - 1); fromToObj.from = fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "tomorrowOption": //enableDisable = "disable"; var dateObj = new Date(); dateObj.setDate(dateObj.getDate() + 1); fromToObj.from = fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "this_weekOption": //enableDisable = "disable"; var dateObj = getFirstDayOfWeek(new Date()); fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setDate(dateObj.getDate() + 6); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "last_weekOption": //enableDisable = "disable"; var dateObj = getFirstDayOfWeek(new Date()); dateObj.setDate(dateObj.getDate() - 7) fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setDate(dateObj.getDate() + 6); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "next_weekOption": //enableDisable = "disable"; var dateObj = getFirstDayOfWeek(new Date()); dateObj.setDate(dateObj.getDate() + 7) fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setDate(dateObj.getDate() + 6); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; //case "this_fortnightOption": //// enableDisable = "disable"; // break; //case "last_fortnightOption": //// enableDisable = "disable"; // break; //case "next_fortnightOption": //// enableDisable = "disable"; // break; case "this_monthOption": //enableDisable = "disable"; var dateObj = getFirstDayOfWeek(new Date()); dateObj.setDate(1); fromToObj.from = moment(dateObj).format(advFilterDtCulture); //dateObj.setMonth(dateObj.getMonth() + 1).setDate(0) dateObj.setMonth(dateObj.getMonth() + 1); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "last_monthOption": //enableDisable = "disable"; var dateObj = getFirstDayOfWeek(new Date()); dateObj.setDate(1); dateObj.setMonth(dateObj.getMonth() - 1); fromToObj.from = moment(dateObj).format(advFilterDtCulture); //dateObj.setMonth(dateObj.getMonth() + 1).setDate(0) dateObj.setMonth(dateObj.getMonth() + 1); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "next_monthOption": //enableDisable = "disable"; var dateObj = getFirstDayOfWeek(new Date()); dateObj.setDate(1); dateObj.setMonth(dateObj.getMonth() + 1); fromToObj.from = moment(dateObj).format(advFilterDtCulture); //dateObj.setMonth(dateObj.getMonth() + 1).setDate(0) dateObj.setMonth(dateObj.getMonth() + 1); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "this_quarterOption": //enableDisable = "disable"; var dateObj = new Date(); var thisQuarter = Math.floor(((dateObj).getMonth() + 3) / 3); dateObj.setDate(1); dateObj.setMonth((thisQuarter * 3) - 3); fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setMonth(dateObj.getMonth() + 3); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "last_quarterOption": //enableDisable = "disable"; var dateObj = new Date(); var thisQuarter = Math.floor(((dateObj).getMonth() + 3) / 3) - 1; if (thisQuarter == 0) { thisQuarter = 4; dateObj.setFullYear(dateObj.getFullYear() - 1); } dateObj.setDate(1); dateObj.setMonth((thisQuarter * 3) - 3); fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setMonth(dateObj.getMonth() + 3); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "next_quarterOption": //enableDisable = "disable"; var dateObj = new Date(); var thisQuarter = Math.floor(((dateObj).getMonth() + 3) / 3) + 1; if (thisQuarter == 5) { thisQuarter = 1; dateObj.setFullYear(dateObj.getFullYear() + 1); } dateObj.setDate(1); dateObj.setMonth((thisQuarter * 3) - 3); fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setMonth(dateObj.getMonth() + 3); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "this_yearOption": //enableDisable = "disable"; var dateObj = new Date(); dateObj.setDate(1); dateObj.setMonth(0); fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setFullYear(dateObj.getFullYear() + 1); dateObj.setMonth(0); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "last_yearOption": //enableDisable = "disable"; var dateObj = new Date(); dateObj.setFullYear(dateObj.getFullYear() - 1); dateObj.setDate(1); dateObj.setMonth(0); fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setFullYear(dateObj.getFullYear() + 1); dateObj.setMonth(0); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; case "next_yearOption": //enableDisable = "disable"; var dateObj = new Date(); dateObj.setFullYear(dateObj.getFullYear() + 1); dateObj.setDate(1); dateObj.setMonth(0); fromToObj.from = moment(dateObj).format(advFilterDtCulture); dateObj.setFullYear(dateObj.getFullYear() + 1); dateObj.setMonth(0); dateObj.setDate(0); fromToObj.to = moment(dateObj).format(advFilterDtCulture); break; } return fromToObj; } /** * Generate unique list of values from selected non special row column * @author Prashik * @Date 2019-04-11T11:55:05+0530 * @param {character} type : type of column * @param {string} columnIndex : column selector * @return {array} columnVals : list of unique column values */ function generateUniqueColumnVals(type, columnIndex) { var columnVals = []; try { ivirDataTableApi.cells(ivirDataTableApi.rows(":not(.specialRow)").nodes(), columnIndex, { search: 'applied' }).data().unique().sort().each(function (value, index) { if (type == "n") { value = typeof value == "object" && value != null ? value.display : (value != null ? value : ""); value = value.replace(/,/g, ""); columnVals.push(value); } else if (type == "d") { if (getAjaxIviewData) { value = getDateBasedOnCulture(value); } var curTimeStamp = getDateStamp(value); columnVals.push(curTimeStamp); } }); } catch (ex) { } return columnVals; } /** * Generate TimeStamp from date string based on culture * @author Prashik * @Date 2019-02-28T11:47:25+0530 * @param {string} thisData [date as string] * @return {int} [date as timestamp] */ function getDateStamp(thisData) { try { var dtFormatArray = dtFormat.substring(0, dtFormat.length - 2).split(/-|\//); var dtData = thisData.split(/-|\//); if (dtFormatArray[0].toLowerCase().startsWith("d")) { [dtData[0], dtData[1], dtData[2]] = [dtData[1], dtData[0], dtData[2]] } return parseInt(new Date(dtData.join("/")).getTime(), 10) || thisData; } catch (ex) { } } /** * Automatic enable/disable from/to date options on selecting special case date options in advanced filters * @author Prashik * @Date 2019-02-28T11:49:03+0530 * @param {object} fieldObj [input field objects] * @param {bool} enableDisable [enable/disable fields flag] */ function enableDisableDateField(fieldObj, enableDisable) { if (enableDisable == "disable") { fieldObj.prop("disabled", true); fieldObj.parent().addClass("pe-none opacity-50 shadow-none"); } // fieldObj.datepicker(enableDisable).css({ "height": enableDisable == "enable" ? "" : "30px", "opacity": enableDisable == "enable" ? "1" : "0.5" }); } /** * get first day of the week for and passed date's week * @author Prashik * @Date 2019-02-28T11:51:48+0530 * @param {object} currentDate [date object for the date whose first day of week to be calculated] * @return {object} [date object as first date of the week for the input date] */ function getFirstDayOfWeek(currentDate) { currentDate = new Date(currentDate); var day = currentDate.getDay(); var diff = currentDate.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday return new Date(currentDate.setDate(diff)); } /** * check if number/timestamp exist between the given from and to input scope * @author Prashik * @Date 2019-02-28T11:58:06+0530 * @param {int} minVal [form value] * @param {int} maxVal [to value] * @param {int} currentData [value to be compared] * @return {bool} [return if number os between scope or not] */ function isNumberBetweenScope(minVal, maxVal, currentData) { return ((isNaN(minVal) && isNaN(maxVal)) || (isNaN(minVal) && currentData <= maxVal) || (minVal <= currentData && isNaN(maxVal)) || (minVal <= currentData && currentData <= maxVal)); } /** * Generate Filter pill * @author Prashik * @Date 2019-02-28T12:39:01+0530 * @param {object} filterJSON object for filter pill * @param {string} advFilterNameValue name of advanced filter * @param {integer} indexOfArray index if filter pill * @param {boolean} isPillAlreadyChecked if pill is checked */ function generateFilterPill(filterJSON, advFilterNameValue, indexOfArray, isPillAlreadyChecked) { var indexOfFilterArray; var limitExceeded = false; var isFirstTime = false; //apply the pill is is directly handled in chekcbox click ivirCheckBox var name = advFilterNameValue; if (requestJSON && iviewButtonStyle != "old") { maxNoOfPills = 1; } if (indexOfArray === undefined) { //means first time or new one if (jQuery.isEmptyObject(ivirMainObj)) { var filterArr = ivirMainObj.filter = []; isFirstTime = true; indexOfFilterArray = 0; } else if (ivirMainObj.filter === undefined) { var filterArr = ivirMainObj.filter = []; indexOfFilterArray = 0; } else { var filterArr = ivirMainObj.filter; isFirstTime = false; if (filterArr.length >= maxNoOfPills) limitExceeded = true; indexOfFilterArray = filterArr.length; } var filterObj = new Object(); } else { var filterObj = ivirMainObj.filter[indexOfArray]; indexOfFilterArray = indexOfArray; } if (!limitExceeded) { filterObj.n = name; filterObj.data = JSON.parse(filterJSON); if (indexOfArray === undefined) { filterArr.push(filterObj); if (isFirstTime || $("#ivirFilteredAccordion").length == 0) { if ($("#ivirFilteredAccordion").length == 0) createPills("all", "first"); else { $("[id^='filterpillCB']").prop('checked', false).removeAttr('checked'); createPills("all", "last"); } } else if ($("#ivirFilteredAccordion").length > 0) { $("[id^='filterpillCB']").prop('checked', false).removeAttr('checked'); upateThePills("filter", indexOfFilterArray, name); } } else { $("[id^='filterpillCB']").prop('checked', false).removeAttr('checked'); $("#filterpillCB" + indexOfArray).prop('checked', true).attr('checked', 'checked'); $("#filterpillCB" + indexOfArray).parent().next().find('.ivirCndtnName').attr('title', "Edit " + name).text(name); } } else { showAlertDialog("warning", appGlobalVarsObject.lcm[23]); } try { advFiltersObjectToApply = ivirMainObj.filter[indexOfFilterArray].data; } catch (e) { } setSmartViewHeight(); return true; } /** * Will be called when ever an custom action is selected * @author ManiKanta * @Date 2018-11-19T14:43:21+0530 * @param {String} actName id of the original action button * @return {} */ function fireTheCustomAction(actName) { $("#" + actName).click(); javascript: __doPostBack(actName, ''); } /** * Function to toggle between chart layout and grid layout * @author ManiKanta * @Date 2018-11-19T14:47:00+0530 * @param {String} divToShow which one to show * @param {String} typeOfChart Type of chart to show * @param {Object} elem clicked buttons * @return {} */ function ivirShowChart(divToShow, typeOfChart, elem) { if (divToShow !== 'chart') { $(".chartCndtnWrapper").hide(); $("#ivir" + divToShow).show(); } $("#ivirChartsRow span.customError").remove(); $(".ivirChartButton").removeClass('active btn-active-light-primary'); $(elem).addClass('active btn-active-light-primary'); $("#ivir" + divToShow + " .form-control").first().focus(); } /** * To create a chart based on new data user eneterd or existing data which is already saved * @author ManiKanta + Avi * @Date 2018-11-19T14:49:45+0530 * @param {Numbee} indexOfArray Index of the array if user selecting existing chart condition * @param {Boolean} isPillChecked To know weather user checking or unchecking the condition * @param {Boolean} applyThePill To apply the existing pill or to add new condition * @param {Boolean} isFromLoad * @return {} */ function ivirCreateChart(indexOfArray, isPillChecked, applyThePill, isFromLoad) { var checkingArray = []; var chartArray = []; var columnIndex = $("#ivirChartCol").find('option:selected').data("index"); var columnValue = $("#ivirChartCol").find('option:selected').val(); var headerName = $(ivirDataTableApi.column(columnIndex).header()).text().trim(); var valueIndex = $("#ivirChartVal").find('option:selected').data("index"); var valueVal = $("#ivirChartVal").find('option:selected').val(); var chartName = $("#ivirChartName").val(); var typeOfChart = $("#ivirChartsRow .ivirChartButton.active").data('type'); var isFirstTime = true; var limitExceeded = false; if (applyThePill === undefined) { var name = chartName; var colIndex = getPropertyAccess(columnValue); var colValue = getPropertyAccess(valueVal); var chartType = typeOfChart; } else { var ivirMainChartObj = ivirMainObj.chart[indexOfArray]; var name = ivirMainChartObj.n; var colIndex = ivirMainChartObj.cl; var colValue = ivirMainChartObj.v; var chartType = ivirMainChartObj.t; valueIndex = typeof valueIndex == "undefined" ? FieldName.indexOf(colValue) : valueIndex; } if (!isFromLoad) { if (name == "") { ivirCustomErrMsg($("#ivirChartName"), errorMessages.emptyField) return false; } else if (!testRegex("validName", name)) { ivirCustomErrMsg($("#ivirChartName"), errorMessages.invalidName); return false; } if (colIndex == undefined || colIndex === "") { ivirCustomErrMsg($("#ivirChartCol"), errorMessages.emptySelect) return false; } if (colValue == undefined || colValue === "") { ivirCustomErrMsg($("#ivirChartVal"), errorMessages.emptySelect) return false; } if (!chartType) { ivirCustomErrMsg($("#ivirChartsRow"), errorMessages.emptySelect); return false; } } else { var chartObj = ivirMainObj.chart[indexOfArray]; chartName = chartObj.n; columnIndex = chartObj.cl; valueIndex = chartObj.v; chartType = chartObj.t; valueIndex = typeof valueIndex == "undefined" ? FieldName.indexOf(valueIndex) : valueIndex; } var isCBchecked; if ($('input[name="chkItem"]:checked').length == 0) isCBchecked = false; else isCBchecked = true; if ((indexOfArray === undefined) || isPillChecked) { var isDataExists = false; ivirDataTableApi.rows(":not(.specialRow)", { search: 'applied' }).every(function (rowIdx, tableLoop, rowLoop) { var nodeData = ivirDataTableApi.rows(rowIdx).data()[0]; var node = this.node(); var allTds = $(node).find('td'); var presentCB = ""; if (isCBchecked) presentCB = allTds.eq(0).find('input[name=chkItem]').is(':checked') else presentCB = true; if (presentCB) { var graphCol = ``; var graphValue = ``; (!isNaN(parseFloat(colIndex))) ? graphCol = nodeData[Object.keys(nodeData)[colIndex]] : graphCol = nodeData[colIndex], (!isNaN(parseFloat(colValue))) ? graphValue = nodeData[Object.keys(nodeData)[colValue]] : graphValue = nodeData[colValue] if (ColumnType[FieldName.indexOf(valueVal)] == "n") { graphValue = graphValue.replace(/,/g, ''); } if (anchorRegexPatter.test(graphCol)) graphCol = $(graphCol).text(); if (anchorRegexPatter.test(graphValue)) graphValue = parseFloat($(graphValue).text()); var existingIndex = $.inArray(graphCol, checkingArray); if (existingIndex == -1) { checkingArray.push(graphCol); var tmpObj = {} //{"name":"Walk In","y":0.0} tmpObj.name = graphCol; graphValue = parseFloat(graphValue); if (graphValue !== 0 && graphValue && graphValue !== "") isDataExists = true; if (chartType == 'pie' || chartType == 'donut') { tmpObj.y = graphValue; } else if (chartType == 'bar' || chartType == 'column') { tmpObj.data = [graphValue]; } chartArray.push(tmpObj); } else { //means in array we need to increment the val var existingObj = chartArray[existingIndex] if (chartType == 'pie' || chartType == 'donut') { var earlierVal = existingObj.y; earlierVal = parseFloat(earlierVal), graphValue = parseFloat(graphValue) existingObj.y = earlierVal + graphValue; } else if (chartType == 'column' || chartType == 'bar') { var earlierVal = existingObj.data[0]; existingObj.data = [parseFloat(earlierVal) + parseFloat(graphValue)]; } } } }) } let processCheckedPill = isPillChecked; if (indexOfArray === undefined) { //means first time or new one if (ivirMainObj.chart === undefined) { var chartArr = ivirMainObj.chart = []; indexOfChartArry = 0; } else { var chartArr = ivirMainObj.chart; isFirstTime = false; if (chartArr.length >= maxNoOfPills) limitExceeded = true; indexOfChartArry = chartArr.length; } var chartObj = new Object(); } else { var chartObj = ivirMainObj.chart[indexOfArray]; indexOfChartArry = indexOfArray; if (!(processCheckedPill && requestJSON && iviewButtonStyle != "old" && ((typeof chartObj.checked == "undefined" || chartObj.checked)))) { processCheckedPill = false; } } if ((indexOfArray === undefined) || processCheckedPill) { if (chartType == 'pie') { pieChart(isDataExists, JSON.stringify(chartArray), name, indexOfChartArry, valueIndex); } else if (chartType == 'donut') { pieChart(isDataExists, JSON.stringify(chartArray), name, indexOfChartArry, valueIndex, true); } else if (chartType == 'bar' || chartType == 'column') { var dataTosend = '["' + headerName + '"]~' + JSON.stringify(chartArray); columnChart(isDataExists, dataTosend, name, indexOfChartArry, chartType, valueIndex) } } if (!limitExceeded) { chartObj.n = name; chartObj.t = chartType; chartObj.cl = colIndex; chartObj.v = colValue; if (indexOfArray === undefined) { chartArr.push(chartObj); if (requestJSON && iviewButtonStyle != "old" && ivirMainObj && ivirMainObj.chart && ivirMainObj.chart.length > 0) { $("#ivirMainDataTableWrapper").show(); } if (!$("#ivirChartPills").hasClass('pillsAdded')) createChartPills(); else upateTheChartPills(indexOfChartArry, name); } else { //highlight0pillCB if (processCheckedPill) { if (!(requestJSON && iviewButtonStyle != "old")) {//temp $(".ivirChartCheckBox").prop('checked', false).removeAttr('checked'); } $("#chartpillCB" + indexOfArray).prop('checked', true).attr('checked', 'checked'); } else { $("#chartpillCB" + indexOfArray).prop('checked', false).removeAttr('checked'); } $("#ivirchart" + indexOfArray + "CndtnPill .ivirCndtnName").attr('title', "Edit " + name).text(name); } } else { showAlertDialog("warning", appGlobalVarsObject.lcm[23]); } setSmartViewHeight(); return true; } //reset this values in resetSmartViewVariables function var nxtScrollSize = 100; //default record size for datatable initilization var defaultRecsPerPage = 100; //fetch size value var checkNextDBRowsExist = true; //fetch size info, true if webservice call is required var dtPageNo = 1; //iview page no for datatable var dtTotalRecords = 0; //datatable current page record count var dtDbTotalRecords = 0; //datatable total records var autoAppendRecords = false; //true - lazy binding, which will automatically append all records to datatable after datatable initilization var pageScrollToEnd = false; //flag used to check page is scrolled to end of div var scrollTopPosition = 0; //to get the scroll position of the div before datatable draw event & update the scroll position to same after draw event /** * The main function will be called on load of the interactive report * Also have the configuration of data table grouping logics and more * @author ManiKanta + Prashik * @Date 2018-11-19T14:52:42+0530 * @param {String} task To re-apply or to clear or grouping * @param {Numeric} index In case of group or groupApply this param have the value of the grouped column * @param {Array/Object} totalArray The info about the subtotal for that group * @param {Array/Object} grandTotalArray Info about any grandtotal * @return {} */ function createIvirDataTable(task, index, totalArray, grandTotalArray) { var heightOfDT = $(".iviewTableWrapper")[0].offsetHeight + "px"; var dataTblObj = {}; var pillsAccordionHtml = ""; let accordianClone = ""; if (task == "clear" || task == "groupApply" || task == "group") { pillsAccordionHtml = $("#pillsWrapper").html(); } dataTblObj.scrollY = heightOfDT; dataTblObj.scrollX = true; // dataTblObj.dom = "lfrtip"; // dataTblObj.dom = "pfltip"; //dataTblObj.dom = "<'container-fluid'<'row'<'col-md-12 pull-right'p>><'row ivirFilterRow'<'col-md-3'f><'#filterWrapper.col-md-3'><'col-md-6 pull-right'l>>>tip"; dataTblObj.dom = "<'#ivirCustomContainer.container-fluid'<'row'<'#pillsWrapper.col-md-6 col-sm-6'><'col-md-6 col-sm-6 pull-right'l>>><'#ivirMainDataTableWrapper'<'iviewPreTableCustom'>t<'iviewPostTableCustom'>>"; dataTblObj.scrollCollapse = true; // dataTblObj.searching = false; dataTblObj.colReorder = false; dataTblObj.language = { search: "_INPUT_", searchPlaceholder: "Search...", "lengthMenu": "Show _MENU_ rows", /** * set next/prev icons */ paginate: { //next: '', //previous: '' next: 'navigate_next', previous: 'navigate_before' }, // "zeroRecords": "Nothing found - sorry", // "info": "Showing page _PAGE_ of _PAGES_", // "infoEmpty": "No records available", // "infoFiltered": "(filtered from _MAX_ total records)" } dataTblObj.lengthMenu = [10, 25, 50, 75, 100, 250, 500]; dataTblObj.lengthChange = false; dataTblObj.buttons = [ /*'copy', 'csv', 'excel', 'pdf', 'print'*/ { extend: 'copyHtml5', text: 'Copy', title: IVIRCaption, exportOptions: { // columns: ':visible', stripHtml: true, trim: false, stripNewlines: false, decodeEntities: false, columns: function (idx, data, node) { var isVisible = ivirDataTableApi.column(idx).visible(); var isForExport = true; if ((isChkBox == "true" && idx == 0) || !isVisible) { isForExport = false; } return isForExport }, rows: '' } }, { extend: 'csvHtml5', text: 'CSV', title: IVIRCaption, exportOptions: { stripHtml: false, trim: false, stripNewlines: false, decodeEntities: false, columns: function (idx, data, node) { var isVisible = ivirDataTableApi.column(idx).visible(); var isForExport = true; if ((isChkBox == "true" && idx == 0) || !isVisible) { isForExport = false; } return isForExport }, rows: '' } }, { extend: 'excelHtml5', text: 'Excel', title: IVIRCaption, // title: "", exportHF: ivExportHF, // autoFilter: true, exportOptions: { stripHtml: false, trim: false, stripNewlines: false, decodeEntities: false, columns: function (idx, data, node) { var isVisible = ivirDataTableApi.column(idx).visible(); var isForExport = true; if ((isChkBox == "true" && idx == 0) || !isVisible) { isForExport = false; } return isForExport }, rows: '' }, createEmptyCells: true, }, { extend: 'pdfHtml5', text: 'PDF', title: IVIRCaption, exportHF: ivExportHF, exportOptions: { stripHtml: false, trim: false, stripNewlines: false, decodeEntities: false, columns: function (idx, data, node) { var isVisible = ivirDataTableApi.column(idx).visible(); var isForExport = true; if ((isChkBox == "true" && idx == 0) || !isVisible) { isForExport = false; } return isForExport }, rows: '' }, customize: function (doc) { doc.defaultStyle.fontSize = 8; doc.styles.tableHeader.fontSize = 8; doc.content.filter((data) => { return data.table })[0].table.widths = Array(doc.content.filter((data) => { return data.table })[0].table.body[0].length + 1).join('%').split(''); } }, { extend: 'print', text: 'Print', title: "", exportHF: ivExportHF, exportOptions: { stripHtml: false, trim: false, stripNewlines: false, decodeEntities: false, columns: function (idx, data, node) { var isVisible = ivirDataTableApi.column(idx).visible(); var isForExport = true; if ((isChkBox == "true" && idx == 0) || !isVisible) { isForExport = false; } return isForExport }, rows: '' }, }, { extend: 'print', text: 'HTML', // title: '', title: "", // message: '
' + printTitle + '

' + IVIRCaption + '

', exportHF: ivExportHF, // autoPrint: false, exportOptions: { stripHtml: false, trim: false, stripNewlines: false, decodeEntities: false, columns: function (idx, data, node) { var isVisible = ivirDataTableApi.column(idx).visible(); var isForExport = true; if ((isChkBox == "true" && idx == 0) || !isVisible) { isForExport = false; } return isForExport }, rows: '' }, htmlExport: true }, { text: 'JSON', title: IVIRCaption, action: function (e, dt, button, config) { this.processing(true); var data = dt.buttons.exportData(); $.fn.dataTable.fileSave( new Blob([JSON.stringify(data)]), `${IVIRCaption}.json` ); this.processing(false); } } ]; dataTblObj.select = { style: "multi" }; dataTblObj.paging = true; //var pageLength = ""; //"pageLength": 50 //pageLength = ivirDataTableApi ? ivirDataTableApi.page.info().length : (ivirMainObj.pageLength || 10); //dataTblObj.pageLength = pageLength; dataTblObj.pageLength = pageLength = -1; dataTblObj.aaSorting = []; dataTblObj.orderClasses = false; /** * datatable 1st time initialization complete call back function * @author Prashik * @Date 2019-04-11T12:08:56+0530 */ dataTblObj.initComplete = function (settings, json) { /** * datatable 1st time initialization complete pre call back hook * @author Prashik * @Date 2020-05-20T12:08:56+0530 */ try { axDatatablePreInitComplete(settings, json); } catch (ex) { }; if ($("#hdnIsParaVisible").val() != "hidden") { $("[id=dvSelectedFilters]").removeClass("d-none"); } $("#ivirCButtonsWrapper").removeClass("d-none"); if (appGlobalVarsObject._CONSTANTS.compressedMode) { appGlobalVarsObject.methods.toggleCompressModeUI($('body')); } $(".animationLoading").hide(); var scrollExist = $(".dataTables_scrollBody").hasScrollBar(); if ($.isEmptyObject(advFiltersObjectToApply) || advFiltersObjectToApply.somedummyfilterjsobjectkey) { if (scrollExist) $("#requestNextRecords").hide(); else $("#requestNextRecords").show(); } var specialRowCnt = getSpecialRowCount(); if (getAjaxIviewData && (dtDbTotalRecords > nxtScrollSize || specialRowCnt > 0 ? ivDatas.length > nxtScrollSize : false)) appendRowsAfterLoad(); //appends remaining records(except default record count - nxtScrollSize) to the grid after datatable initilization autoSplitChecker(); if (!responsiveColumnWidth) { // $(".gridData").css({ "width": `${visibleTableWidth}px` }); } try { recordsExist = this.fnSettings().fnRecordsTotal() > 0; } catch (ex) { } /** * datatable 1st time initialization complete post call back hook * @author Prashik * @Date 2020-05-20T12:08:56+0530 */ try { axDatatablePostInitComplete(settings, json); } catch (ex) { }; setTimeout(function () { $(window).trigger("resize"); if (!responsiveColumnWidth) { forceColumnWidth(); } }, 0); }; if (getAjaxIviewData) { var recCount = `
question_mark `; dataTblObj.preDrawCallback = function (settings) { scrollTopPosition = Math.round($(".dataTables_scrollBody").scrollTop()) }; dataTblObj.drawCallback = function (settings) { /** * datatable pre in drawCallback hook * @author Prashik * @Date 2020-05-20T12:08:56+0530 */ try { axDatatablePreInDrawCallBack(settings); } catch (ex) { }; $('#GridView1 tbody').append($('#GridView1 tr.gtot-no-sort').detach()); enableMobileCards(); expandCollapseCardsLogic(); drawCallbackPaginationLogic(); if (!responsiveColumnWidth) { forceColumnWidth(); } /** * datatable post in drawCallback hook * @author Prashik * @Date 2020-05-20T12:08:56+0530 */ try { axDatatablePostInDrawCallBack(settings); } catch (ex) { }; } } else { dataTblObj.drawCallback = function (settings) { /** * datatable pre in drawCallback hook * @author Prashik * @Date 2020-05-20T12:08:56+0530 */ try { axDatatablePreInDrawCallBack(settings); } catch (ex) { }; enableMobileCards(); expandCollapseCardsLogic(); if (!responsiveColumnWidth) { forceColumnWidth(); } /** * datatable post in drawCallback hook * @author Prashik * @Date 2020-05-20T12:08:56+0530 */ try { axDatatablePostInDrawCallBack(settings); } catch (ex) { }; } } if (isChkBox == "true" || (rowOptionsExist && !false)) { dataTblObj.columnDefs = [{ "targets": 0, "orderable": false }]; } else { dataTblObj.columnDefs = []; } if (task == undefined) { getAllNumericColumns(); dataTblObj.columnDefs.push({ className: "dt-right", "targets": numericColumns }); } if (!responsiveColumnWidth) { dataTblObj.autoWidth = false; } if (getAjaxIviewData) { /** * cell creation and manipulation datatable callback function * @author Prashik * @Date 2019-04-11T12:13:45+0530 */ dataTblObj.columnDefs.push({ "targets": "_all", createdCell }); /** * row creation and manipulation datatable callback function * @author Prashik * @Date 2019-04-11T12:15:12+0530 * @param {object} row : row html object * @param {object} data : row data object * @param {int} dataIndex : row index */ dataTblObj.createdRow = (row, data, dataIndex) => { saveSubHeadInfo(row, data, dataIndex); if (typeof rowRefreshIndex != "undefined") { dataIndex = rowRefreshIndex; } try { if (cardTemplatingHTML) { cardTemplatingHTML = getLayoutHTML(cardTemplatingHTML); renderRowTemplete(cardTemplatingHTML, row, data, dataIndex); rowRefreshIndex = undefined; return; } } catch (ex) { } if (data[getPropertyAccess("axrowtype")] && (data[getPropertyAccess("axrowtype")] == "stot" || data[getPropertyAccess("axrowtype")] == "subhead" || data[getPropertyAccess("axrowtype")] == "gtot")) { $(row).addClass("specialRow"); } if (data[getPropertyAccess("axrowtype")] && data[getPropertyAccess("axrowtype")] == "gtot") { $(row).addClass("gtot-no-sort"); } /** * Expand/Collapse TreeMethod * @author Prashik * @Date 2019-04-11T12:17:31+0530 */ if (cellHeaderConf.root_class_index) { $(row).addClass((data[getPropertyAccess(cellHeaderConf.root_class_index)] ? data[getPropertyAccess(cellHeaderConf.root_class_index)].toString() : "")); } try { createdRowEndCustom(row, data, dataIndex); } catch (ex) { }; rowRefreshIndex = undefined; } tableWidth = 0; visibleTableWidth = 0; if (!responsiveColumnWidth) { try { horizontalScrollExist = true; $("#GridView1 thead tr th:eq(0)").removeClass("sorting_disabled"); widthIncrement = $("#GridView1 thead tr th:eq(0)").outerWidth() - $("#GridView1 thead tr th:eq(0)").width() || 0; } catch (ex) { widthIncrement = 0; } } /** * smartviews column properties initialization * @author Prashik * @Date 2019-04-11T12:18:30+0530 */ dataTblObj.columns = FieldName.map((fld, ind) => { //return {"data": fld, "title": HeaderText[ind]} //return {"data": getPropertyAccess(fld)} //return {"data": getPropertyAccess(fld), "type": colTypes[ivHeadRows[fld]["@type"] || (fld == "rowno" ? "n" : "c")]} var width = ivirMainObj?.design?.filter(dsign => dsign.name == fld)?.[0]?.width || ivHeadRows[fld]["@width"] || (isListView && ind == 0 ? listViewCheckBoxSize : minCellWidth); if (!responsiveColumnWidth) { (ivHeadRows[fld]["@hide"].toString() || "true") == "false" ? visibleTableWidth += (parseInt(width, 10) + widthIncrement) : ""; tableWidth += (parseInt(width, 10) + widthIncrement); } else { (ivHeadRows[fld]["@hide"].toString() || "true") == "false" ? tableWidth += (parseInt(width, 10) + widthIncrement) : ""; } return { "data": getPropertyAccess(fld), "name": getPropertyAccess(fld), "width": `${width}px`, "className": colAlign[ivHeadRows[fld]["@align"] || (fld == "rowno" && !enableCardsUi ? "Center" : "Left")] } }); if (!responsiveColumnWidth) { } $(ivirTable).css({ "width": `${tableWidth}px` }); /** * smartviews 1st page data initialization * @author Prashik * @Date 2019-04-11T12:18:30+0530 */ dataTblObj.data = ivDatas.length != undefined ? ivDatas.slice(0, nxtScrollSize) : ivDatas; dataTblObj.deferRender = true; } else { dataTblObj.columnDefs.push({ "targets": "_all", "createdCell": (td, cellData, rowData, row, col) => { isSpecialRow = false; var colID = FieldName[col]; var rowDataAccess = getPropertyAccess(colID); if (cellData != "" && cellData != " ") { if (col != 0) { if (HeaderText[col] != "" && HeaderText[col] != "$nbsp;" && enableCardsUi && !cardTemplatingHTML) { $(td).children().wrap(`
`); $(td).prepend(""); } } } try { createdCellEndCustom(td, cellData, rowData, row, col); } catch (ex) { }; $(td).attr("data-field-name", colID); } }); } if (responsiveColumnWidth) { var widthOfGrid = tableWidth || $("table#GridView1")[0].offsetWidth; var windowWidth = $(window).width(); if ((document.title == "Iview" && typeof axpResp != "undefined" && axpResp == "true") || widthOfGrid <= windowWidth) $(".gridData").css({ "width": "100%", "min-width": "100%" }); } if (grandTotalArray && grandTotalArray.length != 0) { dataTblObj.footerCallback = function (row, data, start, end, display) { var api = this.api(), data; // Remove the formatting to get integer data for summation var intVal = function (i) { return typeof i === 'string' ? i.replace(/[\$,]/g, '') * 1 : typeof i === 'number' ? i : 0; }; for (var i = 0; i < grandTotalArray.length; i++) { if (grandTotalArray[i] != "-1") { // Total over all pages var presIndex = grandTotalArray[i]; total = api .column(presIndex) .data() .reduce(function (a, b) { if (b.trim() == "" || b.trim() == " ") b = 0; var res = anchorRegexPatter.test(b); if (res) b = $(b).text() b = checkFroNegativeValue(b) return intVal(a) + intVal(b); }, 0); // Total over this page pageTotal = api .column(presIndex, { page: 'current' }) .data() .reduce(function (a, b) { if (b.trim() == "" || b.trim() == " ") b = 0; var res = anchorRegexPatter.test(b); if (res) b = $(b).text() b = checkFroNegativeValue(b) return intVal(a) + intVal(b); }, 0); // Update footer $(api.column(presIndex).footer()).html( //'$' + pageTotal + ' ( $' + total + ' total)' //commaSeparateNumber(pageTotal) + '
Grand Total : ' + commaSeparateNumber(total) '
' + (checkNextDBRowsExist ? 'Running' : 'Grand') + ' Total : ' + commaSeparateNumber(total.toFixed(2)) ); } } } ivirDataTableApi.fixedColumns().relayout(); $("#iviewFrame").removeClass("hideDatatableFooter"); } else { $("#iviewFrame").addClass("hideDatatableFooter"); } // dataTblObj.fixedColumns = true; // dataTblObj.fixedColumns = { // leftColumns: 3, // rightColumns: 1 // }; if (ivirVisibleColumns.length > 0) { if (task == 'group' || task == 'groupApply') { task != 'groupApply' ? colIndex = index : colIndex = ivirMainObj.group[index].cl; var idx = ivirVisibleColumns.indexOf(colIndex); ivirVisibleColumns.splice(idx, 1); var prevCheckedGroup = $("[id^='grouppillCB']:checked"); if (prevCheckedGroup.length) { var prevCheckdIdx = prevCheckedGroup.data("index"); prevCheckdIdx = ivirMainObj.group[prevCheckdIdx].cl; if ($.inArray(prevCheckdIdx, ivirVisibleColumns) === -1) ivirVisibleColumns.push(prevCheckdIdx); } } var allVisibleColArray = ivirVisibleColumns; if (isChkBox == "true" || (rowOptionsExist && !false)) allVisibleColArray.push(0); dataTblObj.columnDefs.push({ targets: ivirVisibleColumns, visible: true }); dataTblObj.columnDefs.push({ targets: '_all', visible: false, searchable: searchHiddenColumnsInReports }); dataTblObj.columnDefs.push({ targets: 0, searchable: false }); } if (task == undefined || task == "clear") { if (task == "clear") { groupingCol = ""; $(".rightClickMenu li.freeze").removeClass('d-none'); ivirDatatable.fnDestroy(); $(ivirTable + " tfoot td").html(""); } /** * smartviews defination hidden coulmns logic implementation * @author Prashik * @Date 2019-04-11T12:18:30+0530 */ dataTblObj.columnDefs.push({ targets: hiddenColumnIndex, visible: false, searchable: searchHiddenColumnsInReports }); dataTblObj.columnDefs.push({ targets: 0, searchable: false }); //dataTblObj.responsive = true; //dataTblObj.fixedHeader = true; $.fn.dataTable.moment('DD/MM/YYYY'); $.fn.dataTable.ext.errMode = 'none'; $.fn.dataTable.Api.register('order.neutral()', function () { return this.iterator('table', function (s) { s.aaSorting.length = 0; s.aiDisplay.sort(function (a, b) { return a - b; }); s.aiDisplayMaster.sort(function (a, b) { return a - b; }); }); }); try { /** * Datable init object customization hook * @author Prashik * @Date 2019-08-20T12:18:30+0530 * *create axUpdateDtConfig function in custom JS file **function axUpdateDtConfig(dataTblObj){return dataTblObj} * * Configuration changes can be done as follows **In case of Sorting(oreracle configuration) ***modify existing configuration ****=> dataTblObj.columnDefs.filter((defVal)=>{return defVal.targets == "_all" && typeof defVal.orderable != "undefined"})[0].orderable = false ***add configuration ****=> dataTblObj.columnDefs.push({"targets": "_all", "orderable": false});}) */ dataTblObj = $.isEmptyObject(newDtConfig = axUpdateDtConfig(dataTblObj)) ? dataTblObj : newDtConfig; } catch (ex) { } // dataTblObj.sScrollX = "200%"; ivirDataTableApi = $(ivirTable).DataTable(dataTblObj); //new $.fn.dataTable.FixedHeader( ivirDataTableApi ); //ivirDataTableApi.columns(hiddenColumnIndex).visible(false); //if we want to add some validation on initialization of datatable use below code //if (task != "clear") // ivirInitailCheck(); if (task == "clear") { if (pillsAccordionHtml != "") { $("#pillsWrapper").html(pillsAccordionHtml); } } } else if (task == 'group' || task == 'groupApply') { var colIndex = ""; task != 'groupApply' ? colIndex = index : (colIndex = ivirMainObj.group[index].cl, totalArray = ivirMainObj.group[index].t); groupingCol = colIndex; $(".rightClickMenu li.freeze").addClass('d-none'); var allColsLength = ivirDataTableApi.columns()[0].length; // if (isChkBox == "true") { // dataTblObj.columnDefs = [{ "targets": 0, "orderable": false }, { "visible": false, "targets": colIndex }]; // } else { // dataTblObj.columnDefs = [{ "visible": false, "targets": colIndex }]; // } dataTblObj.columnDefs.push({ targets: colIndex, visible: false, searchable: false }); dataTblObj.columnDefs.push({ targets: 0, searchable: false }); dataTblObj.order = [ [colIndex, 'asc'] ]; dataTblObj.drawCallback = function (settings) { /** * datatable pre in drawCallback hook * @author Prashik * @Date 2020-05-20T12:08:56+0530 */ try { axDatatablePreInDrawCallBack(settings); } catch (ex) { }; enableMobileCards(); expandCollapseCardsLogic(); var api = this.api(); var rows = api.rows({ page: 'current' }).nodes(); var last = null; var sortedArray = settings.aaSorting; var tmpGrpTotalArray = []; var tmpLastFld = ""; var presGroupCnt = 0; api.column(colIndex, { page: 'current' }).data().each(function (group, colIdx) { var orgnalGrpName = group; var res = anchorRegexPatter.test(group); if (res) group = $(group).text() if (last !== group) { var presentGroupHtml = ""; presentGroupHtml += ''; if (totalArray == undefined || totalArray.length == 0) { presentGroupHtml += '' + orgnalGrpName + ''; } else { //if ($.inArray(1, totalArray) == -1) // presentGroupHtml += '' + group + ''; //else presentGroupHtml += '' + orgnalGrpName + ''; for (var j = 0; j < allColsLength; j++) { if (j == colIndex) continue var inArray = $.inArray(j, totalArray); if (inArray != -1) { if (sortedArray[sortedArray.length - 1][0] == colIndex) { var defaultValToAdd = "0.00"; var aggrFun = totalArray[inArray - 1]; if (aggrFun === "min" || aggrFun === "max") { //then default value should not be 0 since 0 is taking as min val defaultValToAdd = ""; } presentGroupHtml += '' + defaultValToAdd + ''; } else { presentGroupHtml += ''; } } else { if (j !== 0) presentGroupHtml += ''; } } } presentGroupHtml += ''; $(rows).eq(colIdx).before( presentGroupHtml ); last = group; } if (sortedArray[sortedArray.length - 1][0] == colIndex) if (totalArray) { val = api.row(api.row($(rows).eq(colIdx)).index()).data(); if (tmpLastFld == "") { //presGroupCnt++ tmpLastFld = group } else if (tmpLastFld !== group) { //hook to go inside wheb grouping changed so we can add comma logics for old group sum //for (var i = 0; i < tmpGrpTotalArray.length; i++) { // var lastTotalVal = $("#groupTotal" + tmpLastFld.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + tmpGrpTotalArray[i]).text(); // $("#groupTotal" + tmpLastFld.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + tmpGrpTotalArray[i]).text(commaSeparateNumber(lastTotalVal)); //} _groupChanging("") presGroupCnt = 0; tmpLastFld = group; } else { presGroupCnt++; } //for (var k = 1; k <= totalArray.length; k = k + 3) { var typeCndtnSelected = totalArray[0]; var indexSelected = totalArray[1]; var valueSelected = getPropertyAccess(totalArray[2]); val = api.row(api.row($(rows).eq(colIdx)).index()).data(); var thisSelector = ``; thisSelector = valueSelected; val[thisSelector] = typeof val[thisSelector] == "object" && val[thisSelector] != null ? val[thisSelector].display : (val[thisSelector] != null ? val[thisSelector] : ""); var valueOfRow = val[thisSelector].replace(/,/g, ""); var res = anchorRegexPatter.test(valueOfRow); if (res) valueOfRow = $(valueOfRow).text(); valueOfRow = checkFroNegativeValue(valueOfRow); if (valueOfRow !== "") { valueOfRow = valueOfRow || 0; valueOfRow = parseFloat(valueOfRow); if (typeCndtnSelected == 'sum' || typeCndtnSelected == 'avg') { if (tmpGrpTotalArray.length == 0 || $.inArray(indexSelected, tmpGrpTotalArray) == -1) tmpGrpTotalArray.push(indexSelected); $("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text(parseFloat($("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text()) + valueOfRow); } else if (typeCndtnSelected == 'count') { var valueToAdd = (parseInt($("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text())) + 1; $("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text(valueToAdd); } else if (typeCndtnSelected == 'max') { var prevVal = $("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text(); if (prevVal === "") { //means first time then add the default value as present value -1 so that it will go inside in next loop prevVal = valueOfRow - 1; } prevVal = parseInt(prevVal); if (valueOfRow > prevVal) { $("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text(valueOfRow); } } else if (typeCndtnSelected == 'min') { var prevVal = $("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text(); if (prevVal === "") { //means first time then add the default value as present value +1 so that it will go inside in next loop prevVal = valueOfRow + 1; } prevVal = parseInt(prevVal); if (valueOfRow < prevVal) { $("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text(valueOfRow); } } } //else { // //$("#groupTotal" + group.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + indexSelected).text(0); //} //} if (ivirDataTableApi.page.info().length - 1 == colIdx || (ivirDataTableApi.rows().count() - 1 == colIdx && presGroupCnt !== 0)) { //hook to go inside at the end of the looping so we can add comma logics //for (var i = 0; i < tmpGrpTotalArray.length; i++) { // var lastTotalVal = $("#groupTotal" + tmpLastFld.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + tmpGrpTotalArray[i]).text(); // $("#groupTotal" + tmpLastFld.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + tmpGrpTotalArray[i]).text(commaSeparateNumber(lastTotalVal)); //} _groupChanging(); } function _groupChanging() { for (var u = 1; u <= totalArray.length; u = u + 2) { var task = totalArray[u - 1]; var presColIdx = totalArray[u]; var lastTotalVal = $("#groupTotal" + tmpLastFld.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + presColIdx).text(); if (lastTotalVal === "0.00" || lastTotalVal === "") lastTotalVal = "0"; if (task === "avg") { lastTotalVal = lastTotalVal / (presGroupCnt + 1); $("#groupTotal" + tmpLastFld.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + presColIdx).text(lastTotalVal); } else { $("#groupTotal" + tmpLastFld.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + presColIdx).text(commaSeparateNumber(lastTotalVal)); } } } } }); drawCallbackPaginationLogic(); if (!responsiveColumnWidth) { forceColumnWidth(); } /** * datatable post in drawCallback hook * @author Prashik * @Date 2020-05-20T12:08:56+0530 */ try { axDatatablePostInDrawCallBack(settings); } catch (ex) { }; }; // for foooter grandTotal and page total ivirDatatable.fnDestroy(); $(ivirTable + " tfoot td").html(""); try { /** * Datable init object customization hook * @author Prashik * @Date 2019-08-20T12:18:30+0530 * *create axUpdateDtConfig function in custom JS file **function axUpdateDtConfig(dataTblObj){return dataTblObj} * * Configuration changes can be done as follows **In case of Sorting(oreracle configuration) ***modify existing configuration ****=> dataTblObj.columnDefs.filter((defVal)=>{return defVal.targets == "_all" && typeof defVal.orderable != "undefined"})[0].orderable = false ***add configuration ****=> dataTblObj.columnDefs.push({"targets": "_all", "orderable": false});}) */ dataTblObj = $.isEmptyObject(newDtConfig = axUpdateDtConfig(dataTblObj)) ? dataTblObj : newDtConfig; } catch (ex) { } ivirDataTableApi = $(ivirTable).DataTable(dataTblObj); if (pillsAccordionHtml != "") $("#pillsWrapper").html(pillsAccordionHtml); // Order by the grouping $(ivirTable + ' tbody').off('click.grpClick'); $(ivirTable + ' tbody').on('click.grpClick', 'tr.group', function () { var currentOrder = ivirDataTableApi.order()[0]; if (currentOrder[0] === colIndex && currentOrder[1] === 'asc') { ivirDataTableApi.order([colIndex, 'desc']).draw(); } else { ivirDataTableApi.order([colIndex, 'asc']).draw(); } }); } // new $.fn.dataTable.sScrollX( ivirDataTableApi, "10px" ); // new $.fn.dataTable.ColReorder( ivirDataTableApi, { // bRealtime: false // } ); ivirDataTableApi.on('buttons-processing', function (e, indicator) { if (!indicator) { ShowDimmer(false); } }); ivirDatatable = $(ivirTable).dataTable(); if (getAjaxIviewData) { var lastScrollTop = 0; //if datatable scrolls bottom of the page then check if next db rows exists & call webservice and append the rows to the grid $(".dataTables_scrollBody").on("scroll", function (e) { var st = Math.round($(this).scrollTop()); if (st > lastScrollTop) { //append rows to grid only if vertical scroll bar is moved var $o = $(e.currentTarget); var scrollBarExists = $(this).hasScrollBar(); var scrollAtTheEnd = scrollBarExists ? $o[0].scrollHeight - Math.round($o.scrollTop()) <= $o.outerHeight() : $o[0].scrollHeight - Math.round($o.scrollTop()) < $o.outerHeight(); if (!pageScrollToEnd && scrollAtTheEnd) { if (checkNextDBRowsExist && nxtScrollSize < dtDbTotalRecords) //if rows exists in the client side and not binded to the grid then append remaining records to the grid appendNextDtRecords(); else if (checkNextDBRowsExist) { //call webservice & append next records to the grid based on fetch size showDataTableLoading(); setTimeout(function () { getNextDtRecords(dtPageNo + 1); }, 0) } } } lastScrollTop = st; }); } /** * @description: drawCallback pagination logic * @author Prashik * @date 2020-07-28 */ function drawCallbackPaginationLogic() { if (dtDbTotalRecords == 0) if ($("#rowsTxtCount").length) $("#rowsTxtCount").hide(); else $("#rowsTxtCountNew").hide(); else { var rowsTo = dtDbTotalRecords; if (dtDbTotalRecords > iviewDataWSRows && dtDbTotalRecords > nxtScrollSize) { //if autoAppendRecords(lazy binding) is enabled then display total page info, ex: Rows: 1-3500 of 3500 rowsTo = recCount = dtDbTotalRecords; if (autoAppendRecords) setTimeout(function () { appendNextDtRecords(); }, 0);//settimeout 0 means add to last of js call stack and execute immediately once call stack queue finishes // else // console.log(new Date() + ': append completed') } else if (!checkNextDBRowsExist) { //record count < fetch size then display, ex: Rows: 1-18 of 18 recCount = dtDbTotalRecords; } else if (iviewDataWSRows <= nxtScrollSize) { if ($("#rowsTxtCount").length) $("#requestNextRecords").length == 0 ? $("#rowsTxtCount").append("chevron_right") : ""; else $("#requestNextRecords").length == 0 ? $("#rowsTxtCountNew").append("chevron_right") : ""; setSmartViewHeight(); var scrollExist = $(".dataTables_scrollBody").hasScrollBar(); if ($.isEmptyObject(advFiltersObjectToApply) || advFiltersObjectToApply.somedummyfilterjsobjectkey) { if (scrollExist) $("#requestNextRecords").hide(); else $("#requestNextRecords").show(); } if (!checkNextDBRowsExist) recCount = dtDbTotalRecords; } $("#lblCurPage").html('Rows: 1-' + rowsTo + ' of ' + (totRowCount == "" ? recCount : "")); //record count > fetch size then display hyperlink button to get record count hideDataTableLoading(); } setSmartViewHeight(); } /** * Expand Collapse Mobile Cards Logic * @author Prashik * @Date 2019-05-22T13:17:07+0530 */ function expandCollapseCardsLogic() { if (enableCardsUi) { $("#GridView1 tbody td:visible").addClass("visibleMobileCol"); $("#GridView1 tbody td:hidden").addClass("hiddenMobileCol"); $("#GridView1").off("click.expandCollapse").on("click.expandCollapse", "td:not(.isHyperlinkUI)", function (e) { if ($(e.target).parents(".rowOptionsExist").length > 0) { return true; } $(this).parents("tr").children("td").toggleClass("forceShow"); setSmartViewHeight(); }); $("#GridView1 tbody tr").css("height", ""); } } //if rows exists in the client side and not binded to the grid then append remaining records to the grid function appendNextDtRecords() { showDataTableLoading(); var currRowSize = nxtScrollSize; nxtScrollSize += defaultRecsPerPage; var currScrollSize = 0; if (autoAppendRecords) { //all records fetch to the client side if lazy load is true currScrollSize = dtDbTotalRecords; //append next records(from nxtScrollSize to dtDbTotalRecords) to the grid autoAppendRecords = false; } else currScrollSize = nxtScrollSize > dtDbTotalRecords ? dtDbTotalRecords : nxtScrollSize, checkNextDBRowsExist = true; ivirDataTableApi.rows.add(ivDatas.slice(currRowSize, currScrollSize)).draw(false); //append next records to the datatable & redraw it } //remaining records will append to datatable after datatable created with 100 records function appendRowsAfterLoad() { if (ivDatas.length != undefined) { setTimeout(function () { var currRowSize = nxtScrollSize; defaultRecsPerPage = iviewDataWSRows; var currScrollSize = 0; if (dtDbTotalRecords > iviewDataWSRows) { //if lazy load is enabled then append all records to the datatable & all pages are cached nxtScrollSize = currScrollSize = defaultRecsPerPage; autoAppendRecords = true; } else { nxtScrollSize += defaultRecsPerPage; var specialRowCnt = getSpecialRowCount(); currScrollSize = nxtScrollSize > dtDbTotalRecords ? (specialRowCnt > 0 ? ivDatas.length : dtDbTotalRecords) : nxtScrollSize; } if (currRowSize < currScrollSize) { ivirDataTableApi.rows.add(ivDatas.slice(currRowSize, currScrollSize)).draw(false); //append next records to the datatable & redraw it } else if (isPivotReport) { var appendRecords = ivDatas.slice(currRowSize, dtDbTotalRecords); if (appendRecords.length >= 1000) { lazyBinding = true; ivirDatatable.DataTable.settings[0].oInit.scroller = true; $(ivirTable).trigger($.Event('preInit' + '.dt'), ivirDatatable.DataTable.settings); $(ivirTable).trigger($.Event('init' + '.dt'), ivirDatatable.DataTable.settings); setSmartViewHeight(); } ivirDataTableApi.rows.add(appendRecords).draw(false); } }, 0); } } //var heightOfFinalDT = $(".iviewTableWrapper")[0].offsetHeight - ($("#ivirCustomContainer")[0].offsetHeight + $(".dataTables_scrollHead")[0].offsetHeight + $(".dataTables_scrollFoot")[0].offsetHeight + $(".dataTables_info")[0].offsetHeight + 5);//dataTables_scrollHead & footer as well //var heightOfFinalDT = $(".iviewTableWrapper")[0].offsetHeight - ($("#ivirCustomContainer")[0].offsetHeight + 5);//dataTables_scrollHead & footer as well //var heightOfFinalDT = $(".iviewTableWrapper")[0].offsetHeight - ($("#ivirCustomContainer")[0].offsetHeight + $(".dataTables_scrollHead")[0].offsetHeight + $(".dataTables_scrollFoot")[0].offsetHeight - 17);//dataTables_scrollHead & footer as well //var heightOfFinalDT = $(".iviewTableWrapper")[0].offsetHeight - ($("#ivirCustomContainer")[0].offsetHeight + $(".dataTables_scrollHead")[0].offsetHeight + $(".dataTables_scrollFoot")[0].offsetHeight + 10);//dataTables_scrollHead & footer as well setSmartViewHeight(); if (fixedColumnsObj !== "" && task != 'group' && task != 'groupApply') { fixedColumnsObj = new $.fn.dataTable.FixedColumns(ivirDataTableApi, { iLeftColumns: fixedColumnsObj.s.iLeftColumns }); } constuctDataButton(task); var customButtonHtml = ""; if (requestJSON == true && iviewButtonStyle != "old") { if (task == 'group' || task == 'groupApply') { customButtonHtml += ` `; } else { customButtonHtml += ` ${iviewButtonStyle != "modern" ? `` : `` }`; } $("#ivirCButtonsWrapper").html(` ${iviewButtonStyle != "modern" ? `` : ``} ${customButtonHtml} `);//.addClass("dropdown-submenu"); } else { if (task == 'group' || task == 'groupApply') { customButtonHtml += ''; customButtonHtml += ''; } else { customButtonHtml += ''; customButtonHtml += ''; } customButtonHtml += ''; $("#ivirCButtonsWrapper").html(customButtonHtml); } if (ivirMainObj.chart == undefined) { $("#ivirCButtonsWrapper").hide(); $("#pinnedivirCButtonsWrapper").hide(); } else { $("#ivirCButtonsWrapper").show(); $("#PinnedivirCButtonsWrapper").show(); } if (!$("#iconsUl #myFiltersLi").hasClass('hidden')) { if ($("#accordion")) { $("#accordion").find(".panel-collapse.collapse").removeClass("in"); if (!requestJSON || iviewButtonStyle == "old") { $("#ivirCustomContainer").append($("#accordion")); } } } var allColumns = ivirDataTableApi.columns(); var customHtml = "", axpbtnHTML = ""; if (custBtnIVIR.length !== 0) { customHtml += ''; } $("#customActionBtn").html(customHtml + axpbtnHTML); $('div.dataTables_filter input').addClass('ivirSearchFld form-control'); createMainEventsOnGrid(); ExecuteDatatableExport(); setSmartViewHeight(); } /** * Enable Cards Layout For Mobile * @author Prashik * @Date 2019-05-22T13:21:51+0530 * @return {[type]} [description] */ function enableMobileCards() { if (enableCardsUi || cardTemplatingHTML) { $(".ivirMainGrid thead").hide(); } if (enableCardsUi) { $("#GridView1").css({ "width": "calc(100vw - 20px)" }).addClass('cards'); $("#ivirMainDataTableWrapper").addClass('cardsWrapper'); } if (cardTemplatingHTML) { $("#GridView1").css({ "border-bottom": "initial" }) } } /** * autosplit an iview based on configuration * @author Prashik * @Date 2019-04-11T12:24:12+0530 */ function autoSplitChecker() { let isAutoSplit = ``; if (!getAjaxIviewData) { isAutoSplit = $("#hdnAutoSplit").val(); } else { if (ivConfigurations && (!isMobile || isiPad)) { try { isAutoSplit = getCaseInSensitiveJsonProperty(ivConfigurations.filter((val, ind) => { var thisVal = getCaseInSensitiveJsonProperty(val, "PROPS"); return thisVal && thisVal.toString() && thisVal.toString().toLowerCase() == "autosplit" })[0], ["PROPSVAL"]).toString(); } catch (ex) { } } } if (isAutoSplit != undefined && isAutoSplit.toLowerCase() == "true") callParentNew(`assocateIframe(${true})`, 'function'); } /** * get proper data access key name while accessing data from smartviews datatable object * @author Prashik * @Date 2019-04-11T12:25:16+0530 * @param {string} property : field name * @return {string} : samrtviews data access key */ function getPropertyAccess(property) { return isPerf && !property.startsWith("@") ? "@" + property.toUpperCase() : property; } /** * get proper key name while accessing data from smartviews datatable object * @author Abhishek * @Date 2019-04-12T12:25:16+0530 * @param {string} property : field name * @return {string} : samrtviews data access key */ function getColumnName(property) { return isPerf && property.startsWith("@") ? property.substr(1).toLowerCase() : property; } /** * generate checkbox column cell for smartviews * @author Prashik * @Date 2019-04-11T12:27:26+0530 * @param {[type]} options.col [description] * @param {[type]} options.row [description] * @param {[type]} options.rowData [description] * @return {[type]} [description] */ function generateCellCheckbox({ td, cellData, rowData, row, col, colID, rowDataAccess }) { var checkboxVal = rowData[getPropertyAccess("rowno")]; var listViewData = ``; let isChecked = false; if (typeof rowRefreshIndex != "undefined" && isChkBox == "true" && isCheckedRowRefresh) { isChecked = true; isCheckedRowRefresh = false; } let returnString = ""; if (rowOptionsExist) { let rowOptionsData = rowData["axrowoptions"]; returnString += `
arrow_drop_down
`; } returnString += `
${listViewData}
`; return returnString; } function generateFieldCheckbox({ td, cellData, rowData, row, col, colID, rowDataAccess }) { let isChecked = false; isChecked = (cellData == "T"); let returnString = `
`; return returnString; } function generateCellOnClick(elem, optType, optName, row, rowData) { let onClick = ""; try { rowData = typeof rowData == "undefined" ? ivDatas[parseInt(row) - 1] : rowData; } catch (ex) { rowData = []; } switch (optType.toLowerCase()) { case "action": case "script": onClick = `javascript:callHLaction('${optName}',${row},'${iName}','');setRefreshParent('false');`; break; case "hyperlink": try { if (ivHyperlinks && ivHyperlinks[optName]) { let hyperlinkColumn = ivHyperlinks[optName]["@source"]; if (hyperlinkColumn) { onClick = $(generateCellHyperlink({ td: elem, cellData: rowData[hyperlinkColumn], rowData, row, col: FieldName.indexOf(hyperlinkColumn), colID: hyperlinkColumn, rowDataAccess: getPropertyAccess(hyperlinkColumn) })).attr("onclick") || ""; } } } catch (ex) { } break; } return onClick; } /** * @description: Generate tstruct navigation query string for visible records * @author Prashik * @date 2019-10-01 * @param {*} { td, cellData, rowData, row, col, colID, rowDataAccess } * @returns */ function generateViewNavigation({ td, cellData, rowData, row, col, colID, rowDataAccess }) { var returnData = ``; var recPos = row + 1; var pageType = ``; if (recPos == 1 && dtDbTotalRecords == 1) { pageType = "single"; } else if (recPos == 1) { pageType = "first"; } else if (recPos == dtDbTotalRecords && !checkNextDBRowsExist) { pageType = "last"; } else { pageType = "middle"; } returnData = `&recPos=${recPos}&curPage=${dtPageNo}&pageType=${pageType}&openerIV=${iName}`; return returnData; } function htmlEncode(value) { return $('
').text(value).html(); } function htmlDecode(value) { return $('
').html(value).text(); } /** * implement expand/collapse logic * @author Prashik * @Date 2019-04-11T12:28:33+0530 * @param {object} td :html td object * @param {string} cellData :cellValue * @param {object} rowData :row data object * @param {int} row :row no * @param {int} col :column no * @param {string} colID :column name * @param {string} rowDataAccess :row data access key * @return {string} :cell data html */ function generateExpColTree({ td, cellData, rowData, row, col, colID, rowDataAccess }) { //Expand/Collapse TreeMethod var newCellData = $(td).html(); if (cellHeaderConf.root_atype_index && cellHeaderConf.root_account_index && getPropertyAccess(cellHeaderConf.root_account_index) == rowDataAccess && rowData[getPropertyAccess(cellHeaderConf.root_atype_index)].toString().toLowerCase() == "group") { //cellData = var prefixStr = rowData[rowDataAccess].match(/^([\s]+)/g); prefixStr = prefixStr != null ? prefixStr[0].replace(/ /g, " ") : ""; newCellData = `${prefixStr}${newCellData}`; } return newCellData; } /** * Apply cell data and column logic based on properties * @author Prashik * @Date 2019-04-11T12:53:27+0530 * @param {object} td :html td object * @param {string} cellData :cellValue * @param {object} rowData :row data object * @param {int} row :row no * @param {int} col :column no * @param {string} colID :column name * @param {string} rowDataAccess :row data access key * @return {string} :cell data html */ function processCellData({ td, cellData, rowData, row, col, colID, rowDataAccess }) { cellData = typeof cellData != "undefined" && cellData != null ? cellData.toString() : ``; cellData.indexOf("~") > -1 && (cellData = cellData.replace(/~/g, "
")); if (cellData != " " && col != 0) { var nVal = cellData; if (nVal.indexOf(" ") != -1) nVal = nVal.replace(/ /g, " "); } else if (col == 0) { //set correct row number even in case of pagination cellData = (row + 1).toString(); rowData[getPropertyAccess("rowno")] = cellData; } switch (ColumnType[col]) { case "c": if (trimIviewData) { cellData = cellData.trim(); } else { cellData = cellData.replace(/ /g, " ") } break; case "n": if (cellData != "" && cellData != " " && !cellData.toString().startsWith("(")) { if (isInValidNumber(cellData)) { cellData = "0"; } else if (cellData != "0" && isPerf) { if (ivHeadRows[colID]["@dec"] && (decimalVal = parseInt(ivHeadRows[colID]["@dec"], 10)) && !isInValidNumber(decimalVal)) { //get decimals string var pustZero = Number(cellData.toString().replace(/,/g, "")).toFixed(decimalVal); var getDecimals = ""; if (pustZero.indexOf(".") > -1) { getDecimals = pustZero.substr(pustZero.indexOf(".") + 1) || ""; //preserve commas and append generated decimals if (cellData.indexOf(".") > -1) { cellData = cellData.substr(0, cellData.indexOf(".")) } cellData = cellData + "." + getDecimals; } cellData = Number(cellData).toFixed(decimalVal); } } } break; case "d": cellData = dateCellProcessor(cellData); rowData[rowDataAccess] = cellData; break; } if (rowData[getPropertyAccess("axrowtype")] && (rowData[getPropertyAccess("axrowtype")] == "stot" || rowData[getPropertyAccess("axrowtype")] == "subhead" || rowData[getPropertyAccess("axrowtype")] == "gtot")) { //specialRows.add(row + 1); isSpecialRow = true; SetAxFontCondition($(td), "fontstyle=b"); switch (rowData[getPropertyAccess("axrowtype")]) { case "stot": $(td).addClass("fontBlue"); break; case "subhead": $(td).addClass("fontBlack"); break; case "gtot": $(td).addClass("fontGreen"); break; } if ((isChkBox == "true" || (rowOptionsExist && !false)) && col == 0) { cellData = ""; } } else if (bulkDownloadEnabled) { if (FieldName[col] == "axp_attach") { //check if is grid attachment var gridAttachmentFieldNameRegex = /(dc[0-9]+_image+)|(axp_nga_){1}[a-zA-Z0-9]+/i;///dc[0-9]+_[a-zA-Z]+/g;/dc2_image/axp_nga_* cellData = cellData.split(",").map((val) => { val = val.trim(); var attachTransId = rowData[getPropertyAccess("transid")] || ""; var attachFieldname = rowData[getPropertyAccess("fieldname")] || ""; var isDbAttachment = (rowData[getPropertyAccess("isdbattach")] || "") == "true"; var attachtype = ""; if (gridAttachmentFieldNameRegex.test(rowData[getPropertyAccess("fieldname")] || "")) { attachtype = "gridattach"; } else if (attachTransId == "" && attachFieldname == "" && val != "") { attachtype = "fullpath"; attachTransId = "-"; attachFieldname = "-"; } else if (attachFieldname == "") { attachtype = "header"; } else { attachtype = "image"; } var attachFileName = attachtype == "gridattach" ? ((rowData[getPropertyAccess("recordid")] || "") + "-" + val) : (rowData[getPropertyAccess("recordid")] || ""); if (attachtype == "fullpath") { attachFileName = CheckUrlSpecialChars(CheckUrlSpecialChars(val)); var urlSplitted = val.split(/\\|\//g); val = urlSplitted[urlSplitted.length - 1]; } if (resolveAttachmentPath) { try { var tempCellData = SetFileToDownload(proj || "", attachTransId, attachFieldname, attachFileName, attachtype, (rowData[getPropertyAccess("recordid")] || ""), val, isDbAttachment, true); if (tempCellData.length) { val = tempCellData.filter((val) => val.indexOf("Error:")).join(",") || ""; } } catch (ex) { } } else { val = "" + val + ""; } return val; }).join(","); } else if (requestJSON && FieldName[col].toLowerCase().indexOf("axpfile_") == 0) { cellData = cellData.split(",").map((val, ind, data) => { val = val.trim(); var fieldNameShort = FieldName[col].substring(8); var fieldNamePrefix = FieldName[col].substring(0, 7); // var attachFieldname = ""; var attachFilePath = getCaseInSensitiveJsonProperty(rowData, getPropertyAccess(fieldNamePrefix + "Path_" + fieldNameShort)).toString().replace(/\*/g, "\\\\").split("\\").filter((val) => { return (val) }).join("\\\\") || ""; if (attachFilePath) { attachFilePath += "\\\\"; } attachFileName = CheckUrlSpecialChars(CheckUrlSpecialChars(val)); var attachtype = "axpfile"; val = "" + val + ""; return val; }).join(","); var tempCellDataObj = $(cellData); var cellDataObj = $("
"); tempCellDataObj.filter((indd, vall) => { if (indd < 2) { cellDataObj.append(vall); } else { if (cellDataObj.find(".popover").length == 0) { cellDataObj.append("+" + (tempCellDataObj.filter((inddd, valll) => { return $(valll).is("a") }).length - 1) + "
"); } if ($(vall).text() == ",") { vall = $("
"); } cellDataObj.find("a.axpFilePopOver .popover").append(vall); } }); cellData = cellDataObj.html(); } //} } return cellData; } /** * fix date based in data and its culture * @author Prashik * @Date 2019-04-15T12:24:30+0530 * @param {string} cellData : date string to be fixed * @return {string} : fixed date */ function dateCellProcessor(cellData) { if (cellData != "" && cellData != " ") { if (isPerf && cellData.indexOf("T") > -1 && cellData.indexOf("-") > -1) { cellData = cellData.split("T")[0]; var splittedDate = cellData.split("-"); cellData = splittedDate[2] + "/" + splittedDate[1] + "/" + splittedDate[0] } else { cellData = getDateBasedOnCulture(cellData); } } else { cellData = ""; } return cellData; } /** * return string to number else return default * @author Prashik * @Date 2019-04-11T12:56:25+0530 * @param {string} str : string input * @param {string} returnValue : default to return if not a number * @return {int} : number or default value */ function tryParseNumeric(str, returnValue) { str = str.toString().replace(/,/g, "") if (str !== null && str.length > 0 && !isNaN(str)) { returnValue = parseFloat(str); } return returnValue; } /** * return if string is a valid number or not * @author Prashik * @Date 2019-04-11T12:58:22+0530 * @param {string} dateStr : validating number string * @return {bool} : return if valid number or not */ function isInValidNumber(dateStr) { var tmpVal = ""; if ((tmpVal = tryParseNumeric(dateStr, "")) || tmpVal === 0) { return false; } else { return true; } } /** * generate proper date format based on selected culture * @author Prashik * @Date 2019-04-11T13:00:01+0530 * @param {string} dateStr : date string * @return {string} : formatted date string based on culture */ function getDateBasedOnCulture(dateStr) { if (dateStr != "") { let dateStrArr = dateStr.split(" "); dateStr = dateStrArr[0]; if (dtCulture == "en-us") { var splittedDate = dateStr.split("/"); if (splittedDate.length > 2) { if (isPerf && splittedDate[0].length == 4) { dateStr = splittedDate[2] + "/" + splittedDate[0] + "/" + splittedDate[1]; } else { dateStr = splittedDate[1] + "/" + splittedDate[0] + "/" + splittedDate[2]; } } } else { var splittedDate = dateStr.split("-"); if (splittedDate.length > 2) { if (isPerf && splittedDate[0].length == 4) { dateStr = splittedDate[2] + "/" + splittedDate[1] + "/" + splittedDate[0]; } } } if (dateStrArr[1]) { dateStr = `${dateStr} ${dateStrArr[1]}`; } } return dateStr; } /** * generate hyperlink for hyperlink/action cell * @author Prashik * @Date 2019-04-11T13:01:20+0530 * @param {string} cellData :cellValue * @param {object} rowData :row data object * @param {int} row :row no * @param {int} col :column no * @param {string} colID :column name * @param {string} rowDataAccess :row data access key * @return {string} :cell data html */ function generateCellHyperlink({ td, cellData, rowData, row, col, colID, rowDataAccess }) { //var returnString = typeof cellData != "undefined" && cellData != null ? cellData : ``; var listViewCbCellData = $($(td).html()).find("input").hasClass("listViewDisabledCb"); var returnString = cellData; var hLinkData; if (returnString && HideColumn[col] == "false") { //hyperlink action var _params = ``; var _lastMapParam = ``; var _lastMapCol = ``; var _lastMapValue = ``; var _torecid = `&torecid=false`; var _urlProp = ``; if (ivConfigurations) { try { _urlProp = getCaseInSensitiveJsonProperty(ivConfigurations.filter((val, ind) => { var thisVal = getCaseInSensitiveJsonProperty(val, "HLINK"); return thisVal && thisVal.toString() && thisVal.toString() == colID && getCaseInSensitiveJsonProperty(val, "PROPS").toString().toLowerCase() == "navigation" })[0], ["PROPSVAL"]).toString(); } catch (ex) { } } ivHeadRows[colID]["@map"] && ivHeadRows[colID]["@map"].split(",").forEach((val, index) => { if (val.indexOf("=:") > -1) { var splitVal = val.split("=:"); _lastMapParam = splitVal[0].indexOf(".") > -1 ? splitVal[0].split(".")[1] : splitVal[0]; _lastMapCol = splitVal[1]; if (isListView && _lastMapCol == "recordid") { _lastMapParam = "recordid"; } var existingColData = rowData[getPropertyAccess(_lastMapCol)]; _lastMapValue = existingColData || getParamsValueArray()[_lastMapCol] || ``; if (_lastMapValue != "") { _lastMapValue = ReverseCheckSpecialChars(_lastMapValue); _lastMapValue = CheckUrlSpecialChars(_lastMapValue); } if (existingColData && ivHeadRows[_lastMapCol]["@type"] && ivHeadRows[_lastMapCol]["@type"] == "d") { //_lastMapValue = dateCellProcessor(_lastMapValue); if (_lastMapValue != "") { _lastMapValue = _lastMapValue.split(" ")[0]; if (_lastMapValue.split("-").length > 2) var splittedDate = _lastMapValue.split("-"); var parsedDate = Date.parse(splittedDate); if (!isNaN(parsedDate) && parsedDate > 0) { _lastMapValue = splittedDate[0] + "/" + splittedDate[1] + "/" + splittedDate[2]; } } } } // _params += encodeURI("&" + _lastMapParam + "=" + _lastMapValue); _params += "&" + _lastMapParam + "=" + _lastMapValue; }); ////REPLACE # not &# with %23 //var reg = new RegExp('(? { return val.endsWith("&") && ind != (_params.split("#").length - 1) ? val + "#" : (ind != _params.split("#").length - 1 ? val + "%23" : val); }).join(""); _params = _params.replace(/\+/g, '%2b'); ////Below replacing %3C to &l%3Ct; as '<' symbol even in encoded format cannot be recieved in the ivtstload and ivtoivload page _params = _params.replace(/%3C/g, 'l%3tC;'); cellData = cellData.replace(/ /g, " "); if (!(cellData.indexOf("<") == 0 && cellData.indexOf(">") == cellData.length - 1) && !(cellData.indexOf("<") > -1 && (cellData.indexOf(" -1 || cellData.indexOf("/>") > -1))) { cellData = CheckSpecialChars(cellData); } var refresh = ``; var isRefreshParent = `false`; var isRefreshParentAction = `false`; var listViewCbCellDataProp = listViewCbCellData ? "$(this).find(\"input:checkbox\").prop(\"checked\", !$(this).find(\"input:checkbox\").prop(\"checked\"));" : ""; if (typeof axp_refresh != "undefined" && axp_refresh && axp_refresh == "true") { refresh = "&axp_refresh=" + Convert.ToString(iviewObj.Axp_refresh); } else if (ivHeadRows[colID]["@refresh"]) { isRefreshParent = ivHeadRows[colID]["@refresh"].toLowerCase(); } else if (ivHeadRows[colID]["@parentrefresh"]) { isRefreshParent = ivHeadRows[colID]["@parentrefresh"].toLowerCase(); } if (hLinkData = ivHeadRows[colID]["@hlaction"]) { if (returnString.toString() != "0") { try { if (ivActions && ivActions[hLinkData]) { isRefreshParentAction = ivActions[hLinkData].r1.param1.Refresh.toLowerCase(); } else if (ivScripts && ivScripts[hLinkData]) { isRefreshParentAction = ivScripts[hLinkData].r1.param1.Refresh.toLowerCase(); } } catch (ex) { } returnString = "" + (listViewCbCellData ? $(td).html() : cellData) + ""; } } //hyperlink else if ((hLinkData = ivHeadRows[colID]["@hlink"]) && returnString != "Grand Total" && (rowData[getPropertyAccess("axrowtype")] != "stot" || rowData[getPropertyAccess("axrowtype")] != "subhead")) { var className = ""; rowData[getPropertyAccess("axrowtype")] == "subhead" ? className = " class=ivHeaderLink" : className = " class=l2"; var isPopup = ivHeadRows[colID]["@pop"] ? ivHeadRows[colID]["@pop"].toLowerCase() == "true" : false; var _hLinkType = `&hltype=` + ivHeadRows[colID]["@hltype"]; var hLinkPageType = hLinkData.substr(0, 1); hLinkData = hLinkData.substr(1); if (hLinkPageType == ":") { try { hLinkData = rowData[getPropertyAccess(hLinkData)]; } catch (ex) { } hLinkPageType = ""; if (hLinkData) { hLinkPageType = hLinkData.substr(0, 1); hLinkData = hLinkData.substr(1); } } if (returnString.toString() != "0") { switch (hLinkPageType) { case "t": { var baseLink = ``; if (isListView) { baseLink = "tstruct.aspx?transid="; } else { baseLink = "ivtstload.aspx?tstname="; } var navigationData = generateViewNavigation({ td, cellData, rowData, row, col, colID, rowDataAccess }); var fullNavigationData = baseLink + "" + hLinkData + _params + _hLinkType + _torecid + navigationData; if (isPopup) { fullNavigationData += refresh; viewNavigationData[colID] ? "" : viewNavigationData[colID] = []; viewNavigationData[colID][row] = (fullNavigationData).replace("ivtstload.aspx?", "tstruct.aspx?"); returnString = "" + (listViewCbCellData ? $(td).html() : cellData) + ""; } else { viewNavigationData[colID] ? "" : viewNavigationData[colID] = []; viewNavigationData[colID][row] = (fullNavigationData).replace("ivtstload.aspx?", "tstruct.aspx?"); returnString = "" + (listViewCbCellData ? $(td).html() : cellData) + ""; } } break; case "i": { if (isPopup) { returnString = "" + (listViewCbCellData ? $(td).html() : cellData) + ""; } else { var _urlStr = `ivtoivload.aspx?ivname=` + hLinkData; _params = _params.replace(/%26/g, "--.--"); returnString = "" + (listViewCbCellData ? $(td).html() : cellData) + ""; } } break; } } } else if (iName == "flist" && colID == "reportname") { returnString = "" + (listViewCbCellData ? $(td).html() : cellData) + ""; } else if (iName == "response" && colID == "rname") { returnString = `${listViewCbCellData ? $(td).html() : cellData}`; } } if (returnString.startsWith(" { if (val.startsWith(colID + ",")) { var fontSplit = val.split(","); fontString += fontSplit.reduce((result, item, index) => { switch (index) { case 1: result += `fontname=${item},` break; case 2: result += `fontsize=${item},fontstyle=` break; case 3: result += (item == "t" ? "b" : "") break; case 4: result += (item == "t" ? "i" : "") break; case 5: result += (item == "t" ? "u" : "") break; case 6: result += (item == "t" ? "s" : "") break; case 7: result += `,fontcolor=${item}`; break; } return result; }, ""); } }); } if (rowData[getPropertyAccess("axp__color")]) { rowData[getPropertyAccess("axp__color")].split("~").forEach((val, ind) => { if (val.startsWith(colID + ",")) { var backColor = ""; var colorSplit = val.split(","); if ((color = colorSplit[1]) && colorSplit[1].indexOf("$") == 0 && color.length == 9) { backColor = "#" + [color[7], color[8], color[5], color[6], color[3], color[4]].join(""); } else { backColor = colorSplit[1]; } if (backColor) { if (fontString) { fontString += "," } fontString += `backcolor=${backColor}`; } } else if (isSpecialRow && val.startsWith("$")) { let item = ""; if (val.indexOf("$") == 0 && val.length == 9) { item = "#" + [val[7], val[8], val[5], val[6], val[3], val[4]].join("").toUpperCase(); } else { item = val; } if (item) { fontString += `,fontcolor=${item}`; } } }); } if (fontString && processCell) { var elem = $(td); if (elem.children().length) { SetAxFontCondition(elem.children(), fontString) } SetAxFontCondition(elem, fontString); } return fontString; } /** * generate prray from selected parameters * @author Prashik * @Date 2019-04-11T13:04:08+0530 * @return {array} : array of selected filters with key as field name */ function getParamsValueArray() { var paramString = $("#hdnparamValues").val(); var returnArray = []; typeof paramString == "string" && paramString.replace(/¿/g, '♣').split('♣').forEach((v, i) => { if (v) { var splitVal = v.split("~"); try { if ($(`#${CheckSpecialCharsInStr(splitVal[0])}`).hasClass("multiFldChk") && _.isEqual(_.sortBy([...new Set(splitVal[1].toString().split("`"))].filter((val) => val != "")), _.sortBy([...new Set($(`#${CheckSpecialCharsInStr(splitVal[0])}`).data("valuelist").split($(`#${CheckSpecialCharsInStr(splitVal[0])}`).data("separator")))].filter((val) => val != "")))) { splitVal[1] = "ALL"; } } catch (ex) { } returnArray[CheckSpecialCharsInStr(splitVal[0])] = CheckSpecialCharsInStr(splitVal[1].toString()).replace(/&grave;/g, '~'); } }); return returnArray; } /** * set height for datatable body height properly based on content available in window * @author Prashik * @Date 2019-04-11T13:05:24+0530 */ function setSmartViewHeight() { var dtScrollFootOffsetHeight = 0; try { $(".dataTables_scrollFoot").length ? dtScrollFootOffsetHeight = $(".dataTables_scrollFoot")[0].offsetHeight : ""; } catch (ex) { } var tableWrapperOuterHeight = $(".iviewTableWrapper ").outerHeight(true) - $(".iviewTableWrapper ").height(); var reqNextPageHeight = 0; //try { // $("#requestNextRecords").length ? reqNextPageHeight = $("#requestNextRecords")[0].offsetHeight : ""; //} catch (ex) { } var pillContainerHeight = 0; if (!requestJSON || iviewButtonStyle == "old") { try { //$("#ivirCustomContainer").length ? pillContainerHeight = $("#ivirCustomContainer")[0].offsetHeight : ""; $("#dvPills").length ? pillContainerHeight = $("#dvPills")[0].offsetHeight : ""; } catch (ex) { } } var subCaptionHeight = 0; try { $(".ivcaptions").length ? subCaptionHeight = $(".ivcaptions").toArray().reduce((sum, elem) => sum + $(elem).outerHeight(true), 0) : ""; } catch (ex) { } var pageInformationNew = 0 try { $(".pageInformationNew").length ? pageInformationNew = $(".pageInformationNew").outerHeight(true) + $(".pageInformationNew").next().outerHeight(true) : ""; } catch (ex) { } var viewTabsHeight = 0; try { $("#viewTabs").length ? viewTabsHeight = $("#viewTabs").outerHeight(true) : ""; } catch (ex) { } //latest logic var reduceHeightOfFinalDT = Math.round(($("#breadcrumb-panel").outerHeight(true) + $("#ivContainer").outerHeight(true) + $(".iviewPreTableCustom").outerHeight(true) + $(".iviewPostTableCustom").outerHeight(true) + $(".dataTables_scrollHead").outerHeight(true) + dtScrollFootOffsetHeight + reqNextPageHeight + pillContainerHeight + subCaptionHeight + pageInformationNew + viewTabsHeight + tableWrapperOuterHeight)); if (requestJSON && iviewButtonStyle != "old") { // // if ($("#ivContainer").outerHeight(true)) // // reduceHeightOfFinalDT += 14; } else if (!$("#ivContainer").outerHeight(true)) reduceHeightOfFinalDT -= 14; // // reduceHeightOfFinalDT += 3;//added pixels to fix double scroll because of card layout changes $('.dataTables_scrollBody').height() > reduceHeightOfFinalDT ? $('.dataTables_scrollBody').css({ "max-height": `calc(100vh - ${reduceHeightOfFinalDT}px)`, "height": `calc(100vh - ${reduceHeightOfFinalDT}px)` }) : $('.dataTables_scrollBody').css({ "height": `calc(100vh - ${reduceHeightOfFinalDT}px)`, "max-height": `calc(100vh - ${reduceHeightOfFinalDT}px)` }); try { if (lazyBinding) { $(".dataTables_scrollBody table + div").height(($(".dataTables_scrollBody tbody").height() / $(".dataTables_scrollBody tbody tr").length) * ($(".dataTables_scrollBody tbody tr").length + (checkNextDBRowsExist ? (len = ((ivDatas.length - $(".dataTables_scrollBody tbody tr").length) / 4) > 1 ? len : 1) : 0))); } } catch (ex) { } } /** * generate and show filter popup * @author Prashik * @Date 2019-04-11T14:50:05+0530 * @param {int} pillindex : index of created filter pill */ function ivirMoreFilters(pillindex = -1) { $("#newViewTabId span.customError").remove(); var allColumns = ivirDataTableApi.columns(); var allColumnsLength = allColumns[0].length; //var headerName = $(ivirDataTableApi.columns(i).header()).text().trim(); var moreFilters = ``; var prevDrawnMoreFilters = $("#newViewTabId .filter-body-cont").parent(); if (prevDrawnMoreFilters.length == true) { //if(pillindex != -1){ prevDrawnMoreFilters.find(".filter-body-cont").attr("data-pillindex", pillindex).data("pillindex", pillindex); //} moreFilters = prevDrawnMoreFilters.detach(); initAdvFilters = false; } else { initAdvFilters = true; if (allColumnsLength > 0) { moreFilters += `
` + `` + `
` + `` + ``; allColumns.every(function (index) { if (hiddenColumnIndex.indexOf(index) == -1) { var headerCaption = $(this.header()).text().trim(); var headerName = $(this.header()).attr("id").replace("GridView1_ctl01_", ""); if (headerName != "" && headerName != "rowno") { var colType = ivirColumnTypeObj[headerName]; moreFilters += ``; } } }); moreFilters += `
${getInnerAdvFilter(headerName, colType, index)}
` + `` + `
` + `` + `
` } else { moreFilters += `No Columns to filter.` } } // displayBootstrapModalDialog("Advanced Filters", "lg", "330px", false, moreFilters, "", initMoreFiltersAddOns); return moreFilters; } /** * generate single filter * @author Prashik * @Date 2019-04-11T14:52:08+0530 * @param {string} headerName : column name * @param {char} colType : type of column * @param {int} index : index of column * @return {string} : single filter html */ function getInnerAdvFilter(headerName, colType, index) { var filterStr = ``; switch (colType) { case "c": filterStr += `
`; break; case "n": filterStr += `
`; break; case "d": filterStr += `
calendar_today
calendar_today
`; break; case "t": filterStr += `Time`; break; } return filterStr; } /** * filter events and tasks on popup load * @author Prashik * @Date 2019-04-11T14:54:22+0530 */ function initMoreFiltersAddOns() { //if any search is created previously then prevent reseting filters for the next time when user opens a filter dialog var filterType = $('[data-dropdown-value="moreFilters"]').attr("data-filter-type"); var moreFilters = $("#newViewTabId .filter-body-cont").parent(); var pillindex = moreFilters.find(".filter-body-cont").data("pillindex"); if (!openFilters) { if (filterType == "filter" || pillindex == -1 || filterType == undefined) resetMoreFilters(); } if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && typeof ivirMainObj.filter == "undefined" && typeof pillindex != "undefined") { pillindex = -1; } // var modalHeader = eval(callParent("divModalHeader", "id") + ".getElementById('divModalHeader')"); // modalHeader.innerText = callParentNew('lcm')[409]; if (initAdvFilters) { $(".moreFiltersInput.characterFilter").each(function () { var source = [...new Set( ivirDataTableApi.cells(ivirDataTableApi.rows(":not(.specialRow)").nodes(), parseInt($(this).data("index"), 10)).data().toArray().map( function (fldVal) { return $($.parseHTML(fldVal)).text() } )) ]; source.indexOf("") > -1 ? source.splice(source.indexOf(""), 1) : ""; var processedList = $.map(source, (val, index) => { return { id: val, text: val } }); $(this).select2({ allowClear: true, data: processedList, placeholder: appGlobalVarsObject.lcm[441], }).on('select2:select', (selectEv) => { }); // $(this).tokenfield({ // autocomplete: { // source, // delay: 100 // }, // showAutocompleteOnFocus: true, // delimiter: (requestJSON ? "`" : "♣|♣"), // beautify: false, // createTokensOnBlur: true // }) // $('.gridDataFilter .tokenfield').on('tokenfield:createtoken', function (event) { // if ($(this).find("input.moreFiltersInput").tokenfield('getTokens').filter(function (vals) { return vals.value == event.attrs.value }).length > 0) { // event.preventDefault(); // } // }); // $(".filter-body-cont").off("scroll.closeAutoComp").on("scroll.closeAutoComp", function () { // $(".filter-body-cont .ui-autocomplete-input").autocomplete("close"); // }); }); AddDatePicker("newViewTabId"); } if (pillindex != -1) { pushSearchStringtoFilters(ivirMainObj.filter[pillindex].data, "JSON"); $("#advSearchName").val(ivirMainObj.filter[pillindex].n); $("#btnFilterApply").val(btnFilterApplyEditVal); $("#btnFilter").hide(); } else if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && ivirMainObj.filter && ivirMainObj.filter.length > 0) { pushSearchStringtoFilters(ivirMainObj.filter[0].data, "JSON"); $("#advSearchName").val(ivirMainObj.filter[0].n); $("#btnFilterApply").val(btnFilterApplyEditVal); $("#btnFilter").hide(); } else { $("#btnFilterApply").val(btnFilterApplyVal); $("#btnFilter").show(); } if (openFilters) { openFilters = false; pushSearchStringtoFilters($("#myFiltersPillInfo").data("filterJsonObj"), "JSON"); } $("#resetMoreFilters").show(); $("#btnFilter").show(); if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { $("#resetMoreFilters").hide(); $("#btnFilter").hide(); } ivirbindEvents("filter"); } /** * push filter tempelate to search * @author Prashik * @Date 2019-04-11T14:55:32+0530 * @return {[type]} [description] */ function pushSearchStringtoInput() { var searchInput = $("#ivInSearchInput"); searchInput.val(generateSearchString()); searchInput.trigger("keyup"); } /** * generate string/json for selected filters * @author Prashik * @Date 2019-04-11T15:03:36+0530 * @param {string} returnType : (string/JSON) return string/object format * @return {string/object} : return string/object for selected filters */ function generateSearchString(returnType = "string") { var searchString = ``; var searchJSON = {}; $("tr[data-coltype]").each(function () { switch ($(this).data("coltype")) { case "c": var inputField = $(this).find(".moreFiltersInput.characterFilter:nth(0)"); var inputFieldVal = inputField.select2('data').map(function (elem) { return elem.text; }).join("`"); if (inputFieldVal != "") { searchString += `${inputField.data("field")}:=>${inputFieldVal}:::`; searchJSON[`${inputField.data("field")}`] = inputFieldVal; } break; case "n": var minVal = 0; var maxVal = 0; var minValField = $(this).find(".moreFiltersInput.numericFilter:nth(0)"); var maxValField = $(this).find(".moreFiltersInput.numericFilter:nth(1)"); if (minValField.val() != "" || maxValField.val() != "") { var columnVals = []; try { //if(dataIsKey){ var currentIndex = getPropertyAccess(minValField.data("field")); //} //else{ // var currentIndex = FieldName.indexOf(minValField.data("field")) - (rowTypeExist ? 1 : 0); //} columnVals = generateUniqueColumnVals($(this).data("coltype"), currentIndex + ":name"); if (minValField.val() == "") { minValField.val(Math.min(...columnVals) || minVal); } if (maxValField.val() == "") { maxValField.val(Math.max(...columnVals) || maxVal); } } catch (ex) { } } minVal = parseFloat(minValField.val()) || minVal; maxVal = parseFloat(maxValField.val()) || maxVal; if (minVal != 0 || maxVal != 0) { searchString += `${minValField.data("field")}:=><=${minVal}=><=${maxVal}=>:::`; searchJSON[`${minValField.data("field")}`] = {}; searchJSON[`${minValField.data("field")}`][`min`] = minVal; searchJSON[`${minValField.data("field")}`][`max`] = maxVal; } break; case "d": var minVal = ""; var maxVal = ""; var minValField = $(this).find("input.moreFiltersInput.dateFilter:nth(0)"); var maxValField = $(this).find("input.moreFiltersInput.dateFilter:nth(1)"); //var minVal = parseFloat(minValField.val()) || 0; //var maxVal = parseFloat(maxValField.val()) || 0; if (minValField.val() != "" || maxValField.val() != "") { var columnVals = []; try { //if(dataIsKey){ var currentIndex = getPropertyAccess(minValField.data("field")); //} //else{ // var currentIndex = FieldName.indexOf(minValField.data("field")) - (rowTypeExist ? 1 : 0); //} columnVals = generateUniqueColumnVals($(this).data("coltype"), currentIndex + ":name"); if (minValField.val() == "") { minValField.datepicker("setDate", new Date(Math.min(...columnVals) || minVal)); } if (maxValField.val() == "") { maxValField.datepicker("setDate", new Date(Math.max(...columnVals) || maxVal)); } } catch (ex) { } } minVal = minValField.val() || minVal; maxVal = maxValField.val() || maxVal; var selectField = $(this).find("select.moreFiltersInput.dateFilter"); if (selectField.val() != "customOption") { searchString += `${minValField.data("field")}:=>${selectField.val()}:::`; searchJSON[`${minValField.data("field")}`] = selectField.val(); } //else if (minVal != 0 || maxVal != 0) { else if (minVal != "" || maxVal != "") { searchString += `${minValField.data("field")}:=><=${minVal}=><=${maxVal}=>:::`; searchJSON[`${minValField.data("field")}`] = {}; searchJSON[`${minValField.data("field")}`][`min`] = minVal; searchJSON[`${minValField.data("field")}`][`max`] = maxVal; } break; case "t": break; } }); searchString = searchString.endsWith(":::") ? (searchString.substr(0, searchString.length - 3)) : searchString; return returnType == "string" ? searchString : (returnType == "JSON" ? searchJSON : ""); } /** * push pre selected search string/json to popup in edit filter * @author Prashik * @Date 2019-04-11T15:07:23+0530 * @param {string/object} objectVal : values to be assigned to filter popup * @param {string} inputType : type of input value */ function pushSearchStringtoFilters(objectVal, inputType = "string") { var searchInput = $("#ivInSearchInput"); var searchStringOBJ = inputType == "string" ? searchInput.val().split(":::").sort() : Object.keys(objectVal); //var filteredArray = []; $(searchStringOBJ).each(function (index, val) { if (inputType == "string") { val = val.trim(); var baseStringSplit = val.split(":=>"); var key = baseStringSplit[0]; var value = baseStringSplit[1]; } else { var key = val; var value = typeof objectVal[key] == "string" ? objectVal[key].trim() : objectVal[key]; } //filteredArray.push(key); //var baseRow = $(`tr[data-field^=${key.split(" ")[0]}]`); //var baseRow = $(`tr[data-field^=${key}]`); var baseRow = $(`tr[data-field]`).filterByData('field', key); baseRow.each(function (index, val) { if ($(val).data("field") == key) { switch ($(val).data("coltype")) { case "c": //baseRow.find var inputField = $(val).find(".moreFiltersInput.characterFilter:nth(0)"); //inputField.tokenfield('setTokens', value.split("| ")); value = value.split("`"); if (requestJSON) { // inputField.tokenfield('setTokens', value.split("`")); inputField.val(value).trigger("change"); } else { // inputField.tokenfield('setTokens', value.split("♣|♣")); inputField.val(value).trigger("change"); } break; case "n": var minValField = $(this).find("input.moreFiltersInput.numericFilter:nth(0)"); var maxValField = $(this).find("input.moreFiltersInput.numericFilter:nth(1)"); //value = value.startsWith("<=") ? value.substr(2, value.length) : value; //value = value.endsWith("=>") ? value.substr(0, value.length - 1) : value; if (typeof value == "object") { minValField.val(value['min']); maxValField.val(value['max']); } else { var startEndSplit = value.substr(2, value.length - 4).split("=><=") minValField.val(startEndSplit[0]); maxValField.val(startEndSplit[1]); } break; case "d": var minValField = $(this).find("input.moreFiltersInput.dateFilter:nth(0)"); var maxValField = $(this).find("input.moreFiltersInput.dateFilter:nth(1)"); var selectField = $(this).find("select.moreFiltersInput.dateFilter"); if (typeof value == "object") { minValField.val(value['min']); maxValField.val(value['max']); selectField.val("customOption"); } else if (value.indexOf("=><=") > -1) { //value = value.startsWith("<=") ? value.substr(2, value.length) : value; //value = value.endsWith("=>") ? value.substr(0, value.length - 2) : value; var startEndSplit = value.substr(2, value.length - 4).split("=><=") minValField.val(startEndSplit[0]); maxValField.val(startEndSplit[1]); selectField.val("customOption"); } else { selectField.val(value); } if (selectField.val() != "customOption") { selectField.trigger("change"); } break; case "t": break; } } }); }); } /** * reset values in filter popup * @author Prashik * @Date 2019-04-11T15:13:14+0530 */ function resetMoreFilters() { $("input.moreFiltersInput").val(""); $("select.moreFiltersInput.characterFilter").each(function () { $(this).val('').trigger('change'); }); $("select.moreFiltersInput.dateFilter option:first-child").prop("selected", true); $("select.moreFiltersInput.dateFilter").trigger("change"); $("#btnFilterApply").val(btnFilterApplyVal); $("#btnFilter").show(); } /** * From axpert the negative value will come with paranthesis like (91) instead of -91 so that value will be converted to negative and do operations like subtotal and grnad total * @author ManiKanta * @Date 2018-11-19T15:03:29+0530 * @param {String} num The num to check * @return {NUMERIC} The negative or positive number */ function checkFroNegativeValue(num) { if (num) { num = num.trim(); if (num.substr(0, 1) === "(" && num.substr(-1, 1) === ")") { num = num.substring(1, num.length - 1); num = -parseInt(num); } } return num; } /** * Events like custom right click or context menu after grid creation will be intialized here * @author ManiKanta + Prashik * @Date 2018-11-19T15:12:36+0530 * @return {} */ function createMainEventsOnGrid() { $(".dataTables_scrollHead thead th").off("contextmenu"); $(".dataTables_scrollHead thead th").on("contextmenu", function (event) { if (event.which == 3) { event.preventDefault(); // var idx = ivirDataTableApi.column(this).index(); // var headtitle = ivirDataTableApi.column(idx).header(); var elem = $(event.target).find('.rightClickMenuIcn'); var idx = ivirDataTableApi.column(elem.parents('th')).index(); createRightClick(event, idx); } }); $(".dataTables_scrollHead thead th .rightClickMenuIcn").off("click"); $(".DTFC_LeftHeadWrapper thead th .rightClickMenuIcn").off("click"); $(".DTFC_LeftHeadWrapper thead th .rightClickMenuIcn").on("click", function (e) { e.preventDefault(); e.stopPropagation(); var elem = $(this); var idx = ivirDataTableApi.fixedColumns().cellIndex(elem.parents('th')).column; createRightClick(e, idx); }); $(".dataTables_scrollHead thead th .rightClickMenuIcn").on("click", function (e) { e.preventDefault(); e.stopPropagation(); var elem = $(this); var idx = ivirDataTableApi.column(elem.parents('th')).index(); createRightClick(e, idx); }); $(".dataTables_scrollHead thead th .rightClickMenuIcn").off("keydown"); $(".dataTables_scrollHead thead th .rightClickMenuIcn").on("keydown", function (e) { var keyCode = e.keyCode || e.which; if (keyCode == 32) { e.preventDefault(); var elem = $(this); var e = elem.offset(); var positionHolder = {}; positionHolder.pageX = e.left; positionHolder.pageY = e.top; var idx = ivirDataTableApi.column(elem.parents('th')).index(); createRightClick(positionHolder, idx); } }); $(ivirTable).on('draw.dt', function () { if ($("#divModalAdvancedFilters").is(":visible")) { $("#btnModalClose").click(); } }); } /** will be trigerred when user select particular column to search */ $(document).on('change', '#searchSelectColumn', function (event) { var elem = $(this); var parentSearchId = ivirTable + "_filter"; var previousSearchVal = ""; var originalSrchInp = $(parentSearchId + " .ivirSearchFld"); var customSrchInp = $(parentSearchId + " #customSearchInput"); var indexSelected = elem.data('index'); if (!customSrchInp.length > 0) previousSearchVal = originalSrchInp.val() || ""; else previousSearchVal = customSrchInp.val() || ""; originalSrchInp.val(""); customSrchInp.val(""); if (elem.val() == "all") { $(parentSearchId + " #customSearchInput").hide(); $(parentSearchId + " .ivirSearchFld").show(); if (previousSearchVal != "") { $(parentSearchId + " .ivirSearchFld").val(previousSearchVal); ivirDataTableApi .search('') .columns().search('') .draw(); ivirDataTableApi.search(previousSearchVal).draw(); } } else { $(parentSearchId + " .ivirSearchFld").hide(); if ($(parentSearchId + " #customSearchInput").length == 0) { var customSearchInput = ''; $(parentSearchId + " label").append(customSearchInput); } else { $(parentSearchId + " #customSearchInput").val(previousSearchVal).show(); } if (previousSearchVal != "") { ivirDataTableApi .search('') .columns().search('') .draw(); ivirDataTableApi .columns(indexSelected) .search(previousSearchVal) .draw(); } } }); /** When user pressed a button in search field */ $(document).on('keydown', '.ivirSearchFld', function (event) { if ($("#ivirCButtonsWrapper").is(":visible") && !$("#ivirCButtonsWrapper button.active").hasClass('grdView')) { toggleGridView("grid"); } }); $(document).on('keyup', '#customSearchInput', function (event) { var searchValue = this.value; var indexOfColumnSelected = $("#searchSelectColumn").data('index'); ivirDataTableApi .columns(indexOfColumnSelected) .search(searchValue) .draw(); }); /** * To get the all the numeric columns in the table will be pushed into numericColumns array * @author ManiKanta + Prashik * @Date 2018-11-19T15:21:46+0530 * @return {} */ function getAllNumericColumns() { numericColumns = []; $(ivirTable + " thead tr:last th").each(function (index, el) { headerCaption = $(this).text().trim(); headerName = $(this).attr("id").replace("GridView1_ctl01_", ""); if (ivirColumnTypeObj[headerName] == 'n') numericColumns.push(index); }); } /** * Function to freeze upto a certain column based on the index sent * @author ManiKanta * @Date 2018-11-19T15:22:33+0530 * @param {Number} index The index of the column upto which freeze should happen * @return {} */ function freezeColumn(index) { index = index + 1;//since for freeze index starts from 1 not 0 if (fixedColumnsObj && index == fixedColumnsObj.s.iLeftColumns) { fixedColumnsObj = ""; if (allGrandTotal && allGrandTotal.length > 0) { createIvirDataTable('clear', '', '', allGrandTotal); } else { createIvirDataTable('clear'); } return false; } $(".rightClickMenu li.freeze i").not('#rightClickMenu' + (index - 1) + ' li i').removeClass('icon icon-arrows-check'); if (fixedColumnsObj != "") { fixedColumnsObj.s.iLeftColumns = index; fixedColumnsObj.fnRedrawLayout(); } else { fixedColumnsObj = new $.fn.dataTable.FixedColumns(ivirDataTableApi, { iLeftColumns: index }); } $(".DTFC_LeftBodyWrapper .ivirCustomHighlight,.DTFC_LeftBodyWrapper .ivirCustomHighlightCell").removeClass("ivirCustomHighlight").css({ "background-color": "", "color": "" }); $(".DTFC_LeftHeadWrapper thead th .rightClickMenuIcn").off("click"); $(".DTFC_LeftHeadWrapper thead th .rightClickMenuIcn").on("click", function (e) { e.preventDefault(); e.stopPropagation(); var elem = $(this) var idx = ivirDataTableApi.fixedColumns().cellIndex(elem.parents('th')).column; createRightClick(e, idx) }); $(".DTFC_LeftHeadWrapper thead th").off("contextmenu"); $(".DTFC_LeftHeadWrapper thead th").on("contextmenu", function (event) { if (event.which == 3) { event.preventDefault(); $(event.target).find('.rightClickMenuIcn').click(); } }); } /** When freeze happens an extra layer will come on the top of the grid when a check box is checked on that layer, Then it need to be reflected in the bottom layer also */ $(document).on('change', ".DTFC_LeftWrapper table tr input[name='chkItem']", function (event) { var elem = $(this); var trIndex = elem.parents('tr').index(); var isChecked = elem.is(':checked'); var classToAdd = ""; if (isChecked) { $('.dataTables_scrollBody table tbody tr').eq(trIndex).addClass('axSelected').find("input[name='chkItem']").prop('checked', true); } else { $('.dataTables_scrollBody table tbody tr').eq(trIndex).removeClass('axSelected').find("input[name='chkItem']").prop('checked', false); } }); /** * For doing column sorting * @author ManiKanta * @Date 2018-11-19T15:27:12+0530 * @param {String} dir Direction of the sort asc/desc * @param {Number} index The index of the column to sort * @return {} */ function colAscDsc(dir, index) { ivirDatatable.fnSort([index, dir]); if (dir == "asc") $('#rightClickMenu' + index + ' li.desc i').removeClass('icon-arrows-check'); else $('#rightClickMenu' + index + ' li.asc i').removeClass('icon-arrows-check'); } /** * To apply/remove the grand total for a column * @author ManiKanta * @Date 2018-11-19T15:28:00+0530 * @param {Number} indexOfCol The index of the column to toggle on * @return {} */ function toggleGrandTotal(indexOfCol) { if ($('#rightClickMenu' + indexOfCol + ' li.columnGrndTotal i').hasClass('icon-arrows-check')) { var idx = allGrandTotal.indexOf(indexOfCol); allGrandTotal.splice(idx, 1); } else { if ($.inArray(indexOfCol, allGrandTotal) === -1) allGrandTotal.push(indexOfCol); } if (groupingCol === "") createIvirDataTable('clear', '', '', allGrandTotal); else { var groupArrayIndex = $("[id^='grouppillCB']:checked").data("index"); createIvirDataTable('groupApply', groupArrayIndex, '', allGrandTotal); } } /** * To create custom right click HTML (Context menu on the header of the IVIR grid) * @author ManiKanta + Abhishek * @Date 2018-11-19T15:28:39+0530 * @param {Object} e Complete right click event * @param {Number} indexOfCol The index of the column to position this menu * @return {} */ function createRightClick(e, indexOfCol) { if (typeof indexOfCol == "undefined" || indexOfCol == "0") { return false; } var menu = $("#rightClickMenu" + indexOfCol); if (menu.length == 0) { var rtClkHtml = ''; $('body').append(rtClkHtml); menu = $("#rightClickMenu" + indexOfCol); } if (menu.is(":visible") && menu.data('index') == indexOfCol) { menu.hide(); return; } if (groupingCol != "") { menu.find('li.freeze').addClass('d-none'); } var order = getTheOrderOfCol(indexOfCol); if (order != "empty") { menu.find('li.asc i,li.desc i').removeClass('icon-arrows-check') if (order == "asc") menu.find('li.asc i').addClass('icon-arrows-check'); else menu.find('li.desc i').addClass('icon-arrows-check'); } if ($.inArray(indexOfCol, allGrandTotal) !== -1) { menu.find('li.columnGrndTotal i').addClass('icon-arrows-check') } else { menu.find('li.columnGrndTotal i').removeClass('icon-arrows-check') } //hide menu if already shown $('.rightClickMenu').hide(); menu.data('index', indexOfCol); //get x and y values of the click event var pageX = e.pageX; var pageY = e.pageY; //position menu div near mouse cliked area menu.css({ top: pageY, left: pageX }); var mwidth = menu.width(); var mheight = menu.height(); var screenWidth = $(window).width(); var screenHeight = $(window).height(); //if window is scrolled var scrTop = Math.round($(window).scrollTop()); //if the menu is close to right edge of the window if (pageX + mwidth > screenWidth) { menu.css({ left: pageX - mwidth }); } //if the menu is close to bottom edge of the window if (pageY + mheight > screenHeight + scrTop) { menu.css({ top: pageY - mheight }); } //finally show the menu menu.show(); $(document).unbind('keydown.upDownEvents'); highlightAndBindUpDown(menu, indexOfCol, ".rightClickMenu ul li"); } /** * keyboars events on custom context menu * @author ManiKanta * @Date 2018-11-19T15:32:30+0530 * @param {} presElem * @param {} indexOfCol * @param {} bindedElement * @return {} */ function highlightAndBindUpDown(presElem, indexOfCol, bindedElement) { var allOptions = presElem.find("ul li").not(".subHeader"); var optionToSelect = allOptions; optionToSelect.siblings().removeClass("highlightOption"); if (bindedElement === ".js-dropdown ul li") { var selectFirstField = true; var btnTxt = presElem.find('.js-dropdown__input').val().toLowerCase(); optionToSelect.each(function (index, liElement) { var dropdownValue = $(liElement).data("dropdown-value"); dropdownValue = dropdownValue.toLowerCase(); if (btnTxt === dropdownValue) { $(this).addClass("highlightOption"); optionToSelect = $(this); selectFirstField = false; return false; } }); if (selectFirstField) { optionToSelect.first().addClass("highlightOption"); optionToSelect = optionToSelect.first(); } allOptions.off('mouseover.drpListHover'); allOptions.on('mouseover.drpListHover', function () { $(".highlightOption").removeClass('highlightOption'); optionToSelect = $(this); $(this).addClass("highlightOption"); }); } else { optionToSelect.first().addClass("highlightOption"); optionToSelect = optionToSelect.first(); } $(document).unbind('keydown.upDownEvents'); $(document).bind('keydown.upDownEvents', bindedElement, function (e) { switch (e.which) { case 38: // up if (!optionToSelect.is(":first-child") && !(optionToSelect.index() === 1 && optionToSelect.prev('.subHeader').length === 1)) { e.preventDefault(); if (optionToSelect.hasClass("highlightOption")) { optionToSelect.removeClass("highlightOption"); optionToSelect = optionToSelect.prevAll().not('.subHeader').first(); optionToSelect.addClass("highlightOption"); } } break; case 13: case 32: if (optionToSelect.hasClass("highlightOption")) { if (optionToSelect.hasClass("desc")) { colAscDsc('desc', indexOfCol); } else if (optionToSelect.hasClass("asc")) { colAscDsc('asc', indexOfCol); } else if (optionToSelect.hasClass("freeze")) { freezeColumn(indexOfCol); } else if (optionToSelect.hasClass("columnGrndTotal")) { toggleGrandTotal(indexOfCol); } else if (optionToSelect.hasClass("dropDownButton__item")) { var $item = optionToSelect; var $dropdown = $item.parents('.js-dropdown'); $dropdown.find('.js-dropdown__input').data('index', $item.data('index')).val($item.data('dropdown-value')).change(); if (!$dropdown.hasClass("ivirActionDrpDwn")) $dropdown.find('.js-dropdown__current').attr('title', 'Search ' + $item.text()).text($item.text()); else $dropdown.find('.js-dropdown__current').text("Options"); $dropdown.removeClass('is-open'); $(document).unbind('keydown.upDownEvents'); e.preventDefault(); e.stopPropagation(); } }//end of if break; case 40: // down if (!optionToSelect.is(":last-child")) { e.preventDefault(); if (optionToSelect.hasClass("highlightOption")) { optionToSelect.removeClass("highlightOption"); optionToSelect = optionToSelect.nextAll().not('.subHeader').first(); optionToSelect.addClass("highlightOption"); } } break; case 9: if (optionToSelect.parents('.js-dropdown').hasClass('is-open')) { optionToSelect.parents('.js-dropdown').removeClass('is-open') $(document).unbind('keydown.upDownEvents'); } break; default: return; // exit this handler for other keys } // e.preventDefault(); // prevent the default action (scroll / move caret) }); } /** * To get the sorting order of the column based on index * @author ManiKanta * @Date 2018-11-19T15:39:17+0530 * @param {Number} colIndex Column index * @return {String} asc/desc/ empty(No order) */ function getTheOrderOfCol(colIndex) { var orderArray = ivirDataTableApi.order(); var ordArrayLngth = orderArray.length; var order = "empty"; if (ordArrayLngth > 0) { for (var i = 0; i < ordArrayLngth; i++) { var presntOrder = orderArray[i]; if (presntOrder[0] == colIndex) { order = presntOrder[1] return order; } } } return order; } $(document).on('click', '.rightClickMenu ul li', function () { var elem = $(this); var val = elem.data('value'); if (val == "freeze") { } if (elem.hasClass('icon-arrows-check')) elem.data('isChecked', true); else elem.data('isChecked', false); elem.find('i').toggleClass('icon-arrows-check'); }); /** * Function to call to add any onload check when an ivir is called * @author ManiKanta * @Date 2018-11-19T15:41:23+0530 * @return {} */ function ivirInitailCheck() { //checking for hyperlink ivirDataTableApi.row(0).every(function (rowIdx, tableLoop, rowLoop) { var data = this.data(); for (var i = 0; i < data.length; i++) { //var headerName = $(ivirDataTableApi.column(i).header()).text().trim(); var patt = /]*>([\s\S]*?)/g; var res = patt.test(typeof data[i] == "object" && data[i] != null ? data[i].display : (data[i] != null ? data[i] : "")); if (res) initialChkup.isAnchor = i; } // ... do something with data(), or this.node(), etc }); } /** * Events to be binded when highlight popup opens from actions * @author ManiKanta * @Date 2018-11-19T15:46:44+0530 * @return {} */ function highlightBindEvents() { $(document).on("focusout", "#ivirbgColorValue", function () { var colorValue = $(this).val(); var tinyColorValue = tinycolor(colorValue); if (tinyColorValue.isValid()) { $("#ivirbgColor").spectrum("set", tinyColorValue); } }); $(document).on("focusout", "#ivirtxtColorValue", function () { var colorValue = $(this).val(); var tinyColorValue = tinycolor(colorValue); if (tinyColorValue.isValid()) { $("#ivirtxtColor").spectrum("set", tinyColorValue); } }) } /** * To unbind events of highligh when popup is closed * @author ManiKanta * @Date 2018-11-19T15:47:11+0530 * @return {} */ function highlightUnBindEvents() { $(document).off("focusout", "#ivirbgColorValue"); $(document).off("focusout", "#ivirtxtColorValue"); } /** * Main Funtion to create a dialog when ever user select an action * This will have the close open every event of popup * @author ManiKanta + Prashik * @Date 2018-11-19T15:47:36+0530 * @param {String} titleName The title to show on the top of the popup i.e., Add View/Edit View * @param {String} task The popup to show will be descided based on the task name * @param {String} okFunction Name of the function to execute when user clicked on Apply * @param {Array} showValuesOnOpen will have the values of [type,index] of the colum if user click on edit of the condtion * @param {Boolean} isEditPill IS called from edit of the condtion or new (true => edit,false=>new) * function ivirActionDialog is been modified to smartStepper * saveViewActionRef => to save the task * cancelViewActionRef => cancel/close smartStepper */ saveViewActionRef = (titleName, task, okFunction, showValuesOnOpen, isEditPill) => { if (task == "group" || (task == 'chart' && (!requestJSON || iviewButtonStyle == "old")) || task == 'highlight') { var ind = showValuesOnOpen == undefined ? undefined : showValuesOnOpen[1]; if (!ivirDuplicateCheck(task, isEditPill, ind)) { return false; } } if (task == 'chart' && requestJSON && iviewButtonStyle != "old") { var ind = showValuesOnOpen == undefined ? undefined : showValuesOnOpen[1]; if (ivirMainObj && ivirMainObj.key != "charts" && !ivirChartNewDuplicateCheck(task, isEditPill, ind)) { return false; } } if (task == "highlight") { if (!validateFields(task)) { return false; } } if (showValuesOnOpen) { var presentAction = showValuesOnOpen[0]; var indexOfPill = showValuesOnOpen[1]; if (presentAction == 'highlight' || presentAction == 'group' || presentAction == 'chart') { var pillAlreadyChecked = $("input#" + presentAction + "pillCB" + indexOfPill).is(":checked"); if (!okFunction(indexOfPill, pillAlreadyChecked)) { return false; } if (task == "chart") { $("[data-dropdown-value=save]:eq(0)").click(); } } } else { if (task == "group" || task == 'chart' || task == 'column' || task == 'download') { if (!okFunction()) { return false; } if (task == "chart") { $("[data-dropdown-value=save]:eq(0)").click(); } } else if (task == 'view') { if ($("#viewCaption").val() == "") { ivirCustomErrMsg($("#viewCaption"), errorMessages.emptyField); return false; } else if (($("#viewName").val().toLowerCase() == "main" && !isListView) || (requestJSON && iviewButtonStyle != "old" && $("#viewName").val().toLowerCase() == "charts")) { ivirCustomErrMsg($("#viewName"), callParentNew('lcm')[483]); return false; } else { if (validateViewName()) { if (titleName != "Edit View" && !checkDuplicateViewName()) { return false; } else if ( toolbarPinArr.length > 0 || ($("#viewName").val().toLowerCase() == "main" && isListView) || //force save/clear of main view design (ivirMainObj.params || $("#hdnparamValues").val().replace(/`/g, "`")) || ivirMainObj.chart || ivirMainObj.filter || ivirMainObj.sorting || ivirMainObj.group || ivirMainObj.visibleColumns || ivirMainObj.hiddenColumns || ivirMainObj.highlight || ivirMainObj.design ) { window[okFunction]($("#viewName").val(), $("#viewCaption").val(), $('#viewAplyTo option:selected').val()); } else { showAlertDialog("warning", 3011, "client", appGlobalVarsObject.lcm[335] + " " + "\"" + ($("#viewCaption").val() || "") + "\" " + appGlobalVarsObject.lcm[301].toLowerCase() + " "); return false; } } else { return false; } } } else { okFunction(); } } setSmartViewHeight(); isOpenSmartStepper = false; } cancelViewActionRef = (titleName) => { if (titleName == "Edit View" && !_.isEmpty(ivirMainObj) && !_.isEmpty(bkpIvirMainObj)) { ivirMainObj = _.cloneDeep(bkpIvirMainObj); } isOpenSmartStepper = false; } onContentReadyRef = (task, showValuesOnOpen, isEditPill) => { disableBackDrop('bind'); if (!isEditPill) checkForPillsLength(task); highlightTheFirstFld(); ivirbindEvents(task); if (task == 'group') { if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { if (ivirMainObj.group && ivirMainObj.group.length > 0) { showValuesOnOpen = [task, 0]; } else { showValuesOnOpen = undefined; } } } if (task == 'column') { requestTstructFieldsObj(); if (!isListView || $("#hdnListViewFieldsJSON").val() == "") { if ($(".ivirLabelWrapper input:checkbox:not(:checked)").length > 0) $("#showAllColumns").prop('checked', false); else $("#showAllColumns").prop('checked', true); } else { $(".lstColSelWrapper").each((ind, elm) => { if ($(elm).find(".ivirLabelWrapper input:checkbox:not(:checked)").length > 0) $(elm).find("input.showAllColumns[data-isgrid]").prop('checked', false); else $(elm).find("input.showAllColumns[data-isgrid]").prop('checked', true); }); } } else if (task == "design") { var iframe = document.createElement('iframe'); $(iframe).attr("id", "columnDesigner"); $(iframe).addClass("col-xs-12 col-sm-12 col-md-12 col-lg-12"); $(iframe).css("padding", "0px"); $(iframe).attr("frameborder", "0"); $(iframe).attr("allowtransparency", "True"); $("#ivirDesignColumnWrapper")[0].appendChild(iframe); let iframeWindow = iframe.contentWindow; $(iframeWindow.document.getElementsByTagName("body")).attr("oncontextmenu", "return false;").addClass("topSplitDivision").append("
"); iframeWindow.dwbiName = iName; // ShowDimmer(true); loadAndCall({ files: { css: [ "/Css/thirdparty/bootstrap/3.3.6/bootstrap.min.css", "/ThirdParty/DataTables-1.10.13/media/css/jquery.dataTables.min.css", "/ThirdParty/DataTables-1.10.13/extensions/Responsive/css/responsive.bootstrap.min.css", "/ThirdParty/DataTables-1.10.13/extensions/FixedHeader/css/fixedHeader.dataTables.min.css", "/Css/listViewDesigner.min.css?v=1", ], js: [ "/Js/thirdparty/jquery/3.1.1/jquery.min.js", "/Js/noConflict.min.js", "/ThirdParty/lodash.min.js", "/Js/common.min.js?v=98", "/ThirdParty/DataTables-1.10.13/media/js/jquery.dataTables.min.js", "/ThirdParty/DataTables-1.10.13/media/js/dataTables.bootstrap.min.js", "/ThirdParty/DataTables-1.10.13/extensions/FixedHeader/js/dataTables.fixedHeader.min.js", "/ThirdParty/DataTables-1.10.13/extensions/ColReorderWithResize/ColReorderWithResize.min.js?v=1", "/ThirdParty/DataTables-1.10.13/extensions/Extras/moment.min.js", "/ThirdParty/DataTables-1.10.13/extensions/Extras/datetime-moment.js", "/Js/iviewColumnBuilder.min.js?v=12" ] }, callBack() { iframeWindow.axDevIvDrawTable(FieldName.map((fld, ind) => { return { f_name: FieldName[ind], f_caption: HeaderText[ind], column_width: ivirMainObj?.design?.filter(dsign => dsign.name == FieldName[ind])?.[0]?.width || ivHeadRows[FieldName[ind]]?.["@width"] || minCellWidth.toString(), hidden: HideColumn[ind], isquerycol: false }; }).filter(fld => fld.f_name != "rowno") || [], iName); }, win: iframeWindow }); } else if (task == 'sort') { $("#ivirSortColumnWrapper .ivirLabelWrapper:first").addClass('labelSelected'); if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && ivirMainObj.sorting && ivirMainObj.sorting.length > 0) { $("#ivirSortColumnWrapper .checkbox input[type='checkbox']").each(function (index, el) { $(this).prop("checked", false); $(this).parent().find('button span').removeClass("active"); var index = $(this).data('index'); var fieldName = FieldName[index]; var thisObj = ivirMainObj.sorting.filter(sort => sort[0] == fieldName); if (thisObj && thisObj.length == 1 && thisObj[0].length == 2) { $(this).prop("checked", true); $(this).parent().find('button span[data-order=' + thisObj[0][1] + ']').addClass("active"); } }); } } else if (task == 'highlight') { $(document).find("#ivirtxtColor").spectrum({ color: "#000000", clickoutFiresChange: false, beforeShow: function (color) { $("#ivirbgColor").spectrum("set", $("#ivirbgColorValue").val()); }, change: function (color) { $("#ivirtxtColorValue").val(color.toHexString()); } }); $(document).find("#ivirbgColor").spectrum({ color: "#000000", clickoutFiresChange: false, beforeShow: function (color) { $("#ivirtxtColor").spectrum("set", $("#ivirtxtColorValue").val()); }, change: function (color) { $("#ivirbgColorValue").val(color.toHexString()); } }); $("#ivirbgColor, #ivirtxtColor").parent().find(".sp-replacer").addClass("input-group-text"); highlightBindEvents(); } else if (task == 'chart') { $('#ivirChartName').focus(); } else if (task == 'view') { var username = eval(callParent("mainUserName")); $('#viewAplyTo').val(username); if (!hasBuildAccess) { $('#viewAplyTo').prop("disabled", true); } $('#viewCaption').focus(); } if (showValuesOnOpen) { var ivirMainTypeObj = ivirMainObj[showValuesOnOpen[0]][showValuesOnOpen[1]]; if (showValuesOnOpen[0] == 'highlight') { var name = ivirMainTypeObj.n; var highlightType = ivirMainTypeObj.t; var bgColor = ivirMainTypeObj.bc; var txtColor = ivirMainTypeObj.tc; var column = ivirMainTypeObj.cl; var condition = ivirMainTypeObj.cn; var value = ivirMainTypeObj.v; $("#ivirHltName").val(name); $("#ivirHighlightType").val(highlightType); $("#ivirbgColorValue").val(bgColor); $("#ivirtxtColorValue").val(txtColor); $("#ivirHighlightCol option[data-index=" + column + "]").prop('selected', true).change(); $("#ivirHighlightCndtn").val(condition); $("#ivirHltValue").val(value); $(document).find("#ivirtxtColor").spectrum({ color: txtColor, clickoutFiresChange: false, change: function (color) { $("#ivirtxtColorValue").val(color.toHexString()); } }); $(document).find("#ivirbgColor").spectrum({ color: bgColor, clickoutFiresChange: false, change: function (color) { $("#ivirbgColorValue").val(color.toHexString()); } }); $("#ivirbgColor, #ivirtxtColor").parent().find(".sp-replacer").addClass("input-group-text"); } else if (showValuesOnOpen[0] == 'group') { var name = ivirMainTypeObj.n; var column = ivirMainTypeObj.cl; var totalArray = ivirMainTypeObj.t; var grndTotalArray = ivirMainTypeObj.g; var totalCndtns = 1; $("#grpName").val(name); $("#grpColName option[data-index=" + column + "]").prop('selected', true).change(); if (totalArray) { for (var i = 1; i < totalArray.length; i = i + 2) { var columnIndex = totalArray[i]; var functionType = totalArray[i - 1]; if (i !== 1) $("#ivirTotalCndtn" + (totalCndtns - 1) + " .ivirTotalCndtnBtn").click(); //sice plus will be always last row $("#ivirTotalCndtn" + totalCndtns + " .totalAggrFunction option[value='" + functionType + "']").prop('selected', true).change(); $("#ivirTotalCndtn" + totalCndtns + " .totalSource option[data-index='" + columnIndex + "']").prop('selected', true).change(); if (grndTotalArray[totalCndtns - 1] != "-1") $("#ivirTotalCndtn" + totalCndtns + " .grndTtlCB input").prop('checked', true); totalCndtns++; } } } else if (showValuesOnOpen[0] == 'chart') { var name = ivirMainTypeObj.n; var column = ivirMainTypeObj.cl; var value = ivirMainTypeObj.v; var chartType = ivirMainTypeObj.t; $("#ivirChartName").val(name); $("#ivirChartCol option[data-index=" + FieldName.indexOf(column) + "]").prop('selected', true).change(); $("#ivirChartVal option[data-index=" + FieldName.indexOf(value) + "]").prop('selected', true).change(); $("#ivirChartsRow .ivirChartButton").removeClass('active'); $("#ivirChartsRow").find("[data-type='" + chartType + "']").addClass('active'); } } } onCloseRef = (task) => { // before the modal is hidden. $("#IvirActions").val(""); ivirRemovebindEvents(task); highlightUnBindEvents(); if (task == 'group') { tmpGroupObj = {}; } else if (task == 'column') { pillDependentCols = {}; } else if (task == "design") { $(".designForceHide").removeClass("d-none designForceHide"); } isOpenSmartStepper = false; } function checkDuplicateViewName() { var name = $("#viewCaption").val(); if ($("#viewTabs").find("a span[data-caption=" + name.replace(/ /g, "\\ ") + "]").length > 0) { ivirCustomErrMsg($("#viewCaption"), errorMessages.duplicateFld.replace("{0}", "View")); return false; } else return true; } function validateViewName() { var name = $("#viewCaption").val(); var regex = /^[0-9a-zA-Z\_ ]+$/; if (!regex.test(name)) { ivirCustomErrMsg($("#viewCaption"), errorMessages.invalidName); return false; } else return true; } /** * To highlight the first field when an popup is opened * @author ManiKanta * @Date 2018-11-19T16:26:22+0530 * @return {} */ function highlightTheFirstFld() { var allFocusableElems = $(".jconfirm-box-container").find(':focusable'); for (var i = 0; i < allFocusableElems.length; i++) { if (allFocusableElems[i].nodeName != "DIV" && allFocusableElems[i].tabIndex != "-1") { allFocusableElems[i].focus(); return false; } } } /** * When user is adding more conditons this function will check weather user can add more conditoins or limit exceeded * @author ManiKanta * @Date 2018-11-19T16:26:49+0530 * @param {String} type Type of the condition to check * @return {Boolean} */ function checkForPillsLength(type) { if (type == "group" || type == "highlight" || type == "chart" || type == "filter") { var pillsArr = ivirMainObj[type]; if (requestJSON && iviewButtonStyle != "old" && type != "chart") { maxNoOfPills = 1; } if (pillsArr && pillsArr.length >= maxNoOfPills) { if (maxNoOfPills < 1) { var msg = errorMessages.maxPills.replace(/_type_/g, type); showAlertDialog("warning", msg); } $("#IvirActions").val(""); if (requestJSON && iviewButtonStyle != "old" && type != "chart") { maxNoOfPills = 5; } return true; $(".okBtn").addClass('disabled').prop('disabled', true); } } } /** * Events to bind once the poup is opned * @author ManiKanta * @Date 2018-11-19T16:28:14+0530 * @param {String} act Action name on which popup is opened * @return {} */ function ivirbindEvents(act) { var action = act.toLowerCase(); //writing custom code to traverse the tab access in the opened popup jQuery(document).bind("keyup.cnfrmPopupKU", function (event) { }); jQuery(document).bind("keydown.cnfrmPopupKD", function (event) { var elemntsToCheck = 'button[tabindex!="-1"],a[tabindex!="-1"],input[tabindex!="-1"],select[tabindex!="-1"],textarea[tabindex!="-1"]'; if (!event.shiftKey && event.keyCode == 9) { //tab key if ($(document.activeElement)[0] == $(".jconfirm-buttons button:last")[0]) { event.preventDefault() $(".jconfirm-box").find(elemntsToCheck).first().focus(); } } else if (event.shiftKey && event.keyCode == 9) { //tab key + shift if ($(document.activeElement)[0] == $(".jconfirm-box").find(elemntsToCheck).first()[0]) { event.preventDefault(); $(".jconfirm-box").find(elemntsToCheck).last().focus(); } } else if (event.keyCode == 27) { event.preventDefault(); $(".jconfirm-box .jconfirm-buttons .coldbtntiny").click(); } }); $("#ivirHighlightWrapper .colorPicker").on('blur.accessColor', function () { $(this).val($($(this).next()).spectrum("get").toHexString()); }); $('.dialogInptFld').on("keydown.dlgKD", function () { var elem = $(this); if (elem.next().hasClass('customError')) { elem.next('span.customError').remove(); } }); $('.dialogSlctFld').on("change.dlgKD", function () { var elem = $(this); if (elem.next().hasClass('customError')) { elem.next('span.customError').remove(); } }); if (action == 'column') { $(document).on('change', '#showAllColumns, .showAllColumns', function (event) { if (!isListView || $("#hdnListViewFieldsJSON").val() == "") { if ($(this).is(':checked')) { $("#ivirshowHideColumnWrapper div.checkbox input:not('.disabled')").prop('checked', true); } else { $("#ivirshowHideColumnWrapper .customCheckBox:not('.disabled')").prop('checked', false); if ($("#ivirshowHideColumnWrapper .customCheckBox:checked").length === 0) $("#ivirshowHideColumnWrapper .customCheckBox:not('.disabled'):first").prop('checked', true); } } else { var wrapper = $(this).parents(".lstColSelWrapper"); var showAllInput = $(this); var isGrid = showAllInput.data("isgrid"); if ($(this).is(':checked')) { wrapper.find(".ivirLabelWrapper input:checkbox:not('.disabled')").prop('checked', true); } else { wrapper.find(".ivirLabelWrapper input:checkbox:not('.disabled')").prop('checked', false); if (wrapper.find(".ivirLabelWrapper input:checkbox:checked").length === 0 && !isGrid) wrapper.find(".ivirLabelWrapper input:checkbox:not('.disabled'):first").prop('checked', true); } if (isGrid && $(this).is(':checked')) { $(".lstColSelWrapper").each((ind, elm) => { if (!$(elm).is(wrapper) && $(elm).find(".showAllColumns").data("isgrid")) { $(elm).find("input:checkbox:not('.disabled')").prop('checked', false); } }); } $("#selColHypOpts").html($(".lstColSelWrapper").map((ind, elm) => { return $(elm).find(".ivirLabelWrapper input:checkbox:checked").map((ind, elm) => { return `` }).toArray().join("") }).toArray().join("")); } }); $(document).on('change', '#ivirshowHideColumnWrapper .customCheckBox', function (event) { if (!isListView || $("#hdnListViewFieldsJSON").val() == "") { if (!$(this).is(':checked')) { $("#showAllColumns").prop('checked', false); } else { if ($(".ivirLabelWrapper input:checkbox:not(:checked)").length > 0) $("#showAllColumns").prop('checked', false); else $("#showAllColumns").prop('checked', true); } } else { var wrapper = $(this).parents(".lstColSelWrapper"); var showAllInput = wrapper.find(".showAllColumns"); var isGrid = showAllInput.data("isgrid"); if (!$(this).is(':checked')) { showAllInput.prop('checked', false); if (wrapper.find(".ivirLabelWrapper input:checkbox:checked").length === 0 && !isGrid) wrapper.find(".ivirLabelWrapper input:checkbox:not('.disabled'):first").prop('checked', true); } else { if (wrapper.find(".ivirLabelWrapper input:checkbox:not(:checked)").length > 0) showAllInput.prop('checked', false); else showAllInput.prop('checked', true); } if (isGrid && $(this).is(':checked')) { $(".lstColSelWrapper").each((ind, elm) => { if (!$(elm).is(wrapper) && $(elm).find(".showAllColumns").data("isgrid")) { $(elm).find("input:checkbox:not('.disabled')").prop('checked', false); } }); } $("#selColHypOpts").html($(".lstColSelWrapper").map((ind, elm) => { return $(elm).find(".ivirLabelWrapper input:checkbox:checked").map((ind, elm) => { return `` }).toArray().join("") }).toArray().join("")); } }); } else if (action == "sort") { $(document).on('click', '#ivirSortColumnWrapper .ascDscWrapper button', function (event) { var clickedBtn = $(this); var parentSpan = $($(this).parent()); parentSpan.find('button span').removeClass('active'); clickedBtn.find('span').addClass('active'); parentSpan.parent().find('input[type="checkbox"]').prop('checked', true) }); $(document).on('click', '#clearSorting', function (event) { $("#ivirSortColumnWrapper .labelSelected").removeClass('labelSelected'); $("#ivirSortColumnWrapper input[type='checkbox']").prop('checked', false); $("#ivirSortColumnWrapper .ascDscWrapper button span").removeClass('active'); }); $(document).on('click', '.ivirSortLabel', function (event) { var parentEl = $(this).parent('.ivirLabelWrapper'); $("#ivirSortColumnWrapper .labelSelected").removeClass('labelSelected'); if (parentEl.hasClass('labelSelected')) parentEl.removeClass('labelSelected'); else parentEl.addClass('labelSelected'); }); $(document).on('change', '#ivirSortColumnWrapper input[type="checkbox"]', function (event) { if ($(this).is(':checked')) { $(this).parent().find('span.ascDscWrapper').find('button span:first').addClass('active'); } else { $(this).parent().find('span.ascDscWrapper').find('button span').removeClass('active'); } }); assignKeyDownDrag("ivirSortColumnWrapper"); } else if (action == 'highlight') { $(document).on('change', '#ivirHighlightCol', function (event) { var lastColType = $(this).data('lastColType'); var colType = $(this).find('option:selected').data('type'); if (colType == "d") $("#ivirHltValue").attr("type", "date"); else $("#ivirHltValue").attr("type", "text"); $(this).data('lastColType', colType); if (lastColType == undefined || lastColType != colType) { var optionsHtml = ""; if (colType == 'c') { optionsHtml += ""; optionsHtml += ""; optionsHtml += ""; optionsHtml += ""; optionsHtml += ""; } else if (colType == 'n' || colType == 'd') { optionsHtml += ""; optionsHtml += ""; optionsHtml += ""; optionsHtml += ""; optionsHtml += ""; optionsHtml += ""; } $("#ivirHighlightCndtn").html(optionsHtml); } }); } else if (action == 'group') { $(document).on('change', '#grpColName', function (event) { var elem = $(this); tmpGroupObj = {}; htmlToShow = '
'; htmlToShow += getRowGroupingCondtionHtml(); htmlToShow += '
'; $("#ivirTotalCndtnWrapper").data('cndtns', [1]).attr('data-cndtns', '[1]').html(htmlToShow); if (elem.val() === "") { $("#ivirTotalCndtnWrapper").hide(); } else { $("#ivirTotalCndtnWrapper").show(); tmpGroupObj.groupIndex = $(this).find('option:selected').data('index'); } /* select2 and tooltip init required */ $("select.stepperSelect.totalAggrFunction, select.stepperSelect.totalSource").select2({ allowClear: true, placeholder: appGlobalVarsObject.lcm[441], }); KTApp?.initBootstrapTooltips(); }); } } /** * To remove the events wehen the popup is closing * @author ManiKanta * @Date 2018-11-19T16:28:59+0530 * @param {String} act Action on which popup is closing * @return {} */ function ivirRemovebindEvents(act) { jQuery(document).unbind("keydown.cnfrmPopupKD"); jQuery(document).unbind("keyup.cnfrmPopupKU"); $('.dialogInptFld').off("keydown.dlgKD"); $('.dialogInptFld').off("change.dlgKD"); var action = act.toLowerCase(); if (action == 'column') { $(document).off('change', '#showAllColumns, .showAllColumns'); } else if (action == "sort") { $(document).off('click', '#ivirSortColumnWrapper .ascDscWrapper button'); $(document).off('click', '#clearSorting'); $(document).off('click', '.ivirSortLabel'); $(document).off('change', '#ivirSortColumnWrapper input[type="checkbox"]'); $(document).off('keydown.upAndDown'); } else if (action == 'highlight') { $("#ivirHighlightWrapper .colorPicker").off('blur.accessColor'); $(document).off('change', '#ivirHighlightCol'); } else if (action == 'group') { $(document).off('change', '#grpColName'); } } /** * Events to be binded when user opened a sort popup like key down/up space selction and dragging(Future use) * @author ManiKanta * @Date 2018-11-19T16:29:53+0530 * @param {} parentId * @return {} */ function assignKeyDownDrag(parentId) { $(document).on('keydown.upAndDown', function (e) { var selectedElem = $("#ivirSortColumnWrapper .ivirLabelWrapper.labelSelected"); if (e.keyCode == 38) { if (selectedElem.index() != 0) { selectedElem.prev().addClass('labelSelected'); selectedElem.removeClass('labelSelected'); } } else if (e.keyCode == 40) { if (selectedElem.index() != selectedElem.parent().find('.ivirLabelWrapper').last().index()) { selectedElem.next().addClass('labelSelected'); selectedElem.removeClass('labelSelected'); } } else if (e.keyCode == 32) { e.preventDefault(); $("#ivirSortColumnWrapper .ivirLabelWrapper.labelSelected .ascDscWrapper button span:not('.active')").first().click(); } }); } /** * For sorting popup when user click on up arrow or down arrow this function will be called with parent div ID * @author ManiKanta * @Date 2018-11-19T16:31:30+0530 * @param {String} direction up/down * @param {String} parentId id of the parent * @return {} */ function ivirMoveUpDown(direction, parentId) { var selectedFld = $("#" + parentId).find('div.labelSelected'); if (direction == 'up') { if (selectedFld.index() != 0) { selectedFld.insertBefore(selectedFld.prev()); } } else if (direction == 'down') { if (selectedFld.index() != selectedFld.parent().find('.ivirLabelWrapper').last().index()) { selectedFld.insertAfter(selectedFld.next()); } } } /** * Will be called when user applied hide show columns * @author Prashik + ManiKanta * @Date 2018-11-19T17:18:08+0530 * @return {} */ function ivirshowHideColumns(hvColumns = []) { requestTstructFieldsObj(); if (!isListView || $("#hdnListViewFieldsJSON").val() == "") { if ($("#ivirshowHideColumnWrapper div.checkbox input:checked").length == 0 && hvColumns.length == 0) { showAlertDialog("warning", errorMessages.columnSelection); return false; } if ($("#ivirshowHideColumnWrapper div.checkbox:visible").length > 0) { hvColumns = []; $(ivirTable).css("width", "auto"); $("#ivirshowHideColumnWrapper div.checkbox").each(function (index, el) { var checkBox = $(this).find('input'); if (checkBox.is(':checked')) { if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { ivirVisibleColumns.push(checkBox.data('index')); ivirDataTableApi.column(checkBox.data('index')).visible(true); } } else { hvColumns.push(FieldName[checkBox.data('index')]); if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { ivirDataTableApi.column(checkBox.data('index')).visible(false); } } }); viewLoadedColumns = false; } else if (hvColumns.length > 0) { FieldName.forEach((fld, ind) => { if (hvColumns.indexOf(fld) == -1 && hiddenColumnIndex.indexOf(ind) == -1) { if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { ivirVisibleColumns.push(ind); ivirDataTableApi.column(ind).visible(true); } } else { if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { ivirDataTableApi.column(ind).visible(false); } } }); viewLoadedColumns = true; } else { viewLoadedColumns = false; } if (requestJSON && iviewButtonStyle != "old") { if (hvColumns.length == 1 && hvColumns[0] == "!") { hvColumns = []; viewLoadedColumns = false; } if (hvColumns.length > 0) { ivirMainObj.hiddenColumns = hvColumns; } else if (hvColumns.length == 0) { delete ivirMainObj.hiddenColumns; $("#newViewcolumns").val(""); } if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && ivirMainObj.hiddenColumns && ivirMainObj.hiddenColumns.length > 0) { $("#newViewcolumns").val(JSON.stringify({ hidden: ivirMainObj.hiddenColumns })); } } if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { if ($(ivirTable).outerWidth() < $(window).width()) { $(ivirTable).css("width", "100%"); ivirDatatable.fnAdjustColumnSizing(); } // if column freeze is there heights are appending to tr so its showing too much space $(ivirTable + " tbody tr").css("height", "22px"); ivirDataTableApi.fixedColumns().relayout(); createMainEventsOnGrid(); if (!jQuery.isEmptyObject(pillDependentCols)) { var pillData = pillDependentCols.data; var pillType = pillDependentCols.type; var pillindex = pillDependentCols.index; var pillDependentColsLength = pillData.length; for (var i = 0; i < pillDependentColsLength; i++) { if ($.inArray(pillData[i], ivirVisibleColumns) === -1) { showAlertDialog("warning", errorMessages.dependentColumns); return false; } } $("#" + pillType + "pillCB" + pillindex).prop('checked', true).attr('checked', 'checked'); if (pillType == "group") applyThePill("group", pillindex); else if (pillType == "chart") ivirCreateChart(pillindex, true, true); pillDependentCols = {}; } if (fixedColumnsObj != "") { $(".DTFC_LeftBodyWrapper .ivirCustomHighlight,.DTFC_LeftBodyWrapper .ivirCustomHighlightCell").removeClass("ivirCustomHighlight").css({ "background-color": "", "color": "" }); } } } else { if ($("#ivirshowHideColumnWrapper div.checkbox input:checked").length == 0 && hvColumns.length == 0) { showAlertDialog("warning", errorMessages.columnSelection); return false; } hvColumns = []; if ($("#ivirshowHideColumnWrapper div.checkbox:visible").length > 0) { hvColumns = []; hvColumns.push( { hyperlink: $("#selColHypOpts").val(), dcs: $("#ivirshowHideColumnWrapper div.checkbox:visible input:checked").toArray().reduce((res, fld, ind) => { if (!res[$(fld).data("dcno")]) { res[$(fld).data("dcno")] = {}; res[$(fld).data("dcno")].fields = []; res[$(fld).data("dcno")].isGrid = $(fld).data("isgridfield"); } res[$(fld).data("dcno")].fields.push($(fld).data("name")); return res; }, {}) } ); if (hvColumns) { var columnsString = _.map(hvColumns[0].dcs, (dc) => { return dc.fields }).reduce((res, fld) => { res = [...res, ...fld]; return res; }, []).join(","); if ($("#hdnLvSelectedCols").val() != columnsString || $("#hdnLvSelectedHyperlink").val() != hvColumns[0].hyperlink) { $("#hdnLvSelectedCols").val(columnsString); $("#hdnLvSelectedHyperlink").val(hvColumns[0].hyperlink); $("#hdnLvChangedStructure").val(""); var viewName = $(".viewtabEdit").parents("li.active").find(".viewtabEdit").data("name") || "main"; loadViewName = viewName; $("#button1").trigger('click'); } } viewLoadedColumns = false; } else if (hvColumns.length > 0) { viewLoadedColumns = true; } else { viewLoadedColumns = false; } if (requestJSON && iviewButtonStyle != "old") { if (hvColumns.length == 1 && hvColumns[0] == "!") { hvColumns = []; viewLoadedColumns = false; } if (hvColumns.length > 0) { ivirMainObj.visibleColumns = hvColumns; } else if (hvColumns.length == 0) { delete ivirMainObj.visibleColumns; $("#newViewcolumns").val(""); } if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && ivirMainObj.visibleColumns && ivirMainObj.visibleColumns.length > 0) { $("#newViewcolumns").val(JSON.stringify({ visible: ivirMainObj.visibleColumns })); } } } return true; } function ivirDesignColumn() { try { ivirMainObj = ivirMainObj || {}; } catch (ex) { } ivirMainObj.design = ivColDesignJSON || []; if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { $("#newViewdesign").val(newBtnGroup.design.value); } else { var username = callParentNew("mainUserName"); ivirMainObj["applyTo"] = username; ivirMainObj["groupName"] = "main"; ivirMainObj["caption"] = ivirMainObj["groupName"]; if (!ivirMainViewObj["views"]) ivirMainViewObj["views"] = {}; ivirMainViewObj["views"][ivirMainObj["groupName"]] = JSON.parse(JSON.stringify(ivirMainObj)); SaveSmartviewJsonToDb("set", JSON.stringify(ivirMainViewObj), ivirMainObj["applyTo"], ivirMainObj["groupName"]); } if (!responsiveColumnWidth) { forceColumnWidth(); } } /** * Will be called when user applied sorting * @author Prashik + ManiKanta * @Date 2018-11-19T17:18:47+0530 * @return {} */ function ivirSortColumns(fldSortingArray = []) { var sortingArray = []; if ($("#ivirSortColumnWrapper .checkbox input[type='checkbox']:visible").length > 0) { fldSortingArray = []; $("#ivirSortColumnWrapper .checkbox input[type='checkbox']").each(function (index, el) { if ($(this).is(':checked')) { var index = $(this).data('index'); var order = $(this).parent().find('button span.active').data('order'); var tmpArray = []; tmpArray.push(index); tmpArray.push(order); sortingArray.push(tmpArray); var tmpFldArray = []; tmpFldArray.push(FieldName[index]); tmpFldArray.push(order); fldSortingArray.push(tmpFldArray); } }); viewLoadedSort = false; } else if (fldSortingArray.length > 0 && fldSortingArray[0] != "!") { sortingArray = fldSortingArray.map(sortData => { sortData[0] = FieldName.indexOf(sortData[0]); return sortData; }); viewLoadedSort = true; } else if (fldSortingArray.length > 0 && fldSortingArray[0] == "!") { try { ivirDataTableApi.order.neutral().draw() } catch (ex) { } viewLoadedSort = false; } else { viewLoadedSort = false; } if (requestJSON && iviewButtonStyle != "old") { if (fldSortingArray.length == 1 && fldSortingArray[0] == "!") { fldSortingArray = []; viewLoadedColumns = false; } if (fldSortingArray.length > 0) { ivirMainObj.sorting = fldSortingArray; } if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && fldSortingArray.length == 0) { delete ivirMainObj.sorting; } } if (groupingCol != "") { sortingArray.push([parseInt(groupingCol), "asc"]); } if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { try { $("#newViewsort").val(JSON.stringify(ivirMainObj.sorting)); } catch (ex) { } } else { ivirDatatable.fnSort(sortingArray); } } /** * The main function for row grouping will be called when user applied for grouping * @author ManiKanta + Abhishek * @Date 2018-11-19T17:19:03+0530 * @param {Number} indexOfArray index of the column on which grouping should apply * @param {Boolean} isPillAlreadyChecked To know weather user is applyig or removing the conditon * @return {} */ function ivirRowGrouping(indexOfArray, isPillAlreadyChecked) { if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && (typeof ivirMainObj.group == "undefined" || ivirMainObj.group.length == 0) && typeof indexOfArray != "undefined") { indexOfArray = undefined; } var grpName = $("#grpName"); var grpColName = $("#grpColName"); var indexOfGrpArray; var limitExceeded = false; var isFirstTime = false; if (grpName.val() == "") { ivirCustomErrMsg(grpName, errorMessages.emptyField) return false; } else if (!testRegex("validName", grpName.val())) { ivirCustomErrMsg(grpName, errorMessages.invalidName); return false; } if (grpColName.val() == "") { ivirCustomErrMsg(grpColName, errorMessages.emptySelect) return false; } var colIndex = parseInt(grpColName.find('option:selected').data('index'), 10); //checking for user filled any total conditions if ($("#ivirTotalCndtn1 .totalAggrFunction").val() != "") { var isLastSelectEmpty = false; $("#ivirTotalCndtnWrapper select:enabled").each(function (index, el) { if ($(this).val() == "") { ivirCustomErrMsg($(this), errorMessages.emptyField); isLastSelectEmpty = true; return false; } }); if (isLastSelectEmpty) { return false; } if ($("#ivirTotalCndtn1 .totalAggrFunction").val() == "") { ivirCustomErrMsg($("#ivirTotalCndtn1 .totalAggrFunction"), errorMessages.emptyField) return false; } else { $("#ivirTotalCndtn1 .totalAggrFunction").next('span.customError').remove(); } if ($("#ivirTotalCndtn1 .totalSource").val() == "") { ivirCustomErrMsg($("#ivirTotalCndtn1 .totalSource"), errorMessages.emptyField) return false; } else { $("#ivirTotalCndtn1 .totalSource").next('span.customError').remove(); } var addedRowsArray = $("#ivirTotalCndtnWrapper").data('cndtns'); var groupTotalArray = []; var grandTotal = []; for (var i = 0; i < addedRowsArray.length; i++) { var presentCndtn = addedRowsArray[i]; groupTotalArray.push($("#ivirTotalCndtn" + presentCndtn + " .totalAggrFunction").val()); groupTotalArray.push($("#ivirTotalCndtn" + presentCndtn + " .totalSource option:selected").data("index")); groupTotalArray.push($("#ivirTotalCndtn" + presentCndtn + " .totalSource option:selected").val()); var indexOfCol = $("#ivirTotalCndtn" + presentCndtn + " .grndTtlCB input").data('index'); if ($("#ivirTotalCndtn" + presentCndtn + " .grndTtlCB input").is(':checked')) { if ($.inArray(indexOfCol, allGrandTotal) === -1) { allGrandTotal.push(indexOfCol); } grandTotal.push(indexOfCol) } else { var idx = allGrandTotal.indexOf(indexOfCol); if (idx != -1) allGrandTotal.splice(idx, 1); grandTotal.push(-1); } } } //neeed to validate for added rows(function....) if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { // $("#newViewsort").val(searchJSON); } else { if ((indexOfArray === undefined) || isPillAlreadyChecked) createIvirDataTable("group", colIndex, groupTotalArray, allGrandTotal); } //apply the pill is is directly handled in chekcbox click ivirCheckBox var name = grpName.val(); var columnIndex = colIndex; var grpTotal = groupTotalArray; var grndTotal = grandTotal; if (indexOfArray === undefined) { //means first time or new one if (jQuery.isEmptyObject(ivirMainObj)) { var grpArr = ivirMainObj.group = []; isFirstTime = true; indexOfGrpArray = 0; } else if (ivirMainObj.group === undefined) { var grpArr = ivirMainObj.group = []; indexOfGrpArray = 0; } else { var grpArr = ivirMainObj.group; isFirstTime = false; if (grpArr.length >= maxNoOfPills) limitExceeded = true; indexOfGrpArray = grpArr.length; } var grpObj = new Object(); } else { var grpObj = ivirMainObj.group[indexOfArray]; indexOfGrpArray = indexOfArray; } if (!limitExceeded) { grpObj.n = name; grpObj.cl = columnIndex; grpObj.t = grpTotal; grpObj.g = grndTotal; if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { if (typeof ivirMainObj.group == "undefined" || ivirMainObj.group.length == 0) { grpArr.push(grpObj); } } else { if (indexOfArray === undefined) { grpArr.push(grpObj); if (isFirstTime || $("#ivirFilteredAccordion").length == 0) { if ($("#ivirFilteredAccordion").length == 0) createPills("all", "first"); else { $("[id^='grouppillCB']").prop('checked', false).removeAttr('checked'); createPills("all", "last"); } } else if ($("#ivirFilteredAccordion").length > 0) { $("[id^='grouppillCB']").prop('checked', false).removeAttr('checked'); upateThePills("group", indexOfGrpArray, name); } } else { if (isPillAlreadyChecked) { $("[id^='grouppillCB']").prop('checked', false).removeAttr('checked'); $("#grouppillCB" + indexOfArray).prop('checked', true).attr('checked', 'checked'); } $("#grouppillCB" + indexOfArray).parent().next().find('.ivirCndtnName').attr('title', "Edit " + name).text(name); } } } else { showAlertDialog("warning", appGlobalVarsObject.lcm[23]); } if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { $("#newViewrowGrouping").val(JSON.stringify(grpObj)); } setSmartViewHeight(); return true; } /** * Function to generate chart html for the popup opened when user clicked on action * @author ManiKanta * @Date 2018-11-19T17:21:32+0530 * @param {Boolean} isFromEdit To check from edit of new * @return {} */ function getChartHtml(isFromEdit) { isFromEdit = isFromEdit || false; htmlToShow = ""; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
' htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
' htmlToShow += '
'; htmlToShow += ' '; htmlToShow += 'help_outline'; var numericFldsHtml = ""; var charFldsHml = ""; var allColumnsArray = getAllColumns("", isFromEdit); numericFldsHtml = allColumnsArray[0] charFldsHml = allColumnsArray[1]; htmlToShow += '
'; htmlToShow += ' '; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ' '; htmlToShow += 'help_outline'; htmlToShow += '
'; htmlToShow += ' '; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; return htmlToShow; } /** * To get the group html in the popup when user clicked on grroup action * @author ManiKanta * @Date 2018-11-19T17:22:26+0530 * @param {Boolean} isFromEdit To check is from edit or new * @return {} */ function getGroupHtml(isFromEdit) { isFromEdit = isFromEdit || false; var htmlToShow = ""; htmlToShow = '
'; htmlToShow += ''; htmlToShow += ' help_outline'; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += getRowGroupingCondtionHtml(); htmlToShow += '
'; htmlToShow += '
'; return htmlToShow; } /** Will be triggered when aggregation function change in grouping popup */ $(document).on('change', '.totalAggrFunction', function (event) { var elem = $(this); var elemVal = elem.val(); var lastSelectedVal = elem.data('lastSelected'); if (lastSelectedVal && lastSelectedVal == 'count') { // $('.totalAggrFunction option[value="SEL1"]') $(".totalAggrFunction").append(''); elem.find('option[value="count"]').last().remove(); } else { elem.data('lastSelected', elemVal); } elem.parents('.ivirTotalCndtn').find('.grndTtlCB input').prop({ 'checked': false, 'disabled': true, }) if (elemVal != "") { if (elemVal == 'count') { $('.totalAggrFunction').not(this).find('option[value="count"]').remove(); } var exceptionArray = []; if (elem.parents('.ivirTotalCndtn ').attr('id') == 'ivirTotalCndtn1') { exceptionArray = [tmpGroupObj.groupIndex]; } else { var selectedGroupIndex = tmpGroupObj.groupIndex; var indexeSelected = tmpGroupObj.indexeSelected; if (selectedGroupIndex && indexeSelected == undefined) exceptionArray.push(selectedGroupIndex); else if (indexeSelected) { if ($.inArray(selectedGroupIndex, indexeSelected) == -1) indexeSelected.push(selectedGroupIndex); exceptionArray = indexeSelected; } } var allColumns = getAllColumns(exceptionArray); if (elemVal == "sum" || elemVal == "max" || elemVal == "min" || elemVal == "avg") { //means only numeric are allowed elem.parents('.ivirTotalCndtn').find('select.totalSource').append(allColumns[0]).trigger("change"); } else { elem.parents('.ivirTotalCndtn').find('select.totalSource').append(allColumns[0]).trigger("change"); elem.parents('.ivirTotalCndtn').find('select.totalSource').append(allColumns[1]).trigger("change"); } } }); /** Will be traiggered in grouping popup */ $(document).on('change', '.totalSource', function (event) { var chkBx = $(this).parents(".ivirTotalCndtn").find('.grndTtlCB input'); if ($(this).find('option:selected').data('type') == 'n') { var index = $(this).find('option:selected').data('index'); chkBx.data('index', index).prop('disabled', false); } else { chkBx.prop('disabled', true); } }); /** * In grouping popup when user click on add condition row this function will handle the validations and add a row * @author ManiKanta * @Date 2018-11-19T17:26:17+0530 * @param {String} indexToAdd New index to add * @return {} */ function ivirAddTotalCndtn(indexToAdd) { indexToAdd = parseInt(indexToAdd, 10); var isCountSelected = false; var addedRowsArray = $("#ivirTotalCndtnWrapper").data('cndtns'); var lastAddedIndex = addedRowsArray[addedRowsArray.length - 1]; if ($("#ivirTotalCndtn" + lastAddedIndex + " .totalAggrFunction").val() == "") { ivirCustomErrMsg($("#ivirTotalCndtn" + lastAddedIndex + " .totalAggrFunction"), errorMessages.emptyField) return false; } else { $("#ivirTotalCndtn" + lastAddedIndex + " .totalAggrFunction").next('span.customError').remove(); } if ($("#ivirTotalCndtn" + lastAddedIndex + " .totalSource").val() == "") { ivirCustomErrMsg($("#ivirTotalCndtn" + lastAddedIndex + " .totalSource"), errorMessages.emptyField) return false; } else { $("#ivirTotalCndtn" + lastAddedIndex + " .totalSource").next('span.customError').remove(); } addedRowsArray.push(indexToAdd); var indexeSelected = tmpGroupObj.indexeSelected; if (indexeSelected) { if ($.inArray($("#ivirTotalCndtn" + lastAddedIndex + " .totalSource option:selected").data('index'), indexeSelected) == -1) indexeSelected.push($("#ivirTotalCndtn" + lastAddedIndex + " .totalSource option:selected").data('index')); } else tmpGroupObj.indexeSelected = [$("#ivirTotalCndtn" + lastAddedIndex + " .totalSource option:selected").data('index')]; $(".totalAggrFunction").each(function (index, el) { if ($(this).val() == "count") isCountSelected = true; }); var rowGroupingCondHtml = getRowGroupingCondtionHtml(); var htmlToAdd = '
' + rowGroupingCondHtml + '
'; var deleteHtml = ''; $("#ivirTotalCndtnWrapper").append(htmlToAdd); $('#ivirTotalCndtn' + indexToAdd + ' .ivirTotalCndtnBtn').show().attr('onclick', 'ivirAddTotalCndtn(' + (indexToAdd + 1) + ')'); $('#ivirTotalCndtn' + indexToAdd + ' .grpaddDltBtnWrapper').append(deleteHtml); $('#ivirTotalCndtn' + indexToAdd + ' label:not(".grndTtlCB"),#ivirTotalCndtn' + indexToAdd + ' .labelP,#ivirTotalCndtn' + indexToAdd + ' a.icon-arrows-question').hide(); $('#ivirTotalCndtn' + indexToAdd + ' .grndTtlCB input').prop('disabled', true); $('#ivirTotalCndtn' + indexToAdd + ' select').prop('disabled', false); $('#ivirTotalCndtn' + indexToAdd + ' select').select2({ allowClear: true, placeholder: appGlobalVarsObject.lcm[441], }); $("#ivirTotalCndtnWrapper").data('cndtns', addedRowsArray).attr('data-cndtns', "[" + addedRowsArray + "]"); $("#ivirTotalCndtn" + lastAddedIndex + " .ivirTotalCndtnBtn").hide(); $("#ivirTotalCndtn" + lastAddedIndex + " select").prop('disabled', true); if (isCountSelected) { $('#ivirTotalCndtn' + indexToAdd + ' .totalAggrFunction option[value="count"]').remove(); } } /** * In grouping popup when user click on delete condtion this function will be trigerred * @author ManiKanta * @Date 2018-11-19T17:28:05+0530 * @param {String} indexToDelete The index to delete the condition * @return {} */ function ivirDeleteTotalCndtn(indexToDelete) { var functionVal = $('#ivirTotalCndtn' + indexToDelete + ' .totalAggrFunction').val(); var totalSource = $('#ivirTotalCndtn' + indexToDelete + ' .totalSource option:selected').data('index'); var indexSelectedArray = tmpGroupObj['indexeSelected']; var indexInArray = indexSelectedArray.indexOf(totalSource); if (indexInArray >= 0) { indexSelectedArray.splice(indexInArray, 1); } if (functionVal == "count") { $('.totalAggrFunction').append('') } var addedRowsArray = $("#ivirTotalCndtnWrapper").data('cndtns'); var index = addedRowsArray.indexOf(indexToDelete); addedRowsArray.splice(index, 1); if (!$('#ivirTotalCndtn' + indexToDelete + ' .totalAggrFunction').is(':disabled')) { $('#ivirTotalCndtn' + addedRowsArray[addedRowsArray.length - 1] + ' .ivirTotalCndtnBtn').show(); } $('#ivirTotalCndtn' + indexToDelete).remove(); if (addedRowsArray.length == 1) { $("#ivirTotalCndtn1 .ivirTotalCndtnBtn").show(); $("#ivirTotalCndtn1 select").prop('disabled', false) } var lastIndex = addedRowsArray[addedRowsArray.length - 1]; if (lastIndex > indexToDelete) { var lstGrpFunction = $('#ivirTotalCndtn' + lastIndex + ' .totalAggrFunction'); var lstGrpFunctionVal = lstGrpFunction.val(); var lstGrpSource = $('#ivirTotalCndtn' + lastIndex + ' .totalSource'); var lstGrpSourceVal = lstGrpSource.val(); lstGrpFunction.change(); lstGrpSource[0].value = lstGrpSourceVal; } $("#ivirTotalCndtnWrapper").data('cndtns', addedRowsArray).attr('data-cndtns', "[" + addedRowsArray + "]"); } /** * Generic function to show the error messages in the column popup when user entered some invalid data * @author ManiKanta * @Date 2018-11-19T17:29:59+0530 * @param {Object} elem feild object * @param {String} msg Message to show * @return {} */ function ivirCustomErrMsg(elem, msg) { var labelName = elem.parent().find('label').text(); if (msg.indexOf('_name_') != -1) { msg = msg.replace("_name_", labelName); } else if (msg.indexOf('_option_' != -1)) { if (labelName == "Highlight") { msg = msg.replace("_option_", "option"); } else { msg = msg.replace("_option_", labelName.toLowerCase()); } } $('span.customError').remove(); $('' + msg + '').insertAfter(elem); } /** * To get the highlight HTML for the popup * @author ManiKanta * @Date 2018-11-19T17:38:27+0530 * @param {} type * @param {Number} index Index of the col * @param {Boolean} isFromEdit From edit or new * @return {} */ function getHighlightHtml(type, index, isFromEdit) { var isFromEdit = isFromEdit || false; htmlToShow = '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '' + callParentNew('lcm')[424] + ''; htmlToShow += '
' htmlToShow += '
'; htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += ' '; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += 'help_outline'; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += '
'; return htmlToShow; } /** * Generic function to get the all column in '; if (colType == 'n') numericOptions += ' '; else characterOptions += ' '; } } return [numericOptions, characterOptions, allOptions]; } /** * Will be called when user appling highlight logics (new/old) * @author ManiKanta + Avi * @Date 2018-11-20T10:24:30+0530 * @param {Number} indexOfArray The index of the already applied highlight * @param {Boolean} isPillChecked Applying or removing * @param {Boolean} applyThePill To apply the condtion or to simply add * @return {} */ function ivirHighlightRow(indexOfArray, isPillChecked, applyThePill) { //must handle first time click,creating pills,edit pills,showing particular pill if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && typeof ivirMainObj.highlight == "undefined" && typeof indexOfArray != "undefined") { indexOfArray = undefined; } applyThePill = applyThePill || false; var rows = []; var cells = []; var cols = []; var totalRows = ivirDataTableApi.rows(); var rowsData = totalRows.data(); if (applyThePill === false) { var name = $("#ivirHltName").val(); var ivirHighlightType = $("#ivirHighlightType").val(); var ivirbgColor = $("#ivirbgColorValue").val(); var ivirtxtColor = $("#ivirtxtColorValue").val(); var colIndex = $("#ivirHighlightCol").find('option:selected').data('index'); var colvalue = getPropertyAccess($("#ivirHighlightCol").find('option:selected').val()); var ivirHighlightCndtn = $("#ivirHighlightCndtn").val(); var ivirHltValue = $("#ivirHltValue").val(); var colType = $("#ivirHighlightCol").find('option:selected').data('type'); } else { var ivirMainHltObj = ivirMainObj.highlight[indexOfArray]; var name = ivirMainHltObj.n; var ivirHighlightType = ivirMainHltObj.t; var ivirbgColor = ivirMainHltObj.bc; var ivirtxtColor = ivirMainHltObj.tc; var colIndex = ivirMainHltObj.cl; // var colvalue = ivirMainHltObj.cv; var colvalue = getPropertyAccess(ivirDataTableApi.context[0].aoColumns[colIndex].mData); var ivirHighlightCndtn = ivirMainHltObj.cn; var ivirHltValue = ivirMainHltObj.v; var colType = ivirMainHltObj.colType; } var j = colIndex; var isFirstTime = false; var limitExceeded = false; var indexOfHighlightArray = ""; //must have some validations~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (ivirHighlightCndtn == 'regex') { var regexExp = ivirHltValue.replace(/\\/g, "\\"); regexExp = new RegExp(regexExp, "i") } if (indexOfArray === undefined) { //means first time or new one if (jQuery.isEmptyObject(ivirMainObj)) { var hilghtArr = ivirMainObj.highlight = []; isFirstTime = true; indexOfHighlightArray = 0; } else if (ivirMainObj.highlight === undefined) { var hilghtArr = ivirMainObj.highlight = []; indexOfHighlightArray = 0; } else { var hilghtArr = ivirMainObj.highlight; isFirstTime = false; if (hilghtArr.length >= maxNoOfPills) limitExceeded = true; indexOfHighlightArray = hilghtArr.length; } var hilghtObj = new Object(); } else { if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { clearIvirHighlight(indexOfArray); var hilghtObj = new Object(); } else { if (($("#newViewTabId").is(":visible") || isOpenSmartStepper) && typeof ivirMainObj.highlight == "undefined") { var hilghtObj = new Object(); } else { var hilghtObj = ivirMainObj.highlight[indexOfArray]; } } indexOfHighlightArray = indexOfArray; } if (!limitExceeded) { hilghtObj.n = name; hilghtObj.t = ivirHighlightType; hilghtObj.bc = ivirbgColor; hilghtObj.tc = ivirtxtColor; hilghtObj.cl = colIndex; hilghtObj.cn = ivirHighlightCndtn; hilghtObj.v = ivirHltValue; hilghtObj.colType = colType; if (indexOfArray === undefined) { hilghtArr.push(hilghtObj); if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { if (isFirstTime || $("#ivirFilteredAccordion").length == 0) { if ($("#ivirFilteredAccordion").length == 0) createPills("all", "first"); else createPills("all", "last"); } else if ($("#ivirFilteredAccordion").length > 0) { upateThePills("highlight", indexOfHighlightArray, name); } } } else { //highlight0pillCB if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { if (isPillChecked) $("#highlightpillCB" + indexOfArray).prop('checked', true).attr('checked', 'checked');; $("#highlightpillCB" + indexOfArray).parent().next().find('.ivirCndtnName').attr('title', "Edit " + name).text(name); } } } else { showAlertDialog("warning", appGlobalVarsObject.lcm[23]); } if (!($("#newViewTabId").is(":visible") || isOpenSmartStepper)) { if ((indexOfArray === undefined) || isPillChecked) { for (var i = 0; i < totalRows[0].length; i++) { //totalRows[0][i](if sorting happrend i wont be the row num) is the row and j is column var presentRowData = rowsData[i]; (!isNaN(parseInt(colvalue))) ? presentRowData = presentRowData[Object.keys(presentRowData)[colvalue]] : graphCol = presentRowData[colvalue] presentRowData = typeof presentRowData[colvalue] == "object" && presentRowData[colvalue] != null ? presentRowData[colvalue].display : (presentRowData[colvalue] != null ? presentRowData[colvalue] : ""); if (anchorRegexPatter.test(presentRowData)) presentRowData = $(presentRowData).text(); presentRowData = presentRowData.replace(",", ""); ivirHltValue = ivirHltValue.replace(",", ""); if (ivirHighlightCndtn == "equalto") { if (colType === "d") { var momentObj = moment(ivirHltValue, 'YYYY-MM-DD'); var momentString = momentObj.format('DD/MM/YYYY'); if (momentString === (typeof rowsData[i][colvalue] == "object" && rowsData[i][colvalue] != null ? rowsData[i][colvalue].display : (rowsData[i][colvalue] != null ? rowsData[i][colvalue] : ""))) { pushValues(totalRows[0][i], colvalue); } } else if (ivirHltValue.toLowerCase() == presentRowData.toLowerCase()) { pushValues(totalRows[0][i], j); } } else if (ivirHighlightCndtn == "contains") { if (presentRowData.toLowerCase().indexOf(ivirHltValue.toLowerCase()) != -1) { pushValues(totalRows[0][i], j); } } else if (ivirHighlightCndtn == "notcontains") { if (presentRowData.toLowerCase().indexOf(ivirHltValue.toLowerCase()) == -1) { pushValues(totalRows[0][i], j); } } else if (ivirHighlightCndtn == "notequalto") { if (colType === "d") { var momentObj = moment(ivirHltValue, 'YYYY-MM-DD'); var momentString = momentObj.format('DD/MM/YYYY'); if (momentString !== presentRowData) { pushValues(totalRows[0][i], j); } } else if (ivirHltValue.toLowerCase() != presentRowData.toLowerCase()) { pushValues(totalRows[0][i], j); } } else if (ivirHighlightCndtn == "lessthan") { if (colType === "d") { var momentObj = moment(ivirHltValue, 'YYYY-MM-DD'); var momentObj1 = moment(presentRowData, "DD/MM/YYYY"); if (momentObj1 < momentObj) { pushValues(totalRows[0][i], j); } } else if (parseInt(presentRowData, 10) < parseInt(ivirHltValue, 10)) { pushValues(totalRows[0][i], j); } } else if (ivirHighlightCndtn == "lessthanequalto") { if (colType === "d") { var momentObj = moment(ivirHltValue, 'YYYY-MM-DD'); var momentObj1 = moment(presentRowData, "DD/MM/YYYY"); if (momentObj1 <= momentObj) { pushValues(totalRows[0][i], j); } } else if (parseInt(presentRowData, 10) <= parseInt(ivirHltValue, 10)) { pushValues(totalRows[0][i], j); } } else if (ivirHighlightCndtn == "greaterthan") { if (colType === "d") { var momentObj = moment(ivirHltValue, 'YYYY-MM-DD'); var momentObj1 = moment(presentRowData, "DD/MM/YYYY"); if (momentObj1 > momentObj) { pushValues(totalRows[0][i], j); } } else if (parseInt(presentRowData, 10) > parseInt(ivirHltValue, 10)) { pushValues(totalRows[0][i], j); } } else if (ivirHighlightCndtn == "greaterthanequalto") { if (colType === "d") { var momentObj = moment(ivirHltValue, 'YYYY-MM-DD'); var momentObj1 = moment(presentRowData, "DD/MM/YYYY"); if (momentObj1 >= momentObj) { pushValues(totalRows[0][i], j); } } else if (parseInt(presentRowData, 10) >= parseInt(ivirHltValue, 10)) { pushValues(totalRows[0][i], j); } } else if (ivirHighlightCndtn == "regex") { if (regexExp.test(presentRowData)) { pushValues(totalRows[0][i], j); } } } if (ivirHighlightType == 'row') { for (var k = 0; k < rows.length; k++) { $(ivirDataTableApi.row(rows[k]).node()).addClass('ivirCustomHighlight highlight' + indexOfHighlightArray).css({ "background-color": ivirbgColor, "color": ivirtxtColor }); } } else if (ivirHighlightType == 'column') { var allCols = ivirDataTableApi.column(colIndex).nodes(); if (jQuery.inArray(colIndex, cols) !== -1) { $(ivirDataTableApi.columns(colIndex).header()).addClass('ivirCustomHighlight highlight' + indexOfHighlightArray) for (var i = 0; i < allCols.length; i++) { $(allCols[i]).addClass('ivirCustomHighlightCell').css({ "background-color": ivirbgColor, "color": ivirtxtColor }); } } } else if (ivirHighlightType == 'cell') { for (var i = 0; i < cells.length; i++) { $(ivirDataTableApi.cell(cells[i][0], cells[i][1]).node()).addClass('ivirCustomHighlight highlight' + indexOfHighlightArray).css({ "background-color": ivirbgColor, "color": ivirtxtColor }); } } function pushValues(i, j) { if (jQuery.inArray(i, rows) == -1) rows.push(i); if (jQuery.inArray(j, cols) == -1) cols.push(j); cells.push([i, j]); } } } else if (ivirMainObj.highlight && ivirMainObj.highlight.length > 0) { $("#newViewhighlight").val(JSON.stringify(ivirMainObj.highlight[0])); } setSmartViewHeight(); return true; } /** * Clear the previous highlights based on index * @author ManiKanta * @Date 2018-11-20T10:26:40+0530 * @param {String} index If index is 'all' then it will clear all the highlights * @return {} */ function clearIvirHighlight(index) { // initial values need to be given if (index == "all") { if (ivirDataTableApi.columns('.ivirCustomHighlight')[0].length > 0) { var Cols = ivirDataTableApi.columns('.ivirCustomHighlight'); var allCols = Cols.nodes(); $(Cols).removeClass('ivirCustomHighlight').css({ "background-color": "inherit", "color": "inherit" }); for (var i = 0; i < allCols.length; i++) { $(allCols[i]).removeClass('ivirCustomHighlightCell').css({ "background-color": "inherit", "color": "inherit" }); } } if (ivirDataTableApi.cells('.ivirCustomHighlight')[0].length > 0) { $(ivirDataTableApi.cells('.ivirCustomHighlight').nodes()).removeClass('ivirCustomHighlight').css({ "background-color": "inherit", "color": "inherit" }); } if (ivirDataTableApi.rows('.ivirCustomHighlight')[0].length > 0) { $(ivirDataTableApi.rows('.ivirCustomHighlight').nodes()).removeClass('ivirCustomHighlight').css({ "background-color": "inherit", "color": "inherit" }); } } else if (index !== undefined) { // highlight if (ivirMainObj.highlight && ivirMainObj.highlight.length > 0) { var typeSelected = ivirMainObj['highlight'][index].t; if (typeSelected == 'cell') { if (ivirDataTableApi.cells('.ivirCustomHighlight.highlight' + index)[0].length > 0) { $(ivirDataTableApi.cells('.ivirCustomHighlight.highlight' + index).nodes()).removeClass('ivirCustomHighlight highlight' + index).css({ "background-color": "inherit", "color": "inherit" }); } } else if (typeSelected == 'column') { if (ivirDataTableApi.columns('.ivirCustomHighlight.highlight' + index)[0].length > 0) { var Cols = ivirDataTableApi.columns('.ivirCustomHighlight.highlight' + index); var allCols = Cols.nodes(); $(Cols.header()).removeClass('ivirCustomHighlight highlight' + index) for (var i = 0; i < allCols.length; i++) { $(allCols[i]).removeClass('ivirCustomHighlightCell').css({ "background-color": "inherit", "color": "inherit" }); } } } else if (typeSelected == 'row') { if (ivirDataTableApi.rows('.ivirCustomHighlight.highlight' + index)[0].length > 0) { $(ivirDataTableApi.rows('.ivirCustomHighlight.highlight' + index).nodes()).removeClass('ivirCustomHighlight highlight' + index).css({ "background-color": "inherit", "color": "inherit" }); } } } } if (fixedColumnsObj != "") $(".DTFC_LeftBodyWrapper .ivirCustomHighlight,.DTFC_LeftBodyWrapper .ivirCustomHighlightCell").removeClass("ivirCustomHighlight").css({ "background-color": "", "color": "" }); } /** * To create all the condtions in ivirmain object (Except chart - since chart have different function createChartPills/upateTheChartPills) * @author ManiKanta + Prashik * @Date 2018-11-20T10:30:05+0530 * @param {String} type Particular type to create or all * @param {String} pillToHighlight To chechk the first/last/none by default * @return {} */ function createPills(type, pillToHighlight) { if (!ivirMainObj.highlight && !ivirMainObj.group && !ivirMainObj.filter) return if (requestJSON && iviewButtonStyle != "old") { maxNoOfPills = 1; } var pillsArray = ""; var allPillsArray = ""; var allPillsType = ""; var curType = ""; var icons = ""; // if (type == 'all') allPillsType = ['highlight', 'group', 'filter']; icons = { highlight: "highlight", group: "table_rows", chart: "pie_chart", filter: "filter_alt" } var pillsHtml = ""; pillsHtml += '
'; pillsHtml += '
'; pillsHtml += ''; pillsHtml += '
'; //need to loop for (var i = 0; i < allPillsType.length; i++) { var typeOfPill = allPillsType[i]; if (ivirMainObj[typeOfPill]) { pillsHtml += ''; pillsHtml += '' + icons[typeOfPill] + ''; pillsHtml += '' + typeOfPill + ' ' + ivirMainObj[typeOfPill].length + ''; pillsHtml += ''; } } //need to loop-end pillsHtml += '
'; pillsHtml += '
'; //need to loop for (var i = 0; i < allPillsType.length; i++) { var pillsArray = ivirMainObj[allPillsType[i]]; if (pillsArray) { if (pillsArray.length > maxNoOfPills) { try { pillsArray = pillsArray.sort((a, b) => { if (a.checked === b.checked) { return 0; } if (a.checked) { return -1; } if (b.checked) { return 1; } }); } catch (ex) { } pillsArray.splice(maxNoOfPills); } for (var j = 0; j < pillsArray.length; j++) { var curType = allPillsType[i]; pillsHtml += ''; } } } //need to loop-end pillsHtml += '
'; $("#pillsWrapper").html(pillsHtml); if (requestJSON && iviewButtonStyle != "old") { var filterCount = 0; $('#ivirAllCndtnPillsList').children().remove(); $.each($('#ivirAllCndtnPills').children('div'), function (idx, ele) { filterCount++; $('#ivirAllCndtnPillsList').append($(ele).detach()); }); $("#ivirAllCndtnPillsCount").text(filterCount); $("#ivirAllCndtnPillsDiv").css('display', 'inline-block'); $("#ivirAllCndtnPillsDiv").hide(); $("#pillsWrapper").hide(); setSmartViewHeight(); } else $("#pillsWrapper").show('slow'); } /** * To update the condtions when user added new or anything update(Not for chart) * @author ManiKanta + Prashik * @Date 2018-11-20T10:32:36+0530 * @param {String} type highlihgt or group * @param {Number} j Index need to update * @param {String} name New condition name to show * @return {} */ function upateThePills(type, j, name) { var pillsHtml = ""; var icons = ""; var curType = type; icons = { highlight: "highlight", group: "table_rows", chart: "pie_chart", filter: "filter_alt" } pillsHtml += ''; if (requestJSON && iviewButtonStyle != "old") { $("#ivirAllCndtnPillsList").append(pillsHtml); $('#ivirAllCndtnPillsCount').text($('#ivirAllCndtnPillsList').children('div').length) } else { $("#ivirAllCndtnPills").append(pillsHtml); } if ($("#ivir" + curType + "CndtnPill").length == 0) { var panelHdHtml = ""; panelHdHtml += ''; panelHdHtml += '' + icons[curType] + ''; panelHdHtml += '' + curType + ' ' + ivirMainObj[curType].length + ''; panelHdHtml += ''; $("#ivirAllCndtns").append(panelHdHtml); } else { $("#ivir" + curType + "CndtnPill .ivirCndtnLabel").text(ivirMainObj[type].length); } } /** * Similar to create pills usedj to create chart conditions * @author ManiKanta * @Date 2018-11-20T10:34:01+0530 * @return {} */ function createChartPills() { var pillsHtml = ""; var icons = ""; var chartArray = ivirMainObj.chart; var curType = 'chart'; if (requestJSON && iviewButtonStyle != "old") { maxNoOfPills = 5; } icons = { highlight: "highlight", group: "table_rows", chart: "pie_chart" } if (typeof chartArray.length != "undefined" && chartArray.length > maxNoOfPills) { chartArray.splice(maxNoOfPills); } for (var j = 0; j < chartArray.length; j++) { var currentChart = chartArray[j]; pillsHtml += ''; } $("#ivirChartPills").addClass('pillsAdded').html(pillsHtml); if (requestJSON && iviewButtonStyle != "old") { $('#ivirChartPillsList').children().remove(); $.each($('#ivirChartPills').children('div'), function (idx, ele) { $('#ivirChartPillsList').append($(ele).detach()); }); $('#ivirChartPillsCount').text($('#ivirChartPillsList').children('div').length) $("#ivirAllCndtnPillsDiv").hide(); $("#ivirChartPills").hide(); } else $("#ivirChartPills").show('slow'); } /** * Similar to updatepills used to update the chart conditions * @author ManiKanta * @Date 2018-11-20T10:34:26+0530 * @param {Number} j New index to add * @param {String} name New name to show * @return {} */ function upateTheChartPills(j, name) { var pillsHtml = ""; var icons = ""; var curType = 'chart'; icons = { highlight: "highlight", group: "table_rows", chart: "pie_chart" } pillsHtml += ''; if (!(requestJSON && iviewButtonStyle != "old")) {//temp $("#ivirChartWrapper .chartWrapper").hide(); //chartWrapper } $("#ivirChartWrapper #ivirChart" + j).show(); if (requestJSON && iviewButtonStyle != "old") { $("#ivirChartPillsList").append(pillsHtml); $("#ivirChartPillsdiv").show(); $('#ivirChartPillsCount').text($('#ivirChartPillsList').children('div').length) } else { $("#ivirChartPills").show().append(pillsHtml); } } /** * Show/Hide of the highlight/group condtions when user click on show hide button * @author ManiKanta + Prashik * @Date 2018-11-20T10:36:46+0530 * @return {} */ function toggleIvirPills() { var cndtns = $("#ivirAllCndtns"); var cndtnsPills = $("#ivirAllCndtnPills"); if (cndtns.is(":visible")) { $("#ivirCndtnToggleBtn").removeClass('icon-arrows-keyboard-right').addClass('icon-arrows-keyboard-down'); cndtns.hide(); cndtnsPills.addClass('open'); } else { $("#ivirCndtnToggleBtn").removeClass('icon-arrows-keyboard-down').addClass('icon-arrows-keyboard-right'); cndtnsPills.removeClass('open'); cndtns.show(); } setSmartViewHeight(); } /** When user checking existing chart conditions */ $(document).on('change', '.ivirChartCheckBox', function (event) { var clickedElement = $(this); var index = clickedElement.data('index'); var id = clickedElement.attr('id'); try { if (requestJSON && iviewButtonStyle != "old") { ivirMainObj.chart[index].checked = clickedElement.is(':checked'); } } catch (ex) { } if (clickedElement.is(':checked')) { if (requestJSON && iviewButtonStyle != "old") { clickedElement.attr('checked', 'checked'); } if (!checkForPillDependentFlds('chart', index)) { clickedElement.prop('checked', false)//temp clickedElement.removeAttr('checked');//temp return false; } if (!(requestJSON && iviewButtonStyle != "old")) {//temp $(".ivirChartCheckBox").not('#' + id).prop('checked', false).removeAttr('checked'); $("#ivirChartWrapper .chartWrapper").hide();//chartWrapper //temp } $("#ivirChartWrapper #ivirChart" + index).show(); ivirCreateChart(index, true, true); } else { if (requestJSON && iviewButtonStyle != "old") { clickedElement.removeAttr('checked'); } if (!(requestJSON && iviewButtonStyle != "old")) { clickedElement.prop('checked', true).attr('checked', 'checked'); } else { $("#ivirChartWrapper #ivirChart" + index).hide(); } } adjustChartBasedWrapperHeight(); if (!isChartCreationOnLoad) { $("[data-dropdown-value=save]:eq(0)").click(); } }); /** When user checking existing highlight/group conditions */ $(document).on('change', '.ivirFilterCheckBox', function (event) { var clickedElement = $(this); var type = clickedElement.data('type'); if (clickedElement.is(':checked')) { if (type == "group") { if (!checkForPillDependentFlds('group', clickedElement.data('index'))) { clickedElement.prop('checked', false) clickedElement.removeAttr('checked'); return false; } $("#chartActionLi").addClass("subHeader"); } else if (type == "filter") { advFiltersObjectToApply = ivirMainObj.filter[clickedElement.data("index")].data; ivirDataTableApi.draw(); if (requestJSON && iviewButtonStyle != "old") { setFilterInfo(); } } clickedElement.attr('checked', 'checked'); applyThePill(type, clickedElement.data('index')); } else { clickedElement.removeAttr('checked'); if (type == 'highlight') clearIvirHighlight(clickedElement.data('index')); else if (type == 'group') { var index = clickedElement.data('index'); var grandtotalArray = ivirMainObj[type][index].g; if (grandtotalArray) { for (var i = 0; i < grandtotalArray.length; i++) { var idx = allGrandTotal.indexOf(grandtotalArray[i]); allGrandTotal.splice(idx, 1); } } if (ivirVisibleColumns.length > 0) ivirVisibleColumns.push(groupingCol); createIvirDataTable("clear", index, "", allGrandTotal); $("#chartActionLi").removeClass("subHeader"); } else if (type == "filter") { advFiltersObjectToApply = { somedummyfilterjsobjectkey: "dummy" }; ivirDataTableApi.draw(); setFilterInfo(); } } }); /** * To apply the existing conditions(highlight/group) * @author ManiKanta + Prashik * @Date 2018-11-20T10:38:35+0530 * @param {String} type Condtions type highlihgt/group * @param {Number} index index number of the condition to apply * @return {[type]} [description] */ function applyThePill(type, index) { if (type == "highlight") ivirHighlightRow(index, true, true); else if (type == "group") { $("[id^='grouppillCB']").not("#grouppillCB" + index).prop('checked', false).removeAttr('checked'); var grndTotalArray = ivirMainObj[type][index].g; if (grndTotalArray) { for (var i = 0; i < grndTotalArray.length; i++) { if ($.inArray(grndTotalArray[i], allGrandTotal) === -1) allGrandTotal.push(grndTotalArray[i]); } } createIvirDataTable("groupApply", index, "", allGrandTotal); } else if (type == "filter") { $("[id^='filterpillCB']").not("#filterpillCB" + index).prop('checked', false).removeAttr('checked'); } } /** * Will be called when a condition is edited * @author ManiKanta + Prashik * @Date 2018-11-20T11:14:52+0530 * @param {String} type highlight/group/chart * @param {Number} index Index of the condition to edit * @return {} */ function editThePill(type, index) { var showValueOption = [type, index]; if (type == 'highlight') { var htmlToShow = getHighlightHtml(type, index, true); } else if (type == 'group') { } else if (type == 'chart') { var chartParam = $("#" + type + "pillCB" + index).is(":checked"); smartCharts(chartParam, showValueOption, true); } else if (type == 'filter') { ivirMoreFilters(index); } } /** * will be called to delete the conditions * @author ManiKanta + Prashik * @Date 2018-11-20T11:16:55+0530 * @param {String} type highlihgt/group/chart * @param {index} index index of the condition to delete * @return {} */ function deleteThePill(type, index, isClearAll = false) { if (type == 'highlight') clearIvirHighlight(index); else if (type == 'group') { if (ivirMainObj.group && ivirMainObj.group.length > 0) { var grandtotalArray = ivirMainObj[type][index].g; if (grandtotalArray) { for (var i = 0; i < grandtotalArray.length; i++) { var idx = allGrandTotal.indexOf(grandtotalArray[i]); allGrandTotal.splice(idx, 1); } } } if (ivirVisibleColumns.length > 0) ivirVisibleColumns.push(groupingCol); if ($("#" + type + "pillCB" + index).is(":checked"))//grouppillCB0 createIvirDataTable("clear", index, "", allGrandTotal); } else if (type == 'chart') { var isPillChecked = false; if ($("#chartpillCB" + index).is(':checked')) isPillChecked = true; $("#ivirChart" + index).remove(); } // ivirgroup0CndtnPill $("#ivir" + type + index + "CndtnPill").remove(); reArrangeIndexes(type, index); var pillsArray = ivirMainObj[type]; if (pillsArray) { var removedPill = pillsArray.splice(index, 1); if (type != "chart") { if (pillsArray.length == 0) { delete ivirMainObj[type]; $("#ivir" + type + "CndtnPill").remove(); } else { $("#ivir" + type + "CndtnPill .ivirCndtnLabel").text(ivirMainObj[type].length); } var filterPills = $("[data-pill-type='filter']"); //when user deletes a plill and if any other filter pill exists & it was selected then display default grid data as selected filter if (filterPills.length && filterPills.find(".ivirFilterCheckBox").is(":checked")) { try { advFiltersObjectToApply = ivirMainObj.filter[filterPills.find(".ivirFilterCheckBox:checked").data("index")].data; } catch (ex) { advFiltersObjectToApply = { somedummyfilterjsobjectkey: "dummy" }; } } else { advFiltersObjectToApply = { somedummyfilterjsobjectkey: "dummy" }; } ivirDataTableApi.draw(); setFilterInfo(); if ($("#ivirAllCndtns").html() == "") { $("#pillsWrapper").html(""); } if (requestJSON && iviewButtonStyle != "old") { if ($('#ivirAllCndtnPillsDiv .popover-content').children('div').length == 0) { $('#lnkallCndtnPill').popover('hide'); $('#ivirAllCndtnPillsDiv').hide(); } else { $('#lnkallCndtnPill').popover('reposition'); } } } else { if (!isClearAll && removedPill && removedPill.length == 1 && requestJSON && iviewButtonStyle != "old" && ivirMainObj.key == "charts") { deleteCommonChart(removedPill[0]); } if (pillsArray.length == 0) { toggleGridView("grid"); $("#ivirCButtonsWrapper").hide(); $("#pinnedivirCButtonsWrapper").hide(); delete ivirMainObj[type]; } else if (isPillChecked) { // chartpillCB0//ivirChart0 $("#chartpillCB0").prop('checked', true).attr('checked', 'checked'); $("#ivirChart0").show(); } if (requestJSON && iviewButtonStyle != "old") { } if ($('#ivirChartPillsDiv .popover-content').children('div').length == 0) { $('#lnkChartPill').popover('hide'); $('#ivirChartPillsDiv').hide(); } else { $('#lnkChartPill').popover('reposition'); } adjustChartBasedWrapperHeight(); } } else { advFiltersObjectToApply = { somedummyfilterjsobjectkey: "dummy" }; } if (type == "chart" && isClearAll == false) { $("[data-dropdown-value=save]:eq(0)").click(); } } $(function () { $.fn.popover.Constructor.prototype.reposition = function () { var $tip = this.tip() var autoPlace = true var placement = typeof this.options.placement === 'function' ? this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement var pos = this.getPosition() var actualWidth = $tip[0].offsetWidth var actualHeight = $tip[0].offsetHeight if (autoPlace) { var orgPlacement = placement var viewportDim = this.getPosition(this.$viewport) placement = placement === 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : placement === 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : placement === 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : placement === 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : placement $tip .removeClass(orgPlacement) .addClass(placement) } var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) this.applyPlacement(calculatedOffset, placement) } }) /** * Rearrange indexes in the array and conditions when some condtion is deleted in the middle * @author ManiKanta * @Date 2018-11-20T11:18:02+0530 * @param {String} type type of the condtion to rearrange * @param {Number} index The index which is deleted * @return {} */ function reArrangeIndexes(type, index) { var pillsArray = ivirMainObj[type]; if (ivirMainObj[type] && index != pillsArray.length - 1) { var presentIndex = index; for (var i = (index + 1); i < pillsArray.length; i++) { var parentEl = $("#ivir" + type + (presentIndex + 1) + "CndtnPill"); var indexToAdd = (i - 1); var idToAdd = type + 'pillCB' + indexToAdd; //chartpillCB1 parentEl.find('input.ivirFilterCheckBox,input.ivirChartCheckBox').attr('id', idToAdd).data('index', indexToAdd).attr('data-index', indexToAdd); parentEl.find('input.ivirFilterCheckBox,input.ivirChartCheckBox').next("label").attr('for', idToAdd); parentEl.find('.ivirCndtnName').attr('onclick', 'editThePill("' + type + '",' + indexToAdd + ')'); parentEl.find('.deletePillBtn').attr('onclick', 'deleteThePill("' + type + '",' + indexToAdd + ')'); parentEl.attr('id', "ivir" + type + indexToAdd + "CndtnPill"); //ivirgroup0CndtnPill presentIndex++; if (type == "chart") $("#ivirChart" + i).attr('id', 'ivirChart' + indexToAdd); else if (type == "highlight") { //ivirCustomHighlight highlight1 $(".ivirCustomHighlight.highlight" + i).removeClass("highlight" + i).addClass("highlight" + indexToAdd); } } } } /** * All validations of the popup will be handled here * @author ManiKanta * @Date 2018-11-20T11:19:20+0530 * @param {String} title * @return {Boolean} returns true if everything is valid */ function validateFields(title) { var error = false; $("#ivirHighlightWrapper .form-control:not('.colorPicker')").each(function () { var fld = $(this) if (fld.val() == "") { if (fld[0].nodeName == "SELECT") { ivirCustomErrMsg(fld, errorMessages.emptySelect); error = true; return false; } else if (fld[0].nodeName == "INPUT") { ivirCustomErrMsg(fld, errorMessages.emptyField); error = true; return false; } } else if (!fld.hasClass('colorFld') && fld[0].nodeName == "INPUT") { if (!testRegex("validName", fld.val())) { ivirCustomErrMsg(fld, errorMessages.invalidName); error = true; return false; } } else if (fld.attr("id") && fld.attr("id") == "ivirHltValue") { var colType = $("#ivirHighlightCol").find('option:selected').data('type'); if (colType == "n" && isNaN(fld.val())) { ivirCustomErrMsg(fld, errorMessages.integerChk); error = true; return false; } } }); return error ? false : true; } /** * Will be called when user click on download * @author ManiKanta * @Date 2018-11-20T11:20:47+0530 * @param {} */ function DownloadAndSave(el) { $("#ivirDownloadWrapper div button .ivirDownload").removeClass('active'); $("#ivirDownloadWrapper div button").removeClass('active'); $("#ivirDownloadWrapper div button .ivirDownload").css("color", ""); $("#ivirDownloadWrapper div button").css("color", "") $(el).addClass('active'); $(el).css("color", "#3799dc ") } /** * Will be called when user click on download of any file in download popup * @author ManiKanta * @Date 2018-11-20T11:21:44+0530 * @param {} val */ function DownloadFile(val) { if (!$("#ivirDownloadWrapper div button").hasClass('active')) { showAlertDialog("warning", errorMessages.downloadSelection); // alert(errorMessages.downloadSelection); return false; } else { var typeOfFile = ivirDataTableApi; if ($('.CSV').hasClass('active')) { typeOfFile.button('1').trigger(); } else if ($('.EXCEL').hasClass('active')) { typeOfFile.button('2').trigger(); } else if ($('.PDF').hasClass('active')) { typeOfFile.button('3').trigger(); } else if ($('.PRINT').hasClass('active')) { typeOfFile.button('4').trigger(); } else if ($('.COPY').hasClass('active')) { typeOfFile.button('0').trigger(); } else if ($('.HTML').hasClass('active')) { typeOfFile.button('5').trigger(); } else if ($('.JSON').hasClass('active')) { typeOfFile.button('6').trigger(); } return true; } } /** * WIll be called when user checked checkall (header checkbox) * @author ManiKanta * @Date 2018-11-20T11:23:04+0530 * @param {Object} elemm Element which is clicked * @return {} */ function ivirChkHdrCheckbox(elemm) { var chkAll = $("#chkall"); var status = $(elemm).prop("checked"); if (status) { if (!$(elemm).parents("tr").hasClass("axSelected")) { $(elemm).parents("tr").addClass("axSelected"); } } else { $(elemm).parents("tr").removeClass("axSelected"); } var allChecked = true; $("input[name=chkItem]:checkbox").each(function () { var isChked = $(this).prop("checked"); if (isChked == undefined || isChked == false) { allChecked = false; return false; } }); if (allChecked) { chkAll.prop("checked", true); $.each(ivirDataTableApi.settings()[0]._buttons[0].inst.c.buttons, function (index, value) { value.exportOptions.rows = ""; }); } else { chkAll.prop("checked", false); if ($("input[name=chkItem]:checkbox:checked").length < 1) { $.each(ivirDataTableApi.settings()[0]._buttons[0].inst.c.buttons, function (index, value) { value.exportOptions.rows = ""; }); } else { $.each(ivirDataTableApi.settings()[0]._buttons[0].inst.c.buttons, function (index, value) { value.exportOptions.rows = ".axSelected"; }); } } } /** * Internal function to handle check all logics * @author ManiKanta * @Date 2018-11-20T11:23:57+0530 * @param {Object} elem Element which is clicked * @return {} */ function ivirCheckAll(elem) { var chkAll = $(elem); if (chkAll.prop("checked") == true) { chkItems = $("input[name=chkItem]:checkbox").each(function () { $(this).prop("checked", true); if (!$(this).parents("tr").hasClass("axSelected")) { $(this).parents("tr").addClass("axSelected"); } }); $.each(ivirDataTableApi.settings()[0]._buttons[0].inst.c.buttons, function (index, value) { value.exportOptions.rows = ".axSelected"; }); } else { chkItems = $("input[name=chkItem]:checkbox").each(function () { $(this).prop("checked", false); $(this).parents("tr").removeClass("axSelected"); }); $.each(ivirDataTableApi.settings()[0]._buttons[0].inst.c.buttons, function (index, value) { value.exportOptions.rows = ""; }); } } /** * To show hide grid view/chart view * @author ManiKanta * @Date 2018-11-20T11:25:48+0530 * @param {String} type view to show chart/grid * @param {Object} elem Clicked button * @return {} */ function toggleGridView(type, elem) { $(".task-button").removeClass('active') var customButtonHtml = ""; if (type == "chart") { $("#ivirFilteredAccordion").hide(); $(".chrtView").addClass('active'); $("#ivirCButtonsWrapper").show(); $("#pinnedivirCButtonsWrapper").show(); $("#ivirMainChartWrapper").show(); $("#searchSelectColumnButton").prop('disabled', true); $("#ivirMainDataTableWrapper").hide(); $(ivirTable + "_paginate").hide(); $(ivirTable + "_length").hide(); $("#pillsWrapper").hide(); $("#ivirChartPills").show(); if (requestJSON && iviewButtonStyle != "old") { $("#pillsWrapper").hide(); $("#ivirChartPills").hide(); $("#ivirAllCndtnPillsDiv").hide(); $("#ivirChartPillsDiv").show().removeClass("d-none"); if (ivirMainObj && ivirMainObj.chart && ivirMainObj.chart.length > 0) { $("#ivirMainDataTableWrapper").show(); } else { } customButtonHtml += '';; $("#pinnedivirCButtonsWrapper").html(customButtonHtml); } } else if (type == "grid") { $(".grdView").addClass('active'); $("#ivirFilteredAccordion").show(); $("#ivirCButtonsWrapper").show(); $("#pinnedivirCButtonsWrapper").show(); $('#ivirMainChartWrapper').hide(); $("#searchSelectColumnButton").prop('disabled', false); $(ivirTable + "_paginate").show(); $(ivirTable + "_length").show(); $("#ivirMainDataTableWrapper").show(); ivirDataTableApi.columns.adjust().draw(); $("#pillsWrapper").show(); $("#ivirChartPills").hide(); if (requestJSON && iviewButtonStyle != "old") { $("#pillsWrapper").hide(); $("#ivirChartPills").hide(); if ($('#ivirAllCndtnPillsList').children('div').length) { $("#ivirAllCndtnPillsDiv").hide();// } if (ivirMainObj && ivirMainObj.chart && ivirMainObj.chart.length > 0) { $('#ivirMainChartWrapper').show(); } else { $("#ivirChartPillsDiv").hide().addClass("d-none"); } customButtonHtml += ''; $("#pinnedivirCButtonsWrapper").html(customButtonHtml); } } else if (type = "showChartErrMsg") { if ($(elem).data("count") == 0) { $(elem).data("count", 1) } else { showAlertDialog("warning", errorMessages.noChartWhileGrpng); } } try { KTMenu?.init(); } catch (error) { } } /** * Function to create column chart in IVIR * @author ManiKanta * @Date 2018-11-20T11:26:56+0530 * @param {Boolean} isDataExists if any data is there or not then will show no data.... * @param {Object} datats Will have all the data to render the chart * @param {String} title Title of the chart * @param {Number} index chart condition index * @param {String} type column/bar * @param {Number} valColIndex The value column index number * @return {} */ function columnChart(isDataExists, datats, title, index, type, valColIndex) { var headerName = $(ivirDataTableApi.columns(valColIndex).header()).text().trim(); var heihgtOfChrt = $("#ivirMainChartWrapper").outerHeight() - 70; var valueSelected = JSON.parse(datats.split('~')[0])[0]; toggleGridView("chart"); var idOftheDiv = 'ivirChart' + index; if (index > (maxNoOfPills - 1)) { $(".ivirChartCheckBox").prop('checked', false).attr('checked', 'checked'); $(".chartWrapper").hide(); idOftheDiv = 'ivirChartCommon'; } if ($("#" + idOftheDiv).length == 0) $("#ivirChartWrapper").append('
'); if (!(requestJSON && iviewButtonStyle != "old")) {//temp $("#ivirChartWrapper .chartWrapper").hide(); //chartWrapper } $("#ivirChartWrapper #ivirChart" + index).show(); try { var viewName = $(".viewtabEdit").parents("li.active").find(".viewtabEdit").data("name") || "main"; if (viewName == "charts") { } } catch (ex) { } if (!isDataExists) { $('#ivirChartWrapper #' + idOftheDiv).html(`

${appGlobalVarsObject.lcm[0]}

`); return; } var chart = $('#ivirChartWrapper #' + idOftheDiv).highcharts({ colors: ['#f8bd19', '#e44a00', '#008ee4', '#33bdda', '#6baa01', '#583e78'], //colors: ['#EED17F', '#97CBE7', '#074868', '#B0D67A', '#2C560A', '#DD9D82'], credits: { enabled: false }, chart: { type: type, height: heihgtOfChrt, options3d: { enabled: true, alpha: 0, beta: 20, depth: 50 }, events: { beforePrint: function () { this.exportSVGElements[0].box.hide(); this.exportSVGElements[1].hide(); }, afterPrint: function () { this.exportSVGElements[0].box.show(); this.exportSVGElements[1].show(); } } }, title: { text: title, align: 'left' }, xAxis: { categories: JSON.parse(JSON.stringify(JSON.parse(datats.split('~')[0])).replace(/_+/g, ' ')) }, tooltip: { formatter: function () { return this.series.name + '
' + headerName + ': ' + Highcharts.numberFormat(this.y, -1) + ''; } }, yAxis: { min: 0, title: { text: valueSelected } }, series: JSON.parse(JSON.stringify(JSON.parse(datats.split('~')[1]))) }); if (requestJSON && iviewButtonStyle != "old") { chart.highcharts().setSize(undefined, 300, false); } adjustChartBasedWrapperHeight(); } /** * To create pie/donut chart * @author ManiKanta * @Date 2018-11-20T11:36:33+0530 * @param {Boolean} isDataExists if any data is there or not then will show no data.... * @param {Object} datats Will have all the data to render the chart * @param {String} title Title of the chart * @param {Number} index chart condition index * @param {String} type column/bar * @param {Number} valColIndex The value column index number * @param {Boolean} isDonut Is donut or pie chart * @return {} */ function pieChart(isDataExists, datats, title, index, valColIndex, isDonut) { var headerName = $(ivirDataTableApi.columns(valColIndex).header()).text().trim(); var heihgtOfChrt = $("#ivirMainChartWrapper").outerHeight() - 70; toggleGridView("chart"); var idOftheDiv = 'ivirChart' + index; if (index > (maxNoOfPills - 1)) { $(".ivirChartCheckBox").prop('checked', false).attr('checked', 'checked'); $(".chartWrapper").hide(); idOftheDiv = 'ivirChartCommon'; } if ($("#" + idOftheDiv).length == 0) $("#ivirChartWrapper").append('
'); if (!(requestJSON && iviewButtonStyle != "old")) {//temp $("#ivirChartWrapper .chartWrapper").hide(); //chartWrapper } $("#ivirChartWrapper #ivirChart" + index).show(); try { var viewName = $(".viewtabEdit").parents("li.active").find(".viewtabEdit").data("name") || "main"; if (viewName == "charts") { } } catch (ex) { } if (!isDataExists) { $('#ivirChartWrapper #' + idOftheDiv).html(`

${appGlobalVarsObject.lcm[0]}

`); return; } isDonut ? sizeOfInner = 80 : sizeOfInner = 0; var chart = $('#ivirChartWrapper #' + idOftheDiv).highcharts({ colors: ['#f8bd19', '#e44a00', '#008ee4', '#33bdda', '#6baa01', '#583e78'], //colors: ['#EED17F', '#97CBE7', '#074868', '#B0D67A', '#2C560A', '#DD9D82'], credits: { enabled: false }, chart: { type: 'pie', height: heihgtOfChrt, options3d: { enabled: true, alpha: 25, beta: 0 }, events: { beforePrint: function () { this.exportSVGElements[0].box.hide(); this.exportSVGElements[1].hide(); }, afterPrint: function () { this.exportSVGElements[0].box.show(); this.exportSVGElements[1].show(); } } }, title: { text: title, align: 'left' }, tooltip: { pointFormat: headerName + ': {point.y}' }, plotOptions: { pie: { allowPointSelect: true, cursor: 'pointer', innerSize: sizeOfInner, depth: 35, dataLabels: { enabled: true, format: '{point.name}' }, showInLegend: true } }, series: [{ name: title, data: JSON.parse(JSON.stringify(JSON.parse(datats))) }] }); if (requestJSON && iviewButtonStyle != "old") { chart.highcharts().setSize(undefined, 300, false); } adjustChartBasedWrapperHeight(); } /** Generic function to create the select dropdown kind ui like column selection */ (function ($, window, document, undefined) { 'use strict'; var $html = $('html'); $html.on('click.ui.dropdown', '.js-dropdown', function (e) { e.preventDefault(); var presentElem = $(this); if (!presentElem.hasClass('is-open')) { presentElem.find('.dropDownButton__list').css({ 'display': 'block', 'visibility': 'visible' }); } else { setTimeout(function () { presentElem.find('.dropDownButton__list').hide(); }, 250) } $(document).unbind('keydown.upDownEvents'); if (!presentElem.hasClass('is-open')) { highlightAndBindUpDown(presentElem, '', ".js-dropdown ul li"); } presentElem.toggleClass('is-open'); }); $html.on('click.ui.dropdown', '.js-dropdown [data-dropdown-value]', function (e) { e.preventDefault(); var $item = $(this); if (!$item.hasClass('subHeader')) { var $dropdown = $item.parents('.js-dropdown'); $dropdown.find('.js-dropdown__input').data('index', $item.data('index')).val($item.data('dropdown-value')).change(); if (!$dropdown.hasClass("ivirActionDrpDwn")) { $dropdown.find('.js-dropdown__current').attr('title', 'Search ' + $item.text()).text($item.text()); } else { if (!requestJSON || iviewButtonStyle == "old") { $dropdown.find('.js-dropdown__current').html(callParentNew('lcm')[406] + ''); } } svHtmlGeneratorRef($item, $dropdown.find('.js-dropdown__input')); } else { e.stopPropagation(); } }); $html.on('click.ui.dropdown', function (e) { var $target = $(e.target); if (!$target.parents().hasClass('js-dropdown')) { $(document).unbind('keydown.upDownEvents'); $('.js-dropdown').removeClass('is-open'); $('.js-dropdown').find('.dropDownButton__list').css({ 'display': 'none' }); } if (!$(e.target).hasClass('rightClickMenuIcn')) { $(".rightClickMenu").hide(); } }); })(jQuery, window, document); /** * Function to apply comma to a number * @author ManiKanta * @Date 2018-11-20T11:56:45+0530 * @param {String} val Number to apply comma * @return {String} comma applied string */ function commaSeparateNumber(val) { while (/(\d+)(\d{3})/.test(val.toString())) { val = val.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2'); } return val; } /** * To check any duplicate named conditions are adding * @author ManiKanta + Abhishek * @Date 2018-11-20T11:57:58+0530 * @param {String} title The title user is going to add * @return {Boolean} true - valid,false- invalid */ function ivirDuplicateCheck(title, isEditPill, index) { title = title.toLowerCase(); var obj = ivirMainObj[title]; var fld = title == "filter" ? $('#divModalAdvancedFilters .fldNme') : $('.jconfirm-content .fldNme'); if (obj && fld) { for (var i = obj.length - 1; i >= 0; i--) { if (fld.val().trim() != "") { if (obj[i].n == fld.val().trim()) { if (isEditPill && index == i) continue; else { var ttl = ''; if (title == 'filter') ttl = callParentNew('lcm')[231]; else if (title == 'chart') ttl = callParentNew('lcm')[394]; else if (title == 'group') ttl = callParentNew('lcm')[395]; else if (title == 'highlight') ttl = callParentNew('lcm')[396]; ivirCustomErrMsg(fld, errorMessages.duplicateFld.replace("{0}", ttl)); return false; } } } } } return true; } /** * @description: Check if new chart name exxist or not in any of the views * @author Prashik * @date 2020-11-10 * @param {*} title * @param {boolean} isEditPill * @param {*} index * @returns */ function ivirChartNewDuplicateCheck(title, isEditPill, index) { if (ivirMainViewObj) { var fld = $('#ivirgraph .fldNme'); let ttl = callParentNew('lcm')[394]; if (!isEditPill && ivirMainViewObj && !_.isEmpty(_.find(getAllCommonCharts(), { n: fld.val().trim() }))) { ivirCustomErrMsg(fld, errorMessages.duplicateFld.replace("{0}", ttl)); return false; } return true; } } /** * @description: Get charts from all views in array * @author Prashik * @date 2020-11-10 * @returns {String[]} */ function getAllCommonCharts() { let returnArray = ivirMainViewObj && _.uniqBy(_.flatMap(_.filter(_.mapValues(ivirMainViewObj.views, 'chart'))), v => v.n) || []; if (returnArray.length && ivirMainObj && ivirMainObj["chart"] && ivirMainObj["chart"].length) { returnArray = _.uniqBy([...ivirMainObj["chart"], ...returnArray], v => v.n) || []; } return returnArray.length ? returnArray : []; } /** * @description: Delete chart object from main views object also if chart is deleted from charts view * @author Prashik * @date 2020-11-10 * @param {*} chartObj */ function deleteCommonChart(chartObj) { _.each(ivirMainViewObj.views, (v) => { if (v && v.chart && v.chart.length && v.chart.length > 0) { v.chart = v.chart.map((c) => c.n != chartObj.n ? c : "").filter(c => c); if (v.chart.length == 0) { delete v.chart; } } }); setTimeout(function () { $("#ivirChartPillsList .ivirChartCheckBox:first").prop("checked", true).change(); $("#ivirChartPillsDiv .ivirChartCheckBox:first").prop("checked", true).change(); }, 0); } /** * To test the regular expressions * @author ManiKanta * @Date 2018-11-20T11:58:52+0530 * @param {} type * @param {} value * @return {Boolean} */ function testRegex(type, value) { var regexTotst = regexes[type]; var regexExp = regexTotst.replace(/\\/g, "\\"); regexExp = new RegExp(regexExp, "i"); return regexExp.test(value) ? true : false; } /** * On click on action save saving the condition to database for next load * @author ManiKanta * @Date 2018-11-20T11:59:18+0530 * @return {} */ function saveInSessionBeforeSave() { $("#IvirActions").val(""); //Caching in local storage. var isLocalCache = false; try { if (typeof (Storage) !== "undefined") { var ivInteractiveMainJson = localStorage.ivInteractiveMainJson; if (ivInteractiveMainJson) { isLocalCache = true; var savedJson = JSON.parse(ivInteractiveMainJson); savedJson[iName] = ivirMainObj; saveJsonToDB("set", JSON.stringify(savedJson)); } else { isLocalCache = false; } } else { isLocalCache = false; } } catch (e) { isLocalCache = false; console.log(e); } if (!isLocalCache) { var jsonToSave = {}; jsonToSave[iName] = ivirMainObj; saveJsonToDB("set", JSON.stringify(jsonToSave)); } } function saveInSessionBeforeSaveNew(viewName, viewCaption, uname) { $("#IvirActions").val(""); ivirMainObj["applyTo"] = uname; ivirMainObj["caption"] = viewCaption; ivirMainObj["groupName"] = viewName; if (!(viewName == "main" && viewCaption == "main")) { SavePillsCheckedProperty(); ivirMainObj.params = $("#hdnparamValues").val().replace(/`/g, "`"); ivirMainObj.paramsList = getParamsValueList(); ivirMainObj.paramsList && (ivirMainObj.paramsList = JSON.parse(JSON.stringify(ivirMainObj.paramsList).replace(/&/g, "&"))); try { if (isListView && $("#hdnLvChangedStructure").val()) { ivirMainObj.visibleColumns[0].structure = CheckUrlSpecialChars($("#hdnLvChangedStructure").val()); } } catch (ex) { } if (ivirMainObj.hiddenColumns || ivirMainObj.visibleColumns) { viewLoadedColumns = true; } if (ivirMainObj.sorting) { viewLoadedSort = true; } if (toolbarPinArr.length > 0) ivirMainViewObj["toolbarPin"] = [...new Set(toolbarPinArr)]; } if (!ivirMainViewObj["views"]) ivirMainViewObj["views"] = {}; ivirMainViewObj["views"][viewName] = JSON.parse(JSON.stringify(ivirMainObj)); SaveSmartviewJsonToDb("set", JSON.stringify(ivirMainViewObj), uname, viewName); } function getViewName() { var htmlToShow = ""; var username = eval(callParent("mainUserName")); htmlToShow = '
'; htmlToShow += ''; htmlToShow += ''; htmlToShow += ''; htmlToShow += '
'; htmlToShow += '
'; htmlToShow += ''; htmlToShow += ''; htmlToShow += '
'; var bol = ivirActionDialog('View', 'view', htmlToShow, 'saveInSessionBeforeSaveNew'); } /** * @description: Create/open new view tab popup from views panel * @author Prashik * @date 2020-11-10 */ function newViewTabClick(jqElem) { setTimeout(() => { bkpIvirMainObj = _.cloneDeep(ivirMainObj); }, 0); var newViewTab = false; var viewTabName = ("vw" + (new Date().getTime())); var viewTabCaption = ""; if (jqElem.attr("id") == "viewAddTab" || (jqElem.attr("id") == "IvirActions" && jqElem.val() == "saveAs")) { newViewTab = true; } else { viewTabName = jqElem.data('name'); viewTabCaption = jqElem.data('caption'); if (ivirMainObj && (ivirMainObj.groupName && ivirMainObj.groupName != viewTabName) || !ivirMainObj.groupName) { if (ivirMainViewObj && ivirMainViewObj.views && ivirMainViewObj.views[viewTabName]) { ivirMainObj = ivirMainViewObj.views[viewTabName]; } } } smartStepper(newViewTab, viewTabName, viewTabCaption); } function applyCheckedPillsOnLoad() { $.each(ivirMainObj, function (index, element) { switch (index) { case "filter": $.each(element, function (index, value) { if (value.checked == true || (requestJSON && iviewButtonStyle != "old")) $(".ivirFilterCheckBox[data-type='filter'][data-index=" + index + "]").trigger("click"); }); break; case "highlight": $.each(element, function (index, value) { if (value.checked == true || (requestJSON && iviewButtonStyle != "old")) $(".ivirFilterCheckBox[data-type='highlight'][data-index=" + index + "]").trigger("click"); }); break; case "group": $.each(element, function (index, value) { if (value.checked == true || (requestJSON && iviewButtonStyle != "old")) $(".ivirFilterCheckBox[data-type='group'][data-index=" + index + "]").trigger("click"); }); break; case "hiddenColumns": ivirshowHideColumns(element); break; case "sorting": ivirSortColumns(element); break; } }); } function SavePillsCheckedProperty() { var allPills = $("[data-pill-type='filter'],[data-pill-type='highlight'],[data-pill-type='group']"); if (allPills) { $.each(allPills, function (index, pill) { var type = pill.dataset.pillType switch (type) { case "filter": if (ivirMainObj.filter && ivirMainObj.filter.length > 0) { if ($(pill).find(".ivirFilterCheckBox").is(":checked")) ivirMainObj.filter[$(pill).find(".ivirFilterCheckBox").data("index")].checked = true; else ivirMainObj.filter[$(pill).find(".ivirFilterCheckBox").data("index")].checked = false; } break; case "highlight": if (ivirMainObj.highlight && ivirMainObj.highlight.length > 0) { if ($(pill).find(".ivirFilterCheckBox").is(":checked")) ivirMainObj.highlight[$(pill).find(".ivirFilterCheckBox").data("index")].checked = true; else ivirMainObj.highlight[$(pill).find(".ivirFilterCheckBox").data("index")].checked = false; } break; case "group": if (ivirMainObj.group && ivirMainObj.group.length > 0) { if ($(pill).find(".ivirFilterCheckBox").is(":checked")) ivirMainObj.group[$(pill).find(".ivirFilterCheckBox").data("index")].checked = true; else ivirMainObj.group[$(pill).find(".ivirFilterCheckBox").data("index")].checked = false; } } }); } } /** * On load to get the already saved conditions from db * @author ManiKanta * @Date 2018-11-20T12:00:04+0530 * @return {} */ function getSavedConditions() { var ivInteractiveMainJson = localStorage.ivInteractiveMainJson; if (!ivInteractiveMainJson) saveJsonToDB("get"); else { var jsonObj; try { jsonObj = JSON.parse(ivInteractiveMainJson); if (jsonObj[iName]) { if (jQuery.isEmptyObject(ivirMainObj)) ivirMainObj = jsonObj[iName]; } } catch (e) { } createIvirDataTable(); createPillsOnLoad(); } } function getSavedConditionsNew(view, json = "") { SaveSmartviewJsonToDb("get", json, "", view); var allCharts = getAllCommonCharts(); if (allCharts.length > 0 && requestJSON && iviewButtonStyle != "old" && view == "charts") { ivirMainObj = {} ivirMainObj.key = "charts"; ivirMainObj.chart = getAllCommonCharts(); } if (view != "main" && (requestJSON && iviewButtonStyle != "old" && loadViewName != "charts")) { createPillsOnLoad(); applyCheckedPillsOnLoad(); $('.nav-tabs a[id=' + view + ']').tab('show'); scrollToActiveView(view); try { if (checkIfNextDBRowsExist() && ivirMainObj && (ivirMainObj.chart && ivirMainObj.chart.length && ivirMainObj.chart.length > 0 || ivirMainObj.highlight && ivirMainObj.highlight.length && ivirMainObj.highlight.length > 0 || ivirMainObj.sorting && ivirMainObj.sorting.length && ivirMainObj.sorting.length > 0)) { showChartsWithAllRecords = true; ShowDimmer(true); setTimeout(function () { getNextDtRecords(0); }, 100); } } catch (ex) { } } } function createViewTabs(jsonObj) { var tabindex = 0; $("#viewTabs").children().remove(); if ((viewKeys = Object.keys(jsonObj)).length > 0 && !(isListView && viewKeys.length == 1 && viewKeys[0] == "main")) { if ($.isEmptyObject(jsonObj["main"])) { jsonObj["main"] = {}; } $.each(jsonObj, function (key, element) { var tabHtml = ""; var dataCaption = element["caption"] || key; tabHtml = ` `; if ((key == "main" && !isListView) || key == "charts") { $("#viewTabs").prepend($(tabHtml).find(".viewtabRemove, .viewtabEdit").addClass("d-none").parents("li")); } else if (key == "main" && isListView) { $("#viewTabs").prepend(tabHtml); } else { $("#viewTabs").append(tabHtml); } }); $("#viewTabs").append(` `); if (jsonObj["main"]) { $('.nav-tabs a[id=main]').addClass("active"); if ($.isEmptyObject(jsonObj["main"])) { delete jsonObj["main"]; } } } if ($('#viewTabs').children('li').length != 0) { if ($('#dvViewtabs').is(':hidden')) $('#dvViewtabs').show(); reAdjust(); } else $('.scroller').hide(); setSmartViewHeight(); if ($("#viewTabs li").length > 0) { $(".mainTabs").addClass("viewTabsAdded"); if (isListView) { $("[data-dropdown-value=design]:eq(0)").addClass("d-none"); } } else { $(".mainTabs").removeClass("viewTabsAdded"); if (isListView) { $("[data-dropdown-value=design]:eq(0)").removeClass("d-none"); } } } function clearExistingPills() { if ($("#ivirAllCndtnPillsList :input").length) { $($("#ivirAllCndtnPillsList :input").get().reverse()).each(function (index, element) { if (element.type == "checkbox") deleteThePill(element.dataset["type"], element.dataset["index"], true); }); } if (!ivirMainObj.highlight && !ivirMainObj.group && !ivirMainObj.filter) { $('#ivirAllCndtnPillsDiv .popover-content').html(""); $('#ivirAllCndtnPillsList').html(""); } if ($("#ivirChartPillsList :input").length) { $($("#ivirChartPillsList :input").get().reverse()).each(function (index, element) { if (element.type == "checkbox") deleteThePill(element.dataset["type"], element.dataset["index"], true); }); } if (!ivirMainObj.chart) { $('#ivirChartPillsDiv .popover-content').html(""); $("#ivirChartPillsList").html(""); } } /** * Internal function to get/set the conditiond from/to db * @author ManiKanta + Abhishek * @Date 2018-11-20T12:00:27+0530 * @param {String} option task to get/set * @param {Object} json if set the json data to set * @return {} */ function saveJsonToDB(option, json, view) { if (option == "set" && json != "") { $.ajax({ url: 'iview.aspx/SaveJsonInDB', type: 'POST', cache: false, async: false, data: JSON.stringify({ jsonString: json, isListView }), dataType: 'json', contentType: "application/json", success: function (msg) { if (msg.d == "Session Authentication failed...") parent.window.location.href = "../aspx/sess.aspx"; else if (msg.d == "done") { showAlertDialog("success", 3030, "client"); localStorage.ivInteractiveMainJson = json; } else showAlertDialog("warning", 3028, "client"); }, error: function () { showAlertDialog("warning", "Error while saving the data."); } }); } else if (option == "get") { $.ajax({ url: 'iview.aspx/GetJsonFromDB', type: 'POST', async: true, data: JSON.stringify({ isListView }), dataType: 'json', contentType: "application/json", success: function (data) { try { if (data.d.status == "success") { var ivInteractiveMainJson = localStorage.ivInteractiveMainJson; var jsonSaved = data.d.result; if (jsonSaved && jsonSaved !== "") { var isJsonCreated = false; ivInteractiveMainJson = jsonSaved; if (ivInteractiveMainJson !== "") { localStorage.ivInteractiveMainJson = ivInteractiveMainJson; var jsonObj = JSON.parse(jsonSaved); if (jsonObj[iName]) { isJsonCreated = true; if (jQuery.isEmptyObject(ivirMainObj)) ivirMainObj = jsonObj[iName]; if (allGrandTotal.length > 0) { createIvirDataTable(undefined, '', '', allGrandTotal); } else { createIvirDataTable(); } } } } createPillsOnLoad(); } else if (data.d.result == "Session Authentication failed...") parent.window.location.href = "../aspx/sess.aspx"; else showAlertDialog("warning", 3028, "client"); } catch (ex) { // console.log("Failed in getting ivirjson", ex.message); } if (!isJsonCreated && allGrandTotal.length > 0) { createIvirDataTable(undefined, '', '', allGrandTotal); } else if (!isJsonCreated) createIvirDataTable(); }, error: function () { createIvirDataTable(); } }); } } /** * @description function to get/set New smartview settings from/to db * @author Rakesh + Prashik * @date 2020-06-05 * @param {string} option task to get/set * @param {string} json Json data to save/apply. * @param {sting} uname name of the use for which Json data to be save(username/All) * @param {string} view Name of the view for which Json data to be save/retrive */ function SaveSmartviewJsonToDb(option, json, uname, view) { if (option == 'set' && json != "") { let switchViewCallBackFunction; if ($("#newViewTabId").is(":visible") || isOpenSmartStepper) { switchViewCallBackFunction = function (view) { setTimeout(() => { var viewName = $(".viewtabEdit").parents("li.active").find(".viewtabEdit").data("name") || "main"; if (!isListView || viewName != view) { $('#' + view).click(); } }, 0); } } var jsonSaveObj = JSON.parse(json); if (jsonSaveObj.views) { Object.keys(jsonSaveObj.views).forEach(key => { var thisSaveView = jsonSaveObj.views[key]; if (thisSaveView.applyTo != uname) { delete jsonSaveObj.views[key]; } }); } var saveJson = JSON.stringify(jsonSaveObj); ASB.WebService.SaveSmartViews(iName, $('#hdnKey').val(), saveJson, uname, function (result) { try { if (result == "Session Authentication failed...") parent.window.location.href = "../aspx/sess.aspx"; else if (result && (res = JSON.parse(result)) && res.result && res.result.length && res.result[0] && res.result[0].value == "Saved") { var tempViewObj = JSON.parse(json).views; if (view) { var isDelete = typeof tempViewObj[view] == "undefined"; if (isDelete) { showAlertDialog("success", 3033, "client"); } else { showAlertDialog("success", 3030, "client"); } } let viewToCreate = JSON.parse(json).views; if (viewToCreate) { createViewTabs(viewToCreate); } if (ivirMainObj.groupName) { $('.nav-tabs a[id=' + ivirMainObj.groupName + ']').tab('show'); if ($('#' + view).length > 0) { scrollToActiveView(ivirMainObj.groupName); } if (switchViewCallBackFunction) { switchViewCallBackFunction(ivirMainObj.groupName); } } if ($('#viewTabs').children('li').length == 0) { $('#dvViewtabs').hide(); $('.scroller').hide(); } } else showAlertDialog("warning", 3028, "client"); } catch (ex) { showAlertDialog("warning", 3028, "client"); } }, function (result) { }) } else if (option == "get") { var isJsonCreated = false; //onsuccess try { if (json != "") { var jsonSaved = json; if (jsonSaved && jsonSaved !== "") { var jsonObj = JSON.parse(jsonSaved); try { // if (jsonObj && (!isListView || view == "main" || !$("#newViewTabId").is(":visible")) && (!isListView || (isListView && ivirMainObj && !ivirMainObj.visibleColumns))) { if (jsonObj && (view == "main" || !($("#newViewTabId").is(":visible") || isOpenSmartStepper))) { isJsonCreated = true; // if (ivirMainObj && (view != "main" && (requestJSON && iviewButtonStyle != "old" && view != "charts"))) if (ivirMainObj && (requestJSON && iviewButtonStyle != "old" && view != "charts")) // ivirMainObj = JSON.parse(JSON.stringify(jsonObj.views[view])); ivirMainObj = JSON.parse(JSON.stringify(jsonObj?.views?.[view] || {})); else ivirMainObj = {}; ivirMainViewObj = JSON.parse(JSON.stringify(jsonObj)); } } catch (ex) { } if (!isMobile && jsonObj.toolbarPin != undefined) { toolbarPinArr = jsonObj.toolbarPin; constructPinnedToolbar(); } if (allGrandTotal.length > 0) { createIvirDataTable(undefined, '', '', allGrandTotal); } else { createIvirDataTable(); } if (ivirMainViewObj.views) createViewTabs(ivirMainViewObj.views); } } } catch (ex) { // console.log("Failed in getting ivirjson", ex.message); } if (!isJsonCreated && allGrandTotal.length > 0) { createIvirDataTable(undefined, '', '', allGrandTotal); } else if (!isJsonCreated) createIvirDataTable(); } } /** * Create all the condtions once we got the data from database * @author ManiKanta + Prashik * @Date 2018-11-20T12:01:28+0530 * @return {} */ function createPillsOnLoad() { if (jQuery.isEmptyObject(ivirMainObj)) return false; createPills("all", "first"); $(".ivirFilterCheckBox").prop('checked', false).removeAttr('checked'); var chartArray = ivirMainObj.chart; if (chartArray) { for (var i = 0; i < chartArray.length; i++) { if (requestJSON && iviewButtonStyle != "old") { ivirCreateChart(i, true, false, true); } else { ivirCreateChart(i, false, false, true); } createChartPills(); if (requestJSON && iviewButtonStyle != "old") { if (ivirMainObj.groupName && ivirMainObj.groupName != "charts") { isChartCreationOnLoad = true; $("#ivirChartPillsList .ivirChartCheckBox:first").change(); $("#ivirChartPillsDiv .ivirChartCheckBox:first").change(); isChartCreationOnLoad = false; } } else $("#ivirChartPills .ivirChartCheckBox:first").change(); toggleGridView('grid'); } } setSmartViewHeight(); } /** * To ccheck any dependent fields are there when user is applying any conditions * @author ManiKanta * @Date 2018-11-20T12:01:51+0530 * @param {} arrayType * @param {} arrayIndex * @param {} getColumns * @return {} */ function checkForPillDependentFlds(arrayType, arrayIndex, getColumns) { if (!getColumns && ivirVisibleColumns.length === 0) { //means no columns are hided return true; } var presentObj = ivirMainObj[arrayType][arrayIndex]; var dependentCols = []; if (ivirMainObj[arrayType] && ivirMainObj[arrayType].length > 0) { if (arrayType == 'group') { dependentCols.push(presentObj.cl); var grandTArray = presentObj.g; if (grandTArray) { for (var i = 0; i < grandTArray.length; i++) { var presentGT = grandTArray[i]; if (presentGT != -1 && $.inArray(presentGT, dependentCols) === -1) dependentCols.push(presentGT); } } var totalArray = presentObj.t; if (totalArray) { for (var j = 1; j < totalArray.length; j = j + 2) { var presentT = totalArray[j];//present total array if (presentT != -1 && $.inArray(presentT, dependentCols) === -1) dependentCols.push(presentT); } } } else if (arrayType == 'chart') { dependentCols = [presentObj.cl, presentObj.v]; } } if (getColumns) { return dependentCols; } var dependentColsLength = dependentCols.length; var allColsPresent = true; for (var i = 0; i < dependentColsLength; i++) { //var dependentCols[i] if ($.inArray(FieldName.indexOf(dependentCols[i]), ivirVisibleColumns) === -1) { $("#" + arrayType + "pillCB" + arrayIndex).prop("checked", false); allColsPresent = false; $("#IvirActions").val("SHcolumns").change(); showAlertDialog("warning", errorMessages.dependentColumns); pillDependentCols.index = arrayIndex; pillDependentCols.data = dependentCols; pillDependentCols.type = arrayType; return false; } } return true;; } $(window).resize(function () { //Makes use of jquery.visible.min.js if ($(".dataTables_scrollHead table thead tr th:last-child").visible(true)) { $(".dataTables_scrollHead").off('keydown'); } else { $(".dataTables_scrollHead").on('keydown', function (e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); } }); } }); //to get filter pill index //returns pill index - if exists, -1 - if not function getFiltersPillIndex() { var prevDrawnMoreFilters = $("#newViewTabId .filter-body-cont").parent(); var pillindex = -1; if (prevDrawnMoreFilters.length > 0) { pillindex = prevDrawnMoreFilters.find(".filter-body-cont").data("pillindex"); return pillindex == -1 ? undefined : pillindex; } } function showDataTableLoading() { //$(".dataTables_scrollBody").append("
") ShowDimmer(true); } function hideDataTableLoading() { //$(".dataTables_scrollBody .dt-loading").remove(); ShowDimmer(false); } /** * @description : createdCell / createCustomElement : Function to process individual data which can be used in datatable and also in thirdparty pluguns * @author Prashik * @date 2020-01-09 * @param {*} elem = jQuery empty html element or document element that should be passed to function and will be further filled with processedData [eg: $("
") / document.createElement("div")] * @param {*} cellData : Current Data that should be processed * @param {*} rowData : complete rowData * @param {int} row : row index starting from 0 in ivDatas json onject * @param {int} col : data index starting from 0 for given rowData as per FieldName * * @return {htmlObj} jQuery html element will be returned with processed data that can be attached anywhere in dom [eg: html :
Processed Data
] */ var createdCell = createCustomElement = (elem, cellData, rowData, row, col) => { if (typeof rowRefreshIndex != "undefined") { row = rowRefreshIndex; } isSpecialRow = false; var colID = FieldName[col]; var rowDataAccess = getPropertyAccess(colID); //cellDataProcessing cellData = processCellData({ td: elem, cellData, rowData, row, col, colID, rowDataAccess }); if (cellData != "") { //generate checkbox column if (col == 0) { $(elem).html(generateCellCheckbox({ td: elem, cellData, rowData, row, col, colID, rowDataAccess })); } else { let nonCbComponent = true; if(tstFields.filter(fld => fld.name == colID)?.length && tstFields.filter(fld => fld.name == colID)[0]?.component?.toLowerCase() == "check box") { nonCbComponent = false; $(elem).html(generateFieldCheckbox({ td: elem, cellData, rowData, row, col, colID, rowDataAccess })); } if (!isSpecialRow) { $(elem).html(generateCellHyperlink({ td: elem, cellData, rowData, row, col, colID, rowDataAccess })); } else { nonCbComponent ? $(elem).html(cellData) : ""; } applyConditionalFormatting({ td: elem, rowData, colID }); //Expand/Collapse TreeMethod if (cellHeaderConf.root_class_index) { $(elem).html(generateExpColTree({ td: elem, cellData, rowData, row, col, colID, rowDataAccess })); } if (HeaderText[col] != "" && HeaderText[col] != "$nbsp;" && enableCardsUi && !cardTemplatingHTML) { $(elem).children().wrap(`
`); $(elem).prepend(""); } } } else { $(elem).html(""); } if (!iviewWrap) $(elem).css({ "white-space": "nowrap" }); else $(elem).css({ "word-break": "break-word" }); try { var columnTemplatingHTML = ""; var columnTemplatingObj; try { columnTemplatingObj = ivTemplates.filter((val, data) => { return getCaseInSensitiveJsonProperty(val, "ELEMENTS")[0].toLowerCase() == colID.toLowerCase() }); } catch (ex) { } if (columnTemplatingObj && columnTemplatingObj.length) { columnTemplatingHTML = getCaseInSensitiveJsonProperty(columnTemplatingObj[0], "CVALUE")[0]; } if (columnTemplatingHTML) { renderColumnTemplete({ hbHTML: columnTemplatingHTML, td: elem, cellData, rowData, row, col, colID, rowDataAccess }); } } catch (ex) { } try { createdCellEndCustom(elem, cellData, rowData, row, col); } catch (ex) { }; $(elem).attr("data-field-name", colID); return elem; } //refreshRow(ivirDataTableApi.row(parseInt(ivDatas[0].rowno)-1), ivDatas[0]) /** * @description : Refresh rowData as per action call * @author Prashik * @date 2020-06-22 * @param {*} row : Datatable row object : ivirDataTableApi.row(parseInt(ivDatas[0].rowno)-1) * @param {*} newRowData : New row data */ function refreshRow(row, newRowData) { try { newRowData = newRowData || row.data(); isCheckedRowRefresh = false; if (isChkBox == "true") { try { isCheckedRowRefresh = $(row.node()).find("td:eq(0) input:checkbox").prop("checked") || false; } catch (ex) { } } row.data(newRowData).invalidate(); rowRefreshIndex = row.index(); var newRow = ivirDataTableApi.row.add(newRowData).draw(); $(row.node()).html($(newRow.node()).html()); newRow.remove().draw(); } catch (ex) { } } Handlebars.registerHelper('onclick', function (...args) { var opts = args.pop(); var optType = typeof args[0] != "undefined" ? args[0] : ""; var optName = typeof args[1] != "undefined" ? args[1] : ","; var row = typeof args[2] != "undefined" ? args[2] : ""; let rowData = opts?.data?.root || []; return generateCellOnClick($(""), optType, optName, row) || ""; }); Handlebars.registerHelper('get', function (...args) { var opts = args.pop(); var name = typeof args[0] != "undefined" ? args[0] : ""; let data = opts?.data?.root || []; return data?.[name] || ""; }); Handlebars.registerHelper('set', function (...args) { var opts = args.pop(); var name = typeof args[0] != "undefined" ? args[0] : ""; var value = typeof args[1] != "undefined" ? args[1] : ""; let data = opts?.data?.root || []; if (typeof data != "undefined" && name) { data[name] = value; return true; } else { return false; } }); /** * @description : Process handlebars templete for given iview * @author Prashik * @date 2020-01-09 * @param {*} hbHTML : handlebars template * @param {*} row : row html object * @param {*} data : row data object * @param {*} dataIndex : row index starting from 0 for given rowData as per FieldName * @additionalProperties * axRenderProject: Project Name * axRenderRowNo: access row no starting from 1 * axRenderIName: iview name */ function renderRowTemplete(hbHTML, row, data, dataIndex) { var processedData = FieldName.reduce((o, key) => Object.assign(o, { [key]: (cellVal = $(row).find(`td[data-field-name="${key}"]`).html(), typeof cellVal != "undefined" ? cellVal : data[getPropertyAccess(key)]) }), {}); processedData["axRenderProject"] = callParentNew("thmProj") || proj; processedData["axRenderIName"] = iName; processedData["axRenderRowNo"] = dataIndex + 1; try { axPreTemplate(processedData, row, data, dataIndex); } catch (ex) { } let compiledHtml = ""; try { compiledHtml = Handlebars.compile(hbHTML)(processedData); } catch (error) { console.log("Row Templete", error); } if (compiledHtml) { $(row).html(compiledHtml).css({ "background-color": "initial" }).addClass("rowTemplate"); } try { axPostTemplate(processedData, row, data, dataIndex); } catch (ex) { } } /** * @description : Process column handlebars templete * @author Prashik * @date 2020-01-09 // * @param {*} hbHTML : handlebars template // * @param {*} row : row html object // * @param {*} data : row data object // * @param {*} dataIndex : row index starting from 0 for given rowData as per FieldName * @additionalProperties * axRenderProject: Project Name * axRenderRowNo: access row no starting from 1 * axRenderIName: iview name * axRenderThis: td javascript object for rendering cell */ // function renderColumnTemplete(hbHTML, row, data, dataIndex) { function renderColumnTemplete({ hbHTML, td, cellData, rowData, row, col, colID, rowDataAccess }) { var processedData = { ...rowData }; processedData["axRenderThis"] = $(td).html() processedData["axRenderProject"] = callParentNew("thmProj") || proj; processedData["axRenderIName"] = iName; processedData["axRenderRowNo"] = row + 1; try { axPreColumnTemplate(processedData, td, cellData, rowData, row, col, colID, rowDataAccess); } catch (ex) { } let compiledHtml = ""; try { compiledHtml = Handlebars.compile(hbHTML)(processedData) } catch (error) { console.log(colID + " Column Templete", error); } if (compiledHtml) { $(td).html(compiledHtml).addClass("columnTemplate"); } try { axPostColumnTemplate(processedData, td, cellData, rowData, row, col, colID, rowDataAccess); } catch (ex) { } } /** * @description: Construct Data button panel * @author Prashik * @date 2020-04-10 */ function constuctDataButton(task) { var filterSelectHtml = ""; if (requestJSON == true && iviewButtonStyle != "old") { filterSelectHtml += '
'; filterSelectHtml += ''; filterSelectHtml += '
list_alt
'; var MenuClass = iviewButtonStyle == "modern" ? "w-100 w-sm-350px" : "w-200px"; var MenuItemClass = iviewButtonStyle == "modern" ? "col-4" : "menu-item px-3"; var MenuItemLinkClass = iviewButtonStyle == "modern" ? "d-flex flex-column flex-center text-center text-gray-800 text-hover-primary bg-hover-light rounded p-3 mb-3" : "menu-link px-3"; var MenuItemIconClass = iviewButtonStyle == "modern" ? "" : "me-3"; filterSelectHtml += ''; filterSelectHtml += '
'; $("#filterWrapper").html(filterSelectHtml); } else { filterSelectHtml += '
'; filterSelectHtml += ''; filterSelectHtml += '' + callParentNew('lcm')[406] + ''; filterSelectHtml += ''; filterSelectHtml += '
'; $("#filterWrapper").html(filterSelectHtml); } if (requestJSON && appGlobalVarsObject._CONSTANTS.compressedMode) { $(".toolbarRightMenu").find(".tb-btn").addClass("btn-sm"); $(".toolbarRightMenu").find(".tb-btn .material-icons.material-icons-style").addClass("material-icons-2"); } } function deleteViewtab(tabName) { if (!hasBuildAccess && ivirMainViewObj["views"][tabName].applyTo == 'ALL') { showAlertDialog("warning", callParentNew('lcm')[484]); return false; } var isActive = $("a#" + tabName).closest('li').hasClass('active'); if (isActive) { clearExistingPills(); } $("#IvirActions").val(""); try { var applyTo = ivirMainViewObj["views"][tabName].applyTo; var viewName = tabName; delete ivirMainViewObj["views"][tabName]; ivirMainObj = {}; SaveSmartviewJsonToDb("set", JSON.stringify(ivirMainViewObj), applyTo, viewName); } catch (e) { console.log(e); } if (isActive) getSavedConditionsNew("main", JSON.stringify(ivirMainViewObj)); else { $("a#" + tabName).closest('li').remove(); reAdjust(); } if ($('#viewTabs').children('li').length == 0) { $('#dvViewtabs').hide(); $('.scroller').hide(); } setSmartViewHeight(); } function loadViewTab(view) { var paramString = ivirMainViewObj["views"][view].params.replace(/`/g, "`"); var paramValues = ivirMainViewObj["views"][view].paramsList || ""; paramValues && (paramValues = JSON.parse(JSON.stringify(paramValues).replace(/&/g, "&"))); var lvColVisibleObj = ""; if (isListView && ivirMainViewObj["views"][view] && ivirMainViewObj["views"][view].visibleColumns && ivirMainViewObj["views"][view].visibleColumns.length > 0 && ivirMainViewObj["views"][view].visibleColumns[0].structure) { lvColVisibleObj = ivirMainViewObj["views"][view].visibleColumns; } if (paramString != "" && paramString != undefined) { SetParamValues(paramString, paramValues); if (view != "main" && view != "charts") { let ivirMainObj = ivirMainViewObj["views"][view]; if (ivirMainObj && ivirMainObj.chart && ivirMainObj.chart.length && ivirMainObj.chart.length > 0) { $("#hdnWebServiceViewName").val(view); } } setTimeout(function () { $("#button1").trigger('click'); }, 0); loadViewName = view; } else if (isListView && lvColVisibleObj) { try { var columnsString = _.map(lvColVisibleObj[0].dcs, (dc) => { return dc.fields }).reduce((res, fld) => { res = [...res, ...fld]; return res; }, []).join(","); $("#hdnLvSelectedCols").val(columnsString); $("#hdnLvSelectedHyperlink").val(lvColVisibleObj[0].hyperlink); $("#hdnLvChangedStructure").val(ReplaceUrlSpecialChars(lvColVisibleObj[0].structure)); } catch (ex) { } setTimeout(function () { $("#button1").trigger('click'); }, 0); loadViewName = view; } else { clearExistingPills(); getSavedConditionsNew(view, JSON.stringify(ivirMainViewObj)); } } function pinItemToTaskbar(item) { var temp = $(item).clone(); temp.find('a > i').remove();//remove pin icon if (temp.hasClass("dropdown-submenu")) { temp.removeClass("dropdown-submenu"); temp.children('a').append('');//add down arrow to dropdown item if (temp.attr('id') != "filterWrapper" && (iviewButtonStyle == "modern" || temp.attr('id') != "ivirCButtonsWrapper")) { temp.addClass("dropdown"); temp.find('ul').removeAttr("style"); if (temp.find('a#tasks')) temp.find('li').addClass('liTaskItems'); } else if (temp.find('ul').hasClass('dropdown-menu')) { temp.find('ul').removeClass('dropdown-menu'); } if (temp.attr('id') == "ivirCButtonsWrapper") { var active = temp.find('ul a:not(.active):eq(0)'); $(active).find('.customIcon').removeClass('customIcon'); $(active).html($(active).html().replace($(active).text(), '')); temp.html(active.clone()); } } else temp.addClass('actionWrapper'); if (temp.attr('id')) temp.attr('id', 'pinned' + temp.attr('id')); $.each(temp.find('*'), function (index, element) { if ($(element).attr('id')) { $(element).attr('id', 'pinned' + $(element).attr('id')); } }); $('#pinnediconsUl').append(temp); if (temp.attr('id') == "pinnedivirCButtonsWrapper" && iviewButtonStyle == "modern") { if ($("#ivirMainDataTableWrapper").is(":visible")) { toggleGridView("grid"); } else { toggleGridView("chart"); } } setPinedIconContainerWidth(); } function constructPinnedToolbar() { if (!toolbarPinArr.length) return false; $('#pinnediconsUl').children().remove(); for (var i = 0; i < toolbarPinArr.length; i++) { if ($('#' + toolbarPinArr[i])) { if ($('#' + toolbarPinArr[i]).hasClass('dropdown-submenu')) { pinItemToTaskbar($('#' + toolbarPinArr[i])); $('#' + toolbarPinArr[i]).addClass('pinned') $('#' + toolbarPinArr[i]).find('a > i').attr("title", "Unpin from taskbar"); } else { pinItemToTaskbar($('#' + toolbarPinArr[i]).parent('li')); $('#' + toolbarPinArr[i]).parent('li').addClass('pinned'); $('#' + toolbarPinArr[i]).find('i').attr("title", "Unpin from taskbar"); } } } } function mergerSmartviewSettings(json) { if (json != "") { jsonObj = JSON.parse(json); if (jsonObj["all"]) { if (jsonObj["all"].views) { $.each(jsonObj["all"].views, function (index, val) { if (val["applyTo"] != "ALL") delete jsonObj["all"].views[index]; }); } } var userName = callParentNew("mainUserName"); var finalJson = $.extend(true, {}, jsonObj["all"], jsonObj[userName]); return JSON.stringify(finalJson); } } function setFilterInfo() { var filterInformation = ``; if ((processObj = Object.keys(advFiltersObjectToApply).length > 0 ? advFiltersObjectToApply : generateSearchString("JSON")) && (!$.isEmptyObject(processObj) && !processObj.somedummyfilterjsobjectkey)) { filterInformation = `
${appGlobalVarsObject.lcm[409]}
${Object.keys(processObj).map((key) => { if (key != "somedummyfilterjsobjectkey" && processObj[key]) { let procObj = processObj[key]; let textData = ""; if (dateOptionsId.indexOf(procObj) > -1) { procObj = dateOptions[dateOptionsId.indexOf(procObj)]; } if (typeof procObj == "object" && typeof procObj.min != "undefined" && typeof procObj.max != "undefined") { procObj = `${procObj.min} to ${procObj.max}`; } if (requestJSON) { textData = procObj.toString().replace(/`/g, ",") } else { textData = procObj.toString().replace(/\♣\|♣/g, ",") } return ` ${HeaderText[FieldName.indexOf(key)]} : ${textData} `; } else { return ``; } }).join(". ")} `; } if (!$("#dvSelectedFilters").is(":visible")) { $(".paramPillContent").addClass("d-none"); } else { $(".paramPillContent").removeClass("d-none"); } if (filterInformation && $("#dvSelectedFilters").is(":visible")) { $(".paramPillContent, .filterPillContent").addClass("half"); } else { $(".paramPillContent, .filterPillContent").removeClass("half"); } $(".filterPillContent").html(filterInformation); $("#myFiltersPillInfo").data("filterJsonObj", processObj); } /** * Reset Filters Selection * @author Prashik * @Date 2019-04-11T11:45:39+0530 */ function clearFilters() { advFiltersObjectToApply = { somedummyfilterjsobjectkey: "dummy" }; ivirDataTableApi.draw(); setFilterInfo(); $("[id^='filterpillCB']").prop('checked', false).removeAttr('checked'); } function adjustChartBasedWrapperHeight() { if ($("#ivirChartWrapper .chartWrapper:visible").length > 0) { $(".iviewTableWrapperNew").addClass("chartsAdded"); var subCaptionHeight = 0; try { $(".ivcaptions").length ? subCaptionHeight = $(".ivcaptions").toArray().reduce((sum, elem) => sum + $(elem).outerHeight(true), 0) : ""; } catch (ex) { } var mainTabsHeight = 0; try { $(".mainTabs").length ? mainTabsHeight = $(".mainTabs").outerHeight(true) : ""; } catch (ex) { } var finalHeightChartAdded = Math.round($(window).height() - ($("#breadcrumb-panel").height() + subCaptionHeight + mainTabsHeight)); $('.iviewTableWrapperNew.chartsAdded').css({ "height": finalHeightChartAdded + "px" }); } else { $(".iviewTableWrapperNew").removeClass("chartsAdded"); $('.iviewTableWrapperNew').css({ "height": "" }); } } function forceColumnWidth() { visibleTableWidth = 0; $("#GridView1 tfoot tr td").css({ "width": "", "max-width": "" }); $(".dataTables_scrollHead table.gridData thead tr:last th").toArray().forEach((th, ind) => { let columnName = $(th).data("headerName"); let applyWidth = (parseInt(ivirMainObj?.design?.filter(dsign => dsign.name == columnName)?.[0]?.width /* || (isListView && tstFields && lvWidth)*/ || ivHeadRows[columnName]["@width"] || (isListView && columnName == "rowno" ? listViewCheckBoxSize : minCellWidth)) || 0) + widthIncrement; visibleTableWidth += applyWidth; $(`.dataTables_scrollHead table.gridData thead tr:last th[data-header-name=${columnName}], .dataTables_scrollBody table.gridData thead tr:last th[data-header-name=${columnName}], .dataTables_scrollFoot table.gridData tfoot tr td:eq(${ind})`).css({ "width": `${applyWidth}px`, "max-width": `${applyWidth}px` }); }); $(".gridData").css({ "width": `${visibleTableWidth}px` }); } let subHeadGroup = {}; function saveSubHeadInfo(row, data, dataIndex) { if (data?.axrowtype == "subhead") { subHeadGroup[dataIndex] = data; } else if ((dataIndex - 1) == Object.keys(subHeadGroup).getMaxVal() && subHeadGroup[Object.keys(subHeadGroup).getMaxVal()] != null) { subHeadGroup[dataIndex] = null; } } function getLayoutHTML(cardTemplatingHTML) { switch (cardTemplatingHTML) { case "card": return `
{{#is axp_status}} {{#is axp_status 'toLower' 'active'}} {{/is}} {{#is axp_status 'toLower' 'delayed'}} {{/is}} {{#is axp_status 'toLower' 'progress'}} {{/is}} {{axp_status}} {{/is}} {{#is axrowoptions}} {{/is}}
{{#is axp_icon_img}}
image
{{else}} {{#is axp_icon}}
{{axp_icon}}
{{/is}} {{/is}}

{{{axp_title}}}

{{axp_description}}

`; break; case "tile": return `
{{#is axrowoptions}} {{/is}}
{{#is axp_icon_img}}
Not Found
{{else}} {{#is axp_icon}}
{{axp_icon}}
{{/is}} {{/is}}

{{{axp_title}}}


{{axp_description}}

{{#is axp_status}}
{{#is axp_status 'toLower' 'active'}} {{/is}} {{#is axp_status 'toLower' 'delayed'}} {{/is}} {{#is axp_status 'toLower' 'progress'}} {{/is}} {{axp_status}}
{{/is}}
`; break; case ""://table default: return cardTemplatingHTML; break; } } function parseJSON(str) { try { return JSON.parse(str); } catch (e) { return false; } } /* SmartView :: Filter, Sort, Row Grouping, Columns, Highlight */ function smartStepper(newViewTab, viewTabName, viewTabCaption) { ShowDimmer(true); /* Variables */ var svElement; var stepper; var showValueOption; var svOptionsObj = Object.keys(newBtnGroup).map(key => newBtnGroup[key]).filter(obj => obj.visible); var saveView = `saveViewActionRef("${(newViewTab ? "Add View" : "Edit View")}", "view", "saveInSessionBeforeSaveNew", ${newViewTab ? showValueOption : JSON.stringify(["view", 1])}, ${!newViewTab ? true : false})`; /* Section :: HTML */ var smartViewStepperHTML = `
${ svOptionsObj.map((element, index) => { return `
${element.icon} ${element.icon}

${element.caption}

`; }).join("") }
${ svOptionsObj.map((element, index) => { return `
${element.html(!newViewTab)}
`; }).join("") }
`; var viewHeaderHTML = ` `; var buttonDeleteResetHTML = `${(!newViewTab && viewTabName != "main") ? ` delete ` : `` } auto_mode `; var buttonApplyHTML = ` `; /* Section :: Modal */ let myModal = new BSModal("newViewTabId", "", smartViewStepperHTML, () => { /* Onload CallBacks */ svOptionsObj.map((element, index) => { if (element.task == "filter") { return initMoreFiltersAddOns(); } else { if ((element.task == "group" || element.task == "highlight") && !newViewTab) { ivirMainObj[element.task] ? showValueOption = [element.task, 0] : ""; } else if (element.task == "column" && isListView && ivirMainObj.visibleColumns) { $("#selColHypOpts").val(ivirMainObj.visibleColumns[0].hyperlink).trigger("change"); } return onContentReadyRef(element.task, showValueOption, !newViewTab ? true : false); } }).join(""); /* Init :: Stepper */ svElement = document.querySelector("#newViewTabId"); stepper = new KTStepper(svElement); var applyButtonInnerText = `${appGlobalVarsObject.lcm[442]} ${stepper.steps[stepper.getCurrentStepIndex() -1].getElementsByClassName("stepper-title")[0].innerText}`; document.getElementsByClassName("sv-btn-apply")[0].innerText = applyButtonInnerText; /* Stepper :: go to clicked step */ stepper.on("kt.stepper.click", function (stepper) { stepper.goTo(stepper.getClickedStepIndex()); applyButtonInnerText = `${appGlobalVarsObject.lcm[442]} ${stepper.steps[stepper.getCurrentStepIndex() -1].getElementsByClassName("stepper-title")[0].innerText}`; document.getElementsByClassName("sv-btn-apply")[0].innerText = applyButtonInnerText; }); try { /* Init :: all Smartview options */ $("select.stepperSelect").select2({ allowClear: true, placeholder: appGlobalVarsObject.lcm[441], }); /* Init :: apply to in header only */ $("select#viewAplyTo").select2({ allowClear: true, placeholder: appGlobalVarsObject.lcm[441], width: 'resolve' }); KTApp?.initBootstrapTooltips(); if (!hasBuildAccess) { $('#viewAplyTo').append(new Option(callParentNew("mainUserName"), callParentNew("mainUserName"), true, true)).trigger("change"); } $(document).off("click", ".sv-btn-apply").on("click", ".sv-btn-apply", () => { let svTask = newBtnGroup[stepper.steps[stepper.currentStepIndex - 1].dataset.svname]?.task; saveViewActionRef(`${(newViewTab ? "Add View" : "Edit View")}`, `${svTask}`, newBtnGroup[stepper.steps[stepper.currentStepIndex - 1].dataset.svname]?.apply, (newViewTab ? showValueOption : JSON.stringify([svTask, 1])), (!newViewTab ? true : false)); showAlertDialog(`info`, `${newBtnGroup[stepper.steps[stepper.currentStepIndex - 1].dataset.svname]?.caption} applied. Please ${appGlobalVarsObject.lcm[400]} to see the changes.`); }).off("click", ".sv-btn-reset").on("click", ".sv-btn-reset", () => { newBtnGroup[stepper.steps[stepper.currentStepIndex - 1].dataset.svname]?.clear(); showAlertDialog(`success`, `${newBtnGroup[stepper.steps[stepper.currentStepIndex - 1].dataset.svname]?.caption} ${appGlobalVarsObject.lcm[393]}.`); }); } catch (error) { } setTimeout(() => { ShowDimmer(false); }, 0); }, () => { /* Unload CallBacks */ onCloseRef(newBtnGroup[stepper.steps[stepper.currentStepIndex - 1].dataset.svname]?.task); stepper = undefined; }); /* Section :: myModal methods */ myModal.changeSize("fullscreen"); myModal.scrollableDialog(); myModal.okBtn.innerText = appGlobalVarsObject.lcm[400]; myModal.okBtn.setAttribute(`onclick`, `${saveView}`); myModal.cancelBtn.classList.add("d-none"); myModal.modalFooter.classList.add(..."hstack gap-2".split(" ")); /* Section :: add/edit view name & user permission */ var headerExtras = document.createElement("div"); headerExtras.classList.add(..."d-flex col-11 gap-5".split(" ")); myModal.modalHeader.prepend(headerExtras); myModal.headerExtras = headerExtras; myModal.headerExtras.innerHTML = viewHeaderHTML; myModal.modalHeader.getElementsByClassName("btn-close")?.[0].setAttribute(`onclick`, `cancelViewActionRef("${(newViewTab ? "Add View" : "Edit View")}")`); /* Section :: footerExtras object */ var footerExtras = document.createDocumentFragment(); myModal.footerExtras = footerExtras; /* Section :: footerExtras => button separator */ var buttonSeparator = document.createElement("div"); buttonSeparator.classList.add(..."vr h-30px bg-dark m-3".split(" ")); myModal.modalFooter.prepend(buttonSeparator); myModal.footerExtras.buttonSeparator = buttonSeparator; /* Section :: footerExtras => apply filter, sort... option */ var buttonApply = document.createElement("div"); buttonApply.classList.add(..."d-flex gap-2".split(" ")); myModal.modalFooter.prepend(buttonApply); myModal.footerExtras.buttonApply = buttonApply; myModal.footerExtras.buttonApply.innerHTML = buttonApplyHTML; /* Section :: footerExtras => delete view & Reset filters, sort... option */ var buttonDeleteReset = document.createElement("div"); buttonDeleteReset.classList.add(..."d-flex gap-2 me-auto".split(" ")); myModal.modalFooter.prepend(buttonDeleteReset); myModal.footerExtras.buttonDeleteReset = buttonDeleteReset; myModal.footerExtras.buttonDeleteReset.innerHTML = buttonDeleteResetHTML; } /* Chart Modal */ function smartCharts(chartParam = true, showValueOption = undefined, isEditPill = false) { let myModal = new BSModal(appGlobalVarsObject.lcm[410], appGlobalVarsObject.lcm[410], getChartHtml(!chartParam), () => { $("select.chartSelect").select2({ allowClear: true, placeholder: appGlobalVarsObject.lcm[441], }); onContentReadyRef("chart", showValueOption, isEditPill); KTApp?.initBootstrapTooltips(); }, () => { }); myModal.changeSize("fullscreen"); myModal.scrollableDialog(); myModal.okBtn.innerText = appGlobalVarsObject.lcm[399]; myModal.okBtn.addEventListener("click", () => { saveViewActionRef("Charts", "chart", newBtnGroup.charts.apply, showValueOption == undefined ? showValueOption : JSON.stringify(showValueOption), isEditPill); }); } /* Get row grouping's condition row on add condtion */ function getRowGroupingCondtionHtml() { var htmlToShow = `
help_outline
'
`; return htmlToShow; }