diff --git a/phpBB/adm/style/admin.css b/phpBB/adm/style/admin.css index 7b5257859f..e48edf49cf 100644 --- a/phpBB/adm/style/admin.css +++ b/phpBB/adm/style/admin.css @@ -1676,7 +1676,7 @@ fieldset.submit-buttons legend { font-weight: bold; } -.mention-container { /* mention-container */ +.mention-container { text-align: left; background-color: #ffffff; border-radius: 2px; @@ -1691,11 +1691,11 @@ fieldset.submit-buttons legend { transition: all 0.2s ease; } -.rtl .mention-container { /* mention-container */ +.rtl .mention-container { text-align: right; } -.mention-container ul { /* mention-list */ +.mention-list { margin: 0; padding: 0; list-style-type: none; diff --git a/phpBB/assets/javascript/editor.js b/phpBB/assets/javascript/editor.js index 7945924b84..a96a291a20 100644 --- a/phpBB/assets/javascript/editor.js +++ b/phpBB/assets/javascript/editor.js @@ -626,6 +626,26 @@ function getCaretPosition(txtarea) { }); } + /** + * Generate menu item HTML representation. Also ensures that mention-list + * class is set for unordered list in mention container + * + * @param {object} data Item data + * @returns {string} HTML representation of menu item + */ + function menuItemTemplate(data) { + const itemData = data; + const avatar = getAvatar(itemData.avatar, itemData.type); + const rank = (itemData.rank) ? "" + itemData.rank + "" : ''; + const $mentionContainer = $('.' + tribute.current.collection.containerClass); + + if (typeof $mentionContainer !== 'undefined' && $mentionContainer.children('ul').hasClass('mention-list') === false) { + $mentionContainer.children('ul').addClass('mention-list'); + } + + return "" + avatar + "" + itemData.name + rank + ""; + } + this.isEnabled = function() { return $mentionDataContainer.length; }; @@ -637,12 +657,7 @@ function getCaretPosition(txtarea) { containerClass: 'mention-container', selectClass: 'is-active', itemClass: 'mention-item', - menuItemTemplate: function (data) { - const itemData = data; - let avatar = getAvatar(itemData.avatar, itemData.type); - let rank = (itemData.rank) ? "" + itemData.rank + "" : ''; - return "" + avatar + "" + itemData.name + rank + ""; - }, + menuItemTemplate: menuItemTemplate, selectTemplate: function (item) { return '[mention=' + item.type + ':' + item.id + ']' + item.name + '[/mention]'; }, diff --git a/phpBB/styles/prosilver/theme/mentions.css b/phpBB/styles/prosilver/theme/mentions.css index 23816982b5..cec8e3fe5d 100644 --- a/phpBB/styles/prosilver/theme/mentions.css +++ b/phpBB/styles/prosilver/theme/mentions.css @@ -13,7 +13,7 @@ /* Mention dropdown ---------------------------------------- */ -.mention-container { /* mention-container */ +.mention-container { text-align: left; border-radius: 2px; position: absolute; @@ -23,7 +23,7 @@ transition: all 0.2s ease; } -.mention-container ul { /* mention-list */ +.mention-list { margin: 0; padding: 0; list-style-type: none;