Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos-webui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Bergkemper <frank.bergkemper@bareos.com>2017-12-06 19:08:24 +0300
committerFrank Bergkemper <frank.bergkemper@bareos.com>2017-12-14 14:09:30 +0300
commitff76fa215a7d5f69d54afb0b7d272785f322fa23 (patch)
treec00742cc3bafcd693910e03fe68816db26ba71ae
parentbaab892cc55ace826b01aa83d44f2d81241d1c25 (diff)
Fix webui freezing under different circumstancesRelease/17.2.4
-rw-r--r--module/Dashboard/view/dashboard/dashboard/index.phtml38
-rw-r--r--module/Job/src/Job/Model/JobModel.php12
-rw-r--r--module/Media/src/Media/Model/MediaModel.php3
-rw-r--r--module/Pool/src/Pool/Model/PoolModel.php3
-rw-r--r--module/Restore/src/Restore/Model/RestoreModel.php10
5 files changed, 60 insertions, 6 deletions
diff --git a/module/Dashboard/view/dashboard/dashboard/index.phtml b/module/Dashboard/view/dashboard/dashboard/index.phtml
index 71e69d7..9cd72b7 100644
--- a/module/Dashboard/view/dashboard/dashboard/index.phtml
+++ b/module/Dashboard/view/dashboard/dashboard/index.phtml
@@ -73,7 +73,9 @@ $this->headTitle($title);
$.ajax({
url : '<?php echo $this->url('dashboard', array('action' => 'getData'), null) . '?data=jobspast24h'; ?>',
dataType: 'json',
- timeout: 10000,
+ timeout: function() {
+ console.log('jobpast24h: timeout');
+ },
success: function(data) {
$('.waiting-jobs-field').empty();
$('.waiting-jobs-field').append(
@@ -91,6 +93,12 @@ $this->headTitle($title);
$('.failed-jobs-field').append(
data.failed
);
+ },
+ error: function() {
+ console.log('jobspast24h: error');
+ },
+ parseerror: function() {
+ console.log('jobspast24h: parse error');
}
});
}
@@ -114,7 +122,18 @@ $this->headTitle($title);
return formatBytes(value);
}
}
- ]
+ ],
+ ajaxOptions: {
+ timeout: function() {
+ console.log('jobtotals: timeout');
+ },
+ error: function() {
+ console.log('jobtotals: error');
+ },
+ parseerror: function() {
+ console.log('jobtotals: parse error');
+ }
+ }
});
}
@@ -188,7 +207,18 @@ $this->headTitle($title);
return formatBytes(value);
}
},
- ]
+ ],
+ ajaxOptions: {
+ timeout: function() {
+ console.log('joblaststatus: timeout');
+ },
+ error: function() {
+ console.log('jobslaststatus: error');
+ },
+ parseerror: function() {
+ console.log('jobslaststatus: parse error');
+ }
+ }
});
}
@@ -237,7 +267,7 @@ $this->headTitle($title);
},
parsererror: function() {
$('.running-jobs-container').empty();
- $('.running-jobs-container').append('Parsererror');
+ $('.running-jobs-container').append('Error parsing data.');
}
});
}
diff --git a/module/Job/src/Job/Model/JobModel.php b/module/Job/src/Job/Model/JobModel.php
index 47e95d2..a120a5a 100644
--- a/module/Job/src/Job/Model/JobModel.php
+++ b/module/Job/src/Job/Model/JobModel.php
@@ -62,6 +62,9 @@ class JobModel
return $error['result']['error'];
} else {
$jobs = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
+ if ( empty($jobs['result']) ) {
+ return false; // No matching records found
+ }
if ( empty($jobs['result']['jobs']) && $jobs['result']['meta']['range']['filtered'] === 0 ) {
return $retval;
} else {
@@ -144,7 +147,11 @@ class JobModel
$cmd = 'llist jobid='.$id.'';
$result = $bsock->send_command($cmd, 2, null);
$job = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
- return $job['result']['jobs'];
+ if ( empty($job['result']) ) {
+ return false; // No matching records found
+ } else {
+ return $job['result']['jobs'];
+ }
}
else {
throw new \Exception('Missing argument.');
@@ -174,6 +181,9 @@ class JobModel
}
else {
$log = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
+ if ( empty($log['result']) ) {
+ return false; // No matching records found
+ }
if ( empty($log['result']['joblog']) && $log['result']['meta']['range']['filtered'] === 0 ) {
return $retval;
} else {
diff --git a/module/Media/src/Media/Model/MediaModel.php b/module/Media/src/Media/Model/MediaModel.php
index 7e7530e..ef4b233 100644
--- a/module/Media/src/Media/Model/MediaModel.php
+++ b/module/Media/src/Media/Model/MediaModel.php
@@ -49,6 +49,9 @@ class MediaModel
return $error['result']['error'];
} else {
$volumes = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
+ if ( empty($volumes['result']) ) {
+ return false; // No matching records found
+ }
if ( empty($volumes['result']['volumes']) && $volumes['result']['meta']['range']['filtered'] === 0 ) {
return $retval;
} else {
diff --git a/module/Pool/src/Pool/Model/PoolModel.php b/module/Pool/src/Pool/Model/PoolModel.php
index 11795ef..8cae21b 100644
--- a/module/Pool/src/Pool/Model/PoolModel.php
+++ b/module/Pool/src/Pool/Model/PoolModel.php
@@ -117,6 +117,9 @@ class PoolModel
return $error['result']['error'];
} else {
$media = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
+ if ( empty($media['result']) ) {
+ return false; // No matching records found
+ }
if ( empty($media['result']['volumes']) && $media['result']['meta']['range']['filtered'] === 0 ) {
return $retval;
} else {
diff --git a/module/Restore/src/Restore/Model/RestoreModel.php b/module/Restore/src/Restore/Model/RestoreModel.php
index 1c43368..8af494c 100644
--- a/module/Restore/src/Restore/Model/RestoreModel.php
+++ b/module/Restore/src/Restore/Model/RestoreModel.php
@@ -56,6 +56,10 @@ class RestoreModel
$result = $bsock->send_command($cmd_1, 2, $jobid);
$directories = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
+ if ( empty($directories['result']) ) {
+ return $retval;
+ }
+
if(empty($directories['result']['directories'])) {
$cmd_2 = '.bvfs_lsdirs jobid='.$jobid.' path=@ limit='.$limit;
$result = $bsock->send_command($cmd_2, 2, $jobid);
@@ -125,6 +129,10 @@ class RestoreModel
$result = $bsock->send_command($cmd_1, 2, $jobid);
$files = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
+ if ( empty($files['result']) ) {
+ return $retval;
+ }
+
if(empty($files['result']['files'])) {
$cmd_2 = '.bvfs_lsfiles jobid='.$jobid.' path=@ limit='.$limit.' offset='.$offset;
$result = $bsock->send_command($cmd_2, 2, $jobid);
@@ -173,8 +181,8 @@ class RestoreModel
}
$result = $bsock->send_command($cmd, 2, null);
$jobids = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
+ $result = "";
if(!empty($jobids['result'])) {
- $result = "";
$i = count($jobids['result']['jobids']);
foreach($jobids['result']['jobids'] as $jobid) {
$result .= $jobid['id'];