1.20.03 revert page edit

This commit is contained in:
Fred Tempez 2025-01-30 16:36:36 +01:00
parent 547dea7350
commit ca313a2b18
2 changed files with 682 additions and 276 deletions

View File

@ -12,300 +12,726 @@
* @link http://zwiicms.fr/ * @link http://zwiicms.fr/
*/ */
// Cache jQuery objects for better performance /**
const $pageEditDelete = $("#pageEditDelete"); * Confirmation de suppression
const $pageEditModuleId = $("#pageEditModuleId"); */
const $pageEditModuleIdOld = $("#pageEditModuleIdOld"); $("#pageEditDelete").on("click", function() {
const $pageEditModuleIdOldText = $("#pageEditModuleIdOldText"); var _this = $(this);
const $pageEditGroup = $("#pageEditGroup"); var message_delete = "<?php echo helper::translate('Confirmer la suppression de la page'); ?>";
const $pageEditGroupProfil = $(".pageEditGroupProfil"); return core.confirm(message_delete, function() {
const $pageEditContentContainer = $("#pageEditContentContainer"); $(location).attr("href", _this.attr("href"));
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", function() {
$pageEditModuleId.on("change", protectModule); protectModule();
});
function protectModule() { function protectModule() {
const oldModule = $pageEditModuleIdOld.val(); var oldModule = $("#pageEditModuleIdOld").val();
const newModule = $pageEditModuleId.val(); var oldModuleText = $("#pageEditModuleIdOldText").val();
if (oldModule && oldModule !== newModule) { var newModule = $("#pageEditModuleId").val();
core.confirm($("#pageEditDataContainer").data("translate-module-delete") + " " + $pageEditModuleIdOldText.val(), () => { if ( oldModule !== "" &&
$(location).attr("href", $(this).attr("href")); oldModule !== newModule) {
}, () => { var _this = $(this);
$pageEditModuleId.val(oldModule); var message_delete = "<?php echo helper::translate('Confirmer la suppression des données du module'); ?>";
}); core.confirm(message_delete + " " + oldModuleText,
function() {
$(location).attr("href", _this.attr("href"));
return true;
},
function() {
$("#pageEditModuleId").val(oldModule);
return false;
}
);
} }
} }
// Paramètres par défaut au chargement
/**
* Paramètres par défaut au chargement
*/
$( document ).ready(function() { $( document ).ready(function() {
// Changement de profil // Changement de profil
$pageEditGroupProfil.hide(); $(".pageEditGroupProfil").hide();
$(`#pageEditGroupProfil${$pageEditGroup.val()}`).show(); $("#pageEditGroupProfil" + $("#pageEditGroup").val()).show();
$pageEditGroup.on("change", function() {
$pageEditGroupProfil.hide(); $("#pageEditGroup").on("change", function () {
$(`#pageEditGroupProfil${$(this).val()}`).show(); $(".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 /**
* Sélection des onglets
*/
var pageLayout = "<?php echo $this->getData(['user', $this->getUser('id'), 'view', 'page']);?>";
// Non défini, valeur par défaut
if (pageLayout == "") {
pageLayout = "content";
}
// Tout cacher
$("#pageEditContentContainer").hide();
$("#pageEditExtensionContainer").hide();
$("#pageEditPositionContainer").hide();
$("#pageEditLayoutContainer").hide();
$("#pageEditPermissionContainer").hide();
// Afficher la bonne tab
$("#pageEdit" + capitalizeFirstLetter(pageLayout) + "Container").show();
$("#pageEdit" + capitalizeFirstLetter(pageLayout) + "Button").addClass("activeButton");
/*
* Enleve le menu fixe en édition de page
*/
$("nav").removeAttr('id'); $("nav").removeAttr('id');
// Gestion des modules /**
if ($pageEditModuleId.val() === "") { * Bloque/Débloque le bouton de configuration au changement de module
$pageEditModuleConfig.addClass("disabled"); * Affiche ou masque la position du module selon le call_user_func
*/
if($("#pageEditModuleId").val() === "") {
$("#pageEditModuleConfig").addClass("disabled");
/*$("#pageEditContentContainer").hide();*/
}
else {
$("#pageEditModuleConfig").removeClass("disabled");
/*$("#pageEditContentContainer").hide();*/
$("#pageEditBlock option[value='bar']").remove();
}
/**
* Masquer et affiche la sélection de position du module
*/
if( $("#pageEditModuleId").val() === "redirection" ||
$("#pageEditModuleId").val() === "" ) {
$("#pageModulePositionWrapper").removeClass("disabled");
$("#pageModulePositionWrapper").slideUp();
}
else {
$("#pageModulePositionWrapper").addClass("disabled");
$("#pageModulePositionWrapper").slideDown();
}
/**
* Masquer et démasquer le contenu pour les modules code et redirection
*/
if( $("#pageEditModuleId").val() === "redirection") {
$("#pageEditContentWrapper").removeClass("disabled");
$("#pageEditContentWrapper").slideUp();
} else { } else {
$pageEditModuleConfig.removeClass("disabled"); $("#pageEditContentWrapper").addClass("disabled");
$pageEditBlock.find("option[value='bar']").remove(); $("#pageEditContentWrapper").slideDown();
}
/**
* Masquer et démasquer le masquage du titre pour le module redirection
*/
if( $("#pageEditModuleId").val() === "redirection" ) {
$("#pageEditHideTitleWrapper").removeClass("disabled");
$("#pageEditHideTitleWrapper").hide();
$("#pageEditBlockLayout").removeClass("disabled");
$("#pageEditBlockLayout").hide();
} else {
$("#pageEditHideTitleWrapper").addClass("disabled");
$("#pageEditHideTitleWrapper").show();
$("#pageEditBlockLayout").addClass("disabled");
$("#pageEditBlockLayout").show();
}
/**
* Masquer et démasquer la sélection des barres
*/
switch ($("#pageEditBlock").val()) {
case "bar":
case "12":
$("#pageEditBarLeftWrapper").removeClass("disabled");
$("#pageEditBarLeftWrapper").slideUp();
$("#pageEditBarRightWrapper").removeClass("disabled");
$("#pageEditBarRightWrapper").slideUp();
break;
case "3-9":
case "4-8":
$("#pageEditBarLeftWrapper").addClass("disabled");
$("#pageEditBarLeftWrapper").slideDown();
$("#pageEditBarRightWrapper").removeClass("disabled");
$("#pageEditBarRightWrapper").slideUp();
break;
case "9-3":
case "8-4":
$("#pageEditBarLeftWrapper").removeClass("disabled");
$("#pageEditBarLeftWrapper").slideUp();
$("#pageEditBarRightWrapper").addClass("disabled");
$("#pageEditBarRightWrapper").slideDown();
break;
case "3-6-3":
case "2-7-3":
case "3-7-2":
$("#pageEditBarLeftWrapper").addClass("disabled");
$("#pageEditBarLeftWrapper").slideDown();
$("#pageEditBarRightWrapper").addClass("disabled");
$("#pageEditBarRightWrapper").slideDown();
break;
};
if ($("#pageEditBlock").val() === "bar") {
$("#pageEditMenu").removeClass("disabled");
$("#pageEditMenu").hide();
$("#pageEditHideTitleWrapper").removeClass("disabled");
$("#pageEditHideTitleWrapper").slideUp();
$("#pageEditbreadCrumbWrapper").removeClass("disabled");
$("#pageEditbreadCrumbWrapper").slideUp();
$("#pageEditModuleIdWrapper").removeClass("disabled");
$("#pageEditModuleIdWrapper").slideUp();
$("#pageEditModuleConfig").removeClass("disabled");
$("#pageEditModuleConfig").slideUp();
$("#pageEditDisplayMenuWrapper").addClass("disabled");
$("#pageEditDisplayMenuWrapper").slideDown();
$("#pageTypeMenuWrapper").removeClass("disabled");
$("#pageTypeMenuWrapper").slideUp();
$("#pageEditSeoWrapper").removeClass("disabled");
$("#pageEditSeoWrapper").slideUp();
$("#pageEditAdvancedWrapper").removeClass("disabled");
$("#pageEditAdvancedWrapper").slideUp();
$(".navSelect").slideUp();
/*
$("#pageEditBlockLayout").removeClass("col6");
$("#pageEditBlockLayout").addClass("col12");
*/
} else {
$("#pageEditDisplayMenuWrapper").removeClass("disabled");
$("#pageEditDisplayMenuWrapper").slideUp();
} }
// Masquer et afficher les éléments en fonction du module sélectionné /**
toggleModuleElements($pageEditModuleId.val()); * Masquer ou afficher le chemin de fer
* Quand le titre est masqué
*/
if ($("input[name=pageEditHideTitle]").is(':checked') ||
$("#pageEditParentPageId").val() === "" ) {
// Masquer et afficher les éléments en fonction du bloc sélectionné $("#pageEditbreadCrumbWrapper").removeClass("disabled");
toggleBlockElements($pageEditBlock.val()); $("#pageEditbreadCrumbWrapper").slideUp();
} else {
if ($("#pageEditParentPageId").val() !== "") {
$("#pageEditbreadCrumbWrapper").addClass("disabled");
$("#pageEditbreadCrumbWrapper").slideDown();
}
}
// Masquer ou afficher le chemin de fer /**
toggleBreadCrumb($pageEditHideTitle.is(':checked'), $pageEditParentPageId.val()); * Masquer ou afficher la sélection de l'icône
*/
if ($("#pageTypeMenu").val() !== "text") {
$("#pageIconUrlWrapper").addClass("disabled");
$("#pageIconUrlWrapper").slideDown();
} else {
$("#pageIconUrlWrapper").removeClass("disabled");
$("#pageIconUrlWrapper").slideUp();
}
// Masquer ou afficher la sélection de l'icône /**
toggleIconUrl($pageTypeMenu.val()); * Cache les options de masquage dans les menus quand la page n'est pas affichée.
*/
if ($("#pageEditPosition").val() === "0" ) {
$("#pageEditHideMenuSideWrapper").removeClass("disabled");
$("#pageEditHideMenuSideWrapper").slideUp();
} else {
$("#pageEditHideMenuSideWrapper").addClass("disabled");
$("#pageEditHideMenuSideWrapper").slideDown();
}
// Masquer ou afficher les options de masquage dans les menus /**
toggleMenuOptions($pageEditPosition.val(), $pageEditParentPageId.val(), $pageEditDisable.is(':checked')); * Cache l'option de masquage des pages enfants
*/
if ($("#pageEditParentPageId").val() !== "") {
$("#pageEditHideMenuChildrenWrapper").removeClass("disabled");
$("#pageEditHideMenuChildrenWrapper").slideUp();
} else {
$("#pageEditHideMenuChildrenWrapper").addClass("disabled");
$("#pageEditHideMenuChildrenWrapper").slideDown();
}
// Liste des pages pour le menu accessoire /**
if ($pageEditExtraPosition.val() == 1) { * Cache le l'option "ne pas afficher les pages enfants dans le menu horizontal" lorsque la page est désactivée
*/
if ($("#pageEditDisable").is(':checked') ) {
$("#pageEditHideMenuChildrenWrapper").removeClass("disabled");
$("#pageEditHideMenuChildrenWrapper").slideUp();
} else {
$("#pageEditHideMenuChildrenWrapper").addClass("disabled");
$("#pageEditHideMenuChildrenWrapper").slideDown();
}
/**
* Liste des pages pour le menu accessoire
*/
if ($("#pageEditExtraPosition").val() == 1 ) {
var positionDOM = $("#pageEditPosition");
var positionInitial = <?php echo $this->getData(['page',$this->getUrl(2),"position"]); ?>;
buildPagesList(true); buildPagesList(true);
$pageEditPosition.val($("#pageEditDataContainer").data("position-initial")); $("#pageEditPosition").val(positionInitial);
} }
}); });
// Gestion des événements
// Gestion des évènements
//--------------------------------------------------------------------------------------
/**
* Transmet le bouton de l'onglet sélectionné avant la soumission
*/
$('#pageEditForm').on('submit', function () { $('#pageEditForm').on('submit', function () {
$('#containerSelected').val(pageLayout); $('#containerSelected').val(pageLayout);
}); });
$("#pageEditContentButton, #pageEditPositionButton, #pageEditExtensionButton, #pageEditLayoutButton, #pageEditPermissionButton").on("click", function() { /**
const tab = $(this).attr("id").replace("pageEdit", "").replace("Button", "").toLowerCase(); * Sélection de la page de configuration à afficher
$pageEditContentContainer.hide(); */
$pageEditExtensionContainer.hide(); $("#pageEditContentButton").on("click", function () {
$pageEditPositionContainer.hide(); pageLayout = "locale";
$pageEditLayoutContainer.hide(); $("#pageEditContentContainer").show();
$pageEditPermissionContainer.hide(); $("#pageEditExtensionContainer").hide();
$(`#pageEdit${capitalizeFirstLetter(tab)}Container`).show(); $("#pageEditPositionContainer").hide();
$(this).addClass("activeButton").siblings().removeClass("activeButton"); $("#pageEditLayoutContainer").hide();
$("#pageEditPermissionContainer").hide();
$("#pageEditContentButton").addClass("activeButton");
$("#pageEditExtensionButton").removeClass("activeButton");
$("#pageEditPositionButton").removeClass("activeButton");
$("#pageEditLayoutButton").removeClass("activeButton");
$("#pageEditPermissionButton").removeClass("activeButton");
});
$("#pageEditPositionButton").on("click", function () {
pageLayout = "position";
$("#pageEditContentContainer").hide();
$("#pageEditExtensionContainer").hide();
$("#pageEditPositionContainer").show();
$("#pageEditLayoutContainer").hide();
$("#pageEditPermissionContainer").hide();
$("#pageEditContentButton").removeClass("activeButton");
$("#pageEditExtensionButton").removeClass("activeButton");
$("#pageEditPositionButton").addClass("activeButton");
$("#pageEditLayoutButton").removeClass("activeButton");
$("#pageEditPermissionButton").removeClass("activeButton");
});
$("#pageEditExtensionButton").on("click", function () {
pageLayout = "extension";
$("#pageEditContentContainer").hide();
$("#pageEditExtensionContainer").show();
$("#pageEditPositionContainer").hide();
$("#pageEditLayoutContainer").hide();
$("#pageEditPermissionContainer").hide();
$("#pageEditContentButton").removeClass("activeButton");
$("#pageEditExtensionButton").addClass("activeButton");
$("#pageEditPositionButton").removeClass("activeButton");
$("#pageEditLayoutButton").removeClass("activeButton");
$("#pageEditPermissionButton").removeClass("activeButton");
});
$("#pageEditLayoutButton").on("click", function () {
pageLayout = "layout";
$("#pageEditContentContainer").hide();
$("#pageEditExtensionContainer").hide();
$("#pageEditPositionContainer").hide();
$("#pageEditLayoutContainer").show();
$("#pageEditPermissionContainer").hide();
$("#pageEditContentButton").removeClass("activeButton");
$("#pageEditExtensionButton").removeClass("activeButton");
$("#pageEditPositionButton").removeClass("activeButton");
$("#pageEditLayoutButton").addClass("activeButton");
$("#pageEditPermissionButton").removeClass("activeButton");
});
$("#pageEditPermissionButton").on("click", function () {
pageLayout = "permission";
$("#pageEditContentContainer").hide();
$("#pageEditExtensionContainer").hide();
$("#pageEditPositionContainer").hide();
$("#pageEditLayoutContainer").hide();
$("#pageEditPermissionContainer").show();
$("#pageEditContentButton").removeClass("activeButton");
$("#pageEditExtensionButton").removeClass("activeButton");
$("#pageEditPositionButton").removeClass("activeButton");
$("#pageEditLayoutButton").removeClass("activeButton");
$("#pageEditPermissionButton").addClass("activeButton");
}); });
$pageEditDisable.on("change", function() { /**
toggleMenuOptions($pageEditPosition.val(), $pageEditParentPageId.val(), $(this).is(':checked')); * Cache le l'option "ne pas afficher les pages enfants dans le menu horizontal" lorsque la page est désactivée
*/
var pageEditDisableDOM = $("#pageEditDisable");
pageEditDisableDOM.on("change", function() {
if ($(this).is(':checked') ) {
$("#pageEditHideMenuChildrenWrapper").removeClass("disabled");
$("#pageEditHideMenuChildrenWrapper").slideUp();
$("#pageEditHideMenuChildren").prop("checked", false);
} else {
$("#pageEditHideMenuChildrenWrapper").addClass("disabled");
$("#pageEditHideMenuChildrenWrapper").slideDown();
}
}); });
$pageEditPosition.on("change", function() {
toggleMenuOptions($(this).val(), $pageEditParentPageId.val(), $pageEditDisable.is(':checked')); /**
* Cache les options de masquage dans les menus quand la page n'est pas affichée.
*/
var pageEditPositionDOM = $("#pageEditPosition");
pageEditPositionDOM.on("change", function() {
if ($(this).val() === "0" ) {
$("#pageEditHideMenuSideWrapper").removeClass("disabled");
$("#pageEditHideMenuSideWrapper").slideUp();
} else {
$("#pageEditHideMenuSideWrapper").addClass("disabled");
$("#pageEditHideMenuSideWrapper").slideDown();
}
}); });
$pageEditModuleId.on("change", function() { /**
toggleModuleElements($(this).val()); * Bloque/Débloque le bouton de configuration au changement de module
* Affiche ou masque la position du module selon le call_user_func
*/
var pageEditModuleIdDOM = $("#pageEditModuleId");
pageEditModuleIdDOM.on("change", function() {
if($(this).val() === "") {
$("#pageEditModuleConfig").addClass("disabled");
$("#pageEditBlock").append('<option value="bar">Barre latérale</option>');
}
else {
$("#pageEditModuleConfig").removeClass("disabled");
$("#pageEditBlock option[value='bar']").remove();
}
}); });
$pageEditBlock.on("change", function() {
toggleBlockElements($(this).val());
/**
* Masquer et affiche la sélection de position du module
*
* */
var pageEditModuleIdDOM = $("#pageEditModuleId");
pageEditModuleIdDOM.on("change", function() {
if( $(this).val() === "redirection" ||
$(this).val() === "") {
$("#pageModulePositionWrapper").removeClass("disabled");
$("#pageModulePositionWrapper").slideUp();
}
else {
$("#pageModulePositionWrapper").addClass("disabled");
$("#pageModulePositionWrapper").slideDown();
}
}); });
$pageEditHideTitle.on("change", function() {
toggleBreadCrumb($(this).is(':checked'), $pageEditParentPageId.val());
/**
* Masquer et démasquer le contenu pour les modules code et redirection
*/
var pageEditModuleIdDOM = $("#pageEditModuleId");
pageEditModuleIdDOM.on("change", function() {
if( $(this).val() === "redirection") {
$("#pageEditContentWrapper").removeClass("disabled");
$("#pageEditContentWrapper").slideUp();
}
else {
$("#pageEditContentWrapper").addClass("disabled");
$("#pageEditContentWrapper").slideDown();
}
}); });
$pageTypeMenu.on("change", function() {
toggleIconUrl($(this).val());
/**
* Masquer et démasquer le masquage du titre pour le module redirection
*/
var pageEditModuleIdDOM = $("#pageEditModuleId");
pageEditModuleIdDOM.on("change", function() {
if( $(this).val() === "redirection") {
$("#pageEditHideTitleWrapper").removeClass("disabled");
$("#pageEditHideTitleWrapper").slideUp();
$("#pageEditBlockLayout").removeClass("disabled");
$("#pageEditBlockLayout").slideUp();
}
else {
$("#pageEditHideTitleWrapper").addClass("disabled");
$("#pageEditHideTitleWrapper").slideDown();
$("#pageEditBlockLayout").addClass("disabled");
$("#pageEditBlockLayout").slideDown();
}
}); });
$pageEditTitle.on("input", function() {
$pageEditShortTitle.val($(this).val()); /**
* Masquer et démasquer la sélection des barres
*/
var pageEditBlockDOM = $("#pageEditBlock");
pageEditBlockDOM.on("change", function() {
switch ($(this).val()) {
case "bar":
case "12":
$("#pageEditBarLeftWrapper").removeClass("disabled");
$("#pageEditBarLeftWrapper").slideUp();
$("#pageEditBarRightWrapper").removeClass("disabled");
$("#pageEditBarRightWrapper").slideUp();
break;
case "3-9":
case "4-8":
$("#pageEditBarLeftWrapper").addClass("disabled");
$("#pageEditBarLeftWrapper").slideDown();
$("#pageEditBarRightWrapper").removeClass("disabled");
$("#pageEditBarRightWrapper").slideUp();
break;
case "9-3":
case "8-4":
$("#pageEditBarLeftWrapper").removeClass("disabled");
$("#pageEditBarLeftWrapper").slideUp();
$("#pageEditBarRightWrapper").addClass("disabled");
$("#pageEditBarRightWrapper").slideDown();
break;
case "3-6-3":
case "2-7-3":
case "3-7-2":
$("#pageEditBarLeftWrapper").addClass("disabled");
$("#pageEditBarLeftWrapper").slideDown();
$("#pageEditBarRightWrapper").addClass("disabled");
$("#pageEditBarRightWrapper").slideDown();
break;
}
if ($(this).val() === "bar") {
$("#pageEditMenu").removeClass("disabled");
$("#pageEditMenu").hide();
$("#pageEditHideTitleWrapper").removeClass("disabled");
$("#pageEditHideTitleWrapper").slideUp();
$("#pageTypeMenuWrapper").removeClass("disabled");
$("#pageTypeMenuWrapper").slideUp();
$("#pageEditSeoWrapper").removeClass("disabled");
$("#pageEditSeoWrapper").slideUp();
$("#pageEditAdvancedWrapper").removeClass("disabled");
$("#pageEditAdvancedWrapper").slideUp();
$("#pageEditbreadCrumbWrapper").removeClass("disabled");
$("#pageEditbreadCrumbWrapper").slideUp();
$("#pageEditModuleIdWrapper").removeClass("disabled");
$("#pageEditModuleIdWrapper").slideUp();
$("#pageEditModuleConfig").removeClass("disabled");
$("#pageEditModuleConfig").slideUp();
$("#pageEditDisplayMenuWrapper").addClass("disabled");
$("#pageEditDisplayMenuWrapper").slideDown();
$(".navSelect").slideUp();
/*
$("#pageEditBlockLayout").removeClass("col6");
$("#pageEditBlockLayout").addClass("col12");
*/
} else {
$("#pageEditMenu").addClass("disabled");
$("#pageEditMenu").show();
$("#pageEditHideTitleWrapper").addClass("disabled");
$("#pageEditHideTitleWrapper").slideDown();
$("#pageTypeMenuWrapper").addClass("disabled");
$("#pageTypeMenuWrapper").slideDown();
$("#pageEditSeoWrapper").addClass("disabled");
$("#pageEditSeoWrapper").slideDown();
$("#pageEditAdvancedWrapper").addClass("disabled");
$("#pageEditAdvancedWrapper").slideDown();
$("#pageEditModuleIdWrapper").addClass("disabled");
$("#pageEditModuleIdWrapper").slideDown();
$("#pageEditModuleConfig").slideDown();
$("#pageEditDisplayMenuWrapper").removeClass("disabled");
$("#pageEditDisplayMenuWrapper").slideUp();
$(".navSelect").slideDown();
if ($("#pageEditParentPageId").val() !== "") {
$("#pageEditbreadCrumbWrapper").addClass("disabled");
$("#pageEditbreadCrumbWrapper").slideDown();
$("#pageEditExtraPositionWrapper").slideDown();
} else {
}
if ($("#pageEditModuleId").val() === "") {
$("#pageEditModuleConfig").addClass("disabled");
} else {
$("#pageEditModuleConfig").removeClass("disabled");
}
/*
$("#pageEditBlockLayout").removeClass("col12");
$("#pageEditBlockLayout").addClass("col6");
*/
}
}); });
$pageEditExtraPosition.on("change", function() {
buildPagesList($(this).val() == 1);
/**
* Masquer ou afficher le chemin de fer
* Quand le titre est masqué
*/
var pageEditHideTitleDOM = $("#pageEditHideTitle");
pageEditHideTitleDOM.on("change", function() {
if ($("input[name=pageEditHideTitle]").is(':checked')) {
$("#pageEditbreadCrumbWrapper").removeClass("disabled");
$("#pageEditbreadCrumbWrapper").slideUp();
} else {
if ($("#pageEditParentPageId").val() !== "") {
$("#pageEditbreadCrumbWrapper").addClass("disabled");
$("#pageEditbreadCrumbWrapper").slideDown();
}
}
}); });
$pageEditModuleConfig.on("click", function() {
/**
* Masquer ou afficher le chemin de fer
* Quand la page n'est pas mère et que le menu n'est pas masqué
*/
var pageEditParentPageIdDOM = $("#pageEditParentPageId");
pageEditParentPageIdDOM.on("change", function() {
if ($(this).val() === "" &&
!$('input[name=pageEditHideTitle]').is(':checked') ) {
$("#pageEditbreadCrumbWrapper").removeClass("disabled");
$("#pageEditbreadCrumbWrapper").slideUp();
$("#pageEditExtraPositionWrapper").slideUp();
} else {
$("#pageEditbreadCrumbWrapper").addClass("disabled");
$("#pageEditbreadCrumbWrapper").slideDown();
$("#pageEditExtraPositionWrapper").slideDown();
}
if ($(this).val() !== "") {
$("#pageEditHideMenuChildrenWrapper").removeClass("disabled");
$("#pageEditHideMenuChildrenWrapper").slideUp();
$("#pageEditExtraPositionWrapper").slideUp();
} else {
$("#pageEditHideMenuChildrenWrapper").addClass("disabled");
$("#pageEditHideMenuChildrenWrapper").slideDown();
$("#pageEditExtraPositionWrapper").slideDown();
}
});
/**
* Masquer ou afficher la sélection de l'icône
*/
var pageTypeMenuDOM = $("#pageTypeMenu");
pageTypeMenuDOM.on("change", function() {
if ($(this).val() !== "text") {
$("#pageIconUrlWrapper").addClass("disabled");
$("#pageIconUrlWrapper").slideDown();
} else {
$("#pageIconUrlWrapper").removeClass("disabled");
$("#pageIconUrlWrapper").slideUp();
}
});
/**
* Duplication du champ Title dans Short title
*/
$("#pageEditTitle").on("input", function() {
$("#pageEditShortTitle").val($(this).val());
});
/**
* Actualise la liste de pages lorsque le menu accessoire est sélectionné
*/
// Initialise à Début si le menu accessoire est sélectionné
$("#pageEditExtraPosition").on("change", function() {
if ($("#pageEditExtraPosition").val() == 1 ) {
buildPagesList(true);
} else {
buildPagesList(false);
//$("#pageEditParentPageId").trigger("change");
}
});
/**
* Soumission du formulaire pour éditer le module
*/
$("#pageEditModuleConfig").on("click", function() {
$("#pageEditModuleRedirect").val(1); $("#pageEditModuleRedirect").val(1);
$("#pageEditForm").trigger("submit"); $("#pageEditForm").trigger("submit");
}); });
$pageEditParentPageId.on("change", function() { /**
* Affiche les pages en fonction de la page parent dans le choix de la position
*/
$("#pageEditParentPageId").on("change", function() {
buildPagesList(false); buildPagesList(false);
}).trigger("change"); }).trigger("change");
/**
* Construit un select contenant la liste des pages du site.
*/
function buildPagesList(extraPosition) { function buildPagesList(extraPosition) {
// Récupération des données depuis les attributs data-* var hierarchy = <?php echo json_encode($this->getHierarchy()); ?>;
const hierarchy = $("#pageEditDataContainer").data("hierarchy"); var pages = <?php echo $module->getPageInfo(); ?>;
const pages = $("#pageEditDataContainer").data("pages"); var positionInitial = <?php echo $this->getData(['page',$this->getUrl(2),"position"]); ?>;
const positionInitial = $("#pageEditDataContainer").data("position-initial"); var extraPosition = $("#pageEditExtraPosition").val();
const currentPage = $("#pageEditDataContainer").data("current-page"); var positionDOM = $("#pageEditPosition");
var message_none = "<?php echo helper::translate('Ne pas afficher'); ?>";
const positionDOM = $pageEditPosition; var message_begin = "<?php echo helper::translate('Au début'); ?>";
const message_none = $("#pageEditDataContainer").data("translate-none"); var message_after = "<?php echo helper::translate('Après'); ?>";
const message_begin = $("#pageEditDataContainer").data("translate-begin");
const message_after = $("#pageEditDataContainer").data("translate-after");
positionDOM.empty().append( positionDOM.empty().append(
$("<option>").val(0).text(message_none), $("<option>").val(0).text(message_none),
$("<option>").val(1).text(message_begin) $("<option>").val(1).text(message_begin)
); );
var parentSelected = $("#pageEditParentPageId").val();
var positionSelected = 0;
var positionPrevious = 1;
const parentSelected = $pageEditParentPageId.val(); // Aucune page parent sélectionnée
let positionSelected = 0;
let positionPrevious = 1;
// --- Début de la logique originale ---
if(parentSelected === "") { if(parentSelected === "") {
for (const key in hierarchy) { // Liste des pages sans parents
for(var key in hierarchy) {
if(hierarchy.hasOwnProperty(key) ) { if(hierarchy.hasOwnProperty(key) ) {
if (key === currentPage) { // Sélectionne la page avant s'il s'agit de la page courante
if(key === "<?php echo $this->getUrl(2); ?>") {
positionSelected = positionPrevious; positionSelected = positionPrevious;
} else { }
// Sinon ajoute la page à la liste
else {
// Enregistre la position de cette page afin de la sélectionner si la prochaine page de la liste est la page courante
if (extraPosition == pages[key].extraPosition ) { if (extraPosition == pages[key].extraPosition ) {
positionPrevious++; positionPrevious++;
// Ajout à la liste
positionDOM.append( positionDOM.append(
$("<option>").val(positionPrevious).html(`${message_after} "${pages[key].title}"`) $("<option>").val(positionPrevious).html(message_after + " \"" + (pages[key].title) + "\"")
); );
} }
} }
} }
} }
if (positionInitial === 0) { if (positionInitial === 0) {
positionSelected = 0; positionSelected = 0;
} }
} else { }
for (let i = 0; i < hierarchy[parentSelected].length; i++) { // Une page parent est sélectionnée
if (hierarchy[parentSelected][i] === currentPage) { else {
// Liste des pages enfants de la page parent
for(var i = 0; i < hierarchy[parentSelected].length; i++) {
// Pour page courante sélectionne la page précédente (pas de - 1 à positionSelected à cause des options par défaut)
if(hierarchy[parentSelected][i] === "<?php echo $this->getUrl(2); ?>") {
positionSelected = positionPrevious; positionSelected = positionPrevious;
} else { }
// Sinon ajoute la page à la liste
else {
// Enregistre la position de cette page afin de la sélectionner si la prochaine page de la liste est la page courante
positionPrevious++; positionPrevious++;
// Ajout à la liste
positionDOM.append( positionDOM.append(
$("<option>").val(positionPrevious).html(`${message_after} "${pages[hierarchy[parentSelected][i]].title}"`) $("<option>").val(positionPrevious).html(message_after + " \"" + (pages[hierarchy[parentSelected][i]].title) + "\"")
); );
} }
} }
} }
// --- Fin de la logique originale --- // Sélectionne la bonne position
positionDOM.val(positionSelected); positionDOM.val(positionSelected);
} };
// Define function to capitalize the first letter of a string
function capitalizeFirstLetter(string) { function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1); return string.charAt(0).toUpperCase() + string.slice(1);
} }
function toggleModuleElements(moduleId) {
const isRedirection = moduleId === "redirection";
const isEmpty = moduleId === "";
$pageModulePositionWrapper.toggleClass("disabled", !isEmpty && !isRedirection).slideToggle(isEmpty || isRedirection);
$pageEditContentWrapper.toggleClass("disabled", !isRedirection).slideToggle(isRedirection);
$pageEditHideTitleWrapper.toggleClass("disabled", !isRedirection).slideToggle(isRedirection);
$pageEditBlockLayout.toggleClass("disabled", !isRedirection).slideToggle(isRedirection);
}
function toggleBlockElements(blockValue) {
const isBar = blockValue === "bar";
const isFullWidth = blockValue === "12";
const isLeftBar = blockValue === "3-9" || blockValue === "4-8";
const isRightBar = blockValue === "9-3" || blockValue === "8-4";
const isDoubleBar = blockValue === "3-6-3" || blockValue === "2-7-3" || blockValue === "3-7-2";
$pageEditBarLeftWrapper.toggleClass("disabled", !isBar && !isFullWidth && !isRightBar).slideToggle(isBar || isFullWidth || isRightBar);
$pageEditBarRightWrapper.toggleClass("disabled", !isBar && !isFullWidth && !isLeftBar).slideToggle(isBar || isFullWidth || isLeftBar);
if (isBar) {
$pageEditMenu.removeClass("disabled").hide();
$pageEditHideTitleWrapper.removeClass("disabled").slideUp();
$pageTypeMenuWrapper.removeClass("disabled").slideUp();
$pageEditSeoWrapper.removeClass("disabled").slideUp();
$pageEditAdvancedWrapper.removeClass("disabled").slideUp();
$pageEditbreadCrumbWrapper.removeClass("disabled").slideUp();
$pageEditModuleIdWrapper.removeClass("disabled").slideUp();
$pageEditModuleConfig.removeClass("disabled").slideUp();
$pageEditDisplayMenuWrapper.addClass("disabled").slideDown();
$(".navSelect").slideUp();
} else {
$pageEditMenu.addClass("disabled").show();
$pageEditHideTitleWrapper.addClass("disabled").slideDown();
$pageTypeMenuWrapper.addClass("disabled").slideDown();
$pageEditSeoWrapper.addClass("disabled").slideDown();
$pageEditAdvancedWrapper.addClass("disabled").slideDown();
$pageEditModuleIdWrapper.addClass("disabled").slideDown();
$pageEditModuleConfig.slideDown();
$pageEditDisplayMenuWrapper.removeClass("disabled").slideUp();
$(".navSelect").slideDown();
if ($pageEditParentPageId.val() !== "") {
$pageEditbreadCrumbWrapper.addClass("disabled").slideDown();
$pageEditExtraPositionWrapper.slideDown();
}
if ($pageEditModuleId.val() === "") {
$pageEditModuleConfig.addClass("disabled");
} else {
$pageEditModuleConfig.removeClass("disabled");
}
}
}
function toggleBreadCrumb(isHideTitleChecked, parentPageId) {
$pageEditbreadCrumbWrapper.toggleClass("disabled", !isHideTitleChecked && parentPageId !== "").slideToggle(isHideTitleChecked || parentPageId === "");
}
function toggleIconUrl(menuType) {
$pageIconUrlWrapper.toggleClass("disabled", menuType !== "text").slideToggle(menuType !== "text");
}
function toggleMenuOptions(position, parentPageId, isDisableChecked) {
$pageEditHideMenuSideWrapper.toggleClass("disabled", position !== "0").slideToggle(position === "0");
$pageEditHideMenuChildrenWrapper.toggleClass("disabled", parentPageId === "" && !isDisableChecked).slideToggle(parentPageId !== "" || isDisableChecked);
}

View File

@ -35,50 +35,30 @@
<?php echo template::button('pageEditContentButton', [ <?php echo template::button('pageEditContentButton', [
'value' => 'Contenu', 'value' => 'Contenu',
'class' => 'buttonTab', 'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'page/register/content/' . $this->geturl(2)
]); ?> ]); ?>
<?php echo template::button('pageEditPositionButton', [ <?php echo template::button('pageEditPositionButton', [
'value' => 'Menu', 'value' => 'Menu',
'class' => 'buttonTab', 'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'page/register/position/' . $this->geturl(2)
]); ?> ]); ?>
<?php echo template::button('pageEditExtensionButton', [ <?php echo template::button('pageEditExtensionButton', [
'value' => 'Extension', 'value' => 'Extension',
'class' => 'buttonTab', 'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'page/register/extension/' . $this->geturl(2)
]); ?> ]); ?>
<?php echo template::button('pageEditLayoutButton', [ <?php echo template::button('pageEditLayoutButton', [
'value' => 'Mise en page', 'value' => 'Mise en page',
'class' => 'buttonTab', 'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'page/register/layout/' . $this->geturl(2)
]); ?> ]); ?>
<?php echo template::button('pageEditPermissionButton', [ <?php echo template::button('pageEditPermissionButton', [
'value' => 'Permission', 'value' => 'Permission',
'class' => 'buttonTab', 'class' => 'buttonTab',
//'href' => helper::baseUrl() . 'page/register/permission/' . $this->geturl(2)
]); ?> ]); ?>
</div> </div>
<?php
// Données dynamiques à insérer dans le JavaScript
$data = [
'translate-delete' => helper::translate('Confirmer la suppression de la page'),
'translate-module-delete' => helper::translate('Confirmer la suppression des données du module'),
'translate-none' => helper::translate('Ne pas afficher'),
'translate-begin' => helper::translate('Au début'),
'translate-after' => helper::translate('Après'),
'hierarchy' => json_encode($this->getHierarchy()),
'pages' => $module->getPageInfo(),
'position-initial' => $this->getData(['page', $this->getUrl(2), 'position']),
'current-page' => $this->getUrl(2),
'page-layout' => $this->getData(['user', $this->getUser('id'), 'view', 'page'])
];
// Génération du contenu JavaScript
echo '<div id="pageEditDataContainer"';
foreach ($data as $key => $value) {
// Convertit explicitement les valeurs null en chaîne vide
$sanitizedValue = $value ?? '';
echo ' data-' . htmlspecialchars($key) . '="' . htmlspecialchars((string)$sanitizedValue) . '"';
}
echo '></div>';
?>
<!-- Champ caché pour transmettre l'onglet--> <!-- Champ caché pour transmettre l'onglet-->
<?php echo template::hidden('containerSelected'); ?> <?php echo template::hidden('containerSelected'); ?>
@ -122,7 +102,7 @@ echo '></div>';
</div> </div>
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<?php echo template::textarea('pageEditWysiwyg', [ <?php echo template::textarea('pageEditContent', [
'class' => 'editorWysiwyg', 'class' => 'editorWysiwyg',
'value' => $this->getPage($this->getUrl(2), self::$siteContent) 'value' => $this->getPage($this->getUrl(2), self::$siteContent)
]); ?> ]); ?>