# display Mb/Gb/Kb
sub human_size
{
- my @unit = qw(b Kb Mb Gb Tb);
+ my @unit = qw(B KB MB GB TB);
my $val = shift || 0;
my $i=0;
my $format = '%i %s';
my ($self) = @_;
my $where='';
- my $arg = $self->get_form("client", "qre_client", "jclient_groups");
+ my $arg = $self->get_form("client", "qre_client", "jclient_groups", "qnotingroup");
if ($arg->{qre_client}) {
$where = "WHERE Name $self->{sql}->{MATCH} $arg->{qre_client} ";
$where = "JOIN client_group_member ON (Client.ClientId = client_group_member.clientid)
JOIN client_group USING (client_group_id)
WHERE client_group_name IN ($arg->{jclient_groups})";
+ } elsif ($arg->{qnotingroup}) {
+ $where = "
+ WHERE NOT EXISTS
+ (SELECT 1 FROM client_group_member
+ WHERE Client.ClientId = client_group_member.ClientId
+ )
+";
+
}
my $query = "
maxvoljobs => 0,
maxvolbytes => 0,
maxvolfiles => 0,
+ pathid => 1,
);
my %opt_ss =( # string with space
LEFT JOIN FileSet ON (Job.FileSetId = FileSet.FileSetId)
$cgq
WHERE Client.ClientId=Job.ClientId
- AND Job.JobStatus != 'R'
+ AND Job.JobStatus NOT IN ('R', 'C')
$where
$limit
";
COALESCE(jobok.jobbytes,0) + COALESCE(joberr.jobbytes,0) AS jobbytes,
COALESCE(jobok.joberrors,0) + COALESCE(joberr.joberrors,0) AS joberrors,
COALESCE(jobok.nbjobs,0) AS nbjobok,
- COALESCE(joberr.nbjobs,0) AS nbjoberr
+ COALESCE(joberr.nbjobs,0) AS nbjoberr,
+ COALESCE(jobok.duration, '0:0:0') AS duration
-FROM (
+FROM client_group LEFT JOIN (
SELECT client_group_name AS client_group_name, COUNT(1) AS nbjobs,
SUM(JobFiles) AS jobfiles, SUM(JobBytes) AS jobbytes,
- SUM(JobErrors) AS joberrors
+ SUM(JobErrors) AS joberrors,
+ SUM($self->{sql}->{SEC_TO_TIME}( $self->{sql}->{UNIX_TIMESTAMP}(EndTime)
+ - $self->{sql}->{UNIX_TIMESTAMP}(StartTime)))
+ AS duration
+
FROM Job JOIN client_group_member ON (Job.ClientId = client_group_member.ClientId)
JOIN client_group USING (client_group_id)
WHERE JobStatus = 'T'
$where
$limit
-) AS jobok LEFT JOIN
+) AS jobok USING (client_group_name) LEFT JOIN
(
SELECT client_group_name AS client_group_name, COUNT(1) AS nbjobs,