123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- 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 DataSources;
- (function (DataSources) {
- let Components;
- (function (Components) {
- class QueryBuilder extends Platform.Core.BaseComponent {
- constructor() {
- super();
- this.QueryBuilder_Columns = [];
- this.QueryBuilder_Filters = [];
- this.queryBuilderString = "";
- this._reportmanager = Platform.Analytics.Managers.ReportManager.Instance();
- }
- cssFiles() {
- return [];
- }
- jsFiles() {
- return ['platform/analytics/managers/reportmanager.js'];
- }
- html(id, containerid) {
- var html = '<div id="QueryBuilder" class="bg-white hidden"></div>';
- return html;
- }
- load(id, containerid, callback) {
- var instance = this;
- instance.loadQueryBuilderDiv(null);
- }
- loadReportColumns(reportid) {
- return __awaiter(this, void 0, void 0, function* () {
- var instance = this;
- if (reportid) {
- return yield instance._reportmanager.getColumns(reportid).then(function (response) {
- instance.QueryBuilder_Columns = response.result;
- });
- }
- });
- }
- loadDoctypeColumns(doctypeid) {
- return __awaiter(this, void 0, void 0, function* () {
- var instance = this;
- if (doctypeid) {
- return yield Unibase.Platform.DataSources.Managers.DocTypeManager.Instance().getDocProperties(doctypeid).then(function (response) {
- instance.QueryBuilder_Columns = response.result;
- });
- }
- });
- }
- loadQueryBuilderDiv(querystring) {
- var instance = this;
- $("#QueryBuilder").html(`<div id="builder"></div><div id="result" class="mt-20"></div>`);
- var ReportId = instance.ReportId;
- $("#DatalistColumns_Search").val("");
- instance.loadReportColumns(ReportId).then(function () {
- let qelem;
- qelem = $('#builder');
- for (var i = 0; i < instance.QueryBuilder_Columns.length; i++) {
- let element = instance.QueryBuilder_Columns[i];
- let dataType = element.DataType;
- let Values = [];
- let Input = 'text';
- let Plugin = 'text';
- if (dataType == 1 || dataType == 2) {
- dataType = "string";
- }
- else if (dataType == 3 || dataType == 4) {
- dataType = "integer";
- }
- else if (dataType == 5) {
- dataType = "double";
- }
- else if (dataType == 6) {
- dataType = "date";
- }
- else if (dataType == 7) {
- dataType = "datetime";
- }
- else if (dataType == 9) {
- dataType = "string";
- Values = ["true", "false"];
- Input = 'radio';
- Plugin = 'text';
- }
- else {
- dataType = "string";
- }
- instance.QueryBuilder_Filters.push({
- id: element.ReportColumnId,
- label: element.ReportColumnName,
- field: element.ReportColumnName,
- type: dataType,
- size: 30,
- unique: true,
- input: Input,
- plugin: Plugin,
- values: Values,
- });
- }
- qelem.queryBuilder({
- filters: instance.QueryBuilder_Filters,
- });
- if (querystring != "" && querystring != null) {
- instance.queryBuilderString = querystring;
- }
- if (instance.queryBuilderString != "" && instance.queryBuilderString != null) {
- instance.queryBuilderString = instance.queryBuilderString.replace(/ILIKE/g, "LIKE");
- qelem.queryBuilder('setRulesFromSQL', instance.queryBuilderString);
- let params = qelem.queryBuilder('getSQL', 'named(@)').params;
- var i = 0;
- $.each(params, function (key, value) {
- let id = $("[id^='builder_rule_']")[i].id;
- value = value.toString().replace(/%/g, "");
- $("#" + id + " [name='" + id + "_value_0']").append("<option selected='selected'>" + value + "</option>");
- i++;
- });
- }
- $('.parse-json').on('click', function () {
- instance.queryBuilderString = qelem.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
- });
- $('#btn-reset').on('click', function () {
- instance.queryBuilderString = "";
- qelem.queryBuilder('reset');
- });
- $("#builder_group_0").addClass("col-sm-12 mt-20");
- });
- }
- loadQueryBuilderDivByDoctypeId(querystring) {
- return __awaiter(this, void 0, void 0, function* () {
- var instance = this;
- $("#QueryBuilder").html(`<div id="builder"></div><div id="result" class="mt-20"></div>`);
- var DoctypeId = instance.DoctypeId;
- $("#DatalistColumns_Search").val("");
- return yield instance.loadDoctypeColumns(DoctypeId).then(function () {
- let qelem;
- qelem = $('#builder');
- for (var i = 0; i < instance.QueryBuilder_Columns.length; i++) {
- let element = instance.QueryBuilder_Columns[i];
- let dataType = element.DataTypeId;
- let Values = [];
- let Input = 'text';
- let Plugin = 'text';
- if (dataType == 1 || dataType == 2) {
- dataType = "string";
- }
- else if (dataType == 3 || dataType == 4) {
- dataType = "integer";
- }
- else if (dataType == 5) {
- dataType = "double";
- }
- else if (dataType == 6) {
- dataType = "date";
- }
- else if (dataType == 7) {
- dataType = "datetime";
- }
- else if (dataType == 9) {
- dataType = "string";
- Values = ["true", "false"];
- Input = 'radio';
- Plugin = 'text';
- }
- else {
- dataType = "string";
- }
- instance.QueryBuilder_Filters.push({
- id: element.DocPropertyId,
- label: element.DocPropertyName,
- field: element.DocPropertyName,
- type: dataType,
- size: 30,
- unique: true,
- input: Input,
- plugin: Plugin,
- values: Values,
- });
- }
- qelem.queryBuilder({
- filters: instance.QueryBuilder_Filters
- });
- if (querystring != "" && querystring != null) {
- instance.queryBuilderString = querystring;
- }
- if (instance.queryBuilderString != "" && instance.queryBuilderString != null) {
- instance.queryBuilderString = instance.queryBuilderString.replace(/ILIKE/g, "LIKE");
- qelem.queryBuilder('setRulesFromSQL', instance.queryBuilderString);
- let params = qelem.queryBuilder('getSQL', 'named(@)').params;
- var i = 0;
- $.each(params, function (key, value) {
- let id = $("[id^='builder_rule_']")[i].id;
- value = value.toString().replace(/%/g, "");
- $("#" + id + " [name='" + id + "_value_0']").append("<option selected='selected'>" + value + "</option>");
- i++;
- });
- }
- $('.parse-json').on('click', function () {
- instance.queryBuilderString = qelem.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
- });
- $('#btn-reset').on('click', function () {
- instance.queryBuilderString = "";
- qelem.queryBuilder('reset');
- });
- $("#builder_group_0").addClass("col-sm-12 mt-20");
- });
- });
- }
- static Instance() {
- if (this._instance === undefined)
- this._instance = new Unibase.Platform.DataSources.Components.QueryBuilder();
- return this._instance;
- }
- }
- Components.QueryBuilder = QueryBuilder;
- })(Components = DataSources.Components || (DataSources.Components = {}));
- })(DataSources = Platform.DataSources || (Platform.DataSources = {}));
- })(Platform = Unibase.Platform || (Unibase.Platform = {}));
- })(Unibase || (Unibase = {}));
|