/** * This file is part of Zwii. * * For full copyright and license information, please see the LICENSE * file that was distributed with this source code. * * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ // Cache jQuery objects for better performance const $pageEditDelete = $("#pageEditDelete"); const $pageEditModuleId = $("#pageEditModuleId"); const $pageEditModuleIdOld = $("#pageEditModuleIdOld"); const $pageEditModuleIdOldText = $("#pageEditModuleIdOldText"); const $pageEditGroup = $("#pageEditGroup"); const $pageEditGroupProfil = $(".pageEditGroupProfil"); const $pageEditContentContainer = $("#pageEditContentContainer"); const $pageEditExtensionContainer = $("#pageEditExtensionContainer"); const $pageEditPositionContainer = $("#pageEditPositionContainer"); const $pageEditLayoutContainer = $("#pageEditLayoutContainer"); const $pageEditPermissionContainer = $("#pageEditPermissionContainer"); const $pageEditModuleConfig = $("#pageEditModuleConfig"); const $pageModulePositionWrapper = $("#pageModulePositionWrapper"); const $pageEditContentWrapper = $("#pageEditContentWrapper"); const $pageEditHideTitleWrapper = $("#pageEditHideTitleWrapper"); const $pageEditBlockLayout = $("#pageEditBlockLayout"); const $pageEditBlock = $("#pageEditBlock"); const $pageEditBarLeftWrapper = $("#pageEditBarLeftWrapper"); const $pageEditBarRightWrapper = $("#pageEditBarRightWrapper"); const $pageEditMenu = $("#pageEditMenu"); const $pageEditbreadCrumbWrapper = $("#pageEditbreadCrumbWrapper"); const $pageEditModuleIdWrapper = $("#pageEditModuleIdWrapper"); const $pageEditDisplayMenuWrapper = $("#pageEditDisplayMenuWrapper"); const $pageTypeMenuWrapper = $("#pageTypeMenuWrapper"); const $pageEditSeoWrapper = $("#pageEditSeoWrapper"); const $pageEditAdvancedWrapper = $("#pageEditAdvancedWrapper"); const $pageEditHideMenuSideWrapper = $("#pageEditHideMenuSideWrapper"); const $pageEditHideMenuChildrenWrapper = $("#pageEditHideMenuChildrenWrapper"); const $pageEditParentPageId = $("#pageEditParentPageId"); const $pageEditDisable = $("#pageEditDisable"); const $pageEditExtraPosition = $("#pageEditExtraPosition"); const $pageEditPosition = $("#pageEditPosition"); const $pageEditHideTitle = $("#pageEditHideTitle"); const $pageTypeMenu = $("#pageTypeMenu"); const $pageIconUrlWrapper = $("#pageIconUrlWrapper"); const $pageEditTitle = $("#pageEditTitle"); const $pageEditShortTitle = $("#pageEditShortTitle"); // Confirmation de suppression $pageEditDelete.on("click", function() { return core.confirm($("#pageEditDataContainer").data("translate-delete"), () => { $(location).attr("href", $(this).attr("href")); }); }); // Gestion du changement de module $pageEditModuleId.on("change", protectModule); function protectModule() { const oldModule = $pageEditModuleIdOld.val(); const newModule = $pageEditModuleId.val(); if (oldModule && oldModule !== newModule) { core.confirm($("#pageEditDataContainer").data("translate-module-delete") + " " + $pageEditModuleIdOldText.val(), () => { $(location).attr("href", $(this).attr("href")); }, () => { $pageEditModuleId.val(oldModule); }); } } // Paramètres par défaut au chargement $(document).ready(function() { // Changement de profil $pageEditGroupProfil.hide(); $(`#pageEditGroupProfil${$pageEditGroup.val()}`).show(); $pageEditGroup.on("change", function() { $pageEditGroupProfil.hide(); $(`#pageEditGroupProfil${$(this).val()}`).show(); }); // Sélection des onglets const pageLayout = $("#pageEditDataContainer").data("page-layout") || "content"; $pageEditContentContainer.hide(); $pageEditExtensionContainer.hide(); $pageEditPositionContainer.hide(); $pageEditLayoutContainer.hide(); $pageEditPermissionContainer.hide(); $(`#pageEdit${capitalizeFirstLetter(pageLayout)}Container`).show(); $(`#pageEdit${capitalizeFirstLetter(pageLayout)}Button`).addClass("activeButton"); // Enleve le menu fixe en édition de page $("nav").removeAttr('id'); // Gestion des modules if ($pageEditModuleId.val() === "") { $pageEditModuleConfig.addClass("disabled"); } else { $pageEditModuleConfig.removeClass("disabled"); $pageEditBlock.find("option[value='bar']").remove(); } // Masquer et afficher les éléments en fonction du module sélectionné toggleModuleElements($pageEditModuleId.val()); // Masquer et afficher les éléments en fonction du bloc sélectionné toggleBlockElements($pageEditBlock.val()); // Masquer ou afficher le chemin de fer toggleBreadCrumb($pageEditHideTitle.is(':checked'), $pageEditParentPageId.val()); // Masquer ou afficher la sélection de l'icône toggleIconUrl($pageTypeMenu.val()); // Masquer ou afficher les options de masquage dans les menus toggleMenuOptions($pageEditPosition.val(), $pageEditParentPageId.val(), $pageEditDisable.is(':checked')); // Liste des pages pour le menu accessoire if ($pageEditExtraPosition.val() == 1) { buildPagesList(true); $pageEditPosition.val($("#pageEditDataContainer").data("position-initial")); } }); // Gestion des événements $('#pageEditForm').on('submit', function() { $('#containerSelected').val(pageLayout); }); $("#pageEditContentButton, #pageEditPositionButton, #pageEditExtensionButton, #pageEditLayoutButton, #pageEditPermissionButton").on("click", function() { const tab = $(this).attr("id").replace("pageEdit", "").replace("Button", "").toLowerCase(); $pageEditContentContainer.hide(); $pageEditExtensionContainer.hide(); $pageEditPositionContainer.hide(); $pageEditLayoutContainer.hide(); $pageEditPermissionContainer.hide(); $(`#pageEdit${capitalizeFirstLetter(tab)}Container`).show(); $(this).addClass("activeButton").siblings().removeClass("activeButton"); }); $pageEditDisable.on("change", function() { toggleMenuOptions($pageEditPosition.val(), $pageEditParentPageId.val(), $(this).is(':checked')); }); $pageEditPosition.on("change", function() { toggleMenuOptions($(this).val(), $pageEditParentPageId.val(), $pageEditDisable.is(':checked')); }); $pageEditModuleId.on("change", function() { toggleModuleElements($(this).val()); }); $pageEditBlock.on("change", function() { toggleBlockElements($(this).val()); }); $pageEditHideTitle.on("change", function() { toggleBreadCrumb($(this).is(':checked'), $pageEditParentPageId.val()); }); $pageTypeMenu.on("change", function() { toggleIconUrl($(this).val()); }); $pageEditTitle.on("input", function() { $pageEditShortTitle.val($(this).val()); }); $pageEditExtraPosition.on("change", function() { buildPagesList($(this).val() == 1); }); $pageEditModuleConfig.on("click", function() { $("#pageEditModuleRedirect").val(1); $("#pageEditForm").trigger("submit"); }); $pageEditParentPageId.on("change", function() { buildPagesList(false); }).trigger("change"); function buildPagesList(extraPosition) { const hierarchy = JSON.parse($("#pageEditDataContainer").data("hierarchy")); const pages = JSON.parse($("#pageEditDataContainer").data("pages")); const positionInitial = $("#pageEditDataContainer").data("position-initial"); const currentPage = $("#pageEditDataContainer").data("current-page"); const positionDOM = $pageEditPosition; const messageNone = $("#pageEditDataContainer").data("translate-none"); const messageBegin = $("#pageEditDataContainer").data("translate-begin"); const messageAfter = $("#pageEditDataContainer").data("translate-after"); positionDOM.empty().append( $("