Zeiterfassung Anpassungen
This commit is contained in:
@@ -0,0 +1,323 @@
|
||||
let table;
|
||||
if (typeof hidesearch === "undefined") {
|
||||
var hidesearch;
|
||||
hidesearch = [100];
|
||||
}
|
||||
|
||||
if (typeof cstmdom === "undefined") {
|
||||
var cstmdom;
|
||||
cstmdom = "flBrtip";
|
||||
|
||||
}
|
||||
if (typeof columndefs === "undefined") {
|
||||
var columndefs;
|
||||
columndefs = "";
|
||||
|
||||
}
|
||||
|
||||
if (typeof columnfilter === "undefined") {
|
||||
var columnfilter;
|
||||
columnfilter = "";
|
||||
}
|
||||
if (typeof columnoptions === "undefined") {
|
||||
var columnoptions;
|
||||
columnoptions = "";
|
||||
}
|
||||
|
||||
$('#filterrow th').each(function (i) {
|
||||
let title = $('#datatable thead th').eq($(this).index()).text();
|
||||
|
||||
if (hidesearch.includes($(this).index())) {
|
||||
|
||||
} else if (columnfilter.includes($(this).index())) {
|
||||
$(this).html('<select style="padding: 0;height: 28px;;text-align: center;" id="selectsearch" class="form-control form-control-select form-control-special" data-index="' + i + '">' + columnoptions + '</select>');
|
||||
|
||||
} else {
|
||||
$(this).html('<input type="text" placeholder="' + title + '" class="form-control" data-index="' + i + '" value="" />');
|
||||
}
|
||||
});
|
||||
|
||||
table = $('#datatable').DataTable({
|
||||
responsive: true,
|
||||
"order": [[0, "desc"]],
|
||||
buttons: [
|
||||
{
|
||||
extend: 'excelHtml5',
|
||||
text: 'XLSX Export',
|
||||
className: 'btn-success margina d-none d-lg-block',
|
||||
exportOptions: {
|
||||
columns: ['th:not(:last-child)']
|
||||
}
|
||||
}
|
||||
], columnDefs: [
|
||||
columndefs
|
||||
],
|
||||
"language": {
|
||||
"url": "/datatables/json/german.json?v1"
|
||||
},
|
||||
orderCellsTop: true,
|
||||
stateSave: true,
|
||||
"initComplete": function () {
|
||||
$('#datatable_filter').append('<i id="clear_cookie" class="fas fa-times clear-fa" title="Filter löschen" aria-hidden="true" ></i>');
|
||||
$('#clear_cookie').click(function () {
|
||||
$('#filterrow input').val('');
|
||||
$('#filterrow select').val('');
|
||||
table.search('').columns().search('').draw();
|
||||
});
|
||||
},
|
||||
"dom": cstmdom,
|
||||
"ajax": {
|
||||
"url": requestUrl,
|
||||
"type": "GET",
|
||||
"data": function (d) {
|
||||
$('.display-calendar').each(function (index) {
|
||||
if ($(this).hasClass('active-calendar')) {
|
||||
d.datatype = $(this).data('datatype');
|
||||
}
|
||||
})
|
||||
|
||||
d.dataweek = $('#dataweek').val();
|
||||
d.datamonth = $('#datamonth').val();
|
||||
},
|
||||
"dataSrc": function (json) {
|
||||
$('#is-time').text(json.time.is);
|
||||
$('#must-time').text(json.time.must);
|
||||
return json.data;
|
||||
}
|
||||
|
||||
},
|
||||
"columns": [
|
||||
{
|
||||
"data": {
|
||||
_: "date.date",
|
||||
"sort": "date.order"
|
||||
},
|
||||
className: "text-nowrap"
|
||||
}, {
|
||||
"data": {
|
||||
_: "start.start",
|
||||
"sort": "start.order"
|
||||
},
|
||||
className: "text-center"
|
||||
}, {
|
||||
"data": {
|
||||
_: "end.end",
|
||||
"sort": "end.order"
|
||||
},
|
||||
className: "text-center"
|
||||
}, {
|
||||
"data": {
|
||||
_: "sum.sum",
|
||||
"sort": "sum.order"
|
||||
},
|
||||
className: "text-center"
|
||||
}, {
|
||||
"data": {
|
||||
_: "category.category",
|
||||
"sort": "category.order"
|
||||
},
|
||||
className: ""
|
||||
}
|
||||
, {
|
||||
"data": {
|
||||
_: "commend.commend",
|
||||
"sort": "commend.order"
|
||||
},
|
||||
className: "text-center"
|
||||
}, {
|
||||
"data": {
|
||||
_: "edit.edit",
|
||||
"sort": "edit.order"
|
||||
},
|
||||
className: "edit-td"
|
||||
}
|
||||
]
|
||||
|
||||
});
|
||||
|
||||
$('#filterrow').on('keyup', 'input', function () {
|
||||
|
||||
table
|
||||
.column($(this).data('index'))
|
||||
.search(this.value)
|
||||
.draw();
|
||||
|
||||
});
|
||||
|
||||
$('#selectsearch').change(function () {
|
||||
table
|
||||
.column($(this).data('index'))
|
||||
.search(this.value)
|
||||
.draw();
|
||||
|
||||
|
||||
});
|
||||
let state = table.state.loaded();
|
||||
if (state) {
|
||||
table.columns().eq(0).each(function (colIdx) {
|
||||
var colSearch = state.columns[colIdx].search;
|
||||
|
||||
if (colSearch.search) {
|
||||
$('#filterrow').find("[data-index='" + colIdx + "']").val(colSearch.search);
|
||||
}
|
||||
});
|
||||
table.draw();
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
$(".select2").select2();
|
||||
|
||||
$("body").on("change", "#timerecordingCategory_id", function () {
|
||||
if (parseInt($(this).find(':selected').data('hourday')) === 2) {
|
||||
$("#endtime-div").hide();
|
||||
$("#endtime-div").find('input').each(function () {
|
||||
$(this).prop("required", false);
|
||||
});
|
||||
$("#enddate-div").show();
|
||||
$("#enddate-div").find('input').each(function () {
|
||||
$(this).prop("required", true);
|
||||
$(this).prop("min", $('#date').val());
|
||||
$(this).val($('#date').val());
|
||||
})
|
||||
} else if (parseInt($(this).find(':selected').data('hourday')) === 1) {
|
||||
$("#endtime-div").show();
|
||||
$("#endtime-div").find('input').each(function () {
|
||||
$(this).prop("required", true);
|
||||
$(this).prop("disabled", false);
|
||||
});
|
||||
$("#enddate-div").hide();
|
||||
$("#enddate-div").find('input').each(function () {
|
||||
$(this).prop("required", false);
|
||||
$(this).prop("min", '');
|
||||
$(this).val('');
|
||||
})
|
||||
} else if (parseInt($(this).find(':selected').data('hourday')) === 3 || parseInt($(this).find(':selected').data('hourday')) === 4) {
|
||||
$("#endtime-div").hide();
|
||||
$("#endtime-div").find('input').each(function () {
|
||||
$(this).prop("required", false);
|
||||
$(this).prop("disabled", true);
|
||||
|
||||
});
|
||||
$("#enddate-div").hide();
|
||||
$("#enddate-div").find('input').each(function () {
|
||||
$(this).prop("required", false);
|
||||
$(this).prop("min", '');
|
||||
$(this).val('');
|
||||
})
|
||||
}
|
||||
if (parseInt($(this).find(':selected').data('comment')) === 1) {
|
||||
$('#commend').prop("required", true);
|
||||
} else {
|
||||
$('#commend').prop("required", false);
|
||||
}
|
||||
});
|
||||
$("body").on("change", "#date", function () {
|
||||
if ($('#enddate-div').css('display') === "block") {
|
||||
if ($('#date').val() > $('#enddate').val()) {
|
||||
$('#enddate').prop("min", $('#date').val());
|
||||
$('#enddate').val($('#date').val());
|
||||
}
|
||||
}
|
||||
});
|
||||
$("body").on("change", "#start", function () {
|
||||
|
||||
if ($('#start').val() > $('#end').val()) {
|
||||
$('#end').val($('#start').val());
|
||||
}
|
||||
$('#end').prop("min", $('#start').val());
|
||||
});
|
||||
|
||||
$("body").on("click", ".edit-button", function () {
|
||||
$('#submit-button').hide().removeClass('btn-primary').addClass('btn-danger').show();
|
||||
$('#submit-button').text('Ändern');
|
||||
$('#cancel-button').show();
|
||||
$('#timerecordingCategory_id').val($(this).data('category')).change();
|
||||
$('#id').val($(this).data('id'));
|
||||
$('#date').val($(this).data('date'));
|
||||
$('#start').val($(this).data('start'));
|
||||
$('#end').val($(this).data('end'));
|
||||
$('#enddate').val($(this).data('enddate'));
|
||||
$('#commend').val($(this).data('commend'));
|
||||
$('.alert-success').remove();
|
||||
window.scrollTo(0, 0);
|
||||
});
|
||||
$("body").on("click", "#cancel-button", function () {
|
||||
$('#submit-button').hide().removeClass('btn-danger').addClass('btn-primary').show();
|
||||
$('#submit-button').text('Speichern');
|
||||
$('#cancel-button').hide();
|
||||
$('#id').val('');
|
||||
});
|
||||
|
||||
$("body").on("change", "#dataweek,#datamonth", function () {
|
||||
table.ajax.reload();
|
||||
});
|
||||
$("body").on("click", ".display-calendar", function () {
|
||||
$('.display-calendar').each(function (index) {
|
||||
$(this).removeClass('active-calendar');
|
||||
});
|
||||
$(this).addClass('active-calendar');
|
||||
|
||||
if ($(this).data('datatype') == "1") {
|
||||
console.log($(this).data('datatype'));
|
||||
$('#dataweek-col').show();
|
||||
$('#datamonth-col').hide();
|
||||
} else if ($(this).data('datatype') == "2") {
|
||||
$('#datamonth-col').show();
|
||||
$('#dataweek-col').hide();
|
||||
}
|
||||
$(".select2").select2();
|
||||
table.ajax.reload();
|
||||
});
|
||||
$("body").on("click", ".delete-item", function () {
|
||||
if (confirm('Buchung wirklich löschen?')) {
|
||||
$.post(deleteUrl, {
|
||||
id: $.trim($(this).data('id')),
|
||||
ajax: 1
|
||||
}).done(function (data) {
|
||||
|
||||
table.ajax.reload();
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
$('form').submit(function (e) {
|
||||
e.preventDefault();
|
||||
$('#alert-box').remove();
|
||||
$.post(insertUrl, {
|
||||
id: $.trim($('#id').val()),
|
||||
timerecordingCategory_id: $.trim($('#timerecordingCategory_id').val()),
|
||||
date: $.trim($('#date').val()),
|
||||
enddate: $.trim($('#enddate').val()),
|
||||
start: $.trim($('#start').val()),
|
||||
end: $.trim($('#end').val()),
|
||||
commend: $.trim($('#commend').val()),
|
||||
ajax: 1
|
||||
}).done(function (data) {
|
||||
var result = $.parseJSON(data);
|
||||
if (result.state === "success") {
|
||||
$('.wrapper .container-fluid').prepend(`<div id="alert-box" class="row">
|
||||
<div class="col-md-1"></div>
|
||||
<div class="col-md-10 alert alert-success alert-dismissible">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<h5><i class="icon fas fa-check"></i> Erfolgreich</h5>
|
||||
` + result.message + `</div>
|
||||
</div>`);
|
||||
}
|
||||
if (result.state === "error") {
|
||||
$('.wrapper .container-fluid').prepend(`<div id="alert-box" class="row">
|
||||
<div class="col-md-1"></div>
|
||||
<div class="col-md-10 alert alert-danger alert-dismissible">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<h5><i class="icon fas fa-ban"></i> Fehler</h5>
|
||||
` + result.error + `</div>
|
||||
</div>`);
|
||||
}
|
||||
$('#submit-button').hide().removeClass('btn-danger').addClass('btn-primary').show();
|
||||
$('#submit-button').text('Speichern');
|
||||
$('#cancel-button').hide();
|
||||
$('#id').val('');
|
||||
table.ajax.reload();
|
||||
});
|
||||
});
|
||||
})
|
||||
;
|
||||
Reference in New Issue
Block a user