Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

pivot.js 41KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Platform;
  13. (function (Platform) {
  14. let Analytics;
  15. (function (Analytics) {
  16. let Reports;
  17. (function (Reports) {
  18. class Pivot extends Platform.Core.BaseComponent {
  19. constructor() {
  20. super();
  21. this.pivotTypeId = 0;
  22. this.isDataTreeExpand = false;
  23. this.reportManager = Analytics.Managers.ReportManager.Instance();
  24. this._reportBuilder = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance();
  25. this._reportBuilderTemplate = Reports.ReportBuilder_Template.Instance();
  26. }
  27. cssFiles() {
  28. return [];
  29. }
  30. jsFiles() {
  31. var jsFiles = ['platform/analytics/components/reportbuilder/reportbuilderhiddenfields.js'];
  32. return jsFiles;
  33. }
  34. html(id, containerid) {
  35. var instance = this;
  36. let html = instance._reportBuilderTemplate.loadPivotForm();
  37. return html;
  38. }
  39. load(id, containerid, callback) {
  40. var instance = this;
  41. $("#" + containerid).find(".modal-body").height($(window).outerHeight() - 125);
  42. this.loadPivotSelect2s();
  43. $("#chktreeexpand_checkbox").click(function () {
  44. if ($('#chktreeexpand_checkbox').prop('checked') == false) {
  45. instance.isDataTreeExpand = false;
  46. $('#chktreeexpand_checkbox').prop('checked', false);
  47. }
  48. else {
  49. instance.isDataTreeExpand = true;
  50. $('#chktreeexpand_checkbox').prop('checked', true);
  51. }
  52. });
  53. $("#chkPivotTableConfig_checkbox").click(function () {
  54. if ($('#chkPivotTableConfig_checkbox').prop('checked') == false) {
  55. instance._reportBuilder.enablePivotTableConfig = false;
  56. $('#chkPivotTableConfig_checkbox').prop('checked', false);
  57. }
  58. else {
  59. instance._reportBuilder.enablePivotTableConfig = true;
  60. $('#chkPivotTableConfig_checkbox').prop('checked', true);
  61. }
  62. });
  63. if (instance._reportBuilder.pivot.ColumnName != "" && (instance._reportBuilder.pivot.ColumnName)) {
  64. var colName = instance._reportBuilder.pivot.ColumnName;
  65. var Index = instance._reportBuilder.selectedColumns.findIndex(x => x.ColumnName == colName);
  66. var colId = instance._reportBuilder.selectedColumns[Index].ColumnId;
  67. $("#PivotColumns_AutoComplete").val(colId).trigger("change");
  68. let aggrValue = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.AggColumnName);
  69. $("#PivotAggrColumn").val(aggrValue).trigger("change");
  70. let aggrTypeId = instance._reportBuilder.pivot.AggFuncId;
  71. $("#PivotAggrType").val(aggrTypeId).trigger("change");
  72. let DateValue = instance._reportBuilder.pivot.DateType;
  73. if (DateValue)
  74. $("#PivotDateType").val(DateValue).trigger("change");
  75. if (instance._reportBuilder.TenureReport.length != 0) {
  76. let TimeInterval = instance._reportBuilder.TenureReport[colName].TimeInterval;
  77. if (TimeInterval != undefined) {
  78. $("#tenure_checkbox").prop("checked", true);
  79. $("#div_Intervals").removeClass("hidden");
  80. $("#txt_TimeIntervals").val(TimeInterval);
  81. }
  82. }
  83. if (instance._reportBuilder.pivot.IsPivotRows_Selected == true) {
  84. let val = instance._reportBuilder.pivot.PivotRows;
  85. $("#PivotRows_Select2").val(val).trigger("change");
  86. }
  87. }
  88. if (instance.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
  89. if (instance._reportBuilder.pivot.AggColumnName != undefined) {
  90. let aggrValue = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.AggColumnName);
  91. $("#PivotAggrColumn").val(aggrValue).trigger("change");
  92. let aggrTypeId = instance._reportBuilder.pivot.AggFuncId;
  93. $("#PivotAggrType").val(aggrTypeId).trigger("change");
  94. }
  95. }
  96. if (instance._reportBuilder.pivot.ParentColumnName != "" && (instance._reportBuilder.pivot.ParentColumnName)) {
  97. let childCol = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.ChildColumnName);
  98. $("#PivotChildColumnName_AutoComplete").val(childCol).trigger("change");
  99. let childVal = instance._reportBuilder.pivot.PivotValue_Selected;
  100. $("#PivotValue_AutoComplete").val(childVal).trigger("change");
  101. let parentColId = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.ParentColumnName);
  102. $("#PivotParentColumnName_AutoComplete").val(parentColId).trigger("change");
  103. $('#chktreeexpand_checkbox').prop('checked', instance._reportBuilder.pivot.IsDatatreeExpand);
  104. }
  105. $("#tenure_checkbox").click(function () {
  106. if ($('#tenure_checkbox').prop('checked') == true) {
  107. $("#div_Intervals").removeClass("hidden");
  108. $("#PivotDateType").append(`<option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.day + `"> Day </option>`);
  109. Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
  110. }
  111. else {
  112. $("#div_Intervals").addClass("hidden");
  113. $("#txt_TimeIntervals").val("");
  114. $("#PivotDateType option[value='" + Unibase.Platform.Analytics.Reports.Enums.AggregationType.day + "']").remove();
  115. instance._reportBuilder.TenureReport = [];
  116. }
  117. });
  118. $("#btn_Close").click(function () {
  119. $('#' + containerid).modal('hide');
  120. $('#' + containerid).remove();
  121. });
  122. $("#btn_ApplyPivot").click(function () {
  123. instance.applyPivot();
  124. $('#' + containerid).modal('hide');
  125. $('#' + containerid).remove();
  126. });
  127. }
  128. loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
  129. return [];
  130. }
  131. selectedpivotType(pivotType) {
  132. var instance = this;
  133. let pivotTypeId;
  134. if (pivotType == 0) {
  135. instance.clearPivotFields();
  136. pivotTypeId = Number($("#pivotType_Select2").val());
  137. instance.intervals = $("#txt_TimeIntervals").val().toString();
  138. this.pivotTypeId = 0;
  139. }
  140. else {
  141. pivotTypeId = pivotType;
  142. $("#pivotType_Select2").val(pivotType);
  143. }
  144. if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot) {
  145. $("#div_PivotColumns").removeClass("hidden");
  146. $("#div_PivotDateType").removeClass("hidden");
  147. $("#div_PivotAggrColumn").removeClass("hidden");
  148. $("#div_PivotAggrType").removeClass("hidden");
  149. $(".drawerFooterApplyPivot").removeClass("hidden");
  150. $("#div_Intervals").addClass("hidden");
  151. $("#div_PivotTableConfig").addClass("hidden");
  152. $("#div_datatreeexpand").addClass("hidden");
  153. $("#div_PivotChildColumnName").addClass("hidden");
  154. $("#div_PivotValue").addClass("hidden");
  155. $("#div_PivotParentColumnName").addClass("hidden");
  156. $("#div_PivotRows").removeClass("hidden");
  157. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot;
  158. }
  159. else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
  160. $("#div_datatreeexpand").removeClass("hidden");
  161. $("#div_PivotChildColumnName").removeClass("hidden");
  162. $("#div_PivotValue").removeClass("hidden");
  163. $("#div_PivotParentColumnName").removeClass("hidden");
  164. $(".drawerFooterApplyPivot").removeClass("hidden");
  165. $("#div_PivotTableConfig").addClass("hidden");
  166. $("#div_PivotColumns").addClass("hidden");
  167. $("#div_PivotDateType").addClass("hidden");
  168. $("#div_PivotAggrColumn").addClass("hidden");
  169. $("#div_PivotAggrType").addClass("hidden");
  170. $("#div_Intervals").addClass("hidden");
  171. $("#div_PivotRows").addClass("hidden");
  172. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView;
  173. }
  174. else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
  175. $("#div_PivotColumns").removeClass("hidden");
  176. $("#div_PivotDateType").removeClass("hidden");
  177. $("#div_PivotAggrColumn").removeClass("hidden");
  178. $("#div_PivotAggrType").removeClass("hidden");
  179. $("#div_datatreeexpand").removeClass("hidden");
  180. $("#div_PivotChildColumnName").removeClass("hidden");
  181. $("#div_PivotValue").removeClass("hidden");
  182. $("#div_PivotParentColumnName").removeClass("hidden");
  183. $(".drawerFooterApplyPivot").removeClass("hidden");
  184. $("#div_PivotTableConfig").addClass("hidden");
  185. $("#div_PivotRows").addClass("hidden");
  186. $("#div_Intervals").addClass("hidden");
  187. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView;
  188. }
  189. else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval) {
  190. $("#div_Intervals").removeClass("hidden");
  191. $("#div_PivotColumns").removeClass("hidden");
  192. $("#div_PivotDateType").removeClass("hidden");
  193. $("#div_PivotAggrColumn").removeClass("hidden");
  194. $("#div_PivotAggrType").removeClass("hidden");
  195. $(".drawerFooterApplyPivot").removeClass("hidden");
  196. $("#div_PivotTableConfig").addClass("hidden");
  197. $("#div_datatreeexpand").addClass("hidden");
  198. $("#div_PivotChildColumnName").addClass("hidden");
  199. $("#div_PivotValue").addClass("hidden");
  200. $("#div_PivotParentColumnName").addClass("hidden");
  201. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval;
  202. }
  203. else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
  204. $(".drawerFooterApplyPivot").removeClass("hidden");
  205. $("#div_PivotAggrColumn").removeClass("hidden");
  206. $("#div_PivotAggrType").removeClass("hidden");
  207. $("#div_PivotTableConfig").removeClass("hidden");
  208. $("#div_PivotColumns").addClass("hidden");
  209. $("#div_PivotDateType").addClass("hidden");
  210. $("#div_Intervals").addClass("hidden");
  211. $("#div_PivotRows").addClass("hidden");
  212. $("#div_datatreeexpand").addClass("hidden");
  213. $("#div_PivotChildColumnName").addClass("hidden");
  214. $("#div_PivotValue").addClass("hidden");
  215. $("#div_PivotParentColumnName").addClass("hidden");
  216. instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable;
  217. }
  218. }
  219. clearPivotFields() {
  220. $("#txt_TimeIntervals").text("");
  221. $('#PivotColumns_AutoComplete').val('0').trigger('change');
  222. $('#PivotDateType').val('0').trigger('change');
  223. $('#PivotAggrColumn').val('0').trigger('change');
  224. $('#PivotAggrType').val('-1').trigger('change');
  225. $('#PivotChildColumnName_AutoComplete').val('0').trigger('change');
  226. $('#PivotValue_AutoComplete').val('0').trigger('change');
  227. $('#PivotParentColumnName_AutoComplete').val('0').trigger('change');
  228. $('#chktreeexpand_checkbox').prop("checked", false);
  229. }
  230. applyPivot() {
  231. var instance = this;
  232. if (this.pivotTypeId != Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
  233. $("#ExpandIcon, #CollapseIcon").removeClass("hidden");
  234. instance._reportBuilder.dataTreeRowExpandedColumn = [];
  235. var colId = $("#PivotColumns_AutoComplete option:selected").val();
  236. var colName = $("#PivotColumns_AutoComplete option:selected").text();
  237. instance._reportBuilder.pivot.ColumnName = "";
  238. instance._reportBuilder.pivot.ColumnName = colName;
  239. let val = $("#PivotRows_Select2").val();
  240. if (val.length == 0) {
  241. instance._reportBuilder.pivot.IsPivotRows_Selected = false;
  242. for (var opt = 0; opt < $("#PivotRows_Select2").find("option").length; opt++) {
  243. let option = $($("#PivotRows_Select2").find("option")[opt]).val();
  244. val.push(option);
  245. }
  246. }
  247. else {
  248. instance._reportBuilder.pivot.IsPivotRows_Selected = true;
  249. }
  250. instance._reportBuilder.pivot.PivotRows = val;
  251. instance._reportBuilder.pivot.AggColumnName = $("#PivotAggrColumn option:selected").text();
  252. instance._reportBuilder.pivot.AggFuncId = Number($("#PivotAggrType option:selected").val());
  253. if (Number($("#PivotParentColumnName_AutoComplete option:selected").val()) != 0) {
  254. instance._reportBuilder.IsPivotTree = true;
  255. instance._reportBuilder.pivot.IsDatatreeExpand = instance.isDataTreeExpand;
  256. instance._reportBuilder.pivot.ChildColumnName = $("#PivotChildColumnName_AutoComplete option:selected").text();
  257. instance._reportBuilder.pivot.ChildColumnValue = Number($("#PivotValue_AutoComplete option:selected").text());
  258. instance._reportBuilder.pivot.ParentColumnName = $("#PivotParentColumnName_AutoComplete option:selected").text();
  259. if ($("#PivotValue_AutoComplete option:selected").val() != "-1") {
  260. instance._reportBuilder.pivot.PivotValue_Selected = Number($("#PivotValue_AutoComplete option:selected").text());
  261. }
  262. }
  263. else {
  264. instance._reportBuilder.IsPivotTree = false;
  265. }
  266. instance._reportBuilder.TenureReport = [];
  267. if ($("#txt_TimeIntervals").val() != "") {
  268. instance._reportBuilder.TenureReport[colName] = {
  269. TimeInterval: $("#txt_TimeIntervals").val(),
  270. };
  271. var Values_len = instance._reportBuilder.TenureReport.length;
  272. instance._reportBuilder.TenureReport.length = Values_len + 1;
  273. instance._reportBuilder.Interval = $("#txt_TimeIntervals").val();
  274. }
  275. if (this.pivotTypeId) {
  276. let pivot = instance._reportBuilder.pivot;
  277. if (this.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
  278. if (!pivot.ParentColumnName || pivot.ParentColumnName == "Select Pivot Parent Column" || !pivot.ChildColumnName || pivot.ChildColumnName == "- Select Pivot Child Column -" || pivot.PivotValue_Selected == -1)
  279. return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
  280. if (instance._reportBuilder.selectedColumns.findIndex(x => x.AliasName.toLowerCase().includes("haschild")) == -1)
  281. return MessageHelper.Instance().showError("For Tree View report 'hasChild' report column should be must", "div_ReportBuilderErrorMessage");
  282. }
  283. else if (this.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
  284. if (!pivot.ParentColumnName || pivot.ParentColumnName == "Select Pivot Parent Column" || !pivot.ChildColumnName || pivot.ChildColumnName == "- Select Pivot Child Column -" ||
  285. !pivot.ColumnName || pivot.ColumnName == "- Select Pivot Column -" || !pivot.AggColumnName || pivot.AggColumnName == "- Select Aggregation Column -")
  286. return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
  287. if (instance._reportBuilder.selectedColumns.findIndex(x => x.AliasName.toLowerCase().includes("haschild")) == -1)
  288. return MessageHelper.Instance().showError("For Pivot Treeview report 'hasChild' report column should be must", "div_ReportBuilderErrorMessage");
  289. }
  290. else if (!pivot.ColumnName || pivot.ColumnName == "- Select Pivot Column -" || !pivot.AggColumnName || pivot.AggColumnName == "- Select Aggregation Column -" || pivot.AggFuncId == -1)
  291. return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
  292. }
  293. instance._reportBuilder.datatreeIndex_Width = 70;
  294. instance._reportBuilder.load_data(instance._reportBuilder.table);
  295. }
  296. else {
  297. instance._reportBuilder.pivot.AggColumnName = $("#PivotAggrColumn option:selected").text();
  298. instance._reportBuilder.pivot.AggFuncId = Number($("#PivotAggrType option:selected").val());
  299. instance.loadPivotTable(instance._reportBuilder.table);
  300. }
  301. }
  302. loadPivotTable(table) {
  303. return __awaiter(this, void 0, void 0, function* () {
  304. var instance = this;
  305. var repObj = instance._reportBuilder.getReportData();
  306. yield instance.reportManager.getTableData(repObj).then(function (response) {
  307. if (response.status == Unibase.Data.Status.Success) {
  308. if (response.result != "") {
  309. var res = JSON.parse(response.result);
  310. var rptData = "";
  311. if (res != "" && res.Data) {
  312. rptData = JSON.parse(res.Data);
  313. instance.pivotTable(rptData);
  314. }
  315. else {
  316. return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
  317. }
  318. }
  319. else {
  320. return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
  321. }
  322. }
  323. else {
  324. return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
  325. }
  326. });
  327. });
  328. }
  329. pivotTable(reportresponse) {
  330. var instance = this;
  331. instance.fileCacheHelper.loadCssFile("libs/pivottable/css/pivot.css", function () {
  332. instance.fileCacheHelper.loadJsFile("libs/pivottable/js/pivot.js", function () {
  333. var rptRowCols = [];
  334. var rptColumnCols = [];
  335. if (instance._reportBuilder.ReportColumns.length != 0) {
  336. for (var p = 0; p < instance._reportBuilder.ReportColumns.length; p++) {
  337. if (instance._reportBuilder.ReportColumns[p].IsPivotTableCol) {
  338. rptColumnCols.push("" + instance._reportBuilder.ReportColumns[p].AliasName + "");
  339. }
  340. else {
  341. rptRowCols.push("" + instance._reportBuilder.ReportColumns[p].AliasName + "");
  342. }
  343. }
  344. }
  345. let containerEl = $("#tabulatorReportbuilder");
  346. containerEl.pivotUI(reportresponse, {
  347. cols: rptColumnCols,
  348. rows: rptRowCols,
  349. unusedAttrsVertical: 'hours',
  350. rendererName: "Table",
  351. onRefresh: function (config) {
  352. return __awaiter(this, void 0, void 0, function* () {
  353. const pvtUnusedList = [];
  354. containerEl.find('.pvtUnused .pvtAttr').each(function (i, e) {
  355. pvtUnusedList.push($(e).contents().get(0).nodeValue);
  356. var hiddencol_index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray($(e).contents().get(0).nodeValue);
  357. if (hiddencol_index > -1) {
  358. instance._reportBuilder.selectedColumns[hiddencol_index].Isvisible = false;
  359. }
  360. });
  361. for (var c = 0; c < config.cols.length; c++) {
  362. var index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(config.cols[c]);
  363. if (index > -1) {
  364. instance._reportBuilder.selectedColumns[index].IsPivotTableCol = true;
  365. }
  366. if (config.vals.length > 0) {
  367. var aggrcol_index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(config.vals[0]);
  368. if (aggrcol_index > -1) {
  369. var aggrtypeid = yield instance.getPivotAggregationTypeId(config.aggregatorName);
  370. instance._reportBuilder.selectedColumns[aggrcol_index].PivotTableAggrTypeId = aggrtypeid;
  371. }
  372. }
  373. }
  374. });
  375. }
  376. });
  377. instance._reportBuilder.EditableTabulatorTitle();
  378. containerEl.find('.pvtAttr').append('<span></span>');
  379. containerEl.addClass('pivot-ui-tableview');
  380. containerEl.find('button').each(function (i, e) {
  381. if ($(e).text().toLowerCase().includes('cancel')) {
  382. $(e).addClass('btn btn-outline-danger btn-sm');
  383. }
  384. else {
  385. $(e).addClass('btn btn-primary btn-sm');
  386. }
  387. });
  388. });
  389. });
  390. }
  391. getPivotAggregationTypeId(aggrName) {
  392. var aggrtypeid = 0;
  393. var instance = this;
  394. instance.fileCacheHelper.loadJsFileAsync("platform/analytics/enums/pivottableaggregationtype.js", function () {
  395. switch (aggrName) {
  396. case 'Count':
  397. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Count;
  398. break;
  399. case 'Count Unique Values':
  400. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.CountUniqueValues;
  401. break;
  402. case 'List Unique Values':
  403. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.ListUniqueValues;
  404. break;
  405. case 'Sum':
  406. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Sum;
  407. break;
  408. case 'Integer Sum':
  409. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.IntegerSum;
  410. break;
  411. case 'Average':
  412. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Average;
  413. break;
  414. case 'Median':
  415. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Median;
  416. break;
  417. case 'Sample Variance':
  418. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SampleVariance;
  419. break;
  420. case 'Sample Standard Deviation':
  421. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SampleStandardDeviation;
  422. break;
  423. case 'Minimum':
  424. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Minimum;
  425. break;
  426. case 'Maximum':
  427. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Maximum;
  428. break;
  429. case 'First':
  430. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.First;
  431. break;
  432. case 'Last':
  433. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Last;
  434. break;
  435. case 'Sum over Sum':
  436. aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SumoverSum;
  437. break;
  438. }
  439. });
  440. return aggrtypeid;
  441. }
  442. changedPivotColumn() {
  443. var instance = this;
  444. $("#PivotRows_Select2").val("").trigger("change");
  445. $("#PivotRows_Select2").empty();
  446. var colId = Number($("#PivotColumns_AutoComplete option:selected").val());
  447. if (colId != 0) {
  448. var rows;
  449. var dataType = Number($("#allDatalistColumns #li_" + colId + " span.datalist_column").attr('data-column-datatype'));
  450. if (dataType != Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
  451. $("#PivotDateType").val("0");
  452. var colName = $("#PivotColumns_AutoComplete option:selected").text();
  453. var AggrFuncId = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().Aggregations.findIndex(x => x == $("#PivotDateType option:selected").val());
  454. instance._reportBuilder.getDistinctData(Number(colId), colName, AggrFuncId);
  455. }
  456. else {
  457. if ($("#tenure_checkbox").prop("checked") == true || instance._reportBuilder.TenureReport.length != 0) {
  458. $("#PivotDateType").empty().append(`<option value="0"> Select Date Type </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.day + `"> Day </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.month + `" > Month </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.year + `" > Year </option>`);
  459. }
  460. else {
  461. $("#PivotDateType").empty().append(`<option value="0"> Select Date Type </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.month + `"> Month </option><option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.year + `"> Year </option>`);
  462. }
  463. }
  464. $("#PivotRows_Select2").select2({
  465. placeholder: 'Select Pivot Rows',
  466. data: rows,
  467. });
  468. }
  469. }
  470. changedDateType() {
  471. return __awaiter(this, void 0, void 0, function* () {
  472. var instance = this;
  473. var colId = Number($("#PivotColumns_AutoComplete option:selected").val());
  474. if (colId != 0) {
  475. var colName = $("#PivotColumns_AutoComplete option:selected").text();
  476. var AggrFuncId = Number($("#PivotDateType option:selected").val());
  477. var index = instance._reportBuilder.getIndexByColumnName_selectedColumnsArray(colName);
  478. instance._reportBuilder.selectedColumns[index].DataType = AggrFuncId;
  479. yield instance._reportBuilder.getDistinctData(colId, colName, AggrFuncId);
  480. Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().pivot.DateType = Number($("#PivotDateType option:selected").val());
  481. let val = instance._reportBuilder.pivot.PivotRows;
  482. if (!val) {
  483. $("#PivotRows_Select2").select2({
  484. placeholder: 'No data to show',
  485. });
  486. }
  487. else if (val.length != 0) {
  488. $("#PivotRows_Select2").select2({
  489. placeholder: 'Select Pivot Rows',
  490. data: val,
  491. });
  492. }
  493. }
  494. });
  495. }
  496. getDistinctChildColumnData(colName) {
  497. var instance = this;
  498. instance._reportBuilder.distinctColumnData = [];
  499. var cf_fromDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate);
  500. var cf_toDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate);
  501. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDistinctColumnData(instance._reportBuilder.DataListId, colName, 0, cf_fromDate, cf_toDate).then(function (response) {
  502. if (response != "") {
  503. for (var i = 0; i < response.length; i++) {
  504. instance._reportBuilder.distinctColumnData.push(response[i][colName]);
  505. }
  506. var parentvalues = instance._reportBuilder.distinctColumnData;
  507. $("#PivotValue_AutoComplete").select2({
  508. placeholder: 'Select Pivot Child Value',
  509. data: parentvalues,
  510. });
  511. let childVal = instance._reportBuilder.pivot.PivotValue_Selected;
  512. if (childVal != -1 && childVal != undefined) {
  513. $("#PivotValue_AutoComplete").val(childVal).trigger("change");
  514. }
  515. }
  516. });
  517. }
  518. changedPivotAggrColumn() {
  519. var instance = this;
  520. $("#PivotAggrType").empty().append(`<option value="-1" > Select Aggregation Type </option>`);
  521. var colId = Number($("#PivotAggrColumn option:selected").val());
  522. if (colId != 0) {
  523. let DataType = Number($("#allDatalistColumns #li_" + colId + " span.datalist_column").attr('data-column-datatype'));
  524. let Aggregation = instance._reportBuilder.getAggregationsByDataType(DataType);
  525. for (var i = 0; i < Aggregation.length; i++) {
  526. $("#PivotAggrType").append(`<option value="` + Aggregation[i].Value + `" > ` + Aggregation[i].AggrType + ` </option>`);
  527. }
  528. }
  529. }
  530. changedPivotChildColumn() {
  531. return __awaiter(this, void 0, void 0, function* () {
  532. var instance = this;
  533. $("#PivotValue_AutoComplete").empty().append(`<option value="-1" > Select Parent Value </option>`);
  534. $("#div_PivotValue").removeClass("hidden");
  535. var colName = $("#PivotChildColumnName_AutoComplete option:selected").text();
  536. var colId = Number($("#PivotChildColumnName_AutoComplete option:selected").val());
  537. if (colId != 0) {
  538. var Whole_tableData = instance._reportBuilder.tableData;
  539. var tableData = JSON.parse(Whole_tableData);
  540. var columns = [];
  541. yield instance.getDistinctChildColumnData(colName);
  542. }
  543. });
  544. }
  545. loadPivotSelect2s() {
  546. var columns = [];
  547. var selectedColumns = this._reportBuilder.selectedColumns;
  548. for (let i = 0; i < selectedColumns.length; i++)
  549. columns.push({ id: selectedColumns[i].ColumnId, text: selectedColumns[i].ColumnName });
  550. $("#PivotColumns_AutoComplete").select2({
  551. placeholder: 'Select Pivot Column',
  552. data: columns,
  553. });
  554. $("#PivotAggrColumn").select2({
  555. placeholder: 'Select Pivot Aggregation Column',
  556. data: columns,
  557. });
  558. $("#PivotChildColumnName_AutoComplete").select2({
  559. placeholder: 'Select Pivot Parent Column Name',
  560. data: columns,
  561. });
  562. $("#PivotParentColumnName_AutoComplete").select2({
  563. placeholder: 'Select Pivot Parent Column Name',
  564. data: columns,
  565. });
  566. }
  567. static Instance() {
  568. if (this.instance === undefined) {
  569. this.instance = new Pivot();
  570. }
  571. return this.instance;
  572. }
  573. }
  574. Reports.Pivot = Pivot;
  575. })(Reports = Analytics.Reports || (Analytics.Reports = {}));
  576. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  577. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  578. })(Unibase || (Unibase = {}));