Verschiebebug

This commit is contained in:
Holger Trampe 2020-08-25 20:24:04 +02:00
parent 1a992f7f1e
commit 0bd623ca35
21 changed files with 688 additions and 675 deletions

View File

@ -16,17 +16,17 @@ a.disabled {
<!-- Then put toasts within --> <!-- Then put toasts within -->
<div id="fileerr" class="toast alert-danger" role="alert" aria-live="assertive" aria-atomic="true"> <div id="fileerr" class="toast alert-danger" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header"> <div class="toast-header">
<strong class="mr-auto">Daten gefunden</strong> <strong class="mr-auto">Daten gefunden</strong>
</div> </div>
<div class="toast-body"> <div class="toast-body">
<div id="toast_errcontent">Achtung! In Unterverzeichnissen befinden sich Dateien. Es können nur Ordner ohne Unterordner gelöscht werden!</div> <div id="toast_errcontent">Achtung! In Unterverzeichnissen befinden sich Dateien. Es können nur Ordner ohne Unterordner gelöscht werden!</div>
</div> </div>
</div> </div>
</div> </div>
<div class="content-section col-12"> <div class="content-section col-12">
<h3>Dateien{% if request.user.profile.showtooltips %}&nbsp;<small><i data-toggle="tooltip" data-placement="top" title="Hier können Sie Dateien und Ordner für ihre Agentur verwalten." class="far fa-question-circle"></i></small>{% endif %} <h3>Dateien{% if request.user.profile.showtooltips %}&nbsp;<small><i data-toggle="tooltip" data-placement="top" title="Hier können Sie Dateien und Ordner für ihre Agentur verwalten." class="far fa-question-circle"></i></small>{% endif %}
<small><i onclick="javascript:$('#youtubevideoinformation').modal('toggle');" class="far fa-play-circle"></i></small></h3> <small><i onclick="javascript:$('#youtubevideoinformation').modal('toggle');" class="far fa-play-circle"></i></small></h3>
<hr> <hr>
</div> </div>
<div class="content-section col-12"> <div class="content-section col-12">
@ -39,20 +39,20 @@ a.disabled {
<nav aria-label="breadcrumb"> <nav aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item" aria-current="page"><a href="{% url 'cloud-main' 'first' %}"><i class="fas fa-home"></i></a></li> <li class="breadcrumb-item" aria-current="page"><a href="{% url 'cloud-main' 'first' %}"><i class="fas fa-home"></i></a></li>
{% for cr in breadcrump %} {% for cr in breadcrump %}
{% if forloop.last %} {% if forloop.last %}
<li class="breadcrumb-item" active>{{cr}}</li> <li class="breadcrumb-item" active>{{cr}}</li>
{% else %} {% else %}
<li class="breadcrumb-item"><a href="{% url 'cloud-main' cr.pk %}">{{cr.name}}</a></li> <li class="breadcrumb-item"><a href="{% url 'cloud-main' cr.pk %}">{{cr.name}}</a></li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% if user|usergperm:"filedirmanager" %} {% if user|usergperm:"filedirmanager" %}
<li class="breadcrumb-item" active><i onclick="javascript:addDirModal()" class="fas fa-folder-plus icon-hover"></i></li> <li class="breadcrumb-item" active><i onclick="javascript:addDirModal()" class="fas fa-folder-plus icon-hover"></i></li>
{% endif %} {% endif %}
</ol> </ol>
</nav> </nav>
{% if user|usergperm:"filesviewer" %} {% if user|usergperm:"filesviewer" %}
<table class="table hover" id="dirfilestable"> <table class="table hover" id="dirfilestable">
<thead> <thead>
<tr> <tr>
@ -64,49 +64,49 @@ a.disabled {
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for d in dirs %} {% for d in dirs %}
{% setbool False %} {% setbool False %}
{% for dirgroup in d.visibleby.all %} {% for dirgroup in d.visibleby.all %}
{% if user|has_group:dirgroup.group.name %} {% if user|has_group:dirgroup.group.name %}
{% setbool True %} {% setbool True %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% if d.visibleby.all|length == 0 %} {% if d.visibleby.all|length == 0 %}
{% setbool True %} {% setbool True %}
{% endif %} {% endif %}
{% getbool as groupchecker %} {% getbool as groupchecker %}
{% if groupchecker %} {% if groupchecker %}
<tr id="dir_{{d.pk}}" class="droppable_tr"> <tr id="dir_{{d.pk}}" class="droppable_tr">
{% else %} {% else %}
<tr id="dir_{{d.pk}}" class="droppable_tr" data-toggle="popover" data-placement="top" data-trigger="hover" title="Zugriffsbeschränkung" data-content="Zugriff beschränkt auf {% for dgroup in d.visibleby.all %}{{dgroup.agencygroupname}}{% if forloop.counter < d.visibleby.all|length %}, {%endif%}{% endfor %}"> <tr id="dir_{{d.pk}}" class="droppable_tr" data-toggle="popover" data-placement="top" data-trigger="hover" title="Zugriffsbeschränkung" data-content="Zugriff beschränkt auf {% for dgroup in d.visibleby.all %}{{dgroup.agencygroupname}}{% if forloop.counter < d.visibleby.all|length %}, {%endif%}{% endfor %}">
{% endif %} {% endif %}
<td id="dir_{{d.pk}}_icon"><i class="fas fa-folder" ></i> <td id="dir_{{d.pk}}_icon"><i class="fas fa-folder" ></i>
</td> </td>
<td > <td >
{% if groupchecker %} {% if groupchecker %}
<a href="{% url 'cloud-main' d.pk %}">{{d.name}}</a> <a href="{% url 'cloud-main' d.pk %}">{{d.name}}</a>
{% else %} {% else %}
<span class="text-secondary"><i class="fas fa-lock"></i>&nbsp;{{d.name}}</span> <span class="text-secondary"><i class="fas fa-lock"></i>&nbsp;{{d.name}}</span>
</span> </span>
{% endif %} {% endif %}
</td> </td>
<td>{{d.owner.first_name}} {{d.owner.last_name}}</td> <td>{{d.owner.first_name}} {{d.owner.last_name}}</td>
<td>{{d.date_created|date:"d.m.Y G:i"}}</td> <td>{{d.date_created|date:"d.m.Y G:i"}}</td>
<td>{{d.date_last_modified|date:"d.m.Y G:i"}}</td> <td>{{d.date_last_modified|date:"d.m.Y G:i"}}</td>
<td> <td>
{% if user|usergperm:"filedirmanager" and groupchecker and d.is_defaultstandard == False %} {% if user|usergperm:"filedirmanager" and groupchecker and d.is_defaultstandard == False %}
<div class="dropdown no-arrow"> <div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i> <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
</a> </a>
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink"> <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
<div class="dropdown-header">Ordneroptionen</div> <div class="dropdown-header">Ordneroptionen</div>
<a class="dropdown-item" href="javascript:changeDirName({{d.pk}})">Umbenennen</a> <a class="dropdown-item" href="javascript:changeDirName({{d.pk}})">Umbenennen</a>
<a class="dropdown-item" href="javascript:showGroupChangeModal({{d.pk}})">Zugriff einschränken</a> <a class="dropdown-item" href="javascript:showGroupChangeModal({{d.pk}})">Zugriff einschränken</a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="javascript:delDataDirObje({{d.pk}})" >Löschen</a> <a class="dropdown-item text-danger" href="javascript:delDataDirObje({{d.pk}})" >Löschen</a>
@ -115,24 +115,24 @@ a.disabled {
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
{% for file in files %} {% for file in files %}
<tr> <tr>
<td> <td>
<i class="fas fa-file" ></i> <i class="fas fa-file" ></i>
</td> </td>
<td><a href="{% url 'cloud-td' file.pk %}" target="_blank">{{file.name}}</a></td> <td><a href="{% url 'cloud-td' file.pk %}" target="_blank">{{file.name}}</a></td>
<td>{{file.owner.first_name}} {{file.owner.last_name}}</td> <td>{{file.owner.first_name}} {{file.owner.last_name}}</td>
<td>{{file.date_created|date:"d.m.Y G:i"}}</td> <td>{{file.date_created|date:"d.m.Y G:i"}}</td>
<td>{{file.date_last_modified|date:"d.m.Y G:i"}}</td> <td>{{file.date_last_modified|date:"d.m.Y G:i"}}</td>
<td> <td>
{% if user|usergperm:"filesmanager" %} {% if user|usergperm:"filesmanager" %}
<div class="dropdown no-arrow"> <div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i> <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
</a> </a>
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink"> <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
<div class="dropdown-header" style="color: #ffffff">Dateioptionen</div> <div class="dropdown-header" style="color: #ffffff">Dateioptionen</div>
<a class="dropdown-item" href="javascript:moveFile({{file.pk}})">Verschieben</a> <a class="dropdown-item" href="javascript:moveFile({{file.pk}})">Verschieben</a>
<a class="dropdown-item" href="javascript:replaceFile({{file.pk}})">Ersetzen</a> <a class="dropdown-item" href="javascript:replaceFile({{file.pk}})">Ersetzen</a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
@ -142,12 +142,12 @@ a.disabled {
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
{% endif %} {% endif %}
{% if user|usergperm:"filesmanager" %} {% if user|usergperm:"filesmanager" %}
<form method="POST" id="uploadFileForm" enctype="multipart/form-data"> <form method="POST" id="uploadFileForm" enctype="multipart/form-data">
<input type="file" id="uploadedfile" name="uploadedfile" style="display:none"> <input type="file" id="uploadedfile" name="uploadedfile" style="display:none">
</form> </form>
<div class="alert alert-secondary droppable_div text-center mt-5" id="{{parentid}}_div" role="alert" style="line-height: 45px; text-align: center;"> <div class="alert alert-secondary droppable_div text-center mt-5" id="{{parentid}}_div" role="alert" style="line-height: 45px; text-align: center;">
@ -180,10 +180,10 @@ a.disabled {
<div class="form-group"> <div class="form-group">
<label for="exampleInputPassword1">Name:</label> <label for="exampleInputPassword1">Name:</label>
<input class="form-control" id="changename" type="text" value="" placeholder="Ordnername" onkeyup="javascript:validateNewName(this.value)"> <input class="form-control" id="changename" type="text" value="" placeholder="Ordnername" onkeyup="javascript:validateNewName(this.value)">
</div>
</div> </div>
<div class="modal-footer"> </div>
<div class="modal-footer">
<button id="doUpdateName" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:updateName()" disabled="false">Speichern</button>&nbsp; <button id="doUpdateName" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:updateName()" disabled="false">Speichern</button>&nbsp;
<button type="button" class="btn btn" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn btn" data-dismiss="modal">Abbrechen</button>
</div> </div>
@ -201,7 +201,7 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Mit dem Löschen fortfahren? Alle Dateien in diesem Verzeichnis werden ebenfalls gelöscht! Mit dem Löschen fortfahren? Alle Dateien in diesem Verzeichnis werden ebenfalls gelöscht!
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
@ -222,10 +222,10 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Die Datei konnte nicht hochgeladen werden. Bitte prüfen Sie die erlaubten Dateitypen und den verfügbaren Speicherplatz. Andernfalls melden Sie sich bei unserem Support support@digitale-agentur.com! Die Datei konnte nicht hochgeladen werden. Bitte prüfen Sie die erlaubten Dateitypen und den verfügbaren Speicherplatz. Andernfalls melden Sie sich bei unserem Support support@digitale-agentur.com!
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
@ -242,10 +242,10 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Ihr Speicherplatz ist aufgebraucht. Ihr Speicherplatz ist aufgebraucht.
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
@ -262,10 +262,10 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Sie können die Datei nicht mit sich selbst ersetzen. Sie können die Datei nicht mit sich selbst ersetzen.
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
@ -282,7 +282,7 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Datei <b><span id="filenametodel"></span></b> wirklich löschen? Datei <b><span id="filenametodel"></span></b> wirklich löschen?
<div id="connectedStandards"></div> <div id="connectedStandards"></div>
</div> </div>
@ -305,27 +305,27 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Datei <b><span id="filenametodel"></span></b> ersetzen mit: Datei <b><span id="filenametodel"></span></b> ersetzen mit:
<div class="input-group mb-3"> <div class="input-group mb-3">
<input class="form-control searchuserfieldstask" list="possfiles" id="searchfiles" type="text" onkeyup="javascript:updateLinkedFiles()" > <input class="form-control searchuserfieldstask" list="possfiles" id="searchfiles" type="text" onkeyup="javascript:updateLinkedFiles()" >
<div class="input-group-append"> <div class="input-group-append">
<button type="button" onclick="javascript:clearSearchfieldAddFile()" class="btn btn-secondary" ><i class="fas fa-times"></i></button> <button type="button" onclick="javascript:clearSearchfieldAddFile()" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
</div> </div>
<datalist id="possfiles"> <datalist id="possfiles">
{% for f in files %} {% for f in files %}
<option id="file_{{f.pk}}" value="{{f.name}}">{{f.name}}</option> <option id="file_{{f.pk}}" value="{{f.name}}">{{f.name}}</option>
{% endfor %} {% endfor %}
</datalist> </datalist>
</div> </div>
<div><span id="choosenfilename"></span></div> <div><span id="choosenfilename"></span></div>
<div id="connectedStandardsReplace"></div> <div id="connectedStandardsReplace"></div>
<hr> <hr>
<button id="btnDoReplaceFile" type="button" style="float: right" class="btn btn-secondary mt-1 " data-dismiss="modal" onclick="javascript:doreplaceFile(1)" disabled="true">Ersetzen, Alte Datei löschen!</button> <button id="btnDoReplaceFile" type="button" style="float: right" class="btn btn-secondary mt-1 " data-dismiss="modal" onclick="javascript:doreplaceFile(1)" disabled="true">Ersetzen, Alte Datei löschen!</button>
</div> </div>
<div class="modal-footer" > <div class="modal-footer" >
&nbsp;&nbsp; &nbsp;&nbsp;
<button id="btnDoReplaceFileSnd" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:doreplaceFile(0)" disabled="true">Ersetzen, Alte Datei <u>nicht</u> löschen!</button>&nbsp;&nbsp; <button id="btnDoReplaceFileSnd" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:doreplaceFile(0)" disabled="true">Ersetzen, Alte Datei <u>nicht</u> löschen!</button>&nbsp;&nbsp;
<button type="button" class="btn btn" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn btn" data-dismiss="modal">Abbrechen</button>
</div> </div>
@ -345,7 +345,7 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Bitte neues Verzeichnis auswählen: Bitte neues Verzeichnis auswählen:
<div id="agencydirlist"></div> <div id="agencydirlist"></div>
</div> </div>
@ -376,10 +376,10 @@ a.disabled {
<div class="form-group"> <div class="form-group">
<label for="exampleInputPassword1">Name:</label> <label for="exampleInputPassword1">Name:</label>
<input class="form-control" id="newdirname" type="text" value="" placeholder="Ordnername" onkeyup="javascript:validateDirName(this.value, 0)"> <input class="form-control" id="newdirname" type="text" value="" placeholder="Ordnername" onkeyup="javascript:validateDirName(this.value, 0)">
</div>
</div> </div>
<div class="modal-footer"> </div>
<div class="modal-footer">
<button id="doActionTaskModal" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:addDirAction()" disabled="true">Ordner anlegen</button> <button id="doActionTaskModal" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:addDirAction()" disabled="true">Ordner anlegen</button>
<button type="button" class="btn" data-dismiss="modal">Abbrechen</button>&nbsp; <button type="button" class="btn" data-dismiss="modal">Abbrechen</button>&nbsp;
</div> </div>
@ -398,20 +398,20 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Welche Gruppen dürfen auf diese Daten Zugriff haben? Welche Gruppen dürfen auf diese Daten Zugriff haben?
<p><small>Ist keine Gruppe ausgewählt, darf jeder der Agentur diese Daten sehen!</small></p> <p><small>Ist keine Gruppe ausgewählt, darf jeder der Agentur diese Daten sehen!</small></p>
<div class="row"> <div class="row">
<div class="col-6"> <div class="col-6">
{% for g in agencygroups %} {% for g in agencygroups %}
{% if forloop.counter|divisibleby:6 %} {% if forloop.counter|divisibleby:6 %}
</div> <div class="col-6"> </div> <div class="col-6">
<div class="custom-control custom-checkbox mb-2"> <div class="custom-control custom-checkbox mb-2">
<input type="checkbox" class="custom-control-input groupclass" name="group_{{g.pk}}" id="group_{{g.pk}}" onchange="javascript:changeGroup({{g.pk}}, this.checked)"> <input type="checkbox" class="custom-control-input groupclass" name="group_{{g.pk}}" id="group_{{g.pk}}" onchange="javascript:changeGroup({{g.pk}}, this.checked)">
<label class="custom-control-label" for="group_{{g.pk}}" >{{g.agencygroupname}}</label> <label class="custom-control-label" for="group_{{g.pk}}" >{{g.agencygroupname}}</label>
</div> </div>
{% else %} {% else %}
<div class="custom-control custom-checkbox mb-2"> <div class="custom-control custom-checkbox mb-2">
<input type="checkbox" class="custom-control-input groupclass" name="group_{{g.pk}}" id="group_{{g.pk}}" onchange="javascript:changeGroup({{g.pk}}, this.checked)"> <input type="checkbox" class="custom-control-input groupclass" name="group_{{g.pk}}" id="group_{{g.pk}}" onchange="javascript:changeGroup({{g.pk}}, this.checked)">
<label class="custom-control-label" for="group_{{g.pk}}" >{{g.agencygroupname}}</label> <label class="custom-control-label" for="group_{{g.pk}}" >{{g.agencygroupname}}</label>
</div> </div>
@ -437,11 +437,11 @@ a.disabled {
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<i class="fas fa-spinner fa-spin"></i> Datei wird hochgeladen... <i class="fas fa-spinner fa-spin"></i> Datei wird hochgeladen...
<div class="progress"> <div class="progress">
<div class="progress-bar" id="uploadprocessbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div> <div class="progress-bar" id="uploadprocessbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -458,7 +458,7 @@ a.disabled {
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Die Datei <b><span id="doublefile_name"></span></b> ist bereits vorhanden. Soll die Datei ersetzt oder beide behalten werden? Die Datei <b><span id="doublefile_name"></span></b> ist bereits vorhanden. Soll die Datei ersetzt oder beide behalten werden?
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
@ -488,17 +488,17 @@ if ( isIE ) {
{ {
if($('#replaceFileModal').is(':visible')){ if($('#replaceFileModal').is(':visible')){
updateLinkedFiles(); updateLinkedFiles();
} }
},400); },400);
} }
$(document).ready(function(){ $(document).ready(function(){
$('[data-toggle="popover"]').popover(); $('[data-toggle="popover"]').popover();
$(".toast").toast({ $(".toast").toast({
autohide: true, autohide: true,
delay : 5000 delay : 5000
@ -521,6 +521,7 @@ if ( isIE ) {
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
@ -536,15 +537,15 @@ function clearSearchfieldAddFile(){
var replace_file_id = ""; var replace_file_id = "";
$("#choosenfilename").html(""); $("#choosenfilename").html("");
function updateLinkedFiles(){ function updateLinkedFiles(){
var g = $('#searchfiles').val(); var g = $('#searchfiles').val();
var id = $('#possfiles').find('option[value="' + g + '"]').attr('id'); var id = $('#possfiles').find('option[value="' + g + '"]').attr('id');
if(id != undefined && id.length > 0){ if(id != undefined && id.length > 0){
replace_file_id = id.split("_")[1]; replace_file_id = id.split("_")[1];
console.log(replace_file_id); console.log(replace_file_id);
clearSearchfieldAddFile(); clearSearchfieldAddFile();
$("#choosenfilename").html("<b>Neue Datei:&nbsp;</b>" + g); $("#choosenfilename").html("<b>Neue Datei:&nbsp;</b>" + g);
$("#btnDoReplaceFile").prop("disabled", false); $("#btnDoReplaceFile").prop("disabled", false);
$("#btnDoReplaceFileSnd").prop("disabled", false); $("#btnDoReplaceFileSnd").prop("disabled", false);
@ -556,18 +557,18 @@ function updateLinkedFiles(){
function showGroupChangeModal(tochangeid){ function showGroupChangeModal(tochangeid){
$("#changeGroupOfDataObj").modal("toggle"); $("#changeGroupOfDataObj").modal("toggle");
$(".groupclass").attr("checked", false); $(".groupclass").attr("checked", false);
workingdirid = tochangeid; workingdirid = tochangeid;
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
url: "{% url 'cloud-adddir' parentid %}", url: "{% url 'cloud-adddir' parentid %}",
data:{ data:{
action : "getgroupsofdir", action : "getgroupsofdir",
dirid : workingdirid dirid : workingdirid
}, },
success: function( data ) success: function( data )
{ {
for(i = 0; i < data["data"]["gdir"].length; i++){ for(i = 0; i < data["data"]["gdir"].length; i++){
$("#group_" + data["data"]["gdir"][i]['id']).attr("checked", true); $("#group_" + data["data"]["gdir"][i]['id']).attr("checked", true);
} }
} }
@ -578,8 +579,8 @@ $('#changeGroupOfDataObj').on('hidden.bs.modal', function (e) {
window.location = window.location window.location = window.location
}) })
function changeGroup(groupid, value){ function changeGroup(groupid, value){
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
@ -609,17 +610,17 @@ function moveFile(fileid)
data:{ data:{
action : "getdirlist" action : "getdirlist"
}, },
success: function( data ) success: function( data )
{ {
$("#agencydirlist").html(""); $("#agencydirlist").html("");
html = ['<ul id="simple_list"><li><i class="fa fa-folder"></i>&nbsp;<a href="javascript:targetParentToMove({{rootid}})"><b><u>Heimverzeichnis<u></b></a>']; html = ['<ul id="simple_list"><li><i class="fa fa-folder"></i>&nbsp;<a href="javascript:targetParentToMove({{rootid}})"><b><u>Heimverzeichnis<u></b></a>'];
createList(data["data"]["agencydirlist"], l); createList(data["data"]["agencydirlist"], l);
$("#agencydirlist").html(html); $("#agencydirlist").html(html);
} }
}); });
} }
function doreplaceFile(dodel){ function doreplaceFile(dodel){
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
@ -630,10 +631,10 @@ function doreplaceFile(dodel){
newid : replace_file_id, newid : replace_file_id,
delold : dodel delold : dodel
}, },
success: function( data ) success: function( data )
{ {
if(data["data"]["success"]){ if(data["data"]["success"]){
location.href = location.href; location.href = location.href;
} }
else{ else{
$("#replaceFileModal").modal("toggle"); $("#replaceFileModal").modal("toggle");
@ -641,7 +642,7 @@ function doreplaceFile(dodel){
$("#replaceerrModal").modal("toggle"); $("#replaceerrModal").modal("toggle");
}) })
} }
} }
}); });
} }
@ -654,8 +655,8 @@ function replaceFile(fileid)
workingdirid = false; workingdirid = false;
replace_file_id = ""; replace_file_id = "";
$("#choosenfilename").html(""); $("#choosenfilename").html("");
$("#btnDoReplaceFile").prop("disabled", true); $("#btnDoReplaceFile").prop("disabled", true);
$("#btnDoReplaceFileSnd").prop("disabled", true); $("#btnDoReplaceFileSnd").prop("disabled", true);
$("#replaceFileModal").modal("toggle"); $("#replaceFileModal").modal("toggle");
$.ajax( $.ajax(
{ {
@ -665,12 +666,12 @@ function replaceFile(fileid)
action : "getname_file", action : "getname_file",
id : workingfileid id : workingfileid
}, },
success: function( data ) success: function( data )
{ {
standardstring = ""; standardstring = "";
if(data["data"]["linked_standards"] != undefined && data["data"]["linked_standards"].length > 0){ if(data["data"]["linked_standards"] != undefined && data["data"]["linked_standards"].length > 0){
standardstring = "<hr><b>Achtung!</b> Datei ist mit folgenden Standards verlinkt:<br />"; standardstring = "<hr><b>Achtung!</b> Datei ist mit folgenden Standards verlinkt:<br />";
} }
for(i = 0; i < data["data"]["linked_standards"].length; i++){ for(i = 0; i < data["data"]["linked_standards"].length; i++){
standardstring += (i+1) + ". " + data["data"]["linked_standards"][i]['name']; standardstring += (i+1) + ". " + data["data"]["linked_standards"][i]['name'];
if((i+1)< data["data"]["linked_standards"].length){ if((i+1)< data["data"]["linked_standards"].length){
@ -680,7 +681,7 @@ function replaceFile(fileid)
$("#connectedStandardsReplace").html(standardstring); $("#connectedStandardsReplace").html(standardstring);
} }
}); });
} }
@ -690,26 +691,26 @@ var html = ['<ul id="simple_list"><li><i class="fa fa-folder"></i>&nbsp;<a href=
let l = 2; let l = 2;
//Create UL-LI-List for tree //Create UL-LI-List for tree
function createList(arr, l) { function createList(arr, l) {
html.push('<ul>'); html.push('<ul>');
$.each(arr, function(i, val) { $.each(arr, function(i, val) {
if(val.parent == ""){ if(val.parent == ""){
html.push('<li><i class="fa fa-folder mt-2"></i>&nbsp;<a href="javascript:targetParentToMove('+val.id+')"><b>' + val.name + '</b></a>'); html.push('<li><i class="fa fa-folder mt-2"></i>&nbsp;<a href="javascript:targetParentToMove('+val.id+')"><b>' + val.name + '</b></a>');
} }
else { else {
html.push('<li class="ml-'+l+' mt-2"><i class="fa fa-folder" ></i><a href="javascript:targetParentToMove('+val.id+')">&nbsp;'+val.name+'</a></li>'); html.push('<li class="ml-'+l+' mt-2"><i class="fa fa-folder" ></i><a href="javascript:targetParentToMove('+val.id+')">&nbsp;'+val.name+'</a></li>');
} }
if (val.subdirs) { if (val.subdirs) {
createList(val.subdirs, l+1) createList(val.subdirs, l+1)
} }
html.push('</li>'); html.push('</li>');
}); });
html.push('</ul>'); html.push('</ul>');
} }
function targetParentToMove(parid){ function targetParentToMove(parid){
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
@ -719,8 +720,8 @@ function targetParentToMove(parid){
fileid : workingfileid, fileid : workingfileid,
newpar : parid newpar : parid
}, },
success: function( data ) success: function( data )
{ {
window.location = window.location window.location = window.location
} }
}); });
@ -738,7 +739,7 @@ function targetParentToMove(parid){
uploadtoparent = {{parentid}}; uploadtoparent = {{parentid}};
</script> </script>
{% if user|usergperm:"filesmanager" %} {% if user|usergperm:"filesmanager" %}
<script type="text/javascript"> <script type="text/javascript">
$( ".droppable_tr" ).on('dragenter', function (e) { $( ".droppable_tr" ).on('dragenter', function (e) {
e.stopPropagation(); e.stopPropagation();
@ -746,7 +747,7 @@ uploadtoparent = {{parentid}};
currentid = e["currentTarget"]['id']; currentid = e["currentTarget"]['id'];
$("#" + currentid + "_icon").html(""); $("#" + currentid + "_icon").html("");
$("#" + currentid + "_icon").html('<i class="fas fa-folder-open"></i>'); $("#" + currentid + "_icon").html('<i class="fas fa-folder-open"></i>');
$("#" + currentid).addClass('table-secondary'); $("#" + currentid).addClass('table-secondary');
}); });
@ -754,7 +755,7 @@ $('.droppable_tr').on('drop', function (e) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
uploadtoparent = e["currentTarget"]['id'].split("_")[1]; uploadtoparent = e["currentTarget"]['id'].split("_")[1];
uploadAction(e.originalEvent.dataTransfer.files[0], e["currentTarget"]['id'].split("_")[1]); uploadAction(e.originalEvent.dataTransfer.files[0], e["currentTarget"]['id'].split("_")[1]);
$("#" + currentid).removeClass('table-secondary'); $("#" + currentid).removeClass('table-secondary');
$("#" + currentid + "_icon").html(""); $("#" + currentid + "_icon").html("");
$("#" + currentid + "_icon").html('<i class="fas fa-folder"></i>'); $("#" + currentid + "_icon").html('<i class="fas fa-folder"></i>');
@ -762,11 +763,11 @@ $('.droppable_tr').on('drop', function (e) {
$('.droppable_tr').on('dragleave', function (e) { $('.droppable_tr').on('dragleave', function (e) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
currentid = e["currentTarget"]['id']; currentid = e["currentTarget"]['id'];
$("#" + currentid + "_icon").html(""); $("#" + currentid + "_icon").html("");
$("#" + currentid + "_icon").html('<i class="fas fa-folder"></i>'); $("#" + currentid + "_icon").html('<i class="fas fa-folder"></i>');
$("#" + currentid).removeClass('table-secondary'); $("#" + currentid).removeClass('table-secondary');
}); });
@ -774,23 +775,23 @@ $('.droppable_tr').on('dragleave', function (e) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
currentid = e["currentTarget"]['id']; currentid = e["currentTarget"]['id'];
$("#{{parentid}}_div").addClass('bg-secondary'); $("#{{parentid}}_div").addClass('bg-secondary');
}); });
$('.droppable_div').on('drop', function (e) { $('.droppable_div').on('drop', function (e) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
$("#{{parentid}}_div").removeClass('bg-secondary'); $("#{{parentid}}_div").removeClass('bg-secondary');
uploadAction(e.originalEvent.dataTransfer.files[0], e["currentTarget"]['id'].split("_")[0]); uploadAction(e.originalEvent.dataTransfer.files[0], e["currentTarget"]['id'].split("_")[0]);
}); });
$('.droppable_div').on('dragleave', function (e) { $('.droppable_div').on('dragleave', function (e) {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
currentid = e["currentTarget"]['id']; currentid = e["currentTarget"]['id'];
$("#{{parentid}}_div").removeClass('bg-secondary'); $("#{{parentid}}_div").removeClass('bg-secondary');
}); });
//allowedtypes = "application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, text/plain, application/pdf, image/*, image/x-png, image/gif, image/jpg, image/jpeg, image/JPEG, image/JPG, docx, JPEG, JPG, doc, odt, ODT, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" //allowedtypes = "application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, text/plain, application/pdf, image/*, image/x-png, image/gif, image/jpg, image/jpeg, image/JPEG, image/JPG, docx, JPEG, JPG, doc, odt, ODT, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
allowedtypes = ['doc','docx','odt','ods','xls','xlsx','xlsm','ppt','pptx','mov','avi','svg','png','jpg','jpeg','mp3', 'wav', 'zip', 'rar', 'mp4', 'mwv', 'flv', 'eps', 'txt', 'pdf'] allowedtypes = ['doc','docx','odt','ods','xls','xlsx','xlsm','ppt','pptx','mov','avi','svg','png','jpg','jpeg','mp3', 'wav', 'zip', 'rar', 'mp4', 'mwv', 'flv', 'eps', 'txt', 'pdf']
@ -824,8 +825,8 @@ function uploadAction(filetodo, parid){
action : "check_doublefile", action : "check_doublefile",
name : filetodo.name name : filetodo.name
}, },
success: function( data ) success: function( data )
{ {
if(data["data"]["found"]){ if(data["data"]["found"]){
$("#doubleFileChoiceModal").modal("toggle"); $("#doubleFileChoiceModal").modal("toggle");
$("#doublefile_name").html(filetodo.name); $("#doublefile_name").html(filetodo.name);
@ -835,34 +836,34 @@ function uploadAction(filetodo, parid){
} }
} }
}); });
} }
function doUploadAction(filetodo, parid, replacestat){ function doUploadAction(filetodo, parid, replacestat){
//Check for double File on Server //Check for double File on Server
var formData = new FormData($("#uploadFileForm")[0]); var formData = new FormData($("#uploadFileForm")[0]);
formData.append("uploadedfile", filetodo); formData.append("uploadedfile", filetodo);
formData.append("uploadsource", "cloud"); formData.append("uploadsource", "cloud");
formData.append("replace", replacestat); formData.append("replace", replacestat);
var bar = $('.bar'); var bar = $('.bar');
var percent = $('.percent'); var percent = $('.percent');
var c = false; var c = false;
for (i = 0; i < allowedtypes.length; i++) { for (i = 0; i < allowedtypes.length; i++) {
if (allowedtypes[i].localeCompare(getFileExtension1(filetodo.name)) == 0) if (allowedtypes[i].localeCompare(getFileExtension1(filetodo.name)) == 0)
{ {
c = true; c = true;
} }
} }
if(c && filetodo.type.length > 0){ if(c && filetodo.type.length > 0){
//CHECK QUOTA //CHECK QUOTA
calculate_quota = filetodo.size / (1024* 1024*1024) + actquotasize calculate_quota = filetodo.size / (1024* 1024*1024) + actquotasize
if(calculate_quota > 2){ if(calculate_quota > 2){
setTimeout(function(){$("#uploadModalProgress").modal("toggle");}, 1000); setTimeout(function(){$("#uploadModalProgress").modal("toggle");}, 1000);
$('#uploadModalProgress').on('hidden.bs.modal', function (e) { $('#uploadModalProgress').on('hidden.bs.modal', function (e) {
$("#quotaerr").modal("toggle"); $("#quotaerr").modal("toggle");
}) })
@ -878,45 +879,45 @@ function doUploadAction(filetodo, parid, replacestat){
cache: false, cache: false,
processData: false, processData: false,
contentType: false, contentType: false,
beforeSend: function(){ beforeSend: function(){
$("#uploadModalProgress").modal("toggle"); $("#uploadModalProgress").modal("toggle");
}, },
xhr: function() { xhr: function() {
var xhr = new window.XMLHttpRequest(); var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) { xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) { if (evt.lengthComputable) {
var percentComplete = (evt.loaded / evt.total) * 100; var percentComplete = (evt.loaded / evt.total) * 100;
$("#uploadprocessbar").css("width", percentComplete + "%"); $("#uploadprocessbar").css("width", percentComplete + "%");
} }
}, false); }, false);
return xhr; return xhr;
}, },
success: function(data) { success: function(data) {
if(data["success"] == true){ if(data["success"] == true){
setTimeout(function(){window.location = window.location;}, 1000); setTimeout(function(){window.location = window.location;}, 1000);
} }
else{ else{
setTimeout(function(){$("#uploadModalProgress").modal("toggle");}, 1000); setTimeout(function(){$("#uploadModalProgress").modal("toggle");}, 1000);
$('#uploadModalProgress').on('hidden.bs.modal', function (e) { $('#uploadModalProgress').on('hidden.bs.modal', function (e) {
$("#forbiddenFileType").modal("toggle"); $("#forbiddenFileType").modal("toggle");
}) })
} }
} }
}); });
} }
} }
else{ else{
$("#forbiddenFileType").modal("toggle"); $("#forbiddenFileType").modal("toggle");
} }
} }
</script> </script>
{% endif %} {% endif %}
<script type="text/javascript"> <script type="text/javascript">
$('#uploadedfile').on('change', function() { $('#uploadedfile').on('change', function() {
uploadAction($("#uploadedfile")[0]['files'][0], {{parentid}}); uploadAction($("#uploadedfile")[0]['files'][0], {{parentid}});
}); });
function uploadButtonPush(){ function uploadButtonPush(){
@ -936,12 +937,12 @@ function delDataFileObje(fileid){
action : "getname_file", action : "getname_file",
id : workingfileid id : workingfileid
}, },
success: function( data ) success: function( data )
{ {
standardstring = ""; standardstring = "";
if(data["data"]["linked_standards"] != undefined && data["data"]["linked_standards"].length > 0){ if(data["data"]["linked_standards"] != undefined && data["data"]["linked_standards"].length > 0){
standardstring = "<hr><b>Achtung!</b> Datei ist mit folgenden Standards verlinkt:<br />"; standardstring = "<hr><b>Achtung!</b> Datei ist mit folgenden Standards verlinkt:<br />";
} }
for(i = 0; i < data["data"]["linked_standards"].length; i++){ for(i = 0; i < data["data"]["linked_standards"].length; i++){
standardstring += (i+1) + ". " + data["data"]["linked_standards"][i]['name']; standardstring += (i+1) + ". " + data["data"]["linked_standards"][i]['name'];
if((i+1)< data["data"]["linked_standards"].length){ if((i+1)< data["data"]["linked_standards"].length){
@ -964,9 +965,9 @@ function doDelDataFile(){
action : "del_file", action : "del_file",
id : workingfileid id : workingfileid
}, },
success: function( data ) success: function( data )
{ {
window.location = window.location; window.location = window.location;
} }
}); });
} }
@ -989,10 +990,10 @@ function doDelDataDir(){
action : "del_dir", action : "del_dir",
id : workingdirid id : workingdirid
}, },
success: function( data ) success: function( data )
{ {
if(data["success"]){ if(data["success"]){
window.location = window.location; window.location = window.location;
} }
else{ else{
$("#fileerr").toast("show"); $("#fileerr").toast("show");
@ -1012,8 +1013,8 @@ function changeDirName(dirid){
action : "getname_dir", action : "getname_dir",
id : dirid id : dirid
}, },
success: function( data ) success: function( data )
{ {
$("#actualName").html("Ordner <b>" + data["data"]['dirname'] + "</b>"); $("#actualName").html("Ordner <b>" + data["data"]['dirname'] + "</b>");
$("#changename").val(data["data"]['dirname']); $("#changename").val(data["data"]['dirname']);
$("#doUpdateName").attr("disabled", false); $("#doUpdateName").attr("disabled", false);
@ -1031,10 +1032,10 @@ function updateName(){
id : workingdirid, id : workingdirid,
newdirname : $("#changename").val() newdirname : $("#changename").val()
}, },
success: function( data ) success: function( data )
{ {
$("#changeName").modal("toggle"); $("#changeName").modal("toggle");
window.location = window.location; window.location = window.location;
} }
}); });
} }
@ -1049,38 +1050,38 @@ function addDirModal(){
//VALIDATE FOR CORRECT INPUT IN GROUP //VALIDATE FOR CORRECT INPUT IN GROUP
function validateNewName(newdirname){ function validateNewName(newdirname){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/; var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newdirname.length > 0){ if(newdirname.length > 0){
if(!newdirname.match(letters)) if(!newdirname.match(letters))
{ {
$("#doUpdateName").attr("disabled", true); $("#doUpdateName").attr("disabled", true);
} }
else{ else{
$("#doUpdateName").attr("disabled", false); $("#doUpdateName").attr("disabled", false);
} }
} }
else{ else{
$("#doUpdateName").attr("disabled", true); $("#doUpdateName").attr("disabled", true);
} }
} }
//VALIDATE FOR CORRECT INPUT IN GROUP //VALIDATE FOR CORRECT INPUT IN GROUP
function validateDirName(newdirname){ function validateDirName(newdirname){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/; var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newdirname.length > 0){ if(newdirname.length > 0){
if(!newdirname.match(letters)) if(!newdirname.match(letters))
{ {
$("#doActionTaskModal").attr("disabled", true); $("#doActionTaskModal").attr("disabled", true);
} }
else{ else{
$("#doActionTaskModal").attr("disabled", false); $("#doActionTaskModal").attr("disabled", false);
} }
} }
else{ else{
$("#doActionTaskModal").attr("disabled", true); $("#doActionTaskModal").attr("disabled", true);
} }
} }
function addDirAction(){ function addDirAction(){
@ -1093,9 +1094,9 @@ function addDirAction(){
parent : {{parentid}}, parent : {{parentid}},
newdirname : $("#newdirname").val() newdirname : $("#newdirname").val()
}, },
success: function( data ) success: function( data )
{ {
window.location = window.location; window.location = window.location;
} }
}); });
} }
@ -1114,9 +1115,9 @@ var VIDEOURL = "-rX5xcDMwXQ"
var MODALNAME = "#youtubevideoinformation" var MODALNAME = "#youtubevideoinformation"
var VIDEOTITLE = "Informationsvideo Dateien" var VIDEOTITLE = "Informationsvideo Dateien"
$(document).ready(function(){ $(document).ready(function(){
$("#modaltitle_video").html(VIDEOTITLE); $("#modaltitle_video").html(VIDEOTITLE);
//VIDEOCONTROLS //VIDEOCONTROLS
$( MODALNAME ).on('shown.bs.modal', function(e){ $( MODALNAME ).on('shown.bs.modal', function(e){
@ -1135,7 +1136,7 @@ $(document).ready(function(){
player = new YT.Player('video-placeholder', { player = new YT.Player('video-placeholder', {
width: 760, width: 760,
height: 500, height: 500,
videoId: VIDEOURL, videoId: VIDEOURL,
}); });
} }
@ -1155,11 +1156,11 @@ $(document).ready(function(){
<div id="video-placeholder"></div> <div id="video-placeholder"></div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- YOUTUBE PART ENDE --> <!-- YOUTUBE PART ENDE -->
{% endblock %} {% endblock %}

View File

@ -15,22 +15,22 @@
<table class="table table-hover"> <table class="table table-hover">
<thead> <thead>
<tr> <tr>
<th scope="col">Agenturname</th> <th scope="col">Agenturname</th>
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody id=""> <tbody id="">
{% for agn_s in outstanding %} {% for agn_s in outstanding %}
<tr id="agnprep_{{agn_s.pk}}"> <tr id="agnprep_{{agn_s.pk}}">
<td>{{agn_s.wanted_agency.name}}</td> <td>{{agn_s.wanted_agency.name}}</td>
<td> <td>
<a type="button" href="{% url 'acceptinvite' agn_s.target_network.pk agn_s.wanted_agency.pk agn_s.pk %}" class="btn btn-primary">Annehmen</a> <a type="button" href="{% url 'acceptinvite' agn_s.target_network.pk agn_s.wanted_agency.pk agn_s.pk %}" class="btn btn-primary">Annehmen</a>
&nbsp;<button onclick="javascript:checkRemInv('{{agn_s.wanted_agency.name}}', {{agn_s.pk}})" type="button" class="btn btn-secondary">Ablehnen</button> &nbsp;<button onclick="javascript:checkRemInv('{{agn_s.wanted_agency.name}}', {{agn_s.pk}})" type="button" class="btn btn-secondary">Ablehnen</button>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
{% endif %} {% endif %}
@ -43,7 +43,7 @@
<table class="table hover" id="agnetworkagencys"> <table class="table hover" id="agnetworkagencys">
<thead> <thead>
<tr> <tr>
<th scope="col">Agenturname</th> <th scope="col">Agenturname</th>
<th scope="col" style="text-align: center;">Nur Mitglied</th> <th scope="col" style="text-align: center;">Nur Mitglied</th>
<th scope="col" style="text-align: center;">Inhalte teilen</th> <th scope="col" style="text-align: center;">Inhalte teilen</th>
<th scope="col" style="text-align: center;">Administratives Mitglied</th> <th scope="col" style="text-align: center;">Administratives Mitglied</th>
@ -51,16 +51,16 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for agn_s in allagofagn %} {% for agn_s in allagofagn %}
{% ifaginadminagn agn.pk agn_s.pk as is_adminag %} {% ifaginadminagn agn.pk agn_s.pk as is_adminag %}
{% ifmember agn.pk agn_s.pk as is_member %} {% ifmember agn.pk agn_s.pk as is_member %}
{% ifsharemember agn.pk agn_s.pk as is_sharemember %} {% ifsharemember agn.pk agn_s.pk as is_sharemember %}
<tr id="agn_{{agn_s.pk}}"> <tr id="agn_{{agn_s.pk}}">
<td>{{agn_s.name}}</td> <td>{{agn_s.name}}</td>
<td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option1" onchange="javascript:updateAgAgnRights({{agn_s.pk}}, 0)" {% if agn_s == request.user.profile.agency %} disabled="true" {% endif %} <td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option1" onchange="javascript:updateAgAgnRights({{agn_s.pk}}, 0)" {% if agn_s == request.user.profile.agency %} disabled="true" {% endif %}
{% if is_member %} checked {% endif %} {% if is_member %} checked {% endif %}
></td> ></td>
<td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option2" onchange="javascript:updateAgAgnRights({{agn_s.pk}}, 1)" {% if agn_s == request.user.profile.agency %} disabled="true" {% endif %} <td style="text-align: center;"><input class="form-check-input" type="radio" name="inlineRadioOptions_{{agn_s.pk}}" id="" value="option2" onchange="javascript:updateAgAgnRights({{agn_s.pk}}, 1)" {% if agn_s == request.user.profile.agency %} disabled="true" {% endif %}
{% if is_sharemember %} checked {% endif %} {% if is_sharemember %} checked {% endif %}
></td> ></td>
@ -73,8 +73,8 @@
{%endif%} {%endif%}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
{% else %} {% else %}
@ -88,23 +88,23 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for agn_s in allagofagn %} {% for agn_s in allagofagn %}
<tr id="agn_{{agn_s.pk}}"> <tr id="agn_{{agn_s.pk}}">
<td>{{agn_s.name}}</td> <td>{{agn_s.name}}</td>
<td> <td>
{% if agn_s in agn.adminagencys.all %}Administratives Mitglied {% if agn_s in agn.adminagencys.all %}Administratives Mitglied
{% elif agn_s in agn.members.all %}Mitglied {% elif agn_s in agn.members.all %}Mitglied
{% elif agn_s in agn.sharemembers.all %}Inhalte teilen {% elif agn_s in agn.sharemembers.all %}Inhalte teilen
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
{% endif %} {% endif %}
</div> </div>
@ -118,9 +118,9 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Agentur <span id="agname">NAME</span> aus Verbund {{agn.name}} entfernen? Agentur <span id="agname">NAME</span> aus Verbund {{agn.name}} entfernen?
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="javascript:doRemAgFromAgn()">Agentur entfernen</button>&nbsp; <button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="javascript:doRemAgFromAgn()">Agentur entfernen</button>&nbsp;
<button type="button" class="btn btn-success" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn btn-success" data-dismiss="modal">Abbrechen</button>
@ -138,9 +138,9 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Agentur <span id="agname_invite">NAME</span> wirklich nicht zum Agenturverbund {{agn.name}} hinzufügen? Agentur <span id="agname_invite">NAME</span> wirklich nicht zum Agenturverbund {{agn.name}} hinzufügen?
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="javascript:doRemInv()">Anfrage löschen</button>&nbsp; <button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="javascript:doRemInv()">Anfrage löschen</button>&nbsp;
<button type="button" class="btn btn-success" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn btn-success" data-dismiss="modal">Abbrechen</button>
@ -157,7 +157,7 @@
</style> </style>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
$('#agnetworkagencys_onlyview').DataTable({ $('#agnetworkagencys_onlyview').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -172,6 +172,7 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
@ -200,7 +201,7 @@
{% if request.user.profile.agency in agn.adminagencys.all %} {% if request.user.profile.agency in agn.adminagencys.all %}
var workingagid = ""; var workingagid = "";
function updateAgAgnRights(agency, newstatus){ function updateAgAgnRights(agency, newstatus){
$.ajax( $.ajax(
{ {
@ -208,13 +209,13 @@
url: "{% url 'dasettings-agnajax' %}", url: "{% url 'dasettings-agnajax' %}",
data:{ data:{
action: "changeagrights", action: "changeagrights",
agency : agency, agency : agency,
newstatus : newstatus, newstatus : newstatus,
agnid : {{agn.pk}} agnid : {{agn.pk}}
}, },
success: function( data ) success: function( data )
{ {
} }
}); });
} }
@ -233,9 +234,9 @@
url: "{% url 'dasettings-agnajax' %}", url: "{% url 'dasettings-agnajax' %}",
data:{ data:{
action: "removeinv", action: "removeinv",
agn_inv : workingagid, agn_inv : workingagid,
}, },
success: function( data ) success: function( data )
{ {
location.href = location.href; location.href = location.href;
} }
@ -252,7 +253,7 @@
agid : workingagid, agid : workingagid,
agnid : {{agn.pk}} agnid : {{agn.pk}}
}, },
success: function( data ) success: function( data )
{ {
$("#delAgFromAgn").modal("toggle"); $("#delAgFromAgn").modal("toggle");
$("#agn_" + workingagid).remove(); $("#agn_" + workingagid).remove();
@ -268,4 +269,4 @@
} }
{% endif %} {% endif %}
</script> </script>
{% endblock content %} {% endblock content %}

View File

@ -21,19 +21,19 @@
</thead> </thead>
<tbody id=""> <tbody id="">
{% for agn in agencynetworks %} {% for agn in agencynetworks %}
{% getsumofallag agn.pk as agsum %} {% getsumofallag agn.pk as agsum %}
{% getoutstandinginvites agn.pk as outstanding %} {% getoutstandinginvites agn.pk as outstanding %}
{% ifaginadminagn agn.pk request.user.profile.agency.pk as is_adminag %} {% ifaginadminagn agn.pk request.user.profile.agency.pk as is_adminag %}
<tr id="agn_{{agn.pk}}"> <tr id="agn_{{agn.pk}}">
<td><a href="{% url 'managagn' agn.pk %}">{{agn.name}}</a></td> <td><a href="{% url 'managagn' agn.pk %}">{{agn.name}}</a></td>
<td> <td>
{% if is_adminag %} {% if is_adminag %}
<a href="#" onclick="javascript:showAgnLink('{{agn.name}}', '{{agn.networkid}}', {{agn.pk}})"><i class="far fa-eye"></i></a> <a href="#" onclick="javascript:showAgnLink('{{agn.name}}', '{{agn.networkid}}', {{agn.pk}})"><i class="far fa-eye"></i></a>
&nbsp;&nbsp;&nbsp;<a href="#" onclick="javascript:copyLinkToCB('{{agn.networkid}}', {{agn.pk}})"><i class="far fa-copy"></i></a> &nbsp;&nbsp;&nbsp;<a href="#" onclick="javascript:copyLinkToCB('{{agn.networkid}}', {{agn.pk}})"><i class="far fa-copy"></i></a>
<span id="aglink_{{agn.pk}}" style="display: none;">Kopiert!</span> <span id="aglink_{{agn.pk}}" style="display: none;">Kopiert!</span>
{% endif %} {% endif %}
</td> </td>
<td>{{agn.creator_agency.name }} <td>{{agn.creator_agency.name }}
&nbsp;<i style="float: right" onclick="javascript:$('#showAgencyInfo_{{agn.creator_agency.pk}}').modal('toggle');" class="fas fa-info-circle"></i> &nbsp;<i style="float: right" onclick="javascript:$('#showAgencyInfo_{{agn.creator_agency.pk}}').modal('toggle');" class="fas fa-info-circle"></i>
</td> </td>
<td>{{agn.creator.first_name }} {{agn.creator.last_name }}</td> <td>{{agn.creator.first_name }} {{agn.creator.last_name }}</td>
@ -42,8 +42,8 @@
<td><a href="{% url 'managagn' agn.pk %}">{% if outstanding %}<i class="fas fa-info-circle" data-toggle="tooltip" data-placement="top" title="Es gibt ausstehende Einladung."></i> {% endif %}{{agsum}}</a></td> <td><a href="{% url 'managagn' agn.pk %}">{% if outstanding %}<i class="fas fa-info-circle" data-toggle="tooltip" data-placement="top" title="Es gibt ausstehende Einladung."></i> {% endif %}{{agsum}}</a></td>
<td>{{agn.standards.all|length}}</td> <td>{{agn.standards.all|length}}</td>
<td style="min-width: 50px"> <td style="min-width: 50px">
{% if is_adminag %} {% if is_adminag %}
<span style="float: right !important;"> <span style="float: right !important;">
<a class="btn btn-secondary btn-sm" href="{% url 'updateagn' agn.pk %}" data-toggle="tooltip" data-placement="top" title="Verbund bearbeiten"><small><i class="fas fa-pen"></i></small></a> <a class="btn btn-secondary btn-sm" href="{% url 'updateagn' agn.pk %}" data-toggle="tooltip" data-placement="top" title="Verbund bearbeiten"><small><i class="fas fa-pen"></i></small></a>
<a style="" class="btn btn-secondary btn-sm " data-toggle="tooltip" data-placement="top" title="Verbund löschen" href="{% url 'delagn' agn.pk %}"><small><i class="fas fa-trash"></i></small></a> <a style="" class="btn btn-secondary btn-sm " data-toggle="tooltip" data-placement="top" title="Verbund löschen" href="{% url 'delagn' agn.pk %}"><small><i class="fas fa-trash"></i></small></a>
</span> </span>
@ -52,8 +52,8 @@
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
@ -72,16 +72,16 @@
<hr> <hr>
{% if agn.creator_agency.inhaber|length > 0 %}Inhaber: {{agn.creator_agency.inhaber}}<br /> {% endif %} {% if agn.creator_agency.inhaber|length > 0 %}Inhaber: {{agn.creator_agency.inhaber}}<br /> {% endif %}
{% if agn.creator_agency.street|length > 0 %}Adresse: {{agn.creator_agency.street}} {{agn.creator_agency.plz}} {{agn.creator_agency.city}}<br /> {% endif %} {% if agn.creator_agency.street|length > 0 %}Adresse: {{agn.creator_agency.street}} {{agn.creator_agency.plz}} {{agn.creator_agency.city}}<br /> {% endif %}
{% if agn.creator_agency.phone|length > 0 %}Telefon: {{agn.creator_agency.phone}} <hr>{% endif %} {% if agn.creator_agency.phone|length > 0 %}Telefon: {{agn.creator_agency.phone}} <hr>{% endif %}
E-Mailadresse: <a href="mailto:{{agn.agency_mail}}">{{agn.creator_agency.agency_email}}</a> E-Mailadresse: <a href="mailto:{{agn.agency_mail}}">{{agn.creator_agency.agency_email}}</a>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schliessen</button> <button type="button" class="btn btn-success" data-dismiss="modal">Schliessen</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
<div class="modal fade" id="showAGNLink" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="" aria-hidden="true"> <div class="modal fade" id="showAGNLink" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="" aria-hidden="true">
<div class="modal-dialog " role="document"> <div class="modal-dialog " role="document">
@ -92,12 +92,12 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Agenturverbund <b><span id="agn_name">NAME</span></b><br /> Agenturverbund <b><span id="agn_name">NAME</span></b><br />
Link für die Einladung:<br/> <b><span id="agn_link">LINK</span></b> Link für die Einladung:<br/> <b><span id="agn_link">LINK</span></b>
<br /> <br />
<p class="mt-2">Leiten Sie den Link an Agenturen weiter, die Sie zu Ihrem Verbund einladen möchten.</p> <p class="mt-2">Leiten Sie den Link an Agenturen weiter, die Sie zu Ihrem Verbund einladen möchten.</p>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div> </div>
@ -115,9 +115,9 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Möchten Sie den Agenturverbund <b><span id="agname">NAME</span></b> verlassen? Möchten Sie den Agenturverbund <b><span id="agname">NAME</span></b> verlassen?
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:doRemAgFromAgn()">Ja, Agenturverbund verlassen</button>&nbsp; <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:doRemAgFromAgn()">Ja, Agenturverbund verlassen</button>&nbsp;
<button type="button" class="btn btn" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn btn" data-dismiss="modal">Abbrechen</button>
@ -137,14 +137,14 @@
function copyLinkToCB(tocopy, id){ function copyLinkToCB(tocopy, id){
var val = "{{baseurl}}dasettings/agnni/" + tocopy; var val = "{{baseurl}}dasettings/agnni/" + tocopy;
var $temp = $("<input>"); var $temp = $("<input>");
$("body").append($temp); $("body").append($temp);
$temp.val(val).select(); $temp.val(val).select();
document.execCommand("copy"); document.execCommand("copy");
$temp.remove(); $temp.remove();
$("#aglink_" + id).show(); $("#aglink_" + id).show();
} }
function doRemAgFromAgn(){ function doRemAgFromAgn(){
$.ajax( $.ajax(
@ -156,7 +156,7 @@
agid : {{request.user.profile.agency.pk}}, agid : {{request.user.profile.agency.pk}},
agnid : workingid agnid : workingid
}, },
success: function( data ) success: function( data )
{ {
$("#delAgFromAgn").modal("toggle"); $("#delAgFromAgn").modal("toggle");
$("#agn_" + workingid).remove(); $("#agn_" + workingid).remove();
@ -173,7 +173,7 @@
$(document).ready(function(){ $(document).ready(function(){
$('#agntable').DataTable({ $('#agntable').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -188,11 +188,12 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}); });
</script> </script>
@ -214,4 +215,4 @@ name = models.CharField(default="", max_length=200)
sharemembers = models.ManyToManyField("Agency", related_name="ShareMemberAgencys", blank=True) sharemembers = models.ManyToManyField("Agency", related_name="ShareMemberAgencys", blank=True)
publicjoin = models.BooleanField(default=False) publicjoin = models.BooleanField(default=False)
networkid = models.CharField(default="", max_length=30) networkid = models.CharField(default="", max_length=30)
--> -->

View File

@ -16,7 +16,7 @@
<th scope="col">Name</th> <th scope="col">Name</th>
<th scope="col">Tag</th> <th scope="col">Tag</th>
<!--<th scope="col">Logo</th> --> <!--<th scope="col">Logo</th> -->
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
{% endif %} {% endif %}
</tr> </tr>
@ -25,18 +25,18 @@
{% for fd in freedays %} {% for fd in freedays %}
<tr> <tr>
<td>{{ fd.name }}</td> <td>{{ fd.name }}</td>
<td>{{ fd.day|date:"d. F Y" }}</td> <td>{{ fd.day|date:"d. F Y" }}</td>
<td> <td>
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<a style="float: right" class="btn btn-secondary btn-sm ml-2" href="{% url 'freeday-delete' fd.pk %}"> <a style="float: right" class="btn btn-secondary btn-sm ml-2" href="{% url 'freeday-delete' fd.pk %}">
</a> </a>
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
<button class="btn btn-secondary mt-2" onclick="javascript:$('#allDel').modal('toggle');" style="float: left;"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary mt-2" onclick="javascript:$('#allDel').modal('toggle');" style="float: left;"><small><i class="fas fa-trash"></i></small></button>
</div> </div>
@ -72,10 +72,10 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p>Die Postleitzahl Ihrer Agentur konnte nicht gefunden. Bitte gehen Sie in den Bereich Einstellungen auf den Reiter Agentur, um dort eine gültige Postleizahl zu hinterlegen.</p> <p>Die Postleitzahl Ihrer Agentur konnte nicht gefunden. Bitte gehen Sie in den Bereich Einstellungen auf den Reiter Agentur, um dort eine gültige Postleizahl zu hinterlegen.</p>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
</div> </div>
@ -96,7 +96,7 @@
<small>Es werden immer automatisch die Feiertage für die nächsten zwei Jahre geladen. </small> <small>Es werden immer automatisch die Feiertage für die nächsten zwei Jahre geladen. </small>
<hr> <hr>
<div class="form-group"> <div class="form-group">
<label for="">Jahr:</label> <label for="">Jahr:</label>
{% getsomeyears 2023 as years %} {% getsomeyears 2023 as years %}
<select class="form-control" id="yearvalue"> <select class="form-control" id="yearvalue">
@ -111,17 +111,17 @@
<label class="custom-control-label" for="freedays_plz">Feiertage für meine PLZ ({{user.profile.agency.plz}})</label> <label class="custom-control-label" for="freedays_plz">Feiertage für meine PLZ ({{user.profile.agency.plz}})</label>
</div> </div>
<div class="custom-control custom-radio"> <div class="custom-control custom-radio">
<input type="radio" class="custom-control-input" id="freedays_land" name="landchoice" > <input type="radio" class="custom-control-input" id="freedays_land" name="landchoice" >
<label class="custom-control-label" for="freedays_land">Deutschlandweite Feiertage</label> <label class="custom-control-label" for="freedays_land">Deutschlandweite Feiertage</label>
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" onclick="javascript:loadCustomFreeDays()" >Feiertage laden</button> <button type="button" class="btn btn-primary" onclick="javascript:loadCustomFreeDays()" >Feiertage laden</button>
<button type="button" class="btn" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn" data-dismiss="modal">Abbrechen</button>
</div> </div>
</div> </div>
</div> </div>
@ -141,17 +141,17 @@
Möchten Sie wirklich alle gespeicherten Feiertage löschen? Möchten Sie wirklich alle gespeicherten Feiertage löschen?
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" onclick="javascript:doDelAll()" >Alle löschen</button> <button type="button" class="btn btn-primary" onclick="javascript:doDelAll()" >Alle löschen</button>
<button type="button" class="btn" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn" data-dismiss="modal">Abbrechen</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
{% if init_freedays %} {% if init_freedays %}
$("#freedays_initloadinginfo").modal("toggle"); $("#freedays_initloadinginfo").modal("toggle");
{% endif %} {% endif %}
$('#fdtable').DataTable({ $('#fdtable').DataTable({
@ -167,14 +167,15 @@
"next": "Nächste", "next": "Nächste",
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"aaSorting": [], "aaSorting": [],
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}) })
function doDelAll(){ function doDelAll(){
$("#allDel").modal("toggle"); $("#allDel").modal("toggle");
$.ajax( $.ajax(
@ -182,38 +183,38 @@
type: "GET", type: "GET",
url: "{% url 'dasettings-ajax' %}", url: "{% url 'dasettings-ajax' %}",
data:{ data:{
action : "delallfreedays", action : "delallfreedays",
}, },
success: function( data ) success: function( data )
{ {
if(data["success"]){ if(data["success"]){
window.location.href = "{% url 'tm-managemenetfreedays' %}"; window.location.href = "{% url 'tm-managemenetfreedays' %}";
} }
else{ else{
$("#plz_error").modal("toggle"); $("#plz_error").modal("toggle");
} }
} }
}); });
} }
function loadFreeDays() function loadFreeDays()
{ {
$("#freedays_initloadinginfo").modal("hide"); $("#freedays_initloadinginfo").modal("hide");
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
url: "{% url 'dasettings-ajax' %}", url: "{% url 'dasettings-ajax' %}",
data:{ data:{
action : "initloadfreedays", action : "initloadfreedays",
}, },
success: function( data ) success: function( data )
{ {
if(data["success"]){ if(data["success"]){
window.location.href = "{% url 'tm-managemenetfreedays' %}"; window.location.href = "{% url 'tm-managemenetfreedays' %}";
} }
else{ else{
$("#plz_error").modal("toggle"); $("#plz_error").modal("toggle");
} }
} }
}); });
} }
@ -234,14 +235,14 @@
agencyplz : agencyplz, agencyplz : agencyplz,
land : land land : land
}, },
success: function( data ) success: function( data )
{ {
if(data["success"]){ if(data["success"]){
window.location.href = "{% url 'tm-managemenetfreedays' %}"; window.location.href = "{% url 'tm-managemenetfreedays' %}";
} }
else{ else{
$("#plz_error").modal("toggle"); $("#plz_error").modal("toggle");
} }
} }
}); });
} }

View File

@ -5,32 +5,32 @@
<div class="content-section col-9"> <div class="content-section col-9">
<h3>Agenturverbund {{agn.name}} beitreten</h3> <h3>Agenturverbund {{agn.name}} beitreten</h3>
<hr> <hr>
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<h5 class="card-title">Verbundinfos</h5> <h5 class="card-title">Verbundinfos</h5>
{% getsumofallag agn.pk as agsum %} {% getsumofallag agn.pk as agsum %}
{% getsumofallstandards agn.pk as ag_standardsum %} {% getsumofallstandards agn.pk as ag_standardsum %}
<h6><b>Gründeragentur</b> {{agn.creator_agency.name }}</h6> <h6><b>Gründeragentur</b> {{agn.creator_agency.name }}</h6>
<h6><b>Gegründet von</b> {{agn.creator.first_name }} {{agn.creator.last_name }}</h6> <h6><b>Gegründet von</b> {{agn.creator.first_name }} {{agn.creator.last_name }}</h6>
<h6><b>Grüdungsdatum</b> {{agn.created_on }}</h6> <h6><b>Grüdungsdatum</b> {{agn.created_on }}</h6>
<h6><b>Agenturen</b> {{agsum}}</h6> <h6><b>Agenturen</b> {{agsum}}</h6>
<h6><b>Standards</b> {{agn.standards.all|length}}</h6> <h6><b>Standards</b> {{agn.standards.all|length}}</h6>
<h6><b>Letzte Aktivität</b> {{agn.lastactivity}}</h6> <h6><b>Letzte Aktivität</b> {{agn.lastactivity}}</h6>
{% if agn.publicjoin %} {% if agn.publicjoin %}
<hr> <hr>
Das Beitreten zu diesem Verbund ist öffentlich. Sie können daher sofort nach Beitritt die geteilten Informationen einsehen, aber selber keine Informationen in den Verbund teilen. Das Beitreten zu diesem Verbund ist öffentlich. Sie können daher sofort nach Beitritt die geteilten Informationen einsehen, aber selber keine Informationen in den Verbund teilen.
{% endif %} {% endif %}
<hr> <hr>
<h5>Agenturen im Verbund</h5> <h5>Agenturen im Verbund</h5>
<b>Verwaltende Agenturen:</b> <b>Verwaltende Agenturen:</b>
{% for a in agn.adminagencys.all %} {% for a in agn.adminagencys.all %}
&nbsp;{{a.name}}{% if forloop.counter < agn.adminagencys.all|length %},{% endif %}{% endfor %} &nbsp;{{a.name}}{% if forloop.counter < agn.adminagencys.all|length %},{% endif %}{% endfor %}
<br /> <br />
{% if agn.members.all|length > 0 or agn.sharemembers.all|length %} {% if agn.members.all|length > 0 or agn.sharemembers.all|length %}
<a href="#\" onclick="javascript:showHiddenAgencys()" style=""><b id="textinfomembers">Mitgliedsagenturen betrachten</b></a> <a href="#\" onclick="javascript:showHiddenAgencys()" style=""><b id="textinfomembers">Mitgliedsagenturen betrachten</b></a>
<span id="agencys_of_ag" style="display: none;"> <span id="agencys_of_ag" style="display: none;">
<hr> <hr>
<div class="table-responsive mt-2"> <div class="table-responsive mt-2">
@ -42,45 +42,45 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for agn_s in agn.adminagencys.all %} {% for agn_s in agn.adminagencys.all %}
<tr id="agn_{{agn_s.pk}}"> <tr id="agn_{{agn_s.pk}}">
<td>{{agn_s.name}}</td> <td>{{agn_s.name}}</td>
<td> <td>
{% if agn_s in agn.adminagencys.all %}Administratives Mitglied {% if agn_s in agn.adminagencys.all %}Administratives Mitglied
{% elif agn_s in agn.members.all %}Mitglied {% elif agn_s in agn.members.all %}Mitglied
{% elif agn_s in agn.sharemembers.all %}Inhalte teilen {% elif agn_s in agn.sharemembers.all %}Inhalte teilen
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
{% for agn_s in agn.sharemembers.all %} {% for agn_s in agn.sharemembers.all %}
<tr id="agn_{{agn_s.pk}}"> <tr id="agn_{{agn_s.pk}}">
<td>{{agn_s.name}}</td> <td>{{agn_s.name}}</td>
<td> <td>
{% if agn_s in agn.adminagencys.all %}Administratives Mitglied {% if agn_s in agn.adminagencys.all %}Administratives Mitglied
{% elif agn_s in agn.members.all %}Mitglied {% elif agn_s in agn.members.all %}Mitglied
{% elif agn_s in agn.sharemembers.all %}Inhalte teilen {% elif agn_s in agn.sharemembers.all %}Inhalte teilen
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
{% for agn_s in agn.members.all %} {% for agn_s in agn.members.all %}
<tr id="agn_{{agn_s.pk}}"> <tr id="agn_{{agn_s.pk}}">
<td>{{agn_s.name}}</td> <td>{{agn_s.name}}</td>
<td> <td>
{% if agn_s in agn.adminagencys.all %}Administratives Mitglied {% if agn_s in agn.adminagencys.all %}Administratives Mitglied
{% elif agn_s in agn.members.all %}Mitglied {% elif agn_s in agn.members.all %}Mitglied
{% elif agn_s in agn.sharemembers.all %}Inhalte teilen {% elif agn_s in agn.sharemembers.all %}Inhalte teilen
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
{% endif %} {% endif %}
</span> </span>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
@ -101,7 +101,7 @@
$(document).ready(function(){ $(document).ready(function(){
$('#agnetworkagencys_onlyview').DataTable({ $('#agnetworkagencys_onlyview').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -116,21 +116,22 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}); });
</script> </script>
<hr> <hr>
Möchten Sie diesem Verbund beitreten? Möchten Sie diesem Verbund beitreten?
<br /> <br />
<div class="mt-2"> <div class="mt-2">
<a type="button" class="btn btn-primary" data-dismiss="modal" href="{% url 'joinagn' agn.pk %}">Verbund beitreten</a>&nbsp; <a type="button" class="btn btn-primary" data-dismiss="modal" href="{% url 'joinagn' agn.pk %}">Verbund beitreten</a>&nbsp;
<a type="button" class="btn btn" data-dismiss="modal" href="{% url 'dasettings' %}">Abbrechen</a> <a type="button" class="btn btn" data-dismiss="modal" href="{% url 'dasettings' %}">Abbrechen</a>
</div> </div>

View File

@ -33,26 +33,26 @@ noclickeffect:active { border-style: outset !important;}
<div class="card mb-2" id="maincard_{{area.pk}}"> <div class="card mb-2" id="maincard_{{area.pk}}">
<div class="card-header" id="area_{{area.pk}}" style="background-color: {{area.color}};opacity:0.8;"> <div class="card-header" id="area_{{area.pk}}" style="background-color: {{area.color}};opacity:0.8;">
<h5 class="mb-0" style="opacity:1.0;"> <h5 class="mb-0" style="opacity:1.0;">
<small><span style="color: #FFFFFF;"><i class="fas fa-sort"></i>&nbsp;&nbsp;&nbsp;&nbsp;</span></small> <small><span style="color: #FFFFFF;"><i class="fas fa-sort"></i>&nbsp;&nbsp;&nbsp;&nbsp;</span></small>
<button class="btn noclickeffect" data-toggle="collapse" data-target="#area_content_{{area.pk}}" aria-expanded="false" aria-controls="area_content_{{area.pk}}"><small><span style="color: #FFFFFF;"><i class="fas fa-chevron-down"></i></span></small></button> <button class="btn noclickeffect" data-toggle="collapse" data-target="#area_content_{{area.pk}}" aria-expanded="false" aria-controls="area_content_{{area.pk}}"><small><span style="color: #FFFFFF;"><i class="fas fa-chevron-down"></i></span></small></button>
<button class="btn noclickeffect" data-toggle="collapse" data-target="#area_content_{{area.pk}}" aria-expanded="false" aria-controls="area_content_{{area.pk}}"> <button class="btn noclickeffect" data-toggle="collapse" data-target="#area_content_{{area.pk}}" aria-expanded="false" aria-controls="area_content_{{area.pk}}">
<span id="areaname_{{area.pk}}" style="color: #ffffff">Bereich <b>{{area.name}}&nbsp;</b></span> <span id="areaname_{{area.pk}}" style="color: #ffffff">Bereich <b>{{area.name}}&nbsp;</b></span>
</button> </button>
<button style="float: right" type="button" class="btn btn-light btn-sm " onclick="javascript:delArea({{area.pk}})" data-toggle="tooltip" data-placement="top" title="Bereich löschen"><i class="fas fa-trash"></i></button> <button style="float: right" type="button" class="btn btn-light btn-sm " onclick="javascript:delArea({{area.pk}})" data-toggle="tooltip" data-placement="top" title="Bereich löschen"><i class="fas fa-trash"></i></button>
<button type="button" style="float: right" class="btn btn-light btn-sm mr-1" onclick="javascript:addArea({{area.pk}})" data-toggle="tooltip" data-placement="top" title="Bereichsnamen und -farbe ändern"><small><i class="fas fa-pen"></i></small></button> <button type="button" style="float: right" class="btn btn-light btn-sm mr-1" onclick="javascript:addArea({{area.pk}})" data-toggle="tooltip" data-placement="top" title="Bereichsnamen und -farbe ändern"><small><i class="fas fa-pen"></i></small></button>
</h5> </h5>
</div> </div>
<div id="area_content_{{area.pk}}" class="collapse" data-labelledby="area_{{area.pk}}" data-parent="#sortableAreas"> <div id="area_content_{{area.pk}}" class="collapse" data-labelledby="area_{{area.pk}}" data-parent="#sortableAreas">
<div class="card-body"> <div class="card-body">
<button class="btn btn-primary mb-4" onclick="javascript:addTask({{area.pk}})" data-toggle="tooltip" data-placement="top" title="Neue Tätigkeit hinzufügen."><i class="fas fa-plus"></i>&nbsp;Tätigkeit</button> <button class="btn btn-primary mb-4" onclick="javascript:addTask({{area.pk}})" data-toggle="tooltip" data-placement="top" title="Neue Tätigkeit hinzufügen."><i class="fas fa-plus"></i>&nbsp;Tätigkeit</button>
<table class="table hover" id="areatask_{{area.pk}}_table"> <table class="table hover" id="areatask_{{area.pk}}_table">
<thead> <thead>
<tr> <tr>
<th scope="col">Name</th> <th scope="col">Name</th>
<th scope="col">Bereich</th> <th scope="col">Bereich</th>
<th scope="col">Erstellt von</th> <th scope="col">Erstellt von</th>
<th scope="col">Erstellt am</th> <th scope="col">Erstellt am</th>
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
</tr> </tr>
@ -65,15 +65,15 @@ noclickeffect:active { border-style: outset !important;}
<td>{{ task.area.name }}</td> <td>{{ task.area.name }}</td>
<td>{{ task.created_area_by.first_name }} {{ task.created_area_by.last_name }}</td> <td>{{ task.created_area_by.first_name }} {{ task.created_area_by.last_name }}</td>
<td>{{ task.created_area_date }}</td> <td>{{ task.created_area_date }}</td>
<td> <td>
<button style="float: right" type="button" class="btn btn-secondary btn-sm " onclick="javascript:delTask({{task.pk}})" data-toggle="tooltip" data-placement="top" title="Tätigkeit löschen"><i class="fas fa-trash"></i></button> <button style="float: right" type="button" class="btn btn-secondary btn-sm " onclick="javascript:delTask({{task.pk}})" data-toggle="tooltip" data-placement="top" title="Tätigkeit löschen"><i class="fas fa-trash"></i></button>
<button style="float: right" class="btn btn-sm btn-secondary mr-1 " onclick="javascript:updateTaskComplete({{task.pk}})" data-toggle="tooltip" data-placement="top" title="Tätigkeit bearbeiten"><small><i class="fas fa-pen"></i></small></button> <button style="float: right" class="btn btn-sm btn-secondary mr-1 " onclick="javascript:updateTaskComplete({{task.pk}})" data-toggle="tooltip" data-placement="top" title="Tätigkeit bearbeiten"><small><i class="fas fa-pen"></i></small></button>
</td> </td>
</tr> </tr>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
@ -103,8 +103,8 @@ noclickeffect:active { border-style: outset !important;}
</div> </div>
<div id="newareaname_err" class="alert alert-danger mt-3" style="display: none">Falsche Eingabe! Keine Sonderzeichen!</div> <div id="newareaname_err" class="alert alert-danger mt-3" style="display: none">Falsche Eingabe! Keine Sonderzeichen!</div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button id="doActionAreaModal" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:mainmodalAreaSave()" disabled="true">Speichern</button> <button id="doActionAreaModal" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:mainmodalAreaSave()" disabled="true">Speichern</button>
&nbsp; &nbsp;
<button type="button" class="btn" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn" data-dismiss="modal">Abbrechen</button>
@ -124,8 +124,8 @@ noclickeffect:active { border-style: outset !important;}
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Möchten Sie den Bereich <b><span id="areaName"></span></b> wirklich löschen? Alle darin enthaltenen Tätigkeiten werden gelöscht und die Standards müssen neu einer Tätigkeit und einem Bereich zugeordnet werde! Möchten Sie den Bereich <b><span id="areaName"></span></b> wirklich löschen? Alle darin enthaltenen Tätigkeiten werden gelöscht und die Standards müssen neu einer Tätigkeit und einem Bereich zugeordnet werde!
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:doDelArea()">Bereich löschen</button>&nbsp;&nbsp; <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:doDelArea()">Bereich löschen</button>&nbsp;&nbsp;
@ -151,12 +151,12 @@ noclickeffect:active { border-style: outset !important;}
<div class="form-group"> <div class="form-group">
<label for="exampleInputPassword1">Tätigkeitsname:</label> <label for="exampleInputPassword1">Tätigkeitsname:</label>
<input class="form-control" id="newtaskname" type="text" value="" placeholder="Bereichsname" onkeyup="javascript:validateTaskName(this.value, 0)"> <input class="form-control" id="newtaskname" type="text" value="" placeholder="Bereichsname" onkeyup="javascript:validateTaskName(this.value, 0)">
</div> </div>
Nach dem Erstellen der Tätigkeit können Mitarbeiter zugewiesen werden. Nach dem Erstellen der Tätigkeit können Mitarbeiter zugewiesen werden.
<div id="newtaskname_err" class="alert alert-danger mt-3" style="display: none">Falsche Eingabe! Keine Sonderzeichen!</div> <div id="newtaskname_err" class="alert alert-danger mt-3" style="display: none">Falsche Eingabe! Keine Sonderzeichen!</div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button id="doActionTaskModal" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:mainmodalTaskSave()" disabled="true">Speichern</button> <button id="doActionTaskModal" type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:mainmodalTaskSave()" disabled="true">Speichern</button>
&nbsp; &nbsp;
<button type="button" class="btn " data-dismiss="modal">Abbrechen</button> <button type="button" class="btn " data-dismiss="modal">Abbrechen</button>
@ -175,35 +175,35 @@ noclickeffect:active { border-style: outset !important;}
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="form-group"> <div class="form-group">
<label for="exampleInputPassword1">Tätigkeitsname:</label> <label for="exampleInputPassword1">Tätigkeitsname:</label>
<input class="form-control" id="updateTaskName" type="text" value="" placeholder="Tätigkeitsname" onkeyup="javascript:validateTaskName(this.value, 1)"> <input class="form-control" id="updateTaskName" type="text" value="" placeholder="Tätigkeitsname" onkeyup="javascript:validateTaskName(this.value, 1)">
</div> </div>
<h6>Bereich:&nbsp;<small><i data-toggle="tooltip" data-placement="top" title="Wird der Bereich verändert, werden auch alle Standards in den neuen Bereich verschoben." class="far fa-question-circle"></i></small></h6> <h6>Bereich:&nbsp;<small><i data-toggle="tooltip" data-placement="top" title="Wird der Bereich verändert, werden auch alle Standards in den neuen Bereich verschoben." class="far fa-question-circle"></i></small></h6>
<div class="input-group mb-3"> <div class="input-group mb-3">
<select class="custom-select" id="taskAreaSelected"> <select class="custom-select" id="taskAreaSelected">
{%for area in agencyareas%} {%for area in agencyareas%}
<option value="{{area.pk}}">{{area.name}}</option> <option value="{{area.pk}}">{{area.name}}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
<div id="updateTaskName_err" class="alert alert-danger mt-3" style="display: none">Falsche Eingabe! Keine Sonderzeichen!</div> <div id="updateTaskName_err" class="alert alert-danger mt-3" style="display: none">Falsche Eingabe! Keine Sonderzeichen!</div>
<div class="custom-control custom-checkbox mb-2 mt-2"> <div class="custom-control custom-checkbox mb-2 mt-2">
<input type="checkbox" class="custom-control-input" id="visibleTask" onchange="javascript:changeVisibleTask()"> <input type="checkbox" class="custom-control-input" id="visibleTask" onchange="javascript:changeVisibleTask()">
<label class="custom-control-label" for="visibleTask" >Im Organigramm sichtbar</label> <label class="custom-control-label" for="visibleTask" >Im Organigramm sichtbar</label>
</div> </div>
<h6>Mitarbeiter hinzufügen:</h6> <h6>Mitarbeiter hinzufügen:</h6>
<div class="input-group mb-3"> <div class="input-group mb-3">
<input class="form-control searchuserfieldstask" list="possusers" id="searchusertotask" type="text" onkeyup="javascript:checkUserToTask()" > <input class="form-control searchuserfieldstask" list="possusers" id="searchusertotask" type="text" onkeyup="javascript:checkUserToTask()" >
<div class="input-group-append"> <div class="input-group-append">
<button type="button" onclick="javascript:clearSearchfieldAddToTask()" class="btn btn-secondary" ><i class="fas fa-times"></i></button> <button type="button" onclick="javascript:clearSearchfieldAddToTask()" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
</div> </div>
<datalist id="possusers"></datalist> <datalist id="possusers"></datalist>
</div> </div>
<h6>Zugewiesene Mitarbeiter:</h6> <h6>Zugewiesene Mitarbeiter:</h6>
<div id="added_users_button"></div> <div id="added_users_button"></div>
@ -226,10 +226,10 @@ noclickeffect:active { border-style: outset !important;}
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Achtung! Die grundlegende Struktur der Tätigkeiten wurde verändert. Die Seite wird einmal neu geladen, sobald Sie dieses Fenster schließen. Achtung! Die grundlegende Struktur der Tätigkeiten wurde verändert. Die Seite wird einmal neu geladen, sobald Sie dieses Fenster schließen.
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal" onclick="javascript:window.location=window.location">Schließen</button> <button type="button" class="btn btn-success" data-dismiss="modal" onclick="javascript:window.location=window.location">Schließen</button>
</div> </div>
</div> </div>
@ -246,8 +246,8 @@ noclickeffect:active { border-style: outset !important;}
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
Möchten Sie den Bereich <b><span id="taskName"></span></b> wirklich löschen? Alle darin enthaltenen <u>Standards</u> müssen eine Tätigkeit erhalten! Möchten Sie den Bereich <b><span id="taskName"></span></b> wirklich löschen? Alle darin enthaltenen <u>Standards</u> müssen eine Tätigkeit erhalten!
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:doDelTask()">Tätigkeit löschen</button>&nbsp;&nbsp; <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="javascript:doDelTask()">Tätigkeit löschen</button>&nbsp;&nbsp;
@ -275,16 +275,16 @@ if ( isIE ) {
alluserfields = $(".searchuserfieldstask").each(function(key, value){ alluserfields = $(".searchuserfieldstask").each(function(key, value){
specific_userfield_id = value['id'].split("_")[1]; specific_userfield_id = value['id'].split("_")[1];
checkUserToTask(); checkUserToTask();
}); });
},400); },400);
} }
function checkUserToTask(){ function checkUserToTask(){
var g = $('#searchusertotask').val(); var g = $('#searchusertotask').val();
var id = $('#possusers').find('option[value="' + g + '"]').attr('id'); var id = $('#possusers').find('option[value="' + g + '"]').attr('id');
if(id != undefined && id.length > 0){ if(id != undefined && id.length > 0){
tempid_useraddtask = id.split("_")[0]; tempid_useraddtask = id.split("_")[0];
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
@ -294,10 +294,10 @@ function checkUserToTask(){
action : 'adduser', action : 'adduser',
objectid : workingTaskId objectid : workingTaskId
}, },
success: function( data ) success: function( data )
{ {
clearSearchfieldAddToTask(); clearSearchfieldAddToTask();
//Add User-Button //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>'); $("#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>');
$("#possusers").empty(); $("#possusers").empty();
@ -318,7 +318,7 @@ $( function() {
$( "#sortableAreas" ).sortable $( "#sortableAreas" ).sortable
({ ({
axis:"y", axis:"y",
update: function( event, ui ) update: function( event, ui )
{ {
datatoserver = []; datatoserver = [];
var rows = $( "#sortableAreas" ).sortable( "widget" )[0]['children']; var rows = $( "#sortableAreas" ).sortable( "widget" )[0]['children'];
@ -334,15 +334,15 @@ $( function() {
action: "newareaorder", action: "newareaorder",
finalod : JSON.stringify(datatoserver) finalod : JSON.stringify(datatoserver)
}, },
success: function( data ) success: function( data )
{ {
$('#notchange_done').toast('show'); $('#notchange_done').toast('show');
} }
}); });
} }
}); });
}); });
$( "#sortableAreas" ).disableSelection(); $( "#sortableAreas" ).disableSelection();
taskaddtoarea = false; taskaddtoarea = false;
@ -357,7 +357,7 @@ function addTask(areaid){
$("#mainmodalTasks").modal("toggle"); $("#mainmodalTasks").modal("toggle");
$("#newtaskname").val(""); $("#newtaskname").val("");
$("#doActionTaskModal").prop("disabled", true); $("#doActionTaskModal").prop("disabled", true);
$("#newtaskname_err").hide(); $("#newtaskname_err").hide();
} }
@ -371,9 +371,9 @@ function mainmodalTaskSave(){
newvalue : $("#newtaskname").val(), newvalue : $("#newtaskname").val(),
areaid : taskaddtoarea areaid : taskaddtoarea
}, },
success: function( data ) success: function( data )
{ {
if(data['success']){ if(data['success']){
newtaskid = data['data']['newtaskid']; newtaskid = data['data']['newtaskid'];
newtaskname = data['data']['name']; newtaskname = data['data']['name'];
newtaskareaname = data['data']['areaname']; newtaskareaname = data['data']['areaname'];
@ -382,7 +382,7 @@ function mainmodalTaskSave(){
$("#areatask_" + taskaddtoarea).prepend('<tr id="task_'+newtaskid+'"><td><a href="/standards/standard/'+newtaskid+'/task" id="taskname_td_area_'+newtaskid+'">'+newtaskname+'</a></td><td>'+newtaskareaname+'</td><td>'+taskcreatedby+'</td><td>'+taskcreateddate+'</td><td><button style="float: right" type="button" class="btn btn-secondary btn-sm " onclick="javascript:delTask('+newtaskid+')" data-toggle="tooltip" data-placement="top" title="Tätigkeit löschen"><i class="fas fa-trash"></i></button><button style="float: right" class="btn btn-secondary btn-sm mr-1" onclick="javascript:updateTaskComplete('+newtaskid+')" data-toggle="tooltip" data-placement="top" title="Tätigkeit bearbeiten"><small><i class="fas fa-pen"></i></small></button></td> ></tr>'); $("#areatask_" + taskaddtoarea).prepend('<tr id="task_'+newtaskid+'"><td><a href="/standards/standard/'+newtaskid+'/task" id="taskname_td_area_'+newtaskid+'">'+newtaskname+'</a></td><td>'+newtaskareaname+'</td><td>'+taskcreatedby+'</td><td>'+taskcreateddate+'</td><td><button style="float: right" type="button" class="btn btn-secondary btn-sm " onclick="javascript:delTask('+newtaskid+')" data-toggle="tooltip" data-placement="top" title="Tätigkeit löschen"><i class="fas fa-trash"></i></button><button style="float: right" class="btn btn-secondary btn-sm mr-1" onclick="javascript:updateTaskComplete('+newtaskid+')" data-toggle="tooltip" data-placement="top" title="Tätigkeit bearbeiten"><small><i class="fas fa-pen"></i></small></button></td> ></tr>');
} }
else{ else{
$("#mainmodalArea").modal('toggle'); $("#mainmodalArea").modal('toggle');
$('#notchange_err').toast('show'); $('#notchange_err').toast('show');
$("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!"); $("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!");
@ -392,7 +392,7 @@ function mainmodalTaskSave(){
} }
function updateTask(){ function updateTask(){
namevalue = $("#updateTaskName").val(); namevalue = $("#updateTaskName").val();
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
@ -403,9 +403,9 @@ function updateTask(){
newareaid : $("#taskAreaSelected").val(), newareaid : $("#taskAreaSelected").val(),
id : workingTaskId id : workingTaskId
}, },
success: function( data ) success: function( data )
{ {
$("a#taskname_td_area_" + workingTaskId).text(data["data"]["newvalue"]); $("a#taskname_td_area_" + workingTaskId).text(data["data"]["newvalue"]);
$("#updateTask").modal("toggle"); $("#updateTask").modal("toggle");
$('#updateTask').on('hidden.bs.modal', function (e) { $('#updateTask').on('hidden.bs.modal', function (e) {
console.log(data) console.log(data)
@ -414,9 +414,9 @@ function updateTask(){
} }
}); });
} }
}); });
} }
@ -431,11 +431,11 @@ function removeUserFromTask(userid){
action : 'remuser', action : 'remuser',
objectid : workingTaskId objectid : workingTaskId
}, },
success: function( data ) success: function( data )
{ {
//Remove User-Button //Remove User-Button
$("#span_btn_"+data['userid']).remove(); $("#span_btn_"+data['userid']).remove();
$("#possusers").empty(); $("#possusers").empty();
for (var i in data['remaining_users']) { for (var i in data['remaining_users']) {
id = data['remaining_users'][i]['id']; id = data['remaining_users'][i]['id'];
name = data['remaining_users'][i]['first_name'] + " " + data['remaining_users'][i]['last_name']; name = data['remaining_users'][i]['first_name'] + " " + data['remaining_users'][i]['last_name'];
@ -455,14 +455,14 @@ function updateTaskComplete(id){
action : "get_taskname", action : "get_taskname",
id : workingTaskId id : workingTaskId
}, },
success: function( data ) success: function( data )
{ {
$("#added_users_button").html(""); $("#added_users_button").html("");
$("#possusers").empty(); $("#possusers").empty();
$("#taskAreaSelected").val(data["data"]["taskarea"]); $("#taskAreaSelected").val(data["data"]["taskarea"]);
$("#updateTask").modal("toggle"); $("#updateTask").modal("toggle");
$("#updateTaskName").val(data['data']['taskname']); $("#updateTaskName").val(data['data']['taskname']);
$("#tasknametoupdate").html(data['data']['taskname']); $("#tasknametoupdate").html(data['data']['taskname']);
if(data['data']['visible'] == true){ if(data['data']['visible'] == true){
$("#visibleTask").prop("checked", true); $("#visibleTask").prop("checked", true);
} }
@ -472,11 +472,11 @@ function updateTaskComplete(id){
//ADDED USERS //ADDED USERS
for(i = 0; i < data["data"]["addedl"]; i++){ for(i = 0; i < data["data"]["addedl"]; i++){
$("#added_users_button").append('<span id="span_btn_'+data["data"]["added_users"][i]['userid']+'" class="badge badge-pill badge-primary mr-2 mt-2"><a class="btn btn-primary" onclick="javascript:removeUserFromTask('+data["data"]["added_users"][i]['userid']+')">'+data["data"]["added_users"][i]['fullname']+'&nbsp;&nbsp;<i class="fas fa-times"></i></a ></span>') $("#added_users_button").append('<span id="span_btn_'+data["data"]["added_users"][i]['userid']+'" class="badge badge-pill badge-primary mr-2 mt-2"><a class="btn btn-primary" onclick="javascript:removeUserFromTask('+data["data"]["added_users"][i]['userid']+')">'+data["data"]["added_users"][i]['fullname']+'&nbsp;&nbsp;<i class="fas fa-times"></i></a ></span>')
} }
//POSSIBLE USERS //POSSIBLE USERS
for(i = 0; i < data["data"]["possl"]; i++){ for(i = 0; i < data["data"]["possl"]; i++){
$("#possusers").append('<option id="'+data["data"]["possible_users"][i]['userid']+'" value="'+ data["data"]["possible_users"][i]['fullname']+'" class="addusertotask_remclass">'); $("#possusers").append('<option id="'+data["data"]["possible_users"][i]['userid']+'" value="'+ data["data"]["possible_users"][i]['fullname']+'" class="addusertotask_remclass">');
} }
} }
}); });
} }
@ -490,7 +490,7 @@ function changeVisibleTask(){
action : "update_visible_taskname", action : "update_visible_taskname",
id : workingTaskId id : workingTaskId
}, },
success: function( data ) success: function( data )
{} {}
}); });
} }
@ -502,38 +502,38 @@ function validateTaskName(newtaskname, updateornew){
if(updateornew == 0) if(updateornew == 0)
{ {
if(newtaskname.length > 0){ if(newtaskname.length > 0){
if(!newtaskname.match(letters)) if(!newtaskname.match(letters))
{ {
$("#newtaskname_err").show(); $("#newtaskname_err").show();
$("#doActionTaskModal").prop("disabled", true); $("#doActionTaskModal").prop("disabled", true);
} }
else{ else{
$("#newtaskname_err").hide(); $("#newtaskname_err").hide();
$("#doActionTaskModal").prop("disabled", false); $("#doActionTaskModal").prop("disabled", false);
} }
} }
else{ else{
$("#newtaskname_err").hide(); $("#newtaskname_err").hide();
$("#doActionTaskModal").prop("disabled", true); $("#doActionTaskModal").prop("disabled", true);
} }
} }
//UPDATE TASK //UPDATE TASK
else{ else{
if(newtaskname.length > 0){ if(newtaskname.length > 0){
if(!newtaskname.match(letters)) if(!newtaskname.match(letters))
{ {
$("#updateTaskName_err").show(); $("#updateTaskName_err").show();
$("#doActionUpdateTask").prop("disabled", true); $("#doActionUpdateTask").prop("disabled", true);
} }
else{ else{
$("#updateTaskName_err").hide(); $("#updateTaskName_err").hide();
$("#doActionUpdateTask").prop("disabled", false); $("#doActionUpdateTask").prop("disabled", false);
} }
} }
else{ else{
$("#updateTaskName_err").hide(); $("#updateTaskName_err").hide();
$("#doActionUpdateTask").prop("disabled", true); $("#doActionUpdateTask").prop("disabled", true);
} }
} }
@ -542,7 +542,7 @@ function validateTaskName(newtaskname, updateornew){
workingTaskId = false; workingTaskId = false;
function delTask(taskid){ function delTask(taskid){
workingTaskId = taskid; workingTaskId = taskid;
$("#delTask").modal("toggle"); $("#delTask").modal("toggle");
$.ajax( $.ajax(
{ {
@ -552,9 +552,9 @@ function delTask(taskid){
action : "get_taskname", action : "get_taskname",
id : workingTaskId id : workingTaskId
}, },
success: function( data ) success: function( data )
{ {
$("#taskName").html(data['data']['taskname']); $("#taskName").html(data['data']['taskname']);
} }
}); });
} }
@ -568,13 +568,13 @@ function doDelTask(){
action : "remove_task", action : "remove_task",
id : workingTaskId id : workingTaskId
}, },
success: function( data ) success: function( data )
{ {
if(data['success']){ if(data['success']){
$('#notchange_done').toast('show'); $('#notchange_done').toast('show');
$("#task_"+workingTaskId).remove(); $("#task_"+workingTaskId).remove();
} }
else{ else{
$("#delArea").modal('toggle'); $("#delArea").modal('toggle');
$('#notchange_err').toast('show'); $('#notchange_err').toast('show');
$("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!"); $("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!");
@ -591,12 +591,12 @@ function doDelArea(){
action : "remove_area", action : "remove_area",
id : workingAreaId id : workingAreaId
}, },
success: function( data ) success: function( data )
{ {
if(data['success']){ if(data['success']){
window.location.href = window.location.href + "?showtoast=true"; window.location.href = window.location.href + "?showtoast=true";
} }
else{ else{
$("#delArea").modal('toggle'); $("#delArea").modal('toggle');
$('#notchange_err').toast('show'); $('#notchange_err').toast('show');
$("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!"); $("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!");
@ -617,9 +617,9 @@ function delArea(areaid){
action : "get_areaname", action : "get_areaname",
id : areaid id : areaid
}, },
success: function( data ) success: function( data )
{ {
$("#areaName").html(data['data']['areaname']); $("#areaName").html(data['data']['areaname']);
} }
}); });
} }
@ -636,18 +636,18 @@ default_colorpickerinit = "#3498db";
newareacolor= "#ffffff"; newareacolor= "#ffffff";
//Prepare addArea-Modal and show //Prepare addArea-Modal and show
function addArea(workingAreaId) function addArea(workingAreaId)
{ {
if(workingAreaId == false) if(workingAreaId == false)
{ {
$("#mainmodalArea_title").html("Neuen Bereich anlegen"); $("#mainmodalArea_title").html("Neuen Bereich anlegen");
$("#mainmodalArea").modal('toggle'); $("#mainmodalArea").modal('toggle');
$("#newareaname").val(""); $("#newareaname").val("");
default_colorpickerinit = "#3498db"; default_colorpickerinit = "#3498db";
modalarea_action = 1; modalarea_action = 1;
} }
else { else {
areaupdateid = workingAreaId; areaupdateid = workingAreaId;
modalarea_action = 2; modalarea_action = 2;
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
@ -656,16 +656,16 @@ function addArea(workingAreaId)
action : "get_areaname", action : "get_areaname",
id : workingAreaId id : workingAreaId
}, },
success: function( data ) success: function( data )
{ {
$("#mainmodalArea_title").html("Bereich bearbeiten"); $("#mainmodalArea_title").html("Bereich bearbeiten");
$("#mainmodalArea").modal('toggle'); $("#mainmodalArea").modal('toggle');
$("#newareaname").val(data['data']['areaname']); $("#newareaname").val(data['data']['areaname']);
$("#doActionAreaModal").prop("disabled", false); $("#doActionAreaModal").prop("disabled", false);
default_colorpickerinit = data['data']['areacolor']; default_colorpickerinit = data['data']['areacolor'];
} }
}); });
} }
} }
$('#mainmodalArea').on('shown.bs.modal', function() { $('#mainmodalArea').on('shown.bs.modal', function() {
@ -685,27 +685,27 @@ $('#mainmodalArea').on('shown.bs.modal', function() {
//Validate new Area-Name //Validate new Area-Name
function validateAreaName(newareaname){ function validateAreaName(newareaname){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/; var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newareaname.length > 0){ if(newareaname.length > 0){
if(!newareaname.match(letters)) if(!newareaname.match(letters))
{ {
$("#newareaname_err").show(); $("#newareaname_err").show();
$("#doActionAreaModal").prop("disabled", true); $("#doActionAreaModal").prop("disabled", true);
} }
else{ else{
$("#newareaname_err").hide(); $("#newareaname_err").hide();
$("#doActionAreaModal").prop("disabled", false); $("#doActionAreaModal").prop("disabled", false);
} }
} }
else{ else{
$("#newareaname_err").hide(); $("#newareaname_err").hide();
$("#doActionAreaModal").prop("disabled", true); $("#doActionAreaModal").prop("disabled", true);
} }
} }
//Final save-Area //Final save-Area
function mainmodalAreaSave(){ function mainmodalAreaSave(){
namevalue = $("#newareaname").val(); namevalue = $("#newareaname").val();
//ADD AREA //ADD AREA
if(modalarea_action == 1){ if(modalarea_action == 1){
$.ajax( $.ajax(
@ -717,12 +717,12 @@ function mainmodalAreaSave(){
newvalue : namevalue, newvalue : namevalue,
color : newareacolor color : newareacolor
}, },
success: function( data ) success: function( data )
{ {
if(data['success']){ if(data['success']){
window.location.href = window.location.href + "?showtoast=true"; window.location.href = window.location.href + "?showtoast=true";
} }
else{ else{
$("#mainmodalArea").modal('toggle'); $("#mainmodalArea").modal('toggle');
$('#notchange_err').toast('show'); $('#notchange_err').toast('show');
$("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!"); $("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!");
@ -742,12 +742,12 @@ function mainmodalAreaSave(){
newvalue : namevalue, newvalue : namevalue,
color : newareacolor color : newareacolor
}, },
success: function( data ) success: function( data )
{ {
if(data['success']){ if(data['success']){
$("#mainmodalArea").modal('toggle'); $("#mainmodalArea").modal('toggle');
$('#notchange_done').toast('show'); $('#notchange_done').toast('show');
$("#areaname_" + areaupdateid).html("Bereich <b>"+data['data']['newvalue']+"&nbsp;</b>"); $("#areaname_" + areaupdateid).html("Bereich <b>"+data['data']['newvalue']+"&nbsp;</b>");
$("#area_" + areaupdateid).css("background-color", data['data']['color']); $("#area_" + areaupdateid).css("background-color", data['data']['color']);
} }
else{ else{
@ -761,7 +761,7 @@ function mainmodalAreaSave(){
$(document).ready(function(){ $(document).ready(function(){
{% for area in agencyareas %} {% for area in agencyareas %}
$('#areatask_{{area.pk}}_table').DataTable({ $('#areatask_{{area.pk}}_table').DataTable({
"language": { "language": {
@ -777,6 +777,7 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }

View File

@ -80,6 +80,7 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }

View File

@ -708,7 +708,7 @@ def SettingsAjaxRouter(request):
standardsmoved = True standardsmoved = True
newareaobj = Areas.objects.get(pk=newareaid, agency=request.user.profile.agency) newareaobj = Areas.objects.get(pk=newareaid, agency=request.user.profile.agency)
Standards.objects.filter(agency=request.user.profile.agency, area=task.area, task=task).update(area=newareaobj) Standards.objects.filter(agency=request.user.profile.agency, area=task.area, task=task).update(area=newareaobj)
task.area = newareaobj task.area = newareaobj
task.save() task.save()
data = {"newvalue" : task.name, "smoved" : standardsmoved} data = {"newvalue" : task.name, "smoved" : standardsmoved}
success = True success = True

View File

@ -4,38 +4,38 @@
<div class="content-section col-12"> <div class="content-section col-12">
<h3>News&nbsp;<small><i data-toggle="tooltip" data-placement="top" title="Hier können aktuelle Nachrichten für die Agentur erstellt und verwaltet werden." class="far fa-question-circle"></i></small> <h3>News&nbsp;<small><i data-toggle="tooltip" data-placement="top" title="Hier können aktuelle Nachrichten für die Agentur erstellt und verwaltet werden." class="far fa-question-circle"></i></small>
{% if perms.users.modulenews %} {% if perms.users.modulenews %}
<a class="btn btn-sm btn-primary" href="{% url 'news-add' %} " style="float: right" data-toggle="tooltip" data-placement="top" title="Neue News für Ihre Agentur erstellen"><i class="fas fa-plus"></i>&nbsp;News</a> <a class="btn btn-sm btn-primary" href="{% url 'news-add' %} " style="float: right" data-toggle="tooltip" data-placement="top" title="Neue News für Ihre Agentur erstellen"><i class="fas fa-plus"></i>&nbsp;News</a>
{% endif %} {% endif %}
<small><i onclick="javascript:$('#youtubevideoinformation').modal('toggle');" class="far fa-play-circle"></i></small> <small><i onclick="javascript:$('#youtubevideoinformation').modal('toggle');" class="far fa-play-circle"></i></small>
</h3> </h3>
<hr> <hr>
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<ul class="nav nav-tabs" id="news_tabs" role="tablist"> <ul class="nav nav-tabs" id="news_tabs" role="tablist">
{% if perms.users.modulenews %} {% if perms.users.modulenews %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="act" data-toggle="tab" href="#t_act" role="tab" aria-controls="news" aria-selected="false">Aktuelle</a> <a class="nav-link" id="act" data-toggle="tab" href="#t_act" role="tab" aria-controls="news" aria-selected="false">Aktuelle</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="coming" data-toggle="tab" href="#t_coming" role="tab" aria-controls="coming" aria-selected="false">Ausstehende</a> <a class="nav-link" id="coming" data-toggle="tab" href="#t_coming" role="tab" aria-controls="coming" aria-selected="false">Ausstehende</a>
</li> </li>
{% endif %} {% endif %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="archiv" data-toggle="tab" href="#t_archiv" role="tab" aria-controls="archiv" aria-selected="false">Archiv</a> <a class="nav-link" id="archiv" data-toggle="tab" href="#t_archiv" role="tab" aria-controls="archiv" aria-selected="false">Archiv</a>
</li> </li>
</ul> </ul>
</div> </div>
<div class="col"> <div class="col">
<div class="tab-content" id="tab_contents"> <div class="tab-content" id="tab_contents">
{% if perms.users.modulenews %} {% if perms.users.modulenews %}
<div class="tab-pane fade" id="t_act" role="tabpanel" aria-labelledby="act"> <div class="tab-pane fade" id="t_act" role="tabpanel" aria-labelledby="act">
<h5 class="mt-3"><a href="" style="color: #000000;">Aktuelle News</a></h5> <h5 class="mt-3"><a href="" style="color: #000000;">Aktuelle News</a></h5>
<hr> <hr>
<div class="row"> <div class="row">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-hover" id="activenews" > <table class="table table-hover" id="activenews" >
<thead> <thead>
@ -43,16 +43,16 @@
<th scope="col">Titel</th> <th scope="col">Titel</th>
<th scope="col">Erstellt von</th> <th scope="col">Erstellt von</th>
<th scope="col">Erstellt am</th> <th scope="col">Erstellt am</th>
<th scope="col">Sichtbar von/bis</th> <th scope="col">Sichtbar von/bis</th>
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody id="tableresults"> <tbody id="tableresults">
{% for news_single in news %} {% for news_single in news %}
<tr> <tr>
<td><a href="{% url 'news-single' news_single.pk %}">{{news_single.name }}</a></td> <td><a href="{% url 'news-single' news_single.pk %}">{{news_single.name }}</a></td>
<td>{{ news_single.created_by.first_name }} {{ news_single.created_by.last_name }}</td> <td>{{ news_single.created_by.first_name }} {{ news_single.created_by.last_name }}</td>
<td>{{ news_single.created_date }}</td> <td>{{ news_single.created_date }}</td>
<td>{{ news_single.go_online_on|date:"d.m.Y, H:i"}} bis {{ news_single.go_offline_on|date:"d.m.Y, H:i"}}</td> <td>{{ news_single.go_online_on|date:"d.m.Y, H:i"}} bis {{ news_single.go_offline_on|date:"d.m.Y, H:i"}}</td>
<td> <td>
{% if news_single.created_by == request.user or perms.users.news_management %} {% if news_single.created_by == request.user or perms.users.news_management %}
@ -65,20 +65,20 @@
</a> </a>
{% endif %} {% endif %}
</div> </div>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% if perms.users.modulenews %} {% if perms.users.modulenews %}
<div class="tab-pane fade" id="t_coming" role="tabpanel" aria-labelledby="coming"> <div class="tab-pane fade" id="t_coming" role="tabpanel" aria-labelledby="coming">
<h5 class="mt-3"><a href="" style="color: #000000;">Ausstehende News</a></h5> <h5 class="mt-3"><a href="" style="color: #000000;">Ausstehende News</a></h5>
<hr> <hr>
<div class="row"> <div class="row">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-hover" id="comingnews"> <table class="table table-hover" id="comingnews">
<thead> <thead>
@ -86,16 +86,16 @@
<th scope="col">Titel</th> <th scope="col">Titel</th>
<th scope="col">Erstellt von</th> <th scope="col">Erstellt von</th>
<th scope="col">Erstellt am</th> <th scope="col">Erstellt am</th>
<th scope="col">Sichtbar von/bis</th> <th scope="col">Sichtbar von/bis</th>
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody id="tableresults_arch"> <tbody id="tableresults_arch">
{% for news_single in news_coming %} {% for news_single in news_coming %}
<tr> <tr>
<td><a href="{% url 'news-single' news_single.pk %}">{{news_single.name }}</a></td> <td><a href="{% url 'news-single' news_single.pk %}">{{news_single.name }}</a></td>
<td>{{ news_single.created_by.first_name }} {{ news_single.created_by.last_name }}</td> <td>{{ news_single.created_by.first_name }} {{ news_single.created_by.last_name }}</td>
<td>{{ news_single.created_date }}</td> <td>{{ news_single.created_date }}</td>
<td>{{ news_single.go_online_on|date:"d.m.Y, H:i"}} bis {{ news_single.go_offline_on|date:"d.m.Y, H:i"}}</td> <td>{{ news_single.go_online_on|date:"d.m.Y, H:i"}} bis {{ news_single.go_offline_on|date:"d.m.Y, H:i"}}</td>
<td> <td>
{% if news_single.created_by == request.user or perms.users.news_management %} {% if news_single.created_by == request.user or perms.users.news_management %}
@ -107,14 +107,14 @@
<small><i class="fas fa-pen"></i></small> <small><i class="fas fa-pen"></i></small>
</a> </a>
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -125,7 +125,7 @@
<div class="tab-pane fade" id="t_archiv" role="tabpanel" aria-labelledby="act"> <div class="tab-pane fade" id="t_archiv" role="tabpanel" aria-labelledby="act">
<h5 class="mt-3"><a href="" style="color: #000000;">Archivierte News</a></h5> <h5 class="mt-3"><a href="" style="color: #000000;">Archivierte News</a></h5>
<hr> <hr>
<div class="row"> <div class="row">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-hover" id="archnews"> <table class="table table-hover" id="archnews">
<thead> <thead>
@ -133,16 +133,16 @@
<th scope="col">Titel</th> <th scope="col">Titel</th>
<th scope="col">Erstellt von</th> <th scope="col">Erstellt von</th>
<th scope="col">Erstellt am</th> <th scope="col">Erstellt am</th>
<th scope="col">Sichtbar von/bis</th> <th scope="col">Sichtbar von/bis</th>
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody id="tableresults_arch"> <tbody id="tableresults_arch">
{% for news_single in news_arch %} {% for news_single in news_arch %}
<tr> <tr>
<td><a href="{% url 'news-single' news_single.pk %}">{{news_single.name }}</a></td> <td><a href="{% url 'news-single' news_single.pk %}">{{news_single.name }}</a></td>
<td>{{ news_single.created_by.first_name }} {{ news_single.created_by.last_name }}</td> <td>{{ news_single.created_by.first_name }} {{ news_single.created_by.last_name }}</td>
<td>{{ news_single.created_date }}</td> <td>{{ news_single.created_date }}</td>
<td>{{ news_single.go_online_on|date:"d.m.Y, H:i"}} bis {{ news_single.go_offline_on|date:"d.m.Y, H:i"}}</td> <td>{{ news_single.go_online_on|date:"d.m.Y, H:i"}} bis {{ news_single.go_offline_on|date:"d.m.Y, H:i"}}</td>
<td> <td>
{% if news_single.created_by == request.user or perms.users.news_management %} {% if news_single.created_by == request.user or perms.users.news_management %}
@ -154,16 +154,16 @@
<small><i class="fas fa-pen"></i></small> <small><i class="fas fa-pen"></i></small>
</a> </a>
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<style> <style>
/* DATATABLES */ /* DATATABLES */
@ -174,7 +174,7 @@
</style> </style>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
$('#activenews').DataTable({ $('#activenews').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -189,6 +189,7 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
@ -208,6 +209,7 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
@ -227,11 +229,12 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
$('#news_tabs li:first-child a').tab('show'); $('#news_tabs li:first-child a').tab('show');
@ -274,9 +277,9 @@ var VIDEOURL = "zB1icna9YaA"
var MODALNAME = "#youtubevideoinformation" var MODALNAME = "#youtubevideoinformation"
var VIDEOTITLE = "Informationsvideo News" var VIDEOTITLE = "Informationsvideo News"
$(document).ready(function(){ $(document).ready(function(){
$("#modaltitle_video").html(VIDEOTITLE); $("#modaltitle_video").html(VIDEOTITLE);
//VIDEOCONTROLS //VIDEOCONTROLS
$( MODALNAME ).on('shown.bs.modal', function(e){ $( MODALNAME ).on('shown.bs.modal', function(e){
@ -294,7 +297,7 @@ $(document).ready(function(){
player = new YT.Player('video-placeholder', { player = new YT.Player('video-placeholder', {
width: 760, width: 760,
height: 500, height: 500,
videoId: VIDEOURL, videoId: VIDEOURL,
}); });
} }
@ -314,7 +317,7 @@ $(document).ready(function(){
<div id="video-placeholder"></div> <div id="video-placeholder"></div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -3,10 +3,10 @@
<div class="row"> <div class="row">
<div class="content-section col-12"> <div class="content-section col-12">
<div class="row"><div class="content-section col-12"> <div class="row"><div class="content-section col-12">
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<a class="btn btn-primary" href="{% url 'addcontact' %}"><i class="fas fa-plus"></i>&nbsp;Kontakt</a> <a class="btn btn-primary" href="{% url 'addcontact' %}"><i class="fas fa-plus"></i>&nbsp;Kontakt</a>
<a class="btn btn-secondary mr-l btn-sm" style="vertical-align: bottom;" href=""><i class="fas fa-pen"></i>&nbsp;Kategorien</a> <a class="btn btn-secondary mr-l btn-sm" style="vertical-align: bottom;" href=""><i class="fas fa-pen"></i>&nbsp;Kategorien</a>
{% endif %} {% endif %}
<hr> <hr>
</div></div> </div></div>
@ -22,8 +22,8 @@
</ul> </ul>
</div> </div>
<div class="tab-content" id="contacts_tab_contentarea"> <div class="tab-content" id="contacts_tab_contentarea">
<div class="tab-pane fade show" id="contacts_all" role="tabpanel" aria-labelledby="contacts_all-tab"> <div class="tab-pane fade show" id="contacts_all" role="tabpanel" aria-labelledby="contacts_all-tab">
<div class="table-responsive mt-3"> <div class="table-responsive mt-3">
<table class="table table-hover" id="table_contactsall" > <table class="table table-hover" id="table_contactsall" >
@ -33,7 +33,7 @@
<th scope="col">E-Mail</th> <th scope="col">E-Mail</th>
<th scope="col">Telefon</th> <th scope="col">Telefon</th>
<!--<th scope="col">Logo</th> --> <!--<th scope="col">Logo</th> -->
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
{% endif %} {% endif %}
</tr> </tr>
@ -48,33 +48,33 @@
{% if agc.mail|length > 0 %} {% if agc.mail|length > 0 %}
<a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br/> <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br/>
{% endif %} {% endif %}
</td> </td>
<td> <td>
{% if agc.phone1|length > 0 %} {% if agc.phone1|length > 0 %}
<a href="tel::{{agc.phone1}}">{{agc.phone1}}</a> <a href="tel::{{agc.phone1}}">{{agc.phone1}}</a>
{% endif %} {% endif %}
</td> </td>
<td> <td>
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<div class="dropdown no-arrow"> <div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i> <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
</a> </a>
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink"> <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="{% url 'cont-update' agc.pk %}">Bearbeiten</a> <a class="dropdown-item" href="{% url 'cont-update' agc.pk %}">Bearbeiten</a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item" href="{% url 'cont-delete' agc.pk %}">Löschen</a> <a class="dropdown-item" href="{% url 'cont-delete' agc.pk %}">Löschen</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -88,10 +88,10 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
{% if agc.personname|length > 0 %} {% if agc.personname|length > 0 %}
Ansprechpartner: {{agc.personname}}<br/> Ansprechpartner: {{agc.personname}}<br/>
{% endif %} {% endif %}
{% if agc.mail|length > 0 %} {% if agc.mail|length > 0 %}
E-Mailadresse: <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br /> E-Mailadresse: <a href="mailto:{{agc.mail}}">{{agc.mail}}</a><br />
{% endif %} {% endif %}
@ -108,7 +108,7 @@
Anmerkungen: {{agc.desc}}<br /> Anmerkungen: {{agc.desc}}<br />
{% endif %} {% endif %}
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
@ -127,11 +127,11 @@
$('#contacts_tabs_content a').on('click', function (e) { $('#contacts_tabs_content a').on('click', function (e) {
e.preventDefault(); e.preventDefault();
$(this).tab('show'); $(this).tab('show');
lastview_name = $(this)[0]['hash'].substring(1); lastview_name = $(this)[0]['hash'].substring(1);
localStorage.setItem('activeTabContacts', lastview_name); localStorage.setItem('activeTabContacts', lastview_name);
}); });
$(document).ready(function(){ $(document).ready(function(){
@ -149,19 +149,20 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
var activeTabContacts = localStorage.getItem('activeTabContacts'); var activeTabContacts = localStorage.getItem('activeTabContacts');
if(activeTabContacts){ if(activeTabContacts){
if($('#' + activeTabContacts).find().prevObject.length != 0){ if($('#' + activeTabContacts).find().prevObject.length != 0){
$('#' + activeTabContacts).tab('show'); $('#' + activeTabContacts).tab('show');
$(".nav-link").removeClass("active"); $(".nav-link").removeClass("active");
$("#" + activeTabContacts + "-tab").addClass("active"); $("#" + activeTabContacts + "-tab").addClass("active");
} }
else{ else{
$("#contacts_all-tab").addClass("active"); $("#contacts_all-tab").addClass("active");
@ -173,8 +174,7 @@
$("#contacts_all-tab").addClass("active"); $("#contacts_all-tab").addClass("active");
$('#contacts_all').tab('show'); $('#contacts_all').tab('show');
} }
}); });
</script> </script>

View File

@ -1,5 +1,5 @@
{% load counter_tag %} {% load counter_tag %}
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<div class="row"> <div class="row">
<div class="content-section col-4"> <div class="content-section col-4">
<!--<a class="btn btn-primary" href="{% url 'ql-addql' %}"><i class="fas fa-plus"></i>&nbsp;Quicklink</a>--> <!--<a class="btn btn-primary" href="{% url 'ql-addql' %}"><i class="fas fa-plus"></i>&nbsp;Quicklink</a>-->
@ -15,7 +15,7 @@
<th scope="col">Name</th> <th scope="col">Name</th>
<th scope="col">Link</th> <th scope="col">Link</th>
<!--<th scope="col">Logo</th> --> <!--<th scope="col">Logo</th> -->
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
{% endif %} {% endif %}
</tr> </tr>
@ -24,11 +24,11 @@
{% for ql in quicklinks %} {% for ql in quicklinks %}
<tr> <tr>
<td>{{ql.name }}</td> <td>{{ql.name }}</td>
<td><a href="{{ ql.link }}" target="_blank">{{ ql.link }}</a></td> <td><a href="{{ ql.link }}" target="_blank">{{ ql.link }}</a></td>
<!--<td><img src="{{ ql.get_photo_url }}" width="15%"></td> --> <!--<td><img src="{{ ql.get_photo_url }}" width="15%"></td> -->
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<td> <td>
{% if user|usergperm:"moduleorganizer" %} {% if user|usergperm:"moduleorganizer" %}
<a style="float: right" class="btn btn-secondary btn-sm ml-2" href="{% url 'ql-delete' ql.pk%}"> <a style="float: right" class="btn btn-secondary btn-sm ml-2" href="{% url 'ql-delete' ql.pk%}">
<small> <small>
<i class="fas fa-trash"></i></small></a> <i class="fas fa-trash"></i></small></a>
@ -37,14 +37,14 @@
<small> <small>
<i class="fas fa-pen"></i> <i class="fas fa-pen"></i>
</small></a> </small></a>
{% endif %} {% endif %}
</td> </td>
{% endif %} {% endif %}
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
<!-- {% if user|usergperm:"moduleorganizer" %} <!-- {% if user|usergperm:"moduleorganizer" %}
<a class="btn btn-primary" href="#" onclick="saveDefQL()">ERGO-Quicklinks laden</a> <a class="btn btn-primary" href="#" onclick="saveDefQL()">ERGO-Quicklinks laden</a>
{% endif %}--> {% endif %}-->
</div> </div>
@ -52,7 +52,7 @@
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
$('#qltable').DataTable({ $('#qltable').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -67,11 +67,12 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}); });
@ -85,7 +86,7 @@ function saveDefQL(){
data:{ data:{
action: "adddefql" action: "adddefql"
}, },
success: function( data ) success: function( data )
{ {
location.reload(); location.reload();
} }
@ -99,4 +100,4 @@ function saveDefQL(){
padding: 0px !important; padding: 0px !important;
border: 0px !important; border: 0px !important;
} }
</style> </style>

View File

@ -1,10 +1,10 @@
{% load counter_tag %} {% load counter_tag %}
<div class="row col"> <div class="row col">
<div class="card col-9" style="min-height: 500px"> <div class="card col-9" style="min-height: 500px">
<div class="card-body"> <div class="card-body">
<h5 class="card-title"></h5> <h5 class="card-title"></h5>
<p class="card-text"> <p class="card-text">
<div class="table-responsive"> <div class="table-responsive">
<table class="table hover" id="agntable"> <table class="table hover" id="agntable">
@ -19,7 +19,7 @@
</thead> </thead>
<tbody id=""> <tbody id="">
{% for agn in agencynetworks %} {% for agn in agencynetworks %}
{% getsumofallag agn.pk as agsum %} {% getsumofallag agn.pk as agsum %}
{% getoutstandinginvites agn.pk as outstanding %} {% getoutstandinginvites agn.pk as outstanding %}
{% ifaginadminagn agn.pk request.user.profile.agency.pk as is_adminag %} {% ifaginadminagn agn.pk request.user.profile.agency.pk as is_adminag %}
<tr id="agn_{{agn.pk}}"> <tr id="agn_{{agn.pk}}">
@ -27,10 +27,10 @@
<td>{{agn.creator_agency.name }}&nbsp;<i style="float: right; " class="fas fa-info-circle" onclick="javascript:$('#showAgencyInfo_{{agn.creator_agency.pk}}').modal('toggle');"></i></td> <td>{{agn.creator_agency.name }}&nbsp;<i style="float: right; " class="fas fa-info-circle" onclick="javascript:$('#showAgencyInfo_{{agn.creator_agency.pk}}').modal('toggle');"></i></td>
<td>{{agn.lastactivity}}</td> <td>{{agn.lastactivity}}</td>
<td>{{agsum}}</td> <td>{{agsum}}</td>
<td>{{agn.standards.all|length}}</td> <td>{{agn.standards.all|length}}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</p> </p>
@ -38,7 +38,7 @@
</div> </div>
<div class="col-3"> <div class="col-3">
<!-- <!--
<div class="card col-14 ml-1 mb-2" style=""> <div class="card col-14 ml-1 mb-2" style="">
<div class="card-body"> <div class="card-body">
<h5 class="card-title">UPDATES</h5> <h5 class="card-title">UPDATES</h5>
<p class="card-text"> <p class="card-text">
@ -47,7 +47,7 @@
</div> </div>
</div>--> </div>-->
<div class="card col-14 ml-1 mb-2" style=""> <div class="card col-14 ml-1 mb-2" style="">
<div class="card-body"> <div class="card-body">
<h5 class="card-title">Beliebte Standards</h5> <h5 class="card-title">Beliebte Standards</h5>
<p class="card-text"> <p class="card-text">
@ -77,16 +77,16 @@
<hr> <hr>
{% if agn.creator_agency.inhaber|length > 0 %}Inhaber: {{agn.creator_agency.inhaber}}<br /> {% endif %} {% if agn.creator_agency.inhaber|length > 0 %}Inhaber: {{agn.creator_agency.inhaber}}<br /> {% endif %}
{% if agn.creator_agency.street|length > 0 %}Adresse: {{agn.creator_agency.street}} {{agn.creator_agency.plz}} {{agn.creator_agency.city}}<br /> {% endif %} {% if agn.creator_agency.street|length > 0 %}Adresse: {{agn.creator_agency.street}} {{agn.creator_agency.plz}} {{agn.creator_agency.city}}<br /> {% endif %}
{% if agn.creator_agency.phone|length > 0 %}Telefon: {{agn.creator_agency.phone}} <hr>{% endif %} {% if agn.creator_agency.phone|length > 0 %}Telefon: {{agn.creator_agency.phone}} <hr>{% endif %}
E-Mailadresse: <a href="mailto:{{agn.agency_mail}}">{{agn.creator_agency.agency_email}}</a> E-Mailadresse: <a href="mailto:{{agn.agency_mail}}">{{agn.creator_agency.agency_email}}</a>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schliessen</button> <button type="button" class="btn btn-success" data-dismiss="modal">Schliessen</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
<style> <style>
@ -103,7 +103,7 @@
} }
$(document).ready(function(){ $(document).ready(function(){
$('#agntable').DataTable({ $('#agntable').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -118,10 +118,11 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}); });
</script> </script>

View File

@ -45,7 +45,7 @@
</td> </td>
</tr> </tr>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</table> </table>
</div> </div>
</div> </div>
@ -66,6 +66,7 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
@ -81,12 +82,3 @@
</style> </style>
{% endblock content %} {% endblock content %}

View File

@ -46,21 +46,21 @@
</td> </td>
</tr> </tr>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</table> </table>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
function goToStandardMain(){ function goToStandardMain(){
localStorage.setItem('activeTab', ""); localStorage.setItem('activeTab', "");
location.href = "{% url 'standards' %}"; location.href = "{% url 'standards' %}";
} }
function goToArea(name){ function goToArea(name){
localStorage.setItem('activeTab', name); localStorage.setItem('activeTab', name);
location.href = "{% url 'standards' %}"; location.href = "{% url 'standards' %}";
} }
$(document).ready( function () { $(document).ready( function () {
@ -79,6 +79,7 @@ function goToArea(name){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }

View File

@ -11,8 +11,8 @@
<h4 class="mt-4 mb-4"></h4> <h4 class="mt-4 mb-4"></h4>
<div class="table-responsive"> <div class="table-responsive">
<table class="table hover" id="agnstandards"> <table class="table hover" id="agnstandards">
<thead> <thead>
<tr> <tr>
@ -30,13 +30,13 @@
<tr> <tr>
<td> <td>
{% setbool False %} {% setbool False %}
{% for ag in standard.visibleby.all %} {% for ag in standard.visibleby.all %}
{% if request.user|has_group:ag.group.name %} {% if request.user|has_group:ag.group.name %}
{% setbool True %} {% setbool True %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% if standard.visibleby.all|length == 0 %} {% if standard.visibleby.all|length == 0 %}
{% setbool True %} {% setbool True %}
{% endif %} {% endif %}
{% getbool as groupchecker %} {% getbool as groupchecker %}
@ -52,12 +52,12 @@
<td>{% if isshared %}Übernommen {% elif request.user in standard.favoritfrom.all %}Favorit {% endif %}</td> <td>{% if isshared %}Übernommen {% elif request.user in standard.favoritfrom.all %}Favorit {% endif %}</td>
</tr> </tr>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -77,16 +77,16 @@
<hr> <hr>
{% if agn.agency.inhaber|length > 0 %}Inhaber: {{agn.agency.inhaber}}<br /> {% endif %} {% if agn.agency.inhaber|length > 0 %}Inhaber: {{agn.agency.inhaber}}<br /> {% endif %}
{% if agn.agency.street|length > 0 %}Adresse: {{agn.agency.street}} {{agn.agency.plz}} {{agn.agency.city}}<br /> {% endif %} {% if agn.agency.street|length > 0 %}Adresse: {{agn.agency.street}} {{agn.agency.plz}} {{agn.agency.city}}<br /> {% endif %}
{% if agn.agency.phone|length > 0 %}Telefon: {{agn.agency.phone}} <hr>{% endif %} {% if agn.agency.phone|length > 0 %}Telefon: {{agn.agency.phone}} <hr>{% endif %}
E-Mailadresse: <a href="mailto:{{agn.ail}}">{{agn.agency.agency_email}}</a> E-Mailadresse: <a href="mailto:{{agn.ail}}">{{agn.agency.agency_email}}</a>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schliessen</button> <button type="button" class="btn btn-success" data-dismiss="modal">Schliessen</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
@ -96,7 +96,7 @@
$(document).ready(function(){ $(document).ready(function(){
$('#agnstandards').DataTable({ $('#agnstandards').DataTable({
responsive: true, responsive: true,
"language": { "language": {
@ -112,6 +112,7 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
@ -119,7 +120,7 @@
}) })
</script> </script>
@ -130,4 +131,4 @@
border: 0px !important; border: 0px !important;
} }
</style> </style>
{% endblock content %} {% endblock content %}

View File

@ -13,11 +13,11 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<ul class="nav nav-tabs" id="area_tabs" role="tablist" > <ul class="nav nav-tabs" id="area_tabs" role="tablist" >
{% for area in areas %} {% for area in areas %}
<li class="nav-item " > <li class="nav-item " >
<a class="nav-link " id="{{area.id}}" style="border-bottom: 3px solid {{area.color}}; margin-bottom: -4px;" data-toggle="tab" href="#t_{{area.id}}" role="tab" aria-controls="t_{{area.id}}" aria-selected="false">{{area.name}}</a> <a class="nav-link " id="{{area.id}}" style="border-bottom: 3px solid {{area.color}}; margin-bottom: -4px;" data-toggle="tab" href="#t_{{area.id}}" role="tab" aria-controls="t_{{area.id}}" aria-selected="false">{{area.name}}</a>
</li> </li>
{% endfor %} {% endfor %}
{% if agencynetworks|length > 0 %} {% if agencynetworks|length > 0 %}
<li class="nav-item ml-auto" > <li class="nav-item ml-auto" >
<a class="nav-link" id="agencynetwork" data-toggle="tab" href="#t_agencynetwork" role="tab" aria-controls="t_agencynetwork" aria-selected="false">Agenturverbund</a> <a class="nav-link" id="agencynetwork" data-toggle="tab" href="#t_agencynetwork" role="tab" aria-controls="t_agencynetwork" aria-selected="false">Agenturverbund</a>
@ -26,27 +26,27 @@
<li class="nav-item {% if agencynetworks|length == 0 %}ml-auto{% endif %}"> <li class="nav-item {% if agencynetworks|length == 0 %}ml-auto{% endif %}">
<a class="nav-link" id="userown" data-toggle="tab" href="#t_userown" role="tab" aria-controls="t_userown" aria-selected="false">Eigene Standards</a> <a class="nav-link" id="userown" data-toggle="tab" href="#t_userown" role="tab" aria-controls="t_userown" aria-selected="false">Eigene Standards</a>
</li> </li>
{% if perms.users.standardmanager %} {% if perms.users.standardmanager %}
<li class="nav-item" style="float: left"> <li class="nav-item" style="float: left">
<a class="nav-link" id="agencys" data-toggle="tab" href="#t_agencys" role="tab" aria-controls="t_agencys" aria-selected="false"> <a class="nav-link" id="agencys" data-toggle="tab" href="#t_agencys" role="tab" aria-controls="t_agencys" aria-selected="false">
Unveröffentlichte Standards Unveröffentlichte Standards
{% if unpubstandards_of_user|length > 0 %} {% if unpubstandards_of_user|length > 0 %}
<span class="badge badge-primary badge-counter" style="float: right !important; margin-right: -20px; margin-top: -10px;">{{unpubstandards_of_user|length}}</span> <span class="badge badge-primary badge-counter" style="float: right !important; margin-right: -20px; margin-top: -10px;">{{unpubstandards_of_user|length}}</span>
{%endif%} {%endif%}
</a> </a>
</li> </li>
{% endif %} {% endif %}
</div> </div>
<div class="col"> <div class="col">
<div class="tab-content" id="area_contents"> <div class="tab-content" id="area_contents">
{% for area in areas %} {% for area in areas %}
<div class="tab-pane fade" id="t_{{area.id}}" role="tabpanel" aria-labelledby="{{area.id}}"> <div class="tab-pane fade" id="t_{{area.id}}" role="tabpanel" aria-labelledby="{{area.id}}">
<h5 class="mt-3"><a href="{% url 'standard-area' area.id %}" style="color: #000000;">Standards aus dem Bereich {{area.name}}</a></h5> <h5 class="mt-3"><a href="{% url 'standard-area' area.id %}" style="color: #000000;">Standards aus dem Bereich {{area.name}}</a></h5>
<hr> <hr>
{% for ele in standardcontent %} {% for ele in standardcontent %}
{% if ele.area == area %} {% if ele.area == area %}
@ -56,27 +56,27 @@
<div class="card-body"> <div class="card-body">
<h5 class="card-title"> <h5 class="card-title">
<a href="{% url 'standard-task' task.task.pk %}" style="color: #000000;">{{task.task.name}}</a>&nbsp;<small>({{task.standards.count}})</small> <a href="{% url 'standard-task' task.task.pk %}" style="color: #000000;">{{task.task.name}}</a>&nbsp;<small>({{task.standards.count}})</small>
</h5> </h5>
<!-- STANDARS --> <!-- STANDARS -->
{% for s in task.standards %} {% for s in task.standards %}
<!-- VISIBLE GROUPCHECK --> <!-- VISIBLE GROUPCHECK -->
{% setbool False %} {% setbool False %}
{% for ag in s.visibleby.all %} {% for ag in s.visibleby.all %}
{% if request.user|has_group:ag.group.name %} {% if request.user|has_group:ag.group.name %}
{% setbool True %} {% setbool True %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% if s.visibleby.all|length == 0 %} {% if s.visibleby.all|length == 0 %}
{% setbool True %} {% setbool True %}
{% endif %} {% endif %}
{% getbool as groupchecker %} {% getbool as groupchecker %}
{% if forloop.counter0 < 3 %} {% if forloop.counter0 < 3 %}
{% if groupchecker %} {% if groupchecker %}
<p class="card-text"><a href="{% url 'standard-single' s.pk %}">{{s.name|truncatechars:28}}</a></p> <p class="card-text"><a href="{% url 'standard-single' s.pk %}">{{s.name|truncatechars:28}}</a></p>
{% else %} {% else %}
<p class="card-text text-secondary" data-toggle="popover" data-placement="top" data-trigger="hover" title="Zugriffsbeschränkung" data-content="Zugriff beschränkt auf {% for sgroup in s.visibleby.all %}{{sgroup.agencygroupname}}{% if forloop.counter < s.visibleby.all|length %},{%endif%}{% endfor %}"><i class="fas fa-lock"></i>&nbsp;{{s.name|truncatechars:28}}</p> <p class="card-text text-secondary" data-toggle="popover" data-placement="top" data-trigger="hover" title="Zugriffsbeschränkung" data-content="Zugriff beschränkt auf {% for sgroup in s.visibleby.all %}{{sgroup.agencygroupname}}{% if forloop.counter < s.visibleby.all|length %},{%endif%}{% endfor %}"><i class="fas fa-lock"></i>&nbsp;{{s.name|truncatechars:28}}</p>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
@ -84,7 +84,7 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
{% endfor %} {% endfor %}
{% if agencynetworks|length > 0 %} {% if agencynetworks|length > 0 %}
<div class="tab-pane fade" id="t_agencynetwork" role="tabpanel" aria-labelledby="agencynetwork"> <div class="tab-pane fade" id="t_agencynetwork" role="tabpanel" aria-labelledby="agencynetwork">
@ -94,14 +94,14 @@
{% block agnet %} {% block agnet %}
{% include "standards/agencynetwork_content.html" %} {% include "standards/agencynetwork_content.html" %}
{% endblock %} {% endblock %}
</div> </div>
{% endif %} {% endif %}
<div class="tab-pane fade" id="t_userown" role="tabpanel" aria-labelledby="userown"> <div class="tab-pane fade" id="t_userown" role="tabpanel" aria-labelledby="userown">
<h4 class="mt-4 mb-4">Eigene Standards</h4> <h4 class="mt-4 mb-4">Eigene Standards</h4>
<div class="table-responsive"> <div class="table-responsive">
<table class="table hover" id="userownstandards"> <table class="table hover" id="userownstandards">
<thead> <thead>
<tr> <tr>
@ -121,10 +121,10 @@
<a href="{% url 'standard-single' standard.pk %}">{{standard.name}}</a> <a href="{% url 'standard-single' standard.pk %}">{{standard.name}}</a>
{% else %} {% else %}
{% if standard.created_standard_by == request.user or perms.users.standardmanager %} {% if standard.created_standard_by == request.user or perms.users.standardmanager %}
<a href="{% url 'standard-add' standard.pk %}">{{standard.name}}</a>&nbsp;<i class="fas fa-exclamation-circle"data-toggle="tooltip" data-placement="top" title="Es wurden nicht alle Pflichtfelder ausgefüllt."></i> <a href="{% url 'standard-add' standard.pk %}">{{standard.name}}</a>&nbsp;<i class="fas fa-exclamation-circle"data-toggle="tooltip" data-placement="top" title="Es wurden nicht alle Pflichtfelder ausgefüllt."></i>
{% else %} {% else %}
{{standard.name}}&nbsp;<i class="fas fa-exclamation-circle"data-toggle="tooltip" data-placement="top" title="Es wurden nicht alle Pflichtfelder ausgefüllt."></i> {{standard.name}}&nbsp;<i class="fas fa-exclamation-circle"data-toggle="tooltip" data-placement="top" title="Es wurden nicht alle Pflichtfelder ausgefüllt."></i>
{% endif %} {% endif %}
{% endif %} {% endif %}
</td> </td>
<td>{{standard.created_standard_date|date:"d.m.Y, H:i"}}</td> <td>{{standard.created_standard_date|date:"d.m.Y, H:i"}}</td>
@ -139,7 +139,7 @@
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink"> <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
{% if perms.users.standardmanager %} {% if perms.users.standardmanager %}
{% if standard.public %} {% if standard.public %}
<a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichung aufheben</a> <a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichung aufheben</a>
{% else %} {% else %}
{% if standard.area != None and standard.task != None %} {% if standard.area != None and standard.task != None %}
<a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichen</a> <a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichen</a>
@ -147,26 +147,26 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if standard.created_standard_by == request.user or perms.users.standardmanager %} {% if standard.created_standard_by == request.user or perms.users.standardmanager %}
<a class="dropdown-item" href="{% url 'standard-add' standard.pk %}">Bearbeiten</a> <a class="dropdown-item" href="{% url 'standard-add' standard.pk %}">Bearbeiten</a>
{% endif %} {% endif %}
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="{% url 'standard-delete' standard.pk %}" >Löschen</a> <a class="dropdown-item text-danger" href="{% url 'standard-delete' standard.pk %}" >Löschen</a>
</div> </div>
</div> </div>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<div class="tab-pane fade" id="t_agencys" role="tabpanel" aria-labelledby="userown"> <div class="tab-pane fade" id="t_agencys" role="tabpanel" aria-labelledby="userown">
<h4 class="mt-4 mb-4">Unveröffentlichte Standards</h4> <h4 class="mt-4 mb-4">Unveröffentlichte Standards</h4>
<div class="table-responsive"> <div class="table-responsive">
<table class="table hover" id="unpubstandardsofuser"> <table class="table hover" id="unpubstandardsofuser">
<thead> <thead>
<tr> <tr>
@ -186,10 +186,10 @@
<a href="{% url 'standard-single' standard.pk %}">{{standard.name}}</a> <a href="{% url 'standard-single' standard.pk %}">{{standard.name}}</a>
{% else %} {% else %}
{% if standard.created_standard_by == request.user or perms.users.standardmanager %} {% if standard.created_standard_by == request.user or perms.users.standardmanager %}
<a href="{% url 'standard-add' standard.pk %}">{{standard.name}}</a>&nbsp;<i class="fas fa-exclamation-circle"data-toggle="tooltip" data-placement="top" title="Es wurden nicht alle Pflichtfelder ausgefüllt."></i> <a href="{% url 'standard-add' standard.pk %}">{{standard.name}}</a>&nbsp;<i class="fas fa-exclamation-circle"data-toggle="tooltip" data-placement="top" title="Es wurden nicht alle Pflichtfelder ausgefüllt."></i>
{% else %} {% else %}
{{standard.name}}&nbsp;<i class="fas fa-exclamation-circle"data-toggle="tooltip" data-placement="top" title="Es wurden nicht alle Pflichtfelder ausgefüllt."></i> {{standard.name}}&nbsp;<i class="fas fa-exclamation-circle"data-toggle="tooltip" data-placement="top" title="Es wurden nicht alle Pflichtfelder ausgefüllt."></i>
{% endif %} {% endif %}
{% endif %} {% endif %}
</td> </td>
<td>{{standard.created_standard_date|date:"d.m.Y, H:i"}}</td> <td>{{standard.created_standard_date|date:"d.m.Y, H:i"}}</td>
@ -204,7 +204,7 @@
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink"> <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
{% if perms.users.standardmanager %} {% if perms.users.standardmanager %}
{% if standard.public %} {% if standard.public %}
<a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichung aufheben</a> <a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichung aufheben</a>
{% else %} {% else %}
{% if standard.area != None and standard.task != None %} {% if standard.area != None and standard.task != None %}
<a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichen</a> <a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichen</a>
@ -212,45 +212,45 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if standard.created_standard_by == request.user or perms.users.standardmanager %} {% if standard.created_standard_by == request.user or perms.users.standardmanager %}
<a class="dropdown-item" href="{% url 'standard-add' standard.pk %}">Bearbeiten</a> <a class="dropdown-item" href="{% url 'standard-add' standard.pk %}">Bearbeiten</a>
{% endif %} {% endif %}
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="{% url 'standard-delete' standard.pk %}" >Löschen</a> <a class="dropdown-item text-danger" href="{% url 'standard-delete' standard.pk %}" >Löschen</a>
</div> </div>
</div> </div>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<style type="text/css"> <style type="text/css">
/*.nav-link.active { /*.nav-link.active {
border: 15px solid green; border: 15px solid green;
}*/ }*/
</style> </style>
<script type="text/javascript"> <script type="text/javascript">
$('#area_tabs a').on('click', function (e) { $('#area_tabs a').on('click', function (e) {
e.preventDefault(); e.preventDefault();
$(this).tab('show'); $(this).tab('show');
lastview_name = $(this)[0]['hash'].substring(1); lastview_name = $(this)[0]['hash'].substring(1);
localStorage.setItem('activeTab', lastview_name); localStorage.setItem('activeTab', lastview_name);
}); });
$(document).ready(function(){
$(document).ready(function(){
var activeTab = localStorage.getItem('activeTab'); var activeTab = localStorage.getItem('activeTab');
if(activeTab){ if(activeTab){
if($('#' + activeTab).find().prevObject.length != 0){ if($('#' + activeTab).find().prevObject.length != 0){
$('#' + activeTab).tab('show'); $('#' + activeTab).tab('show');
$(".nav-link").removeClass("active"); $(".nav-link").removeClass("active");
areaid = activeTab.split("_")[1]; areaid = activeTab.split("_")[1];
$("#" + areaid).addClass("active"); $("#" + areaid).addClass("active");
@ -260,14 +260,14 @@
} }
} }
else{ else{
$('#area_tabs li:first-child a').tab('show'); $('#area_tabs li:first-child a').tab('show');
} }
$('[data-toggle="popover"]').popover(); $('[data-toggle="popover"]').popover();
$('#userownstandards').DataTable({ $('#userownstandards').DataTable({
responsive: true, responsive: true,
"language": { "language": {
@ -283,6 +283,7 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
@ -303,13 +304,14 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}) })
$('#area_tabs a').on('click', function (e) { $('#area_tabs a').on('click', function (e) {
e.preventDefault() e.preventDefault()
@ -337,9 +339,9 @@ var VIDEOURL = "5HhvQnknJ-A"
var MODALNAME = "#youtubevideoinformation" var MODALNAME = "#youtubevideoinformation"
var VIDEOTITLE = "Informationsvideo Standards" var VIDEOTITLE = "Informationsvideo Standards"
$(document).ready(function(){ $(document).ready(function(){
$("#modaltitle_video").html(VIDEOTITLE); $("#modaltitle_video").html(VIDEOTITLE);
//VIDEOCONTROLS //VIDEOCONTROLS
$( MODALNAME ).on('shown.bs.modal', function(e){ $( MODALNAME ).on('shown.bs.modal', function(e){
@ -358,7 +360,7 @@ $(document).ready(function(){
player = new YT.Player('video-placeholder', { player = new YT.Player('video-placeholder', {
width: 760, width: 760,
height: 500, height: 500,
videoId: VIDEOURL, videoId: VIDEOURL,
}); });
} }
@ -378,7 +380,7 @@ $(document).ready(function(){
<div id="video-placeholder"></div> <div id="video-placeholder"></div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
</div> </div>
@ -386,4 +388,4 @@ $(document).ready(function(){
<!-- YOUTUBE PART ENDE --> <!-- YOUTUBE PART ENDE -->
{% endblock content %} {% endblock content %}

View File

@ -194,6 +194,7 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }

View File

@ -3,7 +3,7 @@
{% load counter_tag %} {% load counter_tag %}
{% if request.user.profile.agency.module_timemanagement %} {% if request.user.profile.agency.module_timemanagement %}
<div class="content-section col-12"> <div class="content-section col-12">
<h3>Zeiterfassung&nbsp;<small><i data-toggle="tooltip" data-placement="top" title="Bearbeiten Sie hier Ihre Zeiterfassung." class="far fa-question-circle"></i></small></h3> <h3>Zeiterfassung&nbsp;<small><i data-toggle="tooltip" data-placement="top" title="Bearbeiten Sie hier Ihre Zeiterfassung." class="far fa-question-circle"></i></small></h3>
<hr> <hr>
<div class="table-responsive "> <div class="table-responsive ">
<table class="table table-hover" id="table_timemanagement" > <table class="table table-hover" id="table_timemanagement" >
@ -14,9 +14,9 @@
<th scope="col">Ende</th> <th scope="col">Ende</th>
<th scope="col">Arbeitszeit</th> <th scope="col">Arbeitszeit</th>
<th scope="col">Pausen</th> <th scope="col">Pausen</th>
<th scope="col">Gesamtzeit</th> <th scope="col">Gesamtzeit</th>
<th scope="col">Gleitzeit</th> <th scope="col">Gleitzeit</th>
<th scope="col">&nbsp;</th> <th scope="col">&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody id="table_contacts" > <tbody id="table_contacts" >
@ -37,13 +37,13 @@
</td> </td>
<td> <td>
{% getsumbreak workday as sumbreakofday %} {% getsumbreak workday as sumbreakofday %}
{{sumbreakofday}} min. ({{workday.breaks.all|length}}) {{sumbreakofday}} min. ({{workday.breaks.all|length}})
</td> </td>
<td> <td>
{% getsumworkday workday as sumwd %} {% getsumworkday workday as sumwd %}
{{sumwd}} {{sumwd}}
</td> </td>
<td> <td>
{% gettimeoveralldiff workday user as erg%} {% gettimeoveralldiff workday user as erg%}
{% if erg.1 == 0 %} {% if erg.1 == 0 %}
<span style="color: green">+{{erg.0}}</span> <span style="color: green">+{{erg.0}}</span>
@ -53,17 +53,17 @@
<span style="color: red">-{{erg.0}}</span> <span style="color: red">-{{erg.0}}</span>
{% endif %} {% endif %}
</td> </td>
<td> <td>
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
{% if user.usertime.usetime_start == None %} {% if user.usertime.usetime_start == None %}
<div class="modal fade" tabindex="-1" role="dialog" data-backdrop="static" id="missingdatainfo"> <div class="modal fade" tabindex="-1" role="dialog" data-backdrop="static" id="missingdatainfo">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
@ -79,7 +79,7 @@
<br /> <br />
<small>Dies können nur Mitarbeiter eintragen, die das Recht haben, Mitarbeiter zu verwalten.</small> <small>Dies können nur Mitarbeiter eintragen, die das Recht haben, Mitarbeiter zu verwalten.</small>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div> </div>
</div> </div>
@ -108,7 +108,7 @@
<div class="modal-body"> <div class="modal-body">
Es wurden keine Arbeitstage bis zum Beginn der Zeiterfassung am {{user.usertime.usetime_start|date:"d.m.Y"}} gefunden. Sollen diese Tage mit der Regelarbeitszeit aufgefüllt werden, welche bei den Vertragsdaten hinterlegt wurde? Es wurden keine Arbeitstage bis zum Beginn der Zeiterfassung am {{user.usertime.usetime_start|date:"d.m.Y"}} gefunden. Sollen diese Tage mit der Regelarbeitszeit aufgefüllt werden, welche bei den Vertragsdaten hinterlegt wurde?
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" onclick="javascript:loadInitiDays()">Ja</button> <button type="button" class="btn btn-primary" onclick="javascript:loadInitiDays()">Ja</button>
<button type="button" class="btn btn" data-dismiss="modal">Nein</button> <button type="button" class="btn btn" data-dismiss="modal">Nein</button>
</div> </div>
@ -116,24 +116,24 @@
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
$("#initialload").modal("toggle"); $("#initialload").modal("toggle");
}); });
function loadInitiDays(){ function loadInitiDays(){
$.ajax( $.ajax(
{ {
type: "GET", type: "GET",
url: "{% url 'tm-ajax' %}", url: "{% url 'tm-ajax' %}",
data:{ data:{
action : "initial_load", action : "initial_load",
}, },
success: function( data ) success: function( data )
{ {
location.href = location.href; location.href = location.href;
} }
}); });
} }
</script> </script>
@ -152,7 +152,7 @@
<div class="modal-footer"> <div class="modal-footer">
<button class="btn btn-primary" id="dodel_{{workday.pk}}" >Löschen</button> <button class="btn btn-primary" id="dodel_{{workday.pk}}" >Löschen</button>
<button type="button" class="btn" data-dismiss="modal">Abbrechen</button> <button type="button" class="btn" data-dismiss="modal">Abbrechen</button>
</div> </div>
</div> </div>
</div> </div>
@ -168,12 +168,12 @@
action : "remove_workday", action : "remove_workday",
workday: {{workday.pk}}, workday: {{workday.pk}},
}, },
success: function( data ) success: function( data )
{ {
$("#wd_{{workday.pk}}").remove(); $("#wd_{{workday.pk}}").remove();
$("#confirm-delete_{{workday.pk}}").modal("toggle"); $("#confirm-delete_{{workday.pk}}").modal("toggle");
} }
}); });
}); });
</script> </script>
{% endfor %} {% endfor %}
@ -186,7 +186,7 @@
</style> </style>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
$('#table_timemanagement').DataTable({ $('#table_timemanagement').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -201,12 +201,13 @@ $(document).ready(function(){
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}); });
</script> </script>
{% else %} {% else %}
<h3>Das Modul Abwesenheits- und Zeiterfassung wurde in ihrer Agentur deaktiviert oder die Zeiterfassung wurde im Modul deaktiviert.</h3> <h3>Das Modul Abwesenheits- und Zeiterfassung wurde in ihrer Agentur deaktiviert oder die Zeiterfassung wurde im Modul deaktiviert.</h3>

View File

@ -26,7 +26,7 @@
<td style="float: right !important; min-width: 100%"> <td style="float: right !important; min-width: 100%">
<button type="button" style="float: right; margin-left: 2px;" class="btn btn-secondary btn-sm" onclick="javascript:$('#confirm-delete_{{abday.pk}}').modal('toggle')"><i class="fas fa-trash"></i></button> <button type="button" style="float: right; margin-left: 2px;" class="btn btn-secondary btn-sm" onclick="javascript:$('#confirm-delete_{{abday.pk}}').modal('toggle')"><i class="fas fa-trash"></i></button>
<button type="button " style="float: right" class="btn btn-secondary btn-sm mr-1" onclick="javascript:changeAbsence({{abday.pk}})"><i class="fas fa-pen"></i></button> <button type="button " style="float: right" class="btn btn-secondary btn-sm mr-1" onclick="javascript:changeAbsence({{abday.pk}})"><i class="fas fa-pen"></i></button>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
@ -57,6 +57,7 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }

View File

@ -7,9 +7,9 @@
<th scope="col">Mitarbeiter</th> <th scope="col">Mitarbeiter</th>
<th scope="col">Start</th> <th scope="col">Start</th>
<th scope="col">Ende</th> <th scope="col">Ende</th>
<th scope="col">Grund</th> <th scope="col">Grund</th>
<th scope="col">Info</th> <th scope="col">Info</th>
<th scope="col">Status ändern</th> <th scope="col">Status ändern</th>
</tr> </tr>
</thead> </thead>
<tbody id=""> <tbody id="">
@ -18,22 +18,22 @@
<td>{{abday.user.first_name}} {{abday.user.last_name}}</td> <td>{{abday.user.first_name}} {{abday.user.last_name}}</td>
<td>{{abday.start|date:"d.M Y"}}</td> <td>{{abday.start|date:"d.M Y"}}</td>
<td>{{abday.end|date:"d.M Y"}}</td> <td>{{abday.end|date:"d.M Y"}}</td>
<td>{{abday.reason.name}}</td> <td>{{abday.reason.name}}</td>
<td>{{abday.info}}</td> <td>{{abday.info}}</td>
<td> <td>
<button type="button " class="btn btn-secondary btn-sm" onclick='javascript:openModalABChangeTable({{abday.pk}})'><i class="fas fa-eye"></i></button> <button type="button " class="btn btn-secondary btn-sm" onclick='javascript:openModalABChangeTable({{abday.pk}})'><i class="fas fa-eye"></i></button>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
$('#table_toconfirmab').DataTable({ $('#table_toconfirmab').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -48,10 +48,11 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}); });
</script> </script>

View File

@ -5,26 +5,26 @@
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<!-- CANVAS --> <!-- CANVAS -->
<h6>Urlaubsübersicht {{activeyear}}</h6> <h6>Urlaubsübersicht {{activeyear}}</h6>
<div class="chart-container" style=""> <div class="chart-container" style="">
<canvas id="datainfo_reason"></canvas> <canvas id="datainfo_reason"></canvas>
</div> </div>
<hr> <hr>
<h6>Übersicht nach Abwesenheitskategorien {{activeyear}}</h6> <h6>Übersicht nach Abwesenheitskategorien {{activeyear}}</h6>
<div class="chart-container" style=""> <div class="chart-container" style="">
<canvas id="datainfo_restdays"></canvas> <canvas id="datainfo_restdays"></canvas>
</div> </div>
<hr> <hr>
<button class="btn btn-secondary btn-sm" style="float: right;" onclick="javascript:$('#alloverview_detail').toggle()"><i class="fas fa-eye" id="show_detailview"></i></button> <button class="btn btn-secondary btn-sm" style="float: right;" onclick="javascript:$('#alloverview_detail').toggle()"><i class="fas fa-eye" id="show_detailview"></i></button>
<div id="alloverview_detail" style="display: none;"> <div id="alloverview_detail" style="display: none;">
<h6>Übersicht nach Abwesenheitskategorien</h6> <h6>Übersicht nach Abwesenheitskategorien</h6>
<table class="table table-sm"> <table class="table table-sm">
<tbody> <tbody>
<tr> <tr>
<td>Verfügbare Urlaube</td> <td>Verfügbare Urlaube</td>
<td>{{yearinfo.days}}&nbsp;Tage</td> <td>{{yearinfo.days}}&nbsp;Tage</td>
</tr> </tr>
<tr> <tr>
<td>Genommener Urlaub</td> <td>Genommener Urlaub</td>
<td>{{yearinfo.days_inuse}}&nbsp;Tage</td> <td>{{yearinfo.days_inuse}}&nbsp;Tage</td>
</tr> </tr>
@ -34,7 +34,7 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h6>Übersicht nach Abwesenheitskategorien</h6> <h6>Übersicht nach Abwesenheitskategorien</h6>
<table class="table table-sm"> <table class="table table-sm">
<tbody> <tbody>
{% for ele in final_reasons %} {% for ele in final_reasons %}
@ -44,8 +44,8 @@
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -72,15 +72,15 @@
<td>{% if abday.confirm_status == 0 %} Genehmigt {% elif abday.confirm_status == 1 %} Beantragt {% else %} Abgelehnt {% endif %}</td> <td>{% if abday.confirm_status == 0 %} Genehmigt {% elif abday.confirm_status == 1 %} Beantragt {% else %} Abgelehnt {% endif %}</td>
<td>{{abday.confirm_info}}</td> <td>{{abday.confirm_info}}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div><!-- END TABLE --> </div><!-- END TABLE -->
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
$('#table_userownab').DataTable({ $('#table_userownab').DataTable({
"language": { "language": {
"search" : "Suche", "search" : "Suche",
@ -95,10 +95,11 @@
"previous": "Zurück" "previous": "Zurück"
}, },
}, },
"pageLength": 50,
"buttons" : { "buttons" : {
"className" : "btn-danger" "className" : "btn-danger"
} }
}); });
}); });
</script> </script>
<script> <script>
@ -109,27 +110,27 @@
labels: [ labels: [
{% for ele in final_reasons %} {% for ele in final_reasons %}
'{{ele.0}}', '{{ele.0}}',
{% endfor %} {% endfor %}
], ],
datasets: [{ datasets: [{
backgroundColor: [ backgroundColor: [
{% for ele in final_reasons %} {% for ele in final_reasons %}
'{{ele.0.color}}', '{{ele.0.color}}',
{% endfor %} {% endfor %}
], ],
data : [ data : [
{% for ele in final_reasons %} {% for ele in final_reasons %}
{{ele.1|unlocalize}}, {{ele.1|unlocalize}},
{% endfor %} ] {% endfor %} ]
}] }]
}, },
options : { options : {
legend: { legend: {
display: true, display: true,
position: 'bottom', position: 'bottom',
} }
} }
}); });
var ctx = document.getElementById("datainfo_reason"); var ctx = document.getElementById("datainfo_reason");
@ -141,12 +142,12 @@
backgroundColor: ['green','#ff304f'], backgroundColor: ['green','#ff304f'],
data: [{{kontingent|unlocalize}}, {{inuse|unlocalize}}] data: [{{kontingent|unlocalize}}, {{inuse|unlocalize}}]
}] }]
}, },
options : { options : {
legend: { legend: {
display: true, display: true,
position: 'bottom', position: 'bottom',
} }
} }
}); });
</script> </script>