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 = '
'; 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(``); 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(""); 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(``); 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(""); 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 = {}));