350 lines
16 KiB
HTML
350 lines
16 KiB
HTML
{% extends "users/base.html" %}
|
|
{% load crispy_forms_tags %}
|
|
{% load counter_tag %}
|
|
{% block content %}
|
|
<div class="content-section">
|
|
<h3>{{user.get_full_name}} wirklich löschen?</h3>
|
|
<!-- Für das Speichern der Bilder enctype -->
|
|
<form method="POST">
|
|
{% csrf_token %}
|
|
{% if orgaerror == False %}
|
|
<hr>
|
|
<h4>Untergeordnete Mitarbeiter</h4>
|
|
<p>Wählen Sie aus, welcher Mitarbeiter als übergeordneter Mitarbeiter durch {{user.get_full_name}} ersetzt werden soll. Vorher kann der Nutzer nicht gelöscht werden.</p>
|
|
<div class="input-group mb-3 col-6 mt-2" >
|
|
<input class="form-control" list="neworga" id="neworgafield" type="text" onkeyup="" >
|
|
<div class="input-group-append">
|
|
<button type="button" onclick="javascript:clearField('neworgafield')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
|
|
</div>
|
|
<datalist id="neworga">
|
|
{% for us in usersofagency %}
|
|
<option id="neworga_{{us.pk}}" value="{{us.get_full_name}}">{{us.get_full_name}}</option>
|
|
{% endfor %}
|
|
</datalist>
|
|
<div class="input-group-append">
|
|
<button class="btn btn-primary" type="button" id="updateOrgaButton" onclick="javascript:updateOrga()">Speichern</button>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
{% endif %}
|
|
<h4>In folgenden Standards ist {{object.get_full_name}} involviert:</h4>
|
|
<p>Wählen Sie aus, wer anstelle von {{object.get_full_name}} eingesetzt werden soll. Bleibt das Feld frei, wird der Standard nicht verändert und der zu löschende Nutzer wird entfernt.</p>
|
|
<hr>
|
|
<div class="input-group mb-3 col-6" >
|
|
<input class="form-control" list="copyusertoall" id="copyusertoallfield" type="text" onkeyup="" >
|
|
<div class="input-group-append">
|
|
<button type="button" onclick="javascript:clearField('copyusertoallfield')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
|
|
</div>
|
|
<datalist id="copyusertoall">
|
|
{% for us in usersofagency %}
|
|
<option id="copyall_{{us.pk}}" value="{{us.get_full_name}}">{{us.get_full_name}}</option>
|
|
{% endfor %}
|
|
</datalist>
|
|
<div class="input-group-append">
|
|
<button class="btn btn-primary" type="button" onclick="javascript:updateAllStandard()" id="">Auf alle übertragen</button>
|
|
<button class="btn btn-success" type="button" onclick="javascript:saveAll()">Alle Speichern</button>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="accordion">
|
|
{% for s in standards_to_change %}
|
|
<div class="card">
|
|
<div class="card-header" id="head_s_{{s.pk}}">
|
|
<h5 class="mb-0">
|
|
<button type="button" class="btn btn-link" data-toggle="collapse" data-target="#s_{{s.pk}}" aria-expanded="true" aria-controls="collapseOne">
|
|
<i class="fas fa-chevron-down" style="padding-right: 20px;"></i>Standard: <b>{{s.name}}</b>
|
|
</button>
|
|
</h5>
|
|
</div>
|
|
|
|
<div id="s_{{s.pk}}" class="collapse" aria-labelledby="head_s_{{s.pk}}" data-parent="#accordion">
|
|
<div class="card-body">
|
|
|
|
<h5>
|
|
<span><button class="btn btn-sm btn-secondary" type="button" onclick="javascript:showStandard({{s.pk}})"><i class="fas fa-eye"></i></button></span>
|
|
Standard betrachten
|
|
</h5>
|
|
|
|
<table style="width: 60%;">
|
|
{% if s.created_standard_by == user_to_del %}
|
|
<tr>
|
|
<td style="padding-bottom: 15px;">
|
|
<span>Ersteller ändern auf: </span></td>
|
|
<td>
|
|
<div class="input-group mb-3" >
|
|
<input class="form-control inputfield" list="users_created_standard_{{s.pk}}" id="users_created_standard_{{s.pk}}_input" type="text" onkeyup="" >
|
|
<div class="input-group-append">
|
|
<button type="button" onclick="javascript:clearField('users_created_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
|
|
</div>
|
|
<datalist id="users_created_standard_{{s.pk}}">
|
|
{% for us in usersofagency %}
|
|
<option id="users_created_standard_{{s.pk}}_{{us.pk}}" value="{{us.get_full_name}}">{{us.get_full_name}}</option>
|
|
{% endfor %}
|
|
</datalist>
|
|
<div class="input-group-append">
|
|
<button class="btn btn-primary savebutton" type="button" onclick="javascript:updateStandard('created', {{s.pk}})" id="btn_users_created_standard_{{s.pk}}_save">Speichern</button>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
|
|
{% if user_to_del in s.representative.all %}
|
|
<tr>
|
|
<td style="padding-bottom: 15px;">
|
|
<span>Vertretung übertragen auf: </span></td>
|
|
<td>
|
|
<div class="input-group mb-3" >
|
|
<input class="form-control inputfield" list="users_repr_standard_{{s.pk}}" id="users_repr_standard_{{s.pk}}_input" type="text" onkeyup="" >
|
|
<div class="input-group-append">
|
|
<button type="button" onclick="javascript:clearField('users_repr_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
|
|
</div>
|
|
<datalist id="users_repr_standard_{{s.pk}}">
|
|
{% for us in usersofagency %}
|
|
<option id="users_repr_standard_{{s.pk}}_{{us.pk}}" value="{{us.get_full_name}}">{{us.get_full_name}}</option>
|
|
{% endfor %}
|
|
</datalist>
|
|
<div class="input-group-append">
|
|
<button class="btn btn-primary savebutton" type="button" onclick="javascript:updateStandard('repr', {{s.pk}})" id="btn_users_repr_standard_{{s.pk}}_save">Speichern</button>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
|
|
{% if user_to_del in s.executor.all %}
|
|
<tr>
|
|
<td style="padding-bottom: 15px;">
|
|
<span>Ausführung übertragen auf: </span></td>
|
|
<td>
|
|
<div class="input-group mb-3" >
|
|
<input class="form-control inputfield" list="users_ex_standard_{{s.pk}}" id="users_ex_standard_{{s.pk}}_input" type="text" onkeyup="" >
|
|
<div class="input-group-append">
|
|
<button type="button" onclick="javascript:clearField('users_ex_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
|
|
</div>
|
|
<datalist id="users_ex_standard_{{s.pk}}">
|
|
{% for us in usersofagency %}
|
|
<option id="users_ex_standard_{{s.pk}}_{{us.pk}}" value="{{us.get_full_name}}">{{us.get_full_name}}</option>
|
|
{% endfor %}
|
|
</datalist>
|
|
<div class="input-group-append">
|
|
<button class="btn btn-primary savebutton" type="button" onclick="javascript:updateStandard('executor', {{s.pk}})" id="btn_users_ex_standard_{{s.pk}}_save">Speichern</button>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
|
|
{% if user_to_del in s.authority.all %}
|
|
<tr>
|
|
<td style="padding-bottom: 15px;">
|
|
<span>Verantwortung übertragen auf: </span>
|
|
</td>
|
|
<td>
|
|
<div class="input-group mb-3" >
|
|
<input class="form-control inputfield" list="users_auth_standard_{{s.pk}}" id="users_auth_standard_{{s.pk}}_input" type="text" onkeyup="" >
|
|
<div class="input-group-append">
|
|
<button type="button" onclick="javascript:clearField('users_auth_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
|
|
</div>
|
|
<datalist id="users_auth_standard_{{s.pk}}">
|
|
{% for us in usersofagency %}
|
|
<option id="users_auth_standard_{{s.pk}}_{{us.pk}}" value="{{us.get_full_name}}">{{us.get_full_name}}</option>
|
|
{% endfor %}
|
|
</datalist>
|
|
<div class="input-group-append">
|
|
<button class="btn btn-primary savebutton" type="button" onclick="javascript:updateStandard('auth', {{s.pk}})" id="btn_users_auth_standard_{{s.pk}}_save">Speichern</button>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
|
|
</div><!-- ACCORDION CLOSE -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<hr >
|
|
<p>Alle Chat-Nachrichten werden unwiederruflich gelöscht! Soeben wurden alle Vertragsdaten (Abwesenheit und Zeiterfassung), wenn vorhanden, als CSV heruntergeladen. Diese können Sie archivieren und entsprechend Ihrer agenturinternen Gegebenheiten bzgl. Datenspeicherung aufbewahren.<br /></p>
|
|
<a href="{% url 'users-delete-getdata' user.pk %}" id="downloadFileAction" download>Daten erneut herunterladen</a>
|
|
<hr>
|
|
<div class="form-group">
|
|
<button type="submit" class="btn btn-primary" id="finalDelButton" {% if orgaerror == False %} disabled {% endif %}>Benutzer löschen</button>
|
|
<a href="{% url 'dasettings' %}" class="btn">Abbrechen</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<script type="text/javascript">
|
|
//Auto-Download the file
|
|
$(document).ready(function(){
|
|
location.href = "{% url 'users-delete-getdata' user.pk %}"
|
|
})
|
|
|
|
|
|
|
|
function clearField(id){
|
|
$("#" + id).val("");
|
|
}
|
|
|
|
function showStandard(spk){
|
|
$("#modal_" + spk).modal("toggle");
|
|
}
|
|
|
|
//Update the Standard. Validation serverside
|
|
function updateStandard(kind, pk){
|
|
var id = "";
|
|
|
|
if(kind == "created"){
|
|
var value = $("#users_created_standard_" + pk + "_input").val();
|
|
if(value.length > 0){
|
|
id = $('#users_created_standard_'+ pk).find('option[value="' + value + '"]').attr('id');
|
|
buttonid = "btn_users_created_standard_" + pk + "_save";
|
|
}
|
|
}
|
|
else if(kind == "executor"){
|
|
var value = $("#users_ex_standard_" + pk + "_input").val();
|
|
if(value.length > 0){
|
|
id = $('#users_ex_standard_'+ pk).find('option[value="' + value + '"]').attr('id');
|
|
buttonid = "btn_users_ex_standard_" + pk + "_save";
|
|
}
|
|
}
|
|
else if(kind == "repr"){
|
|
var value = $("#users_repr_standard_" + pk + "_input").val();
|
|
if(value.length > 0){
|
|
id = $('#users_repr_standard_'+ pk).find('option[value="' + value + '"]').attr('id');
|
|
buttonid = "btn_users_repr_standard_" + pk + "_save";
|
|
}
|
|
}
|
|
else if(kind == "auth"){
|
|
var value = $("#users_auth_standard_" + pk + "_input").val();
|
|
if(value.length > 0){
|
|
id = $('#users_auth_standard_'+ pk).find('option[value="' + value + '"]').attr('id');
|
|
buttonid = "btn_users_auth_standard_" + pk + "_save";
|
|
}
|
|
}
|
|
//All data collected, to Ajaxrequest (buttonid for ending spinner!)
|
|
|
|
if(id.length > 0){
|
|
userid = id.split("_")[4];
|
|
finalkind = id.split("_")[1];
|
|
standard = id.split("_")[3];
|
|
saveNewData(userid, finalkind, standard, buttonid);
|
|
}
|
|
}
|
|
|
|
//Copy to all
|
|
function updateAllStandard(){
|
|
var value = $("#copyusertoallfield").val();
|
|
inputfields = $(".inputfield");
|
|
for(i = 0; i < inputfields.length; i++){
|
|
inputfields[i].value = value;
|
|
}
|
|
}
|
|
|
|
function saveNewData(userid, finalkind, standard, buttonid){
|
|
$.ajax(
|
|
{
|
|
type: "GET",
|
|
url: "{% url 'standard-update-before-user-del' %}",
|
|
data:{
|
|
userid : userid,
|
|
finalkind : finalkind,
|
|
standard : standard,
|
|
useractorid : {{request.user.pk}}
|
|
},
|
|
beforeSend: function(){
|
|
$("#" + buttonid).html('<div class="spinner-border spinner-border-sm" role="status" style="margin-bottom: 2px;"><span class="sr-only">Speichern...</span></div>');
|
|
},
|
|
success: function( data )
|
|
{
|
|
if(data["success"]){
|
|
$("#" + buttonid).html('Gespeichert');
|
|
}
|
|
else{
|
|
$("#" + buttonid).html('Fehler');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
//Save all Button
|
|
function saveAll(){
|
|
buttons = $(".savebutton")
|
|
for(i = 0; i < buttons.length; i++){
|
|
buttons[i].click();
|
|
}
|
|
}
|
|
|
|
|
|
function updateOrga(){
|
|
var value = $("#neworgafield").val();
|
|
if(value.length > 0){
|
|
id = $('#neworga').find('option[value="' + value + '"]').attr('id');
|
|
$.ajax(
|
|
{
|
|
type: "GET",
|
|
url: "{% url 'update-user-orga' %}",
|
|
data:{
|
|
userid : id.split("_")[1],
|
|
useridold : {{object.pk}}
|
|
},
|
|
beforeSend: function(){
|
|
$("#updateOrgaButton").html('<div class="spinner-border spinner-border-sm" role="status" style="margin-bottom: 2px;"><span class="sr-only">Speichern...</span></div>');
|
|
},
|
|
success: function( data )
|
|
{
|
|
console.log(data);
|
|
if(data["success"]){
|
|
$("#finalDelButton").attr("disabled", false);
|
|
$("#updateOrgaButton").html('Gespeichert');
|
|
}
|
|
else{
|
|
$("#updateOrgaButton").html('Fehler');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
</script>
|
|
|
|
|
|
|
|
<!-- STANDARDSMODAL -->
|
|
{% for s in standards_to_change %}
|
|
<div class="modal fade " id="modal_{{s.pk}}" tabindex="-1" role="dialog" data-backdrop="static" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="exampleModalLongTitle">{{s.name}}</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<h4>{{standard.name}}</h4>
|
|
{{s.media}}
|
|
{{s.content|safe}}
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
{% endblock content %} |