| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- window.markRead = function(obj)
- {
- let $this = $(obj);
- if(!$this.hasClass('message-item')) $this = $this.closest('.message-item');
- let isUnread = $this.hasClass('unread');
- if(!isUnread) return;
- let messageID = $this.data("msgid");
- let $messageItem = $('#messageTabs .message-item.unread[data-msgid="' + messageID + '"]');
- $messageItem.find('.label-dot.danger').removeClass('danger').addClass('gray');
- $messageItem.removeClass('unread');
- $messageItem.attr('data-target', '#readContextMenu');
- $.get($.createLink('message', 'ajaxMarkRead', "id=" + messageID));
- /* Rerender unread count. */
- $('#messageTabs #unread-messages.tab-pane').find('.message-item[data-msgid="' + messageID + '"]').addClass('hidden');
- renderMessage();
- };
- window.markUnread = function(obj)
- {
- let $this = $(obj);
- if(!$this.hasClass('message-item')) $this = $this.closest('.message-item');
- let isUnread = $this.hasClass('unread');
- if(isUnread) return;
- let messageID = $this.data("msgid");
- let $messageItem = $('#messageTabs .message-item[data-msgid="' + messageID + '"]');
- $messageItem.find('.label-dot.gray').removeClass('gray').addClass('danger');
- $messageItem.addClass('unread');
- $.get($.createLink('message', 'ajaxMarkUnread', "id=" + messageID));
- /* Rerender unread count. */
- fetchMessage(true, $.createLink('message', 'ajaxGetDropmenu', 'active=all'));
- renderMessage();
- };
- window.markAllRead = function()
- {
- let $messageItem = $('#messageTabs .message-item.unread');
- $messageItem.find('.label-dot.danger').removeClass('danger').addClass('gray');
- $messageItem.removeClass('unread');
- $('#messageTabs #unread-messages.tab-pane .message-item').addClass('hidden');
- $.get($.createLink('message', 'ajaxMarkRead', "id=all"));
- renderMessage();
- };
- window.clearRead = function()
- {
- let $messageItem = $('#messageTabs .message-item:not(.unread)');
- $messageItem.addClass('hidden');
- $.get($.createLink('message', 'ajaxDelete', "id=allread"));
- renderMessage();
- };
- window.deleteMessage = function(obj)
- {
- let $this = $(obj);
- if(!$this.hasClass('message-item')) $this = $this.closest('.message-item');
- let messageID = $this.data("msgid");
- let $messageItem = $('#messageTabs .message-item[data-msgid="' + messageID + '"]');
- $messageItem.removeClass('unread');
- $messageItem.addClass('hidden');
- $.get($.createLink('message', 'ajaxDelete', "id=" + messageID));
- /* Rerender unread count. */
- renderMessage();
- };
- window.clickMessage = function(obj, event)
- {
- // Prevent default link behavior to avoid double navigation
- if(event)
- {
- event.preventDefault();
- event.stopPropagation();
- }
- let $obj = $(obj);
- let url = $obj.attr('data-url').replace(/\?onlybody=yes/g, '').replace(/\&onlybody=yes/g, '');
- markRead(obj);
- $('#header #messageBar').trigger('click');
- $.apps.openApp(url);
- renderMessage();
- };
- window.renderMessage = function()
- {
- let $unreadTab = $('#messageTabs #unread-messages.tab-pane');
- let unreadCount = $unreadTab.find('.message-item.unread').length;
- if(typeof(unreadLangTempate) != 'undefined') $('[href="#unread-messages"] span').html(unreadLangTempate.replace(/%s/, unreadCount));
- if(unreadCount == 0)
- {
- $unreadTab.find('ul').addClass('hidden');
- if($unreadTab.find('.nodata').length == 0) $unreadTab.append(noDataHtml);
- }
- let $allTab = $('#messageTabs #all-messages.tab-pane');
- let allCount = $allTab.find('.message-item:not(.hidden)').length;
- if(allCount == 0)
- {
- $allTab.find('ul').addClass('hidden');
- if($allTab.find('.nodata').length == 0) $allTab.append(noDataHtml);
- }
- $('#messageTabs .message-date').each(function()
- {
- if($(this).find('.message-item:not(.hidden)').length == 0) $(this).addClass('hidden');
- });
- updateAllDot(showCount);
- };
- window.hideContextMenu = function()
- {
- if(thisContextmenu != null) thisContextmenu.hide();
- thisContextmenu = null;
- contextmenuEle = null;
- };
- window.clickContextMenu = function(item)
- {
- let action = item.value;
- let $this = contextmenuEle;
- if(action == 'delete') deleteMessage($this);
- if(action == 'markunread') markUnread($this);
- };
- let thisContextmenu = null;
- let contextmenuEle = null;
- $(function()
- {
- updateAllDot(showCount);
- /* Bind contextmenu for message dropdown. */
- $(document).on('contextmenu', '*', function(event)
- {
- hideContextMenu();
- let $this = $(this);
- if($this.hasClass('message-item') || $this.closest('.message-item').length)
- {
- event.preventDefault();
- event.stopPropagation();
- if(!$this.hasClass('message-item')) $this = $this.closest('.message-item');
- thisContextmenu = zui.ContextMenu.show(
- {
- triggerEvent: event,
- items: $this.hasClass('unread') ? unreadContextMenu : readContextMenu,
- menu: { onClickItem: (info) => { clickContextMenu(info.item); }}
- });
- contextmenuEle = $this;
- return;
- }
- });
- /* Hidden dropdown and contextmenu. */
- $('#dropdownMessageMenu').on('click', function(event)
- {
- hideContextMenu();
- if($(event.target).closest('.messageSettingBox').length == 0 && $('#messageSettingDropdown-toggle').hasClass('open')) closeSettingDropdown();
- });
- $('#dropdownMessageMenu').on('scroll', function(event){hideContextMenu();});
- /* Adjust dropdown height when resize. */
- $(window).on('resize', function(event)
- {
- let maxHeight = $(window).height() - $('#header').height() - 5;
- $("#dropdownMessageMenu").css('height', maxHeight).css('max-height', maxHeight)
- });
- });
|