Merge pull request #5024 from vvlladd28/bug/action/element-click/propagation

[3.3.0] UI: Fixed widget action element click - not correct processing propagation event
This commit is contained in:
Igor Kulikov 2021-08-04 18:44:09 +03:00 committed by GitHub
commit 8174568dfa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1326,21 +1326,20 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI
} }
private elementClick($event: Event) { private elementClick($event: Event) {
const e = ($event.target || $event.srcElement) as Element; const elementClicked = ($event.target || $event.srcElement) as Element;
if (e.id) {
const descriptors = this.getActionDescriptors('elementClick'); const descriptors = this.getActionDescriptors('elementClick');
if (descriptors.length) { if (descriptors.length) {
descriptors.forEach((descriptor) => { const idsList = descriptors.map(descriptor => `#${descriptor.name}`).join(',');
if (descriptor.name === e.id) { const targetElement = $(elementClicked).closest(idsList, this.widgetContext.$container[0]);
if (targetElement.length && targetElement[0].id) {
$event.stopPropagation(); $event.stopPropagation();
const descriptor = descriptors.find(descriptorInfo => descriptorInfo.name === targetElement[0].id);
const entityInfo = this.getActiveEntityInfo(); const entityInfo = this.getActiveEntityInfo();
const entityId = entityInfo ? entityInfo.entityId : null; const entityId = entityInfo ? entityInfo.entityId : null;
const entityName = entityInfo ? entityInfo.entityName : null; const entityName = entityInfo ? entityInfo.entityName : null;
const entityLabel = entityInfo && entityInfo.entityLabel ? entityInfo.entityLabel : null; const entityLabel = entityInfo && entityInfo.entityLabel ? entityInfo.entityLabel : null;
this.handleWidgetAction($event, descriptor, entityId, entityName, null, entityLabel); this.handleWidgetAction($event, descriptor, entityId, entityName, null, entityLabel);
} }
});
}
} }
} }