From 4a133bb57dee497649f0b5fd09676f2575646dab Mon Sep 17 00:00:00 2001 From: wangxuepeng Date: Mon, 23 Oct 2023 18:17:06 +0800 Subject: [PATCH] * Add browser message notify. --- module/index/control.php | 1 + module/index/css/index.ui.css | 3 +++ module/index/js/index.ui.js | 24 ++++++++++++++++++++++++ module/index/ui/index.html.php | 1 + module/message/control.php | 8 +------- module/message/model.php | 12 ++++++++++++ 6 files changed, 42 insertions(+), 7 deletions(-) diff --git a/module/index/control.php b/module/index/control.php index 2af6219dbe..bbd94b8734 100644 --- a/module/index/control.php +++ b/module/index/control.php @@ -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(); } diff --git a/module/index/css/index.ui.css b/module/index/css/index.ui.css index 034c0b91c7..21c0cbf600 100644 --- a/module/index/css/index.ui.css +++ b/module/index/css/index.ui.css @@ -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)} diff --git a/module/index/js/index.ui.js b/module/index/js/index.ui.js index 44075afa15..562c698947 100644 --- a/module/index/js/index.ui.js +++ b/module/index/js/index.ui.js @@ -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')); diff --git a/module/index/ui/index.html.php b/module/index/ui/index.html.php index 25ba3d5fa2..9d80e67bd1 100644 --- a/module/index/ui/index.html.php +++ b/module/index/ui/index.html.php @@ -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'); diff --git a/module/message/control.php b/module/message/control.php index e79b986bbc..1bd38e48ee 100644 --- a/module/message/control.php +++ b/module/message/control.php @@ -137,13 +137,7 @@ class message extends control } else { - echo << - -
{$messages}
- - -EOT; + echo html_entity_decode("
{$messages}
"); } $this->dao->delete()->from(TABLE_NOTIFY)->where('objectType')->eq('message')->andWhere('status')->ne('wait')->exec(); diff --git a/module/message/model.php b/module/message/model.php index ab3b55bee2..88de478337 100755 --- a/module/message/model.php +++ b/module/message/model.php @@ -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); + } }