Added Javascript button functionalities and functions for Tabulator

Added buttons and functionalities for
. showing all
. showing new
. select all
. deselect all
...Lehraufträge in tabulator-table

Added methods to manipulate date-data and filtering in tabulator.
This commit is contained in:
hainberg
2019-09-12 14:09:57 +02:00
parent 94d13fd77a
commit 35b37179e9
@@ -13,6 +13,7 @@ $this->load->view(
'tabulator' => true,
'momentjs' => true,
'ajaxlib' => true,
'dialoglib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'phrases' => array(
@@ -27,68 +28,64 @@ $this->load->view(
<body>
<div id="page-wrapper">
<div class="container-fluid">
<!-- <form id="formLehrauftrag" class="form-inline" action="" method="get">-->
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
<?php echo ucfirst($this->p->t('global', 'lehrauftraege')); ?>
</h3>
</div>
<div class="col-lg-12">
<form id="formLehrauftrag" class="form-inline" action="" method="get">
<div class="form-group">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
)
);
?>
</div>
<div class="form-group">
<?php
echo $this->widgetlib->widget(
'Studiengang_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiengang_selected,
'studiengang' => $studiengang
),
array(
'name' => 'studiengang',
'id' => 'studiengang'
)
);
?>
</div>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
</form>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<?php $this->load->view('lehre/lehrauftrag/lehrauftragData.php'); ?>
</div>
</div>
<!-- <div class="row">-->
<!-- <div class="col-lg-12">-->
<!-- <!-- <form id="formLehrauftragBestellen" class="form-inline" action="" method="get">-->
<!-- <button type="submit" id="submitBestellen" name="submit" value="bestellen" class="btn btn-primary form-group pull-right">Lehrauftrag bestellen</button>-->
<!-- <!-- </form>-->
<!-- </div>-->
<!-- </div>-->
<!-- </form>-->
<div class="row">
<div class="col-lg-12">
<button id="order-lehrauftraege" type="submit" id="submitBestellen" name="submit" value="bestellen" class="btn btn-primary form-group pull-right">Lehrauftrag bestellen</button>
<h3 class="page-header">
<?php echo ucfirst($this->p->t('global', 'lehrauftraege')); ?>
</h3>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<form id="formLehrauftrag" class="form-inline" action="" method="get">
<div class="form-group">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
)
);
?>
</div>
<div class="form-group">
<?php
echo $this->widgetlib->widget(
'Studiengang_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiengang_selected,
'studiengang' => $studiengang
),
array(
'name' => 'studiengang',
'id' => 'studiengang'
)
);
?>
</div>
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
</form>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<?php $this->load->view('lehre/lehrauftrag/lehrauftragData.php'); ?>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<button id="order-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag bestellen</button>
<button id="select-all" class="btn btn-default">Alle auswählen</button>
<button id="deselect-all" class="btn btn-default">Alle abwählen</button>
<button id="show-all" class="btn btn-default">Alle anzeigen</button>
<button id="show-new" class="btn btn-default">Nur neue anzeigen</button>
</div>
</div>
</div>
@@ -96,3 +93,89 @@ $this->load->view(
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
<script type="text/javascript">
// -----------------------------------------------------------------------------------------------------------------
// Mutators - setter methods to manipulate table data when entering the tabulator
// -----------------------------------------------------------------------------------------------------------------
// Converts string date postgre style to string DD.MM.YYYY.
// This will allow correct filtering.
var mut_formatStringDate = function(value, data, type, params, component) {
if (value != null)
{
var d = new Date(value);
return d.getDate() + "." + ("0"+(d.getMonth()+1)).slice(-2) + "." + d.getFullYear();
}
}
// -----------------------------------------------------------------------------------------------------------------
// Header filter
// -----------------------------------------------------------------------------------------------------------------
// Casts string formatted float values to float when using the filter.
// This will allow correct filtering.
function hf_compareWithFloat(headerValue, rowValue, rowData, filterParams){
//headerValue - the value of the header filter element
//rowValue - the value of the column in this row
//rowData - the data for the row being filtered
//filterParams - params object passed to the headerFilterFuncParams property
return parseFloat(headerValue) <= parseFloat(rowValue); //must return a boolean, true if it passes the filter.
}
$(function() {
// Select all (filtered) rows and ignore rows which have status bestellt
$("#select-all").click(function(){
//$('#filterTabulator').tabulator('selectRow', true);
$('#filterTabulator').tabulator('getRows')
.filter(row => row.getData().Bestellt == null)
.forEach((row => row.select()));
});
// Deselect all (filtered) rows
$("#deselect-all").click(function(){
$('#filterTabulator').tabulator('deselectRow');
});
// Show all rows
$("#show-all").click(function(){
$('#filterTabulator').tabulator('removeFilter', 'Bestellt', '=', null);
});
// Show only rows with new lehrauftraege
$("#show-new").click(function(){
$('#filterTabulator').tabulator('setFilter', 'Bestellt', '=', null);
});
// Order Lehrauftraege
$("#order-lehrauftraege").click(function(){
var selected_data = $('#filterTabulator').tabulator('getSelectedData');
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/orderLehrauftrag",
selected_data,
{
successCallback: function (data, textStatus, jqXHR)
{
if (data.retval != null)
{
// Update status 'Bestellt'
$('#filterTabulator').tabulator('updateData', data.retval);
}
FHC_DialogLib.alertSuccess("Alle " + data.retval.length + " Lehraufträge wurden bestellt.")
},
errorCallback: function (jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError("Sytemfehler<br>Bestellung wurde nicht durchgeführt.");
}
}
);
});
});
</script>