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 -->
<div id="fileerr" class="toast alert-danger" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<strong class="mr-auto">Daten gefunden</strong>
<strong class="mr-auto">Daten gefunden</strong>
</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>
</div>
</div>
<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 %}
<small><i onclick="javascript:$('#youtubevideoinformation').modal('toggle');" class="far fa-play-circle"></i></small></h3>
<hr>
<small><i onclick="javascript:$('#youtubevideoinformation').modal('toggle');" class="far fa-play-circle"></i></small></h3>
<hr>
</div>
<div class="content-section col-12">
@ -39,20 +39,20 @@ a.disabled {
<nav aria-label="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>
{% for cr in breadcrump %}
{% if forloop.last %}
{% for cr in breadcrump %}
{% if forloop.last %}
<li class="breadcrumb-item" active>{{cr}}</li>
{% else %}
<li class="breadcrumb-item"><a href="{% url 'cloud-main' cr.pk %}">{{cr.name}}</a></li>
{% else %}
<li class="breadcrumb-item"><a href="{% url 'cloud-main' cr.pk %}">{{cr.name}}</a></li>
{% endif %}
{% endfor %}
{% if user|usergperm:"filedirmanager" %}
<li class="breadcrumb-item" active><i onclick="javascript:addDirModal()" class="fas fa-folder-plus icon-hover"></i></li>
{% if user|usergperm:"filedirmanager" %}
<li class="breadcrumb-item" active><i onclick="javascript:addDirModal()" class="fas fa-folder-plus icon-hover"></i></li>
{% endif %}
</ol>
</nav>
{% if user|usergperm:"filesviewer" %}
{% if user|usergperm:"filesviewer" %}
<table class="table hover" id="dirfilestable">
<thead>
<tr>
@ -64,49 +64,49 @@ a.disabled {
<th></th>
</tr>
</thead>
<tbody>
{% for d in dirs %}
<tbody>
{% for d in dirs %}
{% setbool False %}
{% for dirgroup in d.visibleby.all %}
{% if user|has_group:dirgroup.group.name %}
{% setbool True %}
{% if user|has_group:dirgroup.group.name %}
{% setbool True %}
{% endif %}
{% endfor %}
{% endfor %}
{% if d.visibleby.all|length == 0 %}
{% setbool True %}
{% setbool True %}
{% endif %}
{% getbool as groupchecker %}
{% if groupchecker %}
<tr id="dir_{{d.pk}}" class="droppable_tr">
<tr id="dir_{{d.pk}}" class="droppable_tr">
{% 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 %}">
{% 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 >
{% if groupchecker %}
<a href="{% url 'cloud-main' d.pk %}">{{d.name}}</a>
{% 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>
{% endif %}
</td>
</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_last_modified|date:"d.m.Y G:i"}}</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">
<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>
</a>
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
<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>
<div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="javascript:delDataDirObje({{d.pk}})" >Löschen</a>
@ -115,24 +115,24 @@ a.disabled {
{% endif %}
</td>
</tr>
{% endfor %}
{% for file in files %}
<tr>
{% endfor %}
{% for file in files %}
<tr>
<td>
<i class="fas fa-file" ></i>
</td>
</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.date_created|date:"d.m.Y G:i"}}</td>
<td>{{file.date_last_modified|date:"d.m.Y G:i"}}</td>
<td>
{% if user|usergperm:"filesmanager" %}
{% if user|usergperm:"filesmanager" %}
<div class="dropdown no-arrow">
<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>
</a>
<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:replaceFile({{file.pk}})">Ersetzen</a>
<div class="dropdown-divider"></div>
@ -142,12 +142,12 @@ a.disabled {
{% endif %}
</td>
</tr>
{% endfor %}
{% endfor %}
</tbody>
</table>
{% endif %}
{% if user|usergperm:"filesmanager" %}
<form method="POST" id="uploadFileForm" enctype="multipart/form-data">
{% if user|usergperm:"filesmanager" %}
<form method="POST" id="uploadFileForm" enctype="multipart/form-data">
<input type="file" id="uploadedfile" name="uploadedfile" style="display:none">
</form>
<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">
<label for="exampleInputPassword1">Name:</label>
<input class="form-control" id="changename" type="text" value="" placeholder="Ordnername" onkeyup="javascript:validateNewName(this.value)">
</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 type="button" class="btn btn" data-dismiss="modal">Abbrechen</button>
</div>
@ -201,7 +201,7 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
Mit dem Löschen fortfahren? Alle Dateien in diesem Verzeichnis werden ebenfalls gelöscht!
</div>
<div class="modal-footer">
@ -222,10 +222,10 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</div>
<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!
<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!
</div>
<div class="modal-footer">
<div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button>
</div>
</div>
@ -242,10 +242,10 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
Ihr Speicherplatz ist aufgebraucht.
</div>
<div class="modal-footer">
<div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button>
</div>
</div>
@ -262,10 +262,10 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
Sie können die Datei nicht mit sich selbst ersetzen.
</div>
<div class="modal-footer">
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div>
</div>
@ -282,7 +282,7 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
Datei <b><span id="filenametodel"></span></b> wirklich löschen?
<div id="connectedStandards"></div>
</div>
@ -305,27 +305,27 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Datei <b><span id="filenametodel"></span></b> ersetzen mit:
<div class="modal-body">
Datei <b><span id="filenametodel"></span></b> ersetzen mit:
<div class="input-group mb-3">
<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>
</div>
<datalist id="possfiles">
{% for f in files %}
<option id="file_{{f.pk}}" value="{{f.name}}">{{f.name}}</option>
{% for f in files %}
<option id="file_{{f.pk}}" value="{{f.name}}">{{f.name}}</option>
{% endfor %}
</datalist>
</datalist>
</div>
<div><span id="choosenfilename"></span></div>
<div id="connectedStandardsReplace"></div>
<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>
</div>
<div class="modal-footer" >
&nbsp;&nbsp;
</div>
<div class="modal-footer" >
&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>
</div>
@ -345,7 +345,7 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
Bitte neues Verzeichnis auswählen:
<div id="agencydirlist"></div>
</div>
@ -376,10 +376,10 @@ a.disabled {
<div class="form-group">
<label for="exampleInputPassword1">Name:</label>
<input class="form-control" id="newdirname" type="text" value="" placeholder="Ordnername" onkeyup="javascript:validateDirName(this.value, 0)">
</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 type="button" class="btn" data-dismiss="modal">Abbrechen</button>&nbsp;
</div>
@ -398,20 +398,20 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
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>
<div class="row">
<div class="col-6">
{% for g in agencygroups %}
{% if forloop.counter|divisibleby:6 %}
{% if forloop.counter|divisibleby: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)">
<label class="custom-control-label" for="group_{{g.pk}}" >{{g.agencygroupname}}</label>
</div>
{% 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)">
<label class="custom-control-label" for="group_{{g.pk}}" >{{g.agencygroupname}}</label>
</div>
@ -437,11 +437,11 @@ a.disabled {
</button>
</div>
<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-bar" id="uploadprocessbar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
</div>
</div>
</div>
</div>
@ -458,7 +458,7 @@ a.disabled {
<span aria-hidden="true">&times;</span>
</button>
</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?
</div>
<div class="modal-footer">
@ -488,17 +488,17 @@ if ( isIE ) {
{
if($('#replaceFileModal').is(':visible')){
updateLinkedFiles();
updateLinkedFiles();
}
},400);
}
$(document).ready(function(){
$('[data-toggle="popover"]').popover();
$(document).ready(function(){
$('[data-toggle="popover"]').popover();
$(".toast").toast({
autohide: true,
delay : 5000
@ -521,6 +521,7 @@ if ( isIE ) {
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
@ -536,15 +537,15 @@ function clearSearchfieldAddFile(){
var replace_file_id = "";
$("#choosenfilename").html("");
function updateLinkedFiles(){
function updateLinkedFiles(){
var g = $('#searchfiles').val();
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];
console.log(replace_file_id);
clearSearchfieldAddFile();
clearSearchfieldAddFile();
$("#choosenfilename").html("<b>Neue Datei:&nbsp;</b>" + g);
$("#btnDoReplaceFile").prop("disabled", false);
$("#btnDoReplaceFileSnd").prop("disabled", false);
@ -556,18 +557,18 @@ function updateLinkedFiles(){
function showGroupChangeModal(tochangeid){
$("#changeGroupOfDataObj").modal("toggle");
$(".groupclass").attr("checked", false);
workingdirid = tochangeid;
workingdirid = tochangeid;
$.ajax(
{
type: "GET",
url: "{% url 'cloud-adddir' parentid %}",
data:{
action : "getgroupsofdir",
dirid : workingdirid
action : "getgroupsofdir",
dirid : workingdirid
},
success: function( data )
{
for(i = 0; i < data["data"]["gdir"].length; i++){
success: function( data )
{
for(i = 0; i < data["data"]["gdir"].length; i++){
$("#group_" + data["data"]["gdir"][i]['id']).attr("checked", true);
}
}
@ -578,8 +579,8 @@ $('#changeGroupOfDataObj').on('hidden.bs.modal', function (e) {
window.location = window.location
})
function changeGroup(groupid, value){
function changeGroup(groupid, value){
$.ajax(
{
type: "GET",
@ -609,17 +610,17 @@ function moveFile(fileid)
data:{
action : "getdirlist"
},
success: function( data )
{
success: function( data )
{
$("#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>'];
createList(data["data"]["agencydirlist"], l);
createList(data["data"]["agencydirlist"], l);
$("#agencydirlist").html(html);
}
});
}
}
function doreplaceFile(dodel){
function doreplaceFile(dodel){
$.ajax(
{
type: "GET",
@ -630,10 +631,10 @@ function doreplaceFile(dodel){
newid : replace_file_id,
delold : dodel
},
success: function( data )
{
success: function( data )
{
if(data["data"]["success"]){
location.href = location.href;
location.href = location.href;
}
else{
$("#replaceFileModal").modal("toggle");
@ -641,7 +642,7 @@ function doreplaceFile(dodel){
$("#replaceerrModal").modal("toggle");
})
}
}
});
}
@ -654,8 +655,8 @@ function replaceFile(fileid)
workingdirid = false;
replace_file_id = "";
$("#choosenfilename").html("");
$("#btnDoReplaceFile").prop("disabled", true);
$("#btnDoReplaceFileSnd").prop("disabled", true);
$("#btnDoReplaceFile").prop("disabled", true);
$("#btnDoReplaceFileSnd").prop("disabled", true);
$("#replaceFileModal").modal("toggle");
$.ajax(
{
@ -665,12 +666,12 @@ function replaceFile(fileid)
action : "getname_file",
id : workingfileid
},
success: function( data )
{
success: function( data )
{
standardstring = "";
if(data["data"]["linked_standards"] != undefined && data["data"]["linked_standards"].length > 0){
standardstring = "<hr><b>Achtung!</b> Datei ist mit folgenden Standards verlinkt:<br />";
}
}
for(i = 0; i < data["data"]["linked_standards"].length; i++){
standardstring += (i+1) + ". " + data["data"]["linked_standards"][i]['name'];
if((i+1)< data["data"]["linked_standards"].length){
@ -680,7 +681,7 @@ function replaceFile(fileid)
$("#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;
//Create UL-LI-List for tree
function createList(arr, l) {
html.push('<ul>');
$.each(arr, function(i, val) {
function createList(arr, l) {
html.push('<ul>');
$.each(arr, function(i, val) {
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>');
}
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>');
}
if (val.subdirs) {
}
if (val.subdirs) {
createList(val.subdirs, l+1)
}
html.push('</li>');
html.push('</li>');
});
html.push('</ul>');
html.push('</ul>');
}
function targetParentToMove(parid){
function targetParentToMove(parid){
$.ajax(
{
type: "GET",
@ -719,8 +720,8 @@ function targetParentToMove(parid){
fileid : workingfileid,
newpar : parid
},
success: function( data )
{
success: function( data )
{
window.location = window.location
}
});
@ -738,7 +739,7 @@ function targetParentToMove(parid){
uploadtoparent = {{parentid}};
</script>
{% if user|usergperm:"filesmanager" %}
{% if user|usergperm:"filesmanager" %}
<script type="text/javascript">
$( ".droppable_tr" ).on('dragenter', function (e) {
e.stopPropagation();
@ -746,7 +747,7 @@ uploadtoparent = {{parentid}};
currentid = e["currentTarget"]['id'];
$("#" + currentid + "_icon").html("");
$("#" + 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.preventDefault();
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 + "_icon").html("");
$("#" + 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) {
e.stopPropagation();
e.preventDefault();
currentid = e["currentTarget"]['id'];
e.preventDefault();
currentid = e["currentTarget"]['id'];
$("#" + currentid + "_icon").html("");
$("#" + 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.preventDefault();
currentid = e["currentTarget"]['id'];
$("#{{parentid}}_div").addClass('bg-secondary');
$("#{{parentid}}_div").addClass('bg-secondary');
});
$('.droppable_div').on('drop', function (e) {
e.stopPropagation();
e.preventDefault();
$("#{{parentid}}_div").removeClass('bg-secondary');
uploadAction(e.originalEvent.dataTransfer.files[0], e["currentTarget"]['id'].split("_")[0]);
$("#{{parentid}}_div").removeClass('bg-secondary');
uploadAction(e.originalEvent.dataTransfer.files[0], e["currentTarget"]['id'].split("_")[0]);
});
$('.droppable_div').on('dragleave', function (e) {
e.stopPropagation();
e.preventDefault();
currentid = e["currentTarget"]['id'];
$("#{{parentid}}_div").removeClass('bg-secondary');
});
e.preventDefault();
currentid = e["currentTarget"]['id'];
$("#{{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 = ['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",
name : filetodo.name
},
success: function( data )
{
success: function( data )
{
if(data["data"]["found"]){
$("#doubleFileChoiceModal").modal("toggle");
$("#doublefile_name").html(filetodo.name);
@ -835,34 +836,34 @@ function uploadAction(filetodo, parid){
}
}
});
}
function doUploadAction(filetodo, parid, replacestat){
//Check for double File on Server
var formData = new FormData($("#uploadFileForm")[0]);
formData.append("uploadedfile", filetodo);
formData.append("uploadsource", "cloud");
formData.append("replace", replacestat);
formData.append("uploadedfile", filetodo);
formData.append("uploadsource", "cloud");
formData.append("replace", replacestat);
var bar = $('.bar');
var percent = $('.percent');
var c = false;
var c = false;
for (i = 0; i < allowedtypes.length; i++) {
if (allowedtypes[i].localeCompare(getFileExtension1(filetodo.name)) == 0)
{
{
c = true;
}
}
}
if(c && filetodo.type.length > 0){
//CHECK QUOTA
calculate_quota = filetodo.size / (1024* 1024*1024) + actquotasize
if(calculate_quota > 2){
setTimeout(function(){$("#uploadModalProgress").modal("toggle");}, 1000);
setTimeout(function(){$("#uploadModalProgress").modal("toggle");}, 1000);
$('#uploadModalProgress').on('hidden.bs.modal', function (e) {
$("#quotaerr").modal("toggle");
})
@ -878,45 +879,45 @@ function doUploadAction(filetodo, parid, replacestat){
cache: false,
processData: false,
contentType: false,
beforeSend: function(){
$("#uploadModalProgress").modal("toggle");
beforeSend: function(){
$("#uploadModalProgress").modal("toggle");
},
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = (evt.loaded / evt.total) * 100;
$("#uploadprocessbar").css("width", percentComplete + "%");
$("#uploadprocessbar").css("width", percentComplete + "%");
}
}, false);
return xhr;
},
success: function(data) {
success: function(data) {
if(data["success"] == true){
setTimeout(function(){window.location = window.location;}, 1000);
setTimeout(function(){window.location = window.location;}, 1000);
}
else{
setTimeout(function(){$("#uploadModalProgress").modal("toggle");}, 1000);
setTimeout(function(){$("#uploadModalProgress").modal("toggle");}, 1000);
$('#uploadModalProgress').on('hidden.bs.modal', function (e) {
$("#forbiddenFileType").modal("toggle");
})
}
}
}
});
});
}
}
else{
$("#forbiddenFileType").modal("toggle");
}
}
}
</script>
{% endif %}
<script type="text/javascript">
$('#uploadedfile').on('change', function() {
uploadAction($("#uploadedfile")[0]['files'][0], {{parentid}});
$('#uploadedfile').on('change', function() {
uploadAction($("#uploadedfile")[0]['files'][0], {{parentid}});
});
function uploadButtonPush(){
@ -936,12 +937,12 @@ function delDataFileObje(fileid){
action : "getname_file",
id : workingfileid
},
success: function( data )
{
success: function( data )
{
standardstring = "";
if(data["data"]["linked_standards"] != undefined && data["data"]["linked_standards"].length > 0){
standardstring = "<hr><b>Achtung!</b> Datei ist mit folgenden Standards verlinkt:<br />";
}
}
for(i = 0; i < data["data"]["linked_standards"].length; i++){
standardstring += (i+1) + ". " + data["data"]["linked_standards"][i]['name'];
if((i+1)< data["data"]["linked_standards"].length){
@ -964,9 +965,9 @@ function doDelDataFile(){
action : "del_file",
id : workingfileid
},
success: function( data )
{
window.location = window.location;
success: function( data )
{
window.location = window.location;
}
});
}
@ -989,10 +990,10 @@ function doDelDataDir(){
action : "del_dir",
id : workingdirid
},
success: function( data )
{
success: function( data )
{
if(data["success"]){
window.location = window.location;
window.location = window.location;
}
else{
$("#fileerr").toast("show");
@ -1012,8 +1013,8 @@ function changeDirName(dirid){
action : "getname_dir",
id : dirid
},
success: function( data )
{
success: function( data )
{
$("#actualName").html("Ordner <b>" + data["data"]['dirname'] + "</b>");
$("#changename").val(data["data"]['dirname']);
$("#doUpdateName").attr("disabled", false);
@ -1031,10 +1032,10 @@ function updateName(){
id : workingdirid,
newdirname : $("#changename").val()
},
success: function( data )
{
success: function( data )
{
$("#changeName").modal("toggle");
window.location = window.location;
window.location = window.location;
}
});
}
@ -1049,38 +1050,38 @@ function addDirModal(){
//VALIDATE FOR CORRECT INPUT IN GROUP
function validateNewName(newdirname){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newdirname.length > 0){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newdirname.length > 0){
if(!newdirname.match(letters))
{
$("#doUpdateName").attr("disabled", true);
$("#doUpdateName").attr("disabled", true);
}
else{
$("#doUpdateName").attr("disabled", false);
}
}
}
else{
$("#doUpdateName").attr("disabled", true);
else{
$("#doUpdateName").attr("disabled", true);
}
}
//VALIDATE FOR CORRECT INPUT IN GROUP
function validateDirName(newdirname){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newdirname.length > 0){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newdirname.length > 0){
if(!newdirname.match(letters))
{
$("#doActionTaskModal").attr("disabled", true);
$("#doActionTaskModal").attr("disabled", true);
}
else{
$("#doActionTaskModal").attr("disabled", false);
}
}
}
else{
$("#doActionTaskModal").attr("disabled", true);
else{
$("#doActionTaskModal").attr("disabled", true);
}
}
function addDirAction(){
@ -1093,9 +1094,9 @@ function addDirAction(){
parent : {{parentid}},
newdirname : $("#newdirname").val()
},
success: function( data )
{
window.location = window.location;
success: function( data )
{
window.location = window.location;
}
});
}
@ -1114,9 +1115,9 @@ var VIDEOURL = "-rX5xcDMwXQ"
var MODALNAME = "#youtubevideoinformation"
var VIDEOTITLE = "Informationsvideo Dateien"
$(document).ready(function(){
$(document).ready(function(){
$("#modaltitle_video").html(VIDEOTITLE);
$("#modaltitle_video").html(VIDEOTITLE);
//VIDEOCONTROLS
$( MODALNAME ).on('shown.bs.modal', function(e){
@ -1135,7 +1136,7 @@ $(document).ready(function(){
player = new YT.Player('video-placeholder', {
width: 760,
height: 500,
videoId: VIDEOURL,
videoId: VIDEOURL,
});
}
@ -1155,11 +1156,11 @@ $(document).ready(function(){
<div id="video-placeholder"></div>
</div>
<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>
<!-- YOUTUBE PART ENDE -->
{% endblock %}
{% endblock %}

View File

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

View File

@ -21,19 +21,19 @@
</thead>
<tbody id="">
{% for agn in agencynetworks %}
{% getsumofallag agn.pk as agsum %}
{% getsumofallag agn.pk as agsum %}
{% getoutstandinginvites agn.pk as outstanding %}
{% ifaginadminagn agn.pk request.user.profile.agency.pk as is_adminag %}
<tr id="agn_{{agn.pk}}">
<td><a href="{% url 'managagn' agn.pk %}">{{agn.name}}</a></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>
&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>
{% endif %}
</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>
</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>{{agn.standards.all|length}}</td>
<td style="min-width: 50px">
{% if is_adminag %}
<span style="float: right !important;">
{% if is_adminag %}
<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 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>
@ -52,8 +52,8 @@
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
@ -72,16 +72,16 @@
<hr>
{% 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.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>
</div>
<div class="modal-footer">
<div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schliessen</button>
</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-dialog " role="document">
@ -92,12 +92,12 @@
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
Agenturverbund <b><span id="agn_name">NAME</span></b><br />
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>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div>
@ -115,9 +115,9 @@
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
Möchten Sie den Agenturverbund <b><span id="agname">NAME</span></b> verlassen?
</div>
</div>
<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" data-dismiss="modal">Abbrechen</button>
@ -137,14 +137,14 @@
function copyLinkToCB(tocopy, id){
var val = "{{baseurl}}dasettings/agnni/" + tocopy;
var val = "{{baseurl}}dasettings/agnni/" + tocopy;
var $temp = $("<input>");
$("body").append($temp);
$temp.val(val).select();
document.execCommand("copy");
$temp.remove();
$("#aglink_" + id).show();
}
}
function doRemAgFromAgn(){
$.ajax(
@ -156,7 +156,7 @@
agid : {{request.user.profile.agency.pk}},
agnid : workingid
},
success: function( data )
success: function( data )
{
$("#delAgFromAgn").modal("toggle");
$("#agn_" + workingid).remove();
@ -173,7 +173,7 @@
$(document).ready(function(){
$('#agntable').DataTable({
"language": {
"search" : "Suche",
@ -188,11 +188,12 @@ $(document).ready(function(){
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
});
});
</script>
@ -214,4 +215,4 @@ name = models.CharField(default="", max_length=200)
sharemembers = models.ManyToManyField("Agency", related_name="ShareMemberAgencys", blank=True)
publicjoin = models.BooleanField(default=False)
networkid = models.CharField(default="", max_length=30)
-->
-->

View File

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

View File

@ -5,32 +5,32 @@
<div class="content-section col-9">
<h3>Agenturverbund {{agn.name}} beitreten</h3>
<hr>
<div class="card">
<div class="card-body">
<h5 class="card-title">Verbundinfos</h5>
{% getsumofallag agn.pk as agsum %}
{% 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>Grüdungsdatum</b> {{agn.created_on }}</h6>
<h6><b>Agenturen</b> {{agsum}}</h6>
<h6><b>Standards</b> {{agn.standards.all|length}}</h6>
<h6><b>Letzte Aktivität</b> {{agn.lastactivity}}</h6>
<h6><b>Grüdungsdatum</b> {{agn.created_on }}</h6>
<h6><b>Agenturen</b> {{agsum}}</h6>
<h6><b>Standards</b> {{agn.standards.all|length}}</h6>
<h6><b>Letzte Aktivität</b> {{agn.lastactivity}}</h6>
{% if agn.publicjoin %}
<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.
{% endif %}
<hr>
<h5>Agenturen im Verbund</h5>
<b>Verwaltende Agenturen:</b>
<b>Verwaltende Agenturen:</b>
{% for a in agn.adminagencys.all %}
&nbsp;{{a.name}}{% if forloop.counter < agn.adminagencys.all|length %},{% endif %}{% endfor %}
<br />
{% 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;">
<hr>
<div class="table-responsive mt-2">
@ -42,45 +42,45 @@
</tr>
</thead>
<tbody>
{% for agn_s in agn.adminagencys.all %}
{% for agn_s in agn.adminagencys.all %}
<tr id="agn_{{agn_s.pk}}">
<td>{{agn_s.name}}</td>
<td>{{agn_s.name}}</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.sharemembers.all %}Inhalte teilen
{% endif %}
</td>
</td>
</tr>
{% endfor %}
{% for agn_s in agn.sharemembers.all %}
{% endfor %}
{% for agn_s in agn.sharemembers.all %}
<tr id="agn_{{agn_s.pk}}">
<td>{{agn_s.name}}</td>
<td>{{agn_s.name}}</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.sharemembers.all %}Inhalte teilen
{% endif %}
</td>
</td>
</tr>
{% endfor %}
{% for agn_s in agn.members.all %}
{% endfor %}
{% for agn_s in agn.members.all %}
<tr id="agn_{{agn_s.pk}}">
<td>{{agn_s.name}}</td>
<td>{{agn_s.name}}</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.sharemembers.all %}Inhalte teilen
{% endif %}
</td>
</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
</span>
</span>
</div>
</div>
<script type="text/javascript">
@ -101,7 +101,7 @@
$(document).ready(function(){
$('#agnetworkagencys_onlyview').DataTable({
"language": {
"search" : "Suche",
@ -116,21 +116,22 @@
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
});
});
</script>
<hr>
Möchten Sie diesem Verbund beitreten?
<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" data-dismiss="modal" href="{% url 'dasettings' %}">Abbrechen</a>
</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-header" id="area_{{area.pk}}" style="background-color: {{area.color}};opacity:0.8;">
<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>
<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}}">
<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 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>
</div>
<div id="area_content_{{area.pk}}" class="collapse" data-labelledby="area_{{area.pk}}" data-parent="#sortableAreas">
<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">
<thead>
<tr>
<th scope="col">Name</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">&nbsp;</th>
</tr>
@ -65,15 +65,15 @@ noclickeffect:active { border-style: outset !important;}
<td>{{ task.area.name }}</td>
<td>{{ task.created_area_by.first_name }} {{ task.created_area_by.last_name }}</td>
<td>{{ task.created_area_date }}</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>
<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" 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>
{% endif %}
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
</div>
@ -103,8 +103,8 @@ noclickeffect:active { border-style: outset !important;}
</div>
<div id="newareaname_err" class="alert alert-danger mt-3" style="display: none">Falsche Eingabe! Keine Sonderzeichen!</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>
&nbsp;
<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>
</button>
</div>
<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!
<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!
</div>
<div class="modal-footer">
<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">
<label for="exampleInputPassword1">Tätigkeitsname:</label>
<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.
<div id="newtaskname_err" class="alert alert-danger mt-3" style="display: none">Falsche Eingabe! Keine Sonderzeichen!</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>
&nbsp;
<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>
</button>
</div>
<div class="modal-body">
<div class="modal-body">
<div class="form-group">
<label for="exampleInputPassword1">Tätigkeitsname:</label>
<input class="form-control" id="updateTaskName" type="text" value="" placeholder="Tätigkeitsname" onkeyup="javascript:validateTaskName(this.value, 1)">
</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>
<div class="input-group mb-3">
<div class="input-group mb-3">
<select class="custom-select" id="taskAreaSelected">
{%for area in agencyareas%}
{%for area in agencyareas%}
<option value="{{area.pk}}">{{area.name}}</option>
{% endfor %}
</select>
</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()">
<label class="custom-control-label" for="visibleTask" >Im Organigramm sichtbar</label>
</div>
<h6>Mitarbeiter hinzufügen:</h6>
<div class="input-group mb-3">
<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>
</div>
<datalist id="possusers"></datalist>
<datalist id="possusers"></datalist>
</div>
<h6>Zugewiesene Mitarbeiter:</h6>
<div id="added_users_button"></div>
@ -226,10 +226,10 @@ noclickeffect:active { border-style: outset !important;}
<span aria-hidden="true">&times;</span>
</button>
</div>
<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.
<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.
</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>
</div>
</div>
@ -246,8 +246,8 @@ noclickeffect:active { border-style: outset !important;}
<span aria-hidden="true">&times;</span>
</button>
</div>
<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!
<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!
</div>
<div class="modal-footer">
<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){
specific_userfield_id = value['id'].split("_")[1];
checkUserToTask();
});
});
},400);
}
function checkUserToTask(){
var g = $('#searchusertotask').val();
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];
$.ajax(
{
type: "GET",
@ -294,10 +294,10 @@ function checkUserToTask(){
action : 'adduser',
objectid : workingTaskId
},
success: function( data )
{
clearSearchfieldAddToTask();
//Add User-Button
success: function( data )
{
clearSearchfieldAddToTask();
//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>');
$("#possusers").empty();
@ -318,7 +318,7 @@ $( function() {
$( "#sortableAreas" ).sortable
({
axis:"y",
update: function( event, ui )
update: function( event, ui )
{
datatoserver = [];
var rows = $( "#sortableAreas" ).sortable( "widget" )[0]['children'];
@ -334,15 +334,15 @@ $( function() {
action: "newareaorder",
finalod : JSON.stringify(datatoserver)
},
success: function( data )
success: function( data )
{
$('#notchange_done').toast('show');
}
});
});
}
});
});
$( "#sortableAreas" ).disableSelection();
taskaddtoarea = false;
@ -357,7 +357,7 @@ function addTask(areaid){
$("#mainmodalTasks").modal("toggle");
$("#newtaskname").val("");
$("#doActionTaskModal").prop("disabled", true);
$("#newtaskname_err").hide();
$("#newtaskname_err").hide();
}
@ -371,9 +371,9 @@ function mainmodalTaskSave(){
newvalue : $("#newtaskname").val(),
areaid : taskaddtoarea
},
success: function( data )
{
if(data['success']){
success: function( data )
{
if(data['success']){
newtaskid = data['data']['newtaskid'];
newtaskname = data['data']['name'];
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>');
}
else{
else{
$("#mainmodalArea").modal('toggle');
$('#notchange_err').toast('show');
$("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!");
@ -392,7 +392,7 @@ function mainmodalTaskSave(){
}
function updateTask(){
namevalue = $("#updateTaskName").val();
namevalue = $("#updateTaskName").val();
$.ajax(
{
type: "GET",
@ -403,9 +403,9 @@ function updateTask(){
newareaid : $("#taskAreaSelected").val(),
id : workingTaskId
},
success: function( data )
{
$("a#taskname_td_area_" + workingTaskId).text(data["data"]["newvalue"]);
success: function( data )
{
$("a#taskname_td_area_" + workingTaskId).text(data["data"]["newvalue"]);
$("#updateTask").modal("toggle");
$('#updateTask').on('hidden.bs.modal', function (e) {
console.log(data)
@ -414,9 +414,9 @@ function updateTask(){
}
});
}
});
}
@ -431,11 +431,11 @@ function removeUserFromTask(userid){
action : 'remuser',
objectid : workingTaskId
},
success: function( data )
success: function( data )
{
//Remove User-Button
//Remove User-Button
$("#span_btn_"+data['userid']).remove();
$("#possusers").empty();
$("#possusers").empty();
for (var i in data['remaining_users']) {
id = data['remaining_users'][i]['id'];
name = data['remaining_users'][i]['first_name'] + " " + data['remaining_users'][i]['last_name'];
@ -455,14 +455,14 @@ function updateTaskComplete(id){
action : "get_taskname",
id : workingTaskId
},
success: function( data )
{
$("#added_users_button").html("");
success: function( data )
{
$("#added_users_button").html("");
$("#possusers").empty();
$("#taskAreaSelected").val(data["data"]["taskarea"]);
$("#updateTask").modal("toggle");
$("#updateTaskName").val(data['data']['taskname']);
$("#tasknametoupdate").html(data['data']['taskname']);
$("#tasknametoupdate").html(data['data']['taskname']);
if(data['data']['visible'] == true){
$("#visibleTask").prop("checked", true);
}
@ -472,11 +472,11 @@ function updateTaskComplete(id){
//ADDED USERS
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>')
}
}
//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">');
}
}
}
});
}
@ -490,7 +490,7 @@ function changeVisibleTask(){
action : "update_visible_taskname",
id : workingTaskId
},
success: function( data )
success: function( data )
{}
});
}
@ -502,38 +502,38 @@ function validateTaskName(newtaskname, updateornew){
if(updateornew == 0)
{
if(newtaskname.length > 0){
if(newtaskname.length > 0){
if(!newtaskname.match(letters))
{
$("#newtaskname_err").show();
$("#doActionTaskModal").prop("disabled", true);
}
else{
$("#newtaskname_err").hide();
$("#newtaskname_err").hide();
$("#doActionTaskModal").prop("disabled", false);
}
}
}
else{
$("#newtaskname_err").hide();
else{
$("#newtaskname_err").hide();
$("#doActionTaskModal").prop("disabled", true);
}
}
//UPDATE TASK
else{
if(newtaskname.length > 0){
if(newtaskname.length > 0){
if(!newtaskname.match(letters))
{
$("#updateTaskName_err").show();
$("#doActionUpdateTask").prop("disabled", true);
}
else{
$("#updateTaskName_err").hide();
$("#updateTaskName_err").hide();
$("#doActionUpdateTask").prop("disabled", false);
}
}
}
else{
$("#updateTaskName_err").hide();
else{
$("#updateTaskName_err").hide();
$("#doActionUpdateTask").prop("disabled", true);
}
}
@ -542,7 +542,7 @@ function validateTaskName(newtaskname, updateornew){
workingTaskId = false;
function delTask(taskid){
workingTaskId = taskid;
workingTaskId = taskid;
$("#delTask").modal("toggle");
$.ajax(
{
@ -552,9 +552,9 @@ function delTask(taskid){
action : "get_taskname",
id : workingTaskId
},
success: function( data )
{
$("#taskName").html(data['data']['taskname']);
success: function( data )
{
$("#taskName").html(data['data']['taskname']);
}
});
}
@ -568,13 +568,13 @@ function doDelTask(){
action : "remove_task",
id : workingTaskId
},
success: function( data )
{
if(data['success']){
success: function( data )
{
if(data['success']){
$('#notchange_done').toast('show');
$("#task_"+workingTaskId).remove();
}
else{
else{
$("#delArea").modal('toggle');
$('#notchange_err').toast('show');
$("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!");
@ -591,12 +591,12 @@ function doDelArea(){
action : "remove_area",
id : workingAreaId
},
success: function( data )
{
if(data['success']){
window.location.href = window.location.href + "?showtoast=true";
success: function( data )
{
if(data['success']){
window.location.href = window.location.href + "?showtoast=true";
}
else{
else{
$("#delArea").modal('toggle');
$('#notchange_err').toast('show');
$("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!");
@ -617,9 +617,9 @@ function delArea(areaid){
action : "get_areaname",
id : areaid
},
success: function( data )
{
$("#areaName").html(data['data']['areaname']);
success: function( data )
{
$("#areaName").html(data['data']['areaname']);
}
});
}
@ -636,18 +636,18 @@ default_colorpickerinit = "#3498db";
newareacolor= "#ffffff";
//Prepare addArea-Modal and show
function addArea(workingAreaId)
{
{
if(workingAreaId == false)
{
$("#mainmodalArea_title").html("Neuen Bereich anlegen");
$("#mainmodalArea_title").html("Neuen Bereich anlegen");
$("#mainmodalArea").modal('toggle');
$("#newareaname").val("");
default_colorpickerinit = "#3498db";
modalarea_action = 1;
}
else {
modalarea_action = 1;
}
else {
areaupdateid = workingAreaId;
modalarea_action = 2;
modalarea_action = 2;
$.ajax(
{
type: "GET",
@ -656,16 +656,16 @@ function addArea(workingAreaId)
action : "get_areaname",
id : workingAreaId
},
success: function( data )
{
$("#mainmodalArea_title").html("Bereich bearbeiten");
success: function( data )
{
$("#mainmodalArea_title").html("Bereich bearbeiten");
$("#mainmodalArea").modal('toggle');
$("#newareaname").val(data['data']['areaname']);
$("#doActionAreaModal").prop("disabled", false);
$("#doActionAreaModal").prop("disabled", false);
default_colorpickerinit = data['data']['areacolor'];
}
});
}
});
}
}
$('#mainmodalArea').on('shown.bs.modal', function() {
@ -685,27 +685,27 @@ $('#mainmodalArea').on('shown.bs.modal', function() {
//Validate new Area-Name
function validateAreaName(newareaname){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newareaname.length > 0){
var letters = /^[A-Za-zßäöüÄÖÜ_\-0-9 ]+$/;
if(newareaname.length > 0){
if(!newareaname.match(letters))
{
$("#newareaname_err").show();
$("#doActionAreaModal").prop("disabled", true);
}
else{
$("#newareaname_err").hide();
$("#newareaname_err").hide();
$("#doActionAreaModal").prop("disabled", false);
}
}
}
else{
$("#newareaname_err").hide();
else{
$("#newareaname_err").hide();
$("#doActionAreaModal").prop("disabled", true);
}
}
//Final save-Area
function mainmodalAreaSave(){
namevalue = $("#newareaname").val();
namevalue = $("#newareaname").val();
//ADD AREA
if(modalarea_action == 1){
$.ajax(
@ -717,12 +717,12 @@ function mainmodalAreaSave(){
newvalue : namevalue,
color : newareacolor
},
success: function( data )
{
if(data['success']){
window.location.href = window.location.href + "?showtoast=true";
success: function( data )
{
if(data['success']){
window.location.href = window.location.href + "?showtoast=true";
}
else{
else{
$("#mainmodalArea").modal('toggle');
$('#notchange_err').toast('show');
$("#toast_errcontent").html("Fehler beim Erstellen des Bereichs!");
@ -742,12 +742,12 @@ function mainmodalAreaSave(){
newvalue : namevalue,
color : newareacolor
},
success: function( data )
{
success: function( data )
{
if(data['success']){
$("#mainmodalArea").modal('toggle');
$('#notchange_done').toast('show');
$("#areaname_" + areaupdateid).html("Bereich <b>"+data['data']['newvalue']+"&nbsp;</b>");
$('#notchange_done').toast('show');
$("#areaname_" + areaupdateid).html("Bereich <b>"+data['data']['newvalue']+"&nbsp;</b>");
$("#area_" + areaupdateid).css("background-color", data['data']['color']);
}
else{
@ -761,7 +761,7 @@ function mainmodalAreaSave(){
$(document).ready(function(){
{% for area in agencyareas %}
$('#areatask_{{area.pk}}_table').DataTable({
"language": {
@ -777,6 +777,7 @@ $(document).ready(function(){
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}

View File

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

View File

@ -708,7 +708,7 @@ def SettingsAjaxRouter(request):
standardsmoved = True
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)
task.area = newareaobj
task.area = newareaobj
task.save()
data = {"newvalue" : task.name, "smoved" : standardsmoved}
success = True

View File

@ -4,38 +4,38 @@
<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>
{% 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>
{% 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>
{% endif %}
<small><i onclick="javascript:$('#youtubevideoinformation').modal('toggle');" class="far fa-play-circle"></i></small>
</h3>
</h3>
<hr>
<div class="row">
<div class="col-12">
<ul class="nav nav-tabs" id="news_tabs" role="tablist">
{% if perms.users.modulenews %}
<ul class="nav nav-tabs" id="news_tabs" role="tablist">
{% if perms.users.modulenews %}
<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>
</li>
</li>
<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>
</li>
</li>
{% endif %}
<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>
</li>
</li>
</ul>
</div>
<div class="col">
<div class="tab-content" id="tab_contents">
{% if perms.users.modulenews %}
<div class="tab-content" id="tab_contents">
{% if perms.users.modulenews %}
<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>
<hr>
<div class="row">
<hr>
<div class="row">
<div class="table-responsive">
<table class="table table-hover" id="activenews" >
<thead>
@ -43,16 +43,16 @@
<th scope="col">Titel</th>
<th scope="col">Erstellt von</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>
</tr>
</thead>
<tbody id="tableresults">
{% for news_single in news %}
{% for news_single in news %}
<tr>
<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_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>
{% if news_single.created_by == request.user or perms.users.news_management %}
@ -65,20 +65,20 @@
</a>
{% endif %}
</div>
</td>
</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% endif %}
{% if perms.users.modulenews %}
{% if perms.users.modulenews %}
<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>
<hr>
<div class="row">
<div class="row">
<div class="table-responsive">
<table class="table table-hover" id="comingnews">
<thead>
@ -86,16 +86,16 @@
<th scope="col">Titel</th>
<th scope="col">Erstellt von</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>
</tr>
</thead>
<tbody id="tableresults_arch">
{% for news_single in news_coming %}
{% for news_single in news_coming %}
<tr>
<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_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>
{% if news_single.created_by == request.user or perms.users.news_management %}
@ -107,14 +107,14 @@
<small><i class="fas fa-pen"></i></small>
</a>
{% endif %}
</td>
</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
{% endif %}
@ -125,7 +125,7 @@
<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>
<hr>
<div class="row">
<div class="row">
<div class="table-responsive">
<table class="table table-hover" id="archnews">
<thead>
@ -133,16 +133,16 @@
<th scope="col">Titel</th>
<th scope="col">Erstellt von</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>
</tr>
</thead>
<tbody id="tableresults_arch">
{% for news_single in news_arch %}
{% for news_single in news_arch %}
<tr>
<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_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>
{% if news_single.created_by == request.user or perms.users.news_management %}
@ -154,16 +154,16 @@
<small><i class="fas fa-pen"></i></small>
</a>
{% endif %}
</td>
</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
/* DATATABLES */
@ -174,7 +174,7 @@
</style>
<script>
$(document).ready(function(){
$('#activenews').DataTable({
"language": {
"search" : "Suche",
@ -189,6 +189,7 @@ $(document).ready(function(){
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
@ -208,6 +209,7 @@ $(document).ready(function(){
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
@ -227,11 +229,12 @@ $(document).ready(function(){
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
});
$('#news_tabs li:first-child a').tab('show');
@ -274,9 +277,9 @@ var VIDEOURL = "zB1icna9YaA"
var MODALNAME = "#youtubevideoinformation"
var VIDEOTITLE = "Informationsvideo News"
$(document).ready(function(){
$(document).ready(function(){
$("#modaltitle_video").html(VIDEOTITLE);
$("#modaltitle_video").html(VIDEOTITLE);
//VIDEOCONTROLS
$( MODALNAME ).on('shown.bs.modal', function(e){
@ -294,7 +297,7 @@ $(document).ready(function(){
player = new YT.Player('video-placeholder', {
width: 760,
height: 500,
videoId: VIDEOURL,
videoId: VIDEOURL,
});
}
@ -314,7 +317,7 @@ $(document).ready(function(){
<div id="video-placeholder"></div>
</div>
<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>

View File

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

View File

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

View File

@ -1,10 +1,10 @@
{% load counter_tag %}
<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">
<h5 class="card-title"></h5>
<p class="card-text">
<div class="table-responsive">
<table class="table hover" id="agntable">
@ -19,7 +19,7 @@
</thead>
<tbody id="">
{% for agn in agencynetworks %}
{% getsumofallag agn.pk as agsum %}
{% getsumofallag agn.pk as agsum %}
{% getoutstandinginvites agn.pk as outstanding %}
{% ifaginadminagn agn.pk request.user.profile.agency.pk as is_adminag %}
<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.lastactivity}}</td>
<td>{{agsum}}</td>
<td>{{agn.standards.all|length}}</td>
<td>{{agn.standards.all|length}}</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
</p>
@ -38,7 +38,7 @@
</div>
<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">
<h5 class="card-title">UPDATES</h5>
<p class="card-text">
@ -47,7 +47,7 @@
</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">
<h5 class="card-title">Beliebte Standards</h5>
<p class="card-text">
@ -77,16 +77,16 @@
<hr>
{% 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.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>
</div>
<div class="modal-footer">
<div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schliessen</button>
</div>
</div>
</div>
</div>
{% endfor %}
{% endfor %}
<style>
@ -103,7 +103,7 @@
}
$(document).ready(function(){
$('#agntable').DataTable({
"language": {
"search" : "Suche",
@ -118,10 +118,11 @@
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
});
});
</script>
</script>

View File

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

View File

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

View File

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

View File

@ -13,11 +13,11 @@
<div class="row">
<div class="col-12">
<ul class="nav nav-tabs" id="area_tabs" role="tablist" >
{% for area in areas %}
<li class="nav-item " >
{% for area in areas %}
<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>
</li>
{% endfor %}
{% endfor %}
{% if agencynetworks|length > 0 %}
<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>
@ -26,27 +26,27 @@
<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>
</li>
</li>
{% if perms.users.standardmanager %}
<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">
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>
{%endif%}
{%endif%}
</a>
</li>
{% endif %}
</li>
{% endif %}
</div>
<div class="col">
<div class="tab-content" id="area_contents">
{% for area in areas %}
<div class="tab-content" id="area_contents">
{% for area in areas %}
<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>
<hr>
<hr>
{% for ele in standardcontent %}
{% if ele.area == area %}
@ -56,27 +56,27 @@
<div class="card-body">
<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>
</h5>
</h5>
<!-- STANDARS -->
{% for s in task.standards %}
<!-- VISIBLE GROUPCHECK -->
{% setbool False %}
{% for ag in s.visibleby.all %}
{% if request.user|has_group:ag.group.name %}
{% setbool True %}
{% for ag in s.visibleby.all %}
{% if request.user|has_group:ag.group.name %}
{% setbool True %}
{% endif %}
{% endfor %}
{% if s.visibleby.all|length == 0 %}
{% setbool True %}
{% setbool True %}
{% endif %}
{% getbool as groupchecker %}
{% if forloop.counter0 < 3 %}
{% if groupchecker %}
<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>
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
</div>
</div>
@ -84,7 +84,7 @@
{% endif %}
{% endfor %}
</div>
</div>
{% endfor %}
{% if agencynetworks|length > 0 %}
<div class="tab-pane fade" id="t_agencynetwork" role="tabpanel" aria-labelledby="agencynetwork">
@ -94,14 +94,14 @@
{% block agnet %}
{% include "standards/agencynetwork_content.html" %}
{% endblock %}
</div>
</div>
{% endif %}
<div class="tab-pane fade" id="t_userown" role="tabpanel" aria-labelledby="userown">
<h4 class="mt-4 mb-4">Eigene Standards</h4>
<div class="table-responsive">
<div class="table-responsive">
<table class="table hover" id="userownstandards">
<thead>
<tr>
@ -121,10 +121,10 @@
<a href="{% url 'standard-single' standard.pk %}">{{standard.name}}</a>
{% else %}
{% 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 %}
{{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 %}
</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">
{% if perms.users.standardmanager %}
{% 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 %}
{% if standard.area != None and standard.task != None %}
<a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichen</a>
@ -147,26 +147,26 @@
{% endif %}
{% endif %}
{% if standard.created_standard_by == request.user or perms.users.standardmanager %}
<a class="dropdown-item" href="{% url 'standard-add' standard.pk %}">Bearbeiten</a>
{% endif %}
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{% url 'standard-add' standard.pk %}">Bearbeiten</a>
{% endif %}
<div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="{% url 'standard-delete' standard.pk %}" >Löschen</a>
</div>
</div>
</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<div class="tab-pane fade" id="t_agencys" role="tabpanel" aria-labelledby="userown">
<h4 class="mt-4 mb-4">Unveröffentlichte Standards</h4>
<div class="table-responsive">
<div class="table-responsive">
<table class="table hover" id="unpubstandardsofuser">
<thead>
<tr>
@ -186,10 +186,10 @@
<a href="{% url 'standard-single' standard.pk %}">{{standard.name}}</a>
{% else %}
{% 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 %}
{{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 %}
</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">
{% if perms.users.standardmanager %}
{% 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 %}
{% if standard.area != None and standard.task != None %}
<a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichen</a>
@ -212,45 +212,45 @@
{% endif %}
{% endif %}
{% if standard.created_standard_by == request.user or perms.users.standardmanager %}
<a class="dropdown-item" href="{% url 'standard-add' standard.pk %}">Bearbeiten</a>
{% endif %}
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{% url 'standard-add' standard.pk %}">Bearbeiten</a>
{% endif %}
<div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="{% url 'standard-delete' standard.pk %}" >Löschen</a>
</div>
</div>
</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<style type="text/css">
/*.nav-link.active {
border: 15px solid green;
border: 15px solid green;
}*/
</style>
<script type="text/javascript">
$('#area_tabs a').on('click', function (e) {
e.preventDefault();
$(this).tab('show');
$(this).tab('show');
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');
if(activeTab){
if(activeTab){
if($('#' + activeTab).find().prevObject.length != 0){
$('#' + activeTab).tab('show');
$('#' + activeTab).tab('show');
$(".nav-link").removeClass("active");
areaid = activeTab.split("_")[1];
$("#" + areaid).addClass("active");
@ -260,14 +260,14 @@
}
}
else{
$('#area_tabs li:first-child a').tab('show');
}
$('[data-toggle="popover"]').popover();
$('[data-toggle="popover"]').popover();
$('#userownstandards').DataTable({
responsive: true,
"language": {
@ -283,6 +283,7 @@
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
@ -303,13 +304,14 @@
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
});
})
$('#area_tabs a').on('click', function (e) {
e.preventDefault()
@ -337,9 +339,9 @@ var VIDEOURL = "5HhvQnknJ-A"
var MODALNAME = "#youtubevideoinformation"
var VIDEOTITLE = "Informationsvideo Standards"
$(document).ready(function(){
$(document).ready(function(){
$("#modaltitle_video").html(VIDEOTITLE);
$("#modaltitle_video").html(VIDEOTITLE);
//VIDEOCONTROLS
$( MODALNAME ).on('shown.bs.modal', function(e){
@ -358,7 +360,7 @@ $(document).ready(function(){
player = new YT.Player('video-placeholder', {
width: 760,
height: 500,
videoId: VIDEOURL,
videoId: VIDEOURL,
});
}
@ -378,7 +380,7 @@ $(document).ready(function(){
<div id="video-placeholder"></div>
</div>
<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>
@ -386,4 +388,4 @@ $(document).ready(function(){
<!-- YOUTUBE PART ENDE -->
{% endblock content %}
{% endblock content %}

View File

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

View File

@ -3,7 +3,7 @@
{% load counter_tag %}
{% if request.user.profile.agency.module_timemanagement %}
<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>
<div class="table-responsive ">
<table class="table table-hover" id="table_timemanagement" >
@ -14,9 +14,9 @@
<th scope="col">Ende</th>
<th scope="col">Arbeitszeit</th>
<th scope="col">Pausen</th>
<th scope="col">Gesamtzeit</th>
<th scope="col">Gleitzeit</th>
<th scope="col">&nbsp;</th>
<th scope="col">Gesamtzeit</th>
<th scope="col">Gleitzeit</th>
<th scope="col">&nbsp;</th>
</tr>
</thead>
<tbody id="table_contacts" >
@ -37,13 +37,13 @@
</td>
<td>
{% getsumbreak workday as sumbreakofday %}
{{sumbreakofday}} min. ({{workday.breaks.all|length}})
{{sumbreakofday}} min. ({{workday.breaks.all|length}})
</td>
<td>
{% getsumworkday workday as sumwd %}
{{sumwd}}
</td>
<td>
</td>
<td>
{% gettimeoveralldiff workday user as erg%}
{% if erg.1 == 0 %}
<span style="color: green">+{{erg.0}}</span>
@ -53,17 +53,17 @@
<span style="color: red">-{{erg.0}}</span>
{% endif %}
</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 " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
</tbody>
</table>
</div>
{% if user.usertime.usetime_start == None %}
<div class="modal fade" tabindex="-1" role="dialog" data-backdrop="static" id="missingdatainfo">
<div class="modal-dialog" role="document">
@ -79,7 +79,7 @@
<br />
<small>Dies können nur Mitarbeiter eintragen, die das Recht haben, Mitarbeiter zu verwalten.</small>
</div>
<div class="modal-footer">
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Schließen</button>
</div>
</div>
@ -108,7 +108,7 @@
<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?
</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" data-dismiss="modal">Nein</button>
</div>
@ -116,24 +116,24 @@
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#initialload").modal("toggle");
});
function loadInitiDays(){
$.ajax(
{
type: "GET",
url: "{% url 'tm-ajax' %}",
data:{
action : "initial_load",
action : "initial_load",
},
success: function( data )
{
success: function( data )
{
location.href = location.href;
}
});
});
}
</script>
@ -152,7 +152,7 @@
<div class="modal-footer">
<button class="btn btn-primary" id="dodel_{{workday.pk}}" >Löschen</button>
<button type="button" class="btn" data-dismiss="modal">Abbrechen</button>
</div>
</div>
</div>
@ -168,12 +168,12 @@
action : "remove_workday",
workday: {{workday.pk}},
},
success: function( data )
{
success: function( data )
{
$("#wd_{{workday.pk}}").remove();
$("#confirm-delete_{{workday.pk}}").modal("toggle");
}
});
});
});
</script>
{% endfor %}
@ -186,7 +186,7 @@
</style>
<script>
$(document).ready(function(){
$('#table_timemanagement').DataTable({
"language": {
"search" : "Suche",
@ -201,12 +201,13 @@ $(document).ready(function(){
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
});
});
</script>
{% else %}
<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%">
<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>
</td>
</tr>
{% endfor %}
@ -57,6 +57,7 @@
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}

View File

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

View File

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