]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/Web/Portlets/TrayBar.tpl
baculum: New Baculum API and Baculum Web
[bacula/bacula] / gui / baculum / protected / Web / Portlets / TrayBar.tpl
1 <div id="tray_bar">
2         <img src="<%=$this->getPage()->getTheme()->getBaseUrl()%>/gearwheel-icon.png" alt="<%[ Running jobs: ]%>" /> <%[ Running jobs: ]%> <span class="bold" id="running_jobs"></span>
3         <img src="<%=$this->getPage()->getTheme()->getBaseUrl()%>/check-icon.png" alt="<%[ Finished jobs: ]%>" /> <%[ Finished jobs: ]%> <span class="bold" id="finished_jobs"></span>
4 </div>
5 <script type="text/javascript">
6         var oMonitor;
7         var default_refresh_interval = 60000;
8         var default_fast_refresh_interval = 10000;
9         var timeout_handler;
10         var last_callback_time = 0;
11         var callback_time_offset = 0;
12         var oData;
13         $(function() {
14                 oMonitor = function() {
15                         return $.ajax('<%=$this->Service->constructUrl("Monitor")%>', {
16                                 dataType: 'json',
17                                 beforeSend: function() {
18                                         if (job_callback_duration) {
19                                                 callback_time_offset = job_callback_duration - last_callback_time;
20                                         }
21                                         last_callback_time = new Date().getTime();
22                                 },
23                                 success: function(response) {
24                                         if (timeout_handler) {
25                                                 clearTimeout(timeout_handler);
26                                         }
27                                         oData = response;
28                                         Statistics.grab_statistics(oData, oJobsStates);
29
30                                         if (PanelWindow.currentWindowId === 'dashboard') {
31                                                 Dashboard.update_all(Statistics, TEXT);
32                                         }
33
34                                         if (oData.running_jobs.length > 0) {
35                                                 refreshInterval =  callback_time_offset + default_fast_refresh_interval;
36                                         } else {
37                                                 refreshInterval = default_refresh_interval;
38                                         }
39                                         job_callback_func();
40                                         status_callback_func();
41                                         document.getElementById('running_jobs').textContent = oData.running_jobs.length;
42                                         document.getElementById('finished_jobs').textContent = oData.terminated_jobs.length;
43                                         timeout_handler = setTimeout("oMonitor()", refreshInterval);
44                                 }
45                         });
46                 };
47                 oMonitor();
48         });
49         </script>