diff --git a/module/instance/ui/view.html.php b/module/instance/ui/view.html.php
index 7f78374ff4..c25d128287 100644
--- a/module/instance/ui/view.html.php
+++ b/module/instance/ui/view.html.php
@@ -217,7 +217,7 @@ div
$type !== 'store' ? null : h::td
(
setID('statusTD'),
- set('data-status', $instance->status),
+ setData('status', $instance->status),
setData('reload', in_array($instance->status, array('creating', 'initializing', 'pulling', 'startup', 'starting', 'suspending', 'installing', 'uninstalling', 'stopping', 'destroying', 'upgrading'))),
span
(
diff --git a/module/system/js/dashboard.ui.js b/module/system/js/dashboard.ui.js
index f1ccedb64b..dddd07edfa 100644
--- a/module/system/js/dashboard.ui.js
+++ b/module/system/js/dashboard.ui.js
@@ -45,42 +45,44 @@ window.renderInstanceList = function (result, {col, row, value})
return result;
}
-var timer = null;
-window.afterPageUpdate = function()
+$(function()
{
- if(timer) return;
- const postData = new FormData();
+ if(typeof timer !== 'undefined') clearInterval(timer);
if(instanceIdList.length === 0) return;
- instanceIdList.forEach(function(id)
- {
- postData.append('idList[]', id)
- });
- timer = setInterval(function()
- {
- $.ajaxSubmit({
- url: $.createLink('instance', 'ajaxStatus'),
- method: 'POST',
- data:postData,
- onComplete: function(res)
- {
- if(res.result != 'success') return;
- if(res.data.length == 0) clearInterval(timer);
- $.each(res.data, function(index, instance)
- {
- if($("#instance-status-" + instance.id).data('status') != instance.status)
- {
- clearInterval(timer);
- loadTable();
- }
- });
- }
- });
- }, 10000);
-}
+ if(inQuickon) timer = setInterval(refreshStatus, 5000);
+});
window.onPageUnmount = function()
{
- if(timer == null) return;
- timer = null;
- clearInterval(timer);
+ if(typeof timer !== 'undefined') clearInterval(timer);
+}
+
+function refreshStatus()
+{
+ const postData = new FormData();
+ if(instanceIdList.length > 0)
+ {
+ instanceIdList.forEach(function(id){postData.append('idList[]', id)});
+ }
+
+ $.ajaxSubmit({
+ url: $.createLink('instance', 'ajaxStatus'),
+ method: 'POST',
+ data: postData,
+ onComplete: function(res)
+ {
+ if(res.result === 'success')
+ {
+ $.each(res.data, function(index, instance)
+ {
+ if(statusMap[instance.id] != instance.status)
+ {
+ loadTable();
+ statusMap[instance.id] = instance.status;
+ return;
+ }
+ });
+ }
+ }
+ });
}
diff --git a/module/system/ui/dashboard.html.php b/module/system/ui/dashboard.html.php
index de8fa9a6df..7e33118a6e 100644
--- a/module/system/ui/dashboard.html.php
+++ b/module/system/ui/dashboard.html.php
@@ -15,6 +15,7 @@ $status = zget($cneMetrics, 'status', 'unknown');
$cpuInfo['tip'] = trim(substr($cpuInfo['tip'], strpos($cpuInfo['tip'], '=') + 1));
$memoryInfo['tip'] = trim(substr($memoryInfo['tip'], strpos($memoryInfo['tip'], '=') + 1));
+jsVar('inQuickon', $config->inQuickon);
jsVar('cpuInfo', $cpuInfo);
jsVar('memoryInfo', $memoryInfo);
jsVar('instanceIdList', helper::arrayColumn($instances, 'id'));