Skip to content
This repository has been archived by the owner on Mar 19, 2021. It is now read-only.

Commit

Permalink
Merge branch 'bareos-16.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
fbergkemper committed Oct 25, 2016
2 parents 5490787 + 864c93a commit 1de549f
Show file tree
Hide file tree
Showing 9 changed files with 154 additions and 61 deletions.
18 changes: 13 additions & 5 deletions module/Client/view/client/client/details.phtml
Expand Up @@ -74,6 +74,7 @@ $this->headTitle($title);
<table class="table table-hover" id="tab-backups">
<thead class="bg-primary">
<th><?php echo $this->translate("Job ID"); ?></th>
<th><?php echo $this->translate("Job name"); ?></th>
<th><?php echo $this->translate("Timestamp"); ?></th>
<th><?php echo $this->translate("Fileset"); ?></th>
<th><?php echo $this->translate("Level"); ?></th>
Expand Down Expand Up @@ -164,12 +165,13 @@ $(document).ready(function() {
},
"columns" : [
{ "data": "jobid" },
{ "data": "name" },
{ "data": "starttime" },
{ "data": null },
{ "data": "level" },
{ "data": "jobfiles" },
{ "data": "jobbytes", "type": "file-size" },
{ "data": null }
{ "data": null },
],
"paging": true,
"ordering": true,
Expand All @@ -185,25 +187,31 @@ $(document).ready(function() {
}
},
{
"targets": 2,
"targets": 1,
"render": function(data, type, full, meta) {
return '<a href="<?php echo $this->basePath(). '/fileset/details/'; ?>'+data.filesetid+'">'+data.fileset+'</a>';
return '<a href="<?php echo $this->basePath() . '/job/index?jobname='; ?>'+data+'">'+data+'</a>';
}
},
{
"targets": 3,
"render": function(data, type, full, meta) {
return '<a href="<?php echo $this->basePath(). '/fileset/details/'; ?>'+data.filesetid+'">'+data.fileset+'</a>';
}
},
{
"targets": 4,
"render": function(data, type, full, meta) {
return formatJobLevel(data);
}
},
{
"targets": 5,
"targets": 6,
"render": function(data, type, full, meta) {
return formatBytes(data);
}
},
{
"targets": 6,
"targets": 7,
"render": function(data, type, full, meta) {
return '<a class="btn btn-default btn-xs" data-toggle="tooltip" data-placement="top" href="<?php echo $this->basePath(); ?>/restore/?type=client&mergefilesets=1&mergejobs=1&client='+data.client+'&jobid='+data.jobid+'" title="<?php echo $this->translate("Show Files"); ?>" id="btn-1"><span class="glyphicon glyphicon-folder-open"></span></a>';
}
Expand Down
40 changes: 20 additions & 20 deletions module/Dashboard/src/Dashboard/Controller/DashboardController.php
Expand Up @@ -88,23 +88,23 @@ private function getJobs($status=null, $days=1, $hours=null)

if($status != null) {
if($status == "running") {
$jobs_R = $this->getJobModel()->getJobsByStatus($this->bsock, 'R', $days, $hours);
$jobs_l = $this->getJobModel()->getJobsByStatus($this->bsock, 'l', $days, $hours);
$jobs_R = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'R', $days, $hours);
$jobs_l = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'l', $days, $hours);
$num = count($jobs_R) + count($jobs_l);
}
elseif($status == "waiting") {
$jobs_F = $this->getJobModel()->getJobsByStatus($this->bsock, 'F', $days, $hours);
$jobs_S = $this->getJobModel()->getJobsByStatus($this->bsock, 'S', $days, $hours);
$jobs_s = $this->getJobModel()->getJobsByStatus($this->bsock, 's', $days, $hours);
$jobs_m = $this->getJobModel()->getJobsByStatus($this->bsock, 'm', $days, $hours);
$jobs_M = $this->getJobModel()->getJobsByStatus($this->bsock, 'M', $days, $hours);
$jobs_j = $this->getJobModel()->getJobsByStatus($this->bsock, 'j', $days, $hours);
$jobs_c = $this->getJobModel()->getJobsByStatus($this->bsock, 'c', $days, $hours);
$jobs_C = $this->getJobModel()->getJobsByStatus($this->bsock, 'C', $days, $hours);
$jobs_d = $this->getJobModel()->getJobsByStatus($this->bsock, 'd', $days, $hours);
$jobs_t = $this->getJobModel()->getJobsByStatus($this->bsock, 't', $days, $hours);
$jobs_p = $this->getJobModel()->getJobsByStatus($this->bsock, 'p', $days, $hours);
$jobs_q = $this->getJobModel()->getJobsByStatus($this->bsock, 'q', $days, $hours);
$jobs_F = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'F', $days, $hours);
$jobs_S = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'S', $days, $hours);
$jobs_s = $this->getJobModel()->getJobsByStatus($this->bsock, null, 's', $days, $hours);
$jobs_m = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'm', $days, $hours);
$jobs_M = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'M', $days, $hours);
$jobs_j = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'j', $days, $hours);
$jobs_c = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'c', $days, $hours);
$jobs_C = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'C', $days, $hours);
$jobs_d = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'd', $days, $hours);
$jobs_t = $this->getJobModel()->getJobsByStatus($this->bsock, null, 't', $days, $hours);
$jobs_p = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'p', $days, $hours);
$jobs_q = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'q', $days, $hours);
$num = count($jobs_F) + count($jobs_S) +
count($jobs_s) + count($jobs_m) +
count($jobs_M) + count($jobs_j) +
Expand All @@ -113,15 +113,15 @@ private function getJobs($status=null, $days=1, $hours=null)
count($jobs_p) + count($jobs_q);
}
elseif($status == "successful") {
$jobs_T = $this->getJobModel()->getJobsByStatus($this->bsock, 'T', $days, $hours);
$jobs_W = $this->getJobModel()->getJobsByStatus($this->bsock, 'W', $days, $hours);
$jobs_T = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'T', $days, $hours);
$jobs_W = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'W', $days, $hours);
$num = count($jobs_T) + count($jobs_W);
}
elseif($status == "unsuccessful") {
$jobs_A = $this->getJobModel()->getJobsByStatus($this->bsock, 'A', $days, $hours);
$jobs_E = $this->getJobModel()->getJobsByStatus($this->bsock, 'E', $days, $hours);
$jobs_e = $this->getJobModel()->getJobsByStatus($this->bsock, 'e', $days, $hours);
$jobs_f = $this->getJobModel()->getJobsByStatus($this->bsock, 'f', $days, $hours);
$jobs_A = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'A', $days, $hours);
$jobs_E = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'E', $days, $hours);
$jobs_e = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'e', $days, $hours);
$jobs_f = $this->getJobModel()->getJobsByStatus($this->bsock, null, 'f', $days, $hours);
$num = count($jobs_A) + count($jobs_E) + count($jobs_e) + count($jobs_f);
}
}
Expand Down
11 changes: 8 additions & 3 deletions module/Dashboard/view/dashboard/dashboard/index.phtml
Expand Up @@ -7,7 +7,6 @@
* @link https://github.com/bareos/bareos-webui for the canonical source repository
* @copyright Copyright (c) 2013-2016 Bareos GmbH & Co. KG (http://www.bareos.org/)
* @license GNU Affero General Public License (http://www.gnu.org/licenses/)
* @author Frank Bergkemper
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
Expand Down Expand Up @@ -156,9 +155,9 @@ $this->headTitle($title);
"order": [[2, 'desc']],
"columnDefs": [
{
"targets": 2,
"targets": 0,
"render": function(data, type, full, meta) {
return '<a href="<?php echo $this->basePath() . '/job/details/'; ?>'+data+'">'+data+'</a>';
return '<a href="<?php echo $this->basePath() . '/job/index?jobname='; ?>'+data+'">'+data+'</a>';
}
},
{
Expand All @@ -167,6 +166,12 @@ $this->headTitle($title);
return formatJobStatus(data);
}
},
{
"targets": 2,
"render": function(data, type, full, meta) {
return '<a href="<?php echo $this->basePath() . '/job/details/'; ?>'+data+'">'+data+'</a>';
}
},
{
"targets": 3,
"render": function(data, type, full, meta) {
Expand Down
59 changes: 36 additions & 23 deletions module/Job/src/Job/Controller/JobController.php
Expand Up @@ -68,16 +68,27 @@ public function indexAction()

$period = $this->params()->fromQuery('period') ? $this->params()->fromQuery('period') : '7';
$status = $this->params()->fromQuery('status') ? $this->params()->fromQUery('status') : 'all';
$jobname = $this->params()->fromQuery('jobname') ? $this->params()->fromQUery('jobname') : 'all';

$form = new JobForm($period, $status);
try {
$this->bsock = $this->getServiceLocator()->get('director');
$jobs = $this->getJobModel()->getJobsByType($this->bsock, null);
array_push($jobs, array('name' => 'all'));
}
catch(Exception $e) {
echo $e->getMessage();
}

$form = new JobForm($jobs, $jobname, $period, $status);

$action = $this->params()->fromQuery('action');
if(empty($action)) {
return new ViewModel(
array(
'form' => $form,
'status' => $status,
'period' => $period
'period' => $period,
'jobname' => $jobname
)
);
}
Expand Down Expand Up @@ -113,6 +124,7 @@ public function indexAction()
'form' => $form,
'status' => $status,
'period' => $period,
'jobname' => $jobname,
'result' => $result
)
);
Expand Down Expand Up @@ -272,6 +284,7 @@ public function getDataAction()

$data = $this->params()->fromQuery('data');
$jobid = $this->params()->fromQuery('jobid');
$jobname = $this->params()->fromQuery('jobname');
$status = $this->params()->fromQuery('status');
$period = $this->params()->fromQuery('period');

Expand All @@ -284,16 +297,16 @@ public function getDataAction()

if($data == "jobs" && $status == "all") {
try {
$result = $this->getJobModel()->getJobs($this->bsock, $period);
$result = $this->getJobModel()->getJobs($this->bsock, $jobname, $period);
}
catch(Exception $e) {
echo $e->getMessage();
}
}
elseif($data == "jobs" && $status == "successful") {
try {
$jobs_T = $this->getJobModel()->getJobsByStatus($this->bsock, 'T', $period, null); // Terminated
$jobs_W = $this->getJobModel()->getJobsByStatus($this->bsock, 'W', $period, null); // Terminated with warnings
$jobs_T = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'T', $period, null); // Terminated
$jobs_W = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'W', $period, null); // Terminated with warnings
$result = array_merge($jobs_T, $jobs_W);
}
catch(Exception $e) {
Expand All @@ -302,10 +315,10 @@ public function getDataAction()
}
elseif($data == "jobs" && $status == "unsuccessful") {
try {
$jobs_A = $this->getJobModel()->getJobsByStatus($this->bsock, 'A', $period, null); // Canceled jobs
$jobs_E = $this->getJobModel()->getJobsByStatus($this->bsock, 'E', $period, null); //
$jobs_e = $this->getJobModel()->getJobsByStatus($this->bsock, 'e', $period, null); //
$jobs_f = $this->getJobModel()->getJobsByStatus($this->bsock, 'f', $period, null); //
$jobs_A = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'A', $period, null); // Canceled jobs
$jobs_E = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'E', $period, null); //
$jobs_e = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'e', $period, null); //
$jobs_f = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'f', $period, null); //
$result = array_merge($jobs_A, $jobs_E, $jobs_e, $jobs_f);
}
catch(Exception $e) {
Expand All @@ -314,8 +327,8 @@ public function getDataAction()
}
elseif($data == "jobs" && $status == "running") {
try {
$jobs_R = $this->getJobModel()->getJobsByStatus($this->bsock, 'R', $period, null);
$jobs_l = $this->getJobModel()->getJobsByStatus($this->bsock, 'l', $period, null);
$jobs_R = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'R', $period, null);
$jobs_l = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'l', $period, null);
$result = array_merge($jobs_R, $jobs_l);
}
catch(Exception $e) {
Expand All @@ -324,18 +337,18 @@ public function getDataAction()
}
elseif($data == "jobs" && $status == "waiting") {
try {
$jobs_F = $this->getJobModel()->getJobsByStatus($this->bsock, 'F', $period, null);
$jobs_S = $this->getJobModel()->getJobsByStatus($this->bsock, 'S', $period, null);
$jobs_m = $this->getJobModel()->getJobsByStatus($this->bsock, 'm', $period, null);
$jobs_M = $this->getJobModel()->getJobsByStatus($this->bsock, 'M', $period, null);
$jobs_s = $this->getJobModel()->getJobsByStatus($this->bsock, 's', $period, null);
$jobs_j = $this->getJobModel()->getJobsByStatus($this->bsock, 'j', $period, null);
$jobs_c = $this->getJobModel()->getJobsByStatus($this->bsock, 'c', $period, null);
$jobs_d = $this->getJobModel()->getJobsByStatus($this->bsock, 'd', $period, null);
$jobs_t = $this->getJobModel()->getJobsByStatus($this->bsock, 't', $period, null);
$jobs_p = $this->getJobModel()->getJobsByStatus($this->bsock, 'p', $period, null);
$jobs_q = $this->getJobModel()->getJobsByStatus($this->bsock, 'q', $period, null);
$jobs_C = $this->getJobModel()->getJobsByStatus($this->bsock, 'C', $period, null);
$jobs_F = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'F', $period, null);
$jobs_S = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'S', $period, null);
$jobs_m = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'm', $period, null);
$jobs_M = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'M', $period, null);
$jobs_s = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 's', $period, null);
$jobs_j = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'j', $period, null);
$jobs_c = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'c', $period, null);
$jobs_d = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'd', $period, null);
$jobs_t = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 't', $period, null);
$jobs_p = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'p', $period, null);
$jobs_q = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'q', $period, null);
$jobs_C = $this->getJobModel()->getJobsByStatus($this->bsock, $jobname, 'C', $period, null);
$result = array_merge(
$jobs_F,$jobs_S,$jobs_m,$jobs_M,
$jobs_s,$jobs_j,$jobs_c,$jobs_d,
Expand Down
35 changes: 34 additions & 1 deletion module/Job/src/Job/Form/JobForm.php
Expand Up @@ -31,16 +31,38 @@
class JobForm extends Form
{

protected $jobs;
protected $period;
protected $status;
protected $jobname;

public function __construct($period=null, $status=null)
public function __construct($jobs=null, $jobname=null, $period=null, $status=null)
{
parent::__construct('job');

$this->jobs = $jobs;
$this->jobname = $jobname;
$this->period = $period;
$this->status = $status;

if(isset($jobname)) {
$this->add(array(
'name' => 'jobname',
'type' => 'select',
'options' => array(
'label' => _('Job name'),
'value_options' => $this->getJobnames(),
),
'attributes' => array(
'class' => 'form-control selectpicker show-tick',
'data-live-search' => 'true',
'data-size' => '6',
'id' => _('jobname'),
'value' => $jobname
)
));
}

if(isset($period)) {
$this->add(array(
'name' => 'period',
Expand Down Expand Up @@ -90,4 +112,15 @@ public function __construct($period=null, $status=null)

}

private function getJobnames()
{
$selectData = array();
if(!empty($this->jobs)) {
foreach($this->jobs as $job) {
$selectData[$job['name']] = $job['name'];
}
}
return $selectData;
}

}
21 changes: 17 additions & 4 deletions module/Job/src/Job/Model/JobModel.php
Expand Up @@ -27,14 +27,24 @@

class JobModel
{
public function getJobs(&$bsock=null, $days=null)
public function getJobs(&$bsock=null, $jobname=null, $days=null)
{
if(isset($bsock)) {
if($days == "all") {
$cmd = 'llist jobs';
if($jobname == "all") {
$cmd = 'llist jobs';
}
else {
$cmd = 'llist jobs jobname="'.$jobname.'"';
}
}
else {
$cmd = 'llist jobs days='.$days;
if($jobname == "all") {
$cmd = 'llist jobs days='.$days;
}
else {
$cmd = 'llist jobs jobname="'.$jobname.'" days='.$days;
}
}
$result = $bsock->send_command($cmd, 2, null);
if(preg_match('/Failed to send result as json. Maybe result message to long?/', $result)) {
Expand All @@ -52,7 +62,7 @@ public function getJobs(&$bsock=null, $days=null)
}
}

public function getJobsByStatus(&$bsock=null, $status=null, $days=null, $hours=null)
public function getJobsByStatus(&$bsock=null, $jobname=null, $status=null, $days=null, $hours=null)
{
if(isset($bsock, $status)) {
if(isset($days)) {
Expand All @@ -74,6 +84,9 @@ public function getJobsByStatus(&$bsock=null, $status=null, $days=null, $hours=n
else {
$cmd = 'llist jobs jobstatus='.$status.'';
}
if($jobname != "all") {
$cmd .= ' jobname="'.$jobname.'"';
}
$result = $bsock->send_command($cmd, 2, null);
$jobs = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY);
return array_reverse($jobs['result']['jobs']);
Expand Down
4 changes: 2 additions & 2 deletions module/Job/view/job/job/actions.phtml
Expand Up @@ -109,7 +109,7 @@ $this->headTitle($title);
"url": "<?php echo $this->basePath() . '/js/dataTables/language/'; ?>" + getLocale('<?php echo $_SESSION['bareos']['locale']; ?>')
},
"columns" : [
{ "data": null },
{ "data": "name" },
{ "data": "enabled", "orderable": true },
{ "data": null, "orderable": false }
],
Expand All @@ -125,7 +125,7 @@ $this->headTitle($title);
{
"targets": 0,
"render": function(data, type, full, meta) {
return data.name;
return '<a href="<?php echo $this->basePath() . '/job/index?jobname='; ?>'+data+'">'+data+'</a>';
}
},
{
Expand Down

0 comments on commit 1de549f

Please sign in to comment.