- Better code style

- Clened views structure
- Use session to store the filter state
This commit is contained in:
Paolo
2017-11-29 18:26:43 +01:00
parent 80b954365e
commit 34329edb74
5 changed files with 556 additions and 112 deletions
+47 -11
View File
@@ -1,15 +1,51 @@
<div>
<?php $this->view('widgets/filter/selectFields', array('listFields' => $listFields)); ?>
</div>
<?php
$this->load->view(
'templates/header',
array('title' => 'Filters', 'tablesort' => true, 'tableid' => 'tableDataset', 'widgets' => 'zebra')
);
?>
<script language="Javascript" type="text/javascript">
$(document).ready(function() {
<br>
$("#addFilter").change(function() {
$("#filterForm").submit();
});
<div>
<?php $this->view('widgets/filter/selectFilters', array('metaData' => $metaData)); ?>
</div>
$(".remove-filter").each(function() {
$(this).click(function() {
$("#rmFilter").val($(this).attr('filterToRemove'));
});
});
<br>
$(".select-filter-operation").change(function() {
$("#filterForm").submit();
});
<div>
<?php $this->view('widgets/filter/tableDataset', array('dataset' => $dataset)); ?>
</div>
$(".select-filter-operation-value").keyup(function() {
$("#filterForm").submit();
});
});
</script>
<body>
<form id="filterForm" method="POST" action="<?php echo current_url(); ?>">
<div>
<?php FilterWidget::loadViewSelectFields($listFields); ?>
</div>
<br>
<div>
<?php FilterWidget::loadViewSelectFilters($metaData); ?>
</div>
<br>
<div>
<?php FilterWidget::loadViewTableDataset($dataset); ?>
</div>
</form>
</body>
<?php
$this->load->view('templates/footer');
?>
@@ -1,14 +1,17 @@
<div>
<?php
foreach ($listFields as $key => $value)
$selectedFields = FilterWidget::getSelectedFields();
foreach ($selectedFields as $key => $value)
{
echo '<input type="button" value="'.$value.'">';
echo '<input type="submit" value="'.$value.'" onClick="document.getElementById(\'rmField\').value=\''.$value.'\'">';
}
?>
<input type="hidden" id="rmField" name="rmField" value="">
</div>
<div>
Add:
<select>
<select name="addField" onChange="document.getElementById('filterForm').submit()">
<option value="">Select a field to add..</option>
<?php
foreach ($listFields as $key => $value)
@@ -1,59 +1,47 @@
<div>
<?php
$selectedFilters = FilterWidget::getSelectedFilters();
for ($filtersCounter = 0; $filtersCounter < count($selectedFilters); $filtersCounter++)
{
$selectedFilter = $selectedFilters[$filtersCounter];
$md = FilterWidget::getFilterMetaData($selectedFilter, $metaData);
?>
<div>
<span>
<?php echo $md->name; ?>
</span>
<?php echo FilterWidget::renderFilterType($md); ?>
<span>
<input type="submit" value="X" class="remove-filter" filterToRemove="<?php echo $md->name; ?>">
</span>
</div>
<?php
}
?>
<input type="hidden" id="rmFilter" name="rmFilter" value="">
</div>
<div>
<span>
Add filter:
</span>
<span>
<select id="addFilter" name="addFilter">
<option value="">Select a field to add...</option>
<?php
foreach ($metaData as $key => $value)
for ($listFieldsCounter = 0; $listFieldsCounter < count($listFields); $listFieldsCounter++)
{
echo '<div>';
echo $value->name;
if ($value->type == 'int4')
{
$field = $listFields[$listFieldsCounter];
?>
<select>
<option value="">=</option>
<option value="">!=</option>
<option value="">>=</option>
<option value=""><=</option>
</select>
<input type="number" value="" name="">
<input type="button" value="X" name="">
<option value="<?php echo $field; ?>"><?php echo $field; ?></option>
<?php
}
elseif ($value->type == 'varchar')
{
?>
<select>
<option value="">contains</option>
<option value="">does not contain</option>
</select>
<input type="text" value="" name="">
<input type="button" value="X" name="">
<?php
}
elseif ($value->type == 'bool')
{
?>
<select>
<option value="">is true</option>
<option value="">is false</option>
</select>
<input type="button" value="X" name="">
<?php
}
echo '</div>';
}
?>
</div>
<div>
Add filter:
<select>
<option value="">Select a field to add..</option>
<?php
foreach ($metaData as $key => $value)
{
echo '<option value="'.$value->name.'">'.$value->name.'</option>';
}
?>
</select>
</select>
</span>
</div>
@@ -1,48 +1,43 @@
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<?php
$result = $dataset->retval;
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {
$("#t0").tablesorter({
widgets: ["zebra"]
});
});
</script>
$selectedFields = FilterWidget::getSelectedFields();
?>
<div>
<table class="tablesorter" id="t0">
<table class="tablesorter" id="tableDataset">
<thead>
<tr>
<th title="PersonId">PersonId</th>
<th title="Nachname">Nachname</th>
<th title="Vorname">Vorname</th>
<th title="Email">Email</th>
<th title="Aktiv">Aktiv</th>
<?php
foreach ($selectedFields as $key => $value)
{
if (array_key_exists($value, $result[0]))
{
?>
<th title="<?php echo $value; ?>"><?php echo $value; ?></th>
<?php
}
}
?>
</tr>
</thead>
<tbody>
<?php
$result = $dataset->retval;
foreach ($result as $key => $value)
{
echo "<tr>";
foreach ($selectedFields as $key2 => $value2)
{
if (array_key_exists($value2, $value))
{
?>
<tr>
<td><?php echo $value->PersonId; ?></td>
<td><?php echo $value->Nachname; ?></td>
<td><?php echo $value->Vorname; ?></td>
<td><?php echo $value->Email; ?></td>
<td><?php echo $value->Aktiv === true ? 'True' : 'False'; ?></td>
</tr>
<td><?php echo $value->{$value2}; ?></td>
<?php
}
}
echo "</tr>";
}
?>
</tbody>