Iniit
Этот коммит содержится в:
@@ -0,0 +1,31 @@
|
||||
var Unibase;
|
||||
(function (Unibase) {
|
||||
let Platform;
|
||||
(function (Platform) {
|
||||
let Analytics;
|
||||
(function (Analytics) {
|
||||
let Reports;
|
||||
(function (Reports) {
|
||||
class ColumnFormat {
|
||||
loadFormats(DataType) {
|
||||
var formats = [];
|
||||
if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
|
||||
formats = [{ id: 0, format: 'Default' }, { id: 1, format: 'dd/mm/yyyy' }, { id: 2, format: 'mm/dd/yyyy' }, { id: 3, format: 'yyyy/mm/dd' }, { id: 4, format: 'Mon dd, yyyy' }, { id: 5, format: 'Mon/yyyy' }, { id: 6, format: 'hh' }, { id: 7, format: 'mm' }, { id: 8, format: 'ss' }, { id: 9, format: 'hh:mm:ss' }, { id: 10, format: 'hh:mm:ss AM' }, { id: 11, format: 'dd/mm/yyyy hh:mm:ss' }, { id: 12, format: 'dd/mm/yyyy hh:mm' }, { id: 13, format: 'dd/mm/yyyy hh:mm:ss AM' }, { id: 14, format: 'Mon dd, yyyy hh:mm:ss AM' }];
|
||||
}
|
||||
else if (DataType == Unibase.Platform.Analytics.Reports.Enums.DataType.decimal) {
|
||||
formats = [{ id: 0, format: 'Default' }, { id: 1, format: '0.0' }, { id: 2, format: '0.00' }, { id: 3, format: '0.000' }, { id: 3, format: '0.0000' }];
|
||||
}
|
||||
return formats;
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new ColumnFormat();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Reports.ColumnFormat = ColumnFormat;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"columnformat.js","sourceRoot":"","sources":["columnformat.ts"],"names":[],"mappings":"AAAA,IAAU,OAAO,CA4BhB;AA5BD,WAAU,OAAO;IACb,IAAiB,QAAQ,CA0BxB;IA1BD,WAAiB,QAAQ;QACrB,IAAiB,SAAS,CAwBzB;QAxBD,WAAiB,SAAS;YACtB,IAAiB,OAAO,CAsBvB;YAtBD,WAAiB,OAAO;gBACpB,MAAa,YAAY;oBAErB,WAAW,CAAC,QAAe;wBACvB,IAAI,OAAO,GAAG,EAAE,CAAC;wBACjB,IAAI,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;4BACxE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAA;yBAC9gB;6BAAM,IAAI,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;4BAC9E,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;yBAC1J;wBAED,OAAO,OAAO,CAAC;oBACnB,CAAC;oBAGD,MAAM,CAAC,QAAQ;wBACX,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;4BAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;yBACtC;wBACD,OAAO,IAAI,CAAC,QAAQ,CAAC;oBACzB,CAAC;iBACJ;gBApBY,oBAAY,eAoBxB,CAAA;YACL,CAAC,EAtBgB,OAAO,GAAP,iBAAO,KAAP,iBAAO,QAsBvB;QACL,CAAC,EAxBgB,SAAS,GAAT,kBAAS,KAAT,kBAAS,QAwBzB;IACL,CAAC,EA1BgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA0BxB;AACL,CAAC,EA5BS,OAAO,KAAP,OAAO,QA4BhB"}
|
||||
поставляемый
Исполняемый файл
@@ -0,0 +1 @@
|
||||
var Unibase;(function(n){let t;(function(t){let i;(function(t){let i;(function(t){class i{loadFormats(t){var i=[];return t==n.Platform.Analytics.Reports.Enums.DataType.dateTime?i=[{id:0,format:"Default"},{id:1,format:"dd/mm/yyyy"},{id:2,format:"mm/dd/yyyy"},{id:3,format:"yyyy/mm/dd"},{id:4,format:"Mon dd, yyyy"},{id:5,format:"Mon/yyyy"},{id:6,format:"hh"},{id:7,format:"mm"},{id:8,format:"ss"},{id:9,format:"hh:mm:ss"},{id:10,format:"hh:mm:ss AM"},{id:11,format:"dd/mm/yyyy hh:mm:ss"},{id:12,format:"dd/mm/yyyy hh:mm"},{id:13,format:"dd/mm/yyyy hh:mm:ss AM"},{id:14,format:"Mon dd, yyyy hh:mm:ss AM"}]:t==n.Platform.Analytics.Reports.Enums.DataType.decimal&&(i=[{id:0,format:"Default"},{id:1,format:"0.0"},{id:2,format:"0.00"},{id:3,format:"0.000"},{id:3,format:"0.0000"}]),i}static Instance(){return this.instance===undefined&&(this.instance=new i),this.instance}}t.ColumnFormat=i})(i=t.Reports||(t.Reports={}))})(i=t.Analytics||(t.Analytics={}))})(t=n.Platform||(n.Platform={}))})(Unibase||(Unibase={}));
|
||||
@@ -0,0 +1,640 @@
|
||||
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 DynamicFilter extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.isUnLimited = true;
|
||||
this.isreportViewer = false;
|
||||
this.dynamicFilters = [];
|
||||
this.datalistColumns = [];
|
||||
this.dataListColumnName = "";
|
||||
this.reportManager = Analytics.Managers.ReportManager.Instance();
|
||||
this.reportBuilder = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
var jsFiles = ['platform/analytics/managers/reportmanager.js', 'platform/datasources/managers/datalistmanager.js'];
|
||||
return jsFiles;
|
||||
}
|
||||
html(id, containerid) {
|
||||
var html;
|
||||
if (this.dataListColumnName) {
|
||||
this.dataTypeId = this.reportBuilder.datalistColumnsResponseData[id].DataType;
|
||||
}
|
||||
else {
|
||||
this.dataTypeId = this.reportBuilder.selectedColumns[id].DataType;
|
||||
}
|
||||
if (this.dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
|
||||
html = this.getDateTimeDynamicFilterHtml();
|
||||
}
|
||||
else {
|
||||
html = this.getDynamicFilterHtml();
|
||||
}
|
||||
return html;
|
||||
}
|
||||
getDynamicFilterHtml() {
|
||||
return `<section id="is-filterable-section" class="modal-content">
|
||||
<div class="modal-header pa-10">
|
||||
<strong class="modal-title biz-highlight-bg-color">Dynamic Filter</strong>
|
||||
<a class="btn btn-sm btn-theme ml-auto" id="btnClear">Clear</a>
|
||||
<div id="report_viewer_filter" class="form-error-message"></div>
|
||||
</div>
|
||||
<div data-simplebar class="simple-scroll-bar modal-body" id="CardViewer_modal">
|
||||
<div class="sub-report-block card">
|
||||
<header class="sub-report-head">
|
||||
<h6>
|
||||
Filter
|
||||
</h6>
|
||||
<span><i class="las la-filter filter"></i></span>
|
||||
</header>
|
||||
<div class="report-body">
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-sm 12">
|
||||
<label> Display Name </label>
|
||||
<input type="text" class="form-control" id="txt_DisplayName" placeholder="Display Name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-sm 12">
|
||||
<label>Control Type</label>
|
||||
<select class="form-control custom-select" id="ControlTypeDropDown">
|
||||
<option value="0" selected="">Select Control Type</option>
|
||||
<option value="1">AutoComplete</option>
|
||||
<option value="2">TextBox</option>
|
||||
<option value="3">Select2</option>
|
||||
<option value="4">Cascading AutoComplete</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="col">
|
||||
<div id="div_datalistColumn">
|
||||
<label> DataList Name </label>
|
||||
<select id="dataList_AutoComplete" class="form-control text-control required">
|
||||
<option value="0" selected="">Select Datalist</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="col-sm-6">
|
||||
<div id="div_datalistvaluecolumn">
|
||||
<label> Value Column </label>
|
||||
<select id="datalistvalue_AutoComplete" class="form-control text-control required">
|
||||
<option value="0" selected="">Select Value Column</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div id="div_datalisttextcolumn">
|
||||
<label> Text Column </label>
|
||||
<select id="datalisttext_AutoComplete" class="form-control text-control required">
|
||||
<option value="0" selected="">Select Text Column</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10 dynFil-cascading hidden">
|
||||
<div class="col-sm-6">
|
||||
<div id="div_dynFilParentProperty">
|
||||
<label>Parent Property</label>
|
||||
<select id="dynFilParentProperty_AutoComplete" class="form-control text-control required">
|
||||
<option value="0" selected="">Select Parent Column</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div id="div_dynFilApplyFor" class="biz-select2-wrap">
|
||||
<label>Apply For</label>
|
||||
<select id="dynFilApplyFor_AutoComplete" class="form-control text-control required">
|
||||
<option value="0" selected="">Select Value Column</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10 mappedcolumnsdiv hidden">
|
||||
<div class="form-group col-sm 12">
|
||||
<label>Mapped Columns</label>
|
||||
<select class="form-control custom-select" id="mappedcolumnsdropdown">
|
||||
<option value="0" selected="">Select Column</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-sm 12">
|
||||
<label>FontCase Type</label>
|
||||
<select class="form-control custom-select" id="FontCaseTypeDropDown">
|
||||
<option value="0" selected="">Select FontCase Type</option>
|
||||
<option value="1">No Change</option>
|
||||
<option value="2">Upper Case</option>
|
||||
<option value="3">Lower Case</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-12">
|
||||
<div class="form-group col-6 col-sm-4">
|
||||
<label for="unlimited_checkbox">IsUnLimit</label>
|
||||
<div><input type="checkbox" class="chkIsUnLimited mr-10" id="isunlimited_checkbox">IsUnLimit</div>
|
||||
</div>
|
||||
<div class="form-group col-6 col-sm-4">
|
||||
<label for="isrequired_checkbox">Is Required</label>
|
||||
<div><input type="checkbox" class="chkisrequired mr-10" id="isrequired_checkbox">Is Required</div>
|
||||
</div>
|
||||
<div class="form-group col-6 col-sm-4">
|
||||
<label for="iscustomfilter_checkbox">Is CustomFilter</label>
|
||||
<div><input type="checkbox" class="chkiscustomfilter mr-10" id="iscustomfilter_checkbox">Is CustomFilter</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer pa-10">
|
||||
<a class="btn btn-sm btn-light mr-auto" id="btnClose">Close</a>
|
||||
<a class="btn btn-sm btn-primary" id="btnSave">Save</a>
|
||||
</div>
|
||||
</section>`;
|
||||
}
|
||||
getDateTimeDynamicFilterHtml() {
|
||||
return `<section id="is-filterable-section" class="modal-content">
|
||||
<div class="modal-header pa-10">
|
||||
<strong class="modal-title biz-highlight-bg-color">Dynamic Filter</strong>
|
||||
<a class="btn btn-sm btn-theme ml-auto" id="btnClear">Clear</a>
|
||||
<div id="report_viewer_filter" class="form-error-message"></div>
|
||||
</div>
|
||||
<div data-simplebar class="simple-scroll-bar modal-body" id="CardViewer_modal">
|
||||
<div class="sub-report-block card">
|
||||
<header class="sub-report-head">
|
||||
<h6>
|
||||
Filter
|
||||
</h6>
|
||||
</header>
|
||||
<div class="report-body">
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-sm 12">
|
||||
<label> Display Name </label>
|
||||
<input type="text" class="form-control" id="txt_DisplayName" placeholder="Display Name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-sm 12">
|
||||
<label>Date Range</label>
|
||||
<select name="daterangetypeid" class="form-control custom-select" id="daterangetypeid">
|
||||
<option value="0" selected>Select Date Range Type</option>
|
||||
<option value="1">Today</option>
|
||||
<option value="2">Yesterday</option>
|
||||
<option value="3">Last 7 Days</option>
|
||||
<option value="4">Last 30 Days</option>
|
||||
<option value="5">This Month</option>
|
||||
<option value="6">Last Month</option>
|
||||
<option value="7">This Quarter</option>
|
||||
<option value="8">Last Quarter</option>
|
||||
<option value="9">YTD</option>
|
||||
<option value="10">Last Year</option>
|
||||
<option value="11">FIY Year</option>
|
||||
<option value="12">PFIY Year</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group ml-4 mt-1 col-6 col-sm-4">
|
||||
<label for="replaceexistingdates">Replace Existing Dates</label>
|
||||
<div class="mt-2"><input type="checkbox" checked="true" class="replaceexistingdates mr-10" id="replaceexistingdates">Replace exiting fromdate and todate with selected date range</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer pa-10">
|
||||
<a class="btn btn-sm btn-light mr-auto" id="btnClose">Close</a>
|
||||
<a class="btn btn-sm btn-primary" id="btnSave">Save</a>
|
||||
</div>
|
||||
</section>
|
||||
`;
|
||||
}
|
||||
load(index, containerid, callback) {
|
||||
var instance = this;
|
||||
instance.selectedDatalistColumns = [];
|
||||
instance.loadDataLists();
|
||||
var reportcolumn = instance.reportBuilder.selectedColumns[index];
|
||||
if (!reportcolumn) {
|
||||
let col = this.reportBuilder.datalistColumnsResponseData.find(x => x.ColumnName == this.dataListColumnName);
|
||||
if (col) {
|
||||
reportcolumn = { AliasName: col.ColumnName, IsFilterable: true, DisplayText: col.ColumnName, DataType: col.DataType, ColumnName: col.ColumnName };
|
||||
}
|
||||
}
|
||||
var dynamicfilters = [];
|
||||
if (!instance.isreportViewer) {
|
||||
dynamicfilters = instance.reportBuilder.dynamicFilters.filter(function (o) { return o.IsFilterableColumn === reportcolumn.AliasName; });
|
||||
}
|
||||
else {
|
||||
dynamicfilters = instance.dynamicFilters.filter(function (o) { return o.IsFilterableColumn === instance.displayText; });
|
||||
}
|
||||
$("#daterangetypeid").val(0);
|
||||
instance.editDynamicFilter(dynamicfilters, reportcolumn);
|
||||
$("#dataList_AutoComplete").on('change', function () {
|
||||
instance.loadDataListColumns();
|
||||
});
|
||||
$("#btnClear").click(() => {
|
||||
this.clearDynamicFilterFields(reportcolumn);
|
||||
});
|
||||
$("#btnSave").unbind().click(function () {
|
||||
if (instance.isreportViewer)
|
||||
Unibase.Platform.Filters.Components.Editfilters.Instance().saveDynamicFilter(containerid);
|
||||
else
|
||||
instance.save(reportcolumn, containerid);
|
||||
});
|
||||
$("#btnClose").unbind().click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
instance.isreportViewer = false;
|
||||
instance.dataListColumnName = "";
|
||||
});
|
||||
$("#isunlimited_checkbox").click(function () {
|
||||
if ($('#isunlimited_checkbox').prop('checked') == false) {
|
||||
instance.isUnLimited = false;
|
||||
$('#isunlimited_checkbox').prop('checked', false);
|
||||
}
|
||||
else {
|
||||
instance.isUnLimited = true;
|
||||
$('#isunlimited_checkbox').prop('checked', true);
|
||||
}
|
||||
});
|
||||
$("#ControlTypeDropDown").change(function () {
|
||||
if (Number($("#ControlTypeDropDown option:selected").val()) == Unibase.Platform.Analytics.Enums.ControlType.cascadingautocomplete) {
|
||||
$(".dynFil-cascading").removeClass("hidden");
|
||||
instance.loadDynamicFilters();
|
||||
}
|
||||
else {
|
||||
$("#dynFilParentProperty_AutoComplete").val(0).trigger("change");
|
||||
$("#dynFilApplyFor_AutoComplete").val(0).trigger("change");
|
||||
$(".dynFil-cascading").addClass("hidden");
|
||||
}
|
||||
});
|
||||
}
|
||||
loadDataLists() {
|
||||
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/datalists/getall_autocomplete';
|
||||
AutoCompleteHelper.getHelper().Create("#dataList_AutoComplete", "#hfDynamicFilterAutoComplete_DataList", url, null);
|
||||
}
|
||||
loadDataListColumns() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var instance = this;
|
||||
yield instance.reportManager.getDataListColumns(Number($("#dataList_AutoComplete").val()), null, null).then(function (response) {
|
||||
if (response.status == Unibase.Data.Status.Success) {
|
||||
var res;
|
||||
if (response.result != "") {
|
||||
res = JSON.parse(response.result);
|
||||
instance.selectedDatalistColumns = res;
|
||||
var data = [];
|
||||
for (let i = 0; i < res.length; i++) {
|
||||
data.push({ id: res[i].AliasName, text: res[i].AliasName });
|
||||
}
|
||||
$("#datalistvalue_AutoComplete").empty().select2({
|
||||
placeholder: 'Select Value Column',
|
||||
data: data,
|
||||
});
|
||||
$("#datalisttext_AutoComplete").empty().select2({
|
||||
placeholder: 'Select Text Column',
|
||||
data: data,
|
||||
});
|
||||
$("#dynFilApplyFor_AutoComplete").empty().select2({
|
||||
placeholder: 'Select Value Column',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError("No DataListColumns", "divDynamicFilter_ErrorMessage");
|
||||
}
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError(response.message, "divDynamicFilter_ErrorMessage");
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
loadDynamicFilters() {
|
||||
var instance = this;
|
||||
debugger;
|
||||
if (instance.reportBuilder.dynamicFilters.length > 0) {
|
||||
var dFilters = [];
|
||||
for (var d = 0; d < instance.reportBuilder.dynamicFilters.length; d++) {
|
||||
var dfill = instance.reportBuilder.dynamicFilters[d];
|
||||
dFilters.push({ id: dfill.IsFilterableColumn, text: dfill.IsFilterableColumn });
|
||||
}
|
||||
$("#dynFilParentProperty_AutoComplete").select2({
|
||||
placeholder: 'Select Parent Column',
|
||||
data: dFilters,
|
||||
});
|
||||
}
|
||||
}
|
||||
save(reportcolumn, containerid) {
|
||||
var instance = this;
|
||||
let currentDatalistCol;
|
||||
let IsFilterable = reportcolumn.IsFilterable;
|
||||
if (IsFilterable == false)
|
||||
reportcolumn.IsFilterable = !IsFilterable;
|
||||
var dynamicFilters = instance.reportBuilder.dynamicFilters;
|
||||
let dynamicfilterid = 0;
|
||||
var dynamicfilIndex = dynamicFilters.find(d => d.IsFilterableColumn == reportcolumn.AliasName);
|
||||
var dynFill = dynamicFilters.filter(function (o) { return o.IsFilterableColumn === reportcolumn.AliasName; });
|
||||
if (dynFill.length > 0) {
|
||||
dynamicfilterid = dynFill[0].DynamicFilterId;
|
||||
var index = dynamicFilters.findIndex(function (o) {
|
||||
return (o.IsFilterableColumn === reportcolumn.AliasName);
|
||||
});
|
||||
if (index !== -1)
|
||||
dynamicFilters.splice(index, 1);
|
||||
}
|
||||
var model = new DynamicFilterModel();
|
||||
model.IsFilterableColumn = reportcolumn.AliasName;
|
||||
model.DataType = reportcolumn.DataType;
|
||||
model.DisplayName = $("#txt_DisplayName").val().toString();
|
||||
model.Index = (dynamicfilIndex) ? dynamicfilIndex.Index : dynamicFilters.length;
|
||||
if (this.dataTypeId == Reports.Enums.DataType.dateTime) {
|
||||
model.ReplaceExistingDates = $("#replaceexistingdates").prop("checked");
|
||||
model.DateRangeTypeId = Number($("#daterangetypeid").val());
|
||||
}
|
||||
else {
|
||||
model.DynamicFilterId = dynamicfilterid;
|
||||
model.DataListId = Number($("#dataList_AutoComplete").val());
|
||||
model.DataListName = instance.getSelect2Data("#dataList_AutoComplete");
|
||||
model.ReportId = 0;
|
||||
model.MappedColumn = $("#mappedcolumnsdropdown option:selected").val() === "0" ? "" : $("#mappedcolumnsdropdown option:selected").val().toString();
|
||||
model.TextColumn = instance.getSelect2Data("#datalisttext_AutoComplete");
|
||||
model.ValueIdColumn = Number($("#datalistvalue_AutoComplete").val());
|
||||
model.ValueColumn = instance.getSelect2Data("#datalistvalue_AutoComplete");
|
||||
model.TextIdColumn = Number($("#datalisttext_AutoComplete").val());
|
||||
model.ControlTypeId = Number($("#ControlTypeDropDown").val());
|
||||
model.FontCaseTypeId = Number($("#FontCaseTypeDropDown").val());
|
||||
model.IsDefault = $(".dynamicfilter-defaultdate_" + reportcolumn.ColumnName).is(":checked");
|
||||
model.IsUnLimited = $("#isunlimited_checkbox").prop("checked");
|
||||
model.IsRequired = $("#isrequired_checkbox").prop("checked");
|
||||
model.IsCustomFilter = $("#iscustomfilter_checkbox").prop("checked");
|
||||
model.DateRangeTypeId = 0;
|
||||
if (model.ControlTypeId == Unibase.Platform.Analytics.Enums.ControlType.cascadingautocomplete) {
|
||||
model.ParentColumn = $("#dynFilParentProperty_AutoComplete").select2('data')[0].text.trim();
|
||||
model.ApplyFor = $("#dynFilApplyFor_AutoComplete").select2('data')[0].text.trim();
|
||||
}
|
||||
let textCol = instance.selectedDatalistColumns.find(x => x.AliasName == model.TextColumn);
|
||||
let valCol = instance.selectedDatalistColumns.find(x => x.AliasName == model.ValueColumn);
|
||||
if (textCol && valCol && valCol.ColumnId == textCol.ColumnId) {
|
||||
return MessageHelper.Instance().showError("Text column and value column cannot be same", "report_viewer_filter");
|
||||
}
|
||||
if (textCol && (textCol.DataTypeId == Reports.Enums.DataType.int32 || textCol.DataTypeId == Reports.Enums.DataType.int64)) {
|
||||
return MessageHelper.Instance().showError("Text column cannot be interger type, convert to string and try again", "report_viewer_filter");
|
||||
}
|
||||
currentDatalistCol = this.datalistColumns.find(x => x.ColumnId == model.ValueIdColumn);
|
||||
if (currentDatalistCol && reportcolumn.DataType == Reports.Enums.DataType.string &&
|
||||
currentDatalistCol.DataTypeId != Reports.Enums.DataType.string && currentDatalistCol.DataTypeId != Reports.Enums.DataType.text)
|
||||
return MessageHelper.Instance().showError("Selected value column data type should be string", "report_viewer_filter");
|
||||
else if (currentDatalistCol && (reportcolumn.DataType == Reports.Enums.DataType.int32 || reportcolumn.DataType == Reports.Enums.DataType.int64 ||
|
||||
reportcolumn.DataType == Reports.Enums.DataType.decimal) && currentDatalistCol.DataTypeId != Reports.Enums.DataType.int32 &&
|
||||
currentDatalistCol.DataTypeId != Reports.Enums.DataType.int64 && currentDatalistCol.DataTypeId != Reports.Enums.DataType.decimal)
|
||||
return MessageHelper.Instance().showError("Selected value column data type should be integer as dynamic filter data type is integer", "report_viewer_filter");
|
||||
}
|
||||
instance.sortDynamicFilter(model);
|
||||
instance.reportBuilder.dynamicFilters.push(model);
|
||||
instance.reportBuilder.togglePinDynamicFilters();
|
||||
instance.navigationHelper.closePopUp();
|
||||
this.dataListColumnName = '';
|
||||
}
|
||||
getSelect2Data(id) {
|
||||
let Element = $(id);
|
||||
if (Element && Element.length && Element.hasClass("select2-hidden-accessible"))
|
||||
return Element.select2('data')[0].text.trim();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
sortDynamicFilter(model) {
|
||||
var instance = this;
|
||||
let filetersList = $('#dynamic-list-group-wrapper');
|
||||
if (!filetersList)
|
||||
return;
|
||||
filetersList.sortable({
|
||||
connectWith: "#dynamic-list-group-wrapper",
|
||||
cursor: 'move',
|
||||
update: function (event, ui) {
|
||||
$.each($('#dynamic-list-group-wrapper .datagroup'), function (index, item) {
|
||||
let itemName = $(item).attr('data-isfilterablecolumn');
|
||||
let dynamicFilters = instance.dynamicFilters;
|
||||
if (dynamicFilters.length != 0) {
|
||||
for (let x = 0; x < dynamicFilters.length; x++) {
|
||||
if (dynamicFilters[x].IsFilterableColumn == itemName) {
|
||||
dynamicFilters[x].Index = index;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (instance.isreportViewer)
|
||||
$(item).find('.filter-index').text(index + 1);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
dynamicFilterIsDefaultDateColumn(columnName) {
|
||||
var dIndex = this.getIndexByDisplayText_dynamicFilterColumns(columnName);
|
||||
if (dIndex != -1) {
|
||||
let filtermodelarray = new Array();
|
||||
let currentFilter = this.reportBuilder.dynamicFilters[dIndex];
|
||||
if (currentFilter.IsPartition) {
|
||||
$("#dynamicfilter-defaultdate_" + columnName).prop("checked", false);
|
||||
return MessageHelper.Instance().showError("Dynamic filter cannot be both partition and default, uncheck partition before making default", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
if ($("#dynamicfilter-defaultdate_" + columnName).hasClass("imchecked")) {
|
||||
$("input[type=radio][name=defaultdate]").prop('checked', false);
|
||||
$("#dynamicfilter-defaultdate_" + columnName).removeClass("imchecked");
|
||||
}
|
||||
var isdefault = $("#dynamicfilter-defaultdate_" + columnName).is(":checked");
|
||||
if (isdefault)
|
||||
$("#dynamicfilter-defaultdate_" + columnName).addClass("imchecked");
|
||||
currentFilter.IsDefault = isdefault;
|
||||
this.reportBuilder.dynamicFilters[dIndex] = currentFilter;
|
||||
Unibase.Platform.Analytics.Managers.ReportManager.Instance().saveDynamicFilter(this.reportBuilder.reportid, this.reportBuilder.dynamicFilters).then((res) => {
|
||||
if (res.status == Unibase.Data.Status.Success)
|
||||
MessageHelper.Instance().showSuccess("Filter Saved Sucessfully", "divEditFiltersErrMsg");
|
||||
else
|
||||
MessageHelper.Instance().showError(res.message, "div_ReportBuilderErrorMessage");
|
||||
});
|
||||
}
|
||||
}
|
||||
dynamicFilterIsPartition(columnName) {
|
||||
var dIndex = this.getIndexByDisplayText_dynamicFilterColumns(columnName);
|
||||
if (dIndex != -1) {
|
||||
let filtermodelarray = new Array();
|
||||
let currentFilter = this.reportBuilder.dynamicFilters[dIndex];
|
||||
if (currentFilter.IsDefault) {
|
||||
$("#chk_ispartition_" + columnName).prop("checked", false);
|
||||
return MessageHelper.Instance().showError("Dynamic filter cannot be both partition and default, uncheck default before making partition", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
var ispartition = $("#chk_ispartition_" + columnName).prop("checked");
|
||||
currentFilter.IsPartition = ispartition;
|
||||
this.reportBuilder.dynamicFilters[dIndex] = currentFilter;
|
||||
Unibase.Platform.Analytics.Managers.ReportManager.Instance().saveDynamicFilter(this.reportBuilder.reportid, this.reportBuilder.dynamicFilters).then((res) => {
|
||||
if (res.status == Unibase.Data.Status.Success)
|
||||
MessageHelper.Instance().showSuccess("Filter Saved Sucessfully", "divEditFiltersErrMsg");
|
||||
else
|
||||
MessageHelper.Instance().showError(res.message, "div_ReportBuilderErrorMessage");
|
||||
});
|
||||
}
|
||||
}
|
||||
removeDynamicFilterSelectedColumn_table(DisplayText) {
|
||||
var instance = this;
|
||||
bootbox.confirm("Do you want to Delete the Filter?", function (result) {
|
||||
if (result) {
|
||||
var index = instance.dynamicFilters.findIndex(function (o) {
|
||||
if (o.IsFilterableColumn === DisplayText) {
|
||||
instance.reportManager.deleteDynamicFilter(o.DynamicFilterId).then(function (response) {
|
||||
if (response.status == Unibase.Data.Status.Success) {
|
||||
MessageHelper.Instance().showSuccess(response.message, '');
|
||||
}
|
||||
else if (response.status == Unibase.Data.Status.Error) {
|
||||
MessageHelper.Instance().showError(response.message, 'divEditFiltersErrMsg');
|
||||
}
|
||||
});
|
||||
}
|
||||
return o.IsFilterableColumn === DisplayText;
|
||||
});
|
||||
if (index !== -1)
|
||||
instance.dynamicFilters.splice(index, 1);
|
||||
$(`[data-isfilterablecolumn="${DisplayText}"]`).remove();
|
||||
if (instance.dynamicFilters.length != 0) {
|
||||
for (var i = 0; i < instance.dynamicFilters.length; i++) {
|
||||
let filterIndex = instance.getIndexByDisplayText_dynamicFilterColumns(instance.dynamicFilters[i].IsFilterableColumn);
|
||||
instance.dynamicFilters[filterIndex].Index = i;
|
||||
if (instance.isreportViewer)
|
||||
$("#dynamic-list-group-wrapper .filter-item").eq(i).find('.filter-index').text(i + 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (instance.isreportViewer) {
|
||||
$('#dynamicFiltersCard').addClass('d-none');
|
||||
if (!$('#staticFiltersCard').is(':visible')) {
|
||||
$('#noFiltersErrMsg').removeClass('d-none');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
getIndexByDisplayText_dynamicFilterColumns(isFilterableColumn) {
|
||||
return this.reportBuilder.dynamicFilters.findIndex(x => x.IsFilterableColumn == isFilterableColumn);
|
||||
}
|
||||
loadMappedColumns(filtercols) {
|
||||
var instance = this;
|
||||
Unibase.Platform.DataSources.Managers.DataListManager.Instance().getDataList(instance.reportBuilder.DataListId).then((res) => {
|
||||
if (res.status == Unibase.Data.Status.Success) {
|
||||
if (res.result.Parameters) {
|
||||
let params = res.result.Parameters.replaceAll("@", "");
|
||||
params = params.split("|");
|
||||
let paramOptions = "";
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
let currentFilter = filtercols.find(x => x.MappedColumn == params[i]);
|
||||
if (currentFilter)
|
||||
paramOptions += `<option value="${params[i]}" selected > ${params[i]} </option>`;
|
||||
else
|
||||
paramOptions += `<option value="${params[i]}"> ${params[i]} </option>`;
|
||||
}
|
||||
$("#mappedcolumnsdropdown").append(paramOptions);
|
||||
}
|
||||
else {
|
||||
$(".mappedcolumnsdiv").addClass("d-none");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
editDynamicFilter(dynamicfilters, reportcolumn) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var instance = this;
|
||||
if (dynamicfilters.length > 0) {
|
||||
this.bindDisplayNameOnEdit(dynamicfilters[0].DisplayName || reportcolumn && reportcolumn.DisplayText);
|
||||
if (instance.dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
|
||||
$('#daterangetypeid').val(dynamicfilters[0].DateRangeTypeId || 0);
|
||||
$('#replaceexistingdates').prop('checked', dynamicfilters[0].ReplaceExistingDates);
|
||||
}
|
||||
else {
|
||||
if (dynamicfilters[0].IsUnLimited) {
|
||||
$('#isunlimited_checkbox').prop('checked', true);
|
||||
}
|
||||
if (dynamicfilters[0].IsRequired) {
|
||||
$('#isrequired_checkbox').prop('checked', true);
|
||||
}
|
||||
if (dynamicfilters[0].IsCustomFilter) {
|
||||
$('#iscustomfilter_checkbox').prop('checked', true);
|
||||
}
|
||||
$("#ControlTypeDropDown").val(dynamicfilters[0].ControlTypeId);
|
||||
$("#FontCaseTypeDropDown").val(dynamicfilters[0].FontCaseTypeId);
|
||||
$("#dataList_AutoComplete").append("<option value=" + dynamicfilters[0].DataListId + " selected>" + dynamicfilters[0].DataListName + "</option>");
|
||||
if (instance.dataTypeId != Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
|
||||
yield instance.loadDataListColumns();
|
||||
}
|
||||
$("#datalistvalue_AutoComplete").val(dynamicfilters[0].ValueColumn).trigger("change");
|
||||
$("#datalisttext_AutoComplete").val(dynamicfilters[0].TextColumn).trigger("change");
|
||||
if (dynamicfilters[0].ControlTypeId == Unibase.Platform.Analytics.Enums.ControlType.cascadingautocomplete) {
|
||||
$(".dynFil-cascading").removeClass("hidden");
|
||||
instance.loadDynamicFilters();
|
||||
$("#dynFilParentProperty_AutoComplete").val(dynamicfilters[0].ParentColumn).trigger("change");
|
||||
$("#dynFilApplyFor_AutoComplete").val(dynamicfilters[0].ApplyFor).trigger("change");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
reportcolumn && this.bindDisplayNameOnEdit(reportcolumn.DisplayText);
|
||||
}
|
||||
});
|
||||
}
|
||||
clearDynamicFilterFields(reportcolumn) {
|
||||
var instance = this;
|
||||
if (instance.dataTypeId == Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
|
||||
$("#daterangetypeid").val(0);
|
||||
$("#replaceexistingdates").prop("checked", true);
|
||||
}
|
||||
else {
|
||||
let dynamicFilters = [];
|
||||
if (!Unibase.Platform.Analytics.Reports.ReportFilter.Instance().isreportViewer) {
|
||||
dynamicFilters = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters;
|
||||
var index = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters.findIndex(function (o) {
|
||||
return (o.IsFilterableColumn === reportcolumn.DisplayText);
|
||||
});
|
||||
if (index !== -1)
|
||||
Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters.splice(index, 1);
|
||||
reportcolumn.IsFilterable = false;
|
||||
}
|
||||
else {
|
||||
dynamicFilters = Unibase.Platform.Filters.Components.Editfilters.Instance().dynamicFilters;
|
||||
}
|
||||
$("#datalistvalue_AutoComplete, #dataList_AutoComplete, #datalisttext_AutoComplete, #datalistauto_AutoComplete").val("0").text("select");
|
||||
$("#FontCaseTypeDropDown").val("0");
|
||||
$("#isunlimited_checkbox, #isrequired_checkbox, #iscustomfilter_checkbox").prop("checked", false);
|
||||
}
|
||||
}
|
||||
bindDisplayNameOnEdit(DisplayName) {
|
||||
if (DisplayName)
|
||||
$("#txt_DisplayName").val(DisplayName);
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new DynamicFilter();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Reports.DynamicFilter = DynamicFilter;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
@@ -0,0 +1,87 @@
|
||||
var Unibase;
|
||||
(function (Unibase) {
|
||||
let Platform;
|
||||
(function (Platform) {
|
||||
let Analytics;
|
||||
(function (Analytics) {
|
||||
let Components;
|
||||
(function (Components) {
|
||||
let ReportBuilder;
|
||||
(function (ReportBuilder) {
|
||||
class Import extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.reportmanager = Analytics.Managers.ReportManager.Instance();
|
||||
this.navigationhelper = Unibase.Platform.Helpers.NavigationHelper.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
var cssfiles = ["libs/nestable/JqueryminMenu.css"];
|
||||
return cssfiles;
|
||||
}
|
||||
jsFiles() {
|
||||
return ['platform/analytics/managers/reportmanager.js',
|
||||
'platform/analytics/components/reportbuilder/import.js',
|
||||
"platform/forms/components/formviewer/formviewer.js",
|
||||
'libs/parsley/parsley.min.js',
|
||||
'platform/core/infos/status.js', '/platform/core/helpers/file/filehelper.js'];
|
||||
}
|
||||
html(id, containerid) {
|
||||
var instance = this;
|
||||
let html = '<form id="form_Import" data-validate="parsley" data-isdynamic="false"><div id="div_importmessage" class="clear"></div><div class="import-export-body modal-body" style="overflow-y: auto;"><div class="card"><div class="card-header"><span class="h6 text-dark ">Import</span></div><div id="industry_validation" class="clear"></div><div class="card-body scrollable"><div id="div_importexport" class=""><div class="card" id = "importexportsection"><div class="card-body"><div class="" id="div_Import"><input type="file" id="import_File" class="bg-light d-none d-sm-block required" style="width:150px"><hr /> <a href="javascript:;" id="fileUpload" class="btn btn-warning text-white" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.Import.Instance().FileUpload(' + containerid + ');">Upload</a></div></div></div><div class="hidden" id="div_Export"><span id="sp_formName"></span><a href="javascript:;" id="fileExport" class="btn btn-primary text-white">Download</a></div></div></div></div></div><div class="bg-white card-footer footer" ><button id="btn_CloseImport" class="btn btn-secondary btn-sm mr-auto">Close</button></div></form>';
|
||||
return html;
|
||||
}
|
||||
showImport() {
|
||||
this.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Components.ReportBuilder.Import.Instance(), null, Platform.Helpers.Size.Large);
|
||||
}
|
||||
FileUpload(containerid) {
|
||||
var instance = this;
|
||||
instance.navigationHelper.showLoading();
|
||||
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/exportreports/np';
|
||||
Platform.Helpers.FileHelper.Instance().upload(url, Unibase.Platform.Analytics.Components.ReportBuilder.Import.fileData).then(function (response) {
|
||||
MessageHelper.Instance().showSuccess('success', "div_importmessage");
|
||||
instance.navigationHelper.hideLoading();
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
$("#btn_CloseImport").click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
$("#btn_Import").click(function () {
|
||||
$("#importexportsection").removeClass("hidden");
|
||||
$("#div_Import").removeClass("hidden");
|
||||
});
|
||||
$('#import_File').change(function (e) {
|
||||
Unibase.Platform.Analytics.Components.ReportBuilder.Import.Instance().fileEvent(e);
|
||||
});
|
||||
$("#txt_Icon").focus(function () {
|
||||
$(".div_Icons").fadeIn();
|
||||
$("#icons").toggleClass("hidden");
|
||||
$(".div_Icons").removeClass('hidden');
|
||||
});
|
||||
$("#txt_Icon").focusout(function () {
|
||||
$(".div_Icons").fadeOut();
|
||||
});
|
||||
}
|
||||
fileEvent($event) {
|
||||
const fileSelected = $event.target.files[0];
|
||||
Unibase.Platform.Analytics.Components.ReportBuilder.Import.fileData = new FormData();
|
||||
Unibase.Platform.Analytics.Components.ReportBuilder.Import.fileData.append(fileSelected.name, fileSelected);
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new Import();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Import.fileData = new FormData();
|
||||
ReportBuilder.Import = Import;
|
||||
})(ReportBuilder = Components.ReportBuilder || (Components.ReportBuilder = {}));
|
||||
})(Components = Analytics.Components || (Analytics.Components = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Исполняемый файл
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"import.js","sourceRoot":"","sources":["import.ts"],"names":[],"mappings":"AAAA,IAAU,OAAO,CAmGhB;AAnGD,WAAU,OAAO;IACb,IAAiB,QAAQ,CAiGxB;IAjGD,WAAiB,QAAQ;QACrB,IAAiB,SAAS,CA+FzB;QA/FD,WAAiB,SAAS;YACtB,IAAiB,UAAU,CA6F1B;YA7FD,WAAiB,UAAU;gBACvB,IAAiB,aAAa,CA2F7B;gBA3FD,WAAiB,aAAa;oBAC1B,MAAa,MAAO,SAAQ,SAAA,IAAI,CAAC,aAAa;wBAI1C;4BACI,KAAK,EAAE,CAAC;4BACR,IAAI,CAAC,aAAa,GAAG,UAAA,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;4BACvD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;wBACjF,CAAC;wBAED,QAAQ;4BACJ,IAAI,QAAQ,GAAG,CAAC,iCAAiC,CAAC,CAAC;4BACnD,OAAO,QAAQ,CAAC;wBACpB,CAAC;wBAED,OAAO;4BACH,OAAO,CAAC,8CAA8C;gCAClD,uDAAuD;gCACvD,oDAAoD;gCACpD,6BAA6B;gCAC7B,+BAA+B,EAAE,2CAA2C,CAAC,CAAC;wBACtF,CAAC;wBACD,IAAI,CAAC,EAAE,EAAE,WAAW;4BAChB,IAAI,QAAQ,GAAG,IAAI,CAAC;4BAEpB,IAAI,IAAI,GAAG,gwBAAgwB,GAAG,WAAW,GAAG,mWAAmW,CAAC;4BAChoC,OAAO,IAAI,CAAC;wBAChB,CAAC;wBACD,UAAU;4BACN,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACxI,CAAC;wBACD,UAAU,CAAC,WAAW;4BAClB,IAAI,QAAQ,GAAG,IAAI,CAAC;4BACpB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;4BACxC,IAAI,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,GAAG,sDAAsD,CAAC;4BAC7F,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,QAAQ;gCAC3I,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;gCACrE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;gCACxC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gCACnC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;4BAGlC,CAAC,CAAC,CAAC;wBAIP,CAAC;wBAED,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,QAAkB;4BACpC,IAAI,QAAQ,GAAG,IAAI,CAAC;4BACpB,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC;gCACxB,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gCACnC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;4BAElC,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;gCACnB,CAAC,CAAC,sBAAsB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gCAChD,CAAC,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;4BAC3C,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gCAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BACvF,CAAC,CAAC,CAAC;4BAEH,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;gCACjB,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;gCACzB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gCAClC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;4BAE1C,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;gCACpB,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;4BAE9B,CAAC,CAAC,CAAA;wBAGN,CAAC;wBACD,SAAS,CAAC,MAAM;4BACZ,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;4BACrF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;wBAChH,CAAC;wBAGD,MAAM,CAAC,QAAQ;4BACX,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gCAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;6BAChC;4BACD,OAAO,IAAI,CAAC,QAAQ,CAAC;wBACzB,CAAC;;oBAvFM,eAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBADxB,oBAAM,SAyFlB,CAAA;gBACL,CAAC,EA3FgB,aAAa,GAAb,wBAAa,KAAb,wBAAa,QA2F7B;YACL,CAAC,EA7FgB,UAAU,GAAV,oBAAU,KAAV,oBAAU,QA6F1B;QACL,CAAC,EA/FgB,SAAS,GAAT,kBAAS,KAAT,kBAAS,QA+FzB;IACL,CAAC,EAjGgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAiGxB;AACL,CAAC,EAnGS,OAAO,KAAP,OAAO,QAmGhB"}
|
||||
@@ -0,0 +1 @@
|
||||
var Unibase;(function(n){let t;(function(t){let i;(function(i){let r;(function(r){let u;(function(r){class u extends t.Core.BaseComponent{constructor(){super();this.reportmanager=i.Managers.ReportManager.Instance();this.navigationhelper=n.Platform.Helpers.NavigationHelper.Instance()}cssFiles(){return["libs/nestable/JqueryminMenu.css"]}jsFiles(){return["platform/analytics/managers/reportmanager.js","platform/analytics/components/reportbuilder/import.js","platform/forms/components/formviewer/formviewer.js","libs/parsley/parsley.min.js","platform/core/infos/status.js","/platform/core/helpers/file/filehelper.js"]}html(n,t){var i=this;return'<form id="form_Import" data-validate="parsley" data-isdynamic="false"><div id="div_importmessage" class="clear"><\/div><div class="import-export-body modal-body" style="overflow-y: auto;"><div class="card"><div class="card-header"><span class="h6 text-dark ">Import<\/span><\/div><div id="industry_validation" class="clear"><\/div><div class="card-body scrollable"><div id="div_importexport" class=""><div class="card" id = "importexportsection"><div class="card-body"><div class="" id="div_Import"><input type="file" id="import_File" class="bg-light d-none d-sm-block required" style="width:150px"><hr /> <a href="javascript:;" id="fileUpload" class="btn btn-warning text-white" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.Import.Instance().FileUpload('+t+');">Upload<\/a><\/div><\/div><\/div><div class="hidden" id="div_Export"><span id="sp_formName"><\/span><a href="javascript:;" id="fileExport" class="btn btn-primary text-white">Download<\/a><\/div><\/div><\/div><\/div><\/div><div class="bg-white card-footer footer" ><button id="btn_CloseImport" class="btn btn-secondary btn-sm mr-auto">Close<\/button><\/div><\/form>'}showImport(){this.navigationHelper.popup(0,"",n.Platform.Analytics.Components.ReportBuilder.Import.Instance(),null,t.Helpers.Size.Large)}FileUpload(i){var r=this,u;r.navigationHelper.showLoading();u=_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/exportreports/np";t.Helpers.FileHelper.Instance().upload(u,n.Platform.Analytics.Components.ReportBuilder.Import.fileData).then(function(){MessageHelper.Instance().showSuccess("success","div_importmessage");r.navigationHelper.hideLoading();$("#"+i).modal("hide");$("#"+i).remove()})}load(t,i){var r=this;$("#btn_CloseImport").click(function(){$("#"+i).modal("hide");$("#"+i).remove()});$("#btn_Import").click(function(){$("#importexportsection").removeClass("hidden");$("#div_Import").removeClass("hidden")});$("#import_File").change(function(t){n.Platform.Analytics.Components.ReportBuilder.Import.Instance().fileEvent(t)});$("#txt_Icon").focus(function(){$(".div_Icons").fadeIn();$("#icons").toggleClass("hidden");$(".div_Icons").removeClass("hidden")});$("#txt_Icon").focusout(function(){$(".div_Icons").fadeOut()})}fileEvent(t){const i=t.target.files[0];n.Platform.Analytics.Components.ReportBuilder.Import.fileData=new FormData;n.Platform.Analytics.Components.ReportBuilder.Import.fileData.append(i.name,i)}static Instance(){return this.instance===undefined&&(this.instance=new u),this.instance}}u.fileData=new FormData;r.Import=u})(u=r.ReportBuilder||(r.ReportBuilder={}))})(r=i.Components||(i.Components={}))})(i=t.Analytics||(t.Analytics={}))})(t=n.Platform||(n.Platform={}))})(Unibase||(Unibase={}));
|
||||
@@ -0,0 +1,241 @@
|
||||
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 Components;
|
||||
(function (Components) {
|
||||
let ReportBuilder;
|
||||
(function (ReportBuilder) {
|
||||
class ImportAndExport extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.reportmanager = Analytics.Managers.ReportManager.Instance();
|
||||
this.navigationhelper = Unibase.Platform.Helpers.NavigationHelper.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
var cssfiles = ["libs/nestable/JqueryminMenu.css"];
|
||||
return cssfiles;
|
||||
}
|
||||
jsFiles() {
|
||||
return ['platform/analytics/managers/reportmanager.js',
|
||||
'platform/analytics/components/reportbuilder/import.js',
|
||||
"platform/forms/components/formviewer/formviewer.js",
|
||||
'libs/parsley/parsley.min.js',
|
||||
'platform/core/infos/status.js', '/platform/core/helpers/file/filehelper.js'];
|
||||
}
|
||||
html(id, containerid) {
|
||||
var instance = this;
|
||||
let html = `<form id="form_Import" data-validate="parsley" data-isdynamic="false">
|
||||
<div class="bg-white modal-header pa-10"><strong class="biz-highlight-bg-color Title">Import/Export</strong>
|
||||
<div class="dropdown report-options-dp my-auto">
|
||||
<a class="nav-link no-caret btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p reportview-remove-none ml-1 " href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="" data-tooltip="true" title="" aria-describedby="ui-id-16">
|
||||
<span class="btn-icon-wrap"><i class="fa fa-ellipsis-v ellipsis-hover-1" aria-hidden="true"></i></span>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right ViewerTypes_dropdown">
|
||||
<a href="javascript:;" id="fileExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportsReports();">Reports</a>
|
||||
<a href="javascript:;" id="viewersExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportViewers(0,0,0,'');">Viewers</a>
|
||||
<a href="javascript:;" id="dyfilExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportDynamicFilters(0);">Dynamic Filters</a>
|
||||
<a href="javascript:;" id="dyfilExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components._CommonFilter.Instance().exportFilter(0, 0);">Common Filters</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="div_importmessage" class="form-error-message"></div>
|
||||
</div>
|
||||
<div data-simplebar class="import-export-body modal-body simple-scroll-bar">
|
||||
<div id="industry_validation" class="clear"></div>
|
||||
<div id="div_importexport" class="">
|
||||
<div class="card" id="importexportsection">
|
||||
<div class="card-body">
|
||||
<div class="" id="div_Import"><input type="file" id="import_File" class="bg-light d-none d-sm-block required">
|
||||
<br>
|
||||
<input type="radio" id="report_radio_btn" class="importreport" onclick="" name="report_viewer_dyfil_import_radio_btn" value="report">
|
||||
<label for="report_radio_btn">Report</label>
|
||||
<br>
|
||||
<input type="radio" id="viewer_radio_btn" class="importviewer" onclick="" name="report_viewer_dyfil_import_radio_btn" value="viewer">
|
||||
<label for="viewer_radio_btn">Viewers</label>
|
||||
<br>
|
||||
<input type="radio" id="dyfil_radio_btn" class="importdynamicfilters" onclick="" name="report_viewer_dyfil_import_radio_btn" value="dynamic filters">
|
||||
<label for="dyfil_radio_btn">Dynamic Filters</label>
|
||||
<br>
|
||||
<input type="radio" id="cmfil_radio_btn" class="importcommonfilters" onclick="" name="report_viewer_dyfil_import_radio_btn" value="common filters">
|
||||
<label for="cmfil_radio_btn">Common Filters</label>
|
||||
<br>
|
||||
<hr/> <a href="javascript:;" id="fileUpload" class="btn btn-warning text-white" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().FileUpload('${containerid}');">Upload</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden" id="div_Export"><span id="sp_formName"></span><a href="javascript:;" id="fileExport" class="btn btn-primary text-white">Download</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-white card-footer"><button id="btn_CloseImport" class="btn btn-secondary btn-sm mr-auto">Close</button></div>
|
||||
</form>`;
|
||||
return html;
|
||||
}
|
||||
showImportExport() {
|
||||
this.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance(), null, Platform.Helpers.Size.Large);
|
||||
}
|
||||
exportsReports() {
|
||||
var instance = this;
|
||||
instance.navigationHelper.showLoading();
|
||||
instance.reportmanager.exportReports().then(function (response) {
|
||||
if (response.result != "") {
|
||||
MessageHelper.Instance().showSuccess(response.message, '');
|
||||
}
|
||||
instance.downloadResponseAndHideLoading(response, "Reports.xml");
|
||||
});
|
||||
}
|
||||
FileUpload(containerid) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var instance = this;
|
||||
var url;
|
||||
instance.navigationhelper.showLoading();
|
||||
let isReportUpload = $("#report_radio_btn").prop("checked");
|
||||
let isDynamicFiltersUpload = $("#dyfil_radio_btn").prop("checked");
|
||||
let isCommonFiltersUpload = $("#cmfil_radio_btn").prop("checked");
|
||||
if (isReportUpload) {
|
||||
url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/importreports/np';
|
||||
}
|
||||
else if (isDynamicFiltersUpload) {
|
||||
url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/importdynamicfilters/np';
|
||||
}
|
||||
else if (isCommonFiltersUpload) {
|
||||
url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/importcommonfilters/np';
|
||||
}
|
||||
else {
|
||||
url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/importreportviews/np';
|
||||
}
|
||||
var delay = ms => new Promise(res => { setTimeout(res, ms); });
|
||||
yield delay(0);
|
||||
yield Platform.Helpers.FileHelper.Instance().upload(url, Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData).then(function (response) {
|
||||
if (response.status == Unibase.Data.Status.Error) {
|
||||
MessageHelper.Instance().showError(response.message, "div_importmessage");
|
||||
}
|
||||
else {
|
||||
MessageHelper.Instance().showSuccess('success', "div_importmessage");
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
}
|
||||
instance.navigationhelper.hideLoading();
|
||||
});
|
||||
});
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
$("#btn_CloseImport").click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
$("#btn_Import").click(function () {
|
||||
$("#importexportsection").removeClass("hidden");
|
||||
$("#div_Import").removeClass("hidden");
|
||||
});
|
||||
$('#import_File').change(function (e) {
|
||||
Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().fileEvent(e);
|
||||
});
|
||||
$("#txt_Icon").focus(function () {
|
||||
$(".div_Icons").fadeIn();
|
||||
$("#icons").toggleClass("hidden");
|
||||
$(".div_Icons").removeClass('hidden');
|
||||
});
|
||||
$("#txt_Icon").focusout(function () {
|
||||
$(".div_Icons").fadeOut();
|
||||
});
|
||||
}
|
||||
fileEvent($event) {
|
||||
const fileSelected = $event.target.files[0];
|
||||
Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData = new FormData();
|
||||
Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData.append(fileSelected.name, fileSelected);
|
||||
}
|
||||
exportViewers(viewerId, viewerName, reportid, containerId) {
|
||||
this.navigationHelper.showLoading();
|
||||
let rv_ins;
|
||||
if (containerId) {
|
||||
rv_ins = Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(containerId);
|
||||
}
|
||||
let _id = reportid || rv_ins && rv_ins.ReportId || 0;
|
||||
Unibase.Platform.Analytics.Managers.ViewerManager.Instance().exportViewers(viewerId || 0, _id).then((response) => {
|
||||
if (response.status == Unibase.Data.Status.Success && response.result != null) {
|
||||
var filename;
|
||||
if (viewerName && containerId) {
|
||||
filename = rv_ins.reportname + "_" + viewerName + ".xml";
|
||||
}
|
||||
else if (containerId) {
|
||||
filename = rv_ins.reportname + "_viewers.xml";
|
||||
}
|
||||
else {
|
||||
let ip = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
|
||||
if (ip && ip.length) {
|
||||
let reportNameIP = ip.find(x => x.Key.endsWith("_reportname"));
|
||||
if (reportNameIP.Value)
|
||||
filename = reportNameIP.Value + "_viewers.xml";
|
||||
}
|
||||
!filename && (filename = "AllReportViewers.xml");
|
||||
}
|
||||
this.downloadResponseAndHideLoading(response, filename);
|
||||
}
|
||||
else if (response.status == Unibase.Data.Status.Warning) {
|
||||
MessageHelper.Instance().showError(response.message, "div_message");
|
||||
this.navigationHelper.hideLoading();
|
||||
}
|
||||
});
|
||||
}
|
||||
exportReportViewers(reportId) {
|
||||
if (!reportId)
|
||||
reportId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("_reportid")).Value);
|
||||
this.exportViewers(0, "", reportId, "");
|
||||
}
|
||||
exportDynamicFilters(reportId) {
|
||||
this.navigationHelper.showLoading();
|
||||
let ip = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
|
||||
let reportName = "";
|
||||
if (!reportId && ip.length) {
|
||||
let _reportid = ip.find(x => x.Key.endsWith("_reportid"));
|
||||
if (_reportid && _reportid.Value)
|
||||
reportId = Number(_reportid.Value);
|
||||
}
|
||||
reportId && (reportName = ip.find(x => x.Key.endsWith("_reportname")).Value);
|
||||
this.reportmanager.exportDynamicFilters(reportId).then((res) => {
|
||||
if (res.status == Unibase.Data.Status.Success) {
|
||||
this.downloadResponseAndHideLoading(res, (reportName || "AllReports") + "_DynamicFilters.xml");
|
||||
}
|
||||
else {
|
||||
this.navigationHelper.hideLoading();
|
||||
}
|
||||
});
|
||||
}
|
||||
downloadResponseAndHideLoading(response, filename) {
|
||||
var xmltext = response.result;
|
||||
var pom = document.createElement('a');
|
||||
var bb = new Blob([xmltext], { type: 'text/plain' });
|
||||
pom.setAttribute('href', window.URL.createObjectURL(bb));
|
||||
pom.setAttribute('download', filename);
|
||||
pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
|
||||
pom.draggable = true;
|
||||
pom.classList.add('dragout');
|
||||
pom.click();
|
||||
this.navigationHelper.hideLoading();
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new ImportAndExport();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
ImportAndExport.fileData = new FormData();
|
||||
ReportBuilder.ImportAndExport = ImportAndExport;
|
||||
})(ReportBuilder = Components.ReportBuilder || (Components.ReportBuilder = {}));
|
||||
})(Components = Analytics.Components || (Analytics.Components = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
поставляемый
Исполняемый файл
+43
@@ -0,0 +1,43 @@
|
||||
var Unibase;(function(n){let t;(function(t){let i;(function(i){let r;(function(r){let u;(function(r){class u extends t.Core.BaseComponent{constructor(){super();this.reportmanager=i.Managers.ReportManager.Instance();this.navigationhelper=n.Platform.Helpers.NavigationHelper.Instance()}cssFiles(){return["libs/nestable/JqueryminMenu.css"]}jsFiles(){return["platform/analytics/managers/reportmanager.js","platform/analytics/components/reportbuilder/import.js","platform/forms/components/formviewer/formviewer.js","libs/parsley/parsley.min.js","platform/core/infos/status.js","/platform/core/helpers/file/filehelper.js"]}html(n,t){var i=this;return`<form id="form_Import" data-validate="parsley" data-isdynamic="false">
|
||||
<div class="bg-white modal-header pa-10"><strong class="biz-highlight-bg-color Title">Import/Export</strong>
|
||||
<div class="dropdown report-options-dp my-auto">
|
||||
<a class="nav-link no-caret btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p reportview-remove-none ml-1 " href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="" data-tooltip="true" title="" aria-describedby="ui-id-16">
|
||||
<span class="btn-icon-wrap"><i class="fa fa-ellipsis-v ellipsis-hover-1" aria-hidden="true"></i></span>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right ViewerTypes_dropdown">
|
||||
<a href="javascript:;" id="fileExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportsReports();">Reports</a>
|
||||
<a href="javascript:;" id="viewersExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportViewers(0,0,0,'');">Viewers</a>
|
||||
<a href="javascript:;" id="dyfilExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().exportDynamicFilters(0);">Dynamic Filters</a>
|
||||
<a href="javascript:;" id="dyfilExport" class="dropdown-item" onclick="Unibase.Platform.Analytics.Components._CommonFilter.Instance().export(0, 0);">Common Filters</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="div_importmessage" class="form-error-message"></div>
|
||||
</div>
|
||||
<div data-simplebar class="import-export-body modal-body simple-scroll-bar">
|
||||
<div id="industry_validation" class="clear"></div>
|
||||
<div id="div_importexport" class="">
|
||||
<div class="card" id="importexportsection">
|
||||
<div class="card-body">
|
||||
<div class="" id="div_Import"><input type="file" id="import_File" class="bg-light d-none d-sm-block required">
|
||||
<br>
|
||||
<input type="radio" id="report_radio_btn" class="importreport" onclick="" name="report_viewer_dyfil_import_radio_btn" value="report">
|
||||
<label for="report_radio_btn">Report</label>
|
||||
<br>
|
||||
<input type="radio" id="viewer_radio_btn" class="importviewer" onclick="" name="report_viewer_dyfil_import_radio_btn" value="viewer">
|
||||
<label for="viewer_radio_btn">Viewers</label>
|
||||
<br>
|
||||
<input type="radio" id="dyfil_radio_btn" class="importdynamicfilters" onclick="" name="report_viewer_dyfil_import_radio_btn" value="dynamic filters">
|
||||
<label for="dyfil_radio_btn">Dynamic Filters</label>
|
||||
<br>
|
||||
<input type="radio" id="cmfil_radio_btn" class="importcommonfilters" onclick="" name="report_viewer_dyfil_import_radio_btn" value="common filters">
|
||||
<label for="cmfil_radio_btn">Common Filters</label>
|
||||
<br>
|
||||
<hr/> <a href="javascript:;" id="fileUpload" class="btn btn-warning text-white" onclick="Unibase.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().FileUpload('${t}');">Upload</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden" id="div_Export"><span id="sp_formName"></span><a href="javascript:;" id="fileExport" class="btn btn-primary text-white">Download</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-white card-footer"><button id="btn_CloseImport" class="btn btn-secondary btn-sm mr-auto">Close</button></div>
|
||||
</form>`}showImportExport(){this.navigationHelper.popup(0,"",n.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance(),null,t.Helpers.Size.Large)}exportsReports(){var n=this;n.navigationHelper.showLoading();n.reportmanager.exportReports().then(function(t){t.result!=""&&MessageHelper.Instance().showSuccess(t.message,"");n.downloadResponseAndHideLoading(t,"Reports.xml")})}FileUpload(i){var r=this,u;r.navigationhelper.showLoading();let f=$("#report_radio_btn").prop("checked"),e=$("#dyfil_radio_btn").prop("checked"),o=$("#cmfil_radio_btn").prop("checked");u=f?_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/importreports/np":e?_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/importdynamicfilters/np":o?_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/importcommonfilters/np":_appsettings.server_url()+"/apis/v4/unibase/platform/analytics/importreportviews/np";t.Helpers.FileHelper.Instance().upload(u,n.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData).then(function(t){t.status==n.Data.Status.Error?MessageHelper.Instance().showError(t.message,"div_importmessage"):(MessageHelper.Instance().showSuccess("success","div_importmessage"),$("#"+i).modal("hide"),$("#"+i).remove());r.navigationhelper.hideLoading()})}load(t,i){var r=this;$("#btn_CloseImport").click(function(){$("#"+i).modal("hide");$("#"+i).remove()});$("#btn_Import").click(function(){$("#importexportsection").removeClass("hidden");$("#div_Import").removeClass("hidden")});$("#import_File").change(function(t){n.Platform.Analytics.Components.ReportBuilder.ImportAndExport.Instance().fileEvent(t)});$("#txt_Icon").focus(function(){$(".div_Icons").fadeIn();$("#icons").toggleClass("hidden");$(".div_Icons").removeClass("hidden")});$("#txt_Icon").focusout(function(){$(".div_Icons").fadeOut()})}fileEvent(t){const i=t.target.files[0];n.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData=new FormData;n.Platform.Analytics.Components.ReportBuilder.ImportAndExport.fileData.append(i.name,i)}exportViewers(t,i,r,u){this.navigationHelper.showLoading();let f;u&&(f=n.Platform.Analytics.Components.ReportViewer.Instance().getReportViewerInstance(u));let e=r||f&&f.ReportId||0;n.Platform.Analytics.Managers.ViewerManager.Instance().exportViewers(t||0,e).then(t=>{if(t.status==n.Data.Status.Success&&t.result!=null){var r;if(i&&u)r=f.reportname+"_"+i+".xml";else if(u)r=f.reportname+"_viewers.xml";else{let t=n.Themes.Providers.Detail_Settings.Instance().InputParameters;if(t&&t.length){let n=t.find(n=>n.Key.endsWith("_reportname"));n.Value&&(r=n.Value+"_viewers.xml")}r||(r="AllReportViewers.xml")}this.downloadResponseAndHideLoading(t,r)}else t.status==n.Data.Status.Warning&&(MessageHelper.Instance().showError(t.message,"div_message"),this.navigationHelper.hideLoading())})}exportReportViewers(t){t||(t=Number(n.Themes.Providers.Detail_Settings.Instance().InputParameters.find(n=>n.Key.endsWith("_reportid")).Value));this.exportViewers(0,"",t,"")}exportDynamicFilters(t){this.navigationHelper.showLoading();let i=n.Themes.Providers.Detail_Settings.Instance().InputParameters,r="";if(!t&&i.length){let n=i.find(n=>n.Key.endsWith("_reportid"));n&&n.Value&&(t=Number(n.Value))}t&&(r=i.find(n=>n.Key.endsWith("_reportname")).Value);this.reportmanager.exportDynamicFilters(t).then(t=>{t.status==n.Data.Status.Success?this.downloadResponseAndHideLoading(t,(r||"AllReports")+"_DynamicFilters.xml"):this.navigationHelper.hideLoading()})}downloadResponseAndHideLoading(n,t){var r=n.result,i=document.createElement("a"),u=new Blob([r],{type:"text/plain"});i.setAttribute("href",window.URL.createObjectURL(u));i.setAttribute("download",t);i.dataset.downloadurl=["text/plain",i.download,i.href].join(":");i.draggable=!0;i.classList.add("dragout");i.click();this.navigationHelper.hideLoading()}static Instance(){return this.instance===undefined&&(this.instance=new u),this.instance}}u.fileData=new FormData;r.ImportAndExport=u})(u=r.ReportBuilder||(r.ReportBuilder={}))})(r=i.Components||(i.Components={}))})(i=t.Analytics||(t.Analytics={}))})(t=n.Platform||(n.Platform={}))})(Unibase||(Unibase={}));
|
||||
@@ -0,0 +1,578 @@
|
||||
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 Pivot extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.pivotTypeId = 0;
|
||||
this.isDataTreeExpand = false;
|
||||
this.reportManager = Analytics.Managers.ReportManager.Instance();
|
||||
this._reportBuilder = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance();
|
||||
this._reportBuilderTemplate = Reports.ReportBuilder_Template.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
var jsFiles = ['platform/analytics/components/reportbuilder/reportbuilderhiddenfields.js'];
|
||||
return jsFiles;
|
||||
}
|
||||
html(id, containerid) {
|
||||
var instance = this;
|
||||
let html = instance._reportBuilderTemplate.loadPivotForm();
|
||||
return html;
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
$("#" + containerid).find(".modal-body").height($(window).outerHeight() - 125);
|
||||
this.loadPivotSelect2s();
|
||||
$("#chktreeexpand_checkbox").click(function () {
|
||||
if ($('#chktreeexpand_checkbox').prop('checked') == false) {
|
||||
instance.isDataTreeExpand = false;
|
||||
$('#chktreeexpand_checkbox').prop('checked', false);
|
||||
}
|
||||
else {
|
||||
instance.isDataTreeExpand = true;
|
||||
$('#chktreeexpand_checkbox').prop('checked', true);
|
||||
}
|
||||
});
|
||||
$("#chkPivotTableConfig_checkbox").click(function () {
|
||||
if ($('#chkPivotTableConfig_checkbox').prop('checked') == false) {
|
||||
instance._reportBuilder.enablePivotTableConfig = false;
|
||||
$('#chkPivotTableConfig_checkbox').prop('checked', false);
|
||||
}
|
||||
else {
|
||||
instance._reportBuilder.enablePivotTableConfig = true;
|
||||
$('#chkPivotTableConfig_checkbox').prop('checked', true);
|
||||
}
|
||||
});
|
||||
if (instance._reportBuilder.pivot.ColumnName != "" && (instance._reportBuilder.pivot.ColumnName)) {
|
||||
var colName = instance._reportBuilder.pivot.ColumnName;
|
||||
var Index = instance._reportBuilder.selectedColumns.findIndex(x => x.ColumnName == colName);
|
||||
var colId = instance._reportBuilder.selectedColumns[Index].ColumnId;
|
||||
$("#PivotColumns_AutoComplete").val(colId).trigger("change");
|
||||
let aggrValue = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.AggColumnName);
|
||||
$("#PivotAggrColumn").val(aggrValue).trigger("change");
|
||||
let aggrTypeId = instance._reportBuilder.pivot.AggFuncId;
|
||||
$("#PivotAggrType").val(aggrTypeId).trigger("change");
|
||||
let DateValue = instance._reportBuilder.pivot.DateType;
|
||||
if (DateValue)
|
||||
$("#PivotDateType").val(DateValue).trigger("change");
|
||||
if (instance._reportBuilder.TenureReport.length != 0) {
|
||||
let TimeInterval = instance._reportBuilder.TenureReport[colName].TimeInterval;
|
||||
if (TimeInterval != undefined) {
|
||||
$("#tenure_checkbox").prop("checked", true);
|
||||
$("#div_Intervals").removeClass("hidden");
|
||||
$("#txt_TimeIntervals").val(TimeInterval);
|
||||
}
|
||||
}
|
||||
if (instance._reportBuilder.pivot.IsPivotRows_Selected == true) {
|
||||
let val = instance._reportBuilder.pivot.PivotRows;
|
||||
$("#PivotRows_Select2").val(val).trigger("change");
|
||||
}
|
||||
}
|
||||
if (instance.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
|
||||
if (instance._reportBuilder.pivot.AggColumnName != undefined) {
|
||||
let aggrValue = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.AggColumnName);
|
||||
$("#PivotAggrColumn").val(aggrValue).trigger("change");
|
||||
let aggrTypeId = instance._reportBuilder.pivot.AggFuncId;
|
||||
$("#PivotAggrType").val(aggrTypeId).trigger("change");
|
||||
}
|
||||
}
|
||||
if (instance._reportBuilder.pivot.ParentColumnName != "" && (instance._reportBuilder.pivot.ParentColumnName)) {
|
||||
let childCol = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.ChildColumnName);
|
||||
$("#PivotChildColumnName_AutoComplete").val(childCol).trigger("change");
|
||||
let childVal = instance._reportBuilder.pivot.PivotValue_Selected;
|
||||
$("#PivotValue_AutoComplete").val(childVal).trigger("change");
|
||||
let parentColId = instance._reportBuilder.getColumnId_ByColumnName_datalistColumnsArray(instance._reportBuilder.pivot.ParentColumnName);
|
||||
$("#PivotParentColumnName_AutoComplete").val(parentColId).trigger("change");
|
||||
$('#chktreeexpand_checkbox').prop('checked', instance._reportBuilder.pivot.IsDatatreeExpand);
|
||||
}
|
||||
$("#tenure_checkbox").click(function () {
|
||||
if ($('#tenure_checkbox').prop('checked') == true) {
|
||||
$("#div_Intervals").removeClass("hidden");
|
||||
$("#PivotDateType").append(`<option value="` + Unibase.Platform.Analytics.Reports.Enums.AggregationType.day + `"> Day </option>`);
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().CheckedTenure();
|
||||
}
|
||||
else {
|
||||
$("#div_Intervals").addClass("hidden");
|
||||
$("#txt_TimeIntervals").val("");
|
||||
$("#PivotDateType option[value='" + Unibase.Platform.Analytics.Reports.Enums.AggregationType.day + "']").remove();
|
||||
instance._reportBuilder.TenureReport = [];
|
||||
}
|
||||
});
|
||||
$("#btn_Close").click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
$("#btn_ApplyPivot").click(function () {
|
||||
instance.applyPivot();
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
}
|
||||
loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
|
||||
return [];
|
||||
}
|
||||
selectedpivotType(pivotType) {
|
||||
var instance = this;
|
||||
let pivotTypeId;
|
||||
if (pivotType == 0) {
|
||||
instance.clearPivotFields();
|
||||
pivotTypeId = Number($("#pivotType_Select2").val());
|
||||
instance.intervals = $("#txt_TimeIntervals").val().toString();
|
||||
this.pivotTypeId = 0;
|
||||
}
|
||||
else {
|
||||
pivotTypeId = pivotType;
|
||||
$("#pivotType_Select2").val(pivotType);
|
||||
}
|
||||
if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot) {
|
||||
$("#div_PivotColumns").removeClass("hidden");
|
||||
$("#div_PivotDateType").removeClass("hidden");
|
||||
$("#div_PivotAggrColumn").removeClass("hidden");
|
||||
$("#div_PivotAggrType").removeClass("hidden");
|
||||
$(".drawerFooterApplyPivot").removeClass("hidden");
|
||||
$("#div_Intervals").addClass("hidden");
|
||||
$("#div_PivotTableConfig").addClass("hidden");
|
||||
$("#div_datatreeexpand").addClass("hidden");
|
||||
$("#div_PivotChildColumnName").addClass("hidden");
|
||||
$("#div_PivotValue").addClass("hidden");
|
||||
$("#div_PivotParentColumnName").addClass("hidden");
|
||||
$("#div_PivotRows").removeClass("hidden");
|
||||
instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.Pivot;
|
||||
}
|
||||
else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
|
||||
$("#div_datatreeexpand").removeClass("hidden");
|
||||
$("#div_PivotChildColumnName").removeClass("hidden");
|
||||
$("#div_PivotValue").removeClass("hidden");
|
||||
$("#div_PivotParentColumnName").removeClass("hidden");
|
||||
$(".drawerFooterApplyPivot").removeClass("hidden");
|
||||
$("#div_PivotTableConfig").addClass("hidden");
|
||||
$("#div_PivotColumns").addClass("hidden");
|
||||
$("#div_PivotDateType").addClass("hidden");
|
||||
$("#div_PivotAggrColumn").addClass("hidden");
|
||||
$("#div_PivotAggrType").addClass("hidden");
|
||||
$("#div_Intervals").addClass("hidden");
|
||||
$("#div_PivotRows").addClass("hidden");
|
||||
instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView;
|
||||
}
|
||||
else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
|
||||
$("#div_PivotColumns").removeClass("hidden");
|
||||
$("#div_PivotDateType").removeClass("hidden");
|
||||
$("#div_PivotAggrColumn").removeClass("hidden");
|
||||
$("#div_PivotAggrType").removeClass("hidden");
|
||||
$("#div_datatreeexpand").removeClass("hidden");
|
||||
$("#div_PivotChildColumnName").removeClass("hidden");
|
||||
$("#div_PivotValue").removeClass("hidden");
|
||||
$("#div_PivotParentColumnName").removeClass("hidden");
|
||||
$(".drawerFooterApplyPivot").removeClass("hidden");
|
||||
$("#div_PivotTableConfig").addClass("hidden");
|
||||
$("#div_PivotRows").addClass("hidden");
|
||||
$("#div_Intervals").addClass("hidden");
|
||||
instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView;
|
||||
}
|
||||
else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval) {
|
||||
$("#div_Intervals").removeClass("hidden");
|
||||
$("#div_PivotColumns").removeClass("hidden");
|
||||
$("#div_PivotDateType").removeClass("hidden");
|
||||
$("#div_PivotAggrColumn").removeClass("hidden");
|
||||
$("#div_PivotAggrType").removeClass("hidden");
|
||||
$(".drawerFooterApplyPivot").removeClass("hidden");
|
||||
$("#div_PivotTableConfig").addClass("hidden");
|
||||
$("#div_datatreeexpand").addClass("hidden");
|
||||
$("#div_PivotChildColumnName").addClass("hidden");
|
||||
$("#div_PivotValue").addClass("hidden");
|
||||
$("#div_PivotParentColumnName").addClass("hidden");
|
||||
instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.TimeInterval;
|
||||
}
|
||||
else if (pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
|
||||
$(".drawerFooterApplyPivot").removeClass("hidden");
|
||||
$("#div_PivotAggrColumn").removeClass("hidden");
|
||||
$("#div_PivotAggrType").removeClass("hidden");
|
||||
$("#div_PivotTableConfig").removeClass("hidden");
|
||||
$("#div_PivotColumns").addClass("hidden");
|
||||
$("#div_PivotDateType").addClass("hidden");
|
||||
$("#div_Intervals").addClass("hidden");
|
||||
$("#div_PivotRows").addClass("hidden");
|
||||
$("#div_datatreeexpand").addClass("hidden");
|
||||
$("#div_PivotChildColumnName").addClass("hidden");
|
||||
$("#div_PivotValue").addClass("hidden");
|
||||
$("#div_PivotParentColumnName").addClass("hidden");
|
||||
instance.pivotTypeId = Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable;
|
||||
}
|
||||
}
|
||||
clearPivotFields() {
|
||||
$("#txt_TimeIntervals").text("");
|
||||
$('#PivotColumns_AutoComplete').val('0').trigger('change');
|
||||
$('#PivotDateType').val('0').trigger('change');
|
||||
$('#PivotAggrColumn').val('0').trigger('change');
|
||||
$('#PivotAggrType').val('-1').trigger('change');
|
||||
$('#PivotChildColumnName_AutoComplete').val('0').trigger('change');
|
||||
$('#PivotValue_AutoComplete').val('0').trigger('change');
|
||||
$('#PivotParentColumnName_AutoComplete').val('0').trigger('change');
|
||||
$('#chktreeexpand_checkbox').prop("checked", false);
|
||||
}
|
||||
applyPivot() {
|
||||
var instance = this;
|
||||
if (this.pivotTypeId != Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTable) {
|
||||
$("#ExpandIcon, #CollapseIcon").removeClass("hidden");
|
||||
instance._reportBuilder.dataTreeRowExpandedColumn = [];
|
||||
var colId = $("#PivotColumns_AutoComplete option:selected").val();
|
||||
var colName = $("#PivotColumns_AutoComplete option:selected").text();
|
||||
instance._reportBuilder.pivot.ColumnName = "";
|
||||
instance._reportBuilder.pivot.ColumnName = colName;
|
||||
let val = $("#PivotRows_Select2").val();
|
||||
if (val.length == 0) {
|
||||
instance._reportBuilder.pivot.IsPivotRows_Selected = false;
|
||||
for (var opt = 0; opt < $("#PivotRows_Select2").find("option").length; opt++) {
|
||||
let option = $($("#PivotRows_Select2").find("option")[opt]).val();
|
||||
val.push(option);
|
||||
}
|
||||
}
|
||||
else {
|
||||
instance._reportBuilder.pivot.IsPivotRows_Selected = true;
|
||||
}
|
||||
instance._reportBuilder.pivot.PivotRows = val;
|
||||
instance._reportBuilder.pivot.AggColumnName = $("#PivotAggrColumn option:selected").text();
|
||||
instance._reportBuilder.pivot.AggFuncId = Number($("#PivotAggrType option:selected").val());
|
||||
if (Number($("#PivotParentColumnName_AutoComplete option:selected").val()) != 0) {
|
||||
instance._reportBuilder.IsPivotTree = true;
|
||||
instance._reportBuilder.pivot.IsDatatreeExpand = instance.isDataTreeExpand;
|
||||
instance._reportBuilder.pivot.ChildColumnName = $("#PivotChildColumnName_AutoComplete option:selected").text();
|
||||
instance._reportBuilder.pivot.ChildColumnValue = Number($("#PivotValue_AutoComplete option:selected").text());
|
||||
instance._reportBuilder.pivot.ParentColumnName = $("#PivotParentColumnName_AutoComplete option:selected").text();
|
||||
if ($("#PivotValue_AutoComplete option:selected").val() != "-1") {
|
||||
instance._reportBuilder.pivot.PivotValue_Selected = Number($("#PivotValue_AutoComplete option:selected").text());
|
||||
}
|
||||
}
|
||||
else {
|
||||
instance._reportBuilder.IsPivotTree = false;
|
||||
}
|
||||
instance._reportBuilder.TenureReport = [];
|
||||
if ($("#txt_TimeIntervals").val() != "") {
|
||||
instance._reportBuilder.TenureReport[colName] = {
|
||||
TimeInterval: $("#txt_TimeIntervals").val(),
|
||||
};
|
||||
var Values_len = instance._reportBuilder.TenureReport.length;
|
||||
instance._reportBuilder.TenureReport.length = Values_len + 1;
|
||||
instance._reportBuilder.Interval = $("#txt_TimeIntervals").val();
|
||||
}
|
||||
if (this.pivotTypeId) {
|
||||
let pivot = instance._reportBuilder.pivot;
|
||||
if (this.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.TreeView) {
|
||||
if (!pivot.ParentColumnName || pivot.ParentColumnName == "Select Pivot Parent Column" || !pivot.ChildColumnName || pivot.ChildColumnName == "- Select Pivot Child Column -" || pivot.PivotValue_Selected == -1)
|
||||
return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
|
||||
if (instance._reportBuilder.selectedColumns.findIndex(x => x.AliasName.toLowerCase().includes("haschild")) == -1)
|
||||
return MessageHelper.Instance().showError("For Tree View report 'hasChild' report column should be must", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
else if (this.pivotTypeId == Unibase.Platform.Analytics.Reports.Enums.PivotType.PivotTreeView) {
|
||||
if (!pivot.ParentColumnName || pivot.ParentColumnName == "Select Pivot Parent Column" || !pivot.ChildColumnName || pivot.ChildColumnName == "- Select Pivot Child Column -" ||
|
||||
!pivot.ColumnName || pivot.ColumnName == "- Select Pivot Column -" || !pivot.AggColumnName || pivot.AggColumnName == "- Select Aggregation Column -")
|
||||
return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
|
||||
if (instance._reportBuilder.selectedColumns.findIndex(x => x.AliasName.toLowerCase().includes("haschild")) == -1)
|
||||
return MessageHelper.Instance().showError("For Pivot Treeview report 'hasChild' report column should be must", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
else if (!pivot.ColumnName || pivot.ColumnName == "- Select Pivot Column -" || !pivot.AggColumnName || pivot.AggColumnName == "- Select Aggregation Column -" || pivot.AggFuncId == -1)
|
||||
return MessageHelper.Instance().showError("Please select accurate pivot details", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
instance._reportBuilder.datatreeIndex_Width = 70;
|
||||
instance._reportBuilder.load_data(instance._reportBuilder.table);
|
||||
}
|
||||
else {
|
||||
instance._reportBuilder.pivot.AggColumnName = $("#PivotAggrColumn option:selected").text();
|
||||
instance._reportBuilder.pivot.AggFuncId = Number($("#PivotAggrType option:selected").val());
|
||||
instance.loadPivotTable(instance._reportBuilder.table);
|
||||
}
|
||||
}
|
||||
loadPivotTable(table) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var instance = this;
|
||||
var repObj = instance._reportBuilder.getReportData();
|
||||
yield instance.reportManager.getTableData(repObj).then(function (response) {
|
||||
if (response.status == Unibase.Data.Status.Success) {
|
||||
if (response.result != "") {
|
||||
var res = JSON.parse(response.result);
|
||||
var rptData = "";
|
||||
if (res != "" && res.Data) {
|
||||
rptData = JSON.parse(res.Data);
|
||||
instance.pivotTable(rptData);
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError("No Data", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
pivotTable(reportresponse) {
|
||||
var instance = this;
|
||||
instance.fileCacheHelper.loadCssFile("libs/pivottable/css/pivot.css", function () {
|
||||
instance.fileCacheHelper.loadJsFile("libs/pivottable/js/pivot.js", function () {
|
||||
var rptRowCols = [];
|
||||
var rptColumnCols = [];
|
||||
if (instance._reportBuilder.ReportColumns.length != 0) {
|
||||
for (var p = 0; p < instance._reportBuilder.ReportColumns.length; p++) {
|
||||
if (instance._reportBuilder.ReportColumns[p].IsPivotTableCol) {
|
||||
rptColumnCols.push("" + instance._reportBuilder.ReportColumns[p].AliasName + "");
|
||||
}
|
||||
else {
|
||||
rptRowCols.push("" + instance._reportBuilder.ReportColumns[p].AliasName + "");
|
||||
}
|
||||
}
|
||||
}
|
||||
let containerEl = $("#tabulatorReportbuilder");
|
||||
containerEl.pivotUI(reportresponse, {
|
||||
cols: rptColumnCols,
|
||||
rows: rptRowCols,
|
||||
unusedAttrsVertical: 'hours',
|
||||
rendererName: "Table",
|
||||
onRefresh: function (config) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const pvtUnusedList = [];
|
||||
containerEl.find('.pvtUnused .pvtAttr').each(function (i, e) {
|
||||
pvtUnusedList.push($(e).contents().get(0).nodeValue);
|
||||
var hiddencol_index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray($(e).contents().get(0).nodeValue);
|
||||
if (hiddencol_index > -1) {
|
||||
instance._reportBuilder.selectedColumns[hiddencol_index].Isvisible = false;
|
||||
}
|
||||
});
|
||||
for (var c = 0; c < config.cols.length; c++) {
|
||||
var index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(config.cols[c]);
|
||||
if (index > -1) {
|
||||
instance._reportBuilder.selectedColumns[index].IsPivotTableCol = true;
|
||||
}
|
||||
if (config.vals.length > 0) {
|
||||
var aggrcol_index = instance._reportBuilder.getIndexByAliasName_selectedColumnsArray(config.vals[0]);
|
||||
if (aggrcol_index > -1) {
|
||||
var aggrtypeid = yield instance.getPivotAggregationTypeId(config.aggregatorName);
|
||||
instance._reportBuilder.selectedColumns[aggrcol_index].PivotTableAggrTypeId = aggrtypeid;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
instance._reportBuilder.EditableTabulatorTitle();
|
||||
containerEl.find('.pvtAttr').append('<span></span>');
|
||||
containerEl.addClass('pivot-ui-tableview');
|
||||
containerEl.find('button').each(function (i, e) {
|
||||
if ($(e).text().toLowerCase().includes('cancel')) {
|
||||
$(e).addClass('btn btn-outline-danger btn-sm');
|
||||
}
|
||||
else {
|
||||
$(e).addClass('btn btn-primary btn-sm');
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getPivotAggregationTypeId(aggrName) {
|
||||
var aggrtypeid = 0;
|
||||
var instance = this;
|
||||
instance.fileCacheHelper.loadJsFileAsync("platform/analytics/enums/pivottableaggregationtype.js", function () {
|
||||
switch (aggrName) {
|
||||
case 'Count':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Count;
|
||||
break;
|
||||
case 'Count Unique Values':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.CountUniqueValues;
|
||||
break;
|
||||
case 'List Unique Values':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.ListUniqueValues;
|
||||
break;
|
||||
case 'Sum':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Sum;
|
||||
break;
|
||||
case 'Integer Sum':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.IntegerSum;
|
||||
break;
|
||||
case 'Average':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Average;
|
||||
break;
|
||||
case 'Median':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Median;
|
||||
break;
|
||||
case 'Sample Variance':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SampleVariance;
|
||||
break;
|
||||
case 'Sample Standard Deviation':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SampleStandardDeviation;
|
||||
break;
|
||||
case 'Minimum':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Minimum;
|
||||
break;
|
||||
case 'Maximum':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Maximum;
|
||||
break;
|
||||
case 'First':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.First;
|
||||
break;
|
||||
case 'Last':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.Last;
|
||||
break;
|
||||
case 'Sum over Sum':
|
||||
aggrtypeid = Analytics.Reports.Enums.PivotTableAggregationType.SumoverSum;
|
||||
break;
|
||||
}
|
||||
});
|
||||
return aggrtypeid;
|
||||
}
|
||||
changedPivotColumn() {
|
||||
var instance = this;
|
||||
$("#PivotRows_Select2").val("").trigger("change");
|
||||
$("#PivotRows_Select2").empty();
|
||||
var colId = Number($("#PivotColumns_AutoComplete option:selected").val());
|
||||
if (colId != 0) {
|
||||
var rows;
|
||||
var dataType = Number($("#allDatalistColumns #li_" + colId + " span.datalist_column").attr('data-column-datatype'));
|
||||
if (dataType != Unibase.Platform.Analytics.Reports.Enums.DataType.dateTime) {
|
||||
$("#PivotDateType").val("0");
|
||||
var colName = $("#PivotColumns_AutoComplete option:selected").text();
|
||||
var AggrFuncId = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().Aggregations.findIndex(x => x == $("#PivotDateType option:selected").val());
|
||||
instance._reportBuilder.getDistinctData(Number(colId), colName, AggrFuncId);
|
||||
}
|
||||
else {
|
||||
if ($("#tenure_checkbox").prop("checked") == true || instance._reportBuilder.TenureReport.length != 0) {
|
||||
$("#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>`);
|
||||
}
|
||||
else {
|
||||
$("#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>`);
|
||||
}
|
||||
}
|
||||
$("#PivotRows_Select2").select2({
|
||||
placeholder: 'Select Pivot Rows',
|
||||
data: rows,
|
||||
});
|
||||
}
|
||||
}
|
||||
changedDateType() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var instance = this;
|
||||
var colId = Number($("#PivotColumns_AutoComplete option:selected").val());
|
||||
if (colId != 0) {
|
||||
var colName = $("#PivotColumns_AutoComplete option:selected").text();
|
||||
var AggrFuncId = Number($("#PivotDateType option:selected").val());
|
||||
var index = instance._reportBuilder.getIndexByColumnName_selectedColumnsArray(colName);
|
||||
instance._reportBuilder.selectedColumns[index].DataType = AggrFuncId;
|
||||
yield instance._reportBuilder.getDistinctData(colId, colName, AggrFuncId);
|
||||
Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().pivot.DateType = Number($("#PivotDateType option:selected").val());
|
||||
let val = instance._reportBuilder.pivot.PivotRows;
|
||||
if (!val) {
|
||||
$("#PivotRows_Select2").select2({
|
||||
placeholder: 'No data to show',
|
||||
});
|
||||
}
|
||||
else if (val.length != 0) {
|
||||
$("#PivotRows_Select2").select2({
|
||||
placeholder: 'Select Pivot Rows',
|
||||
data: val,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
getDistinctChildColumnData(colName) {
|
||||
var instance = this;
|
||||
instance._reportBuilder.distinctColumnData = [];
|
||||
var cf_fromDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate);
|
||||
var cf_toDate = btoa(Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate);
|
||||
Unibase.Platform.Analytics.Managers.ReportManager.Instance().getDistinctColumnData(instance._reportBuilder.DataListId, colName, 0, cf_fromDate, cf_toDate).then(function (response) {
|
||||
if (response != "") {
|
||||
for (var i = 0; i < response.length; i++) {
|
||||
instance._reportBuilder.distinctColumnData.push(response[i][colName]);
|
||||
}
|
||||
var parentvalues = instance._reportBuilder.distinctColumnData;
|
||||
$("#PivotValue_AutoComplete").select2({
|
||||
placeholder: 'Select Pivot Child Value',
|
||||
data: parentvalues,
|
||||
});
|
||||
let childVal = instance._reportBuilder.pivot.PivotValue_Selected;
|
||||
if (childVal != -1 && childVal != undefined) {
|
||||
$("#PivotValue_AutoComplete").val(childVal).trigger("change");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
changedPivotAggrColumn() {
|
||||
var instance = this;
|
||||
$("#PivotAggrType").empty().append(`<option value="-1" > Select Aggregation Type </option>`);
|
||||
var colId = Number($("#PivotAggrColumn option:selected").val());
|
||||
if (colId != 0) {
|
||||
let DataType = Number($("#allDatalistColumns #li_" + colId + " span.datalist_column").attr('data-column-datatype'));
|
||||
let Aggregation = instance._reportBuilder.getAggregationsByDataType(DataType);
|
||||
for (var i = 0; i < Aggregation.length; i++) {
|
||||
$("#PivotAggrType").append(`<option value="` + Aggregation[i].Value + `" > ` + Aggregation[i].AggrType + ` </option>`);
|
||||
}
|
||||
}
|
||||
}
|
||||
changedPivotChildColumn() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var instance = this;
|
||||
$("#PivotValue_AutoComplete").empty().append(`<option value="-1" > Select Parent Value </option>`);
|
||||
$("#div_PivotValue").removeClass("hidden");
|
||||
var colName = $("#PivotChildColumnName_AutoComplete option:selected").text();
|
||||
var colId = Number($("#PivotChildColumnName_AutoComplete option:selected").val());
|
||||
if (colId != 0) {
|
||||
var Whole_tableData = instance._reportBuilder.tableData;
|
||||
var tableData = JSON.parse(Whole_tableData);
|
||||
var columns = [];
|
||||
yield instance.getDistinctChildColumnData(colName);
|
||||
}
|
||||
});
|
||||
}
|
||||
loadPivotSelect2s() {
|
||||
var columns = [];
|
||||
var selectedColumns = this._reportBuilder.selectedColumns;
|
||||
for (let i = 0; i < selectedColumns.length; i++)
|
||||
columns.push({ id: selectedColumns[i].ColumnId, text: selectedColumns[i].ColumnName });
|
||||
$("#PivotColumns_AutoComplete").select2({
|
||||
placeholder: 'Select Pivot Column',
|
||||
data: columns,
|
||||
});
|
||||
$("#PivotAggrColumn").select2({
|
||||
placeholder: 'Select Pivot Aggregation Column',
|
||||
data: columns,
|
||||
});
|
||||
$("#PivotChildColumnName_AutoComplete").select2({
|
||||
placeholder: 'Select Pivot Parent Column Name',
|
||||
data: columns,
|
||||
});
|
||||
$("#PivotParentColumnName_AutoComplete").select2({
|
||||
placeholder: 'Select Pivot Parent Column Name',
|
||||
data: columns,
|
||||
});
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new Pivot();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Reports.Pivot = Pivot;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Исполняемый файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
поставляемый
Исполняемый файл
+312
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
+1395
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
поставляемый
Исполняемый файл
+1210
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
+20
@@ -0,0 +1,20 @@
|
||||
var Unibase;
|
||||
(function (Unibase) {
|
||||
let Platform;
|
||||
(function (Platform) {
|
||||
let Analytics;
|
||||
(function (Analytics) {
|
||||
let Reports;
|
||||
(function (Reports) {
|
||||
class ReportBuilderVariables {
|
||||
static Instance() {
|
||||
if (this._instance === undefined)
|
||||
this._instance = new ReportBuilderVariables();
|
||||
return this._instance;
|
||||
}
|
||||
}
|
||||
Reports.ReportBuilderVariables = ReportBuilderVariables;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Исполняемый файл
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"reportbuilderhiddenfields.js","sourceRoot":"","sources":["reportbuilderhiddenfields.ts"],"names":[],"mappings":"AACA,IAAU,OAAO,CAsFhB;AAtFD,WAAU,OAAO;IACb,IAAiB,QAAQ,CAoFxB;IApFD,WAAiB,QAAQ;QACrB,IAAiB,SAAS,CAkFzB;QAlFD,WAAiB,SAAS;YACtB,IAAiB,OAAO,CAgFvB;YAhFD,WAAiB,OAAO;gBACpB,MAAa,sBAAsB;oBAyE/B,MAAM,CAAC,QAAQ;wBACX,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;4BAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;wBAClD,OAAO,IAAI,CAAC,SAAS,CAAC;oBAC1B,CAAC;iBACJ;gBA9EY,8BAAsB,yBA8ElC,CAAA;YACL,CAAC,EAhFgB,OAAO,GAAP,iBAAO,KAAP,iBAAO,QAgFvB;QACL,CAAC,EAlFgB,SAAS,GAAT,kBAAS,KAAT,kBAAS,QAkFzB;IACL,CAAC,EApFgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAoFxB;AACL,CAAC,EAtFS,OAAO,KAAP,OAAO,QAsFhB"}
|
||||
поставляемый
Исполняемый файл
@@ -0,0 +1 @@
|
||||
var Unibase;(function(n){let t;(function(n){let t;(function(n){let t;(function(n){class t{static Instance(){return this._instance===undefined&&(this._instance=new t),this._instance}}n.ReportBuilderVariables=t})(t=n.Reports||(n.Reports={}))})(t=n.Analytics||(n.Analytics={}))})(t=n.Platform||(n.Platform={}))})(Unibase||(Unibase={}));
|
||||
@@ -0,0 +1,460 @@
|
||||
var Unibase;
|
||||
(function (Unibase) {
|
||||
let Platform;
|
||||
(function (Platform) {
|
||||
let Analytics;
|
||||
(function (Analytics) {
|
||||
let Reports;
|
||||
(function (Reports) {
|
||||
class ReportFilter extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.isUnLimited = true;
|
||||
this.isreportViewer = false;
|
||||
this.dynamicFilters = [];
|
||||
this.datalistColumns = [];
|
||||
this.reportManager = Analytics.Managers.ReportManager.Instance();
|
||||
this.reportBuilder = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
var jsFiles = ['platform/analytics/managers/reportmanager.js', 'platform/datasources/managers/datalistmanager.js'];
|
||||
return jsFiles;
|
||||
}
|
||||
html(id, containerid) {
|
||||
var html = `<section id="is-filterable-section" class="modal-content">
|
||||
<div class="modal-header pa-10">
|
||||
<strong class="modal-title biz-highlight-bg-color">CommonFilter</strong>
|
||||
<a class="btn btn-sm btn-theme ml-auto" id="btnClear">Clear</a>
|
||||
<div id="report_viewer_filter" class="form-error-message"></div>
|
||||
</div>
|
||||
<div data-simplebar class="simple-scroll-bar modal-body" id="CardViewer_modal">
|
||||
<div class="sub-report-block card">
|
||||
<header class="sub-report-head">
|
||||
<h6>
|
||||
Filter
|
||||
</h6>
|
||||
<span><i class="las la-filter filter"></i></span>
|
||||
</header>
|
||||
<div class="report-body">
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-sm 12">
|
||||
<label> Display Name </label>
|
||||
<input type="text" class="form-control" id="txt_DisplayName" placeholder="Display Name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="col">
|
||||
<div id="div_datalistColumn">
|
||||
<label> DataList Name </label>
|
||||
<select id="datalistauto_AutoComplete" class="form-control text-control required">
|
||||
<option value="0" selected="">Select Datalist</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="col-sm-6">
|
||||
<div id="div_datalistvaluecolumn">
|
||||
<label> Value Column </label>
|
||||
<select id="datalistvalue_AutoComplete" class="form-control text-control required">
|
||||
<option value="0" selected="">Select value Column</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div id="div_datalisttextcolumn">
|
||||
<label> Text Column </label>
|
||||
<select id="datalisttext_AutoComplete" class="form-control text-control required">
|
||||
<option value="0" selected="">Select Text Column</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10 mappedcolumnsdiv">
|
||||
<div class="form-group col-sm 12">
|
||||
<label>Mapped Columns</label>
|
||||
<select class="form-control custom-select" id="mappedcolumnsdropdown">
|
||||
<option value="0" selected="">Select Column</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-sm 12">
|
||||
<label>Control Type</label>
|
||||
<select class="form-control custom-select" id="ControlTypeDropDown">
|
||||
<option value="0" selected="">Select Control Type</option>
|
||||
<option value="1">AutoComplete </option>
|
||||
<option value="2"> TextBox </option>
|
||||
<option value="3"> Select2 </option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-sm 12">
|
||||
<label>FontCase Type</label>
|
||||
<select class="form-control custom-select" id="FontCaseTypeDropDown">
|
||||
<option value="0" selected="">Select FontCase Type</option>
|
||||
<option value="1">No Change</option>
|
||||
<option value="2">Upper Case</option>
|
||||
<option value="3">Lower Case</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row mb-10">
|
||||
<div class="form-group col-6 col-sm-6">
|
||||
<label for="unlimited_checkbox">IsUnLimit</label>
|
||||
<div><input type="checkbox" class="chkIsUnLimited mr-10" id="isunlimited_checkbox">IsUnLimit</div>
|
||||
</div>
|
||||
<div class="form-group col-6 col-sm-6">
|
||||
<label for="isrequired_checkbox">Is Required</label>
|
||||
<div><input type="checkbox" class="chkisrequired mr-10" id="isrequired_checkbox">Is Required</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer pa-10">
|
||||
<a class="btn btn-sm btn-light mr-auto" id="btnClose">Close</a>
|
||||
<a class="btn btn-sm btn-primary" id="btnSave">Save</a>
|
||||
</div>
|
||||
</section>`;
|
||||
return html;
|
||||
}
|
||||
load(index, containerid, callback) {
|
||||
var instance = this;
|
||||
$("#isunlimited_checkbox").click(function () {
|
||||
if ($('#isunlimited_checkbox').prop('checked') == false) {
|
||||
instance.isUnLimited = false;
|
||||
$('#isunlimited_checkbox').prop('checked', false);
|
||||
}
|
||||
else {
|
||||
instance.isUnLimited = true;
|
||||
$('#isunlimited_checkbox').prop('checked', true);
|
||||
}
|
||||
});
|
||||
var reportcolumn = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.selectedColumns[index];
|
||||
var filtercols = [];
|
||||
if (!instance.isreportViewer) {
|
||||
filtercols = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().dynamicFilters.filter(function (o) { return o.IsFilterableColumn === reportcolumn.AliasName; });
|
||||
}
|
||||
else {
|
||||
filtercols = instance.dynamicFilters.filter(function (o) { return o.IsFilterableColumn === instance.displayText; });
|
||||
}
|
||||
if (filtercols.length > 0) {
|
||||
if (filtercols[0].IsUnLimited) {
|
||||
$('#isunlimited_checkbox').prop('checked', true);
|
||||
}
|
||||
if (filtercols[0].IsRequired) {
|
||||
$('#isrequired_checkbox').prop('checked', true);
|
||||
}
|
||||
$("#ControlTypeDropDown").val(filtercols[0].ControlTypeId);
|
||||
$("#FontCaseTypeDropDown").val(filtercols[0].FontCaseTypeId);
|
||||
$("#datalistauto_AutoComplete").append("<option value=" + filtercols[0].DataListId + " selected>" + filtercols[0].DataListName + "</option>");
|
||||
$('#datalistauto_AutoComplete').unbind().trigger('change');
|
||||
Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportManager.getDataListColumns(Number($("#datalistauto_AutoComplete").val()), null, null).then((response) => {
|
||||
if (response.status == Unibase.Data.Status.Success) {
|
||||
if (response.result != "") {
|
||||
this.datalistColumns = JSON.parse(response.result);
|
||||
var data = [];
|
||||
for (let i = 0; i < this.datalistColumns.length; i++) {
|
||||
data.push({ id: this.datalistColumns[i].ColumnId, text: this.datalistColumns[i].AliasName });
|
||||
}
|
||||
var valcol;
|
||||
var txtcol;
|
||||
if (data.filter(function (o) { return o.text === filtercols[0].ValueColumn; }).length > 0) {
|
||||
valcol = data.filter(function (o) { return o.text === filtercols[0].ValueColumn; })[0].id;
|
||||
}
|
||||
if (data.filter(function (o) { return o.text === filtercols[0].TextColumn; }).length > 0) {
|
||||
txtcol = data.filter(function (o) { return o.text === filtercols[0].TextColumn; })[0].id;
|
||||
}
|
||||
$("#datalistvalue_AutoComplete").select2({
|
||||
placeholder: 'Select DataList',
|
||||
data: data,
|
||||
});
|
||||
$("#datalisttext_AutoComplete").select2({
|
||||
placeholder: 'Select DataList',
|
||||
data: data,
|
||||
});
|
||||
$("#datalistvalue_AutoComplete").val(valcol).trigger("change");
|
||||
$("#datalisttext_AutoComplete").val(txtcol).trigger("change");
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError("No DatalistColumns", "divDynamicFilter_ErrorMessage");
|
||||
}
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError(response.message, "divDynamicFilter_ErrorMessage");
|
||||
}
|
||||
});
|
||||
$("#txt_DisplayName").val(filtercols[0].DisplayName);
|
||||
}
|
||||
else {
|
||||
(reportcolumn) && $("#txt_DisplayName").val(reportcolumn.DisplayText);
|
||||
}
|
||||
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/datalists/getall_autocomplete';
|
||||
AutoCompleteHelper.getHelper().Create("#datalistauto_AutoComplete", "#hfcommmonfilterAutoComplete_DataList", url, function (response) {
|
||||
var data = response;
|
||||
$("#btnClear").click(function () {
|
||||
let dynamicFilters = [];
|
||||
if (!Unibase.Platform.Analytics.Reports.ReportFilter.Instance().isreportViewer) {
|
||||
dynamicFilters = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters;
|
||||
var index = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters.findIndex(function (o) {
|
||||
return (o.IsFilterableColumn === reportcolumn.DisplayText);
|
||||
});
|
||||
if (index !== -1)
|
||||
Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters.splice(index, 1);
|
||||
reportcolumn.IsFilterable = false;
|
||||
}
|
||||
else {
|
||||
dynamicFilters = Unibase.Platform.Filters.Components.Editfilters.Instance().dynamicFilters;
|
||||
}
|
||||
var filter = dynamicFilters.find(x => x.TextColumn == $("#datalisttext_AutoComplete").select2('data')[0].text.trim());
|
||||
Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportManager.deleteDynamicFilter(filter.DynamicFilterId).then(function (response) { });
|
||||
$("#datalistauto_AutoComplete").text("select");
|
||||
$("#datalisttext_AutoComplete").text("select");
|
||||
$("#datalistvalue_AutoComplete").text("select");
|
||||
});
|
||||
$("#btnSave").unbind().click(function () {
|
||||
if (instance.isreportViewer)
|
||||
Unibase.Platform.Filters.Components.Editfilters.Instance().saveDynamicFilter(containerid);
|
||||
else
|
||||
instance.save(reportcolumn, containerid);
|
||||
});
|
||||
$("#btnClose").unbind().click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
instance.isreportViewer = false;
|
||||
});
|
||||
$("#datalistauto_AutoComplete").unbind().change(function () {
|
||||
Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportManager.getDataListColumns(Number($("#datalistauto_AutoComplete").val()), null, null).then(function (response) {
|
||||
if (response.status == Unibase.Data.Status.Success) {
|
||||
var res;
|
||||
if (response.result != "") {
|
||||
res = JSON.parse(response.result);
|
||||
var data = [];
|
||||
for (let i = 0; i < res.length; i++) {
|
||||
data.push({ id: res[i].ColumnId, text: res[i].AliasName });
|
||||
}
|
||||
$("#datalistvalue_AutoComplete").html("");
|
||||
$("#datalisttext_AutoComplete").html("");
|
||||
$("#datalistvalue_AutoComplete").select2({
|
||||
placeholder: 'Select DataList',
|
||||
data: data,
|
||||
});
|
||||
$("#datalisttext_AutoComplete").select2({
|
||||
placeholder: 'Select DataList',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError("No DataListColumns", "divDynamicFilter_ErrorMessage");
|
||||
}
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError(response.message, "divDynamicFilter_ErrorMessage");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
let dlId = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().DataListId;
|
||||
Unibase.Platform.DataSources.Managers.DataListManager.Instance().getDataList(dlId).then((res) => {
|
||||
if (res.status == Unibase.Data.Status.Success) {
|
||||
if (res.result.Parameters) {
|
||||
let params = res.result.Parameters.replaceAll("@", "");
|
||||
params = params.split("|");
|
||||
let paramOptions = "";
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
let currentFilter = filtercols.find(x => x.MappedColumn == params[i]);
|
||||
if (currentFilter)
|
||||
paramOptions += `<option value="${params[i]}" selected > ${params[i]} </option>`;
|
||||
else
|
||||
paramOptions += `<option value="${params[i]}"> ${params[i]} </option>`;
|
||||
}
|
||||
$("#mappedcolumnsdropdown").append(paramOptions);
|
||||
}
|
||||
else {
|
||||
$(".mappedcolumnsdiv").addClass("d-none");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
save(reportcolumn, containerid) {
|
||||
let currentDatalistCol;
|
||||
let IsFilterable = reportcolumn.IsFilterable;
|
||||
if (IsFilterable == false)
|
||||
reportcolumn.IsFilterable = !IsFilterable;
|
||||
var dynamicFilters = Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters;
|
||||
let dynamicfilterid = 0;
|
||||
var dynamicfilIndex = dynamicFilters.find(d => d.IsFilterableColumn == reportcolumn.DisplayText);
|
||||
var dynFill = dynamicFilters.filter(function (o) { return o.IsFilterableColumn === reportcolumn.DisplayText; });
|
||||
if (dynFill.length > 0) {
|
||||
dynamicfilterid = dynFill[0].DynamicFilterId;
|
||||
var index = dynamicFilters.findIndex(function (o) {
|
||||
return (o.IsFilterableColumn === reportcolumn.DisplayText);
|
||||
});
|
||||
if (index !== -1)
|
||||
dynamicFilters.splice(index, 1);
|
||||
}
|
||||
var model = new DynamicFilterModel();
|
||||
model.IsFilterableColumn = reportcolumn.AliasName;
|
||||
model.DynamicFilterId = dynamicfilterid;
|
||||
model.DataListId = Number($("#datalistauto_AutoComplete").val());
|
||||
model.DataListName = $("#datalistauto_AutoComplete").select2('data')[0].text;
|
||||
model.ReportId = 0;
|
||||
model.MappedColumn = $("#mappedcolumnsdropdown option:selected").val() === "0" ? "" : $("#mappedcolumnsdropdown option:selected").val().toString();
|
||||
model.TextColumn = $("#datalisttext_AutoComplete").select2('data')[0].text.trim();
|
||||
model.ValueIdColumn = Number($("#datalistvalue_AutoComplete").val());
|
||||
model.ValueColumn = $("#datalistvalue_AutoComplete").select2('data')[0].text.trim();
|
||||
model.TextIdColumn = Number($("#datalisttext_AutoComplete").val());
|
||||
model.Index = (dynamicfilIndex) ? dynamicfilIndex.Index : dynamicFilters.length;
|
||||
model.ControlTypeId = Number($("#ControlTypeDropDown").val());
|
||||
model.FontCaseTypeId = Number($("#FontCaseTypeDropDown").val());
|
||||
model.DataType = reportcolumn.DataType;
|
||||
model.DisplayName = $("#txt_DisplayName").val().toString();
|
||||
model.IsDefault = $(".dynamicfilter-defaultdate_" + reportcolumn.ColumnName).is(":checked");
|
||||
model.IsUnLimited = $("#isunlimited_checkbox").prop("checked");
|
||||
model.IsRequired = $("#isrequired_checkbox").prop("checked");
|
||||
currentDatalistCol = this.datalistColumns.find(x => x.ColumnId == model.ValueIdColumn);
|
||||
if (currentDatalistCol && reportcolumn.DataType == Reports.Enums.DataType.string &&
|
||||
currentDatalistCol.DataTypeId != Reports.Enums.DataType.string && currentDatalistCol.DataTypeId != Reports.Enums.DataType.text)
|
||||
return MessageHelper.Instance().showError("Selected value column data type should be string", "report_viewer_filter");
|
||||
else if (currentDatalistCol && (reportcolumn.DataType == Reports.Enums.DataType.int32 || reportcolumn.DataType == Reports.Enums.DataType.int64 ||
|
||||
reportcolumn.DataType == Reports.Enums.DataType.decimal) && currentDatalistCol.DataTypeId != Reports.Enums.DataType.int32 &&
|
||||
currentDatalistCol.DataTypeId != Reports.Enums.DataType.int64 && currentDatalistCol.DataTypeId != Reports.Enums.DataType.decimal)
|
||||
return MessageHelper.Instance().showError("Selected value column data type should be integer as dynamic filter data type is integer", "report_viewer_filter");
|
||||
Unibase.Platform.Analytics.Reports.ReportFilter.Instance().sortDynamicFilter(model);
|
||||
Unibase.Platform.Analytics.Reports.ReportFilter.Instance().reportBuilder.dynamicFilters.push(model);
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
}
|
||||
sortDynamicFilter(model) {
|
||||
var instance = this;
|
||||
let filetersList = $('#dynamic-list-group-wrapper');
|
||||
if (!filetersList)
|
||||
return;
|
||||
filetersList.sortable({
|
||||
connectWith: "#dynamic-list-group-wrapper",
|
||||
cursor: 'move',
|
||||
update: function (event, ui) {
|
||||
$.each($('#dynamic-list-group-wrapper .datagroup'), function (index, item) {
|
||||
let itemName = $(item).attr('data-isfilterablecolumn');
|
||||
let dynamicFilters = instance.dynamicFilters;
|
||||
if (dynamicFilters.length != 0) {
|
||||
for (let x = 0; x < dynamicFilters.length; x++) {
|
||||
if (dynamicFilters[x].IsFilterableColumn == itemName) {
|
||||
dynamicFilters[x].Index = index;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (instance.isreportViewer)
|
||||
$(item).find('.filter-index').text(index + 1);
|
||||
});
|
||||
if (!instance.isreportViewer)
|
||||
instance.reportBuilder.load_data(instance.reportBuilder.table);
|
||||
}
|
||||
});
|
||||
}
|
||||
dynamicFilterIsDefaultDateColumn(columnName) {
|
||||
var dIndex = this.getIndexByDisplayText_dynamicFilterColumns(columnName);
|
||||
if (dIndex != -1) {
|
||||
let filtermodelarray = new Array();
|
||||
let currentFilter = this.reportBuilder.dynamicFilters[dIndex];
|
||||
if (currentFilter.IsPartition) {
|
||||
$("#dynamicfilter-defaultdate_" + columnName).prop("checked", false);
|
||||
return MessageHelper.Instance().showError("Dynamic filter cannot be both partition and default, uncheck partition before making default", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
if ($("#dynamicfilter-defaultdate_" + columnName).hasClass("imchecked")) {
|
||||
$("input[type=radio][name=defaultdate]").prop('checked', false);
|
||||
$("#dynamicfilter-defaultdate_" + columnName).removeClass("imchecked");
|
||||
}
|
||||
var isdefault = $("#dynamicfilter-defaultdate_" + columnName).is(":checked");
|
||||
if (isdefault)
|
||||
$("#dynamicfilter-defaultdate_" + columnName).addClass("imchecked");
|
||||
currentFilter.IsDefault = isdefault;
|
||||
this.reportBuilder.dynamicFilters[dIndex] = currentFilter;
|
||||
Unibase.Platform.Analytics.Managers.ReportManager.Instance().saveDynamicFilter(this.reportBuilder.reportid, this.reportBuilder.dynamicFilters).then((res) => {
|
||||
if (res.status == Unibase.Data.Status.Success)
|
||||
MessageHelper.Instance().showSuccess("Filter Saved Sucessfully", "divEditFiltersErrMsg");
|
||||
else
|
||||
MessageHelper.Instance().showError(res.message, "div_ReportBuilderErrorMessage");
|
||||
});
|
||||
}
|
||||
}
|
||||
dynamicFilterIsPartition(columnName) {
|
||||
var dIndex = this.getIndexByDisplayText_dynamicFilterColumns(columnName);
|
||||
if (dIndex != -1) {
|
||||
let filtermodelarray = new Array();
|
||||
let currentFilter = this.reportBuilder.dynamicFilters[dIndex];
|
||||
if (currentFilter.IsDefault) {
|
||||
$("#chk_ispartition_" + columnName).prop("checked", false);
|
||||
return MessageHelper.Instance().showError("Dynamic filter cannot be both partition and default, uncheck default before making partition", "div_ReportBuilderErrorMessage");
|
||||
}
|
||||
var ispartition = $("#chk_ispartition_" + columnName).prop("checked");
|
||||
currentFilter.IsPartition = ispartition;
|
||||
this.reportBuilder.dynamicFilters[dIndex] = currentFilter;
|
||||
Unibase.Platform.Analytics.Managers.ReportManager.Instance().saveDynamicFilter(this.reportBuilder.reportid, this.reportBuilder.dynamicFilters).then((res) => {
|
||||
if (res.status == Unibase.Data.Status.Success)
|
||||
MessageHelper.Instance().showSuccess("Filter Saved Sucessfully", "divEditFiltersErrMsg");
|
||||
else
|
||||
MessageHelper.Instance().showError(res.message, "div_ReportBuilderErrorMessage");
|
||||
});
|
||||
}
|
||||
}
|
||||
removeDynamicFilterSelectedColumn_table(DisplayText) {
|
||||
var instance = this;
|
||||
bootbox.confirm("Do you want to Delete the Filter?", function (result) {
|
||||
if (result) {
|
||||
var index = instance.dynamicFilters.findIndex(function (o) {
|
||||
if (o.IsFilterableColumn === DisplayText) {
|
||||
instance.reportManager.deleteDynamicFilter(o.DynamicFilterId).then(function (response) {
|
||||
if (response.status == Unibase.Data.Status.Success) {
|
||||
MessageHelper.Instance().showSuccess(response.message, '');
|
||||
}
|
||||
else if (response.status == Unibase.Data.Status.Error) {
|
||||
MessageHelper.Instance().showError(response.message, 'divEditFiltersErrMsg');
|
||||
}
|
||||
});
|
||||
}
|
||||
return o.IsFilterableColumn === DisplayText;
|
||||
});
|
||||
if (index !== -1)
|
||||
instance.dynamicFilters.splice(index, 1);
|
||||
$(`[data-isfilterablecolumn="${DisplayText}"]`).remove();
|
||||
if (instance.dynamicFilters.length != 0) {
|
||||
for (var i = 0; i < instance.dynamicFilters.length; i++) {
|
||||
let filterIndex = instance.getIndexByDisplayText_dynamicFilterColumns(instance.dynamicFilters[i].IsFilterableColumn);
|
||||
instance.dynamicFilters[filterIndex].Index = i;
|
||||
if (instance.isreportViewer)
|
||||
$("#dynamic-list-group-wrapper .filter-item").eq(i).find('.filter-index').text(i + 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (instance.isreportViewer) {
|
||||
$('#dynamicFiltersCard').addClass('d-none');
|
||||
if (!$('#staticFiltersCard').is(':visible')) {
|
||||
$('#noFiltersErrMsg').removeClass('d-none');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
getIndexByDisplayText_dynamicFilterColumns(isFilterableColumn) {
|
||||
return this.reportBuilder.dynamicFilters.findIndex(x => x.IsFilterableColumn == isFilterableColumn);
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new ReportFilter();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Reports.ReportFilter = ReportFilter;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
поставляемый
Исполняемый файл
+97
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
@@ -0,0 +1,274 @@
|
||||
var Unibase;
|
||||
(function (Unibase) {
|
||||
let Platform;
|
||||
(function (Platform) {
|
||||
let Analytics;
|
||||
(function (Analytics) {
|
||||
let Reports;
|
||||
(function (Reports) {
|
||||
class ReportGroup extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.parentGroupId = 0;
|
||||
this.groupId = 0;
|
||||
this.groupName = '';
|
||||
this._reportManager = Analytics.Managers.ReportManager.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
var jsFiles = ['platform/analytics/requests/reportgroup.js', 'platform/core/infos/status.js'];
|
||||
return jsFiles;
|
||||
}
|
||||
html(id, containerid) {
|
||||
let html = `<form id="" method="post" class="" data-formuniquekey="" data-validate="parsley"><header class="b-b bg-white modal-header"><strong class="text-dark Title" id="div_FormName">Create Report Group</strong></header><div class="bg-light control-sorting modal-body bg-white" style="overflow-y:auto; height:475px;"><div id="" class="clear bizgaze_FormErrorMessages"></div><div id="divReportGroup_ErrorMessage"></div><div class="section_ReportGroup card"><div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div>
|
||||
<label for="lbl" id="lbl_GroupName">Report Group Name
|
||||
<span class="text-danger" id="spnIsRequired_reportgroup"> *</span>
|
||||
</label>
|
||||
<input type="text" id="txt_GroupName" class="type-control form-control type-control value-control required"
|
||||
data-regularexp="" data-validatemsg="" placeholder="Enter Report Group Name *">
|
||||
</div>
|
||||
<label for="Validation" id="lblValidation_GroupName"></label>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<label for="lbl" id="lbl_displayname">Display Name</label>
|
||||
<input type="text" id="txt_displayname" class="type-control form-control type-control value-control required"
|
||||
data-regularexp="" data-validatemsg="" placeholder="Enter Display Name ">
|
||||
<label for="Validation" id="lblValidation_displayname"></label>
|
||||
</div>
|
||||
|
||||
<div class="IsInternalGroupDiv col-sm-6 flex-between-center">
|
||||
<span>IsInternalGroup</span>
|
||||
<label class="switch mb-0" for="reportGroup_IsInternalGroup">
|
||||
<input type="checkbox" id="reportGroup_IsInternalGroup"><span></span>
|
||||
<input type="hidden" id="hf_IsInternalGroup"> <input type="hidden" class="value-control"
|
||||
id="hf_IsInternalGroupid">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div id="" class="form-group col-sm-6">
|
||||
<label for="lbl" id="lbl_reportgroupindex">Report Group Index
|
||||
<span class="text-danger " id="spnIsRequired_reportgroupindex"></span>
|
||||
</label>
|
||||
<input type="text" id="txt_reportgroupindex"
|
||||
class="type-control form-control type-control value-control required"
|
||||
data-regularexp="" data-validatemsg="" placeholder="Enter Report Group Index *">
|
||||
</div>
|
||||
<div class="form-group col-sm-6">
|
||||
<label for="parentgroupid">
|
||||
Parent Group
|
||||
</label>
|
||||
<select class="form-control" id="parentgroupid" >
|
||||
</select>
|
||||
</div>
|
||||
<div class="IsEnableFolder col-sm-6 flex-between-center">
|
||||
<span>EnableFolder</span>
|
||||
<label class="switch mb-0" for="reportGroup_IsEnableFolder">
|
||||
<input type="checkbox" id="reportGroup_IsEnableFolder"><span></span>
|
||||
<input type="hidden" id="hf_IsEnableFolder"> <input type="hidden" class="value-control" id="hf_IsEnableFolder">
|
||||
</label>
|
||||
</div>
|
||||
<label for="Validation" id="lblValidation_GroupName"></label>
|
||||
</div></div></div></div></div><footer class="bg-white modal-footer" id="formFooter"><a href="javascript:;" id="btn_CloseForm" class="btn btn-light btn-sm mr-auto" onclick=""> Close</a><a href="javascript:;" id="btn_SaveReportGrp" class="btn btn-primary btn-sm" > Save</a></footer></form>`;
|
||||
return html;
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
instance.parentGroupId = 0;
|
||||
$("#" + containerid).find(".modal-body").css('height', $(window).outerHeight() - $("#" + containerid).find(".modal-header").outerHeight() - $("#" + containerid).find(".modal-footer").outerHeight() + 'px');
|
||||
if (id != 0)
|
||||
instance.loadReportGroup(id);
|
||||
$("#btn_SaveReportGrp").click(function () {
|
||||
let isInternal = $("#reportGroup_IsInternalGroup").prop("checked");
|
||||
let isEnableFolder = $("#reportGroup_IsEnableFolder").prop("checked");
|
||||
let groupIndex = $("#txt_reportgroupindex").val();
|
||||
if ($("#txt_GroupName").val() == "")
|
||||
return MessageHelper.Instance().showError("Please select ReportGroup", 'divReportGroup_ErrorMessage');
|
||||
let model = new Unibase.Platform.Analytics.Reports.Requests.ReportGroup();
|
||||
model.GroupName = String($("#txt_GroupName").val());
|
||||
model.ReportGroupId = id;
|
||||
model.IsInternalGroup = isInternal;
|
||||
model.EnableFolder = isEnableFolder;
|
||||
model.ReportGroupIndex = !parseInt(groupIndex) ? 0 : parseInt(groupIndex);
|
||||
model.ParentGroupId = instance.parentGroupId;
|
||||
model.DisplayName = String($("#txt_displayname").val());
|
||||
instance._reportManager.saveReportGroup(model).then(function (response) {
|
||||
let res = JSON.parse(response.result);
|
||||
if (response.status == Unibase.Data.Status.Error) {
|
||||
MessageHelper.Instance().showError(response.message, 'divReportGroup_ErrorMessage');
|
||||
}
|
||||
else {
|
||||
$("#RptGroup_AutoComplete").append("<option selected value=" + res.ReportGroupId + ">" + res.GroupName + "</option>");
|
||||
MessageHelper.Instance().showSuccess(response.message, '');
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
}
|
||||
});
|
||||
});
|
||||
$("#btn_CloseForm").click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
$("#RptGroup_AutoComplete").remove();
|
||||
});
|
||||
instance.loadReportGroups();
|
||||
$("#parentgroupid").change(function (e) {
|
||||
instance.parentGroupId = Number(e.currentTarget.value);
|
||||
var parentGroupName = e.currentTarget.textContent.trim();
|
||||
if (instance.groupId == instance.parentGroupId) {
|
||||
e.currentTarget.value = "0";
|
||||
e.currentTarget.textContent = "";
|
||||
MessageHelper.Instance().showError(`Cannot select same report group as parent group`, 'divReportGroup_ErrorMessage');
|
||||
return false;
|
||||
}
|
||||
if (instance.groupId && instance.parentGroupId) {
|
||||
instance._reportManager.checkReportGroupDependency(instance.groupId, instance.parentGroupId).then((response) => {
|
||||
if (response.status == Unibase.Data.Status.Success && response.result) {
|
||||
e.currentTarget.value = "0";
|
||||
e.currentTarget.textContent = "";
|
||||
MessageHelper.Instance().showError(`Parent group ${parentGroupName} has the current report group ${instance.groupName} as parent group, change the parent report group and try again`, 'divReportGroup_ErrorMessage');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
|
||||
var instance = this;
|
||||
instance.navigationHelper.popup(0, '', instance, null, Platform.Helpers.Size.Large);
|
||||
}
|
||||
loadReportGroupForm(iscreate) {
|
||||
var Pk_Value = 0;
|
||||
var instance = this;
|
||||
if (!iscreate) {
|
||||
Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId;
|
||||
}
|
||||
instance.navigationHelper.popup(Pk_Value, '', instance, null, Platform.Helpers.Size.Large);
|
||||
}
|
||||
editReportGroup() {
|
||||
var instance = this;
|
||||
var reportGroupId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportgroupid")).Value);
|
||||
instance.navigationHelper.popup(reportGroupId, "", instance, null, Unibase.Platform.Helpers.Size.Large);
|
||||
}
|
||||
loadReportGroup(id) {
|
||||
var instance = this;
|
||||
instance._reportManager.getReportGroupById(id).then(function (response) {
|
||||
if (response.status == Unibase.Data.Status.Success) {
|
||||
var res = response.result;
|
||||
instance.groupId = response.result.ReportGroupId;
|
||||
instance.groupName = response.result.GroupName;
|
||||
instance.displayName = response.result.DisplayName;
|
||||
$("#txt_GroupName").val(res.GroupName).attr("disabled", "disabled");
|
||||
$("#reportGroup_IsInternalGroup").prop("checked", res.IsInternalGroup);
|
||||
$("#reportGroup_IsEnableFolder").prop("checked", res.EnableFolder);
|
||||
$("#txt_reportgroupindex").val(res.ReportGroupIndex);
|
||||
$("#txt_displayname").val(res.DisplayName);
|
||||
if (res.ParentGroupId) {
|
||||
instance.parentGroupId = res.ParentGroupId;
|
||||
instance._reportManager.getReportGroupById(res.ParentGroupId).then(res => {
|
||||
if (res.status == Unibase.Data.Status.Success) {
|
||||
var option = new Option(res.result.RecursiveParentName, res.result.ReportGroupId.toString(), true, true);
|
||||
$("#parentgroupid").append(option);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError(response.message, "divReportGroup_ErrorMessage");
|
||||
}
|
||||
});
|
||||
}
|
||||
exportGroupReports(reportgroupid) {
|
||||
var instance = this;
|
||||
var ReportGroupId = 0;
|
||||
if (reportgroupid == 0)
|
||||
ReportGroupId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportgroupid")).Value);
|
||||
else
|
||||
ReportGroupId = reportgroupid;
|
||||
if (ReportGroupId != 0) {
|
||||
instance.navigationHelper.showLoading();
|
||||
instance._reportManager.getReportGroupById(ReportGroupId).then(function (response) {
|
||||
let groupname = response.result.GroupName;
|
||||
instance._reportManager.exportGroupreports(ReportGroupId).then(function (rptgrpresponse) {
|
||||
var filename = groupname + ".xml";
|
||||
var xmltext = rptgrpresponse.result;
|
||||
var pom = document.createElement('a');
|
||||
var bb = new Blob([xmltext], { type: 'text/plain' });
|
||||
pom.setAttribute('href', window.URL.createObjectURL(bb));
|
||||
pom.setAttribute('download', filename);
|
||||
pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
|
||||
pom.draggable = true;
|
||||
pom.classList.add('dragout');
|
||||
pom.click();
|
||||
instance.navigationHelper.hideLoading();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
deleteReportGroup() {
|
||||
const reportGroupId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportgroupid")).Value);
|
||||
const reportCount = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportcount")).Value);
|
||||
if (!reportCount) {
|
||||
bootbox.confirm("Are you sure to delete this group?", (result) => {
|
||||
if (result) {
|
||||
this._reportManager.deleteReportGroup(reportGroupId).then((response) => {
|
||||
if (response.status == Unibase.Data.Status.Success) {
|
||||
MessageHelper.Instance().showSuccess("Report group has been sucessfully deleted", 'divReportGroup_ErrorMessage');
|
||||
Unibase.Platform.Apps.Managers.AppManager.Instance().getInstallAppId("Unibase_Platform_Analytics_Reports_App_ReportsGroup").then((response) => {
|
||||
if (response.status == Unibase.Data.Status.Success)
|
||||
Unibase.Themes.Compact.Components.Nav.Instance().loadList(response.result.InstalledAppId);
|
||||
});
|
||||
}
|
||||
else
|
||||
MessageHelper.Instance().showError(response.message, 'divReportGroup_ErrorMessage');
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
bootbox.confirm("One or more reports are associated with this group, Please ensure to delete all reports associated with this group before deleting", () => { });
|
||||
}
|
||||
loadReportGroups() {
|
||||
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reportgroups_autocompleterecursive';
|
||||
AutoCompleteHelper.getHelper().Create("#parentgroupid", "#hfAutoComplete_ReportGroup", url, null);
|
||||
}
|
||||
updateStatus() {
|
||||
var instance = this;
|
||||
let reportidGroupId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("reportgroupid")).Value);
|
||||
let statusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith("statusid")).Value);
|
||||
let installedappId = Number(Unibase.Themes.Providers.DetailHelper.installedAppId);
|
||||
$("#DetailSetting_" + installedappId + "_Active").removeClass("btn-outline-primary");
|
||||
if (statusId == Unibase.Platform.Core.Enums.RowStatus.Active) {
|
||||
$("#DetailSetting_" + installedappId + "_Active").addClass("btn-success");
|
||||
$("#DetailSetting_" + installedappId + "_Active").removeClass("btn-red");
|
||||
}
|
||||
else {
|
||||
$("#DetailSetting_" + installedappId + "_Active").removeClass("btn-success");
|
||||
$("#DetailSetting_" + installedappId + "_Active").addClass("btn-red");
|
||||
}
|
||||
$("#DetailSetting_" + installedappId + "_Active").text((statusId == Unibase.Platform.Core.Enums.RowStatus.Active) ? "Active" : "InActive");
|
||||
$("#DetailSetting_" + installedappId + "_Active").click(function () {
|
||||
let id = Unibase.Platform.Core.Enums.RowStatus.Active;
|
||||
if ($("#DetailSetting_" + installedappId + "_Active").text() == "Active")
|
||||
id = Unibase.Platform.Core.Enums.RowStatus.InActive;
|
||||
instance._reportManager.updateReportGroupStatus(reportidGroupId, id).then(function (statusres) {
|
||||
if (statusres.status == Unibase.Data.Status.Success) {
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new ReportGroup();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Reports.ReportGroup = ReportGroup;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
поставляемый
Исполняемый файл
+19
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
@@ -0,0 +1,230 @@
|
||||
var Unibase;
|
||||
(function (Unibase) {
|
||||
let Platform;
|
||||
(function (Platform) {
|
||||
let Analytics;
|
||||
(function (Analytics) {
|
||||
let Reports;
|
||||
(function (Reports) {
|
||||
class ReportRoleSettings extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.isSingleAppSelected = false;
|
||||
this.reportManager = Analytics.Managers.ReportManager.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
var jsFiles = ['platform/analytics/managers/reportmanager.js'];
|
||||
return jsFiles;
|
||||
}
|
||||
html(id, containerid) {
|
||||
let html = `<section id="link-report-section" class="modal-content">
|
||||
<div class="modal-header pa-10" id="reportrolesetting_header">
|
||||
<strong class="modal-title biz-highlight-bg-color">Role Settings</strong>
|
||||
</div>
|
||||
<div data-simplebar class="simple-scroll-bar">
|
||||
<div id="divRoleSetting_ErrorMessage"></div>
|
||||
<div class="modal-body bg-charcoal-light-5 sub-report-block" id="reportrolesetting_modal">
|
||||
<div class="report-rolesettings-block card" data-select2-id="24">
|
||||
<div data-select2-id="23">
|
||||
<header class="report-rolesettings-head">
|
||||
<h6 class="required">
|
||||
Role Settings
|
||||
</h6>
|
||||
<span>
|
||||
<i class="las la-braille dragger"></i>
|
||||
</span>
|
||||
</button>
|
||||
</header>
|
||||
<div id="subrpts_div" data-select2-id="subrpts_div" class="">
|
||||
<div class="report-body">
|
||||
<div class="form-group">
|
||||
<div id="divsubrpt_0" data-select2-id="divsubrpt_">
|
||||
<div class="form-row">
|
||||
<div class="col">
|
||||
<div id="div_installedapps">
|
||||
<input type="hidden" id="hfrolesettings_installedapps">
|
||||
<select id="rolesettings_installedapps" class="form-control text-control required">
|
||||
<option value="0" selected="">Apps</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div id="div_rolesettings">
|
||||
<select id="rolesettings_ddl" class="form-control custom-select mb-10 required">
|
||||
<option value="0" selected="">Role Settings</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<a class="btn btn-icon btn-theme" id="btnConfigAddRoleSetting" onclick="" ;="">
|
||||
<span class="btn-icon-wrap"><span class="line-icon text-white"><i class="las la-plus"></i></span></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-t-sm">
|
||||
<div class="form-row">
|
||||
<div class="col px-4 py-2">
|
||||
<strong> App Name </strong>
|
||||
</div>
|
||||
<div class="col py-2">
|
||||
<strong> RoleSetting </strong>
|
||||
</div>
|
||||
<div class="col-auto py-2 px-4">
|
||||
<a class="invisible"><i class="fa fa-close text-danger"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="RoleSettingExp"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
<div class="modal-footer pa-10" id="linkreport_footer">
|
||||
<button type="button" class="btn btn-sm btn-light mr-auto" id="btnRoleSettingsClose">Cancel</button>
|
||||
<button type="button" class="btn btn-sm btn-primary" id="btnRoleSettingsSave">Save</button>
|
||||
</div>
|
||||
</section>`;
|
||||
return html;
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
let isRoleSettingsExists = false;
|
||||
instance._reportbuilder = Reports.ReportBuilder.Instance();
|
||||
$("#btnRoleSettingsClose").click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
if (instance.isSingleAppSelected) {
|
||||
instance._reportbuilder.roleSettings = [];
|
||||
instance.isSingleAppSelected = false;
|
||||
}
|
||||
});
|
||||
$('#rolesettings_installedapps').empty();
|
||||
if (instance._reportbuilder.roleSettings && instance._reportbuilder.roleSettings.length)
|
||||
isRoleSettingsExists = true;
|
||||
if (instance._reportbuilder.roleSettings != null) {
|
||||
for (let i = 0; i < instance._reportbuilder.roleSettings.length; i++) {
|
||||
let item = instance._reportbuilder.roleSettings[i];
|
||||
instance.appendRoleSetting(item.AppTitle, item.SettingName);
|
||||
}
|
||||
}
|
||||
$("#btnConfigAddRoleSetting").click(function () {
|
||||
if (instance._reportbuilder.roleSettings && instance._reportbuilder.roleSettings.length >= 1) {
|
||||
let idx = instance._reportbuilder.selectedColumns.findIndex(x => x.AliasName == 'installedappid');
|
||||
if (idx == -1) {
|
||||
MessageHelper.Instance().showError("Please add installedappid column in order to select app", "divRoleSetting_ErrorMessage");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var appName = $("#rolesettings_installedapps option:selected").text();
|
||||
var installedappid = $("#rolesettings_installedapps option:selected").val();
|
||||
var rolesetting = $("#rolesettings_ddl option:selected").text();
|
||||
if (appName == "" || rolesetting == "")
|
||||
return;
|
||||
var lefNavigationInstalledAppId = Number($("#InstalledApp_AutoComplete option:selected").val());
|
||||
if (installedappid == lefNavigationInstalledAppId) {
|
||||
if (instance._reportbuilder.roleSettings && instance._reportbuilder.roleSettings.length == 1) {
|
||||
instance.isSingleAppSelected = true;
|
||||
}
|
||||
return MessageHelper.Instance().showError(`Cannot use same app ${appName} in both role settings and installed app field of left navigation in report builder.`, 'divRoleSetting_ErrorMessage');
|
||||
}
|
||||
var rolset = false;
|
||||
if (instance._reportbuilder.roleSettings != null)
|
||||
rolset = instance._reportbuilder.roleSettings.find(x => x.AppTitle == appName && x.SettingName == rolesetting) ? true : false;
|
||||
if (!rolset) {
|
||||
instance.appendRoleSetting(appName, rolesetting);
|
||||
instance._reportbuilder.roleSettings.push({
|
||||
InstalledAppId: Number($("#rolesettings_installedapps option:selected").val()),
|
||||
AppPermissionId: Number($("#rolesettings_ddl option:selected").val()),
|
||||
AppTitle: appName,
|
||||
SettingName: rolesetting,
|
||||
});
|
||||
}
|
||||
$("#rolesettings_installedapps").html('<option value="0" selected="">Apps</option>').val("0");
|
||||
$("#rolesettings_ddl").html('<option value="0" selected="">Role Settings</option>').val("0");
|
||||
});
|
||||
$("#btnRoleSettingsSave").click(function () {
|
||||
if (instance._reportbuilder.roleSettings != null) {
|
||||
if (instance._reportbuilder.roleSettings.length == 0 && !isRoleSettingsExists) {
|
||||
return MessageHelper.Instance().showError('Please Select Role Setting', 'divRoleSetting_ErrorMessage');
|
||||
}
|
||||
else if (instance._reportbuilder.roleSettings.length < 2) {
|
||||
var inst = $("#InstalledApp_AutoComplete").val();
|
||||
if (instance._reportbuilder.roleSettings.length == 1) {
|
||||
instance.isSingleAppSelected = true;
|
||||
}
|
||||
if (!inst)
|
||||
return MessageHelper.Instance().showError('Use installed app field in left navigation of report builder, if report have only one role setting', 'divRoleSetting_ErrorMessage');
|
||||
}
|
||||
else if (instance._reportbuilder.roleSettings.length == 2) {
|
||||
let installedid = $("#InstalledApp_AutoComplete option:selected").val();
|
||||
if (installedid) {
|
||||
return MessageHelper.Instance().showError('Remove installedapp from left navigation of report builder to use multiple report role settings', 'divRoleSetting_ErrorMessage');
|
||||
}
|
||||
}
|
||||
if (instance._reportbuilder.roleSettings.length > 1) {
|
||||
instance.isSingleAppSelected = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return MessageHelper.Instance().showError('Please Select Role Setting', 'divRoleSetting_ErrorMessage');
|
||||
}
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
instance.loadInstalledApps();
|
||||
}
|
||||
loadInstalledApps() {
|
||||
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete';
|
||||
AutoCompleteHelper.getHelper().Create("#rolesettings_installedapps", "#hfrolesettings_installedapps", url, function (response) {
|
||||
var installedappid = $("#hfrolesettings_installedapps").val();
|
||||
Unibase.Platform.Apps.Managers.AppManager.Instance().getAppPermissions(installedappid).then(function (response) {
|
||||
var drpdata = '';
|
||||
$("#rolesettings_ddl").html("");
|
||||
var data = response.result;
|
||||
let viewPermission = data.find(function (x) { return x.SettingName.toLowerCase() == 'view'; });
|
||||
if (viewPermission) {
|
||||
$("#rolesettings_ddl").append('<option value="' + viewPermission.AppPermissionId + '" columnvalue="" selected>' + viewPermission.SettingName + '</option>').val(viewPermission.AppPermissionId).trigger("change");
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
appendRoleSetting(appName, rolesetting) {
|
||||
let ulDiv = 'ulAppName_' + appName.replace(/ /g, "_") + '-' + rolesetting.replace(/ /g, "_");
|
||||
var rshtml = '<div class="border border-1 mt-2 ulDatalistFilters_' + appName.replace(" ", "_") + rolesetting.replace(" ", "_") + '" id = "' + ulDiv + '">' +
|
||||
'<div class="form-row" id="li_AppName_' + appName + rolesetting + '"> ' +
|
||||
'<div class="col py-2 px-4 lblappname"> ' + appName + ' </div> ' +
|
||||
'<div class="col py-2 px-4 lblrolesetting"> ' + rolesetting + ' </div>' +
|
||||
'<div class="col-auto py-2 px-4"><a id = "btnRemove" onclick="Unibase.Platform.Analytics.Reports.ReportRoleSettings.Instance().RemoveRoleSettingExp(' + "'" + appName + "'" + ',' + "'" + rolesetting + "'" + ',' + "'" + ulDiv + "'" + ')" class="pull-right" ><i class="fa fa-close text-danger"></i></a></div>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
$("#RoleSettingExp").append(rshtml);
|
||||
}
|
||||
RemoveRoleSettingExp(appname, rolesetting, ul) {
|
||||
var instance = this;
|
||||
$("#" + ul + "").remove();
|
||||
var index = instance._reportbuilder.roleSettings.findIndex(function (r) {
|
||||
return (r.AppTitle === appname && r.SettingName === rolesetting);
|
||||
});
|
||||
if (index !== -1)
|
||||
instance._reportbuilder.roleSettings.splice(index, 1);
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new ReportRoleSettings();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Reports.ReportRoleSettings = ReportRoleSettings;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
поставляемый
Исполняемый файл
+72
@@ -0,0 +1,72 @@
|
||||
var Unibase;(function(n){let t;(function(t){let i;(function(i){let r;(function(r){class u extends t.Core.BaseComponent{constructor(){super();this.isSingleAppSelected=!1;this.reportManager=i.Managers.ReportManager.Instance()}cssFiles(){return[]}jsFiles(){return["platform/analytics/managers/reportmanager.js"]}html(){return`<section id="link-report-section" class="modal-content">
|
||||
<div class="modal-header pa-10" id="reportrolesetting_header">
|
||||
<strong class="modal-title biz-highlight-bg-color">Role Settings</strong>
|
||||
</div>
|
||||
<div data-simplebar class="simple-scroll-bar">
|
||||
<div id="divRoleSetting_ErrorMessage"></div>
|
||||
<div class="modal-body bg-charcoal-light-5 sub-report-block" id="reportrolesetting_modal">
|
||||
<div class="report-rolesettings-block card" data-select2-id="24">
|
||||
<div data-select2-id="23">
|
||||
<header class="report-rolesettings-head">
|
||||
<h6 class="required">
|
||||
Role Settings
|
||||
</h6>
|
||||
<span>
|
||||
<i class="las la-braille dragger"></i>
|
||||
</span>
|
||||
</button>
|
||||
</header>
|
||||
<div id="subrpts_div" data-select2-id="subrpts_div" class="">
|
||||
<div class="report-body">
|
||||
<div class="form-group">
|
||||
<div id="divsubrpt_0" data-select2-id="divsubrpt_">
|
||||
<div class="form-row">
|
||||
<div class="col">
|
||||
<div id="div_installedapps">
|
||||
<input type="hidden" id="hfrolesettings_installedapps">
|
||||
<select id="rolesettings_installedapps" class="form-control text-control required">
|
||||
<option value="0" selected="">Apps</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div id="div_rolesettings">
|
||||
<select id="rolesettings_ddl" class="form-control custom-select mb-10 required">
|
||||
<option value="0" selected="">Role Settings</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<a class="btn btn-icon btn-theme" id="btnConfigAddRoleSetting" onclick="" ;="">
|
||||
<span class="btn-icon-wrap"><span class="line-icon text-white"><i class="las la-plus"></i></span></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-t-sm">
|
||||
<div class="form-row">
|
||||
<div class="col px-4 py-2">
|
||||
<strong> App Name </strong>
|
||||
</div>
|
||||
<div class="col py-2">
|
||||
<strong> RoleSetting </strong>
|
||||
</div>
|
||||
<div class="col-auto py-2 px-4">
|
||||
<a class="invisible"><i class="fa fa-close text-danger"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="RoleSettingExp"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
<div class="modal-footer pa-10" id="linkreport_footer">
|
||||
<button type="button" class="btn btn-sm btn-light mr-auto" id="btnRoleSettingsClose">Cancel</button>
|
||||
<button type="button" class="btn btn-sm btn-primary" id="btnRoleSettingsSave">Save</button>
|
||||
</div>
|
||||
</section>`}load(n,t){var i=this;let u=!1;if(i._reportbuilder=r.ReportBuilder.Instance(),$("#btnRoleSettingsClose").click(function(){$("#"+t).modal("hide");$("#"+t).remove();i.isSingleAppSelected&&(i._reportbuilder.roleSettings=[],i.isSingleAppSelected=!1)}),$("#rolesettings_installedapps").empty(),i._reportbuilder.roleSettings&&i._reportbuilder.roleSettings.length&&(u=!0),i._reportbuilder.roleSettings!=null)for(let n=0;n<i._reportbuilder.roleSettings.length;n++){let t=i._reportbuilder.roleSettings[n];i.appendRoleSetting(t.AppTitle,t.SettingName)}$("#btnConfigAddRoleSetting").click(function(){var u,r;let f=i._reportbuilder.selectedColumns.findIndex(n=>n.AliasName=="installedappid");if(f==-1)return MessageHelper.Instance().showError("Please add installedappid column in order to select app","divRoleSetting_ErrorMessage"),!1;var n=$("#rolesettings_installedapps option:selected").text(),e=$("#rolesettings_installedapps option:selected").val(),t=$("#rolesettings_ddl option:selected").text();if(n!=""&&t!=""){if(u=Number($("#InstalledApp_AutoComplete option:selected").val()),e==u)return i._reportbuilder.roleSettings&&i._reportbuilder.roleSettings.length==1&&(i.isSingleAppSelected=!0),MessageHelper.Instance().showError(`Cannot use same app ${n} in both role settings and installed app field of left navigation in report builder.`,"divRoleSetting_ErrorMessage");r=!1;i._reportbuilder.roleSettings!=null&&(r=i._reportbuilder.roleSettings.find(i=>i.AppName==n&&i.RoleSetting==t)?!0:!1);r||(i.appendRoleSetting(n,t),i._reportbuilder.roleSettings.push({InstalledAppId:Number($("#rolesettings_installedapps option:selected").val()),AppPermissionId:Number($("#rolesettings_ddl option:selected").val()),AppTitle:n,SettingName:t}),$("#rolesettings_installedapps").html('<option value="0" selected="">Apps<\/option>').val("0"),$("#rolesettings_ddl").html('<option value="0" selected="">Role Settings<\/option>').val("0"))}});$("#btnRoleSettingsSave").click(function(){if(i._reportbuilder.roleSettings!=null){if(i._reportbuilder.roleSettings.length!=0||u){if(i._reportbuilder.roleSettings.length<2)return i._reportbuilder.roleSettings.length==1&&(i.isSingleAppSelected=!0),MessageHelper.Instance().showError("Use installed app field in left navigation of report builder, if report have only one role setting","divRoleSetting_ErrorMessage");if(i._reportbuilder.roleSettings.length==2){let n=$("#InstalledApp_AutoComplete option:selected").val();if(n)return MessageHelper.Instance().showError("Remove installedapp from left navigation of report builder to use multiple report role settings","divRoleSetting_ErrorMessage")}}else return MessageHelper.Instance().showError("Please Select Role Setting","divRoleSetting_ErrorMessage");i._reportbuilder.roleSettings.length>1&&(i.isSingleAppSelected=!1)}else return MessageHelper.Instance().showError("Please Select Role Setting","divRoleSetting_ErrorMessage");$("#"+t).modal("hide");$("#"+t).remove()});i.loadInstalledApps()}loadInstalledApps(){var t=_appsettings.server_url()+"/apis/v4/unibase/platform/apps/InstalledAppAutocomplete";AutoCompleteHelper.getHelper().Create("#rolesettings_installedapps","#hfrolesettings_installedapps",t,function(){var t=$("#hfrolesettings_installedapps").val();n.Platform.Apps.Managers.AppManager.Instance().getAppPermissions(t).then(function(n){var i;$("#rolesettings_ddl").html("");i=n.result;let t=i.find(function(n){return n.SettingName.toLowerCase()=="view"});t&&$("#rolesettings_ddl").append('<option value="'+t.AppPermissionId+'" columnvalue="" selected>'+t.SettingName+"<\/option>").val(t.AppPermissionId).trigger("change")})})}appendRoleSetting(n,t){let i="ulAppName_"+n.replace(/ /g,"_")+"-"+t.replace(/ /g,"_");var r='<div class="border border-1 mt-2 ulDatalistFilters_'+n.replace(" ","_")+t.replace(" ","_")+'" id = "'+i+'"><div class="form-row" id="li_AppName_'+n+t+'"> <div class="col py-2 px-4 lblappname"> '+n+' <\/div> <div class="col py-2 px-4 lblrolesetting"> '+t+' <\/div><div class="col-auto py-2 px-4"><a id = "btnRemove" onclick="Unibase.Platform.Analytics.Reports.ReportRoleSettings.Instance().RemoveRoleSettingExp(\''+n+"','"+t+"','"+i+'\')" class="pull-right" ><i class="fa fa-close text-danger"><\/i><\/a><\/div><\/div><\/div>';$("#RoleSettingExp").append(r)}RemoveRoleSettingExp(n,t,i){var u=this,r;$("#"+i+"").remove();r=u._reportbuilder.roleSettings.findIndex(function(i){return i.AppTitle===n&&i.SettingName===t});r!==-1&&u._reportbuilder.roleSettings.splice(r,1)}static Instance(){return this.instance===undefined&&(this.instance=new u),this.instance}}r.ReportRoleSettings=u})(r=i.Reports||(i.Reports={}))})(i=t.Analytics||(t.Analytics={}))})(t=n.Platform||(n.Platform={}))})(Unibase||(Unibase={}));
|
||||
@@ -0,0 +1,412 @@
|
||||
|
||||
.biz-wrapper .bldr-aside-right {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 290px;
|
||||
top: 65px;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
-webkit-transition: all 0.2s ease;
|
||||
-moz-transition: all 0.2s ease;
|
||||
transition: all 0.2s ease;
|
||||
z-index: 3;
|
||||
border-left: 1px solid #DADDE1;
|
||||
}
|
||||
|
||||
.biz-wrapper .bldr-aside-right .nav-tabs > li.nav-item {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.biz-wrapper .bldr-aside-right .nav-tabs > li.nav-item a {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
border-radius: 0;
|
||||
height: 65px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.biz-wrapper .bldr-aside-right .nav-tabs > li.nav-item a.nav-link {
|
||||
background: #F4F5F6;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.biz-wrapper .bldr-aside-right .nav-tabs > li.nav-item a.nav-link.active {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.biz-wrapper .bldr-aside-right #chart-appearance-container > .simple-scroll-bar {
|
||||
height: calc(100vh - 130px);
|
||||
}
|
||||
|
||||
.biz-wrapper .bldr-aside-right #chart-appearance-container > .simple-scroll-bar .tab-content {
|
||||
margin-top: 0;
|
||||
padding: 1.25rem;
|
||||
}
|
||||
|
||||
._bizgaze_popup_container .biz-pg-wrapper {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
|
||||
.select2-container--default .select2-results > #select2-RptGroup_AutoComplete-results {
|
||||
max-height: 115px !important;
|
||||
}
|
||||
.rule-value-container .select2-container--bootstrap:nth-of-type(1) {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: .375rem .75rem;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
background-clip: padding-box;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: .25rem;
|
||||
transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
|
||||
height: calc(2.25rem + 2px);
|
||||
}
|
||||
|
||||
#link-report-section {
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
#link-report-section .modal-content, #is-filterable-section .modal-content {
|
||||
max-height: calc(100vh - 160px) !important;
|
||||
background-color: #F4F5F6;
|
||||
}
|
||||
|
||||
#modalDataListColumns .line-icon i, #allDatalistColumns .line-icon i {
|
||||
font-size: 25px;
|
||||
font-weight: bolder;
|
||||
color: #1f2327;
|
||||
}
|
||||
|
||||
#top-nav-menu .line-icon i {
|
||||
font-size: 24px;
|
||||
color: #1f2327;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
#top-nav-menu .font-awesome-icon i {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#top-nav-menu .line-icon .la-sync {
|
||||
color: #298DFF;
|
||||
}
|
||||
|
||||
#div_Kanban .select2-container--default .select2-selection--single {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
#select2-groupby_select-container .select2-selection__clear {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tabulator-reportbuilder .dropdown-menu {
|
||||
width: max-content;
|
||||
}
|
||||
|
||||
.disabled-border {
|
||||
border: 1px solid rgba(0, 0, 0, .125);
|
||||
color: #1f2327 !important;
|
||||
}
|
||||
|
||||
#bl-report-title .fa {
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.t-90d {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
.t-270d {
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
|
||||
/*Tooltip text clear btn*/
|
||||
|
||||
#tooltip_selected_columns .dsl-block-name {
|
||||
position: relative;
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
#tooltip_selected_columns .dsl-block-name input {
|
||||
width: 100%;
|
||||
background: transparent;
|
||||
border: none;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
color: #007D88
|
||||
}
|
||||
|
||||
#tooltip_selected_columns .dsl-block-name input:focus {
|
||||
border: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#tooltip_selected_columns .dsl-block-name .input-styles {
|
||||
width: 100%;
|
||||
padding: 2px;
|
||||
box-sizing: border-box;
|
||||
outline: none;
|
||||
border: 2px solid #aaa;
|
||||
padding-left: 5px;
|
||||
padding-right: 20px;
|
||||
background-color: #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#tooltip_selected_columns .dsl-block-name button[type="reset"] {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
bottom: 2px;
|
||||
right: 2px;
|
||||
color: #666;
|
||||
border: 0;
|
||||
display: none;
|
||||
padding: 0 4px;
|
||||
border-radius: 50%;
|
||||
transition: background 200ms;
|
||||
background: transparent;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#tooltip_selected_columns .dsl-block-name button[type="reset"]:hover {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
#tooltip_selected_columns .dsl-block-name input:valid ~ button[type="reset"] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.bldr-body .tabulator-row.tabulator-row-even {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.tabulator-reportbuilder .tabulator-col-title .dropdown {
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
padding: 0px 4px 0px 0px;
|
||||
}
|
||||
|
||||
.tabulator-reportbuilder.tabulator .tabulator-header .tabulator-col {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.tabulator-reportbuilder.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.tabulator-reportbuilder.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-menu-button {
|
||||
font-size: 16px;
|
||||
padding: 0 2px 0 0;
|
||||
color: #000 !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
#reportBuilderModal .modal-footer {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#QueryBuilder .pull-right {
|
||||
float: none;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap .table-wrap {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap.chart_view .bldr-body .chart-wrap {
|
||||
padding-bottom: 25px;
|
||||
min-height: 65%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap.chart_view .bldr-body .table-wrap {
|
||||
max-height: 35%;
|
||||
}
|
||||
|
||||
.custom-right-chart-nav .nav-tabs > li.nav-item {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.custom-right-chart-nav .nav-tabs > li.nav-item a {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
border-radius: 0;
|
||||
height: 65px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.custom-right-chart-nav .nav-tabs > li.nav-item a.nav-link {
|
||||
background: #F4F5F6;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
custom-right-chart-nav .nav-tabs > li.nav-item a.nav-link.active {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.custom-right-chart-nav > .simple-scroll-bar {
|
||||
height: calc(100vh - 65px);
|
||||
}
|
||||
|
||||
.custom-right-chart-nav .drawer-body {
|
||||
height: calc(100% - 125px);
|
||||
/*height: 700px !important;*/
|
||||
height: calc(100vh - 200px) !important;
|
||||
}
|
||||
|
||||
.custom-right-chart-nav #tab_dynamic_pivote .simple-scroll-bar {
|
||||
height: calc(100vh - 130px);
|
||||
}
|
||||
|
||||
.custom-right-chart-nav #tab_dynamic_pivote .dynamic-list-group-wrapper {
|
||||
padding: 1.25rem;
|
||||
}
|
||||
.collapse-simple > .card > .card-header > a.custom-collapse::before {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.bldr-aside-right .btn-filter.in-active {
|
||||
border: none !important;
|
||||
cursor: not-allowed !important;
|
||||
background-color: rgba(255, 204, 204, 0.3) !important;
|
||||
color: white !important;
|
||||
}
|
||||
@media (max-width: 1200px) {
|
||||
.biz-body-margin-right {
|
||||
margin-right: 290px !important;
|
||||
}
|
||||
|
||||
.biz-aside-margin-right {
|
||||
margin-right: -290px !important;
|
||||
}
|
||||
}
|
||||
/* Chart Responsive*/
|
||||
|
||||
@media (max-height: 700px) {
|
||||
.biz-bldr-wrap.chart_view .bldr-body .chart-wrap .card-header {
|
||||
height: 40px;
|
||||
padding-top: .5rem !important;
|
||||
padding-bottom: .5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* End Chart Responsive*/
|
||||
@media (max-width: 530px) {
|
||||
/* Header Mobile Responsive*/
|
||||
.biz-bldr-wrap header.bldr-head {
|
||||
padding: 0 .5rem;
|
||||
}
|
||||
|
||||
header.bldr-head input.form-control {
|
||||
padding: .375rem .5rem;
|
||||
}
|
||||
|
||||
header.bldr-head input.w-180p {
|
||||
width: 120px !important;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap header.bldr-head input.report-name {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
/*End Header Mobile Responsive*/
|
||||
}
|
||||
|
||||
@media (max-width: 380px) {
|
||||
/* Header Mobile Responsive*/
|
||||
.biz-bldr-wrap header.bldr-head input.report-name {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
header.bldr-head input.w-180p {
|
||||
width: 100px !important;
|
||||
}
|
||||
|
||||
#header_datalist_name.ml-10 {
|
||||
margin-left: 5px !important;
|
||||
}
|
||||
|
||||
#header_datalist_name.badge {
|
||||
padding: 5px;
|
||||
}
|
||||
/*End Header Mobile Responsive*/
|
||||
}
|
||||
|
||||
.query-builder .rules-group-container .btn-primary {
|
||||
color: #fff !important;
|
||||
background-color: #00B0FF !important;
|
||||
border-color: #00B0FF !important;
|
||||
}
|
||||
|
||||
.query-builder .rules-group-container .btn-primary.active {
|
||||
background-color: #009EE5 !important;
|
||||
border-color: #009EE5 !important;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap .dropdown-menu {
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap .dropdown-menu.dropdown-radio .dropdown-item.selected .ri-checkbox-blank-circle-line {
|
||||
color: #007D88;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap .dropdown-menu.dropdown-radio .dropdown-item.selected .ri-checkbox-blank-circle-line:before {
|
||||
content: "\eff4";
|
||||
}
|
||||
|
||||
.query-builder .rule-value-container .select2-container--default.select2-container{
|
||||
min-width:200px;
|
||||
max-width:100%;
|
||||
}
|
||||
|
||||
.bldr-aside-right .chart-type-collapse .btn-group-toggle {
|
||||
max-height: 250px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap.chart_view .bldr-body .chart-wrap.fullscreen{
|
||||
height: 100% !important;
|
||||
padding-bottom: 10px !important;
|
||||
}
|
||||
|
||||
.column-dp-menu .distinct-label{
|
||||
flex-grow: 1;
|
||||
margin-bottom: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.biz-reportbuilder-wrap .select2-container--default {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.reportbuilder-main-wrap {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.biz-bldr-wrap.chart_view .reportbuilder-main-wrap {
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -0,0 +1,806 @@
|
||||
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 SubReport extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.subReportId = 0;
|
||||
this.isDetail = false;
|
||||
this.linkreport_aliasname = "";
|
||||
this.inline = true;
|
||||
this.appName = "";
|
||||
this.childReportName = "";
|
||||
this.filters = [];
|
||||
this.filterIndex = 0;
|
||||
this.subReportsExists = false;
|
||||
this.childReportId = 0;
|
||||
this.parentReportId = 0;
|
||||
this.isReportDuplicate = false;
|
||||
this._reportManager = Analytics.Managers.ReportManager.Instance();
|
||||
this._reportBuilder = Reports.ReportBuilder.Instance();
|
||||
this._reportBuilderTemplate = Reports.ReportBuilder_Template.Instance();
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
jsFiles() {
|
||||
var jsFiles = ['platform/analytics/managers/reportmanager.js', 'platform/analytics/enums/subreporttype.js'];
|
||||
return jsFiles;
|
||||
}
|
||||
html(id, containerid) {
|
||||
let html = this._reportBuilderTemplate.loadLinkToOtherReportForm();
|
||||
return html;
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
instance.filters = [];
|
||||
instance.filterIndex = 0;
|
||||
instance.isDetail = false;
|
||||
instance.inline = true;
|
||||
instance.subReportEdit();
|
||||
$("#btnConfigAddFilter").click(function (e) {
|
||||
instance.filterIndex++;
|
||||
let isValueElement = $(e.target).closest(".form-row").find("[id^=isvalue_radio]");
|
||||
let isValue = isValueElement.prop("checked");
|
||||
let parametername = $("#cmbmainrptCols option:selected").text().trim();
|
||||
let parametervalue = $("#cmbsbrptCols option:selected").text().trim();
|
||||
let operator = $("#slctdoperater option:selected").text().trim();
|
||||
let isValueText = $("#cmbmainrptCols_textbox").val();
|
||||
if (!isValue && parametername.toLowerCase() == "main report columns")
|
||||
return MessageHelper.Instance().showError("Please select main report column", "sub_report_error_message");
|
||||
else if (isValue && !isValueText)
|
||||
return MessageHelper.Instance().showError("Please enter text in main report value column", "sub_report_error_message");
|
||||
if (operator.toLowerCase() == '-select-')
|
||||
return MessageHelper.Instance().showError("Please select operator type", "sub_report_error_message");
|
||||
if (isValue && isValueText == parametervalue.toLowerCase())
|
||||
return MessageHelper.Instance().showError("Main report column name and value column and is value text cannot be same", "sub_report_error_message");
|
||||
if (parametervalue.toLowerCase() == "sub report column")
|
||||
return MessageHelper.Instance().showError("Please select sub report column", "sub_report_error_message");
|
||||
if (isValue)
|
||||
parametername = isValueText;
|
||||
instance.filters.push({
|
||||
ParameterName: parametername,
|
||||
ParameterValue: parametervalue,
|
||||
Operator: operator,
|
||||
Isvalue: isValue,
|
||||
});
|
||||
instance.addSubReportFilter(parametername, parametervalue, operator, isValue);
|
||||
if (isValue) {
|
||||
$("#cmbmainrptCols_textbox").val("");
|
||||
isValueElement.trigger("click");
|
||||
}
|
||||
$('#cmbmainrptCols').val(0).trigger('change');
|
||||
$('#cmbsbrptCols').val(0).trigger('change');
|
||||
$('#slctdoperater').val(0).trigger('change');
|
||||
});
|
||||
$("#btnLinkReportSave").click(() => {
|
||||
let subReportArray = instance.getSubReportContainerArray();
|
||||
if (instance.isDetail) {
|
||||
instance.saveSubReport_DetailFields();
|
||||
}
|
||||
else {
|
||||
if (instance.saveSubReport_Report(subReportArray))
|
||||
return;
|
||||
}
|
||||
if (instance.linkreport_aliasname == undefined) {
|
||||
var table = instance._reportBuilder.table;
|
||||
var autoNumFormatter = function (cell) {
|
||||
var row = cell.getRow();
|
||||
var rowIndex = row.getPosition(false);
|
||||
return (rowIndex + 1);
|
||||
};
|
||||
if (table.element && table.element.children[1] && table.element.children[1].lastChild && table.element.children[1].lastChild.firstChild && table.element.children[1].lastChild.firstChild.firstElementChild && table.element.children[1].lastChild.firstChild.firstElementChild.firstChild && table.element.children[1].lastChild.firstChild.firstElementChild.firstChild.className != "fa fa-eye") {
|
||||
var hideIcon = function (cell, formatterParams, onRendered) {
|
||||
return "<i class='fa fa-eye'></i>";
|
||||
};
|
||||
table.addColumn({ formatter: autoNumFormatter, title: "", headerSort: false, minWidth: 20, }, true);
|
||||
table.addColumn({ formatter: hideIcon, title: "", headerSort: false }, true);
|
||||
}
|
||||
}
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
$("#btnLinkReportClose").click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
$("#subrpt_clear").click(function () {
|
||||
if (instance._reportBuilder.subreportdata.length != 0) {
|
||||
var subfil_Index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname);
|
||||
if (subfil_Index > -1) {
|
||||
instance._reportBuilder.subreportdata.splice(subfil_Index, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
$(".select_reports").change(function () {
|
||||
let reportId = Number($(".select_reports").val());
|
||||
instance.subReportColumns(reportId);
|
||||
});
|
||||
$('.subreport-radio-btn').change(function () {
|
||||
if ($(this).val() == 'report') {
|
||||
$('#linkreport_modal,#detailScreenBody').toggleClass('d-none');
|
||||
if ($('.opentype-radio-btn:checked').val() == 'inline') {
|
||||
$('#subrpt_plus').removeClass('d-none');
|
||||
}
|
||||
}
|
||||
else {
|
||||
$('#linkreport_modal,#detailScreenBody').toggleClass('d-none');
|
||||
$('#subrpt_plus').addClass('d-none');
|
||||
}
|
||||
});
|
||||
$('.opentype-radio-btn').change(function () {
|
||||
if ($(this).val() == 'inline') {
|
||||
instance.inline = true;
|
||||
$('#subrpt_plus').removeClass('d-none');
|
||||
}
|
||||
else {
|
||||
instance.inline = false;
|
||||
$('#subrpt_plus').addClass('d-none');
|
||||
}
|
||||
if (instance._reportBuilder.subreportdata.length != 0) {
|
||||
let index;
|
||||
if (instance.linkreport_aliasname) {
|
||||
index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname);
|
||||
}
|
||||
else {
|
||||
index = instance._reportBuilder.subreportdata.findIndex(s => s.RowClick == true);
|
||||
}
|
||||
if (index > -1) {
|
||||
instance._reportBuilder.subreportdata[index].Inline = instance.inline;
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#isvalue_radio_0").unbind().click((e) => {
|
||||
let isChecked = $(e.target).prop("checked");
|
||||
$(e.target).closest(".form-row").find("#div_mainreportColumn_textbox").parent().toggleClass("hidden");
|
||||
$(e.target).closest(".form-row").find("#div_mainreportColumn").parent().toggleClass("hidden");
|
||||
});
|
||||
}
|
||||
loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
|
||||
return [];
|
||||
}
|
||||
linkreport(aliasname) {
|
||||
var instance = this;
|
||||
instance.linkreport_aliasname = aliasname;
|
||||
instance.navigationHelper.popup(0, '', this, null, Platform.Helpers.Size.Medium);
|
||||
}
|
||||
;
|
||||
loadReports() {
|
||||
var instance = this;
|
||||
instance.childReportName = "";
|
||||
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reports';
|
||||
AutoCompleteHelper.getHelper().Create(".select_reports", "hfReportAutoComplete", url, function (res) { instance.childReportName = res.text.trim(); });
|
||||
}
|
||||
mainReportColumns() {
|
||||
var instance = this;
|
||||
var mainrpt_Cols = [];
|
||||
if (instance._reportBuilder.selectedColumns.length != 0) {
|
||||
mainrpt_Cols.push({ id: 0, text: "Main Report Columns" });
|
||||
for (let i = 0; i < instance._reportBuilder.selectedColumns.length; i++) {
|
||||
let sCol = instance._reportBuilder.selectedColumns[i];
|
||||
mainrpt_Cols.push({ id: sCol.AliasName, text: sCol.AliasName });
|
||||
}
|
||||
$('#cmbmainrptCols').select2({
|
||||
placeholder: 'Select',
|
||||
data: mainrpt_Cols,
|
||||
});
|
||||
}
|
||||
}
|
||||
subReportColumns(reportid) {
|
||||
var instance = this;
|
||||
instance._reportManager.getColumns(reportid).then(function (subresponse) {
|
||||
var subrpt_data = [];
|
||||
for (let i = 0; i < subresponse.result.length; i++) {
|
||||
subrpt_data.push({ id: subresponse.result[i].ReportColumnId, text: subresponse.result[i].AliasName });
|
||||
}
|
||||
$('#cmbsbrptCols').select2({
|
||||
placeholder: 'Select',
|
||||
data: subrpt_data,
|
||||
});
|
||||
});
|
||||
}
|
||||
loadInstalledApps() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var instance = this;
|
||||
instance.appName = "";
|
||||
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete';
|
||||
AutoCompleteHelper.getHelper().Create("#detailInstalledApps", "#hfAutoComplete_InstalledApp", url, function (res) { instance.appName = res.text.trim(); });
|
||||
});
|
||||
}
|
||||
primaryColumns() {
|
||||
var instance = this;
|
||||
var mainrpt_Cols = [];
|
||||
if (instance._reportBuilder.selectedColumns.length != 0) {
|
||||
mainrpt_Cols.push({ id: 0, text: "Main Report Columns" });
|
||||
for (let i = 0; i < instance._reportBuilder.selectedColumns.length; i++) {
|
||||
let sCol = instance._reportBuilder.selectedColumns[i];
|
||||
mainrpt_Cols.push({ id: sCol.AliasName, text: sCol.AliasName });
|
||||
}
|
||||
$('#detailPrimaryKeyColumns').select2({
|
||||
placeholder: 'Select',
|
||||
data: mainrpt_Cols,
|
||||
});
|
||||
}
|
||||
}
|
||||
addSubReportFilter(paramname, paramvalue, operator, isValue) {
|
||||
var Confightml = "";
|
||||
let id = paramname.replace(' ', '_').trim() + paramvalue.replace(' ', '_').trim();
|
||||
Confightml = `<li id="li_filter_ul2list_0${id}" class="fltr-row filteritems-addedrow clear" ><div class="form-row mb-10">
|
||||
<div class="col-auto mt-2 mr-2">
|
||||
<input class="" type="checkbox" readonly title="Is value" ${isValue && 'checked'} onclick="return false">
|
||||
</div>
|
||||
<div class="col"><input type="text" class="form-control disabled-border" value="` + paramname + `" disabled></div><div class="col-auto"><input type="text" class="form-control disabled-border text-center" value="` + operator + `" disabled></div><div class="col"><input type="text" class="form-control disabled-border" value="` + paramvalue + `" disabled></div><div class="col-auto"><a id="btnDeleteCouponItem" onclick = "Unibase.Platform.Analytics.Reports.SubReport.Instance().removefilters( ` + Number($('.select_reports').val()) + `,'` + paramname + `','` + paramvalue + `','li_filter_ul2list_0${id}');" class="btn btn-icon btn-flush-danger flush-soft-hover btn-rounded filter-remove-btn"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-trash-alt font-26 text-danger"></i></span></span></a></div></div></li>`;
|
||||
$(".ul2list_0").append(Confightml);
|
||||
if ($(".ul2list_0").children().length == 1) {
|
||||
$(".ul2list_0").children().first().find(".filter-remove-btn").addClass("disabled");
|
||||
}
|
||||
}
|
||||
subReportEdit() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var instance = this;
|
||||
yield instance.loadReports();
|
||||
instance.mainReportColumns();
|
||||
instance.primaryColumns();
|
||||
yield instance.loadInstalledApps();
|
||||
instance.subReportsExists = false;
|
||||
let subReportArray = instance.getSubReportContainerArray();
|
||||
if (subReportArray != undefined) {
|
||||
var subfil_Index;
|
||||
if (subReportArray.length)
|
||||
instance.subReportsExists = true;
|
||||
if (instance.linkreport_aliasname)
|
||||
subfil_Index = subReportArray.findIndex(s => s.AliasName == instance.linkreport_aliasname);
|
||||
else {
|
||||
subfil_Index = subReportArray.findIndex(s => s.RowClick == true);
|
||||
if (subfil_Index == -1) {
|
||||
subfil_Index = subReportArray.findIndex(s => !s.AliasName && s.SubReportTypeId == Unibase.Platform.Analytics.Reports.Enums.SubReportType.Detail);
|
||||
}
|
||||
}
|
||||
if (subfil_Index > -1) {
|
||||
var subrpt_data = subReportArray[subfil_Index];
|
||||
if (subrpt_data.SubReportTypeId == Unibase.Platform.Analytics.Reports.Enums.SubReportType.Report) {
|
||||
$("#reportRadioBtn").prop("checked", true);
|
||||
$(".select_reports").empty().append('<option value = "' + subrpt_data.ChildReportId + '" > ' + subrpt_data.ChildReportName + ' </option>');
|
||||
$(".select_reports").val(subrpt_data.ChildReportId);
|
||||
instance.subReportId = subrpt_data.SubReportId;
|
||||
instance.childReportId = subrpt_data.ChildReportId;
|
||||
instance.parentReportId = subrpt_data.ReportId;
|
||||
instance.subReportColumns(subrpt_data.ChildReportId);
|
||||
var filters = JSON.parse(subrpt_data.Filters);
|
||||
for (var f = 0; f < filters.length; f++) {
|
||||
let fill = filters[f];
|
||||
let id = fill.ParameterName.replaceAll(' ', '_').trim() + fill.ParameterValue.replaceAll(' ', '_').trim();
|
||||
Confightml = `<li id="li_filter_ul2list_0${id}" class="fltr-row filteritems-addedrow clear" ><div class="form-row mb-10">
|
||||
<div class="col-auto mt-2 mr-2">
|
||||
<input class="" type="checkbox" readonly title="Is value" ${fill.Isvalue && 'checked'} onclick="return false">
|
||||
</div>
|
||||
<div class="col"><input type="text" class="form-control disabled-border" value="` + fill.ParameterName + `" disabled></div><div class="col-auto"><input type="text" class="form-control disabled-border text-center" value="` + fill.Operator + `" disabled></div><div class="col"><input type="text" class="form-control disabled-border" value="` + fill.ParameterValue + `" disabled></div><div class="col-auto"><a id="btnDeleteCouponItem" onclick = "Unibase.Platform.Analytics.Reports.SubReport.Instance().removefilters( ` + Number($('.select_reports').val()) + `,'` + fill.ParameterName + `','` + fill.ParameterValue + `','li_filter_ul2list_0${id}');" class="btn btn-icon btn-flush-danger flush-soft-hover btn-rounded filter-remove-btn"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-trash-alt font-26 text-danger"></i></span></span></a></div></div></li>`;
|
||||
$(".ul2list_0").append(Confightml);
|
||||
!f && $(".ul2list_0").find(".filter-remove-btn").addClass("disabled");
|
||||
instance.filters.push(fill);
|
||||
}
|
||||
var Confightml = "";
|
||||
if (!subrpt_data.Inline)
|
||||
$("#outlineRadioBtn").prop("checked", true);
|
||||
else
|
||||
$("#inlineRadioBtn").prop("checked", true);
|
||||
instance.inline = subrpt_data.Inline;
|
||||
}
|
||||
else {
|
||||
instance.isDetail = true;
|
||||
instance.subrpt_AliasName = subrpt_data.AliasName;
|
||||
instance.installedAppId = subrpt_data.InstalledAppId;
|
||||
instance.primaryKeyColumn = subrpt_data.PrimaryKeyColumn;
|
||||
$("#detailRadioBtn").prop("checked", true);
|
||||
$('#linkreport_modal,#detailScreenBody').toggleClass('d-none');
|
||||
$('#subrpt_plus').addClass('d-none');
|
||||
$("#detailInstalledApps").empty().append('<option value = "' + subrpt_data.InstalledAppId + '" > ' + subrpt_data.AppName + ' </option>');
|
||||
$("#detailInstalledApps").val(subrpt_data.InstalledAppId);
|
||||
$('#detailPrimaryKeyColumns').val(subrpt_data.PrimaryKeyColumn).trigger('change');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
subReportType_Deatil() {
|
||||
var instance = this;
|
||||
instance.isDetail = true;
|
||||
var subfil_Index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname);
|
||||
if (subfil_Index > -1) {
|
||||
var subfill = instance._reportBuilder.subreportdata[subfil_Index];
|
||||
var fil = JSON.parse(subfill.Filters);
|
||||
for (var i = 0; i < fil.length; i++) {
|
||||
let id = fil[i].ParameterName.replace(' ', '_') + fil[i].ParameterValue.replace(' ', '_');
|
||||
$("#li_filter_ul2list_0" + id).remove();
|
||||
instance._reportBuilder.subreportdata.splice(subfil_Index, 1);
|
||||
}
|
||||
}
|
||||
$('.select_reports').val(0).trigger('change');
|
||||
$('#cmbmainrptCols').val(0).trigger('change');
|
||||
$('#cmbsbrptCols').val(0).trigger('change');
|
||||
instance.primaryColumns();
|
||||
instance.loadInstalledApps();
|
||||
}
|
||||
subReportType_Report() {
|
||||
var instance = this;
|
||||
instance.isDetail = false;
|
||||
var subfil_Index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname);
|
||||
if (subfil_Index > -1) {
|
||||
$('#detailInstalledApps').val('0').trigger('change');
|
||||
$('#detailPrimaryKeyColumns').val('0').trigger('change');
|
||||
$("#txt_detailonclick").val("");
|
||||
instance._reportBuilder.subreportdata.splice(subfil_Index, 1);
|
||||
}
|
||||
}
|
||||
saveSubReport_Report(subReportArray) {
|
||||
var instance = this;
|
||||
var rowclick = true;
|
||||
if (instance.linkreport_aliasname)
|
||||
rowclick = false;
|
||||
let reportType = this._reportBuilder.res ? this._reportBuilder.res.ReportTypeId : this._reportBuilder.reportType;
|
||||
let isChart = reportType == Unibase.Platform.Analytics.Reports.Enums.ReportType.Table ? false : true;
|
||||
var subreportdata = new NestedTableModel();
|
||||
subreportdata.ChildReportId = Number($('.select_reports').val());
|
||||
subreportdata.ChildReportName = instance.childReportName;
|
||||
subreportdata.Filters = JSON.stringify(instance.filters);
|
||||
subreportdata.SubReportTypeId = ($("#reportRadioBtn").is(":checked")) ? Unibase.Platform.Analytics.Reports.Enums.SubReportType.Report : 0;
|
||||
subreportdata.Inline = instance.inline;
|
||||
subreportdata.RowClick = rowclick;
|
||||
subreportdata.AliasName = instance.linkreport_aliasname;
|
||||
if (!subreportdata.ChildReportId && !instance.subReportsExists) {
|
||||
MessageHelper.Instance().showError("Please select sub report ", "sub_report_error_message");
|
||||
return true;
|
||||
}
|
||||
else if (subreportdata.Filters == '[]' && !instance.subReportsExists && !isChart) {
|
||||
MessageHelper.Instance().showError("Please select sub report columns ", "sub_report_error_message");
|
||||
return true;
|
||||
}
|
||||
if (isChart && subreportdata.Filters == '[]') {
|
||||
this._reportBuilder.linkReportId = subreportdata.ChildReportId;
|
||||
}
|
||||
if (subReportArray.length != 0 && typeof (subReportArray) == 'object') {
|
||||
var Index;
|
||||
if (instance.linkreport_aliasname)
|
||||
Index = subReportArray.findIndex(s => s.AliasName == instance.linkreport_aliasname);
|
||||
else
|
||||
Index = subReportArray.findIndex(s => s.RowClick == true);
|
||||
if (Index > -1 && subreportdata.Filters != "[]" && subreportdata.ChildReportId) {
|
||||
subReportArray[Index] = subreportdata;
|
||||
}
|
||||
else if (subreportdata.Filters != "[]" && subreportdata.ChildReportId) {
|
||||
subReportArray.push(subreportdata);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (subreportdata.ChildReportId)
|
||||
subReportArray.push(subreportdata);
|
||||
}
|
||||
instance._reportBuilder.subreporttabledata = subReportArray;
|
||||
return false;
|
||||
}
|
||||
saveSubReport_DetailFields() {
|
||||
var instance = this;
|
||||
var subreportdata = new NestedTableModel();
|
||||
subreportdata.InstalledAppId = Number($("#detailInstalledApps").val());
|
||||
subreportdata.PrimaryKeyColumn = $("#detailPrimaryKeyColumns option:selected").text().trim();
|
||||
subreportdata.Inline = instance.inline;
|
||||
subreportdata.SubReportTypeId = ($("#detailRadioBtn").is(":checked")) ? Unibase.Platform.Analytics.Reports.Enums.SubReportType.Detail : 0;
|
||||
subreportdata.AliasName = instance.linkreport_aliasname;
|
||||
subreportdata.AppName = instance.appName;
|
||||
if (subreportdata.PrimaryKeyColumn.toLowerCase() == "select column")
|
||||
return MessageHelper.Instance().showError("Please select primary key column", "sub_report_error_message");
|
||||
else if (!subreportdata.InstalledAppId)
|
||||
return MessageHelper.Instance().showError("Please select installed app", "sub_report_error_message");
|
||||
let subReportArray = instance.getSubReportContainerArray();
|
||||
if (subReportArray.length != 0) {
|
||||
var Index;
|
||||
if (instance.linkreport_aliasname)
|
||||
Index = subReportArray.findIndex(s => s.AliasName == instance.linkreport_aliasname);
|
||||
else
|
||||
Index = subReportArray.findIndex(s => s.RowClick == true);
|
||||
if (Index > -1 && subreportdata.AppName != 'Select') {
|
||||
subReportArray[Index] = subreportdata;
|
||||
}
|
||||
else if (subreportdata.AppName != 'Select') {
|
||||
subReportArray.push(subreportdata);
|
||||
}
|
||||
}
|
||||
else {
|
||||
subReportArray.push(subreportdata);
|
||||
}
|
||||
}
|
||||
removefilters(reportid, mainreportcolumn, subreportcolumn, id) {
|
||||
var instance = this;
|
||||
if (instance.linkreport_aliasname) {
|
||||
if (instance._reportBuilder.subreportdata.length != 0) {
|
||||
var index = instance._reportBuilder.subreportdata.findIndex(s => s.AliasName == instance.linkreport_aliasname);
|
||||
if (index > -1) {
|
||||
instance._reportBuilder.subreportdata.splice(index, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (instance.filters.length == 1) {
|
||||
var index = instance._reportBuilder.subreportdata.findIndex(function (o) {
|
||||
return (o.ChildReportId === reportid);
|
||||
});
|
||||
if (index !== -1)
|
||||
instance._reportBuilder.subreportdata.splice(index, 1);
|
||||
}
|
||||
}
|
||||
var fillIndex = instance.filters.findIndex(function (f) { return (f.ParameterName == mainreportcolumn) && (f.ParameterValue === subreportcolumn); });
|
||||
if (fillIndex > -1)
|
||||
instance.filters.splice(fillIndex, 1);
|
||||
if (!instance.filters.length)
|
||||
$(event.target).closest(".report-body").find(".select_reports.custom-select").empty();
|
||||
$("#" + id + "").empty();
|
||||
}
|
||||
;
|
||||
load_old(id, containerid, callback) {
|
||||
var instance = this;
|
||||
$('#cmbmainrptCols_1').empty();
|
||||
var data = [];
|
||||
var subreportid = 0;
|
||||
instance._reportManager.getReports().then(function (response) {
|
||||
var Data = response;
|
||||
data.push({ id: 0, text: "Select" });
|
||||
data.push({ id: 0, text: "Select" });
|
||||
for (let i = 0; i < Data.length; i++) {
|
||||
data.push({ id: Data[i].ReportId, text: Data[i].ReportName });
|
||||
}
|
||||
$('.select_reports').select2({
|
||||
placeholder: 'Select',
|
||||
data: data,
|
||||
}).on('select2:select', function (e) {
|
||||
var reportid = Number($(".select_reports").val());
|
||||
let sub_blk = this.closest(".sub-report-block");
|
||||
if (sub_blk)
|
||||
$(sub_blk).data("subreportid", reportid.toString());
|
||||
$("#cmbsbrptCols_1").find('option').not(':first').remove();
|
||||
instance._reportManager.getColumns(reportid).then(function (response) {
|
||||
for (let i = 0; i < response.result.length; i++) {
|
||||
var columnname = response.result[i].DisplayText;
|
||||
var columnvalue = response.result[i].ReportColumnId;
|
||||
$('<option>').val(columnvalue).text(columnname).appendTo('#cmbsbrptCols_1');
|
||||
}
|
||||
});
|
||||
});
|
||||
if (instance._reportBuilder.subreporttabledata != undefined && instance._reportBuilder.subreporttabledata != null && instance._reportBuilder.subreporttabledata != "") {
|
||||
if (instance._reportBuilder.subreporttabledata.length > 0) {
|
||||
var subreports_array = [];
|
||||
var subarray = [];
|
||||
var element = [];
|
||||
var currentsubreport = [];
|
||||
instance._reportBuilder.subreportdata = [];
|
||||
instance._reportBuilder.subreport_count = 1;
|
||||
for (let m = 0; m < instance._reportBuilder.subreporttabledata.length; m++) {
|
||||
instance._reportManager.getColumns(instance._reportBuilder.subreporttabledata[m].ChildReportId).then(function (response) {
|
||||
currentsubreport.push(instance._reportBuilder.subreporttabledata[m]);
|
||||
element.push(response.result[0].ReportId);
|
||||
subarray.push(response.result);
|
||||
if (element.length == instance._reportBuilder.subreporttabledata.length) {
|
||||
let k = 1;
|
||||
for (let i = 0; i < currentsubreport.length; i++) {
|
||||
if (i != 0) {
|
||||
instance.subReportId = currentsubreport[i].SubReportId;
|
||||
$("#subrpt_plus").trigger("click");
|
||||
k = i + 1;
|
||||
if (data.length == 0) {
|
||||
}
|
||||
$("#cmdsub_" + k + "").select2({
|
||||
placeholder: 'Select',
|
||||
data: data,
|
||||
});
|
||||
let lastSubEle = $("#linkreport_modal").find(".sub-report-block").last();
|
||||
lastSubEle.data("subreportid", currentsubreport[i].ChildReportId);
|
||||
lastSubEle.data("subreportcolumnid", currentsubreport[i].SubReportColumnId);
|
||||
}
|
||||
$("#cmdsub_" + k + "").val(currentsubreport[i].ChildReportId).trigger('change');
|
||||
$('<option>').val(0).text('Select Column').appendTo("#cmbmainrptCols_" + k + "");
|
||||
var whole_tableData = instance._reportBuilder.selectedColumns;
|
||||
for (let j = 0; j < whole_tableData.length; j++) {
|
||||
var columnname = whole_tableData[j].DisplayText;
|
||||
var columnvalue = whole_tableData[j].ColumnId;
|
||||
$('<option>').val(columnvalue).text(columnname).appendTo("#cmbmainrptCols_" + k + "");
|
||||
}
|
||||
let subcolumns = subarray[i].filter(function (o) { return o.ReportId === currentsubreport[i].ChildReportId; });
|
||||
$("#cmbsbrptCols_" + k + "").find('option').not(':first').remove();
|
||||
for (let l = 0; l < subcolumns.length; l++) {
|
||||
var columnname = subcolumns[l].DisplayText;
|
||||
var columnvalue = subcolumns[l].ReportColumnId;
|
||||
$('<option>').val(columnvalue).text(columnname).appendTo("#cmbsbrptCols_" + k + "");
|
||||
}
|
||||
$("#btnAdd_" + instance._reportBuilder.subreport_count + "").unbind().click(function () {
|
||||
var id = $(this).attr('id').match(/\d+/g).map(Number);
|
||||
instance.addfilter(id[0], 0);
|
||||
$("#btnDeleteCouponItem_" + id[0] + "").click(function () {
|
||||
instance.removefilters(Number($("#reporthid_" + id[0] + "").val()), Number($("#mainreportcolumnhid_" + id[0] + "").val()), Number($("#subreportcolumnhid_" + id[0] + "").val()), "ul2list_" + id[0] + "");
|
||||
});
|
||||
});
|
||||
$("#cmbmainrptCols_" + k + " option:contains('" + (currentsubreport[i].ParameterValue).replace('@', '').trim() + "')").prop('selected', true);
|
||||
$("#cmbsbrptCols_" + k + " option:contains('" + (currentsubreport[i].ParameterName).trim() + "')").prop('selected', true);
|
||||
if (k == 1) {
|
||||
subreportid = currentsubreport[i].SubReportId;
|
||||
$("#btnConfigAddFilter").click();
|
||||
}
|
||||
else {
|
||||
subreportid = currentsubreport[i].SubReportId;
|
||||
$("#btnAdd_" + k + "").click();
|
||||
}
|
||||
instance.subReportId = 0;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$('<option>').val(0).text('Select Column').appendTo('#cmbmainrptCols_1');
|
||||
var whole_tableData = instance._reportBuilder.selectedColumns;
|
||||
for (let i = 0; i < whole_tableData.length; i++) {
|
||||
var columnname = whole_tableData[i].ColumnName;
|
||||
var columnvalue = whole_tableData[i].ColumnId;
|
||||
$('<option>').val(columnvalue).text(columnname).appendTo('#cmbmainrptCols_1,#detailPrimaryKeyColumns');
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#btnLinkReportSave").click(function () {
|
||||
if (instance.isDetail) {
|
||||
instance.subReportType_Deatil();
|
||||
}
|
||||
var table = instance._reportBuilder.table;
|
||||
var autoNumFormatter = function (cell) {
|
||||
var row = cell.getRow();
|
||||
var rowIndex = row.getPosition(false);
|
||||
return (rowIndex + 1);
|
||||
};
|
||||
if (table.element.children[1].lastChild.firstChild.firstElementChild.firstChild.className != "fa fa-eye") {
|
||||
var hideIcon = function (cell, formatterParams, onRendered) {
|
||||
return "<i class='fa fa-eye'></i>";
|
||||
};
|
||||
table.addColumn({ formatter: autoNumFormatter, title: "", headerSort: false, minWidth: 20, }, true);
|
||||
table.addColumn({ formatter: hideIcon, title: "", headerSort: false }, true);
|
||||
}
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
var data = instance._reportBuilder.subreportdata;
|
||||
});
|
||||
var Confightml = "";
|
||||
$("#btnConfigAddFilter").click(function (e) {
|
||||
let text = $("#cmbmainrptCols_1 option:selected").text();
|
||||
let text1 = $("#cmbsbrptCols_1 option:selected").text();
|
||||
if (text == "Select Column" || text1 == "Sub report column")
|
||||
return;
|
||||
let exists = instance._reportBuilder.subreportdata.find(x => x.ParameterValue == text && x.ParameterName == text1);
|
||||
if (exists)
|
||||
return;
|
||||
let opertaor = $("#slctdoperater_0 option:selected").text();
|
||||
let id = text.replaceAll(' ', '_') + text1.replaceAll(' ', '_');
|
||||
Confightml = `<li id="li_filter_ul2list_0${id}" class="fltr-row filteritems-addedrow clear" ><div class="form-row mb-10"><div class="col"><input type="text" class="form-control disabled-border" value="` + text + `" disabled></div><div class="col-auto"><input type="text" class="form-control disabled-border text-center" value="` + opertaor + `" disabled></div><div class="col"><input type="text" class="form-control disabled-border" value="` + text1 + `" disabled></div><div class="col-auto"><a id="btnDeleteCouponItem" onclick = "Unibase.Platform.Analytics.Reports.SubReport.Instance().removefilters( ` + Number($('.select_reports').val()) + `,` + Number($("#cmbmainrptCols_1 option:selected").val()) + `,` + Number($("#cmbsbrptCols_1 option:selected").val()) + `,'li_filter_ul2list_0${id}');" class="btn btn-icon btn-flush-danger flush-soft-hover btn-rounded filter-remove-btn"><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-trash-alt font-26 text-danger"></i></span></span></a></div></div></li>`;
|
||||
$(".ul2list_0").append(Confightml);
|
||||
if ($(".ul2list_0").children().length == 1)
|
||||
$(".ul2list_0").children().first().find(".filter-remove-btn").addClass("hidden");
|
||||
var subreportdata = new NestedTableModel();
|
||||
if (instance._reportBuilder.reportid != 0) {
|
||||
subreportdata.SubReportId = subreportid;
|
||||
}
|
||||
subreportdata.ChildReportId = Number($('.select_reports').val());
|
||||
subreportdata.Operator = $("#slctdoperater_0 option:selected").text();
|
||||
subreportdata.ReportColumnId = Number($("#cmbmainrptCols_1 option:selected").val());
|
||||
subreportdata.SubReportColumnId = Number($("#cmbsbrptCols_1 option:selected").val());
|
||||
subreportdata.ReportColumnName = $("#cmbmainrptCols_1 option:selected").text();
|
||||
subreportdata.SubReportColumnName = $("#cmbsbrptCols_1 option:selected").text();
|
||||
subreportdata.ParameterValue = $("#cmbmainrptCols_1 option:selected").text();
|
||||
subreportdata.ParameterName = $("#cmbsbrptCols_1 option:selected").text();
|
||||
subreportdata.SubReportTypeId = ($("#reportRadioBtn").is(":checked")) ? Unibase.Platform.Analytics.Reports.Enums.SubReportType.Report : 0;
|
||||
subreportdata.ReportId = instance._reportBuilder.reportid;
|
||||
instance.childReportId = subreportdata.ChildReportId;
|
||||
instance.parentReportId = subreportdata.ReportId;
|
||||
instance._reportBuilder.subreportdata.push(subreportdata);
|
||||
instance._reportBuilder.subreporttabledata = instance._reportBuilder.subreportdata;
|
||||
$("#cmbmainrptCols_1").val("0");
|
||||
$("#cmbsbrptCols_1").val("0");
|
||||
});
|
||||
$("#btnLinkReportClose").click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
$("#subrpt_plus").click(function () {
|
||||
const subreportCnt = $("[id^=btnAdd]").length + 2;
|
||||
var template = instance._reportBuilderTemplate.del_loadSubReports_Section();
|
||||
var templateScript = Handlebars.compile(template);
|
||||
var context = { "subreport_count": subreportCnt };
|
||||
var html = templateScript(context);
|
||||
$("#linkreport_modal").append(html);
|
||||
$("#cmdsub_" + subreportCnt + "").select2({
|
||||
placeholder: 'Select',
|
||||
data: data,
|
||||
});
|
||||
var main_reportcolumns = instance._reportBuilder.selectedColumns;
|
||||
$("#cmbmainrptCols_" + subreportCnt + "").empty();
|
||||
$('<option>').val(0).text('Select Column').appendTo("#cmbmainrptCols_" + subreportCnt + "");
|
||||
for (let i = 0; i < main_reportcolumns.length; i++) {
|
||||
var columnname = main_reportcolumns[i].ColumnName;
|
||||
var columnvalue = main_reportcolumns[i].ColumnId;
|
||||
$('<option>').val(columnvalue).text(columnname).appendTo("#cmbmainrptCols_" + subreportCnt + "");
|
||||
}
|
||||
$("#btnAdd_" + subreportCnt + "").click(function () {
|
||||
var colid = $(this).closest(".sub-report-block").find("#div_subColumn").children().first().val();
|
||||
var id = $(this).attr('id').match(/\d+/g).map(Number);
|
||||
instance.addfilter(id[0], 0);
|
||||
let sub_blk = this.closest(".sub-report-block");
|
||||
if (sub_blk && colid)
|
||||
$(sub_blk).data("subreportcolumnid", colid);
|
||||
});
|
||||
$("#cmdsub_" + subreportCnt + "").on('select2:select', function (e) {
|
||||
var id = $(this).attr('id').match(/\d+/g).map(Number);
|
||||
var reportid = Number($("#cmdsub_" + id[0] + "").val());
|
||||
let sub_blk = this.closest(".sub-report-block");
|
||||
if (sub_blk)
|
||||
$(sub_blk).data("subreportid", reportid.toString());
|
||||
$("#cmbsbrptCols_" + id[0] + "").find('option').not(':first').remove();
|
||||
instance._reportManager.getColumns(reportid).then(function (response) {
|
||||
for (let i = 0; i < response.result.length; i++) {
|
||||
var columnname = response.result[i].DisplayText;
|
||||
var columnvalue = response.result[i].ReportColumnId;
|
||||
$('<option>').val(columnvalue).text(columnname).appendTo("#cmbsbrptCols_" + id[0] + "");
|
||||
}
|
||||
});
|
||||
});
|
||||
$("#cmbsbrpt_" + subreportCnt).empty();
|
||||
$("#cmbsbrpt_" + subreportCnt).append('<option value="0">--Select SubReport--</option>');
|
||||
});
|
||||
$("#linkreport_modal").click(this.subReportMdown.bind(this));
|
||||
const installedAppsUrl = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/InstalledAppAutocomplete';
|
||||
AutoCompleteHelper.getHelper().Create("#detailInstalledApps", "#hfDetailInstalledApps", installedAppsUrl, null);
|
||||
$('.subreport-radio-btn').change(function () {
|
||||
if ($(this).val() == 'report') {
|
||||
$('#linkreport_modal,#detailScreenBody').toggleClass('d-none');
|
||||
if ($('.opentype-radio-btn:checked').val() == 'inline') {
|
||||
$('#subrpt_plus').removeClass('d-none');
|
||||
}
|
||||
}
|
||||
else {
|
||||
$('#linkreport_modal,#detailScreenBody').toggleClass('d-none');
|
||||
$('#subrpt_plus').addClass('d-none');
|
||||
}
|
||||
});
|
||||
$('.opentype-radio-btn').change(function () {
|
||||
if ($(this).val() == 'inline') {
|
||||
$('#subrpt_plus').removeClass('d-none');
|
||||
}
|
||||
else {
|
||||
$('#subrpt_plus').addClass('d-none');
|
||||
}
|
||||
});
|
||||
}
|
||||
removefilters_old(reportid, mainreportcolumn, subreportcolumn, id) {
|
||||
var instance = this;
|
||||
$("#" + id + "").empty();
|
||||
var index = instance._reportBuilder.subreportdata.findIndex(function (o) {
|
||||
return (o.ChildReportId === reportid) && (o.ReportColumnId === mainreportcolumn) && (o.SubReportColumnId === subreportcolumn);
|
||||
});
|
||||
if (index !== -1)
|
||||
instance._reportBuilder.subreportdata.splice(index, 1);
|
||||
}
|
||||
;
|
||||
addfilter(id, SubReportId) {
|
||||
var instance = this;
|
||||
let text = $("#cmbmainrptCols_" + id + " option:selected").text();
|
||||
let text1 = $("#cmbsbrptCols_" + id + " option:selected").text();
|
||||
let opertaor = $("#slctdoperater_" + id + " option:selected").text();
|
||||
var filterhtml = `<li id="li_filter_ul2list` + id + `" class="fltr-row filteritems-addedrow clear"><div class="form-row mb-10"><div class="col"> <input type="text" class="form-control lblViewerFilter_MainReportColumnName disabled-border" value="` + text + ` " disabled> </div><div class="col-auto my-auto text-center"> <input type="text" class="form-control lblViewerFilter_Operator disabled-border text-center" value="` + opertaor + ` " disabled> </div ><div class="col"> <input type="text" class="form-control lblViewerFilter_FilterValue disabled-border" value="` + text1 + ` " disabled></div> <div class="col-auto" > <a id="btnDeleteCouponItem_` + id + `" class="btn btn-icon btn-flush-danger flush-soft-hover btn-rounded" ><span class="btn-icon-wrap"><span class="line-icon"><i class="las la-trash-alt font-26 text-danger"></i></span></span></a></div><input type="hidden" id="operatorhid_` + id + `" name="zyx" value="` + opertaor + `" /><input type="hidden" id="reporthid_` + id + `" name="zyx" value="` + Number($("#cmdsub_" + id + "").val()) + `" /><input type="hidden" id="mainreportcolumnhid_` + id + `" name="zyx" value="` + Number($("#cmbmainrptCols_" + id + " option:selected").val()) + `" /><input type="hidden" id="subreportcolumnhid_` + id + `" name="zyx" value="` + Number($("#cmbsbrptCols_" + id + " option:selected").val()) + `" /></div></li>`;
|
||||
$(".ul2list_" + id + "").append(filterhtml);
|
||||
var subreportdata = new NestedTableModel();
|
||||
subreportdata.SubReportId = instance.subReportId || SubReportId;
|
||||
subreportdata.ChildReportId = Number($("#cmdsub_" + id + "").val());
|
||||
subreportdata.Operator = $("#slctdoperater_" + id + " option:selected").text();
|
||||
subreportdata.ParameterValue = $("#cmbmainrptCols_" + id + " option:selected").text();
|
||||
subreportdata.ParameterName = $("#cmbsbrptCols_" + id + " option:selected").text();
|
||||
subreportdata.ReportColumnId = Number($("#cmbmainrptCols_" + id + " option:selected").val());
|
||||
subreportdata.SubReportColumnId = Number($("#cmbsbrptCols_" + id + " option:selected").val());
|
||||
subreportdata.ReportColumnName = ($("#cmbmainrptCols_" + id + " option:selected").text());
|
||||
subreportdata.SubReportColumnName = $("#cmbsbrptCols_" + id + " option:selected").text();
|
||||
instance._reportBuilder.subreportdata.push(subreportdata);
|
||||
$("#cmbmainrptCols_" + id).val("0");
|
||||
$("#cmbsbrptCols_" + id).val("0");
|
||||
}
|
||||
;
|
||||
linkreport_old() {
|
||||
var instance = this;
|
||||
instance.navigationHelper.popup(0, '', this, null, Platform.Helpers.Size.Medium);
|
||||
}
|
||||
;
|
||||
subReportMdown(e) {
|
||||
let subrp = e.target.closest(".sub-report-block");
|
||||
let childReportId = $(subrp).data("subreportid");
|
||||
if (childReportId)
|
||||
childReportId = Number(childReportId);
|
||||
if (e.target.classList.contains("remove_subrpt") || e.target.closest(".remove_subrpt")) {
|
||||
let sRIdx;
|
||||
if (this._reportBuilder.subreportdata.filter(x => x.ChildReportId == childReportId).length == 1) {
|
||||
sRIdx = this._reportBuilder.subreportdata.findIndex(x => x.ChildReportId == childReportId);
|
||||
if (sRIdx != -1)
|
||||
this._reportBuilder.subreportdata.splice(sRIdx, 1);
|
||||
}
|
||||
else if (this._reportBuilder.subreportdata.filter(x => x.ChildReportId == childReportId).length > 1) {
|
||||
let childReportColumnId = Number($(subrp).data("subreportcolumnid"));
|
||||
if (childReportColumnId) {
|
||||
sRIdx = this._reportBuilder.subreportdata.findIndex(x => x.ChildReportId == childReportId && x.SubReportColumnId == childReportColumnId);
|
||||
if (sRIdx != -1)
|
||||
this._reportBuilder.subreportdata.splice(sRIdx, 1);
|
||||
}
|
||||
}
|
||||
subrp.remove();
|
||||
}
|
||||
else if (e.target.classList.contains("remove_subrpt_columns") || e.target.closest(".remove_subrpt_columns")) {
|
||||
let sRIdx = this._reportBuilder.subreportdata.findIndex(x => x.ChildReportId == childReportId);
|
||||
if (sRIdx != -1)
|
||||
this._reportBuilder.subreportdata.splice(sRIdx, 1);
|
||||
$(e.target).closest(".filteritems-addedrow").remove();
|
||||
}
|
||||
}
|
||||
removeSubreport() {
|
||||
let idx = -1;
|
||||
let subReportArray = this.getSubReportContainerArray();
|
||||
if (!this.isDetail) {
|
||||
if (this.subReportId)
|
||||
idx = subReportArray.findIndex(x => x.SubReportId == this.subReportId);
|
||||
else
|
||||
idx = subReportArray.findIndex(x => x.ReportId == this.parentReportId && x.ChildReportId == this.childReportId);
|
||||
if (idx > -1) {
|
||||
this.linkreport_aliasname = '';
|
||||
this.filters = [];
|
||||
this.childReportName = '';
|
||||
subReportArray.splice(idx, 1);
|
||||
}
|
||||
$("#subreports-filters-list").empty();
|
||||
$("#cmdsub_1").val("0").empty();
|
||||
}
|
||||
else {
|
||||
if (this.installedAppId)
|
||||
idx = subReportArray.findIndex(x => x.AliasName == this.subrpt_AliasName && x.InstalledAppId == this.installedAppId);
|
||||
else
|
||||
idx = subReportArray.findIndex(x => x.ReportId == this.parentReportId && x.ChildReportId == this.childReportId);
|
||||
if (idx > -1) {
|
||||
this.installedAppId = 0;
|
||||
subReportArray.splice(idx, 1);
|
||||
}
|
||||
$("#detailPrimaryKeyColumns").val("0").trigger("change");
|
||||
$("#detailInstalledApps").val("0").trigger("change");
|
||||
}
|
||||
}
|
||||
getSubReportContainerArray() {
|
||||
if (this.isReportDuplicate) {
|
||||
return Analytics.Components.DuplicateReport.Instance().subReports;
|
||||
}
|
||||
else {
|
||||
return this._reportBuilder.subreportdata;
|
||||
}
|
||||
}
|
||||
static Instance() {
|
||||
if (this.instance === undefined) {
|
||||
this.instance = new SubReport();
|
||||
}
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
Reports.SubReport = SubReport;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Исполняемый файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
@@ -0,0 +1,197 @@
|
||||
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 Tenure extends Platform.Core.BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.TenureTableData = [];
|
||||
this.TenureReportColumns = [];
|
||||
this.TenureInterval = "";
|
||||
this.reportManager = Analytics.Managers.ReportManager.Instance();
|
||||
}
|
||||
jsFiles() {
|
||||
return ["platform/analytics/components/mapviewer/mapviewer.settings.js"];
|
||||
}
|
||||
cssFiles() {
|
||||
return [];
|
||||
}
|
||||
html(id, containerid) {
|
||||
var html = `<div class="b-b bg-white modal-header"><strong class="text-dark" id="TenureTableHeader` + containerid + `"> </strong></div><div class="` + containerid + `-TenureTable-canvas" id="table-canvan"></div><div class="footer bg-white"><button id="btn-tenure-report-close" class="btn-tenureReport-close btn btn-secondary btn-sm mr-auto">Close</button></div>`;
|
||||
return html;
|
||||
}
|
||||
load(id, containerid, callback) {
|
||||
var instance = this;
|
||||
$("#btn-tenure-report-close").click(function () {
|
||||
$('#' + containerid).modal('hide');
|
||||
$('#' + containerid).remove();
|
||||
});
|
||||
$("#TenureTableHeader" + containerid).html(Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureInterval);
|
||||
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.TenureTable = new Tabulator("." + containerid + "-TenureTable-canvas", {
|
||||
columns: [
|
||||
{ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 40, width: 40 },
|
||||
{ title: "LastColumn", field: "LastColumn", visible: false, headerSort: false }
|
||||
],
|
||||
layout: "fitColumns",
|
||||
movableColumns: true,
|
||||
placeholder: "No data available",
|
||||
});
|
||||
if ($(".tabulator-placeholder span").text() == "No data available") {
|
||||
$(".tabulator-placeholder").css('width', '');
|
||||
}
|
||||
var height = $(window).height() - 100 + "px";
|
||||
instance.TenureTable.setHeight(height);
|
||||
instance.TenureTable.setColumns(instance.TenureReportColumns);
|
||||
instance.TenureTable.setData(instance.TenureTableData);
|
||||
return instance.TenureTable;
|
||||
}
|
||||
tenureDetailsTable(TimeInterval) {
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureReportColumns = [];
|
||||
var instance = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance();
|
||||
if (instance.TenureReport.length != 0) {
|
||||
var autoNumFormatter = function (cell) {
|
||||
var row = cell.getRow();
|
||||
var rowIndex = row.getPosition(false);
|
||||
return (rowIndex + 1);
|
||||
};
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureReportColumns.push({ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 50, width: 50 });
|
||||
let repObj = new ReportObject();
|
||||
let pivotCol = instance.pivot.ColumnName;
|
||||
repObj.DataListId = Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().DataListId;
|
||||
repObj.Interval = TimeInterval;
|
||||
repObj.StaticFilter = instance.queryBuilderString;
|
||||
if (instance.selectedColumns.length > 0) {
|
||||
for (var i = 0; i < instance.selectedColumns.length; i++) {
|
||||
let col = new ReportColumn();
|
||||
col.ColumnValue = Number(instance.selectedColumns[i]["ColumnId"]);
|
||||
col.ReportColumnName = instance.selectedColumns[i]["ColumnName"];
|
||||
col.AliasName = instance.selectedColumns[i]["AliasName"];
|
||||
col.DisplayText = instance.selectedColumns[i]["DisplayText"];
|
||||
col.DataType = instance.selectedColumns[i]["DataType"];
|
||||
col.AggrFuncId = Reports.Enums.AggregationType.none;
|
||||
col.SortType = instance.selectedColumns[i]["SortOrder"];
|
||||
col.GroupBy = instance.selectedColumns[i]["GroupBy"];
|
||||
col.IsPivotAggrColumn = false;
|
||||
col.IsPivotColumn = false;
|
||||
col.IsPivotRow = false;
|
||||
col.IsPivotRowSelected = false;
|
||||
col.IsPivotParentColumn = false;
|
||||
col.IsPivotChildColumn = false;
|
||||
col.PivotValue = 0;
|
||||
col.PivotValueSelected = isNaN(instance.pivot.PivotValue_Selected) ? 0 : instance.pivot.PivotValue_Selected;
|
||||
col.PivotDateType = isNaN(instance.pivot.DateType) ? 0 : instance.pivot.DateType;
|
||||
col.TimeInterval = "";
|
||||
col.ColumnFormat = instance.selectedColumns[i]["ColumnFormat"];
|
||||
col.YearComparisonType = instance.selectedColumns[i]["YearComparisonType"] == undefined ? 0 : instance.selectedColumns[i]["YearComparisonType"];
|
||||
if (pivotCol == col.ReportColumnName) {
|
||||
col.IsPivotColumn = true;
|
||||
}
|
||||
repObj.ReportColumns.push(col);
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureReportColumns.push({ title: col.DisplayText, field: col.ReportColumnName });
|
||||
}
|
||||
}
|
||||
instance.reportManager.getTableData(repObj).then(function (response) {
|
||||
let res = JSON.parse(response.result);
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureTableData = JSON.parse(res.Data);
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureInterval = TimeInterval;
|
||||
instance.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Reports.Tenure.Instance(), null, Platform.Helpers.Size.Medium);
|
||||
});
|
||||
}
|
||||
}
|
||||
tenureViewerDetails(TimeInterval) {
|
||||
var instance = this;
|
||||
instance.TenureReportColumns = [];
|
||||
var autoNumFormatter = function (cell) {
|
||||
var row = cell.getRow();
|
||||
var rowIndex = row.getPosition(false);
|
||||
return (rowIndex + 1);
|
||||
};
|
||||
instance.TenureReportColumns.push({ title: "", formatter: autoNumFormatter, frozen: true, minWidth: 50, width: 50 });
|
||||
let repObj = new ReportObject();
|
||||
instance.reportManager.getReportById(instance.ReportId).then(function (response) {
|
||||
var res = response.result;
|
||||
repObj.DataListId = res.DataListId;
|
||||
repObj.Interval = TimeInterval;
|
||||
repObj.StaticFilter = res.StaticFilter;
|
||||
}).then(function () {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield instance.reportManager.getColumns(instance.ReportId).then(function (response) {
|
||||
var data = response.result;
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
let col = new ReportColumn();
|
||||
col.ColumnValue = data[i].ColumnValue;
|
||||
col.ReportColumnName = data[i].ReportColumnName;
|
||||
col.DisplayText = data[i].DisplayText;
|
||||
col.AliasName = data[i].DisplayText;
|
||||
col.DataType = Number(data[i].DataType);
|
||||
col.AggrFuncId = Reports.Enums.AggregationType.none;
|
||||
col.SortType = data[i].SortType;
|
||||
col.GroupBy = data[i].GroupBy;
|
||||
col.IsPivotAggrColumn = false;
|
||||
col.IsPivotColumn = data[i].IsPivotColumn;
|
||||
col.IsPivotRow = false;
|
||||
col.IsPivotRowSelected = false;
|
||||
col.IsPivotParentColumn = false;
|
||||
col.IsPivotChildColumn = false;
|
||||
col.PivotValue = 0;
|
||||
col.PivotValueSelected = data[i].PivotValueSelected;
|
||||
col.PivotDateType = Number(data[i].PivotDateType);
|
||||
col.TimeInterval = "";
|
||||
col.ColumnFormat = data[i].ColumnFormat;
|
||||
col.YearComparisonType = data[i].YearComparisonType;
|
||||
repObj.ReportColumns.push(col);
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureReportColumns.push({ title: col.DisplayText, field: col.ReportColumnName });
|
||||
}
|
||||
});
|
||||
});
|
||||
}).then(function () {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield instance.reportManager.getTableData(repObj).then(function (response) {
|
||||
let res = JSON.parse(response.result);
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureTableData = JSON.parse(res.Data);
|
||||
Unibase.Platform.Analytics.Reports.Tenure.Instance().TenureInterval = TimeInterval;
|
||||
instance.navigationHelper.popup(0, '', Unibase.Platform.Analytics.Reports.Tenure.Instance(), null, Platform.Helpers.Size.Medium);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
CheckedTenure() {
|
||||
$(".table-metrics").addClass("hidden");
|
||||
$("#XAxis").addClass("hidden");
|
||||
$("#YAxis").addClass("hidden");
|
||||
$("#GroupBy").addClass("hidden");
|
||||
$("#SortColumns").removeClass("hidden");
|
||||
$("#ChartIcon_PaintBrush").attr("disabled", "true");
|
||||
$("#ChartIcon_Forms").attr("disabled", "true");
|
||||
}
|
||||
static Instance() {
|
||||
if (this._instance === undefined)
|
||||
this._instance = new Unibase.Platform.Analytics.Reports.Tenure();
|
||||
return this._instance;
|
||||
}
|
||||
}
|
||||
Reports.Tenure = Tenure;
|
||||
})(Reports = Analytics.Reports || (Analytics.Reports = {}));
|
||||
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
|
||||
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
|
||||
})(Unibase || (Unibase = {}));
|
||||
Исполняемый файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Ссылка в новой задаче
Block a user