@xuda.io/runtime-bundle 1.0.1366 → 1.0.1368

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const build_filter=async function(SESSION_ID,dataSourceSession,v,_ds){let file_ret2=await _this.func.utils.FILES_OBJ.get(SESSION_ID,_ds._dataSourceTableId);if(!file_ret2){_this.func.utils.debug_report(SESSION_ID,"datasource build query","Table reference not exist","E");return}let view_ret=await _this.func.utils.VIEWS_OBJ.get(SESSION_ID,_ds.args.prog_id);v.dataSourceIndexId=view_ret.progDataSource.dataSourceIndexId;v.dataSourceIndexIdExp=view_ret.progDataSource.dataSourceIndexIdExp;if(v.dataSourceIndexIdExp){let ret_dataSourceIndexIdExp=await _this.func.expression.get(SESSION_ID,v.dataSourceIndexIdExp,dataSourceSession,"index",_ds.args.rowIdP);if(ret_dataSourceIndexIdExp.result){v.dataSourceIndexId=ret_dataSourceIndexIdExp.result}if(!v.dataSourceIndexId){_this.func.utils.debug_report(SESSION_ID,"BUILD FILTER QUERY","Index expression return empty result","W")}v.dataSourceIndexesObj=view_ret.progDataSource.dataSourceIndexesObj;const index_obj=_this.func.common.find_item_by_key_root(file_ret2.tableIndexes,"id",v.dataSourceIndexId);if(!index_obj){return _this.func.utils.debug_report(SESSION_ID,"BUILD FILTER QUERY","Index not found in table: "+_ds._dataSourceTableId,"W")}if(!v.dataSourceIndexesObj?.[v.dataSourceIndexId]){_this.func.utils.debug_report(SESSION_ID,"BUILD FILTER QUERY","Index not found","W")}}var filter_from={};var filter_to={};let ret=await _this.func.utils.VIEWS_OBJ.get(SESSION_ID,_ds.args.prog_id);var sortOrder=ret.progDataSource.dataSourceSort;var sortOrderTypeExp=ret.progDataSource.dataSourceSortExp;if(_ds.sortOrder){sortOrder=_ds.sortOrder}if(_ds.sortOrderTypeExp){sortOrderTypeExp=_ds.sortOrderTypeExp}v.sortOrder=sortOrder;v.sortOrderTypeExp=sortOrderTypeExp;if(sortOrderTypeExp){var sort_orderExp=await _this.func.expression.get(SESSION_ID,v.sortOrderTypeExp,dataSourceSession,"sortorder",_ds.args.rowIdP);if(sort_orderExp.result){v.sortOrder=sort_orderExp.result;sortOrder=v.sortOrder}}let file_ret=await _this.func.utils.FILES_OBJ.get(SESSION_ID,_ds._dataSourceTableId);if(v.dataSourceIndexId){_ds.filter_from={};_ds.filter_to={};_ds.locate_from={};_ds.locate_to={};var locate_exist;var locate_error;if(v.viewIndex){for await(const[keySegment,valSegment]of Object.entries(v.viewIndex[v.dataSourceIndexId])){var fieldId=keySegment;if(!_this.func.common.find_item_by_key(file_ret.tableFields,"field_id",fieldId)){_this.func.utils.debug_report(SESSION_ID,"datasource build query",`Wrong index fields for ${fieldId} at field range ${v.viewSourceDesc}`,"E",null,_ds);break}var fieldProp=_this.func.common.find_item_by_key(file_ret.tableFields,"field_id",fieldId);var fieldType=fieldProp.props.fieldType;var fieldValFrom=valSegment.from;var fieldValTo=valSegment.to;const get_val=async function(valP,actionP,typeP){var ret={};ret.result=valP;ret.fields={};ret.fields[fieldId]=valP;if(!ret.result){ret.result=0;if(fieldType!=="number"){ret.result="";ret.fields[fieldId]=ret.result}}else{if(fieldType==="number"){if(!valP.includes("@")){if(typeof valP==="boolean"){ret.result=valP?1:0}else{ret.result=Number(valP)}ret.fields[fieldId]=ret.result}}else{if(!valP.includes("@")){ret.result=valP;ret.fields[fieldId]=ret.result}}ret=await _this.func.expression.get(SESSION_ID,ret.result,dataSourceSession,"query",_ds.args.rowIdP)}_this.func.utils.debug.log(SESSION_ID,_ds.args.prog_id+"_"+valSegment.id,{module:v.viewModule,action:actionP,prop:typeP,details:ret.result,result:ret.result,error:ret.error,warning:ret.warning,source:v.viewSourceDesc,fields:ret.fields,type:"query",prog_id:_ds.args.prog_id,dsSession:dataSourceSession});return ret};var value_from=await get_val(fieldValFrom,"range","from");var value_to=await get_val(fieldValTo,"range","to");v.segFrom.push(value_from.result);v.segTo.push(value_to.result);var add_filters_to_datasource=function(objP,typeP){for(let[key,val]of Object.entries(objP.fields)){if(!val)val=null;_ds[typeP][key]=val}};add_filters_to_datasource(value_from,"filter_from");add_filters_to_datasource(value_to,"filter_to");filter_from[fieldId]=value_from.result;filter_to[fieldId]=value_to.result;if(_ds.tree_obj.menuType==="component"){v.segLocateFrom[keySegment]=v.segFrom[keySegment];v.segLocateTo[keySegment]=v.segTo[keySegment];v.fieldLocateValFrom=valSegment.locate_from;v.fieldLocateValTo=valSegment.locate_to;if(valSegment.locate_from||valSegment.locate_to)locate_exist=true;var value_from_locate=await get_val(v.fieldLocateValFrom,"locate","from");var value_to_locate=await get_val(v.fieldLocateValTo,"locate","to");v.segLocateFrom[keySegment]=value_from_locate.result;v.segLocateTo[keySegment]=value_to_locate.result;add_filters_to_datasource(value_from_locate,"locate_from");add_filters_to_datasource(value_to_locate,"locate_to")}}}const query_string_helper=function(fileIdP,indexIdP,segFromP,segToP,sortOrderP,filter_from,filter_to){var query={};var from=[fileIdP,indexIdP,segFromP];var to=[fileIdP,indexIdP,segToP];query.desc=sortOrderP==="des";query.view="db_index";query.table_id=fileIdP;query.indexId=indexIdP;if(sortOrderP==="des"){query.startkey=to;query.endkey=from}else{query.startkey=from;query.endkey=to}query.filter_from=filter_from;query.filter_to=filter_to;query.sortOrder=sortOrderP;return query};{v.couchView=query_string_helper(_ds._dataSourceTableId,v.dataSourceIndexId,v.segFrom,v.segTo,sortOrder,filter_from,filter_to)}if(_ds.tree_obj.menuType==="component"&&locate_exist&&!locate_error){v.locateQuery=query_string_helper(_ds._dataSourceTableId,v.dataSourceIndexId,v.segLocateFrom,v.segLocateTo,sortOrder,_ds.locate_from,_ds.locate_to)}}else{v.couchView={view:"db_index_all",table_id:_ds._dataSourceTableId}}};export const process_view_dataset=async function(SESSION_ID,dataSourceSession,_ds){const tree_obj=await _this.func.utils.TREE_OBJ.get(SESSION_ID,_ds.prog_id);var rows_count=_ds?.v.raw_data?.rows?.length||0;var args=_ds.args;const finish_dataset=async function(){_ds.rows_found=rows_count;if(tree_obj.menuType==="get_data"&&rows_count&&await _this.func.datasource.get_view_events_count(SESSION_ID,dataSourceSession,"after_record")>0){await _this.func.datasource.execute_view_events(SESSION_ID,dataSourceSession,"after_record")}return _this.func.datasource.callback(SESSION_ID,dataSourceSession,args.dataSourceNoP,args.rowIdP,args.jobNoP,null,_ds.nodeId)};const iterate_rows=async function(){for await(const[key,raw_data_row]of Object.entries(_ds.v.raw_data.rows)){_ds.currentRecordId=raw_data_row.id;await _this.func.datasource.render_fields_dataset(SESSION_ID,dataSourceSession,raw_data_row);break}return await finish_dataset()};if(rows_count){return await iterate_rows()}_ds.currentRecordId="dataset";_ds.set_mode="C";await _this.func.datasource.render_fields_dataset(SESSION_ID,dataSourceSession);await _this.func.events.validate(SESSION_ID,"record_not_found",dataSourceSession);_ds.record_not_found=true;return await finish_dataset()};export const set_dataset_key_data=function(SESSION_ID,dataSourceSession,valP){var _ds=_this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];var v=_ds.v;v.udfData=valP.value.udfData;var keyData={_id:valP.value._id,_rev:valP.value._rev,table_id:_ds._dataSourceTableId};_ds.key=keyData};export const get_locate_from_db=async function(SESSION_ID,dataSourceSession){var _ds=_this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];var v=_ds.v;if(!v.locateQuery){return}const json=await _this.func.db.get_query(SESSION_ID,_ds._dataSourceTableId,v.locateQuery,dataSourceSession,v.viewSourceDesc,"locate record");var rows=json.rows.length;if(!rows){return await _this.func.events.validate(SESSION_ID,"locate_not_found",dataSourceSession)}_ds.locatedRecordId=json.rows[0].id;return};export const find_fieldId_in_index=function(SESSION_ID,dataSourceSession,fieldId){var _ds=_this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];var v=_ds.v;var ret;_.forEach(v.viewIndex,function(val,key){if(val.data[0]===fieldId){ret=key;return false}});return ret};export const dataset_save_before_exit=async function(SESSION_ID,dataSourceSession,reEnterP){var exit_event_count=0;if(!reEnterP){exit_event_count=await _this.func.datasource.get_view_events_count(SESSION_ID,dataSourceSession,"on_exit")}var _ds=_this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];var v=_ds.v;if(exit_event_count){await _this.func.datasource.execute_view_events(SESSION_ID,dataSourceSession,"on_exit");if(v?.screenInfo?.properties?.menuType==="set_data"&&_.size(v.jsonP.rows)){return await _this.func.db.save_data(SESSION_ID,dataSourceSession)}}return};
1
+ const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const build_filter=async function(SESSION_ID,dataSourceSession,v,_ds){let file_ret2=await _this.func.utils.FILES_OBJ.get(SESSION_ID,_ds._dataSourceTableId);if(!file_ret2){_this.func.utils.debug_report(SESSION_ID,"datasource build query","Table reference not exist","E");return}let view_ret=await _this.func.utils.VIEWS_OBJ.get(SESSION_ID,_ds.args.prog_id);v.dataSourceIndexId=view_ret.progDataSource.dataSourceIndexId;v.dataSourceIndexIdExp=view_ret.progDataSource.dataSourceIndexIdExp;if(v.dataSourceIndexIdExp){let ret_dataSourceIndexIdExp=await _this.func.expression.get(SESSION_ID,v.dataSourceIndexIdExp,dataSourceSession,"index",_ds.args.rowIdP);if(ret_dataSourceIndexIdExp.result){v.dataSourceIndexId=ret_dataSourceIndexIdExp.result}if(!v.dataSourceIndexId){_this.func.utils.debug_report(SESSION_ID,"BUILD FILTER QUERY","Index expression return empty result","W")}v.dataSourceIndexesObj=view_ret.progDataSource.dataSourceIndexesObj;const index_obj=_this.func.common.find_item_by_key_root(file_ret2.tableIndexes,"id",v.dataSourceIndexId);if(!index_obj){return _this.func.utils.debug_report(SESSION_ID,"BUILD FILTER QUERY","Index not found in table: "+_ds._dataSourceTableId,"W")}if(!v.dataSourceIndexesObj?.[v.dataSourceIndexId]){_this.func.utils.debug_report(SESSION_ID,"BUILD FILTER QUERY","Index not found","W")}}var filter_from={};var filter_to={};let ret=await _this.func.utils.VIEWS_OBJ.get(SESSION_ID,_ds.args.prog_id);var sortOrder=ret.progDataSource.dataSourceSort;var sortOrderTypeExp=ret.progDataSource.dataSourceSortExp;if(_ds.sortOrder){sortOrder=_ds.sortOrder}if(_ds.sortOrderTypeExp){sortOrderTypeExp=_ds.sortOrderTypeExp}v.sortOrder=sortOrder;v.sortOrderTypeExp=sortOrderTypeExp;if(sortOrderTypeExp){var sort_orderExp=await _this.func.expression.get(SESSION_ID,v.sortOrderTypeExp,dataSourceSession,"sortorder",_ds.args.rowIdP);if(sort_orderExp.result){v.sortOrder=sort_orderExp.result;sortOrder=v.sortOrder}}let file_ret=await _this.func.utils.FILES_OBJ.get(SESSION_ID,_ds._dataSourceTableId);if(v.dataSourceIndexId){_ds.filter_from={};_ds.filter_to={};_ds.locate_from={};_ds.locate_to={};var locate_exist;var locate_error;v.segFrom=[];v.segTo=[];if(v.viewIndex){for await(const[keySegment,valSegment]of Object.entries(v.viewIndex[v.dataSourceIndexId])){var fieldId=keySegment;if(!_this.func.common.find_item_by_key(file_ret.tableFields,"field_id",fieldId)){_this.func.utils.debug_report(SESSION_ID,"datasource build query",`Wrong index fields for ${fieldId} at field range ${v.viewSourceDesc}`,"E",null,_ds);break}var fieldProp=_this.func.common.find_item_by_key(file_ret.tableFields,"field_id",fieldId);var fieldType=fieldProp.props.fieldType;var fieldValFrom=valSegment.from;var fieldValTo=valSegment.to;const get_val=async function(valP,actionP,typeP){var ret={};ret.result=valP;ret.fields={};ret.fields[fieldId]=valP;if(!ret.result){ret.result=0;if(fieldType!=="number"){ret.result="";ret.fields[fieldId]=ret.result}}else{if(fieldType==="number"){if(!valP.includes("@")){if(typeof valP==="boolean"){ret.result=valP?1:0}else{ret.result=Number(valP)}ret.fields[fieldId]=ret.result}}else{if(!valP.includes("@")){ret.result=valP;ret.fields[fieldId]=ret.result}}ret=await _this.func.expression.get(SESSION_ID,ret.result,dataSourceSession,"query",_ds.args.rowIdP)}_this.func.utils.debug.log(SESSION_ID,_ds.args.prog_id+"_"+valSegment.id,{module:v.viewModule,action:actionP,prop:typeP,details:ret.result,result:ret.result,error:ret.error,warning:ret.warning,source:v.viewSourceDesc,fields:ret.fields,type:"query",prog_id:_ds.args.prog_id,dsSession:dataSourceSession});return ret};var value_from=await get_val(fieldValFrom,"range","from");var value_to=await get_val(fieldValTo,"range","to");v.segFrom.push(value_from.result);v.segTo.push(value_to.result);var add_filters_to_datasource=function(objP,typeP){for(let[key,val]of Object.entries(objP.fields)){if(!val)val=null;_ds[typeP][key]=val}};add_filters_to_datasource(value_from,"filter_from");add_filters_to_datasource(value_to,"filter_to");filter_from[fieldId]=value_from.result;filter_to[fieldId]=value_to.result;if(_ds.tree_obj.menuType==="component"){v.segLocateFrom[keySegment]=v.segFrom[keySegment];v.segLocateTo[keySegment]=v.segTo[keySegment];v.fieldLocateValFrom=valSegment.locate_from;v.fieldLocateValTo=valSegment.locate_to;if(valSegment.locate_from||valSegment.locate_to)locate_exist=true;var value_from_locate=await get_val(v.fieldLocateValFrom,"locate","from");var value_to_locate=await get_val(v.fieldLocateValTo,"locate","to");v.segLocateFrom[keySegment]=value_from_locate.result;v.segLocateTo[keySegment]=value_to_locate.result;add_filters_to_datasource(value_from_locate,"locate_from");add_filters_to_datasource(value_to_locate,"locate_to")}}}const query_string_helper=function(fileIdP,indexIdP,segFromP,segToP,sortOrderP,filter_from,filter_to){var query={};var from=[fileIdP,indexIdP,segFromP];var to=[fileIdP,indexIdP,segToP];query.desc=sortOrderP==="des";query.view="db_index";query.table_id=fileIdP;query.indexId=indexIdP;if(sortOrderP==="des"){query.startkey=to;query.endkey=from}else{query.startkey=from;query.endkey=to}query.filter_from=filter_from;query.filter_to=filter_to;query.sortOrder=sortOrderP;return query};{v.couchView=query_string_helper(_ds._dataSourceTableId,v.dataSourceIndexId,v.segFrom,v.segTo,sortOrder,filter_from,filter_to)}if(_ds.tree_obj.menuType==="component"&&locate_exist&&!locate_error){v.locateQuery=query_string_helper(_ds._dataSourceTableId,v.dataSourceIndexId,v.segLocateFrom,v.segLocateTo,sortOrder,_ds.locate_from,_ds.locate_to)}}else{v.couchView={view:"db_index_all",table_id:_ds._dataSourceTableId}}};export const process_view_dataset=async function(SESSION_ID,dataSourceSession,_ds){const tree_obj=await _this.func.utils.TREE_OBJ.get(SESSION_ID,_ds.prog_id);var rows_count=_ds?.v.raw_data?.rows?.length||0;var args=_ds.args;const finish_dataset=async function(){_ds.rows_found=rows_count;if(tree_obj.menuType==="get_data"&&rows_count&&await _this.func.datasource.get_view_events_count(SESSION_ID,dataSourceSession,"after_record")>0){await _this.func.datasource.execute_view_events(SESSION_ID,dataSourceSession,"after_record")}return _this.func.datasource.callback(SESSION_ID,dataSourceSession,args.dataSourceNoP,args.rowIdP,args.jobNoP,null,_ds.nodeId)};const iterate_rows=async function(){for await(const[key,raw_data_row]of Object.entries(_ds.v.raw_data.rows)){_ds.currentRecordId=raw_data_row.id;await _this.func.datasource.render_fields_dataset(SESSION_ID,dataSourceSession,raw_data_row);break}return await finish_dataset()};if(rows_count){return await iterate_rows()}_ds.currentRecordId="dataset";_ds.set_mode="C";await _this.func.datasource.render_fields_dataset(SESSION_ID,dataSourceSession);await _this.func.events.validate(SESSION_ID,"record_not_found",dataSourceSession);_ds.record_not_found=true;return await finish_dataset()};export const set_dataset_key_data=function(SESSION_ID,dataSourceSession,valP){var _ds=_this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];var v=_ds.v;v.udfData=valP.value.udfData;var keyData={_id:valP.value._id,_rev:valP.value._rev,table_id:_ds._dataSourceTableId};_ds.key=keyData};export const get_locate_from_db=async function(SESSION_ID,dataSourceSession){var _ds=_this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];var v=_ds.v;if(!v.locateQuery){return}const json=await _this.func.db.get_query(SESSION_ID,_ds._dataSourceTableId,v.locateQuery,dataSourceSession,v.viewSourceDesc,"locate record");var rows=json.rows.length;if(!rows){return await _this.func.events.validate(SESSION_ID,"locate_not_found",dataSourceSession)}_ds.locatedRecordId=json.rows[0].id;return};export const find_fieldId_in_index=function(SESSION_ID,dataSourceSession,fieldId){var _ds=_this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];var v=_ds.v;var ret;_.forEach(v.viewIndex,function(val,key){if(val.data[0]===fieldId){ret=key;return false}});return ret};export const dataset_save_before_exit=async function(SESSION_ID,dataSourceSession,reEnterP){var exit_event_count=0;if(!reEnterP){exit_event_count=await _this.func.datasource.get_view_events_count(SESSION_ID,dataSourceSession,"on_exit")}var _ds=_this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];var v=_ds.v;if(exit_event_count){await _this.func.datasource.execute_view_events(SESSION_ID,dataSourceSession,"on_exit");if(v?.screenInfo?.properties?.menuType==="set_data"&&_.size(v.jsonP.rows)){return await _this.func.db.save_data(SESSION_ID,dataSourceSession)}}return};
@@ -10,77 +10,36 @@ export const init_module = (e) => {
10
10
  _this.IS_PROCESS_SERVER = e.IS_PROCESS_SERVER;
11
11
  };
12
12
 
13
- export const build_filter = async function (
14
- SESSION_ID,
15
- dataSourceSession,
16
- v,
17
- _ds
18
- ) {
19
- let file_ret2 = await _this.func.utils.FILES_OBJ.get(
20
- SESSION_ID,
21
- _ds._dataSourceTableId
22
- );
13
+ export const build_filter = async function (SESSION_ID, dataSourceSession, v, _ds) {
14
+ let file_ret2 = await _this.func.utils.FILES_OBJ.get(SESSION_ID, _ds._dataSourceTableId);
23
15
  if (!file_ret2) {
24
- _this.func.utils.debug_report(
25
- SESSION_ID,
26
- "datasource build query",
27
- "Table reference not exist",
28
- "E"
29
- );
16
+ _this.func.utils.debug_report(SESSION_ID, 'datasource build query', 'Table reference not exist', 'E');
30
17
  return;
31
18
  }
32
- let view_ret = await _this.func.utils.VIEWS_OBJ.get(
33
- SESSION_ID,
34
- _ds.args.prog_id
35
- );
19
+ let view_ret = await _this.func.utils.VIEWS_OBJ.get(SESSION_ID, _ds.args.prog_id);
36
20
  v.dataSourceIndexId = view_ret.progDataSource.dataSourceIndexId; // get index id
37
21
  v.dataSourceIndexIdExp = view_ret.progDataSource.dataSourceIndexIdExp; // get index exp
38
22
  if (v.dataSourceIndexIdExp) {
39
- let ret_dataSourceIndexIdExp = await _this.func.expression.get(
40
- SESSION_ID,
41
- v.dataSourceIndexIdExp,
42
- dataSourceSession,
43
- "index",
44
- _ds.args.rowIdP
45
- );
23
+ let ret_dataSourceIndexIdExp = await _this.func.expression.get(SESSION_ID, v.dataSourceIndexIdExp, dataSourceSession, 'index', _ds.args.rowIdP);
46
24
  if (ret_dataSourceIndexIdExp.result) {
47
25
  v.dataSourceIndexId = ret_dataSourceIndexIdExp.result;
48
26
  }
49
27
  if (!v.dataSourceIndexId) {
50
28
  // issue alert expression returned empty value
51
- _this.func.utils.debug_report(
52
- SESSION_ID,
53
- "BUILD FILTER QUERY",
54
- "Index expression return empty result",
55
- "W"
56
- );
29
+ _this.func.utils.debug_report(SESSION_ID, 'BUILD FILTER QUERY', 'Index expression return empty result', 'W');
57
30
  }
58
31
  v.dataSourceIndexesObj = view_ret.progDataSource.dataSourceIndexesObj;
59
32
 
60
- const index_obj = _this.func.common.find_item_by_key_root(
61
- file_ret2.tableIndexes,
62
- "id",
63
- v.dataSourceIndexId
64
- );
33
+ const index_obj = _this.func.common.find_item_by_key_root(file_ret2.tableIndexes, 'id', v.dataSourceIndexId);
65
34
 
66
35
  if (!index_obj) {
67
- return _this.func.utils.debug_report(
68
- SESSION_ID,
69
- "BUILD FILTER QUERY",
70
- "Index not found in table: " + _ds._dataSourceTableId,
71
- "W"
72
- );
36
+ return _this.func.utils.debug_report(SESSION_ID, 'BUILD FILTER QUERY', 'Index not found in table: ' + _ds._dataSourceTableId, 'W');
73
37
  }
74
38
 
75
39
  // var index_keys = index_obj.data.keys;
76
40
 
77
41
  if (!v.dataSourceIndexesObj?.[v.dataSourceIndexId]) {
78
- _this.func.utils.debug_report(
79
- SESSION_ID,
80
- "BUILD FILTER QUERY",
81
- "Index not found",
82
- "W"
83
- );
42
+ _this.func.utils.debug_report(SESSION_ID, 'BUILD FILTER QUERY', 'Index not found', 'W');
84
43
  }
85
44
 
86
45
  // v.viewIndex = {};
@@ -110,22 +69,13 @@ export const build_filter = async function (
110
69
  v.sortOrder = sortOrder;
111
70
  v.sortOrderTypeExp = sortOrderTypeExp;
112
71
  if (sortOrderTypeExp) {
113
- var sort_orderExp = await _this.func.expression.get(
114
- SESSION_ID,
115
- v.sortOrderTypeExp,
116
- dataSourceSession,
117
- "sortorder",
118
- _ds.args.rowIdP
119
- );
72
+ var sort_orderExp = await _this.func.expression.get(SESSION_ID, v.sortOrderTypeExp, dataSourceSession, 'sortorder', _ds.args.rowIdP);
120
73
  if (sort_orderExp.result) {
121
74
  v.sortOrder = sort_orderExp.result;
122
75
  sortOrder = v.sortOrder;
123
76
  }
124
77
  }
125
- let file_ret = await _this.func.utils.FILES_OBJ.get(
126
- SESSION_ID,
127
- _ds._dataSourceTableId
128
- );
78
+ let file_ret = await _this.func.utils.FILES_OBJ.get(SESSION_ID, _ds._dataSourceTableId);
129
79
 
130
80
  if (v.dataSourceIndexId) {
131
81
  // index definition exist
@@ -135,36 +85,19 @@ export const build_filter = async function (
135
85
  _ds.locate_to = {};
136
86
  var locate_exist;
137
87
  var locate_error;
88
+ v.segFrom = [];
89
+ v.segTo = [];
138
90
  if (v.viewIndex) {
139
- for await (const [keySegment, valSegment] of Object.entries(
140
- v.viewIndex[v.dataSourceIndexId]
141
- )) {
91
+ for await (const [keySegment, valSegment] of Object.entries(v.viewIndex[v.dataSourceIndexId])) {
142
92
  // run on segments rows
143
93
  var fieldId = keySegment; // key segment
144
94
 
145
- if (
146
- !_this.func.common.find_item_by_key(
147
- file_ret.tableFields,
148
- "field_id",
149
- fieldId
150
- )
151
- ) {
152
- _this.func.utils.debug_report(
153
- SESSION_ID,
154
- "datasource build query",
155
- `Wrong index fields for ${fieldId} at field range ${v.viewSourceDesc}`,
156
- "E",
157
- null,
158
- _ds
159
- );
95
+ if (!_this.func.common.find_item_by_key(file_ret.tableFields, 'field_id', fieldId)) {
96
+ _this.func.utils.debug_report(SESSION_ID, 'datasource build query', `Wrong index fields for ${fieldId} at field range ${v.viewSourceDesc}`, 'E', null, _ds);
160
97
  break;
161
98
  }
162
99
 
163
- var fieldProp = _this.func.common.find_item_by_key(
164
- file_ret.tableFields,
165
- "field_id",
166
- fieldId
167
- );
100
+ var fieldProp = _this.func.common.find_item_by_key(file_ret.tableFields, 'field_id', fieldId);
168
101
 
169
102
  var fieldType = fieldProp.props.fieldType;
170
103
  var fieldValFrom = valSegment.from; // key val or fieldID from
@@ -176,15 +109,15 @@ export const build_filter = async function (
176
109
  ret.fields[fieldId] = valP;
177
110
  if (!ret.result) {
178
111
  ret.result = 0;
179
- if (fieldType !== "number") {
112
+ if (fieldType !== 'number') {
180
113
  // ret.result = '""'; // removed Aug 27 2024
181
- ret.result = "";
114
+ ret.result = '';
182
115
  ret.fields[fieldId] = ret.result;
183
116
  }
184
117
  } else {
185
- if (fieldType === "number") {
186
- if (!valP.includes("@")) {
187
- if (typeof valP === "boolean") {
118
+ if (fieldType === 'number') {
119
+ if (!valP.includes('@')) {
120
+ if (typeof valP === 'boolean') {
188
121
  ret.result = valP ? 1 : 0;
189
122
  } else {
190
123
  ret.result = Number(valP);
@@ -193,41 +126,31 @@ export const build_filter = async function (
193
126
  ret.fields[fieldId] = ret.result;
194
127
  }
195
128
  } else {
196
- if (!valP.includes("@")) {
129
+ if (!valP.includes('@')) {
197
130
  ret.result = valP;
198
131
  ret.fields[fieldId] = ret.result;
199
132
  }
200
133
  }
201
- ret = await _this.func.expression.get(
202
- SESSION_ID,
203
- ret.result,
204
- dataSourceSession,
205
- "query",
206
- _ds.args.rowIdP
207
- );
134
+ ret = await _this.func.expression.get(SESSION_ID, ret.result, dataSourceSession, 'query', _ds.args.rowIdP);
208
135
  }
209
- _this.func.utils.debug.log(
210
- SESSION_ID,
211
- _ds.args.prog_id + "_" + valSegment.id,
212
- {
213
- module: v.viewModule,
214
- action: actionP,
215
- prop: typeP,
216
- details: ret.result,
217
- result: ret.result,
218
- error: ret.error,
219
- warning: ret.warning,
220
- source: v.viewSourceDesc,
221
- fields: ret.fields,
222
- type: "query",
223
- prog_id: _ds.args.prog_id,
224
- dsSession: dataSourceSession,
225
- }
226
- );
136
+ _this.func.utils.debug.log(SESSION_ID, _ds.args.prog_id + '_' + valSegment.id, {
137
+ module: v.viewModule,
138
+ action: actionP,
139
+ prop: typeP,
140
+ details: ret.result,
141
+ result: ret.result,
142
+ error: ret.error,
143
+ warning: ret.warning,
144
+ source: v.viewSourceDesc,
145
+ fields: ret.fields,
146
+ type: 'query',
147
+ prog_id: _ds.args.prog_id,
148
+ dsSession: dataSourceSession,
149
+ });
227
150
  return ret;
228
151
  };
229
- var value_from = await get_val(fieldValFrom, "range", "from");
230
- var value_to = await get_val(fieldValTo, "range", "to");
152
+ var value_from = await get_val(fieldValFrom, 'range', 'from');
153
+ var value_to = await get_val(fieldValTo, 'range', 'to');
231
154
  v.segFrom.push(value_from.result);
232
155
  v.segTo.push(value_to.result);
233
156
  var add_filters_to_datasource = function (objP, typeP) {
@@ -237,54 +160,37 @@ export const build_filter = async function (
237
160
  _ds[typeP][key] = val; //"@" +
238
161
  }
239
162
  };
240
- add_filters_to_datasource(value_from, "filter_from");
241
- add_filters_to_datasource(value_to, "filter_to");
163
+ add_filters_to_datasource(value_from, 'filter_from');
164
+ add_filters_to_datasource(value_to, 'filter_to');
242
165
  filter_from[fieldId] = value_from.result;
243
166
  filter_to[fieldId] = value_to.result;
244
- if (_ds.tree_obj.menuType === "component") {
167
+ if (_ds.tree_obj.menuType === 'component') {
245
168
  // locate
246
169
  v.segLocateFrom[keySegment] = v.segFrom[keySegment]; // put defaults from range
247
170
  v.segLocateTo[keySegment] = v.segTo[keySegment]; // put defaults from range
248
171
  // linkTypeLocate = valSegment.data[6]; // value/field
249
172
  v.fieldLocateValFrom = valSegment.locate_from; // key val or fieldID from
250
173
  v.fieldLocateValTo = valSegment.locate_to; // key val or fieldID to
251
- if (valSegment.locate_from || valSegment.locate_to)
252
- locate_exist = true;
253
- var value_from_locate = await get_val(
254
- v.fieldLocateValFrom,
255
- "locate",
256
- "from"
257
- );
258
- var value_to_locate = await get_val(
259
- v.fieldLocateValTo,
260
- "locate",
261
- "to"
262
- );
174
+ if (valSegment.locate_from || valSegment.locate_to) locate_exist = true;
175
+ var value_from_locate = await get_val(v.fieldLocateValFrom, 'locate', 'from');
176
+ var value_to_locate = await get_val(v.fieldLocateValTo, 'locate', 'to');
263
177
  //
264
178
  v.segLocateFrom[keySegment] = value_from_locate.result;
265
179
  v.segLocateTo[keySegment] = value_to_locate.result;
266
- add_filters_to_datasource(value_from_locate, "locate_from");
267
- add_filters_to_datasource(value_to_locate, "locate_to");
180
+ add_filters_to_datasource(value_from_locate, 'locate_from');
181
+ add_filters_to_datasource(value_to_locate, 'locate_to');
268
182
  }
269
183
  }
270
184
  }
271
- const query_string_helper = function (
272
- fileIdP,
273
- indexIdP,
274
- segFromP,
275
- segToP,
276
- sortOrderP,
277
- filter_from,
278
- filter_to
279
- ) {
185
+ const query_string_helper = function (fileIdP, indexIdP, segFromP, segToP, sortOrderP, filter_from, filter_to) {
280
186
  var query = {};
281
187
  var from = [fileIdP, indexIdP, segFromP];
282
188
  var to = [fileIdP, indexIdP, segToP];
283
- query.desc = sortOrderP === "des";
284
- query.view = "db_index";
189
+ query.desc = sortOrderP === 'des';
190
+ query.view = 'db_index';
285
191
  query.table_id = fileIdP;
286
192
  query.indexId = indexIdP;
287
- if (sortOrderP === "des") {
193
+ if (sortOrderP === 'des') {
288
194
  query.startkey = to;
289
195
  query.endkey = from;
290
196
  } else {
@@ -299,46 +205,22 @@ export const build_filter = async function (
299
205
 
300
206
  {
301
207
  // regular filter
302
- v.couchView = query_string_helper(
303
- _ds._dataSourceTableId,
304
- v.dataSourceIndexId,
305
- v.segFrom,
306
- v.segTo,
307
- sortOrder,
308
- filter_from,
309
- filter_to
310
- );
208
+ v.couchView = query_string_helper(_ds._dataSourceTableId, v.dataSourceIndexId, v.segFrom, v.segTo, sortOrder, filter_from, filter_to);
311
209
  }
312
210
  // locate
313
- if (
314
- _ds.tree_obj.menuType === "component" &&
315
- locate_exist &&
316
- !locate_error
317
- ) {
318
- v.locateQuery = query_string_helper(
319
- _ds._dataSourceTableId,
320
- v.dataSourceIndexId,
321
- v.segLocateFrom,
322
- v.segLocateTo,
323
- sortOrder,
324
- _ds.locate_from,
325
- _ds.locate_to
326
- );
211
+ if (_ds.tree_obj.menuType === 'component' && locate_exist && !locate_error) {
212
+ v.locateQuery = query_string_helper(_ds._dataSourceTableId, v.dataSourceIndexId, v.segLocateFrom, v.segLocateTo, sortOrder, _ds.locate_from, _ds.locate_to);
327
213
  }
328
214
  } else {
329
215
  // index definition missing
330
216
  v.couchView = {
331
- view: "db_index_all",
217
+ view: 'db_index_all',
332
218
  table_id: _ds._dataSourceTableId,
333
219
  };
334
220
  }
335
221
  };
336
222
 
337
- export const process_view_dataset = async function (
338
- SESSION_ID,
339
- dataSourceSession,
340
- _ds
341
- ) {
223
+ export const process_view_dataset = async function (SESSION_ID, dataSourceSession, _ds) {
342
224
  const tree_obj = await _this.func.utils.TREE_OBJ.get(SESSION_ID, _ds.prog_id);
343
225
  var rows_count = _ds?.v.raw_data?.rows?.length || 0;
344
226
  // var skip;
@@ -346,42 +228,16 @@ export const process_view_dataset = async function (
346
228
  const finish_dataset = async function () {
347
229
  _ds.rows_found = rows_count;
348
230
  // new condition "rows" added to prevent after record if no rows found 2021 09 17
349
- if (
350
- tree_obj.menuType === "get_data" &&
351
- rows_count &&
352
- (await _this.func.datasource.get_view_events_count(
353
- SESSION_ID,
354
- dataSourceSession,
355
- "after_record"
356
- )) > 0
357
- ) {
358
- await _this.func.datasource.execute_view_events(
359
- SESSION_ID,
360
- dataSourceSession,
361
- "after_record"
362
- );
231
+ if (tree_obj.menuType === 'get_data' && rows_count && (await _this.func.datasource.get_view_events_count(SESSION_ID, dataSourceSession, 'after_record')) > 0) {
232
+ await _this.func.datasource.execute_view_events(SESSION_ID, dataSourceSession, 'after_record');
363
233
  }
364
- return _this.func.datasource.callback(
365
- SESSION_ID,
366
- dataSourceSession,
367
- args.dataSourceNoP,
368
- args.rowIdP,
369
- args.jobNoP,
370
- null,
371
- _ds.nodeId
372
- );
234
+ return _this.func.datasource.callback(SESSION_ID, dataSourceSession, args.dataSourceNoP, args.rowIdP, args.jobNoP, null, _ds.nodeId);
373
235
  };
374
236
  const iterate_rows = async function () {
375
237
  // _ds.currentRecordId = "dataset";
376
- for await (const [key, raw_data_row] of Object.entries(
377
- _ds.v.raw_data.rows
378
- )) {
238
+ for await (const [key, raw_data_row] of Object.entries(_ds.v.raw_data.rows)) {
379
239
  _ds.currentRecordId = raw_data_row.id;
380
- await _this.func.datasource.render_fields_dataset(
381
- SESSION_ID,
382
- dataSourceSession,
383
- raw_data_row
384
- );
240
+ await _this.func.datasource.render_fields_dataset(SESSION_ID, dataSourceSession, raw_data_row);
385
241
 
386
242
  break;
387
243
  }
@@ -394,26 +250,15 @@ export const process_view_dataset = async function (
394
250
 
395
251
  // Alert record not found
396
252
 
397
- _ds.currentRecordId = "dataset";
398
- _ds.set_mode = "C";
399
- await _this.func.datasource.render_fields_dataset(
400
- SESSION_ID,
401
- dataSourceSession
402
- );
403
- await _this.func.events.validate(
404
- SESSION_ID,
405
- "record_not_found",
406
- dataSourceSession
407
- );
253
+ _ds.currentRecordId = 'dataset';
254
+ _ds.set_mode = 'C';
255
+ await _this.func.datasource.render_fields_dataset(SESSION_ID, dataSourceSession);
256
+ await _this.func.events.validate(SESSION_ID, 'record_not_found', dataSourceSession);
408
257
  _ds.record_not_found = true;
409
258
  return await finish_dataset();
410
259
  };
411
260
 
412
- export const set_dataset_key_data = function (
413
- SESSION_ID,
414
- dataSourceSession,
415
- valP
416
- ) {
261
+ export const set_dataset_key_data = function (SESSION_ID, dataSourceSession, valP) {
417
262
  var _ds = _this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];
418
263
  var v = _ds.v;
419
264
  v.udfData = valP.value.udfData;
@@ -425,10 +270,7 @@ export const set_dataset_key_data = function (
425
270
  _ds.key = keyData;
426
271
  };
427
272
 
428
- export const get_locate_from_db = async function (
429
- SESSION_ID,
430
- dataSourceSession
431
- ) {
273
+ export const get_locate_from_db = async function (SESSION_ID, dataSourceSession) {
432
274
  var _ds = _this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];
433
275
  var v = _ds.v;
434
276
 
@@ -436,32 +278,17 @@ export const get_locate_from_db = async function (
436
278
  return;
437
279
  }
438
280
  // from DB
439
- const json = await _this.func.db.get_query(
440
- SESSION_ID,
441
- _ds._dataSourceTableId,
442
- v.locateQuery,
443
- dataSourceSession,
444
- v.viewSourceDesc,
445
- "locate record"
446
- );
281
+ const json = await _this.func.db.get_query(SESSION_ID, _ds._dataSourceTableId, v.locateQuery, dataSourceSession, v.viewSourceDesc, 'locate record');
447
282
  var rows = json.rows.length;
448
283
 
449
284
  if (!rows) {
450
- return await _this.func.events.validate(
451
- SESSION_ID,
452
- "locate_not_found",
453
- dataSourceSession
454
- );
285
+ return await _this.func.events.validate(SESSION_ID, 'locate_not_found', dataSourceSession);
455
286
  }
456
287
  _ds.locatedRecordId = json.rows[0].id;
457
288
  return;
458
289
  };
459
290
 
460
- export const find_fieldId_in_index = function (
461
- SESSION_ID,
462
- dataSourceSession,
463
- fieldId
464
- ) {
291
+ export const find_fieldId_in_index = function (SESSION_ID, dataSourceSession, fieldId) {
465
292
  var _ds = _this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];
466
293
  var v = _ds.v;
467
294
  var ret;
@@ -475,18 +302,10 @@ export const find_fieldId_in_index = function (
475
302
  return ret;
476
303
  };
477
304
 
478
- export const dataset_save_before_exit = async function (
479
- SESSION_ID,
480
- dataSourceSession,
481
- reEnterP
482
- ) {
305
+ export const dataset_save_before_exit = async function (SESSION_ID, dataSourceSession, reEnterP) {
483
306
  var exit_event_count = 0;
484
307
  if (!reEnterP) {
485
- exit_event_count = await _this.func.datasource.get_view_events_count(
486
- SESSION_ID,
487
- dataSourceSession,
488
- "on_exit"
489
- );
308
+ exit_event_count = await _this.func.datasource.get_view_events_count(SESSION_ID, dataSourceSession, 'on_exit');
490
309
  }
491
310
  var _ds = _this.SESSION_OBJ[SESSION_ID].DS_GLB[dataSourceSession];
492
311
  var v = _ds.v;
@@ -502,16 +321,9 @@ export const dataset_save_before_exit = async function (
502
321
  // }
503
322
  // };
504
323
  if (exit_event_count) {
505
- await _this.func.datasource.execute_view_events(
506
- SESSION_ID,
507
- dataSourceSession,
508
- "on_exit"
509
- );
324
+ await _this.func.datasource.execute_view_events(SESSION_ID, dataSourceSession, 'on_exit');
510
325
 
511
- if (
512
- v?.screenInfo?.properties?.menuType === "set_data" &&
513
- _.size(v.jsonP.rows)
514
- ) {
326
+ if (v?.screenInfo?.properties?.menuType === 'set_data' && _.size(v.jsonP.rows)) {
515
327
  return await _this.func.db.save_data(SESSION_ID, dataSourceSession);
516
328
  }
517
329
  }