Compare commits
10 Commits
release-0.
...
release-0.
| Author | SHA1 | Date | |
|---|---|---|---|
| 6648fd8b24 | |||
| 073da2c4e2 | |||
| d474fba2b3 | |||
| c5eb93dd46 | |||
| fbc6f7da48 | |||
| 49e5635a71 | |||
| 8739f6c516 | |||
| 5f786d16d7 | |||
| 22a3d94dc3 | |||
| f3415ff57a |
@@ -183,10 +183,12 @@ class RippingCluster_Job {
|
|||||||
$database = RippingCluster_Main::instance()->database();
|
$database = RippingCluster_Main::instance()->database();
|
||||||
$database->insert(
|
$database->insert(
|
||||||
'INSERT INTO jobs
|
'INSERT INTO jobs
|
||||||
(id,name,source,destination,title,format,video_codec,video_width,video_height,quantizer,deinterlace,audio_tracks,audio_codecs,audio_names,subtitle_tracks)
|
(id,name,source_plugin,rip_plugin,source,destination,title,format,video_codec,video_width,video_height,quantizer,deinterlace,audio_tracks,audio_codecs,audio_names,subtitle_tracks)
|
||||||
VALUES(NULL,:name,:source,:destination,:title,:format,:video_codec,:video_width,:video_height,:quantizer,:deinterlace,:audio_tracks,:audio_codecs,:audio_names,:subtitle_tracks)',
|
VALUES(NULL,:name,:source,:destination,:title,:format,:video_codec,:video_width,:video_height,:quantizer,:deinterlace,:audio_tracks,:audio_codecs,:audio_names,:subtitle_tracks)',
|
||||||
array(
|
array(
|
||||||
array('name' => 'name', 'value' => $this->name, 'type' => PDO::PARAM_STR),
|
array('name' => 'name', 'value' => $this->name, 'type' => PDO::PARAM_STR),
|
||||||
|
array('name' => 'source_plugin', 'value' => $this->source_plugin, 'type' => PDO::PARAM_STR),
|
||||||
|
array('name' => 'rip_plugin', 'value' => $this->rip_plugin, 'type' => PDO::PARAM_STR),
|
||||||
array('name' => 'source', 'value' => $this->source_filename, 'type' => PDO::PARAM_STR),
|
array('name' => 'source', 'value' => $this->source_filename, 'type' => PDO::PARAM_STR),
|
||||||
array('name' => 'destination', 'value' => $this->destination_filename, 'type' => PDO::PARAM_STR),
|
array('name' => 'destination', 'value' => $this->destination_filename, 'type' => PDO::PARAM_STR),
|
||||||
array('name' => 'title', 'value' => $this->title, 'type' => PDO::PARAM_INT),
|
array('name' => 'title', 'value' => $this->title, 'type' => PDO::PARAM_INT),
|
||||||
@@ -333,6 +335,14 @@ class RippingCluster_Job {
|
|||||||
return $this->name;
|
return $this->name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function sourcePlugin() {
|
||||||
|
return $this->source_plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function ripPlugin() {
|
||||||
|
return $this->rip_plugin;
|
||||||
|
}
|
||||||
|
|
||||||
public function sourceFilename() {
|
public function sourceFilename() {
|
||||||
return $this->source_filename;
|
return $this->source_filename;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class RippingCluster_Main extends SihnonFramework_Main {
|
|||||||
$this->smarty->registerPlugin('modifier', 'formatDuration', array('RippingCluster_Main', 'formatDuration'));
|
$this->smarty->registerPlugin('modifier', 'formatDuration', array('RippingCluster_Main', 'formatDuration'));
|
||||||
$this->smarty->registerPlugin('modifier', 'formatFilesize', array('RippingCluster_Main', 'formatFilesize'));
|
$this->smarty->registerPlugin('modifier', 'formatFilesize', array('RippingCluster_Main', 'formatFilesize'));
|
||||||
|
|
||||||
$this->smarty->assign('version', '0.2');
|
$this->smarty->assign('version', '0.2.1');
|
||||||
$this->smarty->assign('messages', array());
|
$this->smarty->assign('messages', array());
|
||||||
|
|
||||||
$this->smarty->assign('base_uri', $this->base_uri);
|
$this->smarty->assign('base_uri', $this->base_uri);
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
$job_id = $this->request->get('id');
|
|
||||||
$job = RippingCluster_Job::fromId($job_id);
|
|
||||||
$this->smarty->assign('job', $job);
|
|
||||||
|
|
||||||
$log = RippingCluster_Main::instance()->log();
|
|
||||||
|
|
||||||
$client_log_entries = RippingCluster_LogEntry::recentEntriesByField($log, 'webui', 'job_id', $job_id, 'ctime', SihnonFramework_Log::ORDER_DESC, 30);
|
|
||||||
$worker_log_entries = RippingCluster_LogEntry::recentEntriesByField($log, 'worker', 'job_id', $job_id, 'ctime', SihnonFramework_Log::ORDER_DESC, 30);
|
|
||||||
$this->smarty->assign('client_log_entries', $client_log_entries);
|
|
||||||
$this->smarty->assign('worker_log_entries', $worker_log_entries);
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
||||||
45
webui/source/pages/jobs/details.php
Normal file
45
webui/source/pages/jobs/details.php
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$main = RippingCluster_Main::instance();
|
||||||
|
$req = $main->request();
|
||||||
|
$log = $main->log();
|
||||||
|
$config = $main->config();
|
||||||
|
|
||||||
|
$job_id = $req->get('id');
|
||||||
|
$job = RippingCluster_Job::fromId($job_id);
|
||||||
|
$this->smarty->assign('job', $job);
|
||||||
|
|
||||||
|
// Fetch log entries for this job
|
||||||
|
$log_count = $req->get('logs', $config->get('job.logs.default_display_count'));
|
||||||
|
|
||||||
|
$default_log_order = $config->get('job.logs.default_order');
|
||||||
|
$log_order = $req->get('order', $default_log_order);
|
||||||
|
if ( ! in_array($log_order, array(SihnonFramework_Log::ORDER_ASC, SihnonFramework_Log::ORDER_DESC))) {
|
||||||
|
$log_order = $default_log_order;
|
||||||
|
}
|
||||||
|
$this->smarty->assign('log_order', $log_order);
|
||||||
|
$this->smarty->assign('log_order_reverse', ($log_order == SihnonFramework_Log::ORDER_ASC ? SihnonFramework_Log::ORDER_DESC : SihnonFramework_Log::ORDER_ASC));
|
||||||
|
|
||||||
|
$client_log_entries = array();
|
||||||
|
$worker_log_entries = array();
|
||||||
|
|
||||||
|
$log_count_display = null;
|
||||||
|
if ($log_count == 'all') {
|
||||||
|
$log_count_display = 'all';
|
||||||
|
$log_count = '18446744073709551615'; // see mysql man page for LIMIT
|
||||||
|
} else if(!is_int($log_count)) {
|
||||||
|
$log_count = $config->get('job.logs.default_display_count');
|
||||||
|
$log_count_display = $log_count;
|
||||||
|
} else {
|
||||||
|
$log_count_display = $log_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
$client_log_entries = RippingCluster_LogEntry::recentEntriesByField($log, 'webui', 'job_id', $job_id, 'ctime', $log_order, $log_count);
|
||||||
|
$worker_log_entries = RippingCluster_LogEntry::recentEntriesByField($log, 'worker', 'job_id', $job_id, 'ctime', $log_order, $log_count);
|
||||||
|
|
||||||
|
$this->smarty->assign('log_count_display', $log_count_display);
|
||||||
|
$this->smarty->assign('client_log_entries', $client_log_entries);
|
||||||
|
$this->smarty->assign('worker_log_entries', $worker_log_entries);
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
{if $running_jobs}
|
{if $running_jobs}
|
||||||
{foreach from=$running_jobs item=job}
|
{foreach from=$running_jobs item=job}
|
||||||
<li><a href="{$base_uri}job-details/id/{$job->id()}" title="View job details">{$job->name()} ({$job->currentStatus()->ripProgress()}%)</a></li>
|
<li><a href="{$base_uri}jobs/details/id/{$job->id()}" title="View job details">{$job->name()} ({$job->currentStatus()->ripProgress()}%)</a></li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{else}
|
{else}
|
||||||
<em>There are no currently running jobs.</em>
|
<em>There are no currently running jobs.</em>
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
{if $queued_jobs}
|
{if $queued_jobs}
|
||||||
{foreach from=$queued_jobs item=job}
|
{foreach from=$queued_jobs item=job}
|
||||||
<li><a href="{$base_uri}job-details/id/{$job->id()}" title="View job details">{$job->name()}</a></li>
|
<li><a href="{$base_uri}jobs/details/id/{$job->id()}" title="View job details">{$job->name()}</a></li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{else}
|
{else}
|
||||||
<em>There are no currently running jobs.</em>
|
<em>There are no currently running jobs.</em>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
{if $completed_jobs}
|
{if $completed_jobs}
|
||||||
<ul>
|
<ul>
|
||||||
{foreach from=$completed_jobs item=job}
|
{foreach from=$completed_jobs item=job}
|
||||||
<li><a href="{$base_uri}job-details/id/{$job->id()}" title="View job details">{$job->name()}</a></li>
|
<li><a href="{$base_uri}jobs/details/id/{$job->id()}" title="View job details">{$job->name()}</a></li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</ul>
|
</ul>
|
||||||
{else}
|
{else}
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
{if $failed_jobs}
|
{if $failed_jobs}
|
||||||
<ul>
|
<ul>
|
||||||
{foreach from=$failed_jobs item=job}
|
{foreach from=$failed_jobs item=job}
|
||||||
<li><a href="{$base_uri}job-details/id/{$job->id()}" title="View job details">{$job->name()}</a></li>
|
<li><a href="{$base_uri}jobs/details/id/{$job->id()}" title="View job details">{$job->name()}</a></li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</ul>
|
</ul>
|
||||||
{else}
|
{else}
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
<h2>Job Details</h2>
|
|
||||||
|
|
||||||
<h3>Summary</h3>
|
|
||||||
|
|
||||||
<em>Summary details here</em>
|
|
||||||
|
|
||||||
<h3>Recent Client Logs</h3>
|
|
||||||
|
|
||||||
{if $client_log_entries}
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Level</th>
|
|
||||||
<th>Time</th>
|
|
||||||
<th>Message</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{foreach from=$client_log_entries item=log_entry}
|
|
||||||
<tr>
|
|
||||||
<td>{$log_entry->level()}</td>
|
|
||||||
<td>{$log_entry->ctime()|date_format:"%Y-%m-%d %H:%M:%S"}</td>
|
|
||||||
<td>{$log_entry->message()}</td>
|
|
||||||
</tr>
|
|
||||||
{/foreach}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{else}
|
|
||||||
<em>There are no client log entries.</em>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Recent Worker Logs</h3>
|
|
||||||
|
|
||||||
{if $worker_log_entries}
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Level</th>
|
|
||||||
<th>Time</th>
|
|
||||||
<th>Message</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{foreach from=$worker_log_entries item=log_entry}
|
|
||||||
<tr>
|
|
||||||
<td>{$log_entry->level()}</td>
|
|
||||||
<td>{$log_entry->ctime()|date_format:"%Y-%m-%d %H:%M:%S"}</td>
|
|
||||||
<td>{$log_entry->message()}</td>
|
|
||||||
</tr>
|
|
||||||
{/foreach}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{else}
|
|
||||||
<em>There are no worker log entries.</em>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
{foreach from=$jobs item=job}
|
{foreach from=$jobs item=job}
|
||||||
{assign var=current_status value=$job->currentStatus()}
|
{assign var=current_status value=$job->currentStatus()}
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="{$base_uri}job-details/id/{$job->id()}" title="View job details">{$job->name()}</a></td>
|
<td><a href="{$base_uri}jobs/details/id/{$job->id()}" title="View job details">{$job->name()}</a></td>
|
||||||
<td>
|
<td>
|
||||||
{$job->destinationFilename()}
|
{$job->destinationFilename()}
|
||||||
{if $job->isFinished()}
|
{if $job->isFinished()}
|
||||||
|
|||||||
91
webui/source/templates/jobs/details.tpl
Normal file
91
webui/source/templates/jobs/details.tpl
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
<h2>Job Details</h2>
|
||||||
|
|
||||||
|
<h3>Summary</h3>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>Source Plugin</dt>
|
||||||
|
<dd>{$job->sourcePlugin()}</dd>
|
||||||
|
|
||||||
|
<dt>Rip Plugin</dt>
|
||||||
|
<dd>{$job->ripPlugin()}</dd>
|
||||||
|
|
||||||
|
<dt>Source Filename</dt>
|
||||||
|
<dd>{$job->sourceFilename()}</dd>
|
||||||
|
|
||||||
|
<dt>Source Title</dt>
|
||||||
|
<dd>{$job->title()}</dd>
|
||||||
|
|
||||||
|
<dt>Status</dt>
|
||||||
|
<dd>{$job->currentStatus()->statusName()} ({$job->currentStatus()->mtime()|date_format:'%Y-%m-%d %H:%M:%S'})</dd>
|
||||||
|
|
||||||
|
<dt>Destination Filename</dt>
|
||||||
|
<dd>{$job->destinationFilename()}</dd>
|
||||||
|
|
||||||
|
{if $job->isFinished()}
|
||||||
|
<dt>Destination Filesize</dt>
|
||||||
|
<dd>{$job->outputFilesize()|formatFilesize}</dd>
|
||||||
|
{/if}
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h3>Log messages</h3>
|
||||||
|
<h4>Options</h4>
|
||||||
|
<ul>
|
||||||
|
{if $log_count_display eq 'all'}
|
||||||
|
<li><a href="{$base_uri}jobs/details/id/{$job->id()}/order/{$log_order}/" title="View recent logs only">View recent messages only</a></li>
|
||||||
|
{else}
|
||||||
|
<li><a href="{$base_uri}jobs/details/id/{$job->id()}/logs/all/" title="View all logs">View all messages</a></li>
|
||||||
|
{/if}
|
||||||
|
<li><a href="{$base_uri}jobs/details/id/{$job->id()}/logs/{$log_count_display}/order/{$log_order_reverse}/" title="Reverse display order of log messages">Reverse display order</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>Recent Client Logs</h4>
|
||||||
|
{if $client_log_entries}
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Level</th>
|
||||||
|
<th>Time</th>
|
||||||
|
<th>Message</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{foreach from=$client_log_entries item=log_entry}
|
||||||
|
<tr>
|
||||||
|
<td>{$log_entry->level()}</td>
|
||||||
|
<td>{$log_entry->ctime()|date_format:"%Y-%m-%d %H:%M:%S"}</td>
|
||||||
|
<td>{$log_entry->message()}</td>
|
||||||
|
</tr>
|
||||||
|
{/foreach}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{else}
|
||||||
|
<em>There are no client log entries.</em>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
<h4>Recent Worker Logs</h4>
|
||||||
|
{if $worker_log_entries}
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Level</th>
|
||||||
|
<th>Time</th>
|
||||||
|
<th>Hostname</th>
|
||||||
|
<th>Message</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{foreach from=$worker_log_entries item=log_entry}
|
||||||
|
<tr>
|
||||||
|
<td>{$log_entry->level()}</td>
|
||||||
|
<td>{$log_entry->ctime()|date_format:"%Y-%m-%d %H:%M:%S"}</td>
|
||||||
|
<td>{$log_entry->hostname()}</td>
|
||||||
|
<td>{$log_entry->message()}</td>
|
||||||
|
</tr>
|
||||||
|
{/foreach}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{else}
|
||||||
|
<em>There are no worker log entries.</em>
|
||||||
|
{/if}
|
||||||
|
|
||||||
Reference in New Issue
Block a user