var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var Unibase;
(function (Unibase) {
let Platform;
(function (Platform) {
let Analytics;
(function (Analytics) {
let Reports;
(function (Reports) {
class ReportBuilder extends Platform.Core.BaseComponent {
constructor() {
super(...arguments);
this.dateColumns = [];
this.selectedColumns = [];
this.ReportColumns = [];
this.ChartColumns = [];
this.datalistColumnsResponseData = [];
this.identityColumnsResponseData = [];
this.subreport_count = 1;
this.dynamicFilters = [];
this.reportname = null;
this.cardviewerpage = 2;
this.reportwidgetdata = null;
this.toolTipTemplateArray = [];
this.tableData = "";
this.last_page = 2;
this.whole_tableData = [];
this.loadTableData = 0;
this.tableData_Array = [];
this.isduplicate = false;
this.reportType = 1;
this.duplicateColIndex = [];
this.appliedFilter = 0;
this.filtersArray = [];
this.queryBuilderArray = [];
this.tabulatorColumns = [];
this.IsclickedSelect2Caret = false;
this.Categories = [];
this.groupBy_Category = [];
this.TenureReport = [];
this.reportViewer_scrolled = 0;
this.subreportdata = [];
this.columns_Data = [];
this.dataTreeRowExpandedColumn = [];
this.ViewerId = 0;
this.ViewerTypeId = Unibase.Platform.Analytics.Reports.Enums.ViewerType.Table;
this.QB_KeyUp = 0;
this.EditableTitle = true;
this.HeaderSort = false;
this.QueryBuilder_Columns = [];
this.DataListId = 0;
this.Aggregations = ["count", "sum", "avg", "max", "min", "Month", "Year", "none"];
this.DataSourceId = 0;
this.IsPivotTree = false;
this.Edit_BindData = false;
this.IsNotification = false;
this.SearchColumns = "";
this.selectedCategoryColumnsArray = [];
this.IsInternalReport = true;
this.appConfigType = 0;
this.parameterNumber = 1;
this.parameterArray = [];
this.isEdit = false;
this.selectedOption = 1;
this.index = 0;
this.roleSettings = [];
this.SortColumns = [];
this.querybuilderCheckboxes = [];
this.enableCount = false;
this.enableGlobalDatepicker = false;
this.reportGroupId = 0;
this.paletteId = 0;
this.isReportWidget = false;
this.reportWidgetType = '';
this.connectedAppsData = [];
this.linkReportId = 0;
this.viewAll = false;
this.lastContainerId = "";
this.enablePivotTableConfig = false;
this.pinDynamicFilters = false;
this.showDynamicFilters = false;
this.legendTypeId = 0;
this.isCharttoTable = false;
}
cssFiles() {
var cssfiles = ['platform/analytics/components/reportbuilder/style.reportbuilder.css'];
return cssfiles;
}
jsFiles() {
var jsfiles = ["platform/bundle/index.reportbuilder.js"];
return jsfiles;
}
html(id, containerid) {
var instance = this;
let html = `
`;
for (var i = 0; i < dc_res.length; i++) {
let obj = dc_res[i];
let columnIcon = instance.getColumnIconByDataTypes(obj.DataTypeId);
let dobj = { ColumnId: obj.ColumnId, DataType: obj.DataTypeId, ColumnName: obj.AliasName, DisplayText: obj.AliasName, AliasName: obj.AliasName, DlColumnName: obj.ColumnName, Isvisible: false, StaticFilterControlType: obj.StaticFilterControlTypeId };
instance.datalistColumnsResponseData.push(dobj);
dataListColumnsHtml += `
${columnIcon}
${obj.AliasName}
`;
}
dataListColumnsHtml += ` `;
$('#modalDataListColumns').html(dataListColumnsHtml);
instance.QueryBuilder_Columns = instance.datalistColumnsResponseData;
}
else {
$('#modalDataListColumns').html("");
}
}
else {
return MessageHelper.Instance().showError("DataListColumns does'nt exist", "divDatalistModal_ErrorMessage");
}
}
else {
return MessageHelper.Instance().showError(response.message, "divDatalistModal_ErrorMessage");
}
});
}
});
}
_selectedColumns(selCol) {
var instance = this;
let colFormat;
if (selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime && selCol.ColumnFormat)
colFormat = selCol.ColumnFormat;
else if (selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime && !(selCol.ColumnFormat))
colFormat = "Default";
instance.selectedColumns.push({
ReportColumnId: (selCol.ReportColumnId) ? selCol.ReportColumnId : 0,
ColumnId: selCol.ColumnId,
ColumnName: selCol.ColumnName,
AliasName: selCol.AliasName && selCol.AliasName.toLowerCase(),
DataListColumnName: selCol.DataListColumnName,
DlColumnName: selCol.DlColumnName,
DisplayText: (selCol.DisplayText) ? selCol.DisplayText : selCol.AliasName,
DataType: selCol.DataType,
DataTypeString: selCol.DataTypeString,
GroupBy: (selCol.GroupBy) ? selCol.GroupBy : false,
Isvisible: (selCol.Isvisible) ? selCol.Isvisible : false,
Aggregation: !isNaN(selCol.Aggregation) ? selCol.Aggregation : Reports.Enums.AggregationType.none,
SortOrder: (selCol.SortOrder) ? selCol.SortOrder : "none",
SortIndex: (selCol.SortIndex) ? selCol.SortIndex : 0,
IsFilterable: false,
IsPrimaryKey: (selCol.IsPrimaryKey) ? selCol.IsPrimaryKey : false,
IsContactColumn: (selCol.IsContactColumn) ? selCol.IsContactColumn : false,
ColumnIndex: instance.selectedColumns.length,
IsDragged: (selCol.IsDragged) ? selCol.IsDragged : false,
GroupByCategory: (selCol.GroupByCategory) ? selCol.GroupByCategory : false,
ColumnFormat: (colFormat) ? colFormat : "",
DistinctOn: (selCol.DistinctOn) ? selCol.DistinctOn : false,
IsPivotColumn: selCol.IsPivotColumn,
IsPivotAggrColumn: selCol.IsPivotAggrColumn,
IsPivotTableCol: (selCol.IsPivotTableCol) ? selCol.IsPivotTableCol : false,
IsDownload: (selCol.IsDownload) ? selCol.IsDownload : false,
TableAggrTypeId: !isNaN(selCol.TableAggrTypeId) ? selCol.TableAggrTypeId : Reports.Enums.AggregationType.none,
IsNumFormatting: (selCol.IsNumFormatting) ? selCol.IsNumFormatting : false,
IsRowTotal: (selCol.IsRowTotal) ? selCol.IsRowTotal : false,
IsImageUrl: (selCol.IsImageUrl) ? selCol.IsImageUrl : false,
PivotTableAggrTypeId: (selCol.PivotTableAggrTypeId) ? selCol.PivotTableAggrTypeId : 0,
});
var Width = selCol.Width;
if (Width != undefined) {
let index = instance.getIndexByAliasName_selectedColumnsArray(selCol.AliasName);
if (index != -1)
instance.selectedColumns[index].Width = Width;
}
var ColumnName = selCol.ColumnName;
let EditableTitle = true;
let HeaderSort = false;
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
EditableTitle = false;
HeaderSort = true;
}
instance.table.addColumn({ title: selCol.AliasName && selCol.AliasName.toLowerCase(), field: ColumnName && ColumnName.toLowerCase(), editableTitle: EditableTitle, headerSort: HeaderSort }, true, "LastColumn");
instance.EditableTabulatorTitle();
}
loadReportColumns() {
var instance = this;
if ($('#modalDataListItems .nav-link.data-list-sel.active').length == 0)
return MessageHelper.Instance().showError("Please select Datalist", 'divDatalistModal_ErrorMessage');
if ($('#modalDataListColumns .columns-list li.selected').length == 0)
return MessageHelper.Instance().showError("Please select Columns", 'divDatalistModal_ErrorMessage');
instance.datalistColumnsResponseData = [];
instance.DataListId = parseInt($('#modalDataListItems ul li a.active').attr('data-list-id'));
const DataListName = $('#modalDataListItems ul li a.active').attr('data-list-name');
var asb = 0;
$('#datalist_name').val(DataListName);
$('#header_datalist_name').html(DataListName);
if (!isNaN(instance.DataListId)) {
$('#modalDataListColumns ul.multi-sel li span.dataListModalColumn').each(function () {
let _id = Number($(this).attr('data-column-id'));
let _datatype = Number($(this).attr('data-column-datatype'));
let _datatypeString = $(this).attr('data-column-datatype');
let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
let _dlaliasname = $(this).text();
let obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _dlaliasname, DisplayText: _dlaliasname, AliasName: _dlaliasname, DlColumnName: _dlcolumnname, Isvisible: false };
instance.datalistColumnsResponseData.push(obj);
});
$('#modalDataListColumns ul.multi-sel li.selected span.dataListModalColumn').each(function () {
let _id = Number($(this).attr('data-column-id'));
let _datatype = Number($(this).attr('data-column-datatype'));
let _datatypeString = $(this).attr('data-column-datatype');
let _dlaliasname = $(this).text();
let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
let obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _dlaliasname, AliasName: _dlaliasname, DlColumnName: _dlcolumnname, Isvisible: true, IsDownload: true };
instance._selectedColumns(obj);
});
instance.loadSelectedDataListColumns();
instance.loadAllDataListColumns();
instance._chartBuilder.select2DataBinding("");
$('#reportBuilderModal').modal('hide');
$('.Datalist_Search').val("");
$('.DatalistColumns_Search').val("");
instance.load_data(instance.table);
}
;
}
loadAllDataListColumns() {
var instance = this;
let allDatalistColumnsHtml = "";
allDatalistColumnsHtml += '
';
for (var i = 0; i < instance.datalistColumnsResponseData.length; i++) {
var obj = instance.datalistColumnsResponseData[i];
let columnIcon = instance.getColumnIconByDataTypes(obj.DataType);
allDatalistColumnsHtml += `
${columnIcon}
${obj.ColumnName}
`;
}
allDatalistColumnsHtml += ' ';
$('#allDatalistColumns').html(allDatalistColumnsHtml);
}
loadSelectedDataListColumns() {
let opt = Number($('#filter-by').val());
let check = '';
var hiddenColumnsHtml = '';
if (opt == Unibase.Platform.Analytics.Enums.FilterType.allcolumns) {
}
else if (opt == Unibase.Platform.Analytics.Enums.FilterType.contactcolumns) {
check = 'IsContactColumn';
}
else if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns) {
check = 'IsPrimaryKey';
}
var instance = this;
let selectedColumnsHtml = "";
$.each(instance.selectedColumns, function (index, value) {
var { selectedColumnHtml, hiddenColumnHtml } = instance.getSelectedColumnHtml(value, index, check);
selectedColumnsHtml += selectedColumnHtml;
if (!check)
hiddenColumnsHtml += hiddenColumnHtml;
});
$('#selectedColumns').html(selectedColumnsHtml);
$('#selectedColumns_hidden').html(hiddenColumnsHtml);
instance.sortSelectedColums();
}
getColumnHtml(AliasName, ColumnName, ColumnId, dnoneClass, Isvisible, isColumnVisible, DataType, DisplayText, isHiddenColumn) {
var idValue = isHiddenColumn ? "_hidden" : "";
const draggerClass = isHiddenColumn ? 'pl-40' : 'las la-braille dragger';
return `
`;
}
getSelectedColumnHtml(value, index, check) {
var instance = this;
var selectedColumnHtml = '', hiddenColumnHtml = '';
let dnoneClass = 'd-none';
let isColumnVisible = "true";
if (!value.Isvisible) {
dnoneClass = '';
isColumnVisible = "false";
}
var colIndex = instance.getIndexByAliasName_selectedColumnsArray(value.AliasName);
instance.selectedColumns[colIndex].ColumnIndex = index;
if (check == '' && !value.IsPrimaryKey) {
selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.DisplayText);
}
else if (check == "IsPrimaryKey" && value.IsPrimaryKey) {
selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.ColumnName);
}
else if (check == '' && value.IsPrimaryKey) {
selectedColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, value.Isvisible, isColumnVisible, value.DataType, value.AliasName);
}
else if (check == 'IsContactColumn' && value.IsContactColumn) {
selectedColumnHtml += `
`;
}
if (!value.Isvisible) {
hiddenColumnHtml += instance.getColumnHtml(value.AliasName, value.ColumnName, value.ColumnId, dnoneClass, true, isColumnVisible, value.DataType, value.DisplayText, true);
}
return {
selectedColumnHtml: selectedColumnHtml,
hiddenColumnHtml: hiddenColumnHtml
};
}
sortSelectedColums() {
var instance = this;
let list = $('#selectedColumns');
if (!list)
return;
list.sortable({
connectWith: "#selectedColumns",
cursor: 'move',
update: function (event, ui) {
instance.updateSelectedColumnIndex();
instance.load_data(instance.table);
}
});
}
appendExtraSelectedColumns() {
var instance = this;
let obj;
let newColumnsHtml = "";
if (instance.DataListId != 0) {
let show = false;
$('#allDatalistColumns ul.multi-sel li.selected span.datalist_column').each(function () {
let _id = Number($(this).attr('data-column-id'));
let _datatype = Number($(this).attr('data-column-datatype'));
let _datatypeString = $(this).attr('data-column-datatype');
let _name = $(this).text();
let _dlcolumnname = $(this).attr('data-column-dlcolumnname');
let opt = Number($('#filter-by').val());
if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns && _datatype != Unibase.Platform.Analytics.Reports.Enums.DataType.int32 && _datatype != Unibase.Platform.Analytics.Reports.Enums.DataType.int64) {
return MessageHelper.Instance().showError("Please select integer data type column for selecting primary key", "div_ReportBuilderErrorMessage");
}
obj = { ColumnId: _id, DataType: _datatype, DataTypeString: _datatypeString, ColumnName: _name, AliasName: _name, DlColumnName: _dlcolumnname, Isvisible: true, IsDownload: true };
var column = instance.selectedColumns.find(x => x.AliasName == _name) ? true : false;
if (!column)
instance._selectedColumns(obj);
if (opt == Unibase.Platform.Analytics.Enums.FilterType.allcolumns) {
if (column) {
show = true;
return instance.error(_name);
}
newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, obj.AliasName, obj.DataType, _name);
}
else if (opt == Unibase.Platform.Analytics.Enums.FilterType.contactcolumns) {
var contccol = instance.selectedColumns.find(x => x.AliasName == _name && x.IsContactColumn == true) ? true : false;
if (contccol) {
show = true;
return instance.error(_name);
}
newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, obj.AliasName, obj.DataType, _name);
instance.IsContactColumn(_id, _name);
}
else if (opt == Unibase.Platform.Analytics.Enums.FilterType.primarykeycolumns) {
var pkcol = instance.selectedColumns.find(x => x.ColumnName == _name && x.IsPrimaryKey == true) ? true : false;
if (pkcol) {
show = true;
return MessageHelper.Instance().showError('Please remove existing pk_id column to add new primarykey column', 'div_ReportBuilderErrorMessage');
}
newColumnsHtml += instance.addDataListColumns_ColumnsTab(obj.ColumnId, obj.ColumnName, "pk_id", obj.DataType, _name);
obj["AliasName"] = "pk_id";
obj["IsPrimaryKey"] = true;
instance._selectedColumns(obj);
$("#txtAliasName_pk_id").val("pk_id");
}
});
$("#selectedColumns").append(newColumnsHtml);
instance.sortSelectedColums();
instance.loadAllDataListColumns();
instance._chartBuilder.select2DataBinding("");
instance._chartBuilder.loadSearchSelect2();
$(".DatalistColumns_Search").val("").trigger("keyup");
this._pivot.loadPivotSelect2s();
instance.load_data(instance.table);
if (!show)
$('#adj_drawer_1').hide();
}
;
}
addDataListColumns_ColumnsTab(ColumnId, ColumnName, AliasName, DataType, name) {
let newColumnsHtml = `
`;
return newColumnsHtml;
}
addDuplicateColumn(columnName) {
var instance = this;
let duplicateCol;
let index = 0;
if (instance.duplicateColIndex.length > 0) {
let col = instance.duplicateColIndex[columnName];
if (col) {
index = col.index + 1;
duplicateCol = columnName + "_" + index;
delete instance.duplicateColIndex[columnName];
instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
}
else {
duplicateCol = columnName + "_" + index;
instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
instance.duplicateColIndex.length = instance.duplicateColIndex.length + 1;
}
}
else {
duplicateCol = columnName + "_" + index;
instance.duplicateColIndex[columnName] = { ColName: columnName, AliasName: duplicateCol, index: index };
instance.duplicateColIndex.length = instance.duplicateColIndex.length + 1;
}
return duplicateCol;
}
pivotData() {
var instance = this;
let sel_Col = instance.selectedColumns;
instance.table.options.dataTree = true;
for (var i = 0; i < sel_Col.length; i++) {
if (instance.pivot.ColumnName == sel_Col[i].ColumnName) {
let Col = [];
let row = instance.pivot.PivotRows;
for (var r = 0; r < row.length; r++) {
Col.push({ title: row[r], field: row[r], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
}
instance.tabulatorColumns = instance.tabulatorColumns.concat(Col);
}
else {
if (sel_Col[i].Width != undefined) {
instance.tabulatorColumns.push({ title: sel_Col[i].ColumnName, field: sel_Col[i].ColumnName, visible: sel_Col[i].Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, width: sel_Col[i].Width });
}
else {
if (instance.pivot.AggColumnName != sel_Col[i].ColumnName) {
instance.tabulatorColumns.push({ title: sel_Col[i].ColumnName, field: sel_Col[i].ColumnName, visible: sel_Col[i].Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
}
}
}
}
}
findChildren(row, action) {
var instance = this;
if (action == "expand") {
row.treeExpand();
}
else {
row.treeCollapse();
}
;
var childRows = row.getTreeChildren();
if (childRows.length > 0) {
childRows.forEach(function (child) {
if (child.getTreeChildren().length > 0) {
instance.findChildren(child, action);
}
});
}
}
getDistinctData(colId, colName, AggrFuncId) {
return __awaiter(this, void 0, void 0, function* () {
var instance = this;
var cf_fromDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate);
var cf_toDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate);
yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDistinctColumnData(instance.DataListId, colName, AggrFuncId, cf_fromDate, cf_toDate).then(function (response) {
if (response != "") {
instance.distinctColumnData = response;
let PivotRows = [];
instance.pivot.ColumnName = colName;
for (var i = 0; i < instance.distinctColumnData.length; i++) {
PivotRows.push(instance.distinctColumnData[i][colName]);
}
if ($("#PivotRows_Select2").is(":visible")) {
$("#PivotRows_Select2").select2({
placeholder: 'Select Pivot Rows',
data: PivotRows,
});
}
instance.pivot.PivotRows = PivotRows;
}
else {
instance.pivot.PivotRows = [];
}
});
});
}
timeIntervels(pivotCol) {
var instance = this;
var timeInterval = instance.TenureReport[pivotCol].TimeInterval.split(',');
var tenure = [];
for (var t = 0; t < timeInterval.length; t++) {
var start = 0;
if (t != timeInterval.length - 1) {
if (t == 0) {
start = Number(timeInterval[t]);
}
else {
start = Number(timeInterval[t]) + 1;
}
var end = timeInterval[t + 1];
tenure.push(start + "-" + end);
}
else {
tenure.push(">" + timeInterval[t]);
}
}
return tenure;
}
tenureData() {
var instance = this;
let sel_Col = instance.selectedColumns;
instance.tenureTimeIntervalCol = instance.pivot.ColumnName;
var tenure = instance.timeIntervels(instance.tenureTimeIntervalCol);
for (var i = 0; i < sel_Col.length; i++) {
if (instance.pivot.ColumnName == sel_Col[i].ColumnName) {
let Col = [];
for (var t = 0; t < tenure.length; t++) {
if (sel_Col[i].Width) {
Col.push({ title: tenure[t], field: tenure[t], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, width: sel_Col[i].Width });
}
else {
Col.push({ title: tenure[t], field: tenure[t], visible: true, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort });
}
}
instance.tabulatorColumns[sel_Col[i].ColumnIndex + 1] =
{
title: sel_Col[i].ColumnName,
columns: Col,
};
}
else {
if (instance.pivot.AggColumnName !== sel_Col[i].ColumnName) {
instance.tabulatorColumns[sel_Col[i].ColumnIndex + 1] =
{ title: sel_Col[i].AliasName, field: sel_Col[i].ColumnName, visible: sel_Col[i].Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, width: sel_Col[i].Width };
}
}
}
}
initTable(containerid) {
var instance = this;
var autoNumFormatter = function (cell) {
var row = cell.getRow();
var rowIndex = row.getPosition(false);
return (rowIndex + 1);
};
let serviceurl = "apis/v4/unibase/platform/analytics/tabledata";
serviceurl = _appsettings.server_url() + (serviceurl.startsWith('/') ? serviceurl : ('/' + serviceurl));
instance.table = new Tabulator("." + containerid + "-table-canvas", {
columns: [
{ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 40, width: 40 },
{ title: "LastColumn", field: "LastColumn", visible: false, headerSort: false }
],
layout: "fitDataFill",
dataTree: true,
movableColumns: false,
dataTreeStartExpanded: instance._pivot.isDataTreeExpand,
dataTreeChildIndent: 15,
dataTreeRowExpanded: function (row, level) {
return __awaiter(this, void 0, void 0, function* () {
var array = [];
var _children = [];
if (instance.datatreeIndex_Width / 70 <= level) {
instance.datatreeIndex_Width = instance.datatreeIndex_Width + 70;
}
Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumns[0].width = instance.datatreeIndex_Width;
Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().tabulatorColumns[0].minWidth = instance.datatreeIndex_Width;
if (instance.dataTreeRowExpandedColumn.length != 0) {
instance.table.setColumns(instance.tabulatorColumns);
instance.EditableTabulatorTitle();
$(".tabulator-frozen").css("width", instance.datatreeIndex_Width);
var Columns = instance.table.getColumns();
for (var c = 0; c < Columns.length; c++) {
var field = Columns[c].getField();
var width = Columns[c]["_column"].width;
$("#" + instance.containerId).find("[tabulator-field = '" + field + "']").css("width", width);
}
}
var parentcolName = instance.pivot.ParentColumnName;
var parentValue = row.getData()[parentcolName];
instance.dataTreeRowExpandedColumn = [];
instance.dataTreeRowExpandedColumn.push({ ColumnName: parentcolName, ColumnValue: parentValue, Level: level });
instance.pivot.ChildColumnValue = parentValue;
yield instance.load_data(instance.table);
setTimeout(function () {
instance.table.options.dataTree = true;
var tabledata = JSON.parse(instance.tableData);
var hasChild = tabledata.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
row.getData()._children = tabledata;
return row.update(row.getData());
}, 1000);
});
},
rowClick: function (e, row) {
},
cellClick: function (e, cell) {
if ($(cell.getElement()).closest('.tabulator-footer').length === 0) {
var Interval = cell["_cell"].column.definition.title;
Unibase.Platform.Analytics.Reports.Tenure.Instance().tenureDetailsTable(Interval);
}
},
placeholder: "No data available",
columnResized: function (column) {
let col = column["_column"].field;
let width = column["_column"].width;
let index = instance.getIndexByAliasName_selectedColumnsArray(col);
instance.selectedColumns[index].Width = width;
},
scrollHorizontal: function () {
$('#tabulatorReportbuilder .tabulator-header').find('.column-dp-menu.show').removeClass('show');
},
dataLoading: function (data) {
if (data && data.length) {
instance.navigationHelper.showLoading();
}
},
dataLoaded: function () {
if (instance.tableData) {
instance.navigationHelper.hideLoading();
}
}
});
var height = $(".report-builder-body").height() - 40 + "px";
instance.table.setHeight(height);
$("#table-canvan").height(height);
return instance.table;
}
getReportData() {
var instance = this;
instance.ReportColumns = [];
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
instance._chartBuilder.pushPivotData();
}
if (instance.TenureReport.length != 0) {
instance.TenureReport;
}
var fromDate = "";
var toDate = "";
var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
if (cf_fromDate != null && cf_toDate != null) {
fromDate = cf_fromDate.toString();
toDate = cf_toDate.toString();
}
else {
fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
}
let repObj = new ReportObject();
repObj.DataListId = instance.DataListId;
repObj.StaticFilter = instance.queryBuilderJson;
repObj.SortColumns = instance.stringifyed_SortColumns;
repObj.Filter = null;
repObj.LinkSubReport = false;
repObj.PivotTypeId = instance._pivot.pivotTypeId;
repObj.IsPivotTree = instance.IsPivotTree;
repObj.TimeInterval = instance.Interval;
repObj.FromDate = fromDate;
repObj.ToDate = toDate;
repObj.IsTreeExpand = instance._pivot.isDataTreeExpand;
repObj.ReportTypeId = instance.reportType;
repObj.TopRecords = instance.topRecords;
if ($("#txt_totalrecords").val() != "") {
repObj.TopRecords = Number($("#txt_totalrecords").val());
}
if (instance.selectedColumns.length > 0) {
for (var i = 0; i < instance.selectedColumns.length; i++) {
var index = instance.selectedColumns.findIndex(x => x.ColumnIndex == i);
let col = new ReportColumn();
col.ColumnValue = Number(instance.selectedColumns[index]["ColumnId"]);
col.ReportColumnName = instance.selectedColumns[index]["ColumnName"];
col.AliasName = instance.selectedColumns[index]["AliasName"];
col.DisplayText = instance.selectedColumns[index]["DisplayText"];
col.DlColumnName = instance.selectedColumns[index]["DlColumnName"];
col.DataListColumnName = instance.selectedColumns[index]["DataListColumnName"];
col.ColumnIndex = instance.selectedColumns[index]["ColumnIndex"];
col.DataType = instance.selectedColumns[index]["DataType"];
col.AggrFuncId = instance.selectedColumns[index]["Aggregation"];
col.SortType = instance.selectedColumns[index]["SortOrder"];
col.SortIndex = instance.selectedColumns[index]["SortIndex"];
col.Isvisible = instance.selectedColumns[index]["Isvisible"];
col.GroupBy = instance.selectedColumns[index]["GroupBy"];
col.IsPrimaryKey = instance.selectedColumns[index]["IsPrimaryKey"];
col.PivotValueSelected = instance.pivot.PivotValue_Selected;
col.ColumnFormat = instance.selectedColumns[index]["ColumnFormat"];
col.YearComparisonType = instance.selectedColumns[index]["YearComparisonType"];
col.DistinctOn = instance.selectedColumns[index]["DistinctOn"];
col.IsPivotColumn = instance.selectedColumns[index]["IsPivotColumn"];
col.IsPivotAggrColumn = instance.selectedColumns[index]["IsPivotAggrColumn"];
col.IsPivotTableCol = instance.selectedColumns[index]["IsPivotTableCol"];
col.IsDownload = instance.selectedColumns[index]["IsDownload"];
col.TableAggrTypeId = instance.selectedColumns[index]["TableAggrTypeId"];
col.IsNumFormatting = instance.selectedColumns[index]["IsNumFormatting"];
col.IsRowTotal = instance.selectedColumns[index]["IsRowTotal"];
col.PivotTableAggrTypeId = instance.selectedColumns[index]["PivotTableAggrTypeId"];
if (col.ColumnFormat && col.ColumnFormat.toLowerCase() == "default") {
col.ColumnFormat = '';
}
instance.reportColumns_Array(col);
}
}
repObj.ReportColumns = instance.ReportColumns;
return repObj;
}
load_data(table) {
return __awaiter(this, void 0, void 0, function* () {
var instance = this;
var repObj = instance.getReportData();
yield instance.reportManager.getTableData(repObj).then(function (response) {
instance.navigationHelper.hideLoading();
if (response.status == Unibase.Data.Status.Success) {
if (response.result != "") {
var res = JSON.parse(response.result);
instance.tableData = res.Data;
if (instance.dataTreeRowExpandedColumn.length == 0) {
if (instance.tableData) {
instance.table.setData(instance.tableData);
}
instance.groupbyData();
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
if (instance.TenureReport.length == 0) {
if (res.Data != "") {
var data = JSON.parse(res.Data);
instance._chartBuilder.ChartData = data;
instance._chartBuilder.chart_dataSet();
}
}
}
}
else {
}
}
else {
MessageHelper.Instance().showError("No data found", "div_ReportBuilderErrorMessage");
return false;
}
}
else {
MessageHelper.Instance().showError(response.message, "div_ReportBuilderErrorMessage");
return false;
}
});
instance.loadTableData = 1;
});
}
groupbyData() {
var instance = this;
var groupBy_Category = [];
for (var i = 0; i < instance.selectedColumns.length; i++) {
var data = instance.selectedColumns[i];
if (data.GroupByCategory) {
if (jQuery.inArray(data.AliasName, groupBy_Category) == -1) {
groupBy_Category.push(data.AliasName);
}
}
}
if (instance.datatreeIndex_Width == undefined) {
instance.datatreeIndex_Width = 70;
}
var tableData = [];
if (instance.tableData != "") {
tableData = JSON.parse(instance.tableData);
}
else {
$(".tabulator-loader").remove();
}
let sel_Col = instance.selectedColumns;
var ScrollPosition = $(".tabulator-tableHolder").scrollTop();
var autoNumFormatter = function (cell) {
var row = cell.getRow();
var rowIndex = row.getPosition(false);
return (rowIndex + 1);
};
instance.tabulatorColumns = [];
if (sel_Col.length != 0) {
instance.tabulatorColumns.push({ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 50, width: 60, hozAlign: 'right' });
let btmCal_noneArray = [];
let IsAggr = false;
var tableData;
if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot) {
instance.pivotData();
}
else if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval) {
instance.tenureData();
}
else if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
instance.pivotData();
tableData.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
}
else {
if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
tableData.filter(x => x.haschild == true).forEach(c => c["_children"] = []);
}
for (var i = 0; i < sel_Col.length; i++) {
let sCol = sel_Col[i];
let Aggr = sCol.TableAggrTypeId;
let AggrName = instance.getAggregationName(Aggr);
const colHozAlign = instance.getColHorizontalAlign(sCol);
if (instance.DataSourceId == 0 || instance.DataSourceId == Platform.DataSources.Enums.DataSource.Sql || instance.DataSourceId == Platform.DataSources.Enums.DataSource.MySql) {
instance.tabulatorColumns[sCol.ColumnIndex + 1] =
{ title: sCol.DisplayText, field: sCol.AliasName.toLowerCase(), visible: sCol.Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, bottomCalc: AggrName, bottomCalcParams: { precision: 2 }, hozAlign: colHozAlign };
}
else {
instance.tabulatorColumns[sCol.ColumnIndex + 1] =
{ title: sCol.AliasName, field: sCol.AliasName, visible: sCol.Isvisible, editableTitle: instance.EditableTitle, headerSort: instance.HeaderSort, bottomCalc: AggrName, bottomCalcParams: { precision: 2 }, hozAlign: colHozAlign };
}
if (sCol.Width == undefined) {
delete instance.tabulatorColumns[sCol.ColumnIndex + 1].width;
}
if (AggrName != "none") {
IsAggr = true;
}
else {
delete instance.tabulatorColumns[sCol.ColumnIndex + 1].bottomCalc;
btmCal_noneArray.push({ ColumnName: sCol.ColumnName });
}
}
}
instance.tabulatorColumns.push({ title: "LastColumn", field: "LastColumn", visible: false, headerSort: instance.HeaderSort });
instance.table.options.dataTree = false;
instance.table.setColumns(instance.tabulatorColumns);
if (instance.reportid != 0 && !instance.isCharttoTable) {
instance.getSubReports(instance.reportid);
}
if (instance.dataTreeRowExpandedColumn.length == 0) {
instance.table.options.dataTree = true;
instance.table.setData(tableData);
}
if (groupBy_Category.length == 0) {
instance.table.options.dataTree = false;
instance.table.setGroupBy("");
}
else {
instance.table.options.dataTree = false;
instance.table.setGroupBy(groupBy_Category);
}
for (i = 0; i < btmCal_noneArray.length; i++) {
$(".tabulator-calcs-holder").find("[tabulator-field='" + btmCal_noneArray[i].ColumnName + "']").text("");
}
if (IsAggr == false) {
$("#tabulatorReportbuilder .tabulator-footer").addClass("hidden");
}
else {
if (groupBy_Category.length == 0) {
$("#tabulatorReportbuilder .tabulator-footer").removeClass("hidden");
}
}
instance.EditableTabulatorTitle();
}
else {
instance.table.clearData();
}
$(".tabulator-tableHolder").scrollTop(ScrollPosition);
}
getColHorizontalAlign(col) {
let colHozAlign = '';
if (col.DataType == Reports.Enums.DataType.decimal || col.DataType == Reports.Enums.DataType.int32 || col.DataType == Reports.Enums.DataType.int64) {
colHozAlign = 'right';
}
else if (col.DataType == Reports.Enums.DataType.date || col.DataType == Reports.Enums.DataType.dateTime) {
colHozAlign = 'center';
}
else {
colHozAlign = 'left';
}
return colHozAlign;
}
getTreeViewData(reportresponse) {
var instance = this;
if (reportresponse.result.ReportJsonData.Result.Data != "") {
let parentrecords = [];
let reportjsondata = JSON.parse(reportresponse.result.ReportJsonData.Result.Data);
parentrecords = reportjsondata.filter(function (col) {
return col.parentid == reportresponse.result.ReportInfo.PivotValue;
});
if (parentrecords.length == 0) {
parentrecords = reportjsondata;
}
for (var p = 0; p < parentrecords.length; p++) {
let childrecords = _children(parentrecords[p].childid);
if (childrecords != undefined) {
parentrecords[p]["_children"] = [];
parentrecords[p]._children = childrecords;
}
}
function _children(childid) {
let childrecords = instance.gettreeChildRecords(reportjsondata, childid);
if (childrecords.length > 0) {
for (var c = 0; c < childrecords.length; c++) {
let subchilds = _children(childrecords[c].childid);
if (subchilds != undefined) {
childrecords[c]["_children"] = [];
childrecords[c]._children = subchilds;
}
}
return childrecords;
}
}
return parentrecords;
}
}
gettreeChildRecords(reportjsondata, childid) {
return reportjsondata.filter(function (col) {
return col.parentid == childid;
});
}
getSubReports(reportid) {
var instance = this;
instance.reportManager.getSubReports(reportid).then(function (response) {
if (response.status == Unibase.Data.Status.Success && response.result && response.result.length) {
var subreportdata = response.result;
instance.subreportdata = subreportdata;
if (subreportdata.length > 0) {
var subdata = subreportdata.find(s => s.RowClick == true);
if (subdata) {
var hideIcon = function (cell, formatterParams, onRendered) {
return "
";
};
instance.table.addColumn({ formatter: hideIcon, width: 5, title: "", headerSort: false }, true);
}
}
}
});
}
changeAliasName_table(columnId, aliasName) {
var instance = this;
let lowercase_ColumnName = aliasName;
if (instance.DataSourceId == 0 || instance.DataSourceId == Platform.DataSources.Enums.DataSource.Sql || instance.DataSourceId == Platform.DataSources.Enums.DataSource.MySql) {
lowercase_ColumnName = aliasName.toLowerCase();
}
let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
let colName = instance.selectedColumns[Index].ColumnName;
let _aliasText = $("#txtAliasName_" + aliasName).val();
let changed_aliasText = _aliasText.trim().toLocaleLowerCase();
let sortHtml = "";
if (changed_aliasText != "") {
if (Index > -1) {
if (changed_aliasText.toLocaleLowerCase() == "pk_id") {
$("#txtAliasName_" + aliasName).val(colName);
return MessageHelper.Instance().showError('Can not change pk_id as aliasname', 'div_ReportBuilderErrorMessage');
}
if (changed_aliasText.indexOf(' ') >= 0) {
$("#txtAliasName_" + aliasName).val(colName);
return MessageHelper.Instance().showError('Please Remove Spaces Form "' + changed_aliasText + '"', 'div_ReportBuilderErrorMessage');
}
var sCols = instance.selectedColumns.find(s => s.AliasName == changed_aliasText) ? true : false;
if (sCols) {
$("#txtAliasName_" + aliasName).val(colName);
return instance.error(changed_aliasText);
}
$("#selectedColumns").find("#column_" + colName + "_block").attr("id", "column_" + _aliasText + "_block");
$("#column_" + colName + "_block").find(".dsl-block-name").attr("data-report-aliasname", changed_aliasText);
$("#" + aliasName + "_EyeIcon").attr("id", changed_aliasText + "_EyeIcon");
$("#" + changed_aliasText + "_EyeIcon").attr("onclick", "Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().showOrHideColumn_table(" + columnId + ",'" + changed_aliasText + "')");
$("#txtAliasName_" + aliasName).attr("onchange", "Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().changeAliasName_table(" + columnId + ",'" + changed_aliasText + "')");
$("#txtAliasName_" + aliasName).attr("id", "txtAliasName_" + changed_aliasText);
instance.selectedColumns[Index].AliasName = changed_aliasText;
if (instance.SearchColumns) {
let searchColumns = instance.SearchColumns.split('|');
let srchIdx = searchColumns.indexOf(aliasName);
if (srchIdx != -1) {
searchColumns[srchIdx] = changed_aliasText;
instance.SearchColumns = searchColumns.join("|");
}
}
this._chartBuilder.loadSortColumnsSelect2();
this._chartBuilder.loadDynamicFilterSelect(this.showDynamicFilters);
this._chartBuilder.loadSearchSelect2();
let sortIdx = this.SortColumns.findIndex(x => x.DisplayText == aliasName);
let dyfilIdx = this.dynamicFilters.findIndex(x => x.IsFilterableColumn == aliasName);
if (sortIdx != -1)
this.SortColumns[sortIdx].DisplayText = changed_aliasText;
if (dyfilIdx != -1)
this.dynamicFilters[dyfilIdx].IsFilterableColumn = changed_aliasText;
for (var i = 0; i < this.SortColumns.length; i++) {
let selCol = this.selectedColumns.find(x => x.AliasName == this.SortColumns[i].DisplayText);
if (selCol)
sortHtml += this._reportBuilderTemplate.loadSortSelect2Column(selCol.ColumnId, selCol.AliasName, selCol.DataType);
}
$("#sort_selected_columns").html(sortHtml);
this.stringifyed_SortColumns = this.getSortColumnsStringify();
$("#dynamic-list-group-wrapper").empty();
for (var i = 0; i < this.dynamicFilters.length; i++) {
let currentFilter = this.dynamicFilters[i];
let dyfilterHtml = "";
let selCol = this.selectedColumns.find(x => x.AliasName == currentFilter.IsFilterableColumn);
if (selCol)
dyfilterHtml += this._reportBuilderTemplate.loadDynamicFilterColumn(selCol.ColumnId, selCol.AliasName, selCol.DataType);
$("#dynamic-list-group-wrapper").append(dyfilterHtml);
if (selCol && selCol.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
$(".dynamic-filter-icon-" + parseInt(selCol.ColumnId)).addClass("hidden");
if (currentFilter.IsDefault)
$("#dynamicfilter-defaultdate_" + currentFilter.IsFilterableColumn).prop("checked", true);
else if (currentFilter.IsPartition)
$("#chk_ispartition_" + currentFilter.IsFilterableColumn).prop("checked", true);
}
}
instance.load_data(instance.table);
}
}
else {
$("[tabulator-field = '" + lowercase_ColumnName + "']").find(".tabulator-title-editor").val(colName);
}
}
changeDisplayText_table(columnId, aliasName) {
var instance = this;
let displayText = '';
let isPivotTable = false;
const containerEl = $('#tabulatorReportbuilder');
if (containerEl.find('.pvtUi').length !== 0) {
isPivotTable = true;
}
if (isPivotTable) {
displayText = containerEl.find(`#pvtDisplayTextInput_${aliasName}`).val().toString();
}
else {
displayText = $(`[tabulator-field='${aliasName}'] .tabulator-title-editor`).val().toString();
}
if (displayText) {
let sIndex = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
if (sIndex > -1) {
instance.selectedColumns[sIndex].DisplayText = displayText;
if (isPivotTable) {
containerEl.find(`#pvtAxisLabel_${aliasName}`).contents().get(0).nodeValue = displayText;
}
else {
$(".tabulator-col-title").find("#DisplayText_" + aliasName).val(displayText);
$(".tabulator-col-title").find("#DisplayText_" + aliasName).focus();
}
$("#selectedColumns #column_" + aliasName + "_block").find(".dsl-block-name").text(displayText);
}
let xIdx = this._chartBuilder.xaxisColumns.findIndex(x => x.AliasName == aliasName);
if (xIdx > -1) {
this._chartBuilder.xaxisColumns[xIdx].DisplayText = displayText;
}
let yIdx = this._chartBuilder.yaxisColumns.findIndex(x => x.AliasName == aliasName);
if (yIdx > -1) {
this._chartBuilder.yaxisColumns[yIdx].DisplayText = displayText;
}
let cbcIdx = this._chartBuilder.chartBaseColumns.findIndex(x => x.AliasName == aliasName);
if (cbcIdx > -1) {
this._chartBuilder.chartBaseColumns[cbcIdx].DisplayText = displayText;
}
let cscIdx = this._chartBuilder.ChartSelectedColumns.findIndex(x => x.AliasName == aliasName);
if (cscIdx > -1) {
this._chartBuilder.ChartSelectedColumns[cscIdx].DisplayText = displayText;
}
}
}
showOrHideColumn_table(ColumnId, AliasName) {
var instance = this;
let Index = instance.getIndexByAliasName_selectedColumnsArray(AliasName);
let col = instance.selectedColumns[Index];
if (instance.selectedColumns[Index].Isvisible == true) {
instance.selectedColumns[Index].Isvisible = false;
var { hiddenColumnHtml } = instance.getSelectedColumnHtml(col, Index, '');
$("#selectedColumns_hidden").append(hiddenColumnHtml);
$('#column_' + AliasName + '_block').addClass("d-none").find('#ShowOrHideColumn').text("Show Column");
if (instance.selectedColumns[Index].DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime)
instance.selectedColumns[Index].ColumnFormat = "";
}
else {
$('#' + AliasName + '_EyeIcon').addClass('d-none');
instance.selectedColumns[Index].Isvisible = true;
$('#column_' + AliasName + '_block').removeClass("d-none").find('#ShowOrHideColumn').text("Hide Column");
$('#column_' + AliasName + '_block_hidden').remove();
if (instance.selectedColumns[Index].DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime)
instance.selectedColumns[Index].ColumnFormat = "Default";
}
instance.load_data(instance.table);
}
updateSelectedColumnIndex() {
const instance = this;
$('#selectedColumns .dsl-block').each(function (index, item) {
const itemName = $(item).attr('id').slice(7).replace('_block', '');
const colIndex = instance.selectedColumns.findIndex(x => x.AliasName == itemName);
if (colIndex > -1) {
instance.selectedColumns[colIndex].ColumnIndex = index;
}
});
}
isDistinct(columnId, aliasName) {
var instance = this;
let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
if (index > -1) {
if ($("#isDistinct_" + columnId).prop("checked") == true) {
instance.selectedColumns[index].DistinctOn = true;
}
else {
instance.selectedColumns[index].DistinctOn = false;
}
}
}
changeSortBy_table(columnId, aliasName, sortType) {
var instance = this;
if (sortType == 'Asc') {
instance.table.setSort(aliasName, "asc");
$("#dsl_column_" + aliasName + " .sort-icon").removeClass('la-sort-down');
$("#dsl_column_" + aliasName + " .sort-icon").addClass('la-sort-up');
}
else {
instance.table.setSort(aliasName, "desc");
$("#dsl_column_" + aliasName + " .sort-icon").addClass('la-sort-down');
$("#dsl_column_" + aliasName + " .sort-icon").removeClass('la-sort-up');
}
let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
instance.selectedColumns[index].SortOrder = sortType;
let sortcolindex = instance.getIndexByDisplayText_sortColumnsArray(aliasName);
if (instance.SortColumns.length != 0) {
instance.SortColumns[sortcolindex].SortOrder = sortType;
}
if (instance.stringifyed_SortColumns) {
let ss = JSON.parse(instance.stringifyed_SortColumns);
if (ss.length > 0) {
let sindex = ss.findIndex(s => s.Name == aliasName);
ss[sindex].Order = sortType;
}
instance.stringifyed_SortColumns = JSON.stringify(ss);
}
instance.load_data(instance.table);
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
var cindex = instance._chartBuilder.getIndexByDisplayText_ChartSelectedColumns(aliasName);
if (cindex > -1) {
instance._chartBuilder.ChartSelectedColumns[cindex].SortOrder = sortType;
instance._chartBuilder.ChartSelectedColumns[cindex].SortIndex = instance.SortColumns.length;
}
instance._chartBuilder.chartPreview(instance._chartBuilder.ChartTypeName, instance._chartBuilder.ChartTypeId);
}
}
changeAggregation_table(aliasName, aggrValue, type) {
var instance = this;
let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
if (type == 1 || instance.reportType == Reports.Enums.ReportType.Chart)
instance.selectedColumns[Index].Aggregation = aggrValue;
else
instance.selectedColumns[Index].TableAggrTypeId = aggrValue;
if (instance.reportType == Analytics.Reports.Enums.ReportType.Chart) {
let CIndex = instance.getIndexByAliasName_chartSelectedColumnsArray(aliasName);
if (CIndex > -1)
instance._chartBuilder.ChartSelectedColumns[CIndex].Aggregation = aggrValue;
if (aggrValue == Unibase.Platform.Analytics.Reports.Enums.AggregationType.month || aggrValue == Unibase.Platform.Analytics.Reports.Enums.AggregationType.year) {
let colName = instance.selectedColumns[CIndex].ColumnName;
let colId = instance.selectedColumns[CIndex].ColumnValue;
}
instance.load_data(instance.table);
instance._chartBuilder.chartPreview(instance._chartBuilder.ChartTypeName, instance._chartBuilder.ChartTypeId);
}
else {
instance.load_data(instance.table);
}
}
changeColumnFormat_table(DisplayText, ColumnFormat) {
let format;
if (ColumnFormat == "Default")
format = "Default";
if (ColumnFormat == "No Format")
format = "No Format";
else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.hhmmss)
format = "hh:mi:ss";
else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.hhmmssAM)
format = "hh:mi:ss AM";
else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmmss)
format = "dd/mm/yyyy hh:mi:ss";
else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmm)
format = "dd/mm/yyyy hh:mi";
else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.ddmmyyyyhhmmssAM)
format = "dd/mm/yyyy hh:mi:ss AM";
else if (ColumnFormat == Unibase.Platform.Analytics.Enums.DateFormat.momddyyyyhhmmssAM)
format = "Mon dd, yyyy hh:mi:ss AM";
else
format = ColumnFormat;
var instance = this;
let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
instance.selectedColumns[Index].ColumnFormat = format;
instance.load_data(instance.table);
}
changeColumnIndex_table(DisplayText) {
var instance = this;
let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
let selCols = instance.selectedColumns;
let ColIndex = 0;
for (var i = 0; i < selCols.length; i++) {
if (selCols[i].ColumnIndex > ColIndex) {
ColIndex = selCols[i].ColumnIndex;
}
}
if (selCols.length == 1) {
ColIndex = 0;
}
else {
ColIndex = ColIndex + 1;
}
instance.selectedColumns[Index].ColumnIndex = ColIndex;
}
IsContactColumn(columnId, aliasName) {
var instance = this;
let selected_Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
let IsContactColumn = instance.selectedColumns[selected_Index].IsContactColumn;
instance.selectedColumns[selected_Index].IsContactColumn = !IsContactColumn;
}
IsFilterableColumn_table(columnId, aliasName, dataTypeId) {
var instance = this;
let selected_Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
if (dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
$("#DropDown_IsFilterable_" + aliasName).removeClass("hidden");
selected_Index > -1 && (instance.selectedColumns[selected_Index].IsFilterable = true);
}
if (selected_Index == -1) {
Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().dataListColumnName = aliasName;
selected_Index = this.datalistColumnsResponseData.findIndex(x => { return x.AliasName == aliasName; });
}
Unibase.Platform.Analytics.Components.ReportViewer.Instance().navigationHelper.popup(selected_Index, "", Unibase.Platform.Analytics.Reports.DynamicFilter.Instance(), null, Platform.Helpers.Size.Auto);
}
loadFormats(DataType, ColId, DisplayText) {
var instance = this;
var html = "";
if (instance._columnFormat.loadFormats(DataType).length > 0) {
var formats = instance._columnFormat.loadFormats(DataType);
for (var i = 0; i < formats.length; i++) {
html += `
` + formats[i].format + ` `;
}
}
return html;
}
removeSelectedColumn_table(ColumnId, AliasName) {
var instance = this;
var isChartBaseColumn = false;
var cbcIndex = instance._chartBuilder.chartBaseColumns.findIndex(csc => csc.AliasName === AliasName);
let cscIdx = instance._chartBuilder.ChartSelectedColumns.findIndex(csc => csc.AliasName === AliasName);
var XIndex = instance._chartBuilder.xaxisColumns.findIndex(x => x.AliasName === AliasName);
var YIndex = instance._chartBuilder.yaxisColumns.findIndex(x => x.AliasName === AliasName);
var GIndex = instance._chartBuilder.groupColumns.findIndex(x => x.AliasName === AliasName);
var LCIndex = instance._chartBuilder.lineChartColumns.findIndex(csc => csc.AliasName === AliasName);
if (cbcIndex != -1) {
instance._chartBuilder.chartBaseColumns.splice(cbcIndex, 1);
isChartBaseColumn = true;
if (cscIdx != -1 && XIndex == -1 && YIndex == -1 && GIndex == -1 && LCIndex == -1) {
instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
}
}
if (XIndex != -1 && !isChartBaseColumn) {
instance._chartBuilder.xaxisColumns.splice(XIndex, 1);
if (YIndex == -1 && GIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
}
if (YIndex != -1 && !isChartBaseColumn) {
instance._chartBuilder.yaxisColumns.splice(YIndex, 1);
if (XIndex == -1 && GIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
}
if (GIndex != -1 && !isChartBaseColumn) {
instance._chartBuilder.groupColumns.splice(GIndex, 1);
if (XIndex == -1 && YIndex == -1 && LCIndex == -1 && cbcIndex == -1 && cscIdx != -1)
instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
}
if (LCIndex != -1 && !isChartBaseColumn) {
instance._chartBuilder.lineChartColumns.splice(LCIndex, 1);
if (XIndex == -1 && YIndex == -1 && GIndex == -1 && cbcIndex == -1 && cscIdx != -1)
instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
}
if (LCIndex == -1 && GIndex == -1 && YIndex == -1 && XIndex == -1 && cbcIndex == -1 && cscIdx != -1) {
instance._chartBuilder.ChartSelectedColumns.splice(cscIdx, 1);
}
var SC_Index = instance.getIndexByAliasName_selectedColumnsArray(AliasName);
let isGroupByCategory = this.selectedColumns[SC_Index].GroupByCategory;
if (SC_Index != -1) {
let dyfil = this.dynamicFilters.find(x => x.IsFilterableColumn == AliasName);
let srtCol = this.SortColumns.find(x => x.DisplayText === AliasName);
if (dyfil)
return MessageHelper.Instance().showError("Please remove the dynamic filter associated with this column, before trying to remove the column", 'div_ReportBuilderErrorMessage');
if (instance.SearchColumns) {
let srchCol = instance.SearchColumns.split("|");
let srchIdx = srchCol.indexOf(AliasName);
if (srchIdx != -1)
return MessageHelper.Instance().showError(`${this.selectedColumns[SC_Index].AliasName} is used in search column, please remove from search columns and try again`, 'div_ReportBuilderErrorMessage');
}
if (srtCol && !isGroupByCategory && instance.reportType != Reports.Enums.ReportType.Chart)
return MessageHelper.Instance().showError(`${this.selectedColumns[SC_Index].AliasName} is used in sort column, please remove from sort column and try again`, 'div_ReportBuilderErrorMessage');
else if (instance.reportType == Reports.Enums.ReportType.Chart && srtCol)
return;
if (isGroupByCategory && event.target.closest("#categories_selected_columns")) {
this.selectedColumns[SC_Index].GroupByCategory = false;
$("#categories_selected_columns #dsl_column_" + AliasName).remove();
$("#sort_selected_columns #dsl_column_" + AliasName).remove();
this.removeAndUpdateStringfiedSortColumns(AliasName);
instance.load_data(instance.table);
return "";
}
}
if (!isChartBaseColumn) {
instance.selectedColumns.splice(SC_Index, 1);
instance.table.deleteColumn(AliasName);
instance.loadSelectedDataListColumns();
}
var GTableIndex = instance.groupBy_Category.findIndex(x => x.AliasName === AliasName);
if (GTableIndex != -1) {
instance.groupBy_Category.splice(GTableIndex, 1);
instance.setSelectOption('groupby_select');
instance.groupbyData();
}
instance.removeAndUpdateStringfiedSortColumns(AliasName);
instance._chartBuilder.enableOrDisableChartIcons();
var sindex = instance.SortColumns.findIndex(function (s) {
return AliasName == s.AliasName;
});
if (sindex > -1) {
instance.removeSelectedSortColumn_table(ColumnId, AliasName);
}
else {
instance.load_data(instance.table);
}
this._chartBuilder.loadSortColumnsSelect2();
this._chartBuilder.loadDynamicFilterSelect(instance.showDynamicFilters);
this._chartBuilder.loadSearchSelect2();
this._pivot.loadPivotSelect2s();
}
removeSelectedSortColumn_table(columnId, aliasName) {
var instance = this;
let sortIndex = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
instance.selectedColumns[sortIndex].SortOrder = "none";
var index = instance.SortColumns.findIndex(function (s) {
return aliasName == s.DisplayText;
});
instance.SortColumns.splice(index, 1);
instance.stringifyed_SortColumns = "";
if (instance.SortColumns.length != 0) {
var _sort = [];
for (var i = 0; i < instance.SortColumns.length; i++) {
instance.SortColumns[i].SortIndex = i;
let s = instance.SortColumns[i];
_sort.push({ Name: s.DisplayText, Order: s.SortOrder });
}
instance.stringifyed_SortColumns = JSON.stringify(_sort);
}
instance.load_data(instance.table);
}
setSelectOption(selectId) {
$('#' + selectId).prop('selectedIndex', 0);
$('#' + selectId).select2({
allowClear: true
});
$('#select2-' + selectId + '-container .select2-selection__clear').hide();
}
loadInstalledApps() {
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete';
AutoCompleteHelper.getHelper().Create("#InstalledApp_AutoComplete", "#hfAutoComplete_InstalledApp", url, null);
AutoCompleteHelper.getHelper().Create("#dependecyapps", "#hfAutoCompleteId_dependency", url, null);
}
loadConnectedApps() {
Unibase.Platform.Apps.Managers.AppManager.Instance().getInstalledApps().then((res) => {
this.connectedAppsData = [];
for (var i = 0; i < res.result.length; i++) {
this.connectedAppsData.push({ id: res.result[i].InstalledAppId, text: res.result[i].AppTitle });
}
$("#connectedapps").select2({
placeholder: 'Select connected apps',
data: this.connectedAppsData,
});
});
}
loadAddedColumnFilter() {
let dataOptions = [
{ id: 1, text: "All added columns", selected: true },
{ id: 2, text: "Contact columns" },
{ id: 3, text: "PrimaryKey columns" }
];
$("#filter-by").select2({
placeholder: 'Filter By',
data: dataOptions
});
}
loadTableToggleButtons() {
var instance = this;
$("#PivotIcon").click(function () {
var DataListId = instance.DataListId;
$("#DatalistColumns_Search").val("");
instance._pivot.load(0, null, null);
});
}
reportRoleSetting() {
var instance = this;
instance.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Reports.ReportRoleSettings.Instance(), null, Platform.Helpers.Size.Medium);
}
EditableTabulatorTitle() {
var instance = this;
if (instance.EditableTitle == true) {
let sel_Col = instance.selectedColumns;
var len = sel_Col.length;
for (var i = 0; i < len; i++) {
let colId = sel_Col[i].ColumnId;
let aliasName = sel_Col[i].AliasName.replace(" ", "");
let colName = sel_Col[i].ColumnName;
let DataType = sel_Col[i].DataType;
let html = "";
if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime || Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) {
html = `
`;
}
else {
html = `
`;
}
if ($('#tabulatorReportbuilder .pvtUi').length !== 0) {
const pivotTableEl = $('#tabulatorReportbuilder .pvtUi');
const columnEl = pivotTableEl.find(`.pvtAttr:contains(${aliasName.toLocaleLowerCase()})`);
columnEl.find('.column-dropdown').remove();
columnEl.append(html);
columnEl.find('.dropdown-menu.open-left-side').removeClass('open-left-side').addClass('open-right-side');
if (sel_Col[i].Isvisible == false) {
columnEl.find("#ShowOrHideColumn").text("Show Column");
columnEl.find("#DropDown_Eye_EyeSlash").removeClass("fa-eye-slash").addClass("fa-eye");
}
}
else {
const tabulatorEl = $('#tabulatorReportbuilder');
tabulatorEl.find("[tabulator-field='" + aliasName.toLocaleLowerCase() + "']").find(".tabulator-col-title").prepend(html);
tabulatorEl.find("[tabulator-field='" + aliasName.toLocaleLowerCase() + "']").find(".tabulator-col-title").html(html).append(`
`);
if (sel_Col[i].Isvisible == false) {
tabulatorEl.find("[tabulator-field='" + aliasName + "']").find("#ShowOrHideColumn").text("Show Column");
tabulatorEl.find("[tabulator-field='" + aliasName + "']").find("#DropDown_Eye_EyeSlash").removeClass("fa-eye-slash").addClass("fa-eye");
}
}
}
}
}
traverseRows(tbl, action) {
var instance = this;
var tblRows = tbl.getRows();
tblRows.forEach(function (row) {
if (row.getData()._children != undefined) {
instance.findChildren(row, action);
}
});
}
bindAggregations(aggregations, aggrval, aliasName, type, id) {
let html = "";
if (aggregations) {
for (var i = 0; i < aggregations.length; i++) {
let Aggregation = aggregations[i];
if (i == 0) {
aggrval = Aggregation.Value;
}
html += `
` + Aggregation.AggrType + ` `;
}
$('#' + id).find(".dropdown-menu").html(html);
$("#dsl_column_" + aliasName).find('#' + id).find(".dropdown-menu").html(html);
}
return aggrval;
}
tabulatorColumnMoreIcon_Click(elementId, aliasName, dataTypeId, event) {
if (event) {
event.stopPropagation();
}
var instance = this;
let html = "";
var Aggr, tableaggr = 0;
var Sortby = "none";
var ColumnFormat = "";
let isDistinct = false;
let displayText = "";
let isDownload = false;
var aggregations = instance.getAggregationsByDataType(dataTypeId);
Aggr = instance.bindAggregations(aggregations, Aggr, aliasName, 1, "dropdown_Aggregation_" + aliasName);
tableaggr = instance.bindAggregations(aggregations, Aggr, aliasName, 2, "dropdown_Table_Aggregation_" + aliasName);
if (dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
var formathtml = "";
formathtml = instance.loadFormats(dataTypeId, elementId, aliasName);
$('#ColumnFormat_' + aliasName).find(".dropdown-menu").html(formathtml);
$("#dsl_column_" + aliasName).find('#ColumnFormat_' + aliasName).find(".dropdown-menu").html(formathtml);
}
else {
$('#ColumnFormat_' + aliasName).remove();
$("#dsl_column_" + aliasName).find('#ColumnFormat_' + aliasName).remove();
}
let Index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
let column = instance.selectedColumns[Index];
Aggr = column.Aggregation;
Sortby = column.SortOrder;
aliasName = column.AliasName;
ColumnFormat = column.ColumnFormat == "" ? "Default" : column.ColumnFormat;
isDistinct = column.DistinctOn;
isDownload = column.IsDownload;
displayText = column.DisplayText;
if (column.DataType == Reports.Enums.DataType.int32 || column.DataType == Reports.Enums.DataType.int64 || column.DataType == Reports.Enums.DataType.decimal) {
$(event.currentTarget).closest(".dropdown.column-dropdown").find(".isrowtotal").removeClass("hidden");
$(event.currentTarget).closest(".dropdown.column-dropdown").find(".isnumformatting").removeClass("hidden");
}
else if (column.DataType == Reports.Enums.DataType.string) {
$(event.currentTarget).closest(".dropdown.column-dropdown").find(".isimageurl").removeClass("hidden");
}
if (isDistinct)
$("#isDistinct_" + elementId).prop("checked", true);
else
$("#isDistinct_" + elementId).prop("checked", false);
if (isDownload)
$("#isDownload_" + elementId).prop("checked", true);
else
$("#isDownload_" + elementId).prop("checked", false);
if (column.IsNumFormatting)
$("#isNumFormatting_" + elementId).prop("checked", true);
else
$("#isNumFormatting_" + elementId).prop("checked", false);
if (column.IsImageUrl)
$("#isimageurl_" + elementId).prop("checked", true);
else
$("#isimageurl_" + elementId).prop("checked", false);
let grpby = $("#groupby_select").val();
if (jQuery.inArray(elementId.toString(), grpby) != -1) {
$('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").removeClass("show-on-hover");
$('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "not-allowed");
}
else {
$('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").addClass("show-on-hover");
$('#dropdown_Aggregation_' + aliasName).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "pointer");
}
let IsFilterable = column.IsFilterable;
if (IsFilterable == true)
$("#DropDown_IsFilterable_" + aliasName).removeClass('hidden');
else
$("#DropDown_IsFilterable_" + aliasName).addClass('hidden');
let IsPrimaryKey = column.IsPrimaryKey;
if (IsPrimaryKey == true)
$("#DropDown_IsPrimaryKey_" + aliasName).removeClass('hidden');
else
$("#DropDown_IsPrimaryKey_" + aliasName).addClass('hidden');
let IsContactColumn = column.IsContactColumn;
if (IsContactColumn == true)
$("#DropDown_IsContactColumn_" + aliasName).removeClass('hidden');
else
$("#DropDown_IsContactColumn_" + aliasName).addClass('hidden');
let IsAggregation = column.Aggregation;
if (IsAggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
$("#dropdown_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + IsAggregation).addClass("selected");
else
$("#dropdown_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + IsAggregation).addClass("selected");
let tableAggrTypeId = column.TableAggrTypeId;
if (tableAggrTypeId == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
$("#dropdown_Table_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + tableAggrTypeId).addClass("selected");
else
$("#dropdown_Table_Aggregation_" + aliasName + "_Aggr_" + aliasName + "_" + tableAggrTypeId).addClass("selected");
let IsSortBy = column.SortOrder;
if (IsSortBy == "Asc") {
$("#SortOrder_" + elementId + "_Asc").addClass('selected');
$("#SortOrder_" + elementId + "_Desc").removeClass('selected');
}
else if (IsSortBy == "Desc") {
$("#SortOrder_" + elementId + "_Desc").addClass('selected');
$("#SortOrder_" + elementId + "_Asc").removeClass('selected');
}
else {
$("#SortOrder_" + elementId + "_Asc").addClass('selected');
}
let format = instance._columnFormat.loadFormats(dataTypeId).find(x => x.format == ColumnFormat);
if (format != undefined) {
$("#" + instance.containerId).find(".Format_" + aliasName + "_" + format.id).addClass("selected");
}
if ($('#tabulatorReportbuilder .pvtUi').length !== 0) {
$(`.column-dp-menu.show`).not(`.dropdown-menu_${elementId}`).removeClass('show');
$(`.column-dp-menu.dropdown-menu_${elementId}`).toggleClass('show');
return;
}
for (var i = 0; i == Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
$(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
$(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
break;
}
}
$($(".table-wrap .tabulator-col:visible")[1]).find('ul.dropdown-menu .dropdown-menu').removeClass('open-left-side').addClass('open-right-side');
$($(".table-wrap .tabulator-col:visible")[2]).find('ul.dropdown-menu .dropdown-menu').removeClass('open-left-side').addClass('open-right-side');
if (event) {
instance.setColumnDpMenuPosition(event);
}
}
setColumnDpMenuPosition(event) {
event.stopPropagation();
const targetEl = $(event.currentTarget);
if (targetEl.siblings('.column-dp-menu').hasClass('show')) {
targetEl.siblings('.column-dp-menu').removeClass('show');
}
else {
$('#tabulatorReportbuilder .tabulator-header').find('.column-dp-menu.show').removeClass('show');
const elLeftPos = targetEl.offset().left - $('#tabulatorReportbuilder').offset().left;
const headerHeight = $('#tabulatorReportbuilder .tabulator-header').outerHeight(true);
targetEl.siblings('.column-dp-menu').css({ position: 'fixed', top: headerHeight, left: elLeftPos }).addClass('show').attr('onclick', 'event.stopPropagation();');
}
}
loadLeftNav() {
var instance = this;
let html = instance._reportBuilderTemplate.loadLeftNav();
$("#DefaultLeftNav_body").html(html);
}
loadSorting(elementId, displayText) {
var instance = this;
let Index = instance.getIndexByDisplayText_sortColumnsArray(displayText);
let IsSortBy = instance.SortColumns[Index].SortOrder;
if (IsSortBy == "Asc") {
$("#SortOrder_" + elementId + "_Asc").addClass('selected');
$("#SortOrder_" + elementId + "_Desc").removeClass('selected');
}
else if (IsSortBy == "Desc") {
$("#SortOrder_" + elementId + "_Desc").addClass('selected');
$("#SortOrder_" + elementId + "_Asc").removeClass('selected');
}
else {
$("#SortOrder_" + elementId + "_Asc").addClass('selected');
}
for (var i = 0; i < Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
$(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
$(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
break;
}
}
}
clickedTableCaret(ElementId, DisplayText, DataType) {
var instance = this;
let html = "";
var Aggr = 0;
var Sortby = "none";
var ColumnFormat = "";
var Aggregation = instance.getAggregationsByDataType(DataType);
if (Aggregation) {
for (var i = 0; i < Aggregation.length; i++) {
if (i == 0) {
Aggr = Aggregation[i].Value;
}
html += `
` + Aggregation[i].AggrType + ` `;
}
}
$('#dropdown_Aggregation_' + DisplayText).find(".dropdown-menu").html(html);
$("#dsl_column_" + DisplayText).find('#dropdown_Aggregation_' + DisplayText).find(".dropdown-menu").html(html);
if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
var formathtml = "";
formathtml = instance.loadFormats(DataType, ElementId, DisplayText);
$('#ColumnFormat_' + DisplayText).find(".dropdown-menu").html(formathtml);
$("#dsl_column_" + DisplayText).find('#ColumnFormat_' + DisplayText).find(".dropdown-menu").html(formathtml);
}
else {
$('#ColumnFormat_' + DisplayText).remove();
$("#dsl_column_" + DisplayText).find('#ColumnFormat_' + DisplayText).remove();
}
let Index = instance.getIndexByAliasName_selectedColumnsArray(DisplayText);
Aggr = instance.selectedColumns[Index].Aggregation;
Sortby = instance.selectedColumns[Index].SortOrder;
DisplayText = instance.selectedColumns[Index].AliasName;
ColumnFormat = instance.selectedColumns[Index].ColumnFormat == "" ? "Default" : instance.selectedColumns[Index].ColumnFormat;
$("#DisplayText_" + DisplayText).val(DisplayText);
$("#DisplayText_" + DisplayText).focus();
let grpby = $("#groupby_select").val();
if (jQuery.inArray(ElementId.toString(), grpby) != -1) {
$('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").removeClass("show-on-hover");
$('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "not-allowed");
}
else {
$('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").addClass("show-on-hover");
$('#dropdown_Aggregation_' + DisplayText).find(".sub-dropdown-menu").find(".dropdown-item").css("cursor", "pointer");
}
let IsFilterable = instance.selectedColumns[Index].IsFilterable;
if (IsFilterable == true)
$("#DropDown_IsFilterable_" + DisplayText).removeClass('hidden');
else
$("#DropDown_IsFilterable_" + DisplayText).addClass('hidden');
let IsPrimaryKey = instance.selectedColumns[Index].IsPrimaryKey;
if (IsPrimaryKey == true)
$("#DropDown_IsPrimaryKey_" + DisplayText).removeClass('hidden');
else
$("#DropDown_IsPrimaryKey_" + DisplayText).addClass('hidden');
let IsContactColumn = instance.selectedColumns[Index].IsContactColumn;
if (IsContactColumn == true)
$("#DropDown_IsContactColumn_" + DisplayText).removeClass('hidden');
else
$("#DropDown_IsContactColumn_" + DisplayText).addClass('hidden');
let IsAggregation = instance.selectedColumns[Index].Aggregation;
if (IsAggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none)
$("#Aggr_" + DisplayText + "_" + IsAggregation).addClass("selected");
else
$("#Aggr_" + DisplayText + "_" + IsAggregation).addClass("selected");
let IsSortBy = instance.selectedColumns[Index].SortOrder;
if (IsSortBy == "Asc") {
$("#SortOrder_" + ElementId + "_Asc").addClass('selected');
$("#SortOrder_" + ElementId + "_Desc").removeClass('selected');
}
else if (IsSortBy == "Desc") {
$("#SortOrder_" + ElementId + "_Desc").addClass('selected');
$("#SortOrder_" + ElementId + "_Asc").removeClass('selected');
}
else {
$("#SortOrder_" + ElementId + "_Asc").addClass('selected');
}
let format = instance._columnFormat.loadFormats(DataType).find(x => x.format == ColumnFormat);
if (format != undefined) {
$("#" + instance.containerId).find(".Format_" + DisplayText + "_" + format.id).addClass("selected");
}
for (i = 1; i <= Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns.length; i++) {
if (Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().table.columnManager.columns[i].definition.visible == true) {
$(".dropdown-menu_" + i).find(".dropdown-menu").removeClass("open-left-side");
$(".dropdown-menu_" + i).find(".dropdown-menu").addClass("open-right-side");
break;
}
}
}
loadQueryBuilderDiv() {
var instance = this;
var fromDate = "";
var toDate = "";
var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
if (cf_fromDate != null && cf_toDate != null) {
fromDate = cf_fromDate.toString();
toDate = cf_toDate.toString();
}
else {
fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
}
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
$("#Categories").removeClass("hidden");
}
else if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
$("#Categories").addClass("hidden");
}
$("#QueryBuilder").html(`
`);
var DataListId = instance.DataListId;
$("#DatalistColumns_Search").val("");
let qelem;
qelem = $('#builder');
instance.filtersArray = [];
qelem.on("afterAddRule.queryBuilder", (event, group) => {
this.addCheckbox();
});
for (var i = 0; i < instance.QueryBuilder_Columns.length; i++) {
let element = instance.QueryBuilder_Columns[i];
let dataType = "";
let IsInput = false;
let serviceurl = "apis/v4/unibase/platform/analytics/reportcolumndata";
serviceurl = _appsettings.server_url() + (serviceurl.startsWith('/') ? serviceurl : ('/' + serviceurl));
let dataTypeid = element.DataType;
let plugin_config = {
placeholder: "Select Options",
width: "auto",
unique: true,
allowClear: true,
tags: true,
ajax: {
url: serviceurl,
contentType: 'application/json',
dataType: 'json',
type: "POST",
traditional: true,
crossDomain: true,
async: true,
beforeSend: function (xhr) {
if (Unibase.Platform.Membership.Infos.Identity.getCurrentUser() !== undefined && Unibase.Platform.Membership.Infos.Identity.getCurrentUser() !== null) {
xhr.setRequestHeader('Authorization', 'Basic ' + Unibase.Platform.Membership.Infos.Identity.getCurrentUser().sessionId);
xhr.setRequestHeader('geoposition', Unibase.Platform.Membership.Infos.Identity.getCurrentUser().latd + ':' + Unibase.Platform.Membership.Infos.Identity.getCurrentUser().lgId);
}
},
data: function (params) {
let name = this[0].name.substring(0, this[0].name.indexOf("_value_"));
searchName = params.term;
var Qb_Col = instance.QueryBuilder_Columns.find(q => q.ColumnId == element.ColumnId);
let repObj = new ReportObject();
repObj.DataListId = instance.DataListId;
let Aggr = Reports.Enums.AggregationType.none;
if (params.hasOwnProperty("term") == true) {
repObj.StaticFilter = "CAST(" + element.ColumnName + " AS text) " + " ILIKE('%" + params.term + "%')";
if (instance.DataSourceId == Number(Platform.DataSources.Enums.DataSource.MongoDB)) {
repObj.StaticFilter = "{" + element.ColumnName + ":" + params.term + "}";
if (Analytics.Reports.Enums.DataType[element.DataType] == "string") {
repObj.StaticFilter = "{" + element.ColumnName + ":{$regex:'" + params.term + "'" + "}}";
}
}
}
repObj.TopRecords = 5;
repObj.Distinct = true;
let col = new ReportColumn();
col.ColumnValue = element.ColumnId;
col.ReportColumnName = element.ColumnName;
col.AliasName = element.ColumnName;
col.DlColumnName = (Qb_Col) ? Qb_Col.DlColumnName : null;
col.AggrFuncId = Aggr;
repObj.ReportColumns = [];
repObj.ReportColumns.push(col);
repObj.FromDate = fromDate;
repObj.ToDate = toDate;
return JSON.stringify(repObj);
},
processResults: function (data) {
var col = [];
var defaultid;
var id = searchName;
var autoCompleteId = $(".select2-container--open").parent().parent()[1].id;
console.log(autoCompleteId);
var identity = $("#" + autoCompleteId + "_checkbox").prop("checked");
if (identity) {
var identityinfo = Unibase.Platform.Membership.Infos.Identity.currentUser;
var keys = Object.keys(identityinfo);
for (let i = 0; i < keys.length; i++) {
col.push({ id: "Identity_" + keys[i], text: "Identity_" + keys[i] });
}
var settings = identityinfo.settings;
if (settings && settings.length != 0) {
for (var s = 0; s < settings.length; s++) {
col.push({ id: "Identity_" + settings[s].settingName, text: "Identity_" + settings[s].settingName });
}
}
console.log(col);
}
else {
if (JSON.parse(data.result).Data != "") {
defaultid = {
id: 0,
text: '------'
};
col.push(defaultid);
for (let i = 0; i < JSON.parse(JSON.parse(data.result).Data).length; i++) {
let jsondata = JSON.parse(JSON.parse(data.result).Data);
var col_text = jsondata[i][element.ColumnName];
if (col_text != null) {
var ids = {
id: jsondata[i][element.ColumnName],
text: col_text.toString()
};
col.push(ids);
}
}
}
else {
if (searchName == "") {
defaultid = {
id: 0,
text: '------'
};
}
else {
defaultid = {
id: id,
text: searchName
};
}
col.push(defaultid);
}
}
return {
results: col
};
}
},
};
let Values = [];
let Input = 'select';
let Plugin = 'select2';
if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.string) {
dataType = "string";
}
else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.int32 || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.int64) {
dataType = "integer";
}
else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) {
dataType = "double";
}
else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.boolean) {
dataType = "string";
Values = ["true", "false"];
Input = 'radio';
Plugin = '';
}
else if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.date || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
dataType = 'date';
IsInput = true;
}
if (element.StaticFilterControlType == Unibase.Platform.Analytics.Reports.Enums.StaicFilterControlType.Text) {
IsInput = true;
Input = 'text';
}
let searchName = "";
let filter = {};
if (dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.date || dataTypeid == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
filter = {
id: element.ColumnName,
label: element.ColumnName,
field: element.ColumnName,
type: dataType,
validation: {
format: 'YYYY/MM/DD'
},
plugin: 'datepicker',
plugin_config: {
format: 'yyyy/mm/dd',
todayBtn: 'linked',
todayHighlight: true,
autoclose: true
}
};
}
else {
filter = {
id: element.ColumnName,
label: element.ColumnName,
field: element.ColumnName,
type: dataType,
size: 30,
unique: true,
input: Input,
plugin: !IsInput && Plugin,
plugin_config: !IsInput && plugin_config,
values: Values
};
}
instance.filtersArray.push(filter);
}
qelem.queryBuilder({
filters: instance.filtersArray
});
if (instance.queryBuilderJson && instance.queryBuilderJson != "[]") {
let qeleme = $('#builder');
let qb_json = JSON.parse(instance.queryBuilderJson);
let qb_rules = instance.changeFieldnametoId(qb_json.rules);
qeleme.queryBuilder('setRules', qb_rules);
var ruledata = JSON.parse(instance.queryBuilderJson);
var jsonarray = JSON.stringify(ruledata);
jsonarray = jsonarray.replace(/[{}\[\]']/g, '');
jsonarray = jsonarray.split(',"');
var finalarray = [];
for (var arrayvalue of jsonarray) {
if (arrayvalue.includes('value') == true) {
var value = arrayvalue.split(':');
if (value[1].includes('"') == true) {
value[1] = value[1].replace(/"/g, '');
}
finalarray.push(value[1]);
}
}
for (let k = 0; k < finalarray.length; k++) {
var id = $('[id*=select2-builder_rule_' + k + ']').attr('id');
$('#' + id).html('');
$('#' + id).css('width', $('#' + id).width() + 150);
$('#' + id).html('
' + finalarray[k] + ' ');
if (finalarray[k] && finalarray[k].includes("Identity_")) {
let valueContainer = $('#' + id).closest(".rule-value-container").next();
valueContainer.children().first().removeClass("hidden");
valueContainer.find("input").prop("checked", true);
}
}
}
$('#btn-reset-query').on('click', function () {
instance.queryBuilderString = "";
instance.querybuilderCheckboxes = [];
instance.queryBuilderJson = "";
$(".qry-builder-container").hide();
instance.load_data(instance.table);
qelem.queryBuilder('reset');
instance.queryBuilderJson = "";
});
$('#builder').on('afterApplyRuleFlags.queryBuilder', function (e, rule) {
let selectValue = $("#" + rule.id).find(".rule-filter-container").children().first().val();
if (selectValue != -1 && selectValue) {
$("#" + rule.id).find(".rule-check-container").children().first().removeClass("hidden");
}
});
$('#builder-widgets').on('afterUpdateRuleValue.queryBuilder', function (e, rule) {
if (rule.filter.plugin === 'datepicker') {
rule.$el.find('.rule-value-container input').datepicker('update');
}
});
$('#builder').on('afterUpdateRuleOperator.queryBuilder', (e, rule) => {
if (rule.operator.type == "in")
rule.$el.find(".rule-value-container select").prop('multiple', true).attr('name', 'sub_type[]');
else
rule.$el.find(".rule-value-container select").prop('multiple', false).attr('name', 'sub_type');
});
}
addCheckbox() {
let instance = this;
let isChecked = '';
let checkboxId = $($('.rule-container')[$('.rule-container').length - 1]).attr('id') + '_checkbox';
console.log(instance.querybuilderCheckboxes);
for (let i = 0; i < instance.querybuilderCheckboxes.length; i++) {
if (checkboxId.replace('_checkbox', '') == instance.querybuilderCheckboxes[i]) {
isChecked = 'checked';
break;
}
}
$($('.rule-container')[$('.rule-container').length - 1]).append(`
`);
$('#' + checkboxId).change(function () {
var id = $(this).attr('id').replace('_checkbox', '');
$("#" + id).find(".rule-value-container select").empty();
if ($(this).is(':checked')) {
instance.querybuilderCheckboxes.push(id);
}
else {
for (let i = 0; i < instance.querybuilderCheckboxes.length; i++) {
let checkbox_id = instance.querybuilderCheckboxes[i];
if (checkbox_id == id) {
instance.querybuilderCheckboxes.splice(i, 1);
break;
}
}
}
});
}
changeFieldnametoId(rules) {
var instance = this;
for (var r = 0; r < rules.length; r++) {
let rule = rules[r];
if (rule.rules)
rule.rules = instance.changeFieldnametoId(rule.rules);
rules[r].id = rule.field;
}
return rules;
}
toggleQueryBuilderDiv() {
$(".report-builder-body").toggleClass("hidden");
$("#QueryBuilder").toggleClass("hidden");
}
reportTypeChange(id) {
var instance = this;
if (id == "fa fa-bar-chart-o") {
instance.reportType = Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart;
instance._chartBuilder.loadChartIcons();
if (instance.TenureReport.length != 0 && instance.reportid == 0) {
Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
instance._chartBuilder.tenureChart('myChart', instance.reportid);
}
else {
if (instance.reportid != 0) {
instance._chartBuilder.select2DataBinding("");
}
instance._chartBuilder.select2DataBinding("ReportTypeChanged");
}
$('.report-builder-body').find('#table-canvan').height($(window).outerHeight() - $('.report-builder-body').find('#chart-container').height() - $(".modal-footer").height() - 100);
}
else {
instance.reportType = Unibase.Platform.Analytics.Reports.Enums.ReportType.Table;
}
$(".ChartIcons").toggleClass("hidden");
$("#ChartIcon_Default").toggleClass("hidden");
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
instance._chartBuilder.IsChartBuilder = true;
instance.EditableTitle = false, instance.HeaderSort = true;
$(".divselect2_GroupBy").removeClass("hidden");
$(".TableIcon").addClass("hidden");
$("#datalabel_div").removeClass("hidden");
$("#chart-container").removeClass("hidden");
$('.report-builder-body').find('#table-canvan').height($(window).outerHeight() - $('.report-builder-body').find('#chart-container').height() - $(".modal-footer").height() - 105);
if ($("#DataListsDiv").hasClass("hidden") && instance.TenureReport.length == 0) {
$("#XAxis").removeClass("hidden");
$("#YAxis").removeClass("hidden");
var x_val = $('#xaxis_select').val().toString();
var y_val = $('#yaxis_select').val().toString();
if (x_val.length == 0) {
$('#xaxis_select').val('').trigger('change');
}
if (y_val.length == 0) {
$('#yaxis_select').val('').trigger('change');
}
}
$("#ChartCanvasDiv").removeClass("hidden");
if ($("#txt_totalrecords").val() == "") {
$("#txt_totalrecords").val("5");
}
if (instance._chartBuilder.legendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column) {
$("#lagendtypecolumn").prop("checked", true);
}
else {
$("#lagendtypedata").prop("checked", true);
}
$("#showtooltipheader_checkbox").prop("checked", instance._chartBuilder.isTooltipHeader);
$("#isdatalabel").prop("checked", instance._chartBuilder.isDataLabel);
$("#label_length").val(instance._chartBuilder.tickLabelLength);
if (instance._chartBuilder.chartBaseValue)
$("#dataset_base_value").val(instance._chartBuilder.chartBaseValue);
}
else {
instance.isCharttoTable = true;
if ($("#DataListsDiv").hasClass("hidden")) {
$("#Categories").removeClass("hidden");
}
instance.EditableTitle = true, instance.HeaderSort = false;
instance._chartBuilder.select2DataBinding("");
if (instance.selectedColumns.length > 0) {
instance.load_data(instance.table);
}
$(".TableIcon").removeClass("hidden");
$("#datalabel_div").addClass("hidden");
$("#ExpandIcon, #CollapseIcon").addClass("hidden");
$("#chart-container").addClass("hidden");
var height = $(".report-builder-body").height() - 35 + "px";
instance.table.setHeight(height);
$("#table-canvan").height(height);
$(".bl-nav-right").addClass("hidden");
$("#bl-nav-right-default").removeClass("hidden");
$("#XAxis").addClass("hidden");
$("#YAxis").addClass("hidden");
$("#ChartCanvasDiv").addClass("hidden");
}
}
getAggregationName(AggrFuncId) {
var AggrName = Unibase.Platform.Analytics.Reports.Enums.AggregationType[AggrFuncId];
return AggrName;
}
getAggregationsByDataTypes(DataType) {
var aggrType = Unibase.Platform.Analytics.Reports.Enums.AggregationType;
var items = {
"String": [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" }],
"DateTime": [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" },
{ "Value": aggrType.month, "AggrType": "month" },
{ "Value": aggrType.year, "AggrType": "year" }],
"Int64": [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" },
{ "Value": aggrType.sum, "AggrType": "sum" },
{ "Value": aggrType.avg, "AggrType": "avg" },
{ "Value": aggrType.max, "AggrType": "max" },
{ "Value": aggrType.min, "AggrType": "min" }],
"Int32": [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" },
{ "Value": aggrType.sum, "AggrType": "sum" },
{ "Value": aggrType.avg, "AggrType": "avg" },
{ "Value": aggrType.max, "AggrType": "max" },
{ "Value": aggrType.min, "AggrType": "min" }],
"Decimal": [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" },
{ "Value": aggrType.sum, "AggrType": "sum" },
{ "Value": aggrType.avg, "AggrType": "avg" },
{ "Value": aggrType.max, "AggrType": "max" },
{ "Value": aggrType.min, "AggrType": "min" }],
"Boolean": [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" }],
"none": [
{}
]
};
return items[DataType];
}
getAggregationsByDataType(DataType) {
var items = [];
var aggrType = Unibase.Platform.Analytics.Reports.Enums.AggregationType;
switch (DataType) {
case Unibase.Platform.Analytics.Reports.Enums.DataType.string:
items = [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" }];
break;
case Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime:
items = [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" },
{ "Value": aggrType.month, "AggrType": "month" },
{ "Value": aggrType.year, "AggrType": "year" }];
break;
case Unibase.Platform.Analytics.Reports.Enums.DataType.int64:
items = [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" },
{ "Value": aggrType.sum, "AggrType": "sum" },
{ "Value": aggrType.avg, "AggrType": "avg" },
{ "Value": aggrType.max, "AggrType": "max" },
{ "Value": aggrType.min, "AggrType": "min" }];
break;
case Unibase.Platform.Analytics.Reports.Enums.DataType.int32:
items = [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" },
{ "Value": aggrType.sum, "AggrType": "sum" },
{ "Value": aggrType.avg, "AggrType": "avg" },
{ "Value": aggrType.max, "AggrType": "max" },
{ "Value": aggrType.min, "AggrType": "min" }];
break;
case Unibase.Platform.Analytics.Reports.Enums.DataType.decimal:
items = [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" },
{ "Value": aggrType.sum, "AggrType": "sum" },
{ "Value": aggrType.avg, "AggrType": "avg" },
{ "Value": aggrType.max, "AggrType": "max" },
{ "Value": aggrType.min, "AggrType": "min" }];
break;
case Unibase.Platform.Analytics.Reports.Enums.DataType.boolean:
items = [{ "Value": aggrType.none, "AggrType": "none" },
{ "Value": aggrType.count, "AggrType": "count" }];
break;
case Unibase.Platform.Analytics.Reports.Enums.DataType.none:
[{}];
break;
}
return items;
}
getColumnIconByDataTypes(DataTypeId) {
let icon = "";
switch (DataTypeId) {
case Unibase.Platform.Analytics.Reports.Enums.DataType.string:
icon = `
`;
break;
case Unibase.Platform.Analytics.Reports.Enums.DataType.int32:
case Unibase.Platform.Analytics.Reports.Enums.DataType.int64:
case Unibase.Platform.Analytics.Reports.Enums.DataType.decimal:
case Unibase.Platform.Analytics.Reports.Enums.DataType.boolean:
icon = `
`;
break;
case Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime:
icon = `
`;
break;
}
return icon;
}
dataType(type) {
var DataType;
switch (type) {
case "String":
DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.string;
break;
case "Int32":
DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.int32;
break;
case "Int64":
DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.int64;
break;
case "DateTime":
DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime;
break;
case "Decimal":
DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.decimal;
break;
case "Boolean":
DataType = Unibase.Platform.Analytics.Reports.Enums.DataType.boolean;
break;
}
return DataType;
}
_sortColumns() {
var instance = this;
let list = $('#sort_selected_columns');
if (!list)
return;
let itemName;
let endIndex;
list.sortable({
connectWith: "#sort_selected_columns",
cursor: 'move',
update: function (event, ui) {
$.each($('#sort_selected_columns .dsl-block'), function (index, item) {
let itemName = $(item).attr('id').slice(11);
let sindex = instance.SortColumns.findIndex(x => x.AliasName == itemName);
if (sindex > -1) {
instance.SortColumns[sindex].SortIndex = index;
}
let scolindex = instance.selectedColumns.findIndex(x => x.ColumnName == itemName);
if (scolindex > -1) {
instance.selectedColumns[scolindex].SortIndex = index;
}
});
instance.load_data(instance.reportid);
}
});
}
getIndexByColumnName_selectedColumnsArray(ColumnName) {
var instance = this;
return instance.selectedColumns.findIndex(x => x.ColumnName == ColumnName);
}
getIndexByAliasName_selectedColumnsArray(AliasName) {
var instance = this;
return instance.selectedColumns.findIndex(x => x.AliasName == AliasName);
}
getIndexByDisplayTextAndColumnName_selectedColumnsArray(AliasName, ColumnName) {
var instance = this;
return instance.selectedColumns.findIndex(x => x.AliasName == AliasName && x.ColumnName == ColumnName);
}
getColumnId_ByColumnName_datalistColumnsArray(ColumnName) {
var instance = this;
let Col = instance.datalistColumnsResponseData.find(x => x.ColumnName == ColumnName);
return Col.ColumnId;
}
getDlColumn_ByColumnId_datalistColumnsArray(ColumnId) {
var instance = this;
let Col = instance.datalistColumnsResponseData.find(x => x.ColumnId == ColumnId);
return Col.DlColumnName;
}
getIndexByDisplayText_sortColumnsArray(DisplayText) {
var instance = this;
return instance.SortColumns.findIndex(x => x.DisplayText == DisplayText);
}
getIndexByAliasName_DatalistColumnsArray(AliasName) {
return this.datalistColumnsResponseData.findIndex(x => x.AliasName == AliasName);
}
getIndexByAliasName_chartSelectedColumnsArray(AliasName) {
var instance = this;
return instance._chartBuilder.ChartSelectedColumns.findIndex(x => x.AliasName == AliasName);
}
loadReportGroups() {
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportgroups_autocomplete';
AutoCompleteHelper.getHelper().Create("#RptGroup_AutoComplete", "#hfAutoComplete_ReportGroup", url, null);
}
getAvailableReportGroups(reportGroupsResponseData) {
var instance = this;
let html = "";
for (let i = 0; i < reportGroupsResponseData.length; i++) {
var template = instance._reportBuilderTemplate.loadDataListsTemplate();
var templateScript = Handlebars.compile(template);
var context = { "SelectText": reportGroupsResponseData[i].GroupName, "Value": reportGroupsResponseData[i].ReportGroupId };
html += templateScript(context);
}
if (reportGroupsResponseData.length == 0) {
var template = instance._reportBuilderTemplate.loadDataListsTemplate();
var templateScript = Handlebars.compile(template);
}
$("#RptGroup_AutoComplete").append(html);
}
reportColumns_Array(repCol) {
var instance = this;
let col = new ReportColumn();
col.ReportColumnId = instance.isduplicate == true ? 0 : repCol.ReportColumnId;
col.ColumnValue = (repCol.ColumnValue) ? repCol.ColumnValue : 0;
col.ReportColumnName = repCol.ReportColumnName;
col.DataListColumnName = repCol.DataListColumnName;
col.DlColumnName = repCol.DlColumnName;
col.DisplayText = (repCol.DisplayText) ? repCol.DisplayText : repCol.AliasName;
col.AliasName = (repCol.AliasName) ? repCol.AliasName : col.DisplayText;
col.DataType = (repCol.DataType) ? repCol.DataType : 0;
col.Isvisible = (repCol.Isvisible) ? repCol.Isvisible : false;
col.AggrFuncId = !isNaN(repCol.AggrFuncId) ? repCol.AggrFuncId : Reports.Enums.AggregationType.none,
col.SortType = (repCol.SortType) ? repCol.SortType : "none";
col.SortIndex = (repCol.SortIndex) ? repCol.SortIndex : 0;
col.GroupBy = (repCol.GroupBy) ? repCol.GroupBy : false;
col.IsPivotAggrColumn = (repCol.IsPivotAggrColumn) ? repCol.IsPivotAggrColumn : false;
col.IsPivotColumn = (repCol.IsPivotColumn) ? repCol.IsPivotColumn : false;
col.IsPivotRow = (repCol.IsPivotRow) ? repCol.IsPivotRow : false;
col.IsPivotRowSelected = (repCol.IsPivotRowSelected) ? repCol.IsPivotRowSelected : false;
col.IsPivotParentColumn = (repCol.IsPivotParentColumn) ? repCol.IsPivotParentColumn : false;
col.IsPivotChildColumn = (repCol.IsPivotChildColumn) ? repCol.IsPivotChildColumn : false;
col.PivotValue = 0;
col.PivotValueSelected = (instance.pivot && instance.pivot.PivotValue_Selected) ? repCol.PivotValueSelected : 0;
col.IsPivotRowSelected = (repCol.IsPivotRowSelected) ? repCol.IsPivotRowSelected : false;
col.PivotDateType = isNaN(repCol.PivotDateType) ? 0 : Number(repCol.PivotDateType);
col.TimeInterval = (repCol.TimeInterval) ? repCol.TimeInterval : "";
col.ColumnFormat = (repCol.ColumnFormat == "No Format" || !(repCol.ColumnFormat)) ? "" : repCol.ColumnFormat;
col.YearComparisonType = (repCol.YearComparisonType) ? repCol.YearComparisonType : 0;
col.WidthUnit = "px";
col.RoleId = "0";
col.IsFilterable = false;
col.IsPrimaryKey = (repCol.IsPrimaryKey) ? repCol.IsPrimaryKey : false;
col.IsContactColumn = (repCol.IsContactColumn) ? repCol.IsContactColumn : false;
col.GroupByCategory = (repCol.GroupByCategory) ? repCol.GroupByCategory : false;
col.IsTenureApplied = (repCol.IsTenureApplied) ? repCol.IsTenureApplied : false;
col.Width = (repCol.Width) ? repCol.Width : 0;
col.ColumnIndex = (repCol.ColumnIndex) ? repCol.ColumnIndex : 0;
col.DistinctOn = (repCol.DistinctOn) ? repCol.DistinctOn : false;
col.IsPivotTableCol = (repCol.IsPivotTableCol) ? repCol.IsPivotTableCol : false;
col.IsDownload = (repCol.IsDownload) ? repCol.IsDownload : false;
col.TableAggrTypeId = !isNaN(repCol.TableAggrTypeId) ? repCol.TableAggrTypeId : Reports.Enums.AggregationType.none;
col.IsNumFormatting = (repCol.IsNumFormatting) ? repCol.IsNumFormatting : false;
col.IsRowTotal = (repCol.IsRowTotal) ? repCol.IsRowTotal : false;
col.IsImageUrl = (repCol.IsImageUrl) ? repCol.IsImageUrl : false;
col.PivotTableAggrTypeId = (repCol.PivotTableAggrTypeId) ? repCol.PivotTableAggrTypeId : 0;
let PivotDateType = instance.pivot && instance.pivot.DateType ? instance.pivot.DateType : 0;
if (instance.pivot && instance.pivot.AggColumnName != "") {
if (instance.pivot.AggColumnName == col.ReportColumnName) {
col.AggrFuncId = Number(instance.pivot.AggFuncId);
col.IsPivotAggrColumn = true;
}
if (instance.pivot.ColumnName == col.ReportColumnName) {
col.IsPivotColumn = true;
var Tenure = instance.TenureReport[instance.pivot.ColumnName];
col.TimeInterval = Tenure != undefined ? Tenure.TimeInterval : "";
col.PivotDateType = Number(PivotDateType);
}
if (instance.pivot.ChildColumnName != "") {
if (instance.pivot.ChildColumnName == col.ReportColumnName) {
col.IsPivotChildColumn = true;
if (repCol.PivotValue == undefined) {
col.PivotValue = Number(instance.pivot.ChildColumnValue);
}
else {
col.PivotValue = Number(instance.pivot.PivotValue_Selected);
}
instance.IsPivotTree = true;
}
if (instance.pivot.ParentColumnName == col.ReportColumnName) {
col.IsPivotParentColumn = true;
}
}
}
if (repCol.TimeInterval != "") {
}
instance.ReportColumns.push(col);
}
groupByAggregation() {
var instance = this;
var isGrp = instance.selectedColumns.find(g => g.GroupBy == true);
if (isGrp) {
for (var i = 0; i < instance.selectedColumns.length; i++) {
var scol = instance.selectedColumns[i];
if (!scol.GroupBy && scol.Aggregation == Unibase.Platform.Analytics.Reports.Enums.AggregationType.none) {
let Index = instance.getIndexByColumnName_selectedColumnsArray(scol.AliasName);
var Col = instance.selectedColumns[Index];
Col.Aggregation = Unibase.Platform.Analytics.Reports.Enums.AggregationType.count;
}
}
}
}
saveReport(containerid, reportid) {
var instance = this;
this.navigationHelper.showLoading();
let rptGroupId = Number($("#RptGroup_AutoComplete").val());
if (rptGroupId == 0)
return MessageHelper.Instance().showError("Please select ReportGroup", 'divReport_ErrorMessage');
instance.ReportColumns = [];
var grpby = instance.selectedColumns.filter(x => x.GroupBy == true);
var agg = [];
var SortArry = [];
if (grpby.length > 0) {
agg = instance.selectedColumns.filter(x => x.Aggregation == Reports.Enums.AggregationType.none).filter(x => x.GroupBy == false);
}
if (agg.length > 0 && instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
var cols = "";
if (agg.length == 1) {
cols = " Column \"";
}
else {
cols = " Columns \"";
}
for (var a = 0; a < agg.length; a++) {
cols += " " + agg[a].ColumnName + ",";
}
cols = cols.substring(0, cols.length - 1) + " ";
alert("SAVE FAILED: " + cols + "\" must be added in groupby or need to give aggregation. For UI Groupby add in Categories instead of groupby");
return false;
}
else {
for (var i = 0; i < instance.selectedColumns.length; i++) {
let selectedColumn = instance.selectedColumns[i];
let Width = 0;
if (selectedColumn.Width != undefined) {
Width = selectedColumn.Width;
}
var Tenure = instance.TenureReport[selectedColumn.ColumnName];
let AggrFuncId = selectedColumn.Aggregation;
let col = new ReportColumn();
col.ReportColumnId = selectedColumn.ReportColumnId,
col.ReportColumnName = selectedColumn.ColumnName,
col.AliasName = selectedColumn.AliasName,
col.DisplayText = selectedColumn.DisplayText,
col.DlColumnName = selectedColumn.DlColumnName,
col.ColumnIndex = selectedColumn.ColumnIndex,
col.Width = Width,
col.ColumnValue = Number(selectedColumn.ColumnId),
col.DataType = selectedColumn.DataType,
col.IsFilterable = selectedColumn.IsFilterable,
col.IsPrimaryKey = selectedColumn.IsPrimaryKey,
col.IsContactColumn = selectedColumn.IsContactColumn,
col.Isvisible = selectedColumn.Isvisible,
col.GroupBy = selectedColumn.GroupBy,
col.SortType = selectedColumn.SortOrder,
col.SortIndex = selectedColumn.SortIndex,
col.AggrFuncId = AggrFuncId,
col.IsTenureApplied = Tenure != undefined ? true : false,
col.GroupByCategory = selectedColumn.GroupByCategory,
col.ColumnFormat = selectedColumn.ColumnFormat == "Default" ? "" : selectedColumn.ColumnFormat,
col.PivotValue = instance.pivot.PivotValue_Selected,
col.DistinctOn = selectedColumn.DistinctOn,
col.IsPivotTableCol = selectedColumn.IsPivotTableCol,
col.IsDownload = selectedColumn.IsDownload,
col.TableAggrTypeId = selectedColumn.TableAggrTypeId,
col.IsNumFormatting = selectedColumn.IsNumFormatting,
col.IsRowTotal = selectedColumn.IsRowTotal,
col.IsImageUrl = selectedColumn.IsImageUrl,
col.PivotTableAggrTypeId = selectedColumn.PivotTableAggrTypeId,
instance.reportColumns_Array(col);
}
let pivotRows = instance.pivot.PivotRows;
if (instance.SortColumns.length != 0) {
for (var i = 0; i < instance.SortColumns.length; i++) {
var col = instance.SortColumns.find(x => x.SortIndex == i);
if (col)
SortArry.push({ Name: col.DisplayText, Order: col.SortOrder });
}
}
if (SortArry.length == 0) {
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
instance.navigationHelper.hideLoading();
return MessageHelper.Instance().showError('Please Select SortColumn', 'div_ReportBuilderErrorMessage');
}
SortArry.push({ Name: instance.selectedColumns[0].AliasName, Order: "Desc" });
}
instance._chartBuilder.chartColumns();
if (instance.isduplicate == true) {
$("#txt_reportid").val(0);
if ($("#txt_reportname").val() == "") {
$("#errordiv").show();
$("#errordiv").html('
Error! Mandatory fields are missing
');
$("#errordiv").css({ "height": "50px", "visibility": "hidden", "opacity": "0", "transition": "visibility 0s 6s,opacity 6s linear" });
setTimeout(function () {
$("#errordiv").removeAttr('style');
$("#errordiv").hide();
}, 6000);
return false;
}
}
var dependencyapps = $("#dependecyapps").val();
let ReportName = $("#txt_reportname").val().toString();
instance.reportname = String($("#txt_reportname").val());
var SearchColumns_Data = $("#searchcolumns").select2('data');
var SearchCols = "";
for (var i = 0; i < SearchColumns_Data.length; i++) {
SearchCols += SearchColumns_Data[i].text + "|";
}
let connectedAppsArray = $("#connectedapps").select2('data');
let connectedReportsArray = $("#connectedreports").select2('data').map(x => x.id);
let connectedApps = connectedAppsArray.map(x => x.id).join("|");
let connectedReports = connectedReportsArray.join("|");
let baseValue = $("#dataset_base_value").val();
if (instance.res && instance.res.UniqueId) {
if (connectedReportsArray.includes(instance.res.UniqueId)) {
instance.navigationHelper.hideLoading();
return MessageHelper.Instance().showError("Same report cannot be selected as connected report", 'divReport_ErrorMessage');
}
}
instance.updateDynamicFilterIndex();
var fromDate = "";
var toDate = "";
var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
if (cf_fromDate != null && cf_toDate != null) {
fromDate = cf_fromDate.toString();
toDate = cf_toDate.toString();
}
else {
fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
}
let uniqueId = instance.res && instance.res.UniqueId ? instance.res.UniqueId : "Bizgaze_Platform_Analytics_Reports_" + ReportName.replace(/\s/g, '');
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table && instance.isCharttoTable) {
instance.navigationHelper.hideLoading();
bootbox.confirm("Do you want to switch Chart to Table ?", function (result) {
if (result) {
instance.navigationHelper.showLoading();
instance.isCharttoTable = false;
instance.saveReport(containerid, reportid);
}
});
}
else {
let model = new Unibase.Platform.Analytics.Requests.Report();
model.SearchColumns = SearchCols;
model.SubReports = instance.subreportdata;
model.DependencyApps = dependencyapps.join('|');
model.DynamicFilters = instance.dynamicFilters;
model.ReportId = Number($("#txt_reportid").val());
model.ReportName = String($("#txt_reportname").val());
model.DisplayName = String($("#txt_displayname").val());
model.ReportTypeId = instance.reportType;
model.DataListId = instance.DataListId;
model.Description = '';
model.ReportGroupId = Number($("#RptGroup_AutoComplete").val());
model.ReportColumns = instance.ReportColumns;
model.ChartColumns = instance.ChartColumns;
model.RoleSettings = instance.roleSettings;
model.EditFilters = null;
model.StaticFilter = instance.queryBuilderJson;
model.SortColumns = JSON.stringify(SortArry);
model.TopRecords = Number($("#txt_totalrecords").val());
model.Parameters = String($("#txt_dynamicparameters").val()).trim();
model.ChartTypeId = instance._chartBuilder.ChartTypeId;
model.DateColumn = String($("#DateColumnDropDown").val());
model.UniqueId = uniqueId;
model.ViewerId = instance.ViewerId;
model.ViewerTypeId = instance.ViewerTypeId;
model.OnClick = String($("#txt_onclick").val());
model.InstalledAppId = isNaN(Number($("#InstalledApp_AutoComplete option:selected").val())) == true ? 0 : Number($("#InstalledApp_AutoComplete option:selected").val());
model.IsNotification = instance.IsNotification;
model.TableTypeId = Number($("#tableTypeSelect").val());
model.DisplayName = String($("#txt_displayname").val());
model.IsLegend = instance._chartBuilder.displayLegend;
model.LegendTypeId = isNaN(Number($("#legend-select").val())) == true ? 0 : Number($("#legend-select").val());
model.IsInternalReport = instance.IsInternalReport;
model.IsPivotTree = instance.IsPivotTree;
model.PivotValue = (instance.pivot.PivotValue_Selected) ? Number(instance.pivot.PivotValue_Selected) : 0;
model.IsEnableCount = instance.enableCount;
model.IsEnableGlobalDatepicker = instance.enableGlobalDatepicker;
model.PaletteId = instance.paletteId;
model.ColorAppliedTypeId = instance._chartBuilder.colorAppliedOn;
model.PivotTypeId = instance._pivot.pivotTypeId;
model.TimeInterval = instance.Interval;
model.ConnectedApps = connectedApps;
model.LinkReportId = instance.linkReportId;
model.IsTreeExpand = instance._pivot.isDataTreeExpand;
model.ReportIndex = 0;
model.ViewAll = instance.viewAll;
model.ConnectedReports = connectedReports;
model.LegendTitleTypeId = instance._chartBuilder.legendTitleTypeId;
model.ChartBaseValue = baseValue === undefined ? 0 : Number(baseValue);
model.FromDate = fromDate;
model.ToDate = toDate;
model.EnablePivotTableConfig = instance.enablePivotTableConfig;
model.Js = String($("#txt_js").val());
model.PinDynamicFilters = $('#pindynamicfilters_checkbox').is(":checked");
model.IsDataLabel = $("#isdatalabel").prop("checked");
model.IsTooltipHeader = $("#showtooltipheader_checkbox").prop("checked");
model.ShowDataListColsOnDynFil = instance.showDynamicFilters;
model.TickLabelLength = instance._chartBuilder.tickLabelLength;
instance.reportManager.saveReport(model).then(function (response) {
instance.navigationHelper.hideLoading();
if (response.status == Unibase.Data.Status.Error) {
MessageHelper.Instance().showError(response.message, 'divReport_ErrorMessage');
$('#save_as_modal #divReport_ErrorMessage #Bizgaze-messageInfo').addClass('btn mx-4 my-3');
$('#save_as_modal #divReport_ErrorMessage #Bizgaze-messageInfo').css('border-radius', '.25rem');
}
else {
MessageHelper.Instance().showSuccess(response.message, '');
$('#' + containerid).modal('hide');
$('#' + containerid).remove();
instance._chartBuilder.clearSelectedChartFields();
instance.clearSelectedTableFields();
instance.querybuilderCheckboxes = [];
var res = JSON.parse(response.result);
if (reportid != 0 && !instance.isReportWidget) {
const lastContainerId = instance.lastContainerId;
$(`#${lastContainerId}`).modal("hide");
$(`#${lastContainerId}`).remove();
if (lastContainerId.includes('_viewall') || lastContainerId.includes('_ViewAllByUniqueId_') || lastContainerId.includes('fullscreen') || lastContainerId.includes('_linkedreport_')) {
Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance = Unibase.Platform.Helpers.NavigationHelper.reportViewerInstance.filter(instance => instance.childcontainerid !== lastContainerId);
instance._reportViewer.report_ViewAll(reportid, 0, lastContainerId, null);
if (lastContainerId.includes('fullscreen') && lastContainerId.includes('div_dashboardportletwidget')) {
const widgetContainerId = lastContainerId.replace('fullscreen_', '');
instance.reloadDashboardPortletWidget(widgetContainerId);
}
}
else {
instance._reportViewer.InstalledAppId = res.InstalledAppId;
instance.navigationHelper.popin(res.ReportId, "", instance._reportViewer, null);
}
}
else if (instance.isReportWidget) {
instance.reloadReportWidget(instance.reportWidgetType);
if (instance.reportWidgetType == 'portlet' && instance.lastContainerId) {
$("#" + instance.lastContainerId).modal("hide");
$("#" + instance.lastContainerId).remove();
instance._reportViewer.report_ViewAll(0, 0, 0, null);
}
}
}
});
}
}
}
reloadDashboardPortletWidget(widgetContainerId) {
const instance = this;
const containerId = widgetContainerId ? widgetContainerId : instance.lastContainerId;
const widgetItem = $(`#${containerId}`).closest('.dashboardwidget-item');
const widgetId = Number($(`#${containerId}`).closest('.dashboardwidget-item').find('#hf_widgetId').val());
const portletwidgetid = Number(widgetItem.find('#hf_portletwidgetId').val());
Unibase.Themes.Compact.Components.ReportWidgets.Default.Instance().getReportWidget(portletwidgetid, widgetId, containerId, [], [], false, 0, false);
}
reloadReportWidget(widgetType) {
const instance = this;
if (widgetType == 'dashboard') {
instance.reloadDashboardPortletWidget();
}
else if (widgetType == 'portlet') {
$('._bizgaze_detail_container:visible').find('#layout-detail-tabs .tab-item a.active').trigger('click');
}
}
clearSelectedTableFields() {
var instance = this;
instance.datalistColumnsResponseData = [];
instance.selectedColumns = [];
instance.ReportColumns = [];
instance.SortColumns = [];
instance.stringifyed_SortColumns = "";
instance.queryBuilderJson = "";
instance.reportGroupId = 0;
instance.reportType = 1;
instance.Categories = [];
instance.dynamicFilters = [];
instance.roleSettings = [];
instance.TenureReport = [];
instance.subreportdata = [];
instance.dataTreeRowExpandedColumn = [];
instance.Edit_BindData = false;
instance.isEdit = false;
instance._pivot.pivotTypeId = 0;
instance.IsInternalReport = true;
instance.isCharttoTable = false;
}
defaultReportGroup() {
var instance = this;
if (instance.IsInternalReport) {
let groupName = "InternalGroup";
instance.reportManager.getReportGroupByName(groupName).then(function (grpresponse) {
if (grpresponse.result == "") {
let model = new Unibase.Platform.Analytics.Reports.Requests.ReportGroup();
model.GroupName = groupName;
instance.reportManager.saveReportGroup(model).then(function (response) {
if (response.result != null) {
let res = JSON.parse(response.result);
instance.reportGroupId = res.ReportGroupId;
$("#RptGroup_AutoComplete").append("
" + res.GroupName + " ");
}
});
}
else {
instance.reportGroupId = grpresponse.result.ReportGroupId;
$("#RptGroup_AutoComplete").append("
" + grpresponse.result.GroupName + " ");
}
});
}
else {
$('#RptGroup_AutoComplete').removeAttr('disabled');
}
}
closeReportBuilder(containerid, reportid) {
var instance = this;
instance._chartBuilder.clearSelectedChartFields();
instance.clearSelectedTableFields();
$('#' + containerid).modal('hide');
$('#' + containerid).remove();
}
loadreportviewerdata(reportid) {
var instance = this;
instance.isEdit = true;
instance.loadDynmaicFilters(reportid);
instance.bindReportData(reportid);
}
loadDynmaicFilters(reportid) {
var instance = this;
instance.reportManager.getDynamicFilters(reportid).then(function (response) {
instance.dynamicFilters = [];
for (let i = 0; i < response.length; i++) {
var data = response.find(d => d.Index == i);
if (data != undefined) {
var model = new DynamicFilterModel();
model.DynamicFilterId = data.DynamicFilterId;
model.IsFilterableColumn = data.IsFilterableColumn.trim();
model.DataListId = Number(data.DatalistId);
model.DataListName = data.DataListName != null ? (data.DataListName).toString() : null;
model.ReportId = data.ReportId;
model.MappedColumn = data.MappedColumn;
model.TextColumn = data.TextColumn != null ? data.TextColumn : null;
model.ValueColumn = data.TextColumn != null ? data.ValueColumn : null;
model.Index = data.Index;
model.ControlTypeId = data.ControlTypeId;
model.DataType = data.DataType;
model.DisplayName = data.DisplayName;
model.IsPartition = data.IsPartition;
model.FontCaseTypeId = data.FontCaseTypeId;
model.IsDefault = data.IsDefault;
model.IsUnLimited = data.IsUnLimited;
model.IsRequired = data.IsRequired;
model.ParentColumn = data.ParentColumn;
model.ApplyFor = data.ApplyFor;
model.IsCustomFilter = data.IsCustomFilter;
model.ReplaceExistingDates = data.ReplaceExistingDates;
model.DateRangeTypeId = data.DateRangeTypeId;
instance.dynamicFilters.push(model);
Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().dynamicFilters = instance.dynamicFilters;
let html = instance._reportBuilderTemplate.loadDynamicFilterColumn(Number(model.DynamicFilterId), model.IsFilterableColumn, '');
$("#dynamic-list-group-wrapper").append(html);
if (data.DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
}
if (data.IsPartition)
$("#chk_ispartition_" + data.IsFilterableColumn.trim()).prop("checked", true);
if (data.IsUnLimited)
$('#isunlimited_checkbox').prop('checked', true);
else
$('#isunlimited_checkbox').prop('checked', false);
Unibase.Platform.Analytics.Reports.DynamicFilter.Instance().sortDynamicFilter(model);
}
}
});
}
bindReportData(reportid) {
var instance = this;
var reportObj = {
ReportId: reportid,
IsEditReport: true
};
instance.reportManager.getReportInfo(reportObj).then(function (response) {
return __awaiter(this, void 0, void 0, function* () {
if (response.status == Unibase.Data.Status.Error) {
return MessageHelper.Instance().showError(response.message, 'div_ReportBuilderErrorMessage');
}
var res = response.result.ReportInfo;
instance.DataListId = res.DataListId;
instance.DataSourceId = res.DataSourceId;
instance.topRecords = res.TopRecords;
yield instance.loadDataListColumns(res.DataListId, null, false, false, instance.DataSourceId);
instance.initiateDataListSearch();
instance._chartBuilder.isDataLabel = response.result.ReportInfo.IsDataLabel;
instance.pinDynamicFilters = res.PinDynamicFilters;
if (res.appDependents != null) {
let dependecyapps = [];
if (res.appDependents.length) {
for (let i = 0; i < res.appDependents.length; i++) {
dependecyapps.push(res.appDependents[i].InstalledAppId);
}
$("#dependecyapps").val(dependecyapps).trigger("change");
}
}
$("#txt_reportid").val(res.ReportId);
if (instance.isduplicate != true) {
$("#txt_reportname").val(res.ReportName);
$("#txt_reportname").attr("disabled", "disabled");
}
if (res.SearchColumns != null) {
instance.SearchColumns = res.SearchColumns;
}
$("#header_datalist_name").text(res.DataListName);
$("#txt_totalrecords").val(res.TopRecords);
$("#txt_onclick").val(res.Onclick);
$("#txt_js").val(res.Js);
$("#pindynamicfilters_checkbox").prop("checked", res.PinDynamicFilters);
instance.togglePinDynamicFilters();
if (res.ShowDataListColsOnDynFil)
$("#showdatalistcolumns_checkbox").trigger("click");
if (res.Js) {
instance.Js = res.Js;
}
if (res.InstalledAppId != 0) {
$("#InstalledApp_AutoComplete").append(`
` + res.AppTitle + ` `);
$("#InstalledApp_AutoComplete").val(res.InstalledAppId).trigger("change");
}
if (res.ConnectedApps) {
let connectApps = res.ConnectedApps.split("|");
$("#connectedapps").val(connectApps).trigger("change");
}
if (res.ConnectedReports) {
let connectedReports = res.ConnectedReports.split("|");
for (var i = 0; i < connectedReports.length; i++) {
yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportByUniqueIdEncoded(btoa(connectedReports[i])).then((res) => {
if (res.result && res.status == Unibase.Data.Status.Success) {
let option = new Option(res.result.ReportName, connectedReports[i], true);
$("#connectedreports").append(option);
}
});
}
;
$("#connectedreports").val(connectedReports).trigger("change");
}
if (res.IsNotification) {
$(".chkNotification").attr("checked", "checked");
}
instance.Interval = res.TimeInterval;
instance.IsInternalReport = res.IsInternalReport;
$('#internalreport_checkbox').prop('checked', instance.IsInternalReport);
instance.isInternalGroup = res.IsInternalGroup;
if (instance.isInternalGroup) {
instance.updateInternalReportCb(true, true);
}
if (!res.IsEnableCount) {
instance.enableCount = false;
$('#count_checkbox').prop('checked', false);
}
else {
instance.enableCount = true;
$('#count_checkbox').prop('checked', true);
}
if (!res.IsEnableGlobalDatepicker) {
instance.enableGlobalDatepicker = false;
$('#enableglobaldatepicker_checkbox').prop('checked', false);
}
else {
instance.enableGlobalDatepicker = true;
$('#enableglobaldatepicker_checkbox').prop('checked', true);
}
Unibase.Platform.Analytics.Components.LinkReport.Instance().linkreportid = res.LinkReportId;
instance.reportGroupId = res.ReportGroupId;
$("#RptGroup_AutoComplete").append(`
` + res.GroupName + ` `);
$("#RptGroup_AutoComplete").val(res.ReportGroupId);
$("#txt_displayname").val(res.DisplayName);
$("#tableTypeSelect").val(res.TableTypeId);
$('#chkPivotTableConfig_checkbox').prop('checked', res.EnablePivotTableConfig);
$('#chktreeexpand_checkbox').prop('checked', res.IsTreeExpand);
instance.enablePivotTableConfig = res.EnablePivotTableConfig;
instance._pivot.isDataTreeExpand = res.IsTreeExpand;
instance.IsPivotTree = res.IsPivotTree;
instance._pivot.pivotTypeId = res.PivotTypeId;
instance._pivot.intervals = res.TimeInterval;
instance._chartBuilder.displayLegend = res.IsLegend;
instance._chartBuilder.tickLabelLength = res.TickLabelLength;
instance._pivot.selectedpivotType(res.PivotTypeId);
if (res.StaticFilter != null) {
instance.queryBuilderJson = res.StaticFilter;
}
instance.ViewerTypeId = res.ViewerTypeId;
instance.ViewerId = res.ViewerId;
if (res.SortColumns != null) {
instance.stringifyed_SortColumns = res.SortColumns;
var sortCols = JSON.parse(res.SortColumns);
for (var sc = 0; sc < sortCols.length; sc++) {
let sortcol = sortCols[sc];
instance.SortColumns.push({ DisplayText: sortcol.Name, SortOrder: sortcol.Order, SortIndex: sc });
var rptCols;
if (res.DataSourceId == Number(Unibase.Platform.DataSources.Enums.DataSource.MongoDB)) {
rptCols = res.ReportColumns.find(s => s.AliasName.toLowerCase() == sortcol.Name.toLowerCase());
}
else {
rptCols = res.ReportColumns.find(s => s.AliasName.toLowerCase() == sortcol.Name);
}
var html = instance._reportBuilderTemplate.loadSortSelect2Column(rptCols.ColumnValue, rptCols.AliasName, rptCols.DataType);
$("#sort_selected_columns").append(html);
if (instance.SortColumns[0].SortOrder == "Desc") {
$("#dsl_column_" + sortcol.DisplayText + " .sort-icon").addClass('la-sort-down');
$("#dsl_column_" + sortcol.DisplayText + " .sort-icon").removeClass('la-sort-up');
}
else {
$("#dsl_column_" + sortcol.DisplayText + " .sort-icon").removeClass('la-sort-down');
$("#dsl_column_" + sortcol.DisplayText + " .sort-icon").addClass('la-sort-up');
}
instance.setSelectOption("sortColumns_select");
instance._sortColumns();
}
}
instance.roleSettings = res.RoleSettings ? res.RoleSettings : [];
if (!res.LegendTitleTypeId)
res.LegendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Column;
instance.legendTypeId = res.LegendTypeId;
if (res.LegendTitleTypeId == Unibase.Platform.Analytics.Enums.LegendTitleType.Column) {
$("#lagendtypecolumn").prop("checked", true);
instance._chartBuilder.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Column;
}
else {
$("#lagendtypedata").prop("checked", true);
instance._chartBuilder.legendTitleTypeId = Unibase.Platform.Analytics.Enums.LegendTitleType.Data;
}
instance._chartBuilder.chartBaseValue = res.ChartBaseValue;
instance.viewAll = res.ViewAll;
if (res.LinkReportId) {
instance.linkReportId = res.LinkReportId;
}
instance.res = res;
let id = "";
id = res.ReportTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table ? 'fa fa-table' : 'fa fa-bar-chart-o';
instance.reportTypeChange(id);
if (res.ReportTypeId == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table) {
yield instance.bindTableData(res.ReportColumns, reportid);
instance.reportType = res.ReportTypeId;
$("#no_of_records").closest(".card").first().addClass("hidden");
}
else {
instance._chartBuilder.ChartTypeId = res.ChartTypeId;
instance.reportType = res.ReportTypeId;
$("#ReportTypeChart").find('i').toggleClass('fa-table fa-bar-chart-o');
instance._reportBuilderTemplate.loadChartSideBar();
instance._chartBuilder.sortTooltipColumnsEvent();
instance._chartBuilder.loadReportTypeChart('fa fa-bar-chart-o');
$('#tabulatorReportbuilder').addClass('contains-chartview');
if (res.ColorAppliedTypeId == Unibase.Platform.Analytics.Enums.ColorType.column) {
$("#columnRadio").prop("checked", true);
instance._chartBuilder.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.column;
}
else {
$("#rowRadio").prop("checked", true);
instance._chartBuilder.colorAppliedOn = Unibase.Platform.Analytics.Enums.ColorType.row;
}
instance._chartBuilder.ChartSelectedColumns = res.ChartColumns;
instance._chartBuilder.bindChartColumns(res.ChartColumns);
instance._chartBuilder.prepareAndBindToolTipColumns(res.ChartColumns);
instance.paletteId = res.PaletteId;
const indexInstance = Unibase.Themes.Compact.Components.Index.Instance();
if (instance.paletteId !== 0 || indexInstance.currentTheme.paletteId) {
let paletteId = instance.paletteId;
if (!paletteId) {
instance._chartBuilder.paletteColors.push(...indexInstance.themePalette);
}
else {
instance._chartBuilder.getpaletteColors(paletteId, false);
}
}
$("#legend-select").val(res.LegendTypeId);
instance._chartBuilder.loadSelectedLegend(res.LegendTypeId, false);
instance.bindTableData(res.ReportColumns, reportid);
}
instance.loadAllDataListColumns();
instance.loadSelectedDataListColumns();
instance._chartBuilder.loadSearchSelect2();
instance._chartBuilder.loadSortColumnsSelect2();
instance._chartBuilder.loadDynamicFilterSelect(instance.showDynamicFilters);
instance._chartBuilder.loadCategoriesSelect2();
});
});
}
bindTableData(reportColumns, reportid) {
return __awaiter(this, void 0, void 0, function* () {
var instance = this;
if (reportColumns && reportColumns.length) {
reportColumns = reportColumns.sort((x, y) => x.ColumnIndex - y.ColumnIndex);
}
var data = reportColumns;
instance.pivot.ColumnName = "";
var pivotChildCol = data.filter(c => c.IsPivotChildColumn == true);
var pivotParentCol = data.filter(c => c.IsPivotParentColumn == true);
var groupby = [];
var categories = [];
var categories_text = [];
var searchcolumns = instance.SearchColumns.split('|');
for (var i = 0; i < data.length; i++) {
var selCol = new SelectedColumns();
selCol.ReportColumnId = data[i].ReportColumnId;
selCol.ColumnId = data[i].ColumnValue;
selCol.ColumnName = data[i].ReportColumnName;
selCol.AliasName = data[i].AliasName;
selCol.DataListColumnName = data[i].DataListColumnName;
selCol.DlColumnName = data[i].DlColumnName;
selCol.DataType = data[i].DataType;
selCol.GroupBy = data[i].GroupBy;
selCol.Aggregation = data[i].AggrFuncId;
selCol.SortOrder = data[i].SortType;
selCol.Isvisible = data[i].Isvisible;
selCol.SortIndex = data[i].SortIndex;
selCol.DisplayText = data[i].DisplayText;
selCol.IsFilterable = data[i].IsFilterable;
selCol.IsPrimaryKey = data[i].IsPrimaryKey;
selCol.IsContactColumn = data[i].IsContactColumn;
selCol.ColumnIndex = data[i].ColumnIndex;
selCol.GroupByCategory = data[i].GroupByCategory;
selCol.DistinctOn = data[i].DistinctOn;
selCol.IsPivotColumn = data[i].IsPivotColumn;
selCol.IsPivotAggrColumn = data[i].IsPivotAggrColumn;
selCol.IsPivotTableCol = data[i].IsPivotTableCol;
selCol.IsDownload = data[i].IsDownload;
selCol.TableAggrTypeId = data[i].TableAggrTypeId;
selCol.IsNumFormatting = data[i].IsNumFormatting;
selCol.IsRowTotal = data[i].IsRowTotal;
selCol.IsImageUrl = data[i].IsImageUrl;
selCol.PivotTableAggrTypeId = data[i].PivotTableAggrTypeId;
selCol.ColumnFormat = data[i].ColumnFormat;
if (data[i].Width != 0) {
selCol.Width = data[i].Width;
}
selCol.IsDragged = true;
if (data[i].GroupBy == true) {
groupby.push(data[i].ColumnValue);
}
if (data[i].GroupByCategory == true) {
categories.push(data[i].ColumnValue);
categories_text.push({ id: data[i].ColumnValue, text: data[i].ReportColumnName });
}
if (data[i].IsFilterable) {
$("#DropDown_IsFilterable_" + data[i].AliasName).removeClass('hidden');
}
else {
$("#DropDown_IsFilterable_" + data[i].AliasName).addClass('hidden');
}
if (data[i].IsPrimaryKey) {
$("#DropDown_IsPrimaryKey_" + data[i].AliasName).removeClass('hidden');
}
else {
$("#DropDown_IsPrimaryKey_" + data[i].AliasName).addClass('hidden');
}
if (data[i].IsContactColumn) {
$("#DropDown_IsContactColumn_" + data[i].AliasName).removeClass('hidden');
}
else {
$("#DropDown_IsContactColumn_" + data[i].AliasName).addClass('hidden');
}
instance._selectedColumns(selCol);
if (selCol.GroupByCategory) {
var html = instance._reportBuilderTemplate.loadSelect2Column(selCol.ColumnId, selCol.AliasName, selCol.DataType);
$("#categories_selected_columns").append(html);
instance.setSelectOption("categories_select");
}
if (data[i].TimeInterval != "" && data[i].TimeInterval != null) {
instance.TenureReport[data[i].ReportColumnName] = {
TimeInterval: data[i].TimeInterval
};
instance.TenureReport.length = instance.TenureReport.length + 1;
}
if (data[i].IsPivotColumn) {
instance.pivot.ColumnName = data[i].ReportColumnName;
yield instance.getDistinctData(0, data[i].ReportColumnName, data[i].PivotDateType);
}
if (data[i].IsPivotAggrColumn) {
instance.pivot.AggColumnName = data[i].ReportColumnName;
instance.pivot.AggFuncId = data[i].AggrFuncId;
}
if (data[i].PivotDateType != "") {
instance.pivot.DateType = data[i].PivotDateType;
}
if (data[i].IsPivotChildColumn) {
instance.pivot.ChildColumnName = pivotChildCol[0].ReportColumnName;
instance.pivot.ChildColumnValue = data[i].PivotValue;
instance.pivot.PivotValue_Selected = data[i].PivotValue;
instance.pivot.ParentColumnName = pivotParentCol[0].ReportColumnName;
}
}
instance.Categories = categories_text;
instance._chartBuilder.select2DataBinding("");
if (instance._pivot.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
yield instance._pivot.loadPivotTable(instance.table);
instance.getSubReports(reportid);
instance.navigationHelper.hideLoading();
}
else {
yield instance.load_data(instance.table);
}
if (instance.TenureReport.length != 0) {
Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
instance._chartBuilder.tenureChart('myChart', instance.reportid);
}
if (instance.reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Chart) {
if (instance.pivot.ColumnName) {
instance._chartBuilder.chartType('myChart');
}
}
var SearchCols = [];
for (var s = 0; s < searchcolumns.length; s++) {
if (searchcolumns[s] != "") {
let SearchCol_Index = instance.datalistColumnsResponseData.findIndex(x => x.ColumnName == searchcolumns[s]);
if (SearchCol_Index != -1) {
var col = instance.datalistColumnsResponseData[SearchCol_Index].ColumnId;
SearchCols.push(col);
}
}
}
$("#searchcolumns").val(SearchCols).trigger("change");
});
}
addParameter() {
let parameterHtml = "";
let parameterDropdownHtml = "";
let elementNumber = this.parameterNumber;
parameterHtml += `
`;
$("#parameter-options").append(parameterHtml);
parameterDropdownHtml += `
Parameter ${elementNumber}
`;
$("#parameter-dropdown").append(parameterDropdownHtml);
let para = `para_${elementNumber}`;
let obj = { paraId: para };
this.parameterArray.push(obj);
this.parameterNumber++;
}
removeSelectParameter(paraId) {
var instance = this;
for (var i = 0; i < instance.parameterArray.length; i++)
if (instance.parameterArray[i].paraId === paraId) {
instance.parameterArray.splice(i, 1);
$("#parameter-options").find('[data-target = ' + paraId + ']').remove();
$("#parameter-dropdown").find('#' + paraId).remove();
break;
}
}
error(name) {
return MessageHelper.Instance().showError('Column -"' + name + '" Already Exists. Please change display text and try again', 'div_ReportBuilderErrorMessage');
}
isNotificationCheck() {
var instance = this;
var tenantindex = instance.selectedColumns.findIndex(x => x.ColumnName == "tenantid");
var versionguidindex = instance.selectedColumns.findIndex(x => x.ColumnName == "versionguid");
if ($('#notification_checkbox').prop('checked') == true) {
if (tenantindex == -1) {
let tenantcol = instance.datalistColumnsResponseData.find(d => d.ColumnName == "tenantid");
if (tenantcol) {
tenantcol.Isvisible = true;
instance._selectedColumns(tenantcol);
}
else {
$('#notification_checkbox').prop('checked', false);
return MessageHelper.Instance().showError("tenantid Column doesn't exist", "div_ReportBuilderErrorMessage");
}
if (versionguidindex > -1)
instance.load_data(instance.table);
}
if (versionguidindex == -1) {
let versionguidcol = instance.datalistColumnsResponseData.find(d => d.ColumnName == "versionguid");
if (versionguidcol) {
versionguidcol.Isvisible = true;
instance._selectedColumns(versionguidcol);
}
else {
$('#notification_checkbox').prop('checked', false);
return MessageHelper.Instance().showError("versionguid Column doesn't exist", "div_ReportBuilderErrorMessage");
}
if (tenantindex > -1)
instance.load_data(instance.table);
}
instance.IsNotification = true;
}
else {
instance.IsNotification = false;
if (tenantindex > -1)
instance.selectedColumns.splice(tenantindex);
if (versionguidindex > -1)
instance.selectedColumns.splice(versionguidindex);
return instance.load_data(instance.table);
}
if (tenantindex == -1 && versionguidindex == -1 || tenantindex > -1 && versionguidindex > -1)
instance.load_data(instance.table);
}
getSelectedColumns_Select2_Data() {
let data = [{ id: "0", text: "- Select Columns -" }];
for (var i = 0; i < this.selectedColumns.length; i++) {
data.push({ id: this.selectedColumns[i].ColumnId, text: this.selectedColumns[i].AliasName });
}
return data;
}
getSelectedColumns_Select2_Data_AliasName_As_TextValue() {
let data = [{ id: "0", text: "- Select Columns -" }];
for (var i = 0; i < this.selectedColumns.length; i++) {
data.push({ id: this.selectedColumns[i].AliasName, text: this.selectedColumns[i].AliasName });
}
return data;
}
getSelect2DataForDynamicFiltersDatalistColumns() {
let data = [{ id: "0", text: "- Select Columns -" }];
for (var i = 0; i < this.datalistColumnsResponseData.length; i++) {
data.push({ id: this.datalistColumnsResponseData[i].ColumnId, text: this.datalistColumnsResponseData[i].AliasName });
}
return data;
}
bindSearchColumns() {
var searchcolumns = this.SearchColumns.split('|');
var SearchCols = [];
for (var s = 0; s < searchcolumns.length; s++) {
if (searchcolumns[s] != "") {
let SearchCol_Index = this.selectedColumns.findIndex(x => x.AliasName == searchcolumns[s]);
if (SearchCol_Index != -1) {
var col = this.selectedColumns[SearchCol_Index].ColumnId;
SearchCols.push(col);
}
}
}
$("#searchcolumns").val(searchcolumns).trigger("change");
}
changeDisplayname() {
$("#txt_displayname").val($("#txt_reportname").val());
}
getSortColumnsStringify() {
let SortArry = [];
for (var i = 0; i < this.SortColumns.length; i++) {
var col = this.SortColumns.find(x => x.SortIndex == i);
if (col)
SortArry.push({ Name: col.DisplayText, Order: col.SortOrder });
}
return SortArry.length ? JSON.stringify(SortArry) : "";
}
bindConnectedReportsSelect2(id) {
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportsautocompletevalueasuniqueid';
AutoCompleteHelper.getHelper().Create(id, "hfReportAutoComplete", url, null);
}
removeAndUpdateStringfiedSortColumns(AliasName) {
let index = this.SortColumns.findIndex(i => i.DisplayText === AliasName);
if (index != -1) {
this.SortColumns.splice(index, 1);
let item = `#sort_selected_columns #dsl_column_${AliasName}`;
$(item).remove();
this.stringifyed_SortColumns = this.getSortColumnsStringify();
}
}
isDownload(columnId, aliasName) {
var instance = this;
let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
if (index > -1) {
if ($("#isDownload_" + columnId).prop("checked") == true) {
instance.selectedColumns[index].IsDownload = true;
}
else {
instance.selectedColumns[index].IsDownload = false;
}
}
}
isNumFormatting(columnId, aliasName) {
var instance = this;
let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
if (index > -1) {
if ($("#isNumFormatting_" + columnId).prop("checked") == true) {
instance.selectedColumns[index].IsNumFormatting = true;
}
else {
instance.selectedColumns[index].IsNumFormatting = false;
}
}
}
isRowTotal(columnId, aliasName) {
var instance = this;
let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
if (index > -1) {
if ($("#isRowTotal_" + columnId).prop("checked") == true) {
instance.selectedColumns[index].IsRowTotal = true;
}
else {
instance.selectedColumns[index].IsRowTotal = false;
}
}
}
isImageUrl(columnId, aliasName) {
var instance = this;
let index = instance.getIndexByAliasName_selectedColumnsArray(aliasName);
if (index > -1) {
if ($("#isimageurl_" + columnId).prop("checked") == true) {
instance.selectedColumns[index].IsImageUrl = true;
}
else {
instance.selectedColumns[index].IsImageUrl = false;
}
}
}
updateDynamicFilterIndex() {
$("#dynamic-list-group-wrapper").children().each((i, e) => {
let colAliasName = $(e).data("isfilterablecolumn");
if (colAliasName) {
let idx = this.dynamicFilters.findIndex(x => x.IsFilterableColumn == colAliasName);
if (idx != -1) {
this.dynamicFilters[idx].Index = i;
}
}
});
}
updateInternalReportCb(isInternalreport, disabled) {
$("#internalreport_checkbox").prop('checked', isInternalreport).attr("disabled", disabled);
}
togglePinDynamicFilters() {
const instance = this;
const filter = instance.dynamicFilters.find(x => x.IsRequired === true);
if (filter) {
$('#pindynamicfilters_checkbox').prop({ 'checked': true, 'disabled': true });
}
else if (!instance.pinDynamicFilters) {
$('#pindynamicfilters_checkbox').prop({ 'checked': false, 'disabled': false });
}
else {
$('#pindynamicfilters_checkbox').prop('disabled', false);
}
}
static Instance() {
if (this.rb_instance === undefined) {
this.rb_instance = new ReportBuilder();
}
return this.rb_instance;
}
}
Reports.ReportBuilder = ReportBuilder;
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
})(Unibase || (Unibase = {}));