diff --git a/frontend/src/util/transactionutil.js b/frontend/src/util/transactionutil.js index df303ad9c222e05e17ff87063057f3622733f127..f82857d2110c0eac4f34ea2c42e76ca2e017c4fe 100644 --- a/frontend/src/util/transactionutil.js +++ b/frontend/src/util/transactionutil.js @@ -1,7 +1,6 @@ import {v4 as uuidv4} from 'uuid' -import ObjectTypeService from '@/api-services.gen/wapi.object_type' -import FunctionService from '@/api-services.gen/wapi.function' import ApiUtil from '@/util/apiutil' +import TransactionService from '@/api-services/transaction.service' export default { getSysName(fq_name) { @@ -171,25 +170,70 @@ export default { const parts = object_fq_name.split('.') const system = parts[0] const name = parts[1] - const object_result = ObjectTypeService.list(vm.$store.state, { - name_list: [name], - system_list: [system] - }) + const object_result = TransactionService.execute(vm.$store.state, + [ + { + name: 'wapi.object_type.list', + old: { + name_list: [name], + system_list: [system] + } + }, + { + name: 'wapi.object_type_lang_dict.list', + old: { + name_list: [name], + system_list: [system] + } + }, + { + name: 'wapi.object_type_attr_lang_dict.list', + old: { + object_type_list: [name], + system_list: [system] + } + }, + { + name: 'wapi.function.list', + old: { + object_type_list: [name], + system_list: [system] + } + } + ] + ) try { - let object_definition = await object_result - object_definition = object_definition.data[0] - if (object_definition.length !== 1) { + const object_definition = (await object_result).data + if (object_definition.object_type_list.length !== 1) { return false } - const obj_functions = await FunctionService.list(vm.$store.state, { - object_type_list: [name], - system_list: [system] - }) + for (const object_definition_lang_attr in object_definition.object_type_lang_dict_list[0].language_dict) { + object_definition.object_type_list[0][object_definition_lang_attr] = object_definition.object_type_lang_dict_list[0].language_dict[object_definition_lang_attr] + } + const lang_by_fq_name = ApiUtil.dict_by_value_of_array(object_definition.object_type_attr_lang_dict_list, 'fq_name') + // Enrich function definitions with language attributes + const obj_functions = object_definition.function_list + for (const f of obj_functions) { + for (const func_param_name in f.parameters) { + const lang = lang_by_fq_name[`${system}.${name}.${func_param_name}`].language_dict + for (const object_function_lang_attr in lang) { + f.parameters[func_param_name][object_function_lang_attr] = lang[object_function_lang_attr] + } + } + } + // Enrich object definition with language attributes + for (const obj_attr_name in object_definition.object_type_list[0].attributes) { + const lang = lang_by_fq_name[`${system}.${name}.${obj_attr_name}`].language_dict + for (const object_function_lang_attr in lang) { + object_definition.object_type_list[0].attributes[obj_attr_name][object_function_lang_attr] = lang[object_function_lang_attr] + } + } return { - object_definition: object_definition[0], - object_functions: ApiUtil.dict_by_value_of_array(obj_functions.data[0], 'name') + object_definition: object_definition.object_type_list[0], + object_functions: ApiUtil.dict_by_value_of_array(obj_functions, 'name') } } catch (e) { + window.console.debug('Silenced error in validateObjectFQName', e) return false } },