client record actions duplicate prevention

This commit is contained in:
Yurii
2026-02-26 10:37:04 +02:00
parent 1ba438fa9f
commit 0368d0569c
2 changed files with 18 additions and 6 deletions
+16 -4
View File
@@ -84,18 +84,30 @@ class ActionItemSetupHelper {
throw new Error();
}
const actionDefsList = [
/** @type {({name?: string} & Record | string)[]} */
const actionDefsListOriginal = [
...this.metadata.get(['clientDefs', 'Global', type + 'ActionList']) || [],
...this.metadata.get(['clientDefs', scope, type + 'ActionList']) || [],
];
actionDefsList.forEach(item => {
/** @type {({name?: string} & Object.<string, *>)[]} */
let actionDefsList = actionDefsListOriginal.map(item => {
if (typeof item === 'string') {
item = {name: item};
return {name: item};
}
item = Espo.Utils.cloneDeep(item);
return Espo.Utils.cloneDeep(item);
})
actionDefsList.reverse();
actionDefsList = actionDefsList.filter((it, i, self) => {
return self.findIndex(sIt => sIt.name === it.name) === i;
});
actionDefsList.reverse();
actionDefsList.forEach(item => {
const name = item.name;
if (!item.label) {
+2 -2
View File
@@ -2378,12 +2378,12 @@ class ListRecordView extends View {
const metadataMassActionList = [
...this.getMetadata().get(['clientDefs', 'Global', 'massActionList']) || [],
...this.getMetadata().get(['clientDefs', this.scope, 'massActionList']) || [],
];
].filter((it, i, self) => self.indexOf(it) === i);
const metadataCheckAllMassActionList = [
...this.getMetadata().get(['clientDefs', 'Global', 'checkAllResultMassActionList']) || [],
...this.getMetadata().get(['clientDefs', this.scope, 'checkAllResultMassActionList']) || [],
];
].filter((it, i, self) => self.indexOf(it) === i);
metadataMassActionList.forEach(item => {
const defs = /** @type {Espo.Utils~ActionAccessDefs & Espo.Utils~ActionAvailabilityDefs} */