Files
FHC-Core/public/js/infocenter/rueckstellung.js
T

212 lines
6.1 KiB
JavaScript

const CONTROLLER_RUECKSTELLUNG_URL = "system/infocenter/Rueckstellung";
var Rueckstellung = {
get: function(personid)
{
FHC_AjaxClient.ajaxCallGet(
CONTROLLER_RUECKSTELLUNG_URL + "/get/"+encodeURIComponent(personid),
null,
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
{
var rueckstellungobj = FHC_AjaxClient.getData(data);
Rueckstellung._refreshRueckstellung(rueckstellungobj);
}
else
{
Rueckstellung._addRueckstellungButtons();
}
},
errorCallback: function()
{
FHC_DialogLib.alertError("error when getting rueckstellung status");
},
veilTimeout: 0
}
);
},
getStatus: function()
{
FHC_AjaxClient.ajaxCallGet(
CONTROLLER_RUECKSTELLUNG_URL + "/getStatus",
null,
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
{
let status = FHC_AjaxClient.getData(data);
$.each(status, function(key, value)
{
$('#rueckstellungtype').append($("<option/>")
.val(value.status_kurzbz)
.text(value.bezeichnung_mehrsprachig[0])
)
});
}
},
errorCallback: function()
{
FHC_DialogLib.alertError("error when getting rueckstellung status");
},
veilTimeout: 0
}
);
},
set: function(personid, date, type)
{
if (type === null)
return false;
var onRueckstellungError = function(){
$("#rueckstellungmsg").text(" Fehler beim Setzen auf " + type + "!");
};
FHC_AjaxClient.ajaxCallPost(
CONTROLLER_RUECKSTELLUNG_URL + '/set',
{
"person_id": personid,
"datum_bis": date,
"status_kurzbz": type,
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
{
Rueckstellung.get(personid);
InfocenterDetails._refreshLog()
}
else
{
onRueckstellungError();
}
},
errorCallback: onRueckstellungError,
veilTimeout: 0
}
);
},
setForPersons: function(personen, type, date)
{
if (type === null)
return false;
FHC_AjaxClient.ajaxCallPost(
CONTROLLER_RUECKSTELLUNG_URL + '/setForPersonen',
{
"personen": personen,
"datum_bis": date,
"status_kurzbz": type,
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isError(data))
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
if (FHC_AjaxClient.hasData(data))
FHC_DialogLib.alertSuccess("Erfolgreich gespeichert.")
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(textStatus);
},
veilTimeout: 0
}
);
},
delete: function(personid, status = null)
{
FHC_AjaxClient.ajaxCallPost(
CONTROLLER_RUECKSTELLUNG_URL + '/delete',
{
"person_id": personid,
"status": status
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
{
Rueckstellung.get(personid);
}
else
$("#unrueckstellungmsg").removeClass().addClass("text-warning").text(FHC_PhrasesLib.t('infocenter', 'nichtsZumEntfernen'));
},
errorCallback: function(){
$("#unrueckstellungmsg").removeClass().addClass("text-danger").text(FHC_PhrasesLib.t('infocenter', 'fehlerBeimEntfernen'));
},
veilTimeout: 0
}
);
},
_refreshRueckstellung: function(rueckstellungobj)
{
var personid = $("#hiddenpersonid").val();
var rueckstellungdate = $.datepicker.parseDate("yy-mm-dd", rueckstellungobj.bis);
var gerrueckstellungdate = $.datepicker.formatDate("dd.mm.yy", rueckstellungdate);
var removetext = FHC_PhrasesLib.t('infocenter', 'statusZuruecksetzen');
var rueckstellungdtext = FHC_PhrasesLib.t('global', 'status') + ": '" + rueckstellungobj.bezeichnung + "' " + FHC_PhrasesLib.t('global', 'bis') + ": " + gerrueckstellungdate +
" " + FHC_PhrasesLib.t('ui', 'von') + ": " + rueckstellungobj.von;
var currdate = new Date();
if (currdate > rueckstellungdate)
rueckstellungdtext = "<span class='alert-danger' data-toggle='tooltip' title='"+FHC_PhrasesLib.t('infocenter', 'datumuberschritten')+"'>"+rueckstellungdtext+"</span>";
var callbackforundo = function ()
{
Rueckstellung.delete(personid, rueckstellungobj.status_kurzbz);
}
var rueckstellunghtml = rueckstellungdtext+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
'<button class="btn btn-default" id="unrueckstellunglink"><i class="fa fa-sign-out"></i>&nbsp;' + removetext +'</button>&nbsp;'+
'<span id="unrueckstellungmsg"></span>';
$("#postponing").html(
rueckstellunghtml
);
$("#unrueckstellunglink").click(
callbackforundo
);
},
_addRueckstellungButtons: function()
{
var personid = $("#hiddenpersonid").val();
$("#postponing").html(
'<div class="form-group form-inline">'+
'<div class="form-group">' +
'<select id="rueckstellungtype" class="form-control">' +
'<option disabled selected>' + FHC_PhrasesLib.t('infocenter', 'statusAuswahl') + '</option>' +
'</select>' + '&nbsp;&nbsp;' +
'<button class="btn btn-default" id="addRueckstellung" type="button""><i class="fa fa-clock-o"></i>&nbsp;' + FHC_PhrasesLib.t('infocenter', 'statusSetzen') + '</button>&nbsp;'+
'<label id="rueckstellungdatelabel">'+FHC_PhrasesLib.t('global', 'bis') + '&nbsp;&nbsp;'+
'<input id="rueckstellungdate" type="text" class="form-control" placeholder="Parkdatum">&nbsp;'+
'<i class="fa fa-info-circle" data-toggle="tooltip" title="'+FHC_PhrasesLib.t('infocenter', 'parkenZurueckstellenInfo')+'"></i></label>'+
'<span class="text-danger" id="rueckstellungmsg"></span>'+
'</div>' +
'</div>');
Rueckstellung.getStatus();
var rueckstelldate = new Date();
rueckstelldate.setDate(rueckstelldate.getDate() + 14);
$('#rueckstellungdate').attr("value", $.datepicker.formatDate("dd.mm.yy", rueckstelldate));
$("#rueckstellungdate").datepicker({
"dateFormat": "dd.mm.yy",
"minDate": 1
});
$("#addRueckstellung").click(
function ()
{
var date = $("#rueckstellungdate").val();
var type = $("#rueckstellungtype").val();
Rueckstellung.set(personid, date, type);
}
);
},
}