201 intermediate commit for state navigation

This commit is contained in:
2026-01-24 12:07:12 +03:00
parent d843620292
commit ee9331e6cd
11 changed files with 222 additions and 22 deletions
+27 -4
View File
@@ -36,7 +36,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<cfset this.instance_uid = "00000000-0000-0000-0000-000000000000"/><!--- *** костыль default=--->
<cfif structKeyExists(arguments.keys,"instanceOperationCfsParamUid")>
<cfset this.instance_operation_cfs_param_uid=arguments.keys.instanceOperationCfsParamUid/>
<cfset this.instance_operation_cfs_param_uid=arguments.keys.instanceOperationCfsParamUid/><!--- *** camelCase!!! --->
<cfquery name="local.qResolve">
select p.instance_operation_uid, o.instance_uid, p.svc_operation_cfs_param_id
from instance_operation_cfs_param p
@@ -274,7 +274,12 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
AND s.svc_operation_cfs_param = <cfqueryparam cfsqltype="cf_sql_varchar" value=#arguments.param#/>
</cfquery>
<cfif structKeyExists(arguments,"subparam")><!--- *** не изящно, но просто и понятно --->
<cfreturn deserializeJson(local.qCfsParam.param_value)[arguments.subparam]/>
<cfset var value = deserializeJson(local.qCfsParam.param_value)/>
<cfif isStruct(value) AND structKeyExists(value, arguments.subparam)>
<cfreturn value[arguments.subparam]/>
<cfelse>
<cfreturn ""/><!--- *** а надо выбросить 404 --->
</cfif>
<cfelse>
<cfreturn local.qCfsParam.param_value/>
</cfif>
@@ -628,6 +633,8 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
,sp.regex
,sp.sort
,sp.is_sensitive
,sp.depends_on_cfs_params
,sp.expression
--,sp.func
from svc_operation_cfs_subparam sp
where sp.svc_operation_cfs_param_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.qParam.svc_operation_cfs_param_id#"/>
@@ -649,6 +656,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<!--- формируем дескриптор --->
<cfset var mapDescriptor=structNew("linked")/>
<cfset var parser=createObject("component","lib.expression_parser")/>
<cfloop query="local.qSubparam">
<cfset structInsert(mapDescriptor, local.qSubparam.svc_operation_cfs_subparam,
@@ -657,7 +665,19 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
"svcOperationCfsSubparam":"#local.qSubparam.svc_operation_cfs_subparam#",
"label":"#local.qSubparam.label#",
"dataType":"#local.qSubparam.data_type#",
"valueList":"#local.qSubparam.value_list#",
"valueList":'#(len(local.qSubparam.expression)?
(parser.eval(
qSubparam.expression,
{
component:"resources.instance_operation_cfs_param",
keys:{
instanceOperationCfsParamUid:"#toString(arguments.qParam.instance_operation_cfs_param_uid)#", /*note camelCase*/
svcOperationCfsParamId:"#toString(arguments.qParam.svc_operation_cfs_param_id)#" /*note camelCase*/
},
params:{}
}
))
: local.qSubparam.value_list)#',
"minlength":"#local.qSubparam.minlength#",
"maxlength":"#local.qSubparam.maxlength#",
"regex":"#local.qSubparam.regex#",
@@ -667,7 +687,10 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<!--- "func":"#local.qSubparam.func#", --->
"isRequired":#request.castToBool(local.qSubparam.is_required)#,
"isSensitive":#request.castToBool(local.qSubparam.is_sensitive)#,
"isModifiableDefinition":false
"isModifiableDefinition":false,
"dependsOnCfsParams":"#local.qSubparam.depends_on_cfs_params#",
"expression":"#local.qSubparam.expression#"
}, true
)
/>