* Add browser message notify.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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)}
|
||||
|
||||
@@ -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'));
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user