- Renamed controllers/system/Test.php to controllers/system/TestFilterWidget.php

- Fixed problem with table sorter in views/templates/header.php
- Added checkboxes functionality to FilterWidget to render automatically the select column
- Added additionalColumns functionality to add additional columns to the dataset table
- Added formatRaw functionality to give an anonymous function as parameter to format every single raw of the dataset table
- The filter can be loaded from DB also by filter_id
This commit is contained in:
Paolo
2017-12-05 15:04:07 +01:00
parent 443dc9a7e7
commit e6aba9a3e2
5 changed files with 322 additions and 166 deletions
-66
View File
@@ -1,66 +0,0 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Test extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('WidgetLib');
}
/**
*
*/
public function sql()
{
echo $this->widgetlib->widget(
'FilterWidget',
array(
'app' => 'core',
'datasetName' => 'Arbeitspakete',
'query' => '
SELECT p.person_id AS "PersonId",
p.nachname AS "Nachname",
p.vorname AS "Vorname",
k.kontakt AS "Email",
p.aktiv AS "Aktiv"
FROM public.tbl_person p INNER JOIN public.tbl_kontakt k USING(person_id)
WHERE p.aktiv = TRUE
AND p.person_id = k.person_id
AND k.kontakttyp = \'email\'
AND p.person_id < 1000
'
)
);
}
/**
*
*/
public function direct()
{
echo $this->widgetlib->widget(
'FilterWidget',
array(
'app' => 'core',
'datasetName' => 'Arbeitspakete',
'filter_kurzbz' => 'This filter filters',
'query' => '
SELECT p.person_id AS "PersonId",
p.nachname AS "Nachname",
p.vorname AS "Vorname",
k.kontakt AS "Email",
p.aktiv AS "Aktiv"
FROM public.tbl_person p INNER JOIN public.tbl_kontakt k USING(person_id)
WHERE p.aktiv = TRUE
AND p.person_id = k.person_id
AND k.kontakttyp = \'email\'
AND p.person_id < 1000
'
)
);
}
}
@@ -0,0 +1,59 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class TestFilterWidget extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('WidgetLib');
}
/**
*
*/
public function sql()
{
echo $this->widgetlib->widget(
'FilterWidget',
array(
'app' => 'core',
'datasetName' => 'kontakts',
'filterKurzbz' => 'This filter filters',
'query' => '
SELECT p.person_id AS "PersonId",
p.nachname AS "Nachname",
p.vorname AS "Vorname",
k.kontakt AS "Email",
p.aktiv AS "Aktiv"
FROM public.tbl_person p INNER JOIN public.tbl_kontakt k USING(person_id)
WHERE p.aktiv = TRUE
AND p.person_id = k.person_id
AND k.kontakttyp = \'email\'
AND p.person_id < 1000
',
'checkboxes' => array('PersonId'),
'additionalColumns' => array('Delete', 'Edit'),
'formatRaw' => function($fieldName, $fieldValue, $datasetRaw) {
if ($fieldName == 'PersonId')
{
$datasetRaw->{$fieldName} = '<a href="view/'.$datasetRaw->PersonId.'">'.$fieldValue.'</a>';
}
if ($fieldName == 'Delete')
{
$datasetRaw->{$fieldName} = '<a href="delete/'.$datasetRaw->PersonId.'">Delete</a>';
}
if ($fieldName == 'Edit')
{
$datasetRaw->{$fieldName} = '<a href="edit/'.$datasetRaw->PersonId.'">Edit</a>';
}
return $datasetRaw;
}
)
);
}
}