@xuda.io/runtime-bundle 1.0.1365 → 1.0.1367
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.
- package/js/modules/xuda-datasource-db-adapter-module.min.mjs +1 -1
- package/js/modules/xuda-datasource-db-adapter-module.mjs +75 -263
- package/js/modules/xuda-studio-checker.min.mjs +1 -1
- package/js/modules/xuda-studio-checker.mjs +12 -2
- package/js/xuda-runtime-bundle.js +2 -2
- package/js/xuda-runtime-bundle.min.js +2 -2
- package/js/xuda-runtime-slim.js +2 -2
- package/js/xuda-runtime-slim.min.es.js +2 -2
- package/js/xuda-runtime-slim.min.js +2 -2
- package/js/xuda-server-bundle.min.mjs +1 -1
- package/js/xuda-server-bundle.mjs +1 -1
- package/js/xuda-worker-bundle.js +1 -1
- package/js/xuda-worker-bundle.min.js +1 -1
- package/js/xuda_common-bundle.js +1 -1
- package/js/xuda_common-bundle.min.js +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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 !==
|
|
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 ===
|
|
186
|
-
if (!valP.includes(
|
|
187
|
-
if (typeof valP ===
|
|
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
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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,
|
|
230
|
-
var value_to = await get_val(fieldValTo,
|
|
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,
|
|
241
|
-
add_filters_to_datasource(value_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 ===
|
|
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
|
-
|
|
253
|
-
var
|
|
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,
|
|
267
|
-
add_filters_to_datasource(value_to_locate,
|
|
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 ===
|
|
284
|
-
query.view =
|
|
189
|
+
query.desc = sortOrderP === 'des';
|
|
190
|
+
query.view = 'db_index';
|
|
285
191
|
query.table_id = fileIdP;
|
|
286
192
|
query.indexId = indexIdP;
|
|
287
|
-
if (sortOrderP ===
|
|
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.
|
|
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:
|
|
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
|
-
|
|
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 =
|
|
398
|
-
_ds.set_mode =
|
|
399
|
-
await _this.func.datasource.render_fields_dataset(
|
|
400
|
-
|
|
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
|
}
|