* [perf story #59903] Adjust getdropmenu js.
This commit is contained in:
@@ -49,6 +49,6 @@ $config->message->browser = new stdclass();
|
||||
$config->message->browser->turnon = 1;
|
||||
$config->message->browser->pollTime = 300;
|
||||
$config->message->browser->minPollTime = 30;
|
||||
$config->message->browser->show = 1;
|
||||
$config->message->browser->show = 0;
|
||||
$config->message->browser->count = 1;
|
||||
$config->message->browser->maxDays = 30;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
window.markRead = function(e)
|
||||
window.markRead = function(obj)
|
||||
{
|
||||
let $this = $(e.target);
|
||||
let $this = $(obj);
|
||||
if(!$this.hasClass('message-item')) $this = $this.closest('.message-item');
|
||||
let isUnread = $this.hasClass('unread');
|
||||
if(!isUnread) return;
|
||||
@@ -14,9 +14,9 @@ window.markRead = function(e)
|
||||
/* Rerender unread count. */
|
||||
$('messageTabs #unread-messages.tab-pane').find('.message-item[data-id="' + messageID + '"]').addClass('hidden');
|
||||
renderMessage();
|
||||
}
|
||||
};
|
||||
|
||||
window.markAllRead = function(e)
|
||||
window.markAllRead = function()
|
||||
{
|
||||
let $messageItem = $('#messageTabs .message-item.unread');
|
||||
$messageItem.find('.label-dot.danger').removeClass('danger').addClass('gray');
|
||||
@@ -24,25 +24,19 @@ window.markAllRead = function(e)
|
||||
$('#messageTabs #unread-messages.tab-pane .message-item').addClass('hidden');
|
||||
$.get($.createLink('message', 'ajaxMarkRead', "id=all"));
|
||||
renderMessage();
|
||||
}
|
||||
};
|
||||
|
||||
window.clearRead = function(e)
|
||||
window.clearRead = function()
|
||||
{
|
||||
let result = confirm(confirmClearLang);
|
||||
if(!result) return;
|
||||
|
||||
let $messageItem = $('#messageTabs .message-item:not(.unread)');
|
||||
$messageItem.addClass('hidden');
|
||||
$.get($.createLink('message', 'ajaxDelete', "id=allread"));
|
||||
renderMessage();
|
||||
}
|
||||
};
|
||||
|
||||
window.deleteMessage = function(e)
|
||||
window.deleteMessage = function(obj)
|
||||
{
|
||||
let result = confirm(confirmDeleteLang);
|
||||
if(!result) return;
|
||||
|
||||
let $this = $(e.target);
|
||||
let $this = $(obj);
|
||||
if(!$this.hasClass('message-item')) $this = $this.closest('.message-item');
|
||||
|
||||
let messageID = $this.data("id");
|
||||
@@ -52,18 +46,25 @@ window.deleteMessage = function(e)
|
||||
|
||||
/* Rerender unread count. */
|
||||
renderMessage();
|
||||
}
|
||||
};
|
||||
|
||||
window.clickMessage = function(obj)
|
||||
{
|
||||
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);
|
||||
rederMessage();
|
||||
};
|
||||
|
||||
window.renderMessage = function()
|
||||
{
|
||||
let $unreadTab = $('#messageTabs #unread-messages.tab-pane');
|
||||
let $unreadTab = $('#messageTabs #unread-messages.tab-pane');
|
||||
let unreadCount = $unreadTab.find('.message-item.unread').length;
|
||||
let $messageBarDot = $('#messageBar .label-dot.danger');
|
||||
$('[href="#unread-messages"] span').html(unreadLangTempate.replace(/%s/, unreadCount));
|
||||
if($messageBarDot.html()) $messageBarDot.html(unreadCount);
|
||||
if(typeof(unreadLangTempate) != 'undefined') $('[href="#unread-messages"] span').html(unreadLangTempate.replace(/%s/, unreadCount));
|
||||
if(unreadCount == 0)
|
||||
{
|
||||
$messageBarDot.remove();
|
||||
$unreadTab.find('ul').addClass('hidden');
|
||||
if($unreadTab.find('.nodata').length == 0) $unreadTab.append("<div class='text-center text-gray nodata'>" + noDataLang + "</div>");
|
||||
}
|
||||
@@ -75,4 +76,8 @@ window.renderMessage = function()
|
||||
$allTab.find('ul').addClass('hidden');
|
||||
if($allTab.find('.nodata').length == 0) $allTab.append("<div class='text-center text-gray nodata'>" + noDataLang + "</div>");
|
||||
}
|
||||
}
|
||||
|
||||
updateAllDot(showCount);
|
||||
};
|
||||
|
||||
$(function(){ updateAllDot(showCount); });
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
window.updateAllDot = function(showCount)
|
||||
{
|
||||
let $unreadTab = $('#messageTabs #unread-messages.tab-pane');
|
||||
let unreadCount = $unreadTab.find('.message-item.unread').length;
|
||||
let dotHtml = '<span class="label danger label-dot absolute" style="top: 5px; left: 18px; aspect-ratio: ' + (showCount != '0' ? '0' : '1 / 1') + '; padding: 2px;">' + (showCount != '0' ? unreadCount : '') + '</span>';
|
||||
parent.$('#apps .app-container').each(function()
|
||||
{
|
||||
let $iframeMessageBar = $(this).find('iframe').contents().find('#messageBar');
|
||||
$iframeMessageBar.find('.label-dot.danger').remove();
|
||||
if(unreadCount) $iframeMessageBar.append(dotHtml);
|
||||
});
|
||||
};
|
||||
@@ -31,10 +31,8 @@ $lang->message->timeLabel['minute'] = '%s minute ago';
|
||||
$lang->message->timeLabel['hour'] = '1 hour ago';
|
||||
|
||||
$lang->message->notice = new stdclass();
|
||||
$lang->message->notice->confirmDelete = "Are you sure you want to delete this message?";
|
||||
$lang->message->notice->confirmClear = "Are you sure you want to clear the read messages?";
|
||||
$lang->message->notice->allMarkRead = 'One-click read';
|
||||
$lang->message->notice->clearRead = 'Clear read';
|
||||
$lang->message->notice->allMarkRead = 'One-click read';
|
||||
$lang->message->notice->clearRead = 'Clear read';
|
||||
|
||||
$lang->message->label = new stdclass();
|
||||
$lang->message->label->created = 'create';
|
||||
|
||||
@@ -31,10 +31,8 @@ $lang->message->timeLabel['minute'] = '%s minute ago';
|
||||
$lang->message->timeLabel['hour'] = '1 hour ago';
|
||||
|
||||
$lang->message->notice = new stdclass();
|
||||
$lang->message->notice->confirmDelete = "Are you sure you want to delete this message?";
|
||||
$lang->message->notice->confirmClear = "Are you sure you want to clear the read messages?";
|
||||
$lang->message->notice->allMarkRead = 'One-click read';
|
||||
$lang->message->notice->clearRead = 'Clear read';
|
||||
$lang->message->notice->allMarkRead = 'One-click read';
|
||||
$lang->message->notice->clearRead = 'Clear read';
|
||||
|
||||
$lang->message->label = new stdclass();
|
||||
$lang->message->label->created = 'create';
|
||||
|
||||
@@ -31,10 +31,8 @@ $lang->message->timeLabel['minute'] = '%s minute ago';
|
||||
$lang->message->timeLabel['hour'] = '1 hour ago';
|
||||
|
||||
$lang->message->notice = new stdclass();
|
||||
$lang->message->notice->confirmDelete = "Are you sure you want to delete this message?";
|
||||
$lang->message->notice->confirmClear = "Are you sure you want to clear the read messages?";
|
||||
$lang->message->notice->allMarkRead = 'One-click read';
|
||||
$lang->message->notice->clearRead = 'Clear read';
|
||||
$lang->message->notice->allMarkRead = 'One-click read';
|
||||
$lang->message->notice->clearRead = 'Clear read';
|
||||
|
||||
$lang->message->label = new stdclass();
|
||||
$lang->message->label->created = 'create';
|
||||
|
||||
@@ -31,10 +31,8 @@ $lang->message->timeLabel['minute'] = '%s分钟前';
|
||||
$lang->message->timeLabel['hour'] = '1小时前';
|
||||
|
||||
$lang->message->notice = new stdclass();
|
||||
$lang->message->notice->confirmDelete = "您确定要删除该条消息吗?";
|
||||
$lang->message->notice->confirmClear = "您确定要清空已读消息吗?";
|
||||
$lang->message->notice->allMarkRead = '一键已读';
|
||||
$lang->message->notice->clearRead = '清空已读';
|
||||
$lang->message->notice->allMarkRead = '一键已读';
|
||||
$lang->message->notice->clearRead = '清空已读';
|
||||
|
||||
$lang->message->label = new stdclass();
|
||||
$lang->message->label->created = '创建';
|
||||
|
||||
@@ -14,8 +14,7 @@ namespace zin;
|
||||
|
||||
jsVar('unreadLangTempate', $lang->message->unread);
|
||||
jsVar('noDataLang', $lang->noData);
|
||||
jsVar('confirmDeleteLang', $lang->message->notice->confirmDelete);
|
||||
jsVar('confirmClearLang', $lang->message->notice->confirmClear);
|
||||
jsVar('showCount', $config->message->browser->count);
|
||||
|
||||
$buildMessageList = function($messageGroup) use ($lang)
|
||||
{
|
||||
@@ -36,6 +35,12 @@ $buildMessageList = function($messageGroup) use ($lang)
|
||||
if($secondDiff >= 3600) $time = $lang->message->timeLabel['hour'];
|
||||
if($secondDiff > 5400) $time = substr($message->createdDate, 5, 11);
|
||||
|
||||
preg_match_all("/<a href='([^\']+)'/", $message->data, $out);
|
||||
$link = count($out[1]) ? $out[1][0] : '';
|
||||
$content = str_replace("<a href='$link'", "<a data-url='{$link}' href='###' onclick='clickMessage(this)'", $message->data);
|
||||
$content = preg_replace("/data-app='([^\']+)'/", '', $content);
|
||||
$content = preg_replace("/(\?|\&)onlybody=yes'/", '', $content);
|
||||
|
||||
$itemList[] = h::li
|
||||
(
|
||||
setClass('message-item border rounded-lg p-2 mt-2' . ($isUnread ? ' unread' : '')),
|
||||
@@ -46,7 +51,7 @@ $buildMessageList = function($messageGroup) use ($lang)
|
||||
cell(label(setClass("label-dot {$dotColor} mr-2")), $lang->message->browser),
|
||||
cell($time, icon(setClass('ml-2 cursor-pointer delete-message-btn'), 'close'))
|
||||
),
|
||||
div(setClass('pt-1'), html($message->data))
|
||||
div(setClass('pt-1'), html($content))
|
||||
);
|
||||
}
|
||||
$dateList[] = h::li(h::ul(setClass('list-unstyled'), $itemList));
|
||||
@@ -59,8 +64,8 @@ tabs
|
||||
setID('messageTabs'),
|
||||
setClass('text-black pt-1 px-5 pb-5 relative'),
|
||||
set::style(array('width' => '400px', 'background-color' => '#fff')),
|
||||
on::click('.delete-message-btn', 'deleteMessage'),
|
||||
on::click('.message-item', 'markRead'),
|
||||
on::click('.delete-message-btn', 'deleteMessage(e.target)'),
|
||||
on::click('.message-item', 'markRead(e.target)'),
|
||||
on::click('.clearRead', 'clearRead'),
|
||||
on::click('.allMarkRead', 'markAllRead'),
|
||||
div
|
||||
|
||||
Reference in New Issue
Block a user