diff --git a/module/knowledgecenter_update/Views/categories_cardform.php b/module/knowledgecenter_update/Views/categories_cardform.php index dc4a3d9..793ee95 100644 --- a/module/knowledgecenter_update/Views/categories_cardform.php +++ b/module/knowledgecenter_update/Views/categories_cardform.php @@ -112,6 +112,52 @@ foreach ($roles as $role) { } } +// Einrichtungen abrufen +$einrichts = []; +$resultEinrichts = mysqli_query($GLOBALS['mysql_con'], "SELECT id, description FROM organigramm_einricht ORDER BY description ASC"); +while ($row = mysqli_fetch_assoc($resultEinrichts)) { + $einrichts[] = $row; +} + +// Fachbereiche abrufen +$fachbereiche = []; +$resultFachbereiche = mysqli_query($GLOBALS['mysql_con'], "SELECT id, description FROM organogramm_space ORDER BY description ASC"); +while ($row = mysqli_fetch_assoc($resultFachbereiche)) { + $fachbereiche[] = $row; +} + +// Gespeicherte Einrichtungen abrufen +$savedEinrichts = []; +$querySavedEinrichts = "SELECT einricht_id FROM knowledgecenter_category_einricht WHERE category_id = $categoryId"; +$resultSavedEinrichts = mysqli_query($GLOBALS['mysql_con'], $querySavedEinrichts); +while ($row = mysqli_fetch_assoc($resultSavedEinrichts)) { + $savedEinrichts[] = $row['einricht_id']; +} + +// Array mit Daten für Tagify (Einrichtungen) +$savedEinrichtsData = []; +foreach ($einrichts as $einricht) { + if (in_array($einricht['id'], $savedEinrichts)) { + $savedEinrichtsData[] = ['value' => $einricht['id'], 'name' => $einricht['description']]; + } +} + +// Gespeicherte Fachbereiche abrufen +$savedFachbereiche = []; +$querySavedFachbereiche = "SELECT fachbereich_id FROM knowledgecenter_category_fachbereich WHERE category_id = $categoryId"; +$resultSavedFachbereiche = mysqli_query($GLOBALS['mysql_con'], $querySavedFachbereiche); +while ($row = mysqli_fetch_assoc($resultSavedFachbereiche)) { + $savedFachbereiche[] = $row['fachbereich_id']; +} + +// Array mit Daten für Tagify (Fachbereiche) +$savedFachbereicheData = []; +foreach ($fachbereiche as $fachbereich) { + if (in_array($fachbereich['id'], $savedFachbereiche)) { + $savedFachbereicheData[] = ['value' => $fachbereich['id'], 'name' => $fachbereich['description']]; + } +} + // Kategorie auslesen $query = "SELECT c.* FROM knowledgecenter_categories_update AS c WHERE c.id = $categoryId LIMIT 1"; $result = mysqli_query($GLOBALS['mysql_con'], $query); @@ -383,6 +429,16 @@ $parentCount = count($parentCategories); + + @@ -486,11 +542,13 @@ $parentCount = count($parentCategories); processNextForm(); } - // Funktion zum Speichern der Tagify-Daten (Mandanten, Departments, Rollen) + // Funktion zum Speichern der Tagify-Daten (Mandanten, Departments, Rollen, Einrichtungen, Fachbereiche) function saveTagifyData() { var mandants = JSON.stringify(tagifyMandants.value.map(function (t) { return t.value; })); var departments = JSON.stringify(tagifyDepartments.value.map(function (t) { return t.value; })); var roles = JSON.stringify(tagifyRoles.value.map(function (t) { return t.value; })); + var einrichts = JSON.stringify(tagifyEinrichts.value.map(function (t) { return t.value; })); + var fachbereiche = JSON.stringify(tagifyFachbereiche.value.map(function (t) { return t.value; })); $.post("/module/knowledgecenter_update/Ajax/Ajax.php", { action: "update_category_links", @@ -498,6 +556,8 @@ $parentCount = count($parentCategories); mandants: mandants, departments: departments, roles: roles, + einrichts: einrichts, + fachbereiche: fachbereiche, modified_by: $("#modified_by").val() }, function (response) { if (!response.success) { @@ -511,6 +571,12 @@ $parentCount = count($parentCategories); tagifyRoles.removeAllTags(); tagifyRoles.addTags(response.roles); + + tagifyEinrichts.removeAllTags(); + tagifyEinrichts.addTags(response.einrichts); + + tagifyFachbereiche.removeAllTags(); + tagifyFachbereiche.addTags(response.fachbereiche); } }, "json"); } @@ -738,6 +804,52 @@ $parentCount = count($parentCategories); } }); + var einrichtsData = $item['id'], 'name' => $item['description']]; + }, $einrichts)); ?>; + + var fachbereicheData = $item['id'], 'name' => $item['description']]; + }, $fachbereiche)); ?>; + + var tagifyEinrichts = new Tagify(document.getElementById('selected_einrichts'), { + whitelist: einrichtsData, + tagTextProp: 'name', + enforceWhitelist: true, + dropdown: { + enabled: 0, + maxItems: Infinity, + searchKeys: ["name"] + }, + templates: { + dropdownItem: function (tagData) { + return `
+ ${tagData.name} +
`; + } + } + }); + + var tagifyFachbereiche = new Tagify(document.getElementById('selected_fachbereiche'), { + whitelist: fachbereicheData, + tagTextProp: 'name', + enforceWhitelist: true, + dropdown: { + enabled: 0, + maxItems: Infinity, + searchKeys: ["name"] + }, + templates: { + dropdownItem: function (tagData) { + return `
+ ${tagData.name} +
`; + } + } + }); + // Handler für das Löschen einer Kategorie $("#deleteCategory").on("click", function () { if (confirm("Möchten Sie diese Kategorie wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.")) {