Module tasks + knowledgecenter_update aus Kundenprojekt übernehmen (bereinigt)
Beide Module wurden aus einem anderen Kundenprojekt kopiert und bereinigt: Knowledgecenter: - Bild-Cache (1.985 Dateien) geleert, Ordnerstruktur mit .gitkeep behalten - Files-Gallery-Lizenzschlüssel entfernt (config.php) - Kundenspezifische Kategorien gelöscht: Teil I/II/III QM-Struktur, nummerierte QM-Kapitel, Gremien (Präsidium/Finanzausschuss/Landesausschuss), Sitzungsservice-Serie, Protokoll-Abteilungen, Testeinträge - 56 generische Kategorien bleiben (Downloads, Onboarding, Personalthemen …) Tasks: - Alle Betriebsdaten gelöscht (114 Tasks, 914 Submissions, 579 Assignments) - Task-Definitionen und Verlinkungen geleert - Kategoriestruktur bleibt (Allgemein, IT, Personal, Buchhaltung …) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
508
module/knowledgecenter_update/Views/post_cardform_settings.php
Normal file
508
module/knowledgecenter_update/Views/post_cardform_settings.php
Normal file
@@ -0,0 +1,508 @@
|
||||
<?php
|
||||
// post_cardform_settings.php
|
||||
|
||||
// Sicherstellen, dass $postId gesetzt ist – andernfalls neuen Beitrag (0) annehmen
|
||||
if (!isset($postId)) {
|
||||
$postId = 0;
|
||||
}
|
||||
|
||||
// Falls $languageId noch nicht definiert ist, Standard (z. B. 1) verwenden
|
||||
if (!isset($languageId)) {
|
||||
$languageId = 1;
|
||||
}
|
||||
|
||||
// Load current linked form for this post (if any)
|
||||
$currentFormId = 0;
|
||||
$res = mysqli_query($GLOBALS['mysql_con'], "
|
||||
SELECT form_id
|
||||
FROM knowledgecenter_post_form
|
||||
WHERE post_id = $postId
|
||||
LIMIT 1
|
||||
");
|
||||
if ($row = mysqli_fetch_assoc($res)) {
|
||||
$currentFormId = (int)$row['form_id'];
|
||||
}
|
||||
|
||||
// Build <option> list from contactform_header with 'selected' on current form
|
||||
$formOptions = "";
|
||||
$query = "SELECT id, description FROM contactform_header ORDER BY id ASC";
|
||||
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
// Mark the currently linked form as selected
|
||||
$selected = ($row['id'] == $currentFormId) ? 'selected' : '';
|
||||
$formOptions .= "<option value='" . $row['id'] . "' $selected>"
|
||||
. htmlspecialchars($row['description']) . "</option>";
|
||||
}
|
||||
|
||||
// -------------------- Kategorien --------------------
|
||||
// Erzeuge die Whitelist für alle verfügbaren Kategorien (mit Übersetzung)
|
||||
$categoriesData = [];
|
||||
$query = "SELECT c.id, t.title, c.enable_post_color_pickers
|
||||
FROM knowledgecenter_categories_update AS c
|
||||
LEFT JOIN knowledgecenter_category_translations AS t
|
||||
ON c.id = t.category_id
|
||||
WHERE t.language_id = $languageId";
|
||||
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
// Hier wird der in der Übersetzungstabelle gespeicherte Titel als 'name' verwendet.
|
||||
$categoriesData[] = [
|
||||
'value' => $row['id'],
|
||||
'name' => $row['title'],
|
||||
'enable_post_color_pickers' => (int) ($row['enable_post_color_pickers'] ?? 0)
|
||||
];
|
||||
}
|
||||
|
||||
// Bereits zugeordnete Kategorien abrufen (falls vorhanden)
|
||||
$selectedCategories = [];
|
||||
if ($postId != 0) {
|
||||
$querySelected = "SELECT c.id, t.title
|
||||
FROM knowledgecenter_category_post AS pc
|
||||
JOIN knowledgecenter_categories_update AS c ON pc.category_id = c.id
|
||||
LEFT JOIN knowledgecenter_category_translations AS t
|
||||
ON c.id = t.category_id
|
||||
WHERE pc.post_id = $postId AND t.language_id = $languageId";
|
||||
$resultSelected = mysqli_query($GLOBALS['mysql_con'], $querySelected);
|
||||
while ($row = mysqli_fetch_assoc($resultSelected)) {
|
||||
$selectedCategories[] = ['value' => $row['id'], 'name' => $row['title']];
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------- Mandanten für Post --------------------
|
||||
$postMandantsData = [];
|
||||
$query = "SELECT id, description FROM main_mandant";
|
||||
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
// Hier verwenden wir 'name' als Anzeige-Text, der die description enthält.
|
||||
$postMandantsData[] = ['value' => $row['id'], 'name' => $row['description']];
|
||||
}
|
||||
$selectedPostMandants = [];
|
||||
if ($postId != 0) {
|
||||
$querySelected = "SELECT m.id, m.description
|
||||
FROM knowledgecenter_post_mandant AS pm
|
||||
JOIN main_mandant AS m ON pm.mandant_id = m.id
|
||||
WHERE pm.post_id = $postId";
|
||||
$resultSelected = mysqli_query($GLOBALS['mysql_con'], $querySelected);
|
||||
while ($row = mysqli_fetch_assoc($resultSelected)) {
|
||||
$selectedPostMandants[] = ['value' => $row['id'], 'name' => $row['description']];
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------- Departments für Post --------------------
|
||||
$postDepartmentsData = [];
|
||||
$query = "SELECT id, description FROM main_department";
|
||||
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
$postDepartmentsData[] = ['value' => $row['id'], 'name' => $row['description']];
|
||||
}
|
||||
$selectedPostDepartments = [];
|
||||
if ($postId != 0) {
|
||||
$querySelected = "SELECT d.id, d.description
|
||||
FROM knowledgecenter_post_department AS pd
|
||||
JOIN main_department AS d ON pd.department_id = d.id
|
||||
WHERE pd.post_id = $postId";
|
||||
$resultSelected = mysqli_query($GLOBALS['mysql_con'], $querySelected);
|
||||
while ($row = mysqli_fetch_assoc($resultSelected)) {
|
||||
$selectedPostDepartments[] = ['value' => $row['id'], 'name' => $row['description']];
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------- Rollen für Post --------------------
|
||||
$postRolesData = [];
|
||||
$query = "SELECT id, description FROM main_role";
|
||||
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
$postRolesData[] = ['value' => $row['id'], 'name' => $row['description']];
|
||||
}
|
||||
$selectedPostRoles = [];
|
||||
if ($postId != 0) {
|
||||
$querySelected = "SELECT r.id, r.description
|
||||
FROM knowledgecenter_post_role AS pr
|
||||
JOIN main_role AS r ON pr.role_id = r.id
|
||||
WHERE pr.post_id = $postId";
|
||||
$resultSelected = mysqli_query($GLOBALS['mysql_con'], $querySelected);
|
||||
while ($row = mysqli_fetch_assoc($resultSelected)) {
|
||||
$selectedPostRoles[] = ['value' => $row['id'], 'name' => $row['description']];
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------- Produkte für Post --------------------
|
||||
$productsData = [];
|
||||
$query = "SELECT p.id, pt.title
|
||||
FROM product AS p
|
||||
JOIN product_translation AS pt
|
||||
ON p.id = pt.product_id
|
||||
WHERE pt.language_id = $languageId";
|
||||
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
$productsData[] = ['value' => $row['id'], 'name' => $row['title']];
|
||||
}
|
||||
$selectedProducts = [];
|
||||
if ($postId != 0) {
|
||||
$querySelected = "SELECT p.id, pt.title
|
||||
FROM product_knowledgecenter_post_link AS pl
|
||||
JOIN product AS p ON pl.product_id = p.id
|
||||
JOIN product_translation AS pt
|
||||
ON p.id = pt.product_id
|
||||
WHERE pl.post_id = $postId
|
||||
AND pt.language_id = $languageId";
|
||||
$resultSelected = mysqli_query($GLOBALS['mysql_con'], $querySelected);
|
||||
while ($row = mysqli_fetch_assoc($resultSelected)) {
|
||||
$selectedProducts[] = ['value' => $row['id'], 'name' => $row['title']];
|
||||
}
|
||||
}
|
||||
|
||||
$postBackgroundColor = '#FFFFFF';
|
||||
if (!empty($post['background_color'])) {
|
||||
$postBackgroundColor = $post['background_color'];
|
||||
} elseif (!empty($currentVersion['background_color'])) {
|
||||
$postBackgroundColor = $currentVersion['background_color'];
|
||||
}
|
||||
|
||||
$postTextColor = '#000000';
|
||||
if (!empty($post['text_color'])) {
|
||||
$postTextColor = $post['text_color'];
|
||||
} elseif (!empty($currentVersion['text_color'])) {
|
||||
$postTextColor = $currentVersion['text_color'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
<button id="message" style="opacity:0; position: absolute;"></button>
|
||||
<div class="titlebar_small">
|
||||
<h2><?=$translation->get("settings")?></h2>
|
||||
<?php if (get_permission_state('r-wiki', $GLOBALS['main_contact']['master_mandant_id'], $GLOBALS['main_contact']['id']) == 1) { ?>
|
||||
<span id="saveAllBtn" class="post-action-btn-small green"><?= $saveIcon ?></span>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="settings">
|
||||
<form id="postSettingsForm">
|
||||
<input type="hidden" id="post_id" name="post_id" value="<?php echo $postId; ?>" />
|
||||
|
||||
<h3><?=$translation->get("categories")?>
|
||||
</h3>
|
||||
<div class="settings_container">
|
||||
<input type="text" id="categoryTags" name="categories" placeholder="Kategorie hinzufügen…" />
|
||||
</div>
|
||||
|
||||
<div id="postColorPickersSection" class="post-color-grid" style="display:none;">
|
||||
<div class="post-color-item">
|
||||
<label for="postBackgroundColor"><?= $translation->get("post_background_color") ?></label>
|
||||
<input type="color" id="postBackgroundColor" name="background_color"
|
||||
value="<?= htmlspecialchars($postBackgroundColor, ENT_QUOTES, 'UTF-8') ?>">
|
||||
</div>
|
||||
|
||||
<div class="post-color-item">
|
||||
<label for="postTextColor"><?= $translation->get("post_text_color") ?></label>
|
||||
<input type="color" id="postTextColor" name="text_color"
|
||||
value="<?= htmlspecialchars($postTextColor, ENT_QUOTES, 'UTF-8') ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><?=$translation->get("Geschäftsstellen")?>
|
||||
</h3>
|
||||
<div class="settings_container">
|
||||
<input type="text" id="postMandantTags" name="postMandants" placeholder="<?=$translation->get("Geschäftsstellen")?>…" />
|
||||
</div>
|
||||
|
||||
<h3><?=$translation->get("departments")?>
|
||||
</h3>
|
||||
<div class="settings_container">
|
||||
<input type="text" id="postDepartmentTags" name="postDepartments" placeholder="<?=$translation->get("departments")?>…" />
|
||||
</div>
|
||||
|
||||
<h3><?=$translation->get("roles")?>
|
||||
</h3>
|
||||
<div class="settings_container">
|
||||
<input type="text" id="postRoleTags" name="postRoles" placeholder="<?=$translation->get("roles")?>…" />
|
||||
</div>
|
||||
|
||||
<h3><?=$translation->get("products")?></h3>
|
||||
<div class="settings_container">
|
||||
<input type="text" id="postProductTags" name="postProducts" placeholder="<?=$translation->get("products")?>…" />
|
||||
</div>
|
||||
|
||||
<h3>Formular auswählen</h3>
|
||||
<div class="settings_container">
|
||||
<select name="postFormSelect" id="postFormSelect">
|
||||
<option value="">Bitte wählen…</option>
|
||||
<?php echo $formOptions; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<hgroup>
|
||||
<h3><?=$translation->get("pdf_inline_preview")?></h3>
|
||||
<small><?=$translation->get("pdf_inline_preview_explanation")?></small>
|
||||
</hgroup>
|
||||
<div class="settings_container">
|
||||
|
||||
<label>
|
||||
<input type="checkbox" id="pdfInlineCheckbox" name="pdf_inline" value="1"
|
||||
<?php echo (!empty($post['preview_inline']) && $post['preview_inline'] == 1) ? 'checked' : ''; ?>>
|
||||
<?=$translation->get("pdf_inline_preview_label")?>
|
||||
</label>
|
||||
</div>
|
||||
<h3><?=$translation->get("delete_post")?></h3>
|
||||
<div class="settings_container">
|
||||
<div id="deletePostBtn" class="post-action-btn-text red">
|
||||
<?=$translation->get("delete_post")?>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
// Übergabe der Whitelist-Daten aus PHP
|
||||
var categoriesData = <?php echo json_encode($categoriesData); ?>;
|
||||
var postMandantsData = <?php echo json_encode($postMandantsData); ?>;
|
||||
var postDepartmentsData = <?php echo json_encode($postDepartmentsData); ?>;
|
||||
var postRolesData = <?php echo json_encode($postRolesData); ?>;
|
||||
var selectedCategories = <?php echo json_encode($selectedCategories); ?>;
|
||||
var selectedPostMandants = <?php echo json_encode($selectedPostMandants); ?>;
|
||||
var selectedPostDepartments = <?php echo json_encode($selectedPostDepartments); ?>;
|
||||
var selectedPostRoles = <?php echo json_encode($selectedPostRoles); ?>;
|
||||
var productsData = <?php echo json_encode($productsData); ?>;
|
||||
var selectedProducts = <?php echo json_encode($selectedProducts); ?>;
|
||||
|
||||
var categoryEnableColorMap = {};
|
||||
categoriesData.forEach(function (cat) {
|
||||
categoryEnableColorMap[String(cat.value)] = parseInt(cat.enable_post_color_pickers || 0, 10) === 1;
|
||||
});
|
||||
|
||||
function updatePostColorPickerVisibility() {
|
||||
var selectedValues = tagifyCategories.value.map(function (tag) {
|
||||
return String(tag.value);
|
||||
});
|
||||
|
||||
var hasEnabledCategory = selectedValues.some(function (catId) {
|
||||
return categoryEnableColorMap[catId] === true;
|
||||
});
|
||||
|
||||
if (hasEnabledCategory) {
|
||||
$("#postColorPickersSection").css("display", "grid");
|
||||
} else {
|
||||
$("#postColorPickersSection").hide();
|
||||
}
|
||||
}
|
||||
|
||||
// Kategorien
|
||||
var tagifyCategories = new Tagify(document.getElementById('categoryTags'), {
|
||||
whitelist: categoriesData,
|
||||
tagTextProp: 'name',
|
||||
enforceWhitelist: true,
|
||||
dropdown: {
|
||||
enabled: 0,
|
||||
maxItems: Infinity,
|
||||
searchKeys: ["name"]
|
||||
},
|
||||
templates: {
|
||||
dropdownItem: function (tagData) {
|
||||
return `<div ${this.getAttributes(tagData)} class="tagify__dropdown__item">
|
||||
<span>${tagData.name}</span>
|
||||
</div>`;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (selectedCategories.length) {
|
||||
tagifyCategories.addTags(selectedCategories);
|
||||
}
|
||||
|
||||
tagifyCategories.on('add', updatePostColorPickerVisibility);
|
||||
tagifyCategories.on('remove', updatePostColorPickerVisibility);
|
||||
updatePostColorPickerVisibility();
|
||||
|
||||
// Mandanten für Post
|
||||
var tagifyPostMandants = new Tagify(document.getElementById('postMandantTags'), {
|
||||
whitelist: postMandantsData,
|
||||
tagTextProp: 'name',
|
||||
enforceWhitelist: true,
|
||||
dropdown: { enabled: 0, maxItems: Infinity, searchKeys: ["name"] },
|
||||
templates: {
|
||||
dropdownItem: function (tagData) {
|
||||
return `<div ${this.getAttributes(tagData)} class="tagify__dropdown__item">
|
||||
<span>${tagData.name}</span>
|
||||
</div>`;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (selectedPostMandants.length) {
|
||||
tagifyPostMandants.addTags(selectedPostMandants);
|
||||
}
|
||||
|
||||
// Departments für Post
|
||||
var tagifyPostDepartments = new Tagify(document.getElementById('postDepartmentTags'), {
|
||||
whitelist: postDepartmentsData,
|
||||
tagTextProp: 'name',
|
||||
enforceWhitelist: true,
|
||||
dropdown: { enabled: 0, maxItems: Infinity, searchKeys: ["name"] },
|
||||
templates: {
|
||||
dropdownItem: function (tagData) {
|
||||
return `<div ${this.getAttributes(tagData)} class="tagify__dropdown__item">
|
||||
<span>${tagData.name}</span>
|
||||
</div>`;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (selectedPostDepartments.length) {
|
||||
tagifyPostDepartments.addTags(selectedPostDepartments);
|
||||
}
|
||||
|
||||
// Rollen für Post
|
||||
var tagifyPostRoles = new Tagify(document.getElementById('postRoleTags'), {
|
||||
whitelist: postRolesData,
|
||||
tagTextProp: 'name',
|
||||
enforceWhitelist: true,
|
||||
dropdown: { enabled: 0, maxItems: Infinity, searchKeys: ["name"] },
|
||||
templates: {
|
||||
dropdownItem: function (tagData) {
|
||||
return `<div ${this.getAttributes(tagData)} class="tagify__dropdown__item">
|
||||
<span>${tagData.name}</span>
|
||||
</div>`;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (selectedPostRoles.length) {
|
||||
tagifyPostRoles.addTags(selectedPostRoles);
|
||||
}
|
||||
|
||||
// Produkte für Post
|
||||
var tagifyPostProducts = new Tagify(document.getElementById('postProductTags'), {
|
||||
whitelist: productsData,
|
||||
tagTextProp: 'name',
|
||||
enforceWhitelist: true,
|
||||
dropdown: { enabled: 0, maxItems: Infinity, searchKeys: ["name"] },
|
||||
templates: {
|
||||
dropdownItem: function (tagData) {
|
||||
return `<div ${this.getAttributes(tagData)} class="tagify__dropdown__item">
|
||||
<span>${tagData.name}</span>
|
||||
</div>`;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (selectedProducts.length) {
|
||||
tagifyPostProducts.addTags(selectedProducts);
|
||||
}
|
||||
|
||||
|
||||
<?php if (get_permission_state('r-wiki', $GLOBALS['main_contact']['master_mandant_id'], $GLOBALS['main_contact']['id']) == 1) { ?>
|
||||
$("#saveAllBtn").on("click", function () {
|
||||
// Während des Speicherns blurren
|
||||
$("#tab-settings").addClass("blurred");
|
||||
|
||||
var postId = $("#post_id").val();
|
||||
var pdfInline = $("#pdfInlineCheckbox").prop("checked") ? 1 : 0;
|
||||
var selectedCat = tagifyCategories.value.map(tag => tag.value);
|
||||
var selectedMandants = tagifyPostMandants.value.map(tag => tag.value);
|
||||
var selectedDepartments = tagifyPostDepartments.value.map(tag => tag.value);
|
||||
var selectedRoles = tagifyPostRoles.value.map(tag => tag.value);
|
||||
var selectedFormId = $("#postFormSelect").val();
|
||||
var postBackgroundColor = $("#postBackgroundColor").val();
|
||||
var postTextColor = $("#postTextColor").val();
|
||||
|
||||
|
||||
$.when(
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "update_post_categories",
|
||||
post_id: postId,
|
||||
categories: JSON.stringify(selectedCat)
|
||||
}, "json"),
|
||||
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "update_post_mandants",
|
||||
post_id: postId,
|
||||
mandants: JSON.stringify(selectedMandants)
|
||||
}, "json"),
|
||||
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "update_post_form",
|
||||
post_id: postId,
|
||||
form_id: selectedFormId
|
||||
}, "json"),
|
||||
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "update_post_departments",
|
||||
post_id: postId,
|
||||
departments: JSON.stringify(selectedDepartments)
|
||||
}, "json"),
|
||||
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "update_post_roles",
|
||||
post_id: postId,
|
||||
roles: JSON.stringify(selectedRoles)
|
||||
}, "json"),
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "update_post_products",
|
||||
post_id: postId,
|
||||
products: JSON.stringify(tagifyPostProducts.value.map(tag => tag.value))
|
||||
}, "json"),
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "update_post_pdf_inline",
|
||||
post_id: postId,
|
||||
pdf_inline: pdfInline
|
||||
}, "json"),
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "update_post_colors",
|
||||
post_id: postId,
|
||||
background_color: postBackgroundColor,
|
||||
text_color: postTextColor
|
||||
}, "json")
|
||||
).done(function (categoriesResponse, mandantsResponse, formResponse, departmentsResponse, rolesResponse, productsResponse, pdfInlineResponse, postColorsResponse) {
|
||||
var catSuccess = categoriesResponse[0].success;
|
||||
var mandantsSuccess = mandantsResponse[0].success;
|
||||
var formSuccess = formResponse[0].success;
|
||||
var departmentsSuccess = departmentsResponse[0].success;
|
||||
var rolesSuccess = rolesResponse[0].success;
|
||||
var productsSuccess = productsResponse[0].success;
|
||||
var pdfInlineSuccess = pdfInlineResponse[0].success;
|
||||
var postColorsSuccess = postColorsResponse[0].success;
|
||||
|
||||
if (catSuccess && mandantsSuccess && formSuccess && departmentsSuccess && rolesSuccess && productsSuccess && pdfInlineSuccess && postColorsSuccess) {
|
||||
showMessage("Alle Daten erfolgreich gespeichert!", true);
|
||||
} else {
|
||||
var errorMsg = "Fehler beim Speichern:";
|
||||
if (!catSuccess) errorMsg += " Kategorien";
|
||||
if (!mandantsSuccess) errorMsg += " Mandanten";
|
||||
if (!formSuccess) errorMsg += " Formular";
|
||||
if (!departmentsSuccess) errorMsg += " Departments";
|
||||
if (!rolesSuccess) errorMsg += " Rollen";
|
||||
if (!productsSuccess) errorMsg += " Produkte";
|
||||
if (!pdfInlineSuccess) errorMsg += " PDF Inline Vorschau";
|
||||
if (!postColorsSuccess) errorMsg += " Farben";
|
||||
showMessage(errorMsg, false);
|
||||
}
|
||||
}).fail(function () {
|
||||
showMessage("Es ist ein Fehler beim Speichern aufgetreten!", false);
|
||||
}).always(function () {
|
||||
$("#tab-settings").removeClass("blurred");
|
||||
});
|
||||
});
|
||||
<?php } ?>
|
||||
|
||||
// Post löschen
|
||||
$("#deletePostBtn").on("click", function() {
|
||||
if (!confirm("<?= addslashes($translation->get("delete_post_confirm")) ?>")) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Ajax-Aufruf an Deinen neuen Case
|
||||
$.post("/module/knowledgecenter_update/Ajax/Ajax.php", {
|
||||
action: "delete_post",
|
||||
post_id: <?=$postId?>
|
||||
}, function(response) {
|
||||
if (response.success) {
|
||||
// Weiterleitung nach dem Löschen, z.B. zurück zur Übersicht
|
||||
window.location.href = "?action=Category";
|
||||
} else {
|
||||
showMessage("Fehler beim Löschen: " + (response.error || "Unbekannter Fehler"), false);
|
||||
}
|
||||
}, "json").fail(function() {
|
||||
showMessage("Serverfehler beim Löschen.", false);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user