From: Marcin Haba Date: Tue, 24 Apr 2018 18:37:03 +0000 (+0200) Subject: baculum: Loading table data performance improvements X-Git-Tag: Release-9.2.0~83 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1ebfecda454c8cbd7c3a7196fbb4946fcd438496;p=thirdparty%2Fbacula.git baculum: Loading table data performance improvements --- diff --git a/gui/baculum/protected/Web/Pages/ClientList.page b/gui/baculum/protected/Web/Pages/ClientList.page index 7c13730242..6fbaefd216 100644 --- a/gui/baculum/protected/Web/Pages/ClientList.page +++ b/gui/baculum/protected/Web/Pages/ClientList.page @@ -39,6 +39,7 @@ var oClientList = { set_table: function() { var table = $('#' + this.ids.client_list).DataTable({ data: oData.clients, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/ClientView.page b/gui/baculum/protected/Web/Pages/ClientView.page index 51f64f9d16..b8ea4320b4 100644 --- a/gui/baculum/protected/Web/Pages/ClientView.page +++ b/gui/baculum/protected/Web/Pages/ClientView.page @@ -80,6 +80,7 @@ var oJobForClientList = { set_table: function() { var table = $('#' + this.ids.job_list).DataTable({ data: this.data, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/FileSetList.page b/gui/baculum/protected/Web/Pages/FileSetList.page index cafe5f678d..55c962d434 100644 --- a/gui/baculum/protected/Web/Pages/FileSetList.page +++ b/gui/baculum/protected/Web/Pages/FileSetList.page @@ -35,6 +35,7 @@ var oFileSetList = { set_table: function() { var table = $('#' + this.ids.fileset_list).DataTable({ data: <%=json_encode($this->filesets)%>, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/JobHistoryList.page b/gui/baculum/protected/Web/Pages/JobHistoryList.page index a2e40d2c4d..ec0e19d16d 100644 --- a/gui/baculum/protected/Web/Pages/JobHistoryList.page +++ b/gui/baculum/protected/Web/Pages/JobHistoryList.page @@ -50,6 +50,7 @@ var oJobList = { set_table: function() { var table = $('#' + this.ids.job_list).DataTable({ data: oData.jobs, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/JobList.page b/gui/baculum/protected/Web/Pages/JobList.page index 39c8a3c051..451573b3c3 100644 --- a/gui/baculum/protected/Web/Pages/JobList.page +++ b/gui/baculum/protected/Web/Pages/JobList.page @@ -43,6 +43,7 @@ var oJobHistoryList = { set_table: function() { var table = $('#' + this.ids.job_history_list).DataTable({ data: <%=json_encode($this->jobs)%>, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/Monitor.php b/gui/baculum/protected/Web/Pages/Monitor.php index 70b8910be0..e299393956 100644 --- a/gui/baculum/protected/Web/Pages/Monitor.php +++ b/gui/baculum/protected/Web/Pages/Monitor.php @@ -26,7 +26,7 @@ class Monitor extends BaculumWebPage { public function onInit($param) { parent::onInit($param); - $_SESSION['monitor_data'] = array( + $monitor_data = array( 'jobs' => array(), 'running_jobs' => array(), 'terminated_jobs' => array(), @@ -37,32 +37,32 @@ class Monitor extends BaculumWebPage { $params = $this->Request->contains('params') ? $this->Request['params'] : array(); if (in_array('jobs', $params)) { - $_SESSION['monitor_data']['jobs'] = $this->getModule('api')->get(array('jobs'))->output; + $monitor_data['jobs'] = $this->getModule('api')->get(array('jobs'))->output; } - $_SESSION['monitor_data']['running_jobs'] = $this->getModule('api')->get(array('jobs', '?jobstatus=CR'))->output; + $monitor_data['running_jobs'] = $this->getModule('api')->get(array('jobs', '?jobstatus=CR'))->output; if (in_array('clients', $params)) { - $_SESSION['monitor_data']['clients'] = $this->getModule('api')->get(array('clients'))->output; + $monitor_data['clients'] = $this->getModule('api')->get(array('clients'))->output; } if (in_array('pools', $params)) { - $_SESSION['monitor_data']['pools'] = $this->getModule('api')->get(array('pools'))->output; + $monitor_data['pools'] = $this->getModule('api')->get(array('pools'))->output; } if (in_array('job_totals', $params)) { - $_SESSION['monitor_data']['jobtotals'] = $this->getModule('api')->get(array('jobs', 'totals'))->output; + $monitor_data['jobtotals'] = $this->getModule('api')->get(array('jobs', 'totals'))->output; } if ($_SESSION['admin'] && in_array('dbsize', $params)) { - $_SESSION['monitor_data']['dbsize'] = $this->getModule('api')->get(array('dbsize'))->output; + $monitor_data['dbsize'] = $this->getModule('api')->get(array('dbsize'))->output; } $runningJobStates = $this->Application->getModule('misc')->getRunningJobStates(); if (in_array('jobs', $params)) { - for ($i = 0; $i < count($_SESSION['monitor_data']['jobs']); $i++) { - if (!in_array($_SESSION['monitor_data']['jobs'][$i]->jobstatus, $runningJobStates)) { - $_SESSION['monitor_data']['terminated_jobs'][] = $_SESSION['monitor_data']['jobs'][$i]; + for ($i = 0; $i < count($monitor_data['jobs']); $i++) { + if (!in_array($monitor_data['jobs'][$i]->jobstatus, $runningJobStates)) { + $monitor_data['terminated_jobs'][] = $monitor_data['jobs'][$i]; } } } - echo json_encode($_SESSION['monitor_data']); + echo json_encode($monitor_data); exit(); } } diff --git a/gui/baculum/protected/Web/Pages/PoolList.page b/gui/baculum/protected/Web/Pages/PoolList.page index 5f1c76fbff..3ddbf6e1cb 100644 --- a/gui/baculum/protected/Web/Pages/PoolList.page +++ b/gui/baculum/protected/Web/Pages/PoolList.page @@ -40,6 +40,7 @@ var oPoolList = { set_table: function() { var table = $('#' + this.ids.pool_list).DataTable({ data: oData.pools, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/PoolView.page b/gui/baculum/protected/Web/Pages/PoolView.page index 8778744b7b..c58956569a 100644 --- a/gui/baculum/protected/Web/Pages/PoolView.page +++ b/gui/baculum/protected/Web/Pages/PoolView.page @@ -158,6 +158,7 @@ var oVolumeList = { set_table: function() { var table = $('#' + this.ids.volume_list).DataTable({ data: <%=json_encode($this->volumes_in_pool)%>, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/RestoreWizard.page b/gui/baculum/protected/Web/Pages/RestoreWizard.page index cffbb6b3fe..289ed115bc 100644 --- a/gui/baculum/protected/Web/Pages/RestoreWizard.page +++ b/gui/baculum/protected/Web/Pages/RestoreWizard.page @@ -185,6 +185,7 @@ var oJobsToRestoreList = { set_table: function() { var table = $('#' + this.ids.job_list).DataTable({ data: <%=json_encode(array_values($this->getPage()->jobs_to_restore))%>, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/ScheduleList.page b/gui/baculum/protected/Web/Pages/ScheduleList.page index 0b7cf32fa8..b794eb612c 100644 --- a/gui/baculum/protected/Web/Pages/ScheduleList.page +++ b/gui/baculum/protected/Web/Pages/ScheduleList.page @@ -34,6 +34,7 @@ var oScheduleList = { set_table: function() { var table = $('#' + this.ids.schedule_list).DataTable({ data: <%=json_encode($this->schedules)%>, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/StorageList.page b/gui/baculum/protected/Web/Pages/StorageList.page index 9ed58d8f3c..35268fc70d 100644 --- a/gui/baculum/protected/Web/Pages/StorageList.page +++ b/gui/baculum/protected/Web/Pages/StorageList.page @@ -38,6 +38,7 @@ var oStorageList = { set_table: function() { var table = $('#' + this.ids.storage_list).DataTable({ data: <%=json_encode($this->storages)%>, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/VolumeList.page b/gui/baculum/protected/Web/Pages/VolumeList.page index f8f78e5ccc..be2c523147 100644 --- a/gui/baculum/protected/Web/Pages/VolumeList.page +++ b/gui/baculum/protected/Web/Pages/VolumeList.page @@ -42,6 +42,7 @@ var oVolumeList = { set_table: function() { var table = $('#' + this.ids.volume_list).DataTable({ data: <%=json_encode($this->volumes)%>, + deferRender: true, columns: [ { className: 'details-control', diff --git a/gui/baculum/protected/Web/Pages/VolumeView.page b/gui/baculum/protected/Web/Pages/VolumeView.page index 1d56fbdef4..278efb8b65 100644 --- a/gui/baculum/protected/Web/Pages/VolumeView.page +++ b/gui/baculum/protected/Web/Pages/VolumeView.page @@ -359,6 +359,7 @@ var oJobsOnVolumeList = { set_table: function() { var table = $('#' + this.ids.jobs_on_volume_list).DataTable({ data: <%=json_encode($this->jobs_on_volume)%>, + deferRender: true, columns: [ { className: 'details-control',