This commit is contained in:
2026-02-17 14:56:23 +01:00
commit 68f7a95fdf
695 changed files with 154611 additions and 0 deletions

View File

@@ -0,0 +1,285 @@
<?php
$task_group_id = 0;
if(isset($_GET['task_group_id'])){
$task_group_id = $_GET['task_group_id'];
if($task_group_id == "-1/"){
$task_group_id = "-1";
}
}
function get_task_groups($task_group_id){
$query_group = "SELECT * FROM task_group WHERE main_contact_id = ".$GLOBALS['main_contact']['id'];
$result_group = @mysqli_query($GLOBALS['mysql_con'], $query_group);
while($row_group = @mysqli_fetch_array($result_group)){
echo "<li data-id='".$row_group['id']."'><svg xmlns='http://www.w3.org/2000/svg' width='17.5' height='18.421' viewBox='0 0 17.5 18.421'>
<g id='bx-building-house' transform='translate(-3 -3)'>
<path id='Pfad_20' data-name='Pfad 20' d='M18.658,3H9.448A1.844,1.844,0,0,0,7.605,4.842V9.987L3.27,14.322A.921.921,0,0,0,3.921,15.9V20.5a.921.921,0,0,0,.921.921H19.579A.921.921,0,0,0,20.5,20.5V4.842A1.844,1.844,0,0,0,18.658,3ZM11.29,19.579H5.763V14.434l2.763-2.763,2.763,2.763Zm7.369,0H13.132V15.9a.92.92,0,0,0,.651-1.573L9.448,9.987V4.842h9.211Z' transform='translate(0)' />
<path id='Pfad_21' data-name='Pfad 21' d='M14.184,9h1.842v1.842H14.184Zm3.684,0h1.842v1.842H17.869Zm0,3.713h1.842v1.814H17.869Zm0,3.656h1.842v1.842H17.869ZM10.5,17.29h1.842v1.842H10.5Z' transform='translate(-2.895 -2.316)' />
</g>
</svg>
<a href='?task_group_id=".$row_group['id']."'>".$row_group['description']."</a> <span class='number count_group_".$row_group['id']."'></span> <span data-id='".$row_group['id']."' class='delete_group'><svg xmlns='http://www.w3.org/2000/svg' width='27' height='31.5' viewBox='0 0 27 31.5'>
<g id='delete' transform='translate(-4.5 -2.25)'>
<path id='Pfad_276' data-name='Pfad 276' d='M13.5,13.5h2.25V27H13.5Z'/>
<path id='Pfad_277' data-name='Pfad 277' d='M20.25,13.5H22.5V27H20.25Z'/>
<path id='Pfad_278' data-name='Pfad 278' d='M4.5,6.75V9H6.75V31.5A2.25,2.25,0,0,0,9,33.75H27a2.25,2.25,0,0,0,2.25-2.25V9H31.5V6.75ZM9,31.5V9H27V31.5Z'/>
<path id='Pfad_279' data-name='Pfad 279' d='M13.5,2.25h9V4.5h-9Z'/>
</g>
</svg></span></li>";
}
}
function get_contact_from_id($main_contact_id){
$query_select = "SELECT * FROM main_contact WHERE id = '".$main_contact_id."'";
$result_select = @mysqli_query($GLOBALS['mysql_con'], $query_select);
$row_select = @mysqli_fetch_array($result_select);
return $row_select;
}
function send_mail($recipient_id, $task_id){
$query_select = "SELECT * FROM tasks WHERE id = '".$task_id."'";
$result_select = @mysqli_query($GLOBALS['mysql_con'], $query_select);
$row_select = @mysqli_fetch_array($result_select);
$due_date = new DateTime($row_select['due_date']);
$recipient = get_contact_from_id($recipient_id);
$sender = get_contact_from_id($row_select['modified_user']);
$subject = "Neuer Task im Intranet";
$message .= "<h1>Es wurde in neuer Task im Intranet zugewiesen.</h1>" . "\n";
$message .= "<strong>Titel:</strong> " .$row_select['title']. "\n";
$message .= "<strong>Beschreibung:</strong> " .$row_select['description']. "\n";
$message .= "<strong>Fälligkeitsdatum</strong> " .$due_date->format('d.m.Y'). "\n";
$message .= "<strong>Erstellt von:</strong> " .$sender['name']. "\n\n";
$message .= "<a href='https://".$_SERVER['HTTP_HOST']."'>Zum Intranet</a>";
if (mail_create($subject,
$message,
'tasks@ihnen-group.de',
$recipient["email"],
'Tasks Intranet',
$recipient["name"],
FALSE,
"",
"",
"", 0, "", "")) {
mail_send();
clearstatcache();
}
}
if(isset($_POST['submit_edit'])){
$current_date = new DateTime();
$query = "UPDATE tasks SET
title = '".$_POST['title']."',
description = '".$_POST['description']."',
modified_date = '".$current_date->format('Y-m-d')."',
due_date = '".$_POST['due_date']."'
WHERE id = ".$_POST['task_id']."
LIMIT 1";
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
$contacts = $_POST['task_persons'];
$contact = explode(',', $contacts);
if(!empty($contact) && gettype($contact) == 'array') {
foreach($contact as $key => $contact_value){
$query_select = "SELECT * FROM task_contact_link WHERE task_id = '".$_POST['task_id']."' AND main_contact_id = '".$contact_value."'";
$result_select = @mysqli_query($GLOBALS['mysql_con'], $query_select);
$row_select = @mysqli_fetch_array($result_select);
if(!$row_select){
send_mail($contact_value, $_POST['task_id']);
}
}
$deleteLink = @mysqli_query($GLOBALS["mysql_con"], "DELETE FROM task_contact_link WHERE task_id = '".$_POST['task_id']."'");
foreach($contact as $key => $contact_value){
$query = "INSERT INTO task_contact_link
(task_id, main_contact_id)
VALUES (
" . $_POST['task_id'] . ",
'" . $contact_value . "'
)";
@mysqli_query($GLOBALS['mysql_con'], $query);
}
}
}
if(isset($_POST['submit_task'])){
$modified_date = new DateTime();
$insertquery = "INSERT INTO tasks
(title, description, modified_date, modified_user, due_date, status, task_group_id)
VALUES (
'" . $_POST['title'] . "',
'',
'" . $modified_date->format('Y-m-d') . "',
'" . $GLOBALS['main_contact']['id'] . "',
'".$modified_date->format('Y-m-d')."',
'0',
'" . $task_group_id . "'
)";
@mysqli_query($GLOBALS['mysql_con'], $insertquery);
$input_id = mysqli_insert_id($GLOBALS['mysql_con']);
$contactquery = "INSERT INTO task_contact_link
(task_id, main_contact_id)
VALUES (
" . $input_id . ",
" . $GLOBALS['main_contact']['id'] . "
)";
@mysqli_query($GLOBALS['mysql_con'], $contactquery);
$_POST = array();
}
if(isset($_POST['submit_list'])){
$insertquery = "INSERT INTO task_group
(description, main_contact_id)
VALUES (
'" . $_POST['list_description'] . "',
'" . $GLOBALS['main_contact']['id'] . "'
)";
@mysqli_query($GLOBALS['mysql_con'], $insertquery);
$_POST = array();
}
?>
<div class='tasks'>
<div class="tasks_container">
<div class='tasks_groups_wrapper'>
<ul>
<li data-id='0'><a href='?task_group_id=0'>Aufgaben <span class='number count_group_0'></span></a></li>
<li data-id='-1'><a href='?task_group_id=-1/'>Mir zugewiesen <span class='number count_group_-1'></span></a></li>
<?= get_task_groups($task_group_id, 'list'); ?>
</ul>
<p class='new_list'>+ Neue Liste erstellen</p>
<form method='post' class='create_list' style='display: none'>
<input class="add_task"type='text' required name='list_description' placeholder='Name der neuen Liste'>
<input class="send_task" type='submit' name='submit_list' value='Liste hinzufügen'>
</form>
</div>
<div class='tasks_wrapper'>
<div class="mobile_menu_toggle">
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="21" viewBox="0 0 30 21">
<g id="menu-left" transform="translate(-3 -7.5)">
<path id="Pfad_282" data-name="Pfad 282" d="M3,8.992A1.492,1.492,0,0,1,4.492,7.5H16.507a1.493,1.493,0,1,1,0,2.985H4.492A1.492,1.492,0,0,1,3,8.992Z"/>
<path id="Pfad_283" data-name="Pfad 283" d="M3,18a1.492,1.492,0,0,1,1.492-1.492H31.507a1.493,1.493,0,0,1,0,2.985H4.492A1.492,1.492,0,0,1,3,18Z"/>
<path id="Pfad_284" data-name="Pfad 284" d="M4.492,25.515a1.492,1.492,0,1,0,0,2.985H22.507a1.493,1.493,0,0,0,0-2.985Z"/>
</g>
</svg>
</div>
<h2 class='task_group_title'>Aufgaben</h2>
<div class="tasks_list_overflow">
<div class="task_item_list opened_tasks">
</div>
<p class="task_done_title">Erledigt <span class='count_tasks'></span></p>
<div class="task_item_list done closed_tasks">
</div>
</div>
<?php
if($task_group_id != -1){ ?>
<form method='post' class='create_task'>
<input class="add_task"type='text' required name='title' placeholder='Neue Aufgabe erstellen'>
<input class="send_task" type='submit' name='submit_task' value='Aufgabe hinzufügen'>
</form>
<?php } ?>
</div>
<div class='tasks_content_wrapper'>
</div>
</div>
</div>
<script>
$('.task_item_list').on('click', '.task_item', function() {
var task_id = $(this).attr('data-id');
$('.task_item').removeClass('active_item');
$('.tasks_content_wrapper').addClass("change_opacity");
$(this).addClass('active_item');
ajax_action(task_id, 'load_card', 0, true, ".tasks_content_wrapper ");
});
$('.task_item_list').on('click', '.task_item .complete_task', function() {
var task_id = $(this).parent().attr('data-id');
var complete = $(this).parent().attr('data-complete');
ajax_action(task_id, 'complete_task', complete, false);
$(this).addClass("animated_check");
setTimeout(function() {
ajax_action(<?= $task_group_id ?>, 'get_tasks', 0, true, ".opened_tasks");
ajax_action(<?= $task_group_id ?>, 'get_tasks', 1, true, ".closed_tasks");
ajax_action(<?= $task_group_id ?>, 'count_tasks', 1, true, ".count_tasks");
ajax_action(<?= $task_group_id ?>, 'count_tasks', 0, true, ".count_group_<?= $task_group_id?>");
}, 850);
});
$(".new_list").click(function() {
$(".create_list").toggle();
});
$('.tasks_content_wrapper').on('click', 'button#back', function() {
$(".tasks_content_wrapper").text("");
$('.tasks_content_wrapper').removeClass("change_opacity");
});
$(".delete_group").click(function() {
var group_id = $(this).attr('data-id');
if (confirm("Sind Sie sicher, dass Sie diese Gruppe und alle beeinhalteten Tasks löschen möchten?")) {
ajax_action(group_id, 'delete_group', 0, false);
location.reload();
}
});
$('.tasks_content_wrapper').on('click', '.delete_task', function() {
var task_id = $(this).attr('data-id');
ajax_action(task_id, 'delete_task', 0, false);
location.reload();
});
$("p.task_done_title").click(function() {
$(".done").children(".task_item").toggle();
});
$(".mobile_menu_toggle").click(function() {
$(".tasks_groups_wrapper").toggle();
});
function ajax_action(task_id, action, status = 0, show, content_class = 0){
$.ajax({
type: 'POST',
url: "/module/tasks/tasks_ajax.inc.php",
data: {
task_id : task_id,
action : action,
status : status,
main_contact_id : <?= $GLOBALS['main_contact']['id'] ?>,
},
success: function(data){
if(show == true){
$(content_class).html(data)
}
}
});
}
$(document).ready(function() {
var urlParams = new URLSearchParams(window.location.search);
var paramValue = 0;
if (urlParams.has('task_group_id')) {
paramValue = urlParams.get('task_group_id');
}
var targetLi = $('li[data-id="' + paramValue + '"]');
var liText = targetLi.children().text();
$(".task_group_title").text(liText);
targetLi.addClass('active_list');
});
$(document).ready(function() {
ajax_action(<?= $task_group_id ?>, 'get_tasks', 0, true, ".opened_tasks");
ajax_action(<?= $task_group_id ?>, 'get_tasks', 1, true, ".closed_tasks");
ajax_action(<?= $task_group_id ?>, 'count_tasks', 1, true, ".count_tasks");
$(".tasks_groups_wrapper li").each(function(){
var task_group_id = $(this).attr('data-id');
ajax_action(task_group_id, 'count_tasks', 0, true, ".count_group_"+task_group_id);
});
});
</script>

View File

@@ -0,0 +1,131 @@
<?php
function get_task_groups(){
$query_group = "SELECT * FROM task_group WHERE main_contact_id = ".$GLOBALS['main_contact']['id'];
$result_group = @mysqli_query($GLOBALS['mysql_con'], $query_group);
echo "<select class='change_task_group'>";
echo "<option value='-2'>Alle Tasks</option>";
echo "<option value='0'>Aufgaben</option>";
echo "<option value='-1'>Mir zugewiesen</option>";
while($row_group = @mysqli_fetch_array($result_group)){
echo "<option value='".$row_group['id']."'>".$row_group['description']."</option>";
}
echo "</select>";
}
if(isset($_POST['submit_task'])){
$modified_date = new DateTime();
$insertquery = "INSERT INTO tasks
(title, description, modified_date, modified_user, due_date, status, task_group_id)
VALUES (
'" . $_POST['title'] . "',
'',
'" . $modified_date->format('Y-m-d') . "',
'" . $GLOBALS['main_contact']['id'] . "',
'',
'0',
'" . $_POST['task_group_id_input'] . "'
)";
@mysqli_query($GLOBALS['mysql_con'], $insertquery);
$input_id = mysqli_insert_id($GLOBALS['mysql_con']);
$contactquery = "INSERT INTO task_contact_link
(task_id, main_contact_id)
VALUES (
" . $input_id . ",
" . $GLOBALS['main_contact']['id'] . "
)";
@mysqli_query($GLOBALS['mysql_con'], $contactquery);
$_POST = array();
}
?>
<div class='tasks'>
<div class="tasks_container_dashboard">
<div class="title_with_icon">
<div class="textcontent">
<h2>Tasks</h2>
</div>
<a href="/intranet/de/tasks/">
<div class="svg_content">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g id="dot-circle-line" transform="translate(-2 -2)">
<path id="Pfad_280" data-name="Pfad 280" d="M18,11a7,7,0,1,1-7,7,7,7,0,0,1,7-7"/>
<path id="Pfad_281" data-name="Pfad 281" d="M18,34A16,16,0,1,1,34,18,16,16,0,0,1,18,34ZM18,4A14,14,0,1,0,32,18,14,14,0,0,0,18,4Z"/>
</g>
</svg>
</div>
</a>
</div>
<div class="select_group_and_toggle_creation_form">
<?= get_task_groups()?>
<div class="add_svg_content">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
<path id="add" d="M19.125,16.875V9h-2.25v7.875H9v2.25h7.875V27h2.25V19.125H27v-2.25Z" transform="translate(-9 -9)"/>
</svg>
</div>
</div>
<div class='tasks_wrapper_dashboard'>
<div class="tasks_list_overflow">
<div class="task_item_list">
</div>
</div>
<form method='post' class='create_task_dashboard'>
<input type='hidden' name='task_group_id_input' class='task_group_id_input' value='0'>
<input class="add_task" type='text' required name='title' placeholder='Neue Aufgabe erstellen'>
<input class="send_task" type='submit' name='submit_task' value='Aufgabe hinzufügen'>
</form>
</div>
</div>
</div>
<script>
$('.task_item_list').on('click', '.task_item .complete_task', function() {
var task_id = $(this).parent().attr('data-id');
var complete = $(this).parent().attr('data-complete');
var selectedValue = $(".change_task_group").val();
ajax_action(task_id, 'complete_task', complete, false);
$(this).addClass("animated_check");
setTimeout(function() {
ajax_action(selectedValue, 'get_tasks', 0, true);
}, 850);
});
function ajax_action(task_id, action, status = 0, show){
$.ajax({
type: 'POST',
url: "/module/tasks/tasks_ajax.inc.php",
data: {
task_id : task_id,
action : action,
status : status,
main_contact_id : <?= $GLOBALS['main_contact']['id'] ?>,
},
success: function(data){
if(show == true){
$('.task_item_list').html(data)
}
}
});
}
$(".change_task_group").on("change", function() {
var selectedValue = $(this).val();
$(".task_group_id_input").val(selectedValue);
ajax_action(selectedValue, 'get_tasks', 0, true);
$(".add_svg_content").show();
if(selectedValue == "-1" || selectedValue == "-2"){
$(".add_svg_content").hide();
}
});
$(document).ready(function() {
ajax_action(-2, 'get_tasks', 0, true);
$(".add_svg_content").hide();
});
$(".add_svg_content").click(function() {
$("form.create_task_dashboard").slideToggle();
});
</script>

View File

@@ -0,0 +1,211 @@
<?php
session_start();
$currDir = __DIR__;
$rootDir = dirname(dirname($currDir));
$mysydeDir = $rootDir . '/mysyde';
require_once($rootDir . '/vendor/autoload.php');
require_once($rootDir . "/mysyde/frontend/frontend_functions.inc.php");
$envDir = $rootDir . '/config';
$envFilePath = $envDir . '/.env';
if (is_dir($envDir) && file_exists($envFilePath) && is_file($envFilePath) && is_readable($envFilePath)) {
$dotenv = new \Dotenv\Dotenv($envDir);
$dotenv->load();
}
$common = $mysydeDir ."/common/common_functions.inc.php";
require_once($common);
$connEnv = (local_environment()) ? $mysydeDir."/dc.config.php" : $mysydeDir."/dc-server.config.php";
require_once($connEnv);
db_connect();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$task_id = $_POST['task_id'];
switch ($_POST['action']) {
case 'complete_task':
complete_task($task_id, $_POST['status']);
break;
case 'load_card':
load_card($task_id);
break;
case 'delete_group':
delete_group($task_id);
break;
case 'delete_task':
delete_task($task_id);
break;
case 'get_tasks':
get_tasks_ajax($task_id, $_POST['status'], $_POST['main_contact_id']);
break;
case 'count_tasks':
count_tasks_ajax($task_id, $_POST['status'], $_POST['main_contact_id']);
break;
default:
break;
}
}
function complete_task($task_id, $status){
$query = "UPDATE tasks SET
status = ".$status."
WHERE id = ".$task_id."
LIMIT 1";
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
}
function delete_group($group_id){
$query_delete = "DELETE FROM task_group WHERE id = ".$group_id;
$result_delete = @mysqli_query($GLOBALS['mysql_con'], $query_delete);
$query = "SELECT * FROM tasks WHERE task_group_id = ".$group_id;
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while($row = @mysqli_fetch_array($result)){
$query_link = "DELETE FROM task_contact_link WHERE task_id = ".$row['id'];
$result_link = @mysqli_query($GLOBALS['mysql_con'], $query_link);
$query_task = "DELETE FROM tasks WHERE id = ".$row['id'];
$result_task = @mysqli_query($GLOBALS['mysql_con'], $query_task);
}
}
function delete_task($task_id){
$query_link = "DELETE FROM task_contact_link WHERE task_id = ".$task_id;
$result_link = @mysqli_query($GLOBALS['mysql_con'], $query_link);
$query_task = "DELETE FROM tasks WHERE id = ".$task_id;
$result_task = @mysqli_query($GLOBALS['mysql_con'], $query_task);
}
function get_main_contact($main_contact_id){
$query = "SELECT * FROM main_contact WHERE id = ".$main_contact_id;
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
$row = @mysqli_fetch_array($result);
return $row;
}
function get_tasks_ajax($task_group_id, $status, $main_contact_id){
$query = "SELECT tasks.* FROM tasks LEFT JOIN task_contact_link ON tasks.id = task_contact_link.task_id WHERE main_contact_id = ".$main_contact_id . " AND modified_user = ".$main_contact_id." AND task_group_id = ".$task_group_id . " AND status = ".$status;
if($task_group_id == -1){
$query = "SELECT tasks.* FROM tasks LEFT JOIN task_contact_link ON tasks.id = task_contact_link.task_id WHERE main_contact_id = ".$main_contact_id . " AND modified_user != ".$main_contact_id." AND status = ".$status;
}
if($task_group_id == -2){
$query = "SELECT tasks.* FROM tasks LEFT JOIN task_contact_link ON tasks.id = task_contact_link.task_id WHERE main_contact_id = ".$main_contact_id . " AND status = ".$status;
}
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
$i = 0;
while($row = @mysqli_fetch_array($result)){
$class = '';
$complete = 1;
if($status == 1){
$complete = 0;
}
if($row['modified_user'] != $main_contact_id){
$class = 'asap';
}
echo "<div class='task_item ".$class."' data-complete='".$complete."' data-id='".$row['id']."'>".$row['title']."<span class='complete_task'></span></div>";
$i++;
}
if($i == 0 && $status == 0){
echo "<div class=''>Aktuell sind keine Tasks vorhanden.</div>";
}
}
function count_tasks_ajax($task_group_id, $status, $main_contact_id){
$query = "SELECT tasks.* FROM tasks LEFT JOIN task_contact_link ON tasks.id = task_contact_link.task_id WHERE main_contact_id = ".$main_contact_id . " AND modified_user = ".$main_contact_id." AND task_group_id = ".$task_group_id . " AND status = ".$status;
if($task_group_id == -1){
$query = "SELECT tasks.* FROM tasks LEFT JOIN task_contact_link ON tasks.id = task_contact_link.task_id WHERE main_contact_id = ".$main_contact_id . " AND modified_user != ".$main_contact_id." AND status = ".$status;
}
if($task_group_id == -2){
$query = "SELECT tasks.* FROM tasks LEFT JOIN task_contact_link ON tasks.id = task_contact_link.task_id WHERE main_contact_id = ".$main_contact_id . " AND status = ".$status;
}
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
$count = 0;
while($row = @mysqli_fetch_array($result)){
$count++;
}
echo $count;
}
function create_contact_select($task_id){
$query = "SELECT * FROM main_contact ORDER BY name";
$contact_result = @mysqli_query($GLOBALS['mysql_con'], $query);
$preselect = array();
$query = "SELECT * FROM task_contact_link WHERE task_id = ".$task_id;
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while($row = @mysqli_fetch_array($result)){
array_push($preselect,$row['main_contact_id']);
}
?>
<div class="contact bc-select-ui ui fluid multiple search selection dropdown" style="clear:both;display:inline-block;">
<input id='task_persons' class='code' type='hidden' name='task_persons'>
<i class="dropdown icon"></i>
<div class="default text">Person hinzufügen</div>
<div class="menu">
<?
while($contact = @mysqli_fetch_array($contact_result)) {
echo "<div class=\"item\" data-value=\"{$contact['id']}\">".$contact["name"]."</div>";
}
?>
</div>
</div>
<script type="text/javascript" src="/plugins/jquery/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="/plugins/Semantic-UI-master/semantic.min.js"></script>
<!-- <link rel="stylesheet" type="text/css" href="/plugins/Semantic-UI-master/bc-semantic.css?time=<?= filemtime($_SERVER['DOCUMENT_ROOT'] . '/plugins/Semantic-UI-master/bc-semantic.css')?>"> -->
<script>
var $y = jQuery.noConflict();
$y( document ).ready(function() {
$y('.contact.ui.fluid.multiple.dropdown').dropdown('set selected', <?= json_encode($preselect) ?>);
});
</script>
<?
}
function load_card($task_id){
$query = "SELECT * FROM tasks WHERE id = ".$task_id;
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
$row = @mysqli_fetch_array($result);
$due_date = new DateTime($row['due_date']);
$modified_date = new DateTime($row['modified_date']);
?>
<button id="back">Zurück</button>
<div class='task_item_card'>
<h4 class='task_item_card_title'><span class='complete_task'></span><?= $row['title']?></h4>
<p class='task_item_card_text'><?= $row['description']?></p>
<div class='task_item_card_info'>
<span>von: <?= get_main_contact($row['modified_user'])['name']?></span>
<span>erstellt am: <?= $modified_date->format('d.m.Y')?></span>
</div>
</div>
<div class='due_date'>Fälligkeit: <?= $due_date->format('d.m.Y')?></div>
<form method='post' class="edit_task">
<input type='hidden' name='task_id' value='<?= $task_id?>'>
<div class="form_group">
<label for="due_date">Fälligkeit:</label>
<input type='date' name='due_date' value='<?= $due_date->format('Y-m-d')?>'>
</div>
<!-- <input type='datetime-local' name='memory_date'> -->
<?= create_contact_select($row['id'])?>
<div class="form_group">
<label for="due_date">Aufgabenname:</label>
<input type='text' name='title' value='<?= $row['title']?>' placeholder='Titel'>
</div>
<textarea name='description' placeholder='Notiz hinzufügen'><?= $row['description']?></textarea>
<input type='submit' class='button_main' name='submit_edit' value='Änderungen speichern'>
</form>
<div data-id='<?= $task_id ?>' class='delete_task'><svg xmlns="http://www.w3.org/2000/svg" width="27" height="31.5" viewBox="0 0 27 31.5">
<g id="delete" transform="translate(-4.5 -2.25)">
<path id="Pfad_276" data-name="Pfad 276" d="M13.5,13.5h2.25V27H13.5Z"/>
<path id="Pfad_277" data-name="Pfad 277" d="M20.25,13.5H22.5V27H20.25Z"/>
<path id="Pfad_278" data-name="Pfad 278" d="M4.5,6.75V9H6.75V31.5A2.25,2.25,0,0,0,9,33.75H27a2.25,2.25,0,0,0,2.25-2.25V9H31.5V6.75ZM9,31.5V9H27V31.5Z"/>
<path id="Pfad_279" data-name="Pfad 279" d="M13.5,2.25h9V4.5h-9Z"/>
</g>
</svg>
</div>
<?php }