digitaleagenturnc/tasks/templates/tasks/tasks_update.html

147 lines
4.9 KiB
HTML

{% extends "users/base.html" %}
{% load static %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section col-6">
<h3>Aufgabe aktualisieren</h3>
<hr>
<form method="POST">
{% csrf_token %}
{{ form|crispy }}
<h6>Mitarbeiter hinzufügen</h6>
<div class="input-group mb-3">
<input class="form-control" list="usersfree" name="searchusers" id="searchusers" type="text" onkeyup="javascript:checkSearchUser()" onchange="javascript:checkSearchUser()">
<div class="input-group-append">
<button type="button" id="addusertotaskbtn" onclick="javascript:addUserToTask()" class="btn btn-success" disabled>Mitarbeiter hinzufügen</button>
<button type="button" onclick="javascript:clearSearchfield()" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
</div>
<datalist id="usersfree">
{% for us in possible_users %}
<option id="{{us.pk}}" value="{{us.first_name}} {{us.last_name}}"></option>
{% endfor %}
</datalist>
</datalist>
</div>
<hr>
<h6>Zugewiesene Mitarbeiter</h6>
<div id="added_users_button">
{% if added_users|length > 0 %}
<p id="no_user_in_task" style="display: none">Noch kein Mitarbeiter zugewiesen.</p>
{% for us in added_users %}
<span id="span_btn_{{us.pk}}" class="badge badge-pill badge-primary mr-2 mt-2"><a class="btn btn-primary" onclick="javascript:removeUserFromTask('{{ us.pk }}')">{{ us.first_name }} {{ us.last_name }}&nbsp;&nbsp;<i class="fas fa-times"></i></a >
</span>
{% endfor %}
{% else %}
<p id="no_user_in_task">Dieser Aufgabe sind noch keine Mitarbeiter zugewiesen.</p>
{% endif %}
</div>
<hr>
<button type="submit" class="btn btn-success">Aufgabe aktualisieren</button>&nbsp;
<a class="btn" href="{% url 'dasettings' %} ">Abbrechen</a>
</form>
</div>
<script type="text/javascript">
var ua = window.navigator.userAgent;
var isIE = /MSIE|Trident/.test(ua);
if ( isIE ) {
//IE specific code goes here
setInterval(function()
{
checkSearchUser();
},250);
}
var tempid = null;
var tempcounter = 0;
//Check for valid input on inputfield
function checkSearchUser()
{
var g = $('#searchusers').val();
var id = $('#usersfree').find('option[value="' + g + '"]').attr('id');
if(id != undefined && id.length > 0){
tempid = id;
$("#addusertotaskbtn").prop('disabled', false);
}
else{
tempid = null;
$("#addusertotaskbtn").prop('disabled', true);
}
}
function addUserToTask(){
$.ajax(
{
type: "GET",
url: "/tasks/areaajax",
data:{
userid: tempid,
action : 'adduser',
objectid : {{objectid}}
},
success: function( data )
{
clearSearchfield();
//Add User-Button
$("#added_users_button").append('<span id="span_btn_'+data['userid']+'" class="badge badge-pill badge-primary mr-2 mt-2"><a class="btn btn-primary" onclick="javascript:removeUserFromTask('+data['userid']+')">'+data['username_clean']+'&nbsp;&nbsp;<i class="fas fa-times"></i></a ></span>');
$("#usersfree").empty();
for (var i in data['remaining_users']) {
id = data['remaining_users'][i]['id'];
name = data['remaining_users'][i]['first_name'] + " " + data['remaining_users'][i]['last_name'];
$("#usersfree").append('<option id="'+id+'" value="'+name+'"></option>');
}
if(data['remaining_users_counter'] == 0){
$("#no_user_in_task").show();
}
else {
$("#no_user_in_task").hide();
}
}
});
}
//Remove individual User from area, appened to the datalist!
function removeUserFromTask(user_id){
$.ajax(
{
type: "GET",
url: "/tasks/areaajax",
data:{
userid: user_id,
action : 'remuser',
objectid : {{objectid}}
},
success: function( data )
{
//Remove User-Button
$("#span_btn_"+data['userid']).remove();
//Rebuilding the Datalist
$("#usersfree").empty();
for (var i in data['remaining_users']) {
id = data['remaining_users'][i]['id'];
name = data['remaining_users'][i]['first_name'] + " " + data['remaining_users'][i]['last_name'];
$("#usersfree").append('<option id="'+id+'" value="'+name+'"></option>');
}
if(data['remaining_users_counter'] == 0){
$("#no_user_in_task").show();
}
else {
$("#no_user_in_task").hide();
}
}
});
}
//Clearing searchfield and set AddUser to false
function clearSearchfield(){
$("#searchusers").val("");
$("#addusertotaskbtn").prop('disabled', true);
}
</script>
{% endblock content %}