Added/Adapted JS functions for 'Stornierte Lehrauftraege'

- redrawed tabulator when opening the collapsed module. Must be done
  to display stornierte lehrauftraege.
- generated storniert-tooltip
- generated storniert-status icon
- adapted selectableCheck to leave stornierte unselectable
This commit is contained in:
Cris
2019-12-18 14:48:53 +01:00
committed by hainberg
parent ef3eedb989
commit 34a55e2332
+130 -95
View File
@@ -17,7 +17,7 @@ const COLOR_LIGHTGREY = "#f5f5f5";
const ICON_LEHRAUFTRAG_ORDERED = '<img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px; margin: -6px;">';
const ICON_LEHRAUFTRAG_APPROVED = '<img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px; margin: -6px;">';
const ICON_LEHRAUFTRAG_CHANGED = '<img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px; margin: -6px;">';
const ICON_LEHRAUFTRAG_CANCELLED = '<img src="../../../public/images/icons/fa-user-times.png" style="height: 30px; width: 30px; margin: -6px;">';
// -----------------------------------------------------------------------------------------------------------------
// Mutators - setter methods to manipulate table data when entering the tabulator
@@ -134,10 +134,12 @@ function func_selectableCheck(row){
var betrag = parseFloat(row.getData().betrag);
var vertrag_betrag = parseFloat(row.getData().vertrag_betrag);
if (isNaN(betrag))
{
betrag = 0;
}
var is_storniert = row.getData().storniert != undefined;
if (isNaN(betrag))
{
betrag = 0;
}
// only allow to select bestellte && erteilte && nicht geaenderte Lehraufträge
return row.getData().bestellt != null && // bestellt
@@ -149,18 +151,18 @@ function func_selectableCheck(row){
// Adds column status
function func_tableBuilt(table) {
// Add status column to table
table.addColumn(
{
title: "<i class='fa fa-user-o'></i>",
field: "status",
width:40,
align:"center",
downloadTitle: 'Status',
formatter: status_formatter,
tooltip: status_tooltip
}, true
);
// Add status column to table
table.addColumn(
{
title: "<i class='fa fa-user-o'></i>",
field: "status",
width:40,
align:"center",
downloadTitle: 'Status',
formatter: status_formatter,
tooltip: status_tooltip
}, true
);
}
// Sets status values into column status
@@ -311,9 +313,10 @@ function func_rowSelectionChanged(data, rows){
// Generates status icons
status_formatter = function(cell, formatterParams, onRendered){
var bestellt = cell.getRow().getData().bestellt;
var erteilt = cell.getRow().getData().erteilt;
var akzeptiert = cell.getRow().getData().akzeptiert;
var bestellt = cell.getRow().getData().bestellt;
var erteilt = cell.getRow().getData().erteilt;
var akzeptiert = cell.getRow().getData().akzeptiert;
var is_storniert = cell.getRow().getData().storniert != undefined;
var stunden = parseFloat(cell.getRow().getData().stunden);
var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden);
@@ -326,47 +329,54 @@ status_formatter = function(cell, formatterParams, onRendered){
betrag = 0;
}
// commented icons would be so nice to have with fontawsome 5.11...
if (bestellt != null && isNaN(vertrag_betrag))
{
return "<i class='fas fa-user-minus'></i>"; // kein Vertrag
}
else if (bestellt != null && (betrag != vertrag_betrag) ||
bestellt != null && stunden != vertrag_stunden)
{
return ICON_LEHRAUFTRAG_CHANGED; // geaendert
// return "<i class='fas fa-user-edit'></i>";
}
else if (bestellt == null && erteilt == null && akzeptiert == null)
{
return "<i class='fa fa-user-plus'></i>"; // neu
}
else if (bestellt != null && erteilt == null && akzeptiert == null)
{
return ICON_LEHRAUFTRAG_ORDERED; // bestellt
// return "<i class='fa fa-user-tag'></i>";
}
else if (bestellt != null && erteilt != null && akzeptiert == null)
{
return ICON_LEHRAUFTRAG_APPROVED; // erteilt
// return "<i class='fas fa-user-check'></i>";
}
else if (bestellt != null && erteilt != null && akzeptiert != null)
{
return "<i class='fa fa-handshake-o'></i>"; // akzeptiert
// return "<i class='fas fa-user-graduate'></i>";
}
else
{
return "<i class='fa fa-user'></i>"; // default
}
// commented icons would be so nice to have with fontawsome 5.11...
if (bestellt != null && isNaN(vertrag_betrag))
{
return "<i class='fas fa-user-minus'></i>"; // kein Vertrag
}
else if (bestellt != null && (betrag != vertrag_betrag) ||
bestellt != null && stunden != vertrag_stunden)
{
return ICON_LEHRAUFTRAG_CHANGED; // geaendert
// return "<i class='fas fa-user-edit'></i>";
}
else if (bestellt == null && erteilt == null && akzeptiert == null && !is_storniert)
{
return "<i class='fa fa-user-plus'></i>"; // neu
}
else if (bestellt != null && erteilt == null && akzeptiert == null)
{
return ICON_LEHRAUFTRAG_ORDERED; // bestellt
// return "<i class='fa fa-user-tag'></i>";
}
else if (bestellt != null && erteilt != null && akzeptiert == null)
{
return ICON_LEHRAUFTRAG_APPROVED; // erteilt
// return "<i class='fas fa-user-check'></i>";
}
else if (bestellt != null && erteilt != null && akzeptiert != null)
{
return "<i class='fa fa-handshake-o'></i>"; // akzeptiert
// return "<i class='fas fa-user-graduate'></i>";
}
else if (is_storniert)
{
return ICON_LEHRAUFTRAG_CANCELLED; // storniert
}
else
{
return "<i class='fa fa-user'></i>"; // default
}
};
// Generates status tooltip
status_tooltip = function(cell){
var bestellt = cell.getRow().getData().bestellt;
var erteilt = cell.getRow().getData().erteilt;
var akzeptiert = cell.getRow().getData().akzeptiert;
var bestellt = cell.getRow().getData().bestellt;
var erteilt = cell.getRow().getData().erteilt;
var akzeptiert = cell.getRow().getData().akzeptiert;
var is_storniert = cell.getRow().getData().storniert != undefined;
var letzterStatus_vorStorniert = cell.getRow().getData().letzterStatus_vorStorniert;
var stunden = parseFloat(cell.getRow().getData().stunden);
var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden);
@@ -379,32 +389,42 @@ status_tooltip = function(cell){
betrag = 0;
}
var text = 'Lehrauftrag in Bearbeitung. ';
if (letzterStatus_vorStorniert != undefined && letzterStatus_vorStorniert == 'akzeptiert')
{
letzterStatus_vorStorniert = 'angenommen';
}
if (bestellt != null && erteilt == null && akzeptiert == null
&& (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when never erteilt before)
{
text += 'Wartet auf Erteilung.';
return text;
}
else if (bestellt != null && erteilt != null && akzeptiert == null
&& (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when has been erteilt once)
{
text += 'Wartet auf erneute Erteilung.';
return text;
}
else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt
{
return 'Letzter Status: Bestellt. Wartet auf Erteilung.';
}
else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt
{
return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.';
}
else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert
{
return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.';
}
var text = 'Lehrauftrag in Bearbeitung. ';
if (bestellt != null && erteilt == null && akzeptiert == null
&& (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when never erteilt before)
{
text += 'Wartet auf Erteilung.';
return text;
}
else if (bestellt != null && erteilt != null && akzeptiert == null
&& (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when has been erteilt once)
{
text += 'Wartet auf erneute Erteilung.';
return text;
}
else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt
{
return 'Letzter Status: Bestellt. Wartet auf Erteilung.';
}
else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt
{
return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.';
}
else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert
{
return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.';
}
else if (is_storniert)
{
return 'Dieser Vertrag wurde storniert. Letzter Status vor Stornierung war: '
+ letzterStatus_vorStorniert; // storniert
}
}
// Generates bestellt tooltip
@@ -429,6 +449,13 @@ akzeptiert_tooltip = function(cell){
}
}
// Generates storniert tooltip
storniert_tooltip = function(cell){
if (cell.getRow().getData().storniert_von != null) {
return 'Storniert von: ' + cell.getRow().getData().storniert_von;
}
}
$(function() {
// Show all rows
@@ -468,17 +495,20 @@ $(function() {
);
});
// Set png-icons into filter-buttons
$(".btn-lehrauftrag").each(function(){
switch(this.id) {
case 'show-ordered':
this.innerHTML = ICON_LEHRAUFTRAG_ORDERED;
break;
case 'show-approved':
this.innerHTML = ICON_LEHRAUFTRAG_APPROVED;
break;
}
});
// Set png-icons into filter-buttons
$(".btn-lehrauftrag").each(function(){
switch(this.id) {
case 'show-ordered':
this.innerHTML = ICON_LEHRAUFTRAG_ORDERED;
break;
case 'show-approved':
this.innerHTML = ICON_LEHRAUFTRAG_APPROVED;
break;
case 'show-cancelled':
this.innerHTML = ICON_LEHRAUFTRAG_CANCELLED;
break;
}
});
// De/activate and un/focus on clicked button
$(".btn-lehrauftrag").click(function() {
@@ -488,8 +518,13 @@ $(function() {
$(this).addClass('focus').addClass('active');
});
// Approve Lehrauftraege
$("#accept-lehrauftraege").click(function(){
// Redraw table stornierte lehrauftraege on button click
$('#collapseCancelledLehrauftraege').on('shown.bs.collapse', function () {
$('[tableuniqueid = cancelledLehrauftrag] #tableWidgetTabulator').tabulator('redraw', true);
});
// Approve Lehrauftraege
$("#accept-lehrauftraege").click(function(){
// Get selected rows data
var selected_data = $('#tableWidgetTabulator').tabulator('getSelectedData')