<?php namespace Xentral\Modules\TextTemplate\DataTable; use Xentral\Components\Database\SqlQuery\SelectQuery; use Xentral\Widgets\DataTable\Column\Column; use Xentral\Widgets\DataTable\Column\ColumnCollection; use Xentral\Widgets\DataTable\Column\ColumnFormatter; use Xentral\Widgets\DataTable\Feature\ColumnFilterFeature; use Xentral\Widgets\DataTable\Feature\FeatureCollection; use Xentral\Widgets\DataTable\Feature\TableStylingFeature; use Xentral\Widgets\DataTable\Type\AbstractDataTableType; final class TextTemplateDataTable extends AbstractDataTableType { /** * @param ColumnCollection $columns * * @return void */ public function configureColumns(ColumnCollection $columns) { $menu = Column::fixed('menu', 'Menü', 'center', '5%'); $menu->setFormatter(ColumnFormatter::template( '<table class="datatable-menu" border="0" cellspacing="0" cellpadding="0"><tbody><tr>'. '<td><a href="#" class="text-template-edit" data-edit-id="{ID}">' . '<img src="themes/new/images/edit.svg" border="0" alt="Bearbeiten"></a></td>'. '<td><a href="#" class="text-template-delete" data-delete-id="{ID}">' . '<img src="themes/new/images/delete.svg" border="0" alt="Löschen"></a></td>' . '<td><a href="#" class="text-template-apply" data-apply-id="{ID}">' . '<img src="themes/new/images/forward.svg" border="0" alt="Einfügen"></a></td>' . '</tr></tbody></table>' )); $columns->add(Column::searchable('name', 'Name', 'left', '25%')); $columns->add(Column::searchable('text', 'Text', 'left', '40%')); $columns->add(Column::searchable('stichwoerter', 'Stichwörter', 'left', '15%')); $columns->add(Column::searchable('projekt', 'Projekt', 'center', '15%')); $columns->add($menu); } /** * @param SelectQuery $query * * @return void */ public function configureQuery(SelectQuery $query) { $query ->cols([ 't.id', 't.name', 't.text', 't.stichwoerter', 't.projekt', ]) ->from('textvorlagen AS t'); } /** * @param FeatureCollection $features * * @return void */ public function configureFeatures(FeatureCollection $features) { parent::configureFeatures($features); $features->set(new ColumnFilterFeature()); $features->set(new TableStylingFeature(true)); } }