diff --git a/module/message/js/ajaxgetdropmenu.ui.js b/module/message/js/ajaxgetdropmenu.ui.js index 328923367b..1c738c9b91 100644 --- a/module/message/js/ajaxgetdropmenu.ui.js +++ b/module/message/js/ajaxgetdropmenu.ui.js @@ -149,9 +149,12 @@ $(function() }); /* Hidden dropdown and contextmenu. */ - $('#dropdownMessageMenu').on('click', function(event){hideContextMenu();}); + $('#dropdownMessageMenu').on('click', function(event) + { + hideContextMenu(); + if($(event.target).closest('.messageSettingBox').length == 0 && $('#messageSettingDropdown-toggle').hasClass('open')) closeSettingDropdown(); + }); $('#dropdownMessageMenu').on('scroll', function(event){hideContextMenu();}); - $('#unreadContextMenu,#readContextMenu').on('click', function(event){hideContextMenu(); event.stopPropagation();}); /* Adjust dropdown height when resize. */ $(window).on('resize', function(event) diff --git a/module/message/js/common.ui.js b/module/message/js/common.ui.js index c59efb451a..a63a2765f1 100644 --- a/module/message/js/common.ui.js +++ b/module/message/js/common.ui.js @@ -35,11 +35,14 @@ window.updateAllDot = function(showCount) }); }; -window.closeSettingDropdown = function() +window.toggleSettingDropdown = function(isOpen) { - $('#dropdownMessageMenu #messageSettingDropdown-toggle.with-popover-show').trigger('click'); -} + if(typeof(isOpen) == 'undefined') isOpen = $('#messageSettingDropdown-toggle').hasClass('open'); + $('#messageSettingDropdown-toggle').toggleClass('open', !isOpen); + $('#messageSettingDropdown').toggleClass('show', !isOpen); +}; +window.closeSettingDropdown = function(){ toggleSettingDropdown(true); } window.reloadSettingModal = function(showCount) { $('#dropdownMessageMenu #messageSettingDropdown').find('form').removeClass('loading'); diff --git a/module/message/ui/ajaxgetdropmenu.html.php b/module/message/ui/ajaxgetdropmenu.html.php index 096c050d6e..ee198c271d 100644 --- a/module/message/ui/ajaxgetdropmenu.html.php +++ b/module/message/ui/ajaxgetdropmenu.html.php @@ -67,14 +67,15 @@ tabs set::style(array('z-index' => '100')), btn(set::size('sm'), setClass('ghost allMarkRead'), set::hint($lang->message->notice->allMarkRead), icon('clear')), btn(set::size('sm'), setClass('ghost clearRead'), set::hint($lang->message->notice->clearRead), icon('trash')), - dropdown + span ( - setID('messageSettingDropdown'), - to::trigger(btn(set::icon('cog-outline'), set::hint($lang->message->browserSetting->more), setClass('ghost'), set::caret(false))), - to::menu(menu + setClass('messageSettingBox relative'), + btn(set::icon('cog-outline'), setID('messageSettingDropdown-toggle'), set::hint($lang->message->browserSetting->more), setClass('ghost'), set::caret(false), setData(array('on' => 'click', 'call' => 'toggleSettingDropdown'))), + menu ( - setClass('dropdown-menu w-52'), - on::click('e.stopPropagation();'), + setClass('dropdown-menu w-52 absolute popup in'), + setID('messageSettingDropdown'), + setStyle(array('left' => '-170px', 'top' => '25px')), form ( setClass('gap-1'), @@ -106,7 +107,7 @@ tabs btn(set::text($lang->cancel), setStyle(array('min-width' => '20px')), setClass('size-sm'), set::type('button'), on::click('closeSettingDropdown')) ) ) - )) + ) ) ), tabPane