{"version":3,"sources":["node_modules/export-to-csv/build/export-to-csv.js","node_modules/export-to-csv/build/index.js","src/app/components/query/query.component.ts","src/app/components/query/query.component.html"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar CsvConfigConsts = function () {\n function CsvConfigConsts() {}\n CsvConfigConsts.EOL = \"\\r\\n\";\n CsvConfigConsts.BOM = \"\\ufeff\";\n CsvConfigConsts.DEFAULT_FIELD_SEPARATOR = ',';\n CsvConfigConsts.DEFAULT_DECIMAL_SEPARATOR = '.';\n CsvConfigConsts.DEFAULT_QUOTE = '\"';\n CsvConfigConsts.DEFAULT_SHOW_TITLE = false;\n CsvConfigConsts.DEFAULT_TITLE = 'My Generated Report';\n CsvConfigConsts.DEFAULT_FILENAME = 'generated';\n CsvConfigConsts.DEFAULT_SHOW_LABELS = false;\n CsvConfigConsts.DEFAULT_USE_TEXT_FILE = false;\n CsvConfigConsts.DEFAULT_USE_BOM = true;\n CsvConfigConsts.DEFAULT_HEADER = [];\n CsvConfigConsts.DEFAULT_KEYS_AS_HEADERS = false;\n return CsvConfigConsts;\n}();\nexports.CsvConfigConsts = CsvConfigConsts;\nexports.ConfigDefaults = {\n filename: CsvConfigConsts.DEFAULT_FILENAME,\n fieldSeparator: CsvConfigConsts.DEFAULT_FIELD_SEPARATOR,\n quoteStrings: CsvConfigConsts.DEFAULT_QUOTE,\n decimalSeparator: CsvConfigConsts.DEFAULT_DECIMAL_SEPARATOR,\n showLabels: CsvConfigConsts.DEFAULT_SHOW_LABELS,\n showTitle: CsvConfigConsts.DEFAULT_SHOW_TITLE,\n title: CsvConfigConsts.DEFAULT_TITLE,\n useTextFile: CsvConfigConsts.DEFAULT_USE_TEXT_FILE,\n useBom: CsvConfigConsts.DEFAULT_USE_BOM,\n headers: CsvConfigConsts.DEFAULT_HEADER,\n useKeysAsHeaders: CsvConfigConsts.DEFAULT_KEYS_AS_HEADERS\n};\nvar ExportToCsv = function () {\n function ExportToCsv(options) {\n this._csv = \"\";\n var config = options || {};\n this._options = objectAssign({}, exports.ConfigDefaults, config);\n if (this._options.useKeysAsHeaders && this._options.headers && this._options.headers.length > 0) {\n console.warn('Option to use object keys as headers was set, but headers were still passed!');\n }\n }\n Object.defineProperty(ExportToCsv.prototype, \"options\", {\n get: function () {\n return this._options;\n },\n set: function (options) {\n this._options = objectAssign({}, exports.ConfigDefaults, options);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Generate and Download Csv\n */\n ExportToCsv.prototype.generateCsv = function (jsonData, shouldReturnCsv) {\n if (shouldReturnCsv === void 0) {\n shouldReturnCsv = false;\n }\n // Make sure to reset csv data on each run\n this._csv = '';\n this._parseData(jsonData);\n if (this._options.useBom) {\n this._csv += CsvConfigConsts.BOM;\n }\n if (this._options.showTitle) {\n this._csv += this._options.title + '\\r\\n\\n';\n }\n this._getHeaders();\n this._getBody();\n if (this._csv == '') {\n console.log(\"Invalid data\");\n return;\n }\n // When the consumer asks for the data, exit the function\n // by returning the CSV data built at this point\n if (shouldReturnCsv) {\n return this._csv;\n }\n // Create CSV blob to download if requesting in the browser and the\n // consumer doesn't set the shouldReturnCsv param\n var FileType = this._options.useTextFile ? 'plain' : 'csv';\n var fileExtension = this._options.useTextFile ? '.txt' : '.csv';\n var blob = new Blob([this._csv], {\n \"type\": \"text/\" + FileType + \";charset=utf8;\"\n });\n if (navigator.msSaveBlob) {\n var filename = this._options.filename.replace(/ /g, \"_\") + fileExtension;\n navigator.msSaveBlob(blob, filename);\n } else {\n var attachmentType = this._options.useTextFile ? 'text' : 'csv';\n var uri = 'data:attachment/' + attachmentType + ';charset=utf-8,' + encodeURI(this._csv);\n var link = document.createElement(\"a\");\n link.href = URL.createObjectURL(blob);\n link.setAttribute('visibility', 'hidden');\n link.download = this._options.filename.replace(/ /g, \"_\") + fileExtension;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n };\n /**\n * Create Headers\n */\n ExportToCsv.prototype._getHeaders = function () {\n if (!this._options.showLabels && !this._options.useKeysAsHeaders) {\n return;\n }\n var useKeysAsHeaders = this._options.useKeysAsHeaders;\n var headers = useKeysAsHeaders ? Object.keys(this._data[0]) : this._options.headers;\n if (headers.length > 0) {\n var row = \"\";\n for (var keyPos = 0; keyPos < headers.length; keyPos++) {\n row += headers[keyPos] + this._options.fieldSeparator;\n }\n row = row.slice(0, -1);\n this._csv += row + CsvConfigConsts.EOL;\n }\n };\n /**\n * Create Body\n */\n ExportToCsv.prototype._getBody = function () {\n var keys = Object.keys(this._data[0]);\n for (var i = 0; i < this._data.length; i++) {\n var row = \"\";\n for (var keyPos = 0; keyPos < keys.length; keyPos++) {\n var key = keys[keyPos];\n row += this._formatData(this._data[i][key]) + this._options.fieldSeparator;\n }\n row = row.slice(0, -1);\n this._csv += row + CsvConfigConsts.EOL;\n }\n };\n /**\n * Format Data\n * @param {any} data\n */\n ExportToCsv.prototype._formatData = function (data) {\n if (this._options.decimalSeparator === 'locale' && this._isFloat(data)) {\n return data.toLocaleString();\n }\n if (this._options.decimalSeparator !== '.' && this._isFloat(data)) {\n return data.toString().replace('.', this._options.decimalSeparator);\n }\n if (typeof data === 'string') {\n data = data.replace(/\"/g, '\"\"');\n if (this._options.quoteStrings || data.indexOf(',') > -1 || data.indexOf('\\n') > -1 || data.indexOf('\\r') > -1) {\n data = this._options.quoteStrings + data + this._options.quoteStrings;\n }\n return data;\n }\n if (typeof data === 'boolean') {\n return data ? 'TRUE' : 'FALSE';\n }\n return data;\n };\n /**\n * Check if is Float\n * @param {any} input\n */\n ExportToCsv.prototype._isFloat = function (input) {\n return +input === input && (!isFinite(input) || Boolean(input % 1));\n };\n /**\n * Parse the collection given to it\n *\n * @private\n * @param {*} jsonData\n * @returns {any[]}\n * @memberof ExportToCsv\n */\n ExportToCsv.prototype._parseData = function (jsonData) {\n this._data = typeof jsonData != 'object' ? JSON.parse(jsonData) : jsonData;\n return this._data;\n };\n return ExportToCsv;\n}();\nexports.ExportToCsv = ExportToCsv;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n/**\n * Convet to Object\n * @param {any} val\n */\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n}\n/**\n * Assign data to new Object\n * @param {any} target\n * @param {any[]} ...source\n */\nfunction objectAssign(target) {\n var source = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n source[_i - 1] = arguments[_i];\n }\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (Object.getOwnPropertySymbols) {\n symbols = Object.getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n}\n","\"use strict\";\n\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n__export(require(\"./export-to-csv\"));\n","import { Component, ComponentFactoryResolver, OnInit, ViewChild,OnDestroy } from \"@angular/core\";\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup,UntypedFormControl } from \"@angular/forms\";\r\nimport { Select2OptionData } from \"ng-select2\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { Options } from 'select2';\r\nimport { DataService } from \"src/app/core/shared/data.service\";\r\nimport { notificationMessage } from \"src/app/mocks/nofification.message\";\r\nimport { AdminService } from \"../admin-task/admin.service\";\r\nimport { ExportToCsv } from 'export-to-csv';\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { type } from \"os\";\r\n\r\n//added on 5/5/2022\r\nimport {QueryModel} from './query-model';\r\nimport {TableKVP} from './table-kvp';\r\nimport { FilterModel } from \"./query-filter-model\";\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Validators } from '@angular/forms';\r\nimport { ItemsList } from \"@ng-select/ng-select/lib/items-list\";\r\nimport { stringify } from \"querystring\";\r\n\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: \"app-query\",\r\n templateUrl: \"./query.component.html\",\r\n styleUrls: [\"./query.component.css\"],\r\n})\r\nexport class QueryComponent implements OnInit,OnDestroy {\r\n @ViewChild('closebutton') closebutton;\r\n\r\n\r\n public options: Options;\r\n\r\n pagination: any = { start: 0, end: 24 };\r\n paResultSetting = {};\r\n paResultData = [];\r\n selectedRows: any;\r\n selectedIndex: number=-1;\r\n \r\n \r\n table: TableKVP[] = [{id:'CourtStatusAll_View',name:'CourtStatusAll_View'}];\r\n tables: TableKVP[] = [{id:'CourtStatusAll_View',name:'CourtStatusAll_View'}];\r\n \r\n field:any=[];\r\n queryTypeFlag = 'new';\r\n\r\n condition:any=[{name:\"AND\"},{name:\"OR\"}]\r\n whereFields: any[];\r\n operator:any=[{name:'='},{name:'!='},{name:'>'},{name:'>='},{name:'<='},{name:'<'},{name:'contains'}];\r\n value:any={};\r\n tableName: any=\"\";\r\n queryName: string=\"\";\r\n queryType: any = '';\r\n resultGrid: boolean = false;\r\n myQueriesLists: QueryModel[] = [];\r\n sharedQueriesLists: QueryModel[] = [];\r\n selectedTable: any = [];\r\n userInfo: any;\r\n btnMyQry: boolean;\r\n btnSharedQry: boolean;\r\n btnSaveCopy: boolean;\r\n btnCancelQuery: boolean;\r\n //data: any;\r\n data: QueryModel;\r\n\r\n //new 5/5/2022\r\n queryModel: QueryModel;\r\n queryModels: QueryModel[]=[];\r\n\r\n \r\n tableKVP:TableKVP[] = [];\r\n fieldKVP:TableKVP[] = [];\r\n\r\n form: UntypedFormGroup = this.formBuilder.group({\r\n queryTable: [],//this.formBuilder.array(this.tableKVP),\r\n queryCondition: []//this.formBuilder.array(this.tableKVP)\r\n });\r\n\r\n selTablesSubscription: Subscription;\r\n selQueriesSubscription: Subscription;\r\n getQueriesSubscription: Subscription;\r\n getWhereFieldsSubscription: Subscription;\r\n getWhereValuesSubscription: Subscription;\r\n getQueryDetailsSubscription: Subscription;\r\n getSaveMyQuerySubscription: Subscription;\r\n getSaveSharedQuerySubscription: Subscription;\r\n\r\n\r\n pageNumber: number = 1;\r\n maxPages: number = 10;\r\n rowsPerPage: number = 300;\r\n searchError: string = \"\";\r\n pageForm: UntypedFormGroup;\r\n pageForm2: UntypedFormGroup;\r\n queryResultsRowsCount: number=0;\r\n\r\n progressBarFullTeamValue: number = 0;\r\n progressBarFullTeamCounter: number = 0;\r\n uploadDuration: number = 0;\r\n remainingFullTeams: string =\"Not started yet\";\r\n progressBarFullTeamLabel: string = \"\";\r\n cancelQueryLoad: boolean = false;\r\n queryRowsCountMessage: string = \"\";\r\n\r\n containsFieldsData: any=\"\";\r\n newForm:any;\r\n\r\n constructor(\r\n private DataService: DataService,\r\n private formBuilder: UntypedFormBuilder,\r\n private adminService: AdminService,\r\n private toastr: ToastrService,\r\n private modalService: NgbModal\r\n ) {\r\n console.log('query page accessed');\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.userInfo = JSON.parse(localStorage.getItem('userInfo'))\r\n this.DataService.setPageTitle(\"Query\");\r\n //enabled section begin: 5/6/2022\r\n this.selTablesSubscription = this.adminService.getSelectTables().subscribe((data: any) => {\r\n //console.log('this.adminService.getSelectTables data=',data)\r\n\r\n localStorage[\"QueryRowsPerPage\"]=this.rowsPerPage;\r\n this.rowsPerPage=localStorage[\"QueryRowsPerPage\"]||100;\r\n\r\n var tableKeyValue: {\r\n id: string,\r\n name: string\r\n }\r\n var tableData: typeof tableKeyValue [] = [];\r\n data.values.forEach((item, i) => {\r\n var id = item;\r\n var value = item.replace(\"bis\", \"\");\r\n value = value.replace(/_/gi, \" \");\r\n //if(i == 0) \r\n {\r\n tableData.push({\r\n id: id,\r\n name: value\r\n })\r\n }\r\n\r\n\r\n });\r\n //console.log('OnInit tableData=',tableData)\r\n //assign table\r\n this.tables = tableData;\r\n tableData.forEach((item)=>\r\n {\r\n \r\n if(item.name=='biscourtstatus')\r\n this.table.push(item);\r\n });\r\n //console.log('OnInit this.table=',this.table)\r\n \r\n });\r\n //enabled section end: 5/6/2022\r\n\r\n\r\n this.selQueriesSubscription = this.adminService.getSelectFields(this.table[0].id).subscribe((data: any) => {\r\n \r\n //console.log(\"query.component onInit getSelectFields() data\", data);\r\n var fieldData = []\r\n data.values.forEach(item => {\r\n var id = item;\r\n var value = item.replace(\"bis\", \"\");\r\n value = value.replace(/_/gi, \" \");\r\n fieldData.push({\r\n id: id,\r\n name: value\r\n })\r\n });\r\n this.field = fieldData;\r\n });\r\n\r\n this.getQueriesSubscription = this.adminService.GetQueries().subscribe((data: any) => {\r\n //console.log(\"query.component this.adminService.GetQueries() data === \"); console.log(data);\r\n\r\n this.queryModels = data;\r\n\r\n //console.log(\"query.component this.adminService.GetQueries() this.queryModels === \"); console.log(this.queryModels);\r\n \r\n this.queryModels.forEach(qModel=>{\r\n\r\n })\r\n\r\n var myQueries: QueryModel[] = [], sharedQueries:QueryModel[] = [];\r\n this.queryModels.forEach(element => {\r\n\r\n\r\n if(element.QueryType == \"Private\") {\r\n\r\n\r\n if(element.UserName == this.userInfo.unique_name) {\r\n myQueries.push({\r\n QueryName: element.QueryName,\r\n UserName: element.UserName,\r\n QueryType: element.QueryType,\r\n TableName: element.TableName,\r\n Fields: element.Fields,\r\n Criteria: element.Criteria\r\n\r\n })\r\n }\r\n } else {\r\n\r\n sharedQueries.push({\r\n QueryName: element.QueryName,\r\n UserName: element.UserName,\r\n QueryType: element.QueryType,\r\n TableName: element.TableName,\r\n Fields: element.Fields,\r\n Criteria: element.Criteria\r\n })\r\n }\r\n });\r\n this.myQueriesLists = myQueries;\r\n this.sharedQueriesLists = sharedQueries;\r\n\r\n\r\n });\r\n this.getWhereFieldsSubscription = this.adminService.getWhereFields().subscribe((data: any) => {\r\n var whereFieldsData = []\r\n data.fields.forEach(item => {\r\n var id = item;\r\n //var value = item;\r\n var value = item.replace(\"bis\", \"\");\r\n value = value.replace(/_/gi, \" \");\r\n whereFieldsData.push({\r\n id: id,\r\n name: value\r\n })\r\n });\r\n this.whereFields = whereFieldsData;\r\n });\r\n \r\n this.form = this.formBuilder.group({\r\n queryTable: [],//this.formBuilder.array(this.tableKVP),\r\n queryCondition: []//this.formBuilder.array(this.tableKVP)\r\n });\r\n //pageform for page number\r\n this.pageForm = new UntypedFormGroup({\r\n pageInput: new UntypedFormControl('',\r\n [Validators.required, Validators.pattern(/^[0-9]+$/)])\r\n ,\r\n pageInput2: new UntypedFormControl('',\r\n [Validators.required, Validators.pattern(/^[0-9]+$/)])\r\n });\r\n //pageform for rows per page\r\n this.pageForm2 = new UntypedFormGroup({\r\n pageInput2: new UntypedFormControl('',\r\n [Validators.required, Validators.pattern(/^[0-9]+$/)])\r\n });\r\n // this.addQueryTable();\r\n // this.addQueryCondition();\r\n this.newquery();\r\n }//onInit\r\n\r\n ngOnDestroy() {\r\n if(this.selTablesSubscription && !this.selTablesSubscription.closed) this.selTablesSubscription.unsubscribe(); \r\n if(this.selQueriesSubscription && !this.selQueriesSubscription.closed) this.selQueriesSubscription.unsubscribe(); \r\n if(this.getQueriesSubscription && !this.getQueriesSubscription.closed) this.getQueriesSubscription.unsubscribe(); \r\n if(this.getWhereFieldsSubscription && !this.getWhereFieldsSubscription.closed) this.getWhereFieldsSubscription.unsubscribe();\r\n if(this.getWhereValuesSubscription && !this.getWhereValuesSubscription.closed) this.getWhereValuesSubscription.unsubscribe(); \r\n if(this.getQueryDetailsSubscription && !this.getQueryDetailsSubscription.closed) this.getQueryDetailsSubscription.unsubscribe(); \r\n if(this.getSaveMyQuerySubscription && !this.getSaveMyQuerySubscription.closed) this.getSaveMyQuerySubscription.unsubscribe(); \r\n if(this.getSaveSharedQuerySubscription && !this.getSaveSharedQuerySubscription.closed) this.getSaveSharedQuerySubscription.unsubscribe(); \r\n }//end of fx\r\n\r\n setRowsPerPage()\r\n {\r\n\r\n }\r\n \r\n addQueryTable() {\r\n console.log('...ADD QUERY CALLED...');\r\n // console.log('addQueryTable() called with this.aliasQueryTable=',this.aliasQueryTable)\r\n // console.log('addQueryTable() called with this.aliasQueryTable.controls=',this.aliasQueryTable.controls)\r\n var isValid = false;\r\n\r\n if(this.aliasQueryTable.controls)\r\n if(this.aliasQueryTable.controls.length > 0){\r\n var queryTable = this.aliasQueryTable.controls[this.aliasQueryTable.controls.length-1].value\r\n if(queryTable.table != null && queryTable.field != null) {\r\n isValid = true\r\n }\r\n }\r\n var tableTemp:TableKVP[] = [];\r\n var fieldTemp:TableKVP[] = [];\r\n\r\n if(this.aliasQueryTable.controls)\r\n if(isValid || this.aliasQueryTable.controls.length == 0) {\r\n this.aliasQueryTable.push(\r\n this.formBuilder.group({\r\n table: tableTemp,\r\n field: fieldTemp\r\n })\r\n );\r\n } else {\r\n this.toastr.error(\r\n notificationMessage.WHERE_ERROR,\r\n notificationMessage.ERROR\r\n );\r\n }\r\n //console.log('addQueryTable() exited with this.aliasQueryTable=',this.aliasQueryTable)\r\n }\r\n removeQueryTable(i) {\r\n console.log('...REMOVE QUERY CALLED...');\r\n\r\n if(this.aliasQueryTable.controls)\r\n if(this.aliasQueryTable.controls.length > 1 && i == 0) {\r\n this.aliasQueryTable.removeAt(i);\r\n // this.aliasQueryTable.at(0).get(\"field\").reset();\r\n }else if(i != 0) {\r\n this.aliasQueryTable.removeAt(i);\r\n } else {\r\n this.aliasQueryTable.at(i).get(\"field\").reset();\r\n }\r\n }\r\n onchangeQueryTable(event,index){\r\n //console.log('onChangeQueryTable() index=',index)\r\n //console.log('onChangeQueryTable() event=',event)\r\n\r\n // if(!event)\r\n // {\r\n // //console.log('returned')\r\n // return;\r\n // }\r\n // var tableName = event.id;\r\n }\r\n newquery() {\r\n this.progressBarFullTeamLabel = \"\";\r\n this.btnSaveCopy = true;\r\n this.btnMyQry = false;\r\n this.btnSharedQry = false;\r\n this.queryName = '';\r\n this.queryTypeFlag == \"new \"\r\n this.resetForm()\r\n }\r\n resetForm() {\r\n // console.log('...RESET QUERY CALLED...');\r\n this.form = this.formBuilder.group({\r\n queryTable: this.formBuilder.array([]),\r\n queryCondition: this.formBuilder.array([])\r\n });\r\n\r\n this.paResultData = [];//added today 5/9/2022\r\n this.addQueryTable();\r\n this.addQueryCondition();\r\n }\r\n addQueryCondition() {\r\n \r\n var isValid = false;\r\n\r\n if(this.aliasQueryCondition.controls)\r\n if(this.aliasQueryCondition.controls.length > 0){\r\n var conditionValue = this.aliasQueryCondition.controls[this.aliasQueryCondition.controls.length-1].value\r\n if(this.aliasQueryCondition.controls.length == 1 && conditionValue.whereFields != null && conditionValue.operator != null && conditionValue.value !== null) {\r\n isValid = true\r\n } else if(conditionValue.condition != null && conditionValue.whereFields != null && conditionValue.operator != null && conditionValue.value !== null) {\r\n isValid = true;\r\n }\r\n }\r\n if(this.aliasQueryCondition.controls)\r\n if(isValid || this.aliasQueryCondition.controls.length == 0) {\r\n this.aliasQueryCondition.push(\r\n this.formBuilder.group({\r\n condition: [],\r\n whereFields: [],\r\n operator: [],\r\n value: [],\r\n })\r\n );\r\n } else {\r\n this.toastr.error(\r\n notificationMessage.WHERE_ERROR,\r\n notificationMessage.ERROR\r\n );\r\n }\r\n }\r\n removeQueryCondition(i) {\r\n\r\n if(this.aliasQueryCondition.controls)\r\n if(this.aliasQueryCondition.controls.length > 1 && i == 0) {\r\n this.aliasQueryCondition.removeAt(i);\r\n // this.aliasQueryTable.at(0).get(\"field\").reset();\r\n }else if(i != 0) {\r\n this.aliasQueryCondition.removeAt(i);\r\n } else {\r\n this.aliasQueryCondition.at(i).get(\"condition\").reset();\r\n this.aliasQueryCondition.at(i).get(\"whereFields\").reset();\r\n this.aliasQueryCondition.at(i).get(\"operator\").reset();\r\n this.aliasQueryCondition.at(i).get(\"value\").reset();\r\n }\r\n }//end\r\n\r\n onContainSelect(event,index,control)\r\n {\r\n \r\n\r\n var controlName = \"\";\r\n var controlValue = \"\";\r\n\r\n if(control.controls.value.value && control.controls.value.value.id)\r\n {\r\n controlName = control.controls.value.value.name;\r\n controlValue = control.controls.value.value.id;\r\n }\r\n else if(control.controls.value.value)\r\n {\r\n controlName = '%'+control.controls.value.value+'%';\r\n controlValue = '%'+control.controls.value.value+'%';\r\n }\r\n var keyValueControl = {id:controlName,name:controlValue}\r\n control.controls.value.value = keyValueControl;\r\n\r\n if(control.controls.operator.value && control.controls.operator.value.name=='contains')\r\n {\r\n control.controls.operator.value.name='like'\r\n }\r\n\r\n }//end\r\n\r\n onchangeWhereFields(event,index, name) {\r\n\r\n var filedName;\r\n if(event =='') {\r\n if(name)\r\n filedName = name; \r\n else\r\n filedName = '';\r\n } \r\n else if(event)\r\n {\r\n filedName = event.id;\r\n }\r\n else\r\n {\r\n filedName = '';\r\n }\r\n if(String(filedName).length>0)\r\n this.getWhereValuesSubscription = this.adminService.getWhereValues(filedName).subscribe((data: any) => {\r\n // console.log(data,\"----getvalues\")\r\n var fieldData = []\r\n data.values.forEach(item => {\r\n if(item) {\r\n var id = item;\r\n var value = item.replace(\"bis\", \"\");\r\n value = value.replace(/_/gi, \" \");\r\n fieldData.push({\r\n id: id,\r\n name: value\r\n })\r\n }\r\n });\r\n this.value[index] = fieldData;\r\n });//end of getWhereValues api\r\n\r\n this.aliasQueryCondition.at(index).get(\"value\").reset();\r\n }//end of onChange fx\r\n\r\n get aliasQueryCondition() {\r\n \r\n return (this.form.get('queryCondition'));\r\n }\r\n get aliasQueryTable() {\r\n //console.log('aliasQueryTable this.table=',this.table);\r\n return (this.form.get('queryTable'));\r\n //return this.form.get('queryTable');\r\n }\r\n\r\n get aliasQueryTableControls() {\r\n\r\n return (this.form.get('queryTable')).controls;\r\n\r\n }\r\n\r\n\r\n \r\n dataBinding(type) {\r\n \r\n const queryTableData = this.aliasQueryTable.getRawValue();\r\n\r\n\r\n const queryConditions = this.aliasQueryCondition.getRawValue();\r\n\r\n for(var indexN=0;indexN0 && queryConditions[indexN].condition==null)\r\n {\r\n this.progressBarFullTeamValue = 0;\r\n this.progressBarFullTeamLabel = \"\";\r\n localStorage[\"QueryResultsRowsCount\"] = 0;\r\n this.queryResultsRowsCount = 0;\r\n this.queryRowsCountMessage = 'Please fix where clause errors and Run again!';\r\n\r\n this.toastr.error(\r\n 'Please select AND/OR condition where appropriate in the where clause!',\r\n notificationMessage.ERROR\r\n );\r\n return;\r\n }\r\n\r\n }\r\n\r\n\r\n var requestData = [], isValid = true;\r\n var fieldData: string[] = [], tableName:string = '', crieteria:FilterModel[] = [];\r\n\r\n\r\n queryTableData.forEach((item, i) => {\r\n\r\n\r\n if(item.table && item.field) {\r\n tableName = item.table.id;\r\n fieldData.push(item.field.id);\r\n } else {\r\n //return isValid = false;\r\n }\r\n\r\n })\r\n\r\n var val1 = this.aliasQueryCondition.at(0);\r\n var val2 = this.aliasQueryCondition.at(0).get(\"whereFields\");\r\n\r\n \r\n queryConditions.forEach((item, i) => {\r\n\r\n var conditionValue: any;\r\n var operatorValue: any;\r\n if(item.operator&&item.operator.name && (item.operator.name=='like' || item.operator.name=='contains'))\r\n {\r\n if(item.value && item.value.id)\r\n conditionValue = '%'+item.value.id+'%';\r\n else\r\n conditionValue = '%'+item.value+'%';\r\n\r\n operatorValue = 'like';\r\n }\r\n else\r\n {\r\n if(item && item.value && item.value.id)\r\n conditionValue = item.value.id;\r\n\r\n if(item&&item.operator&&item.operator.name)\r\n operatorValue = item.operator.name;\r\n }\r\n\r\n \r\n if(i == 0 && item.operator && item.value && item.whereFields) {\r\n\r\n var condition = ''\r\n if(item.condition != null) {\r\n condition = item.condition.name\r\n }\r\n crieteria.push({\r\n \"Field\": item.whereFields.id,\r\n \"ConditionalOperator\": operatorValue,\r\n \"Value\": conditionValue,\r\n \"LogicalOperator\": condition\r\n })\r\n } else if(item.condition && item.operator && item.value && item.whereFields) {\r\n\r\n crieteria.push({\r\n \"Field\": item.whereFields.id,\r\n \"ConditionalOperator\": operatorValue,\r\n \"Value\": conditionValue,\r\n \"LogicalOperator\": item.condition.name\r\n })\r\n } else {\r\n //return isValid = false;\r\n }\r\n })\r\n\r\n if(type == 'saveAsCopy') {\r\n if(this.queryName == '' && this.queryType == '') {\r\n this.toastr.error(\r\n 'please enter valid data',\r\n notificationMessage.ERROR\r\n );\r\n isValid = false;\r\n }\r\n }\r\n if(isValid) {\r\n this.data;\r\n if(type == 'runQuery') {\r\n\r\n\r\n this.data = {\r\n TableName: tableName,\r\n Fields: fieldData,\r\n Criteria: crieteria,\r\n UserName:\"\",\r\n QueryType:\"\",\r\n QueryName:\"\"\r\n }\r\n\r\n this.runQuery(this.data);\r\n\r\n } else {\r\n if(this.queryName) {\r\n if(type == 'myQuery') {\r\n this.queryType =\"Private\"\r\n } else if(type == 'sharedQuery') {\r\n this.queryType =\"Shared\"\r\n }\r\n var userName = JSON.parse(localStorage.getItem('userInfo')).userName;\r\n this.data = {\r\n \"UserName\": userName,\r\n \"QueryName\": this.queryName,\r\n \"QueryType\": this.queryType,\r\n \"TableName\": tableName,\r\n \"Fields\": fieldData,\r\n \"Criteria\": crieteria\r\n }\r\n if(this.data.QueryType == 'Private') {\r\n var qryType = \"myQuery\"\r\n } else {\r\n qryType = \"sharedQry\"\r\n }\r\n this.saveQuery(this.data, qryType)\r\n } else {\r\n this.toastr.error(\r\n notificationMessage.QUERY_NAME,\r\n notificationMessage.ERROR\r\n );\r\n }\r\n }\r\n } else {\r\n this.toastr.error(\r\n notificationMessage.WHERE_ERROR,\r\n notificationMessage.ERROR\r\n );\r\n return true;\r\n }\r\n \r\n }//end of dataBinding()\r\n\r\n resultSection(resultData) {\r\n\r\n // console.log(resultData, \"---resultSection(resultData)\")\r\n var column = {}\r\n\r\n\r\n if(resultData)\r\n {\r\n\r\n this.queryResultsRowsCount = localStorage[\"QueryResultsRowsCount\"];\r\n\r\n }\r\n\r\n \r\n var setting = {\r\n columns: column,\r\n attr: {\r\n class: \"qry_result_view table table-hover table-bordered\",\r\n },\r\n actions: {\r\n delete: false,\r\n add: false,\r\n edit: false,\r\n },\r\n pager: {\r\n perPage: 25,\r\n display: false,\r\n },\r\n };\r\n this.paResultSetting = setting;\r\n\r\n //this.paResultData = resultData\r\n }//end resultSection\r\n\r\n resultMakeFinalSet(resultData) {\r\n\r\n\r\n this.paResultData = resultData;\r\n \r\n if(this.paResultData.length>0)\r\n {\r\n //this.exportCSV();\r\n //console.log('downloading CSV...')\r\n }\r\n }//end of fx\r\n\r\n goToPage() {\r\n\r\n localStorage[\"QueryResultsRowsCount\"] = 0;\r\n\r\n if (this.pageNumber < 1 ) {\r\n this.toastr.error(\r\n \"Page number not valid!\",\r\n notificationMessage.ERROR\r\n );\r\n return;\r\n }\r\n \r\n if (this.rowsPerPage < 1 || this.rowsPerPage > 1000 ) {\r\n this.toastr.error(\r\n \"Rows per Page number not valid! Must be betwen 1 and 1000\",\r\n notificationMessage.ERROR\r\n );\r\n return;\r\n }\r\n\r\n localStorage[\"QueryRowsPerPage\"]=this.rowsPerPage;\r\n\r\n localStorage[\"QueryPageNumber\"]=this.pageNumber;\r\n this.queryResultsRowsCount = localStorage[\"QueryResultsRowsCount\"];\r\n \r\n if(this.data && this.data.TableName)\r\n this.dataBinding('runQuery');\r\n\r\n\r\n }//end\r\n\r\n cancelQuery()\r\n {\r\n console.log('query cancelled');\r\n this.cancelQueryLoad = true; \r\n this.toastr.info(\r\n \"Query data load is cancelled\",\r\n notificationMessage.SUCCESS\r\n );\r\n\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 6000);\r\n\r\n }//end\r\n\r\n\r\n runQuery(data:QueryModel) {\r\n\r\n\r\n //console.log('query.component runQuery() data= ',data); \r\n this.pageNumber = localStorage[\"QueryPageNumber\"] || 1;\r\n this.rowsPerPage= localStorage[\"QueryRowsPerPage\"] || 100;\r\n this.progressBarFullTeamValue =0;\r\n localStorage[\"QueryResultsRowsCount\"] = 0;\r\n this.queryResultsRowsCount = 0;\r\n var setRowsCount: Boolean=false;\r\n this.cancelQueryLoad = false; \r\n\r\n if((data.TableName==\"\" )&&this.queryName=='')\r\n {\r\n this.toastr.error(\r\n 'Please select table and table fields!',\r\n notificationMessage.ERROR\r\n ); \r\n return\r\n }\r\n\r\n if(( data.Fields.length==0 )&&this.queryName=='')\r\n {\r\n this.toastr.error(\r\n 'Please select table and table fields!',\r\n notificationMessage.ERROR\r\n ); \r\n return\r\n }\r\n\r\n if((data.Criteria.length==0)&&this.queryName=='')\r\n {\r\n this.toastr.error(\r\n 'Please set a valid where clause!',\r\n notificationMessage.ERROR\r\n ); \r\n return\r\n }\r\n if((data.TableName==\"\" ))\r\n {\r\n this.toastr.error(\r\n 'Please select table and table fields!',\r\n notificationMessage.ERROR\r\n ); \r\n return\r\n }\r\n\r\n if(( data.Fields.length==0 ))\r\n {\r\n this.toastr.error(\r\n 'Please select table and table fields!',\r\n notificationMessage.ERROR\r\n ); \r\n return\r\n }\r\n\r\n if((data.Criteria.length==0))\r\n {\r\n this.toastr.error(\r\n 'Please set a valid where clause!',\r\n notificationMessage.ERROR\r\n ); \r\n return\r\n }\r\n\r\n\r\n var filtModelsLoc: FilterModel[]=[];\r\n var fieldsLoc:string[]=[];\r\n var newData:QueryModel={ \r\n TableName: \"\",\r\n Fields: fieldsLoc,\r\n Criteria: filtModelsLoc,\r\n UserName:\"\",\r\n QueryType:\"\",\r\n QueryName:\"\"};\r\n\r\n newData.QueryName=data.QueryName;\r\n newData.QueryType=data.QueryType;\r\n newData.TableName=data.TableName;\r\n newData.UserName=data.UserName;\r\n\r\n data.Criteria.forEach(qCriet=>{\r\n\r\n var crieteriaFound: Boolean = false;\r\n newData.Criteria.forEach(newCriteria=>{\r\n \r\n if(newCriteria.ConditionalOperator==qCriet.ConditionalOperator\r\n && newCriteria.Field==qCriet.Field &&\r\n newCriteria.LogicalOperator==qCriet.LogicalOperator &&\r\n newCriteria.Value==qCriet.Value && !crieteriaFound)\r\n crieteriaFound=true;\r\n })\r\n\r\n\r\n if(!crieteriaFound)\r\n {\r\n newData.Criteria.push(qCriet);\r\n }\r\n })\r\n\r\n data.Fields.forEach(qField=>{\r\n\r\n var fieldFound:Boolean = false;\r\n newData.Fields.forEach(newField=>{\r\n if(newField==qField && !fieldFound)\r\n fieldFound= true;\r\n })\r\n if(!fieldFound)\r\n {\r\n newData.Fields.push(qField);\r\n }\r\n\r\n })\r\n\r\n\r\n //progress bar\r\n //set progress Bar Counter\r\n var progressBarCounter:number=0;\r\n \r\n this.adminService.runQuery(newData,this.pageNumber,this.rowsPerPage,true).subscribe((dataBack: any) => {\r\n\r\n var resultData: any;\r\n var rowsCount: number=0;\r\n var pageCount: number=1;\r\n if(String(dataBack.body.responseData)==\"[]\")\r\n {\r\n this.toastr.info(\r\n notificationMessage.QUERY_NO_DATA_FOUND,\r\n notificationMessage.SUCCESS\r\n );\r\n this.queryRowsCountMessage = \"Total Rows Count=\"+String(this.queryResultsRowsCount);\r\n this.progressBarFullTeamLabel = \"\";\r\n return;\r\n }\r\n\r\n resultData = [];\r\n rowsCount = dataBack.body.rowsCount;\r\n //if page count from api = 0 then set it to 1\r\n if(dataBack.body.pageCount>0)\r\n {\r\n pageCount = dataBack.body.pageCount;\r\n }\r\n else\r\n {\r\n pageCount = 1;\r\n }\r\n\r\n //notify user if rows count is 0\r\n if(dataBack.body.rowsCount==0)\r\n {\r\n this.toastr.info(\r\n 'Query Returned No Data!',\r\n notificationMessage.SUCCESS\r\n );\r\n }\r\n\r\n\r\n if(dataBack && dataBack.status==200)\r\n {\r\n this.progressBarFullTeamValue = Number(parseInt(String((progressBarCounter+1)*100/pageCount)));\r\n //show BAR progress\r\n this.progressBarFullTeamLabel = \"Loading Query Data Progress: \"+this.progressBarFullTeamValue+\"%\";\r\n\r\n if(this.progressBarFullTeamValue==100)\r\n {\r\n this.toastr.info(\r\n \"Query Data Load is Complete\",\r\n notificationMessage.SUCCESS\r\n ); \r\n this.btnCancelQuery = true; \r\n }//end if\r\n }\r\n\r\n if(dataBack.body.responseData) \r\n //if(resultData && resultData.length > 0) \r\n {\r\n\r\n this.resultGrid = true;\r\n localStorage[\"QueryResultsRowsCount\"] = rowsCount;\r\n this.queryResultsRowsCount = rowsCount;\r\n this.queryRowsCountMessage = \"Total Rows Count=\"+String(this.queryResultsRowsCount);\r\n\r\n console.log('query rowsCount=',rowsCount); \r\n\r\n //call api to get query data in a loop\r\n var newQueryResultDataSet: any;\r\n if(dataBack &&dataBack.body&&dataBack.body.responseData) \r\n {\r\n try\r\n {\r\n newQueryResultDataSet= JSON.parse(dataBack.body.responseData);\r\n }\r\n catch(e)\r\n {\r\n console.error('Query Data Error-',e);\r\n this.toastr.error(\r\n 'Query Data Error-'+e,\r\n notificationMessage.ERROR\r\n ); \r\n }\r\n } \r\n\r\n for(var indexi=0;indexi=1)\r\n this.adminService.runQuery(newData,indexi+1,this.rowsPerPage,setRowsCount).subscribe((dataBackPrime: any) => {\r\n if(this.cancelQueryLoad==true)\r\n {\r\n return;\r\n }\r\n\r\n //progress bar\r\n if(dataBackPrime && dataBackPrime.status==200)\r\n {\r\n progressBarCounter++;\r\n this.progressBarFullTeamValue = Number(parseInt(String((progressBarCounter+1)*100/pageCount)));\r\n //show BAR progress\r\n this.progressBarFullTeamLabel = \"Loading Query Data Progress: \"+this.progressBarFullTeamValue+\"%\";\r\n }\r\n \r\n if(progressBarCounter==1)\r\n {\r\n this.toastr.info(\r\n \"Query Data Load is Starting...\",\r\n notificationMessage.SUCCESS\r\n );\r\n }\r\n\r\n var newResSet:any;\r\n if(dataBackPrime &&dataBackPrime.body&&dataBackPrime.body.responseData)\r\n { \r\n try\r\n {\r\n newResSet = JSON.parse(dataBackPrime.body.responseData);\r\n }\r\n catch(e)\r\n {\r\n console.error('Query Data Error-',e);\r\n this.toastr.error(\r\n 'Query Data Error-'+e,\r\n notificationMessage.ERROR\r\n ); \r\n }\r\n }\r\n \r\n\r\n newResSet.forEach(i=>{\r\n //console.log('oops = ',i); \r\n newQueryResultDataSet.push(i);\r\n })\r\n \r\n if(this.progressBarFullTeamValue==100)\r\n {\r\n this.toastr.info(\r\n \"Query Data Load is Complete\",\r\n notificationMessage.SUCCESS\r\n ); \r\n }//end if\r\n\r\n\r\n });\r\n } \r\n catch (e) //catch code errors\r\n {\r\n \r\n console.error('Query Load Error-',e);\r\n }\r\n\r\n \r\n }//end of for loop\r\n //console.log('query.component newQueryResultDataSet=',newQueryResultDataSet)\r\n\r\n this.resultMakeFinalSet(newQueryResultDataSet); \r\n\r\n\r\n } \r\n else \r\n {\r\n localStorage[\"QueryResultsRowsCount\"] = rowsCount;\r\n this.queryResultsRowsCount = rowsCount;\r\n\r\n this.toastr.info(\r\n 'Query Returned no Results',\r\n notificationMessage.SUCCESS\r\n );\r\n }\r\n this.resultSection(resultData);\r\n });//end of first page api call\r\n\r\n\r\n }//end runQuery \r\n\r\n saveQuery(data, type){\r\n var isDuplicate = true;\r\n \r\n this.myQueriesLists.forEach(e => {\r\n if(e == data.queryName) {\r\n return isDuplicate = false\r\n }\r\n });\r\n \r\n if(this.queryTypeFlag == \"new\") {\r\n if(isDuplicate) {\r\n if(type == 'myQuery') {\r\n this.saveMyQuery(data)\r\n } else {\r\n this.saveSharedQuery(data)\r\n }\r\n } else {\r\n this.toastr.error(\r\n 'name already exist, please choose different name',\r\n notificationMessage.ERROR\r\n );\r\n }\r\n } else if(this.queryTypeFlag == \"private\") {\r\n if(data.userName == JSON.parse(localStorage.getItem('userInfo')).userName) {\r\n if(type == 'myQuery') {\r\n this.saveMyQuery(data)\r\n } else {\r\n if(isDuplicate) {\r\n this.saveSharedQuery(data)\r\n }else {\r\n this.toastr.error(\r\n 'name already exist, please choose different name',\r\n notificationMessage.ERROR\r\n );\r\n }\r\n }\r\n } else {\r\n if(type == 'myQuery') {\r\n if(isDuplicate) {\r\n this.saveMyQuery(data)\r\n }else {\r\n this.toastr.error(\r\n 'name already exist, please choose different name',\r\n notificationMessage.ERROR\r\n );\r\n }\r\n } else {\r\n if(isDuplicate) {\r\n this.saveSharedQuery(data)\r\n }else {\r\n this.toastr.error(\r\n 'name already exist, please choose different name',\r\n notificationMessage.ERROR\r\n );\r\n }\r\n }\r\n }\r\n } else {\r\n if(data.userName == JSON.parse(localStorage.getItem('userInfo')).userName) {\r\n if(type == 'myQuery') {\r\n if(isDuplicate) {\r\n this.saveMyQuery(data)\r\n }else {\r\n this.toastr.error(\r\n 'name already exist, please choose different name',\r\n notificationMessage.ERROR\r\n );\r\n }\r\n } else {\r\n this.saveSharedQuery(data)\r\n }\r\n } else {\r\n if(type == 'myQuery') {\r\n if(isDuplicate) {\r\n this.saveMyQuery(data)\r\n }else {\r\n this.toastr.error(\r\n 'name already exist, please choose different name',\r\n notificationMessage.ERROR\r\n );\r\n }\r\n } else {\r\n if(isDuplicate) {\r\n this.saveSharedQuery(data)\r\n }else {\r\n this.toastr.error(\r\n 'name already exist, please choose different name',\r\n notificationMessage.ERROR\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n }//end saveQuery\r\n\r\n saveSharedQuery(data: QueryModel) {\r\n // console.log(\"query.component saveSharedQuery() data = \"); console.log(data);\r\n var foundQuery = false;\r\n\r\n if(this.sharedQueriesLists.length > 0) {\r\n this.sharedQueriesLists.forEach(e => {\r\n if(e.QueryName == data.QueryName && !foundQuery) //disabled on 5/11/2022\r\n foundQuery = true;\r\n })\r\n }\r\n //if(data.QueryName && data.QueryName!==\"\") \r\n if(foundQuery)\r\n {\r\n if(confirm(\"Do you want to replace the existing Query?\")) {\r\n this.adminService.SaveSharedQuery(data).subscribe((databack: any) => {\r\n if(databack.body.values == 'Success') {\r\n this.toastr.success('Shared Query Saved Successfully ', notificationMessage.SUCCESS);\r\n this.closebutton.nativeElement.click();\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 3000);\r\n }\r\n else\r\n {\r\n if(databack && databack.body.values && databack.body.responseMsg)\r\n {\r\n this.toastr.error(databack.body.responseMsg, notificationMessage.ERROR);\r\n this.closebutton.nativeElement.click();\r\n }\r\n else\r\n {\r\n this.toastr.error('Database Error', notificationMessage.ERROR);\r\n this.closebutton.nativeElement.click();\r\n }\r\n }\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 5000);\r\n });\r\n } else {\r\n\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 500);\r\n }\r\n } else {\r\n this.adminService.SaveSharedQuery(data).subscribe((databack: any) => {\r\n //console.log('query.component databack=',databack)\r\n if(databack.body.values == 'Success') {\r\n this.toastr.success('Shared Query Saved Successfully ', notificationMessage.SUCCESS);\r\n this.closebutton.nativeElement.click();\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 3000);\r\n }\r\n else\r\n {\r\n //console.log('error=',databack);\r\n if(databack && databack.body.values && databack.body.responseMsg)\r\n {\r\n this.toastr.error(databack.body.responseMsg, notificationMessage.ERROR);\r\n this.closebutton.nativeElement.click();\r\n }\r\n else\r\n {\r\n this.toastr.error('Database Error', notificationMessage.ERROR);\r\n this.closebutton.nativeElement.click();\r\n }\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 5000);\r\n\r\n }\r\n });\r\n }\r\n \r\n }//end saveSharedQuery\r\n\r\n saveMyQuery(data: QueryModel) {\r\n // console.log(\"query.component saveMyQuery() data = \"); console.log(data);\r\n var foundQuery = false;\r\n\r\n if(this.myQueriesLists.length > 0) {\r\n this.myQueriesLists.forEach(e => {\r\n if(e.QueryName == data.QueryName && !foundQuery) //disabled on 5/11/2022\r\n foundQuery= true;\r\n })\r\n }\r\n\r\n if(foundQuery) \r\n {\r\n if(confirm(\"Do you want to replace the existing Query?\")) {\r\n this.getSaveMyQuerySubscription = this.adminService.SaveMyQuery(data).subscribe((databack: any) => {\r\n if(databack.body.values == 'Success') {\r\n this.toastr.success('My Query Saved Successfully ', notificationMessage.SUCCESS);\r\n this.closebutton.nativeElement.click();\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 3000);\r\n } \r\n else\r\n {\r\n if(databack && databack.body.values && databack.body.responseMsg)\r\n {\r\n this.toastr.error(databack.body.responseMsg, notificationMessage.ERROR);\r\n this.closebutton.nativeElement.click();\r\n }\r\n else\r\n {\r\n this.toastr.error('Database Error', notificationMessage.ERROR);\r\n this.closebutton.nativeElement.click();\r\n }\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 5000);\r\n }\r\n });\r\n\r\n } {\r\n // console.log('operation cancel');\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 500);\r\n }\r\n } else {\r\n this.getSaveMyQuerySubscription = this.adminService.SaveMyQuery(data).subscribe((databack: any) => {\r\n //console.log('query.component databack=',databack)\r\n if(databack.body.values == 'Success') {\r\n this.toastr.success('My Query Saved Successfully ', notificationMessage.SUCCESS);\r\n this.closebutton.nativeElement.click();\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 3000);\r\n } \r\n else\r\n {\r\n //console.log('error=',databack)\r\n if(databack && databack.body.values && databack.body.responseMsg)\r\n this.toastr.error(databack.body.responseMsg, notificationMessage.ERROR);\r\n else\r\n this.toastr.error('Database Error', notificationMessage.ERROR);\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 5000);\r\n }\r\n });\r\n }\r\n\r\n }//end saveMyQuery\r\n\r\n getQueryDetails(list: QueryModel, qryType) {\r\n \r\n\r\n if(qryType=='private') this.selectedIndex = this.myQueriesLists.indexOf(list);\r\n else\r\n this.selectedIndex = this.sharedQueriesLists.indexOf(list);\r\n\r\n\r\n if(qryType == 'private') {\r\n this.btnSaveCopy = true\r\n this.btnMyQry = false;\r\n this.btnSharedQry = false;\r\n this.queryTypeFlag == \"private\"\r\n } else { \r\n if(list.UserName == this.userInfo.unique_name) {\r\n this.btnMyQry = false;\r\n this.btnSharedQry = false;\r\n this.btnSaveCopy = true\r\n } else {\r\n this.btnMyQry = true;\r\n this.btnSharedQry = true;\r\n this.btnSaveCopy = false\r\n }\r\n this.queryTypeFlag == \"shared\"\r\n }\r\n this.resetForm();\r\n \r\n var userinfo = JSON.parse(localStorage.getItem(\"userInfo\"));;\r\n let username = \"\";\r\n\r\n //assign values\r\n if(userinfo)\r\n {\r\n username = userinfo.unique_name;\r\n }\r\n\r\n var dataIN = {\r\n queryName: list.QueryName,\r\n userName: list.UserName,\r\n type: list.QueryType\r\n }\r\n\r\n if(dataIN.userName=='' || !dataIN.userName)\r\n {\r\n dataIN.userName=username;\r\n }\r\n\r\n this.getQueryDetailsSubscription = this.adminService.GetQueryDetails(dataIN).subscribe((data: any) => {\r\n //console.log(\"query.component this.adminService.GetQueryDetails() data = \"); console.log(data);\r\n //reset query page to 1\r\n localStorage[\"QueryPageNumber\"] = 1;\r\n this.pageNumber=1;\r\n \r\n this.queryModel = data;\r\n let queryModel:QueryModel = data;\r\n\r\n\r\n if(queryModel.Fields)\r\n if(queryModel.Fields.length > 0) {\r\n \r\n if(queryModel.Fields[0] != null){\r\n var Fields = queryModel.Fields[0].split(',');\r\n\r\n //if(Fields.length > 1) //disabled on 5/9/2022\r\n if(Fields.length > 0)\r\n {\r\n Fields.forEach((element, i) => {\r\n\r\n if(i != 0 ) //disabled on 5/9/2022\r\n if(this.table[0].id==queryModel.TableName)\r\n {\r\n\r\n var fieldName = element.replace(\"bis\", \"\");\r\n fieldName = fieldName.replace(/_/gi, \" \");\r\n var field = {name:fieldName, id:element}\r\n\r\n this.aliasQueryTable.push(\r\n this.formBuilder.group({\r\n\r\n table: [{\r\n id: this.table[0].id,\r\n name: this.table[0].name\r\n }],field: [field]\r\n })\r\n\r\n );\r\n \r\n }\r\n\r\n \r\n var tableName = \"\";\r\n if(this.table[0].id==queryModel.TableName)\r\n tableName = this.table[0].name;\r\n\r\n //tableName = tableName.replace(/_/gi, \" \");\r\n var table = {name:tableName, id:queryModel.TableName}\r\n var fieldName = element.replace(\"bis\", \"\");\r\n fieldName = fieldName.replace(/_/gi, \" \");\r\n var field = {name:fieldName, id:element}\r\n this.aliasQueryTable.at(i).get(\"table\").patchValue(table);\r\n this.aliasQueryTable.at(i).get(\"field\").patchValue(field);\r\n\r\n });\r\n\r\n // console.log(\"query.component this.adminService.GetQueryDetails() this.aliasQueryTable = \"); console.log(this.aliasQueryTable);\r\n }\r\n }\r\n }\r\n \r\n if(queryModel.Criteria)\r\n {\r\n //console.log(\"query.component getQueryDetails() queryModel.Criteria = \",queryModel.Criteria); \r\n queryModel.Criteria.forEach((element, i) => {\r\n\r\n\r\n if(i != 0 ) {\r\n this.aliasQueryCondition.push(\r\n this.formBuilder.group({\r\n condition: [{name:\"AND\"},{name:\"OR\"}],\r\n whereFields: this.whereFields,\r\n operator: [{name:'='},{name:'!='},{name:'>'},{name:'>='},{name:'<='},{name:'<'},{name:'contains'}],\r\n value: [],\r\n })\r\n );\r\n }\r\n var fieldName = element.Field.replace(\"bis\", \"\");\r\n fieldName = fieldName.replace(/_/gi, \" \");\r\n var value = element.Value.replace(\"bis\", \"\");\r\n value = value.replace(/_/gi, \" \");\r\n var field = {id:element.Field, name: fieldName}\r\n var condition = {name:element.LogicalOperator}\r\n var operator = {name:element.ConditionalOperator}\r\n var valueData:any = {id:element.Value, name:value}\r\n\r\n //this.aliasQueryCondition.at(i).get(\"value\").patchValue(valueData);\r\n //contains\r\n if(element.ConditionalOperator=='like' || element.ConditionalOperator=='contains')\r\n {\r\n //update value\r\n valueData = String(element.Value).replace(new RegExp('%', 'g'),'');\r\n operator.name='contains';\r\n\r\n this.aliasQueryCondition.at(i).get(\"condition\").patchValue(condition);\r\n this.aliasQueryCondition.at(i).get(\"whereFields\").patchValue(field);\r\n this.aliasQueryCondition.at(i).get(\"operator\").patchValue(operator);\r\n this.onchangeWhereFields('', i, element.Field)\r\n\r\n this.aliasQueryCondition.at(i).get(\"value\").patchValue(valueData);\r\n \r\n this.newForm = this.aliasQueryCondition.at(i);\r\n //this.onContainSelect(null,i,this.newForm);\r\n\r\n this.aliasQueryCondition.at(i).get(\"value\").patchValue(valueData);\r\n\r\n\r\n }\r\n else\r\n {\r\n this.aliasQueryCondition.at(i).get(\"condition\").patchValue(condition);\r\n this.aliasQueryCondition.at(i).get(\"whereFields\").patchValue(field);\r\n this.aliasQueryCondition.at(i).get(\"operator\").patchValue(operator);\r\n this.onchangeWhereFields('', i, element.Field)\r\n this.aliasQueryCondition.at(i).get(\"value\").patchValue(valueData);\r\n }\r\n\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n // console.log(\"query.component this.adminService.GetQueryDetails() this.aliasQueryCondition = \"); console.log(this.aliasQueryCondition);\r\n this.queryName = queryModel.QueryName;\r\n\r\n this.progressBarFullTeamValue = 0;\r\n this.progressBarFullTeamLabel = \"\";\r\n localStorage[\"QueryResultsRowsCount\"] = 0;\r\n this.queryResultsRowsCount = 0;\r\n this.queryRowsCountMessage = 'Please Run this query to see query rows count!';\r\n });\r\n\r\n setTimeout(() => {\r\n //don't run the query until user clicks runQuery button\r\n //this.dataBinding('runQuery');\r\n \r\n }, 500);\r\n }//end getQueryDetails\r\n\r\n exportCSV() {\r\n //REMOVED on 11/3/2022\r\n var isValid = false//this.dataBinding('runQuery');\r\n //end of REMOVED on 11/3/2022\r\n\r\n if(this.paResultData.length>0)\r\n {\r\n isValid = true;\r\n }\r\n\r\n setTimeout(() => {\r\n // console.log(this.paResultData, \"--paResultData\")\r\n var data = this.paResultData; \r\n // console.log('@@@@@ paResultData = ');console.log(this.paResultData);\r\n \r\n const options = { \r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalSeparator: '.',\r\n showLabels: true, \r\n showTitle: false,\r\n title: '',\r\n useTextFile: false,\r\n useBom: true,\r\n useKeysAsHeaders: true,\r\n // headers: ['Column 1', 'Column 2', etc...] <-- Won't work with useKeysAsHeaders present!\r\n }; \r\n const csvExporter = new ExportToCsv(options); \r\n if(isValid != false ) {\r\n csvExporter.generateCsv(data);\r\n }\r\n \r\n }, 500);\r\n }\r\n\r\n onUserRowSelect(event) {\r\n this.selectedRows = event.selected;\r\n }\r\n onPagination(event) {\r\n const start = (event - 1) * 25;\r\n const end = event * 25 - 1;\r\n this.pagination = { start: start, end: end };\r\n }\r\n\r\n onOperatorSelect(event,index){\r\n // this.aliasQuery.at(index).get('value').patchValue('');\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n 0\"\r\n >\r\n
  • \r\n {{ list.QueryName }}\r\n \r\n
  • \r\n
\r\n \r\n
  • \r\n \r\n 0\"\r\n >\r\n \r\n {{ list.QueryName }}\r\n \r\n
  • \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Select Fields
    \r\n
    \r\n

    (note: set from left to right)

    \r\n
    \r\n
    \r\n
    Table
    \r\n
    Field
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    Where
    \r\n
    \r\n

    (note: set from left to right) To cancel a loading query, click cancel button or refresh this page.

    \r\n
    \r\n
    \r\n
    And / Or
    \r\n
    Field
    \r\n
    Operator
    \r\n
    Value
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n \r\n Save My Query\r\n \r\n \r\n Save Shared Query\r\n \r\n \r\n Export Excel/CSV\r\n \r\n \r\n Save as Copy\r\n \r\n \r\n Cancel\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n\r\n
    0; else resultsUnnamedQuery\">Query data stats for {{queryName}}: {{queryRowsCountMessage}}
    \r\n \r\n
    0; else resultsNotFound\">Query data stats: {{queryRowsCountMessage}}
    \r\n
    \r\n \r\n
    Please select at least one field for the query! Where clause is required for a valid query.
    \r\n
    \r\n
    0; else elseSection\">\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    My Query

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    Shared Query

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    Save as Copy

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n"],"mappings":"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","names":["CsvConfigConsts","ExportToCsv","DataService"],"x_google_ignoreList":[0,1]}