* Add browser message notify.

This commit is contained in:
wangxuepeng
2023-10-23 18:17:43 +08:00
parent 5a00c6dc4c
commit 4a133bb57d
6 changed files with 42 additions and 7 deletions
+1
View File
@@ -43,6 +43,7 @@ class index extends control
$this->view->open = helper::safe64Decode($open);
$this->view->latestVersionList = $latestVersionList;
$this->view->appsItems = commonModel::getMainNavList($this->app->rawModule);
$this->view->browserMessage = $this->loadModel('message')->getBrowserMessageConfig();
$this->display();
}
+3
View File
@@ -43,3 +43,6 @@
.app-container.loading.open-from-hidden {transition-delay: 0s;}
.app-container.loading.open-from-hidden > iframe {opacity: 0;}
.app-container > iframe {width: 100%; height: 100%; background: inherit;}
.browser-message-content {color: rgba(30,168,254)}
.browser-message-content > a {color: rgba(49,60,82)}
+24
View File
@@ -724,12 +724,36 @@ function changeAppsTheme(theme)
});
}
var messageTimer = null;
function buildMessageTimer()
{
if(messageTimer || browserMessage.turnon != 1) return;
messageTimer = setInterval(function(){
$.get($.createLink('message', 'ajaxGetMessage'), html =>
{
if(html === '') return;
console.log(typeof html)
zui.Messager.show(
{
content: {html: html},
placement: 'bottom-right',
time: 0,
icon: 'envelope-o',
className: 'primary-pale'
})
});
}, browserMessage.pollTime * 1000);
}
initAppsMenu();
/* Refresh more menu on window resize */
$(window).on('resize', refreshMenu);
refreshMenu();
setTimeout(refreshMenu, 500);
/* Scheduled tasks for browser message */
buildMessageTimer();
/* Bind event for menut-toggle */
$(document).on('click', '.menu-toggle', () => toggleMenu());
toggleMenu(!$('body').hasClass('hide-menu'));
+1
View File
@@ -20,6 +20,7 @@ jsVar('defaultOpen', (isset($open) and !empty($open)) ? $open : '');
jsVar('manualText', $lang->manual);
jsVar('manualUrl', ((!empty($config->isINT)) ? $config->manualUrl['int'] : $config->manualUrl['home']) . '&theme=' . $_COOKIE['theme']);
jsVar('lang', array_merge(array('search' => $lang->index->search, 'searchAB' => $lang->searchAB), (array)$lang->index->dock));
jsVar('browserMessage', $browserMessage);
set::zui(true);
set::bodyClass($this->cookie->hideMenu ? 'hide-menu' : 'show-menu');
+1 -7
View File
@@ -137,13 +137,7 @@ class message extends control
}
else
{
echo <<<EOT
<div class='alert alert-info with-icon alert-dismissable' style='width:380px; position:fixed; margin-bottom:0px; bottom:0px; right:15px; z-index: 9999;'>
<i class='icon icon-envelope-o'> </i>
<div class='content'>{$messages}</div>
<button type="button" class="close" data-dismiss="alert">×</button>
</div>
EOT;
echo html_entity_decode("<div class='browser-message-content'>{$messages}</div>");
}
$this->dao->delete()->from(TABLE_NOTIFY)->where('objectType')->eq('message')->andWhere('status')->ne('wait')->exec();
+12
View File
@@ -264,4 +264,16 @@ class messageModel extends model
return $notices;
}
/**
* 获取浏览器通知的相关配置信息。
* Get browser message config.
*
* @access public
* @return array
*/
public function getBrowserMessageConfig(): array
{
return array('turnon' => $this->config->message->browser->turnon, 'pollTime' => $this->config->message->browser->pollTime);
}
}