PropertymodifierTable: move and refactor
This commit is contained in:
parent
578446d79c
commit
a4e6d3251a
|
@ -1,62 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Icinga\Module\Director\Tables;
|
|
||||||
|
|
||||||
use Icinga\Module\Director\Web\Table\QuickTable;
|
|
||||||
|
|
||||||
class PropertymodifierTable extends QuickTable
|
|
||||||
{
|
|
||||||
public function getColumns()
|
|
||||||
{
|
|
||||||
return array(
|
|
||||||
'id' => 'm.id',
|
|
||||||
'source_id' => 'm.source_id',
|
|
||||||
'source_name' => 's.source_name',
|
|
||||||
'property' => 'CASE WHEN m.description IS NULL THEN'
|
|
||||||
. ' CASE WHEN m.target_property IS NULL'
|
|
||||||
. ' THEN m.property_name'
|
|
||||||
. " ELSE m.target_property || ' <- ' || m.property_name END"
|
|
||||||
. ' ELSE'
|
|
||||||
. ' CASE WHEN m.target_property IS NULL'
|
|
||||||
. ' THEN m.property_name'
|
|
||||||
. " ELSE m.target_property || ' <- ' || m.property_name END"
|
|
||||||
. " || ': ' || m.description END",
|
|
||||||
'provider_class' => 'm.provider_class',
|
|
||||||
'priority' => 'm.priority',
|
|
||||||
'description' => 'CASE WHEN s.description IS NULL THEN s.source_name'
|
|
||||||
. " ELSE s.source_name || ': ' || s.description END",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getActionUrl($row)
|
|
||||||
{
|
|
||||||
return $this->url(
|
|
||||||
'director/importsource/editmodifier',
|
|
||||||
array(
|
|
||||||
'id' => $row->id,
|
|
||||||
'source_id' => $row->source_id,
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getTitles()
|
|
||||||
{
|
|
||||||
$view = $this->view();
|
|
||||||
return array(
|
|
||||||
'property' => $view->translate('Property'),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getBaseQuery()
|
|
||||||
{
|
|
||||||
return $this->db()->select()->from(
|
|
||||||
array('s' => 'import_source'),
|
|
||||||
array()
|
|
||||||
)->join(
|
|
||||||
array('m' => 'import_row_modifier'),
|
|
||||||
's.id = m.source_id',
|
|
||||||
array()
|
|
||||||
)->order('property')
|
|
||||||
->order('priority');
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Icinga\Module\Director\Web\Table;
|
||||||
|
|
||||||
|
use Icinga\Module\Director\Objects\ImportSource;
|
||||||
|
use ipl\Html\Link;
|
||||||
|
use ipl\Web\Table\ZfQueryBasedTable;
|
||||||
|
|
||||||
|
class PropertymodifierTable extends ZfQueryBasedTable
|
||||||
|
{
|
||||||
|
/** @var ImportSource */
|
||||||
|
protected $source;
|
||||||
|
|
||||||
|
public static function load(ImportSource $source)
|
||||||
|
{
|
||||||
|
$table = new static($source->getConnection());
|
||||||
|
$table->source = $source;
|
||||||
|
return $table;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function assemble()
|
||||||
|
{
|
||||||
|
$this->attributes()->set('data-base-target', '_self');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getColumns()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
'id' => 'm.id',
|
||||||
|
'source_id' => 'm.source_id',
|
||||||
|
'property_name' => 'm.property_name',
|
||||||
|
'target_property' => 'm.target_property',
|
||||||
|
'description' => 'm.description',
|
||||||
|
'provider_class' => 'm.provider_class',
|
||||||
|
'priority' => 'm.priority',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renderRow($row)
|
||||||
|
{
|
||||||
|
$caption = $row->property_name;
|
||||||
|
if ($row->target_property !== null) {
|
||||||
|
$caption .= ' -> ' . $row->target_property;
|
||||||
|
}
|
||||||
|
if ($row->description !== null) {
|
||||||
|
$caption .= ': ' . $row->description;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this::row([
|
||||||
|
Link::create(
|
||||||
|
$caption,
|
||||||
|
'director/importsource/editmodifier',
|
||||||
|
[
|
||||||
|
'id' => $row->id,
|
||||||
|
'source_id' => $row->source_id,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getColumnsToBeRendered()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
$this->translate('Property'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prepareQuery()
|
||||||
|
{
|
||||||
|
return $this->db()->select()->from(
|
||||||
|
['m' => 'import_row_modifier'],
|
||||||
|
$this->getColumns()
|
||||||
|
)->where('m.source_id = ?', $this->source->getId())
|
||||||
|
->order('priority');
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue