PK#;E ;E PK `:4V 6 11.1.1.0_release24/11.1.1.0_release24/Js/smartViews.js/*********
*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 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];
$j(document).ready(function ($) {
$.fn.dataTableExt.ofnSearch['alt-status'] = function (sData) {
//console.log(sData);
//return sData.replace(/\n/g, " ").replace(/<.*?>/g, "");
};
$.fn.dataTable.ext.errMode = 'none';
//$("#tasks").html(callParentNew('lcm')[407] + " " + " ").prop({ 'title': callParentNew('lcm')[407] });
//$(".print").prop({ 'title': callParentNew('lcm')[408] }).text(callParentNew('lcm')[408]);
//$("#ivInSearchInput").attr({ 'placeholder': callParentNew('lcm')[415] });
Highcharts.setOptions({
lang: {
decimalPoint: '.',
thousandsSep: ','
}
});
/** Will trigger when actions dropdown like highlight,group is selected */
$(document).on("change", "#IvirActions , #pinnedIvirActions", function (event) {
if (($("#ivirCButtonsWrapper").is(":visible") && !$("#ivirCButtonsWrapper a.active").hasClass('grdView')) || ($("#pinnedivirCButtonsWrapper").is(":visible") && !$("#pinnedivirCButtonsWrapper a.active").hasClass('grdView'))) {
toggleGridView("grid");
}
var htmlToShow = "";
var selectedVal = $(this).val();
if (selectedVal && selectedVal != "") {
if (selectedVal == 'SHcolumns' && iName != "inmemdb") {
//Show hide colums in the report
if (!isListView || $("#hdnListViewFieldsJSON").val() == "") {
htmlToShow = '';
htmlToShow += '';
htmlToShow += ' ' + " " + callParentNew('lcm')[446] + " " + ' ';
htmlToShow += '
';
}
//htmlToShow += 'Display Columns
';
htmlToShow += '';
var dialogObj = ivirActionDialog(callParentNew('lcm')[401], 'column', htmlToShow, 'ivirshowHideColumns');
setTimeout(function () {
if (!(!isListView || $("#hdnListViewFieldsJSON").val() == "")) {
dialogObj.$btnc.css({ "width": "100%" });
dialogObj.$btnc.prepend(`
Select column for Hyperlink
*
${listDropdowns}
`);
try {
$("#selColHypOpts").val(ivirMainObj.visibleColumns[0].hyperlink);
} catch (ex) { }
}
}, 0);
} else if (selectedVal == 'sort' && iName != "inmemdb") {
// htmlToShow += 'Display Columns
';
htmlToShow += '';
htmlToShow += ' ';
htmlToShow += ' ';
htmlToShow += ' ';
ivirActionDialog(callParentNew('lcm')[403], 'sort', htmlToShow, 'ivirSortColumns');
} else if (selectedVal == 'rowGrouping' && iName != "inmemdb") {
if (!checkForPillsLength('group'))
ivirActionDialog(callParentNew('lcm')[412], 'group', getGroupHtml(), "ivirRowGrouping");
} else if (selectedVal == 'highlighting' && iName != "inmemdb") {
// htmlToShow = getHighlightHtml();
if (!checkForPillsLength('highlight'))
ivirActionDialog(callParentNew('lcm')[396], 'highlight', getHighlightHtml(), "ivirHighlightRow");
// if (ivirMainObj.highlight === undefined)
// ivirActionDialog('Highlight', getHighlightHtml(), "ivirHighlightRow");
// else
// createPills("highlight");
// ivirHighlightRow(ivirMainObj.highlight);
} else if (selectedVal == 'download') {
htmlToShow += ''
htmlToShow += '
'
htmlToShow += '
'
htmlToShow += '
'
//htmlToShow += '
'
//htmlToShow += '
Copy
';
htmlToShow += '
CSV
';
htmlToShow += '
Excel
';
htmlToShow += '
PDF
';
htmlToShow += '
Print
';
//htmlToShow += '
Copy
';
//htmlToShow += '
CSV
';
//htmlToShow += '
Excel
';
//htmlToShow += '
PDF
';
//htmlToShow += '
Print
';
//htmlToShow += '
'
htmlToShow += '
';
// htmlToShow += '
';
// htmlToShow += '
'
// htmlToShow += 'This is an email link:'
// htmlToShow += 'Send Mail '
// htmlToShow += '
'
htmlToShow += '
';
htmlToShow += '
';
htmlToShow += '
';
ivirActionDialog(callParentNew('lcm')[411], 'download', htmlToShow, "DownloadFile");
} else if (selectedVal == 'chart' && iName != "inmemdb") {
if (!checkForPillsLength('chart'))
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 if (ivirMainObj && $.isEmptyObject(ivirMainObj)) {
// SaveSmartviewJsonToDb("set", JSON.stringify(ivirMainViewObj), callParentNew("mainUserName"), "")
// }
else {
getViewName();
}
}
else
saveInSessionBeforeSave();
} else if (selectedVal == 'saveAs' && iName != "inmemdb") {
//getViewName();
newViewTabClick($(this));
}
else if (selectedVal == 'moreFilters') {
//saveInSessionBeforeSave();
ivirMoreFilters();
} 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);
////var fnWindow = window[fnString];
//var params = fn.splice(1);
//var btnID = params[0];
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 = $("#divModalAdvancedFilters table tbody tr");
}
} else {
isObjectAvailable = true;
loopData = $(Object.keys(advFiltersObjectToApply));
}
var validationArray = [];
//if ($("#divModalAdvancedFilters:visible").length) {
//$("#divModalAdvancedFilters table tbody tr").each(function (thisTR) {
$(loopData).each(function (dataIndex) {
var dataKey = "";
if (isObjectAvailable) {
//this.toString();
dataKey = loopData[dataIndex];
var colType = ivirColumnTypeObj[dataKey];
} else {
var colType = $(this).data("coltype");
}
switch (colType) {
case "c":
//debugger;
//data, ivirDataTableApi, filteredColumns;
if (isObjectAvailable) {
var thisVal = advFiltersObjectToApply[dataKey];
//var currentIndex = FieldName.indexOf(dataKey) - (rowTypeExist ? 1 : 0);
var currentIndex = getPropertyAccess(dataKey);
} else {
var thisVal = $(this).find(".moreFiltersInput.characterFilter:nth(0)").val();
//var currentIndex = filteredColumns.indexOf($(this).find(".moreFiltersInput.characterFilter").data("field"));
//if(dataIsKey){
var currentIndex = getPropertyAccess($(this).find(".moreFiltersInput.characterFilter").data("field"));
//}
//else{
// var currentIndex = FieldName.indexOf($(this).find(".moreFiltersInput.characterFilter").data("field")) - (rowTypeExist ? 1 : 0);
//}
}
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;
//thisVal != "" ? validationArray.push(RegExp((thisVal.toString().replace(/\| /g, '|')), "g").test(currentData)) : validationArray.push(false);
//thisVal != "" ? validationArray.push(RegExp((thisVal.toString().replace(/\| /g, '|')), "g").test(currentData)) : "";
//thisVal != "" ? validationArray.push(thisVal.split(/\♣\|♣/g).indexOf(currentData) > -1) : "";
if (requestJSON) {
thisVal != "" ? validationArray.push(thisVal.split(/`/g).filter((val, ind) => { return currentData.indexOf(val) > -1 }).length > 0) : "";
} else {
thisVal != "" ? validationArray.push(thisVal.split(/\♣\|♣/g).filter((val, ind) => { return currentData.indexOf(val) > -1 }).length > 0) : "";
}
break;
case "n":
var minVal = 0, maxVal = 0;
if (isObjectAvailable) {
//var currentIndex = FieldName.indexOf(dataKey) - (rowTypeExist ? 1 : 0);
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 = filteredColumns.indexOf($(this).find(".moreFiltersInput.numericFilter:nth(0)").data("field"));
//if(dataIsKey){
var currentIndex = getPropertyAccess($(this).find(".moreFiltersInput.numericFilter:nth(0)").data("field"));
//}
//else{
// var currentIndex = FieldName.indexOf($(this).find(".moreFiltersInput.numericFilter:nth(0)").data("field")) - (rowTypeExist ? 1 : 0);
//}
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)) : "";
// else
// validationArray.push(false);
break;
case "d":
var minVal = 0, maxVal = 0;
if (isObjectAvailable) {
//var currentIndex = FieldName.indexOf(dataKey) - (rowTypeExist ? 1 : 0);
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 = "";
//minVal =
}
} catch (ex) { }
try {
if (advFiltersObjectToApply[dataKey]["max"]) {
maxVal = getDateStamp(advFiltersObjectToApply[dataKey]["max"]) || maxVal;
} else {
var selectionOption = "";
//minVal =
}
} catch (ex) { }
} else {
var fromToObj = generateAdvFilterDates(advFiltersObjectToApply[dataKey]);
minVal = getDateStamp(fromToObj.from);
maxVal = getDateStamp(fromToObj.to);
}
} else {
//var currentIndex = filteredColumns.indexOf($(this).find("input.moreFiltersInput.dateFilter:nth(0)").data("field"));
//if(dataIsKey){
var currentIndex = getPropertyAccess($(this).find("input.moreFiltersInput.dateFilter:nth(0)").data("field"));
//}
//else{
// var currentIndex = FieldName.indexOf($(this).find("input.moreFiltersInput.dateFilter:nth(0)").data("field")) - (rowTypeExist ? 1 : 0);
//}
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) { }
//var maxVal = 0;
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)) : "";
// else
// validationArray.push(false);
break;
case "t":
break;
}
});
//}
//else if ($("#ivInSearchInput").val() != "") {
// $("#ivInSearchInput").val().split("| ").filter(function () {
// });
//}
//return true;
//advFiltersObjectToApply = {};
//return validationArray.length > 0 ? validationArray.indexOf(true) > -1 : true;
return validationArray.every(valData => valData);
}
);
/**
* This function will help to reArrange columns sorting to initial stage by using ivirDataTableApi.order.neutral().draw();
* @author Prashik
* @Date 2019-02-28T10:43:22+0530
*/
//$.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;
// });
// });
//});
/**
* 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");
//$("[data-pill-type='filter'] .ivirFilterCheckBox").attr("checked",false); //if any filters exists & checked then clear it
//debugger;
//ivirDataTableApi.columns().search('').draw();
//pushSearchStringtoInput();
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();
var moreFilters = $("#divModalAdvancedFilters .body-cont").parent();
var pillindex = moreFilters.find(".body-cont").data("pillindex");
if (pillindex != -1 || !checkForPillsLength('filter') || $("#newViewTabId").is(":visible")) {
if (advSearchNameValue) {
var pillIndex = getFiltersPillIndex();
var isEditPill = pillIndex == undefined ? false : true;
if (!$("#newViewTabId").is(":visible")) {
if (!ivirDuplicateCheck("filter", isEditPill, pillIndex))
return false;
}
var searchJSON = JSON.stringify(generateSearchString("JSON"));
if (searchJSON != "{}") {
if ($("#newViewTabId").is(":visible")) {
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);
//$("#btnFilter").data("applyFilterIndex", "pillIndex");
//$("#btnFilter").click();
ivirDataTableApi.draw();
setFilterInfo();
$('[data-dropdown-value="moreFilters"]').attr("data-filter-type", "filter");
//showAlertDialog("success", searchJSON);
}
} else {
showAlertDialog("info", "Filter fields cannot be empty.");
}
} else {
//showAlertDialog("warning", "Filter name should not be left empty while creating filters.");
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 enableDisable;
var fromToObj = generateAdvFilterDates($(this).val());
fromDate.val(fromToObj.from);
toDate.val(fromToObj.to);
enableDisableDateField(thisSiblings.find("input.moreFiltersInput"), $(this).val() == "customOption" ? "enable" : "disable");
});
});
/**
* 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: "" };
switch (dateOption) {
case "customOption":
//enableDisable = "enable";
break;
case "todayOption":
//enableDisable = "disable";
var dateObj = new Date();
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "yesterdayOption":
//enableDisable = "disable";
var dateObj = new Date();
dateObj.setDate(dateObj.getDate() - 1);
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "tomorrowOption":
//enableDisable = "disable";
var dateObj = new Date();
dateObj.setDate(dateObj.getDate() + 1);
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "this_weekOption":
//enableDisable = "disable";
var dateObj = getFirstDayOfWeek(new Date());
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setDate(dateObj.getDate() + 6);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "last_weekOption":
//enableDisable = "disable";
var dateObj = getFirstDayOfWeek(new Date());
dateObj.setDate(dateObj.getDate() - 7)
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setDate(dateObj.getDate() + 6);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "next_weekOption":
//enableDisable = "disable";
var dateObj = getFirstDayOfWeek(new Date());
dateObj.setDate(dateObj.getDate() + 7)
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setDate(dateObj.getDate() + 6);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
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 = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
//dateObj.setMonth(dateObj.getMonth() + 1).setDate(0)
dateObj.setMonth(dateObj.getMonth() + 1);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "last_monthOption":
//enableDisable = "disable";
var dateObj = getFirstDayOfWeek(new Date());
dateObj.setDate(1);
dateObj.setMonth(dateObj.getMonth() - 1);
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
//dateObj.setMonth(dateObj.getMonth() + 1).setDate(0)
dateObj.setMonth(dateObj.getMonth() + 1);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "next_monthOption":
//enableDisable = "disable";
var dateObj = getFirstDayOfWeek(new Date());
dateObj.setDate(1);
dateObj.setMonth(dateObj.getMonth() + 1);
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
//dateObj.setMonth(dateObj.getMonth() + 1).setDate(0)
dateObj.setMonth(dateObj.getMonth() + 1);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
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 = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setMonth(dateObj.getMonth() + 3);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
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 = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setMonth(dateObj.getMonth() + 3);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
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 = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setMonth(dateObj.getMonth() + 3);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "this_yearOption":
//enableDisable = "disable";
var dateObj = new Date();
dateObj.setDate(1);
dateObj.setMonth(0);
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setFullYear(dateObj.getFullYear() + 1);
dateObj.setMonth(0);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "last_yearOption":
//enableDisable = "disable";
var dateObj = new Date();
dateObj.setFullYear(dateObj.getFullYear() - 1);
dateObj.setDate(1);
dateObj.setMonth(0);
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setFullYear(dateObj.getFullYear() + 1);
dateObj.setMonth(0);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
break;
case "next_yearOption":
//enableDisable = "disable";
var dateObj = new Date();
dateObj.setFullYear(dateObj.getFullYear() + 1);
dateObj.setDate(1);
dateObj.setMonth(0);
fromToObj.from = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
dateObj.setFullYear(dateObj.getFullYear() + 1);
dateObj.setMonth(0);
dateObj.setDate(0);
fromToObj.to = ($.datepicker.formatDate(dtFormat.replace("yyyy", "yy"), dateObj));
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.column(columnIndex, { search: 'applied' }).data().unique().sort().each(function (value, index) {
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, "");
//parseFloat(value) ? columnVals.push(value) : "";
columnVals.push(value);
} else if (type == "d") {
if (getAjaxIviewData) {
value = getDateBasedOnCulture(value);
}
var curTimeStamp = getDateStamp(value);
//curTimeStamp ? columnVals.push(curTimeStamp) : "";
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) {
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 {
//if (isPillAlreadyChecked) {
$("[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 {
var cutMsg = eval(callParent('lcm[23]'));
showAlertDialog("warning", cutMsg);
}
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');
$(elem).addClass('active');
$("#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;
// var apiToRefer =
// fixedColumnsObj == ""
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;
// isFirstTime ? chartObj.ft = true : "";
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);
// $("#highlight" + indexOfArray + "pillCB").parent().next().find('.ivirCndtnName').text(name);
}
} else {
var cutMsg = eval(callParent('lcm[23]'));
showAlertDialog("warning", cutMsg);
}
// columnChart(datats, title)
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) {
// isChkBox
//console.log(new Date() + ': datatable creation started');
var heightOfDT = $(".iviewTableWrapper")[0].offsetHeight + "px";
var dataTblObj = {};
var pillsAccordionHtml = "";
let accordianClone = "";
if (task == "clear" || task == "groupApply" || task == "group") {
pillsAccordionHtml = $("#pillsWrapper").html();
}
// accordianClone = $("#accordion").detach();
//$("#accordion").remove();
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: ' ',
previous: ' '
},
// "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: 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: '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: ''
},
// customize: function (xlsx) {
// var sheet = xlsx.xl.worksheets['sheet1.xml'];
// debugger;
// // Loop over the cells in column `K`
// $('row[xmlns\\:validRow="true"]', sheet).each( function (ind, data) {
// // Get the value
// // if ( $('is t', this).text() == 'New York' ) {
// // $(this).attr( 's', '20' );
// // }
// if (ind > -1) {
// var thisRowData = ivDatas[ind];
// if (typeof thisRowData["axrowtype"] != "undefined") {
// switch (thisRowData["axrowtype"]) {
// case "stot":
// // $(data).attr("font-color", "blue");
// $('c', data).attr( 's', '68' );
// break;
// case "subhead":
// // $(data).attr("font-color", "black");
// $('c', data).attr( 's', '69' );
// break;
// case "gtot":
// // $(data).attr("font-color", "green");
// $('c', data).attr( 's', '70' );
// break;
// }
// }
// }
// });
// }
}, {
extend: 'pdfHtml5',
text: 'PDF',
title: IVIRCaption,
// title: "",
// customize: function ( doc ) {
// doc.content.splice( 0, 0, {
// text: "custom header\n my header"
// } );
// },
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('');
// doc.styles['td:nth-child(2)'] = {
// width: '100px',
// 'max-width': '100px'
// }
}
// customize: function (doc) {
// try {
// var valid = [];
// valid = doc.content.filter((data) => {
// return data.table
// })[0].table.body.filter((data2) => {
// return data2[0].style != "tableHeader"
// });
// if(valid.length > 0) {
// $(valid).each( function (ind, data) {
// // Get the value
// // if ( $('is t', this).text() == 'New York' ) {
// // $(this).attr( 's', '20' );
// // }
// if (ind > -1) {
// var thisRowData = ivDatas[ind];
// if (typeof thisRowData["axrowtype"] != "undefined") {
// switch (thisRowData["axrowtype"]) {
// case "stot":
// data.forEach((data2) => {
// data2.style = "stot";
// });
// break;
// case "subhead":
// data.forEach((data2) => {
// data2.style = "subhead";
// });
// break;
// case "gtot":
// data.forEach((data2) => {
// data2.style = "gtot";
// });
// break;
// }
// }
// }
// });
// }
// } catch (ex) { }
// }
}, {
extend: 'print',
text: 'Print',
// 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: ''
},
// customize: function ( win ) {
// // Style the body..
// // $( win.document.body )
// // .addClass('asset-print-body')
// // .css( /* CSS for entire BODY here... */ )
// // .prepend( $( ' ' )
// // .attr('src','https://sasset.io/wp-content/uploads/2015/08/sasset_logo-300x87.png')
// // .addClass('asset-print-img')
// // );
// /* Style for the table */
// $( win.document.body ).find( 'table td[valid]' ).parents("tr").each( function (ind, data) {
// // Get the value
// // if ( $('is t', this).text() == 'New York' ) {
// // $(this).attr( 's', '20' );
// // }
// if (ind > -1) {
// var thisRowData = ivDatas[ind];
// if (typeof thisRowData["axrowtype"] != "undefined") {
// switch (thisRowData["axrowtype"]) {
// case "stot":
// $(data).addClass("specialRow");
// $('td', data).addClass("fontBlue");
// break;
// case "subhead":
// $(data).addClass("specialRow");
// $('td', data).addClass("fontBlack");
// break;
// case "gtot":
// $(data).addClass("specialRow");
// $('td', data).addClass("fontGreen");
// break;
// }
// }
// }
// });
// }
// customize: function ( win ) {
// $(win.document.body)
// .css( 'font-size', '10pt' )
// .prepend(
// ' '
// );
// $(win.document.body).find( 'table' )
// .addClass( 'compact' )
// .css( 'font-size', 'inherit' );
// }
}
];
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) { };
//enableMobileCards();
if ($("#hdnIsParaVisible").val() != "hidden") {
$("[id=dvSelectedFilters]").removeClass("hide");
}
$("#ivirCButtonsWrapper").removeClass("hide");
if (appGlobalVarsObject._CONSTANTS.compressedMode || callParentNew("isDWB")) {
// $("body").addClass("compressedModeUI");
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
//console.log(new Date() + ': end time');
autoSplitChecker();
$(".gridData").css({ "width": `${visibleTableWidth}px` });
try {
recordsExist = this.fnSettings().fnRecordsTotal() > 0;
} catch (ex) { }
//recordsExist = false;
//$('#Filterscollapse').collapse('show');
if (callParentNew("isDWB") && iName == "ivcols") {
axDevIvDrawTable(ivDatas.map(col => col.f_caption), ivDatas.map(col => col.f_name), ivDatas.map(col => col.column_width), ivDatas.map((col) => {
if (col.hidden == "T")
return true
else if (col.hidden == "F")
return false
else return col.hidden;
}));
}
/**
* 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");
}, 0);
};
if (getAjaxIviewData) {
var recCount = ' ';
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();
dwbTstructFieldsInit();
drawCallbackPaginationLogic();
/**
* 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();
dwbTstructFieldsInit();
/**
* 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 });
}
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) => {
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");
// $(row).addClass("sortfalse");
}
/**
* 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;
let widthIncrement = 0;
// if($("#GridView1").width() > $("#GridView2Wrapper").width()){
try {
horizontalScrollExist = true;
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 = ivHeadRows[fld]["@width"] || (isListView && ind == 0 ? listViewCheckBoxSize : minCellWidth);
(ivHeadRows[fld]["@hide"].toString() || "true") == "false" ? visibleTableWidth += (parseInt(width, 10) + widthIncrement) : "";
tableWidth += (parseInt(width, 10) + widthIncrement);
//tableWidth += parseInt(width, 10);
return { "data": getPropertyAccess(fld), "name": getPropertyAccess(fld), "width": `${width}px`, "className": colAlign[ivHeadRows[fld]["@align"] || (fld == "rowno" && !enableCardsUi ? "Center" : "Left")] }
});
if(isChkBox == "true"){
visibleTableWidth += (40 + widthIncrement);
tableWidth += (40 + widthIncrement);
}
$(ivirTable).css({ "width": `${tableWidth}px` });
//$(ivirTable).outerWidth(tableWidth);
/**
* 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("
" + HeaderText[col] + ": ");
}
}
}
try {
//debugger;
createdCellEndCustom(td, cellData, rowData, row, col);
} catch (ex) { };
$(td).attr("data-field-name", colID);
}
});
}
//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 (widthOfGrid > windowWidth)
// $(".gridData").css("margin-left", "0px");
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()
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('hide');
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;
});
});
});
//if (ivirDataTableApi == undefined)
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);
}
}
// ivirDatatable = $('#example').dataTable();
} 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('hide');
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 = ``;
// if (getAjaxIviewData) {
thisSelector = valueSelected;
//} else {
// thisSelector = indexSelected;
//}
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() {
//alert(presGroupCnt)
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));
}
}
}
}
});
dwbTstructFieldsInit();
drawCallbackPaginationLogic();
/**
* 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) { }
// dataTblObj.sScrollX = "200%";
ivirDataTableApi = $(ivirTable).DataTable(dataTblObj);
if (pillsAccordionHtml != "")
$("#pillsWrapper").html(pillsAccordionHtml);
//ivirDataTableApi.columns(hiddenColumnIndex);;
// 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("
") : "";
else
$("#requestNextRecords").length == 0 ? $("#rowsTxtCountNew").append("
") : "";
//
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
}
//console.log(new Date() + ': load time');
}, 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);
// applyAdvFilter();
var customButtonHtml = "";
if (requestJSON == true && iviewButtonStyle != "old") {
if (task == 'group' || task == 'groupApply') {
//showAlertDialog("warning", msg);
customButtonHtml += `
`;
}
else {
customButtonHtml += `
${iviewButtonStyle != "modern"
?
``
:
/*`
`*/
``
}`;
}
$("#ivirCButtonsWrapper").html(`
${iviewButtonStyle != "modern"
?
/*`
Report/Chart `*/
``
:
/*`
R/C
Report/Chart
`*/
``
}
${customButtonHtml}
`).addClass("dropdown-submenu");
}
else {
if (task == 'group' || task == 'groupApply') {
//showAlertDialog("warning", msg);
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 (accordianClone) {
// accordianClone.find(".panel-collapse.collapse").removeClass("in")
// accordianClone.insertAfter($("#ivirCustomContainer .row:first"));
// }
if ($("#accordion")) {
$("#accordion").find(".panel-collapse.collapse").removeClass("in");
if (!requestJSON || iviewButtonStyle == "old") {
$("#ivirCustomContainer").append($("#accordion"));
} else {
$("#accordion").css({ "top": "50px" });
}
}
// $("#filterColumnSelect").addClass('filterExixts');
}
var allColumns = ivirDataTableApi.columns();
// selectHtml = "