From 092bdd9f22db7b66e334400b0e7abe0e4dc782ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 27 Sep 2022 22:27:40 -0400 Subject: [PATCH] fix: dynamic tooltips --- public/src/client/topic/threadTools.js | 12 +++++++----- public/src/client/topic/votes.js | 12 +++++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js index 3325b76ac0..ca85564873 100644 --- a/public/src/client/topic/threadTools.js +++ b/public/src/client/topic/threadTools.js @@ -10,7 +10,8 @@ define('forum/topic/threadTools', [ 'hooks', 'bootbox', 'alerts', -], function (components, translator, handleBack, posts, api, hooks, bootbox, alerts) { + 'bootstrap', +], function (components, translator, handleBack, posts, api, hooks, bootbox, alerts, bootstrap) { const ThreadTools = {}; ThreadTools.init = function (tid, topicContainer) { @@ -365,11 +366,12 @@ define('forum/topic/threadTools', [ unfollow: '[[topic:not-watching]]', ignore: '[[topic:ignoring]]', }; - // TODO: doesnt work on bs5 + translator.translate(titles[state], function (translatedTitle) { - $('[component="topic/watch"]') - .attr('title', translatedTitle) - .tooltip(); + const tooltip = bootstrap.Tooltip.getInstance('[component="topic/watch"]'); + if (tooltip) { + tooltip.setContent({ '.tooltip-inner': translatedTitle }); + } }); let menu = components.get('topic/following/menu'); diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js index dcc225bd89..8109d18a0e 100644 --- a/public/src/client/topic/votes.js +++ b/public/src/client/topic/votes.js @@ -2,8 +2,8 @@ define('forum/topic/votes', [ - 'components', 'translator', 'api', 'hooks', 'bootbox', 'alerts', -], function (components, translator, api, hooks, bootbox, alerts) { + 'components', 'translator', 'api', 'hooks', 'bootbox', 'alerts', 'bootstrap', +], function (components, translator, api, hooks, bootbox, alerts, bootstrap) { const Votes = {}; Votes.addVoteHandler = function () { @@ -32,7 +32,13 @@ define('forum/topic/votes', [ function createTooltip(el, data) { function doCreateTooltip(title) { - el.attr('title', title).tooltip('fixTitle').tooltip('show'); + const tooltip = bootstrap.Tooltip.getInstance(el); + if (tooltip) { + tooltip.setContent({ '.tooltip-inner': title }); + } else { + el.attr('title', title); + (new bootstrap.Tooltip(el)).show(); + } el.parent().find('.tooltip').css('display', ''); } let usernames = data.usernames