field manager param label translation

This commit is contained in:
Yuri Kuznetsov
2025-08-08 11:15:07 +03:00
parent d32eea0e8a
commit 24f00dfa03
2 changed files with 45 additions and 19 deletions
@@ -27,12 +27,10 @@
<label class="control-label" data-name="label">{{translate 'label' scope='Admin' category='fields'}}</label>
<div class="field" data-name="label">{{{label}}}</div>
</div>
{{#each paramList}}
{{#each paramDataList}}
{{#unless hidden}}
<div class="cell form-group" data-name="{{name}}">
<label class="control-label" data-name="{{name}}">
{{translate name scope='Admin' category='fields'}}
</label>
<label class="control-label" data-name="{{name}}">{{label}}</label>
<div class="field" data-name="{{name}}">{{{var name ../this}}}</div>
</div>
{{/unless}}
+43 -15
View File
@@ -70,17 +70,29 @@ class FieldManagerEditView extends View {
'nonAdminReadOnly',
]
/** @type {Model & {fetchedAttributes?: Record}}*/
/**
* @type {Model & {fetchedAttributes?: Record}}
*/
model
/** @type {Record[]} */
/**
* @private
* @type {Record[]}
*/
paramList
/**
* @private
* @type {Record[]}
*/
paramDataList
data() {
return {
scope: this.scope,
field: this.field,
defs: this.defs,
paramList: this.paramList,
paramDataList: this.paramDataList,
type: this.type,
fieldList: this.fieldList,
isCustom: this.defs.isCustom,
@@ -210,17 +222,16 @@ class FieldManagerEditView extends View {
.then(() => {
const promiseList = [];
this.paramList = [];
const paramList = Espo.Utils.clone(this.getFieldManager().getParamList(this.type) || []);
const paramList = Espo.Utils.cloneDeep(this.getFieldManager().getParamList(this.type));
if (!this.isNew) {
const fieldManagerAdditionalParamList =
this.getMetadata()
.get([
'entityDefs', this.scope, 'fields',
this.field, 'fieldManagerAdditionalParamList'
]) || [];
.get(['entityDefs', this.scope, 'fields', this.field, 'fieldManagerAdditionalParamList'])
?? [];
fieldManagerAdditionalParamList.forEach((item) => {
fieldManagerAdditionalParamList.forEach(item => {
paramList.push(item);
});
}
@@ -396,6 +407,19 @@ class FieldManagerEditView extends View {
);
});
this.paramDataList = this.paramList.map(o => {
let label = this.translate(o.name, 'fields', 'Admin');
if (o.labelTranslation) {
label = this.getLanguage().translatePath(o.labelTranslation);
}
return {
...o,
label: label,
};
});
Promise.all(promiseList).then(() => callback());
});
});
@@ -658,21 +682,25 @@ class FieldManagerEditView extends View {
createFieldView(type, name, readOnly, params, options, callback) {
const viewName = (params || {}).view || this.getFieldManager().getViewName(type);
let labelText = undefined;
if (params && params.labelTranslation) {
labelText = this.getLanguage().translatePath(params.labelTranslation);
}
const o = {
model: this.model,
selector: `.field[data-name="${name}"]`,
defs: {
name: name,
params: params
},
name: name,
params: params,
mode: readOnly ? 'detail' : 'edit',
readOnly: readOnly,
scope: this.scope,
field: this.field,
labelText: labelText,
...options,
};
_.extend(o, options || {});
const promise = this.createView(name, viewName, o, callback);
this.fieldList.push(name);