restore show running workflows ability for when spectre not running
This commit is contained in:
parent
8cd7266d24
commit
3b16243ba7
3 changed files with 73 additions and 51 deletions
|
|
@ -17,6 +17,7 @@
|
||||||
- More complete error messages from spectre
|
- More complete error messages from spectre
|
||||||
- fix: Wiki uploads didn't obey image and thumbnail size
|
- fix: Wiki uploads didn't obey image and thumbnail size
|
||||||
- fix: Doesn't copy LDAP link to user on create, also wrong search base
|
- fix: Doesn't copy LDAP link to user on create, also wrong search base
|
||||||
|
- fix: Unable to view running workflows if spectre not running
|
||||||
|
|
||||||
7.4.8
|
7.4.8
|
||||||
- fix: Syndicated Content doesn't display all items with multiple feeds in interleaved mode
|
- fix: Syndicated Content doesn't display all items with multiple feeds in interleaved mode
|
||||||
|
|
|
||||||
|
|
@ -578,66 +578,87 @@ ENDCODE
|
||||||
name=>rand(100000),
|
name=>rand(100000),
|
||||||
timeout=>10
|
timeout=>10
|
||||||
);
|
);
|
||||||
if (! $remote) {
|
|
||||||
my $output = $i18n->get('spectre not running error');
|
|
||||||
return $ac->render($output, $i18n->get('show running workflows'));
|
|
||||||
}
|
|
||||||
|
|
||||||
my $sitename = $session->config()->get('sitename')->[0];
|
my $sitename = $session->config()->get('sitename')->[0];
|
||||||
my $workflowResult = $remote->post_respond('workflow/getJsonStatus',$sitename);
|
my $workflowResult;
|
||||||
if (! defined $workflowResult) {
|
if ($remote) {
|
||||||
$remote->disconnect();
|
$workflowResult = $remote->post_respond('workflow/getJsonStatus',$sitename);
|
||||||
my $output = $i18n->get('spectre no info error');
|
if (!defined $workflowResult) {
|
||||||
return $ac->render($output, $i18n->get('show running workflows'));
|
$remote->disconnect();
|
||||||
|
$output = $i18n->get('spectre no info error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$output = $i18n->get('spectre not running error')
|
||||||
}
|
}
|
||||||
|
|
||||||
my $workflowsHref = jsonToObj($workflowResult);
|
if (defined $workflowResult) {
|
||||||
|
my $workflowsHref = jsonToObj($workflowResult);
|
||||||
|
|
||||||
my $workflowTitleFor = $session->db->buildHashRef(<<"");
|
my $workflowTitleFor = $session->db->buildHashRef(<<"");
|
||||||
SELECT wi.instanceId, w.title
|
SELECT wi.instanceId, w.title
|
||||||
FROM WorkflowInstance wi
|
FROM WorkflowInstance wi
|
||||||
JOIN Workflow w USING (workflowId)
|
JOIN Workflow w USING (workflowId)
|
||||||
|
|
||||||
my $lastActivityFor = $session->db->buildHashRef(<<"");
|
my $lastActivityFor = $session->db->buildHashRef(<<"");
|
||||||
SELECT wi.instanceId, wa.title
|
SELECT wi.instanceId, wa.title
|
||||||
FROM WorkflowInstance wi
|
FROM WorkflowInstance wi
|
||||||
JOIN WorkflowActivity wa ON wi.currentActivityId = wa.activityId
|
JOIN WorkflowActivity wa ON wi.currentActivityId = wa.activityId
|
||||||
|
|
||||||
for my $workflowType (qw( Suspended Waiting Running )) {
|
for my $workflowType (qw( Suspended Waiting Running )) {
|
||||||
my $workflowsAref = $workflowsHref->{$workflowType};
|
my $workflowsAref = $workflowsHref->{$workflowType};
|
||||||
my $workflowCount = @$workflowsAref;
|
my $workflowCount = @$workflowsAref;
|
||||||
|
|
||||||
my $titleHeader = $i18n->get('title header');
|
my $titleHeader = $i18n->get('title header');
|
||||||
my $priorityHeader = $i18n->get('priority header');
|
my $priorityHeader = $i18n->get('priority header');
|
||||||
my $activityHeader = $i18n->get('activity header');
|
my $activityHeader = $i18n->get('activity header');
|
||||||
my $lastStateHeader = $i18n->get('last state header');
|
my $lastStateHeader = $i18n->get('last state header');
|
||||||
my $lastRunTimeHeader = $i18n->get('last run time header');
|
my $lastRunTimeHeader = $i18n->get('last run time header');
|
||||||
$output .= sprintf $i18n->get('workflow type count'), $workflowCount, $workflowType;
|
$output .= sprintf $i18n->get('workflow type count'), $workflowCount, $workflowType;
|
||||||
$output .= '<table style="width: 100%;">';
|
$output .= '<table style="width: 100%;">';
|
||||||
$output .= "<tr><th>$titleHeader</th><th>$priorityHeader</th><th>$activityHeader</th>";
|
$output .= "<tr><th>$titleHeader</th><th>$priorityHeader</th><th>$activityHeader</th>";
|
||||||
$output .= "<th>$lastStateHeader</th><th>$lastRunTimeHeader</th></tr>";
|
$output .= "<th>$lastStateHeader</th><th>$lastRunTimeHeader</th></tr>";
|
||||||
|
|
||||||
for my $workflow (@$workflowsAref) {
|
for my $workflow (@$workflowsAref) {
|
||||||
my($priority, $id, $instance) = @$workflow;
|
my($priority, $id, $instance) = @$workflow;
|
||||||
|
|
||||||
my $originalPriority = ($instance->{priority} - 1) * 10;
|
my $originalPriority = ($instance->{priority} - 1) * 10;
|
||||||
my $instanceId = $instance->{instanceId};
|
my $instanceId = $instance->{instanceId};
|
||||||
my $title = $workflowTitleFor->{$instanceId} || '(no title)';
|
my $title = $workflowTitleFor->{$instanceId} || '(no title)';
|
||||||
my $lastActivity = $lastActivityFor->{$instanceId} || '(none)';
|
my $lastActivity = $lastActivityFor->{$instanceId} || '(none)';
|
||||||
my $lastRunTime = $instance->{lastRunTime} || '(never)';
|
my $lastRunTime = $instance->{lastRunTime} || '(never)';
|
||||||
|
|
||||||
$output .= '<tr>';
|
$output .= '<tr>';
|
||||||
$output .= "<td>$title</td>";
|
$output .= "<td>$title</td>";
|
||||||
$output .= qq[<td><a id="priority-$instanceId" href="javascript:void(0);" title="Edit Priority" onclick="showEditPriorityForm('$instanceId')">$priority</a>/$originalPriority</td>];
|
$output .= qq[<td><a id="priority-$instanceId" href="javascript:void(0);" title="Edit Priority" onclick="showEditPriorityForm('$instanceId')">$priority</a>/$originalPriority</td>];
|
||||||
$output .= "<td>$lastActivity</td>";
|
$output .= "<td>$lastActivity</td>";
|
||||||
$output .= "<td>$instance->{lastState}</td>";
|
$output .= "<td>$instance->{lastState}</td>";
|
||||||
$output .= "<td>$lastRunTime</td>";
|
$output .= "<td>$lastRunTime</td>";
|
||||||
|
|
||||||
if ($isAdmin) {
|
if ($isAdmin) {
|
||||||
my $run = $i18n->get('run');
|
my $run = $i18n->get('run');
|
||||||
my $href = $session->url->page(qq[op=runWorkflow;instanceId=$instanceId]);
|
my $href = $session->url->page(qq[op=runWorkflow;instanceId=$instanceId]);
|
||||||
$output .= qq[<td><a href="$href">$run</a></td>];
|
$output .= qq[<td><a href="$href">$run</a></td>];
|
||||||
|
}
|
||||||
|
$output .= "</tr>\n";
|
||||||
}
|
}
|
||||||
|
$output .= '</table>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$output .= '<table width="100%">';
|
||||||
|
my $rs = $session->db->read("select Workflow.title, WorkflowInstance.lastStatus, WorkflowInstance.runningSince, WorkflowInstance.lastUpdate, WorkflowInstance.instanceId from WorkflowInstance left join Workflow on WorkflowInstance.workflowId=Workflow.workflowId order by WorkflowInstance.runningSince desc");
|
||||||
|
while (my ($title, $status, $runningSince, $lastUpdate, $id) = $rs->array) {
|
||||||
|
my $class = $status || "complete";
|
||||||
|
$output .= '<tr class="'.$class.'">'
|
||||||
|
.'<td>'.$title.'</td>'
|
||||||
|
.'<td>'.$session->datetime->epochToHuman($runningSince).'</td>';
|
||||||
|
if ($status) {
|
||||||
|
$output .= '<td>'
|
||||||
|
.$status.' / '.$session->datetime->epochToHuman($lastUpdate)
|
||||||
|
.'</td>';
|
||||||
|
}
|
||||||
|
$output .= '<td><a href="'.$session->url->page("op=runWorkflow;instanceId=".$id).'">'.$i18n->get("run").'</a></td>'
|
||||||
|
if ($isAdmin);
|
||||||
$output .= "</tr>\n";
|
$output .= "</tr>\n";
|
||||||
}
|
}
|
||||||
$output .= '</table>';
|
$output .= '</table>';
|
||||||
|
|
|
||||||
|
|
@ -179,13 +179,13 @@ our $I18N = {
|
||||||
},
|
},
|
||||||
|
|
||||||
'spectre not running error' => {
|
'spectre not running error' => {
|
||||||
message => q|Spectre <b>is not running</b>.<br/>Unable to get workflow information.|,
|
message => q|Spectre <b>is not running</b>.<br />Unable to get detailed workflow information.<br />|,
|
||||||
context => q||,
|
context => q||,
|
||||||
lastUpdated => 0,
|
lastUpdated => 1192031332,
|
||||||
},
|
},
|
||||||
|
|
||||||
'spectre no info error' => {
|
'spectre no info error' => {
|
||||||
message => q|Spectre <b>is running</b>, but I was not able to get workflow information.|,
|
message => q|Spectre <b>is running</b>, but I was not able to get detailed workflow information.<br />|,
|
||||||
context => q||,
|
context => q||,
|
||||||
lastUpdated => 0,
|
lastUpdated => 0,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue