UI: Fix overlapping click event handler (#614)

The click event handler for links in the card display are overlapping:
The general event for opening the link in a new window matches on user
mentions, too. But user mentions cannot be opened in a new window.
This commit is contained in:
Alexander Sulfrian 2016-07-11 12:04:42 +02:00 committed by Maxime Quandalle
parent 3f12e3e96f
commit 36f17a5717

View file

@ -90,15 +90,10 @@ Blaze.Template.registerHelper('mentions', new Template('mentions', function() {
}));
Template.viewer.events({
'click .js-open-member'(evt, tpl) {
const userId = evt.currentTarget.dataset.userid;
Popup.open('member').call({ userId }, evt, tpl);
},
// Viewer sometimes have click-able wrapper around them (for instance to edit
// the corresponding text). Clicking a link shouldn't fire these actions, stop
// we stop these event at the viewer component level.
'click a'(evt) {
'click a'(evt, tpl) {
evt.stopPropagation();
// XXX We hijack the build-in browser action because we currently don't have
@ -106,9 +101,16 @@ Template.viewer.events({
// handled by a third party package that we can't configure easily. Fix that
// by using directly `_blank` attribute in the rendered HTML.
evt.preventDefault();
const href = evt.currentTarget.href;
if (href) {
window.open(href, '_blank');
const userId = evt.currentTarget.dataset.userid;
if (userId) {
Popup.open('member').call({ userId }, evt, tpl);
}
else {
const href = evt.currentTarget.href;
if (href) {
window.open(href, '_blank');
}
}
},
});