Browse Source

feat(ux): form d'ajout d'album : rester sur l'onglet ouvert après rechargement

master
tcharlss 4 months ago
parent
commit
933116a1c7
  1. 1
      formulaires/ajouter_album.html
  2. 7
      formulaires/ajouter_album.php
  3. 2
      formulaires/inc-ajouter_album_choisir.html
  4. 2
      formulaires/inc-ajouter_album_menu.html
  5. 21
      javascript/albums_edit.js

1
formulaires/ajouter_album.html

@ -43,6 +43,7 @@
[(#REM) Menu ]
[(#ENV{associer_objet}|oui)
<INCLURE{fond=formulaires/inc-ajouter_album_menu,
onglet=#ENV{onglet},
_id_creer=#GET{id_creer},
_id_choisir=#GET{id_choisir},
env}

7
formulaires/ajouter_album.php

@ -104,7 +104,10 @@ function formulaires_ajouter_album_charger_dist($objet = '', $id_objet = 0, $red
$valeurs = array_merge(
$valeurs,
$valeurs_joindre_document,
['_id_album_temp' => $id_album_temp]
[
'_id_album_temp' => $id_album_temp,
'onglet' => '',
],
);
}
@ -145,6 +148,7 @@ function formulaires_ajouter_album_verifier_dist($objet = '', $id_objet = 0, $re
switch ($methode) {
// Créer un nouvel album.
case 'creer':
set_request('onglet', 'creer');
// Erreurs du formulaire d'édition d'un album.
$verifier_editer_album = charger_fonction('verifier', 'formulaires/editer_album');
if (
@ -184,6 +188,7 @@ function formulaires_ajouter_album_verifier_dist($objet = '', $id_objet = 0, $re
// Associer des albums existants.
case 'choisir':
set_request('onglet', 'choisir');
if (!_request('ids_albums_associer')) {
$erreurs['ids_albums_associer'] = _T('info_obligatoire');
}

2
formulaires/inc-ajouter_album_choisir.html

@ -9,8 +9,6 @@
id="#ENV{_id_choisir}"
aria-labelledby="#ENV{_id_choisir}-menu"
data-tab="choisir"
hidden=""
style="display: none;"
>
<div class="editer-groupe">

2
formulaires/inc-ajouter_album_menu.html

@ -17,7 +17,7 @@
<ul>
<BOUCLE_onglets(DATA) {source table, #LISTE{creer,choisir}}>
<li>
#SET{expose,#COMPTEUR_BOUCLE|=={1}}
#SET{expose,#ENV{onglet}|?{#ENV{onglet}|=={#VALEUR},#COMPTEUR_BOUCLE|=={1}}}
[(#SELF|ancre_url{#ENV{_id_#VALEUR}}
|lien_ou_expose{
#VAL{album:onglet_ajouter_#VALEUR}|_T{},

21
javascript/albums_edit.js

@ -21,19 +21,24 @@ function albums_edit() {
$btn_choisir = $form.find("[name=choisir_album]");
// Gestion des onglets
$menu_items.click(function( event ) {
var
$item = $(this),
$panneau_cible = $("#" + $item.attr("aria-controls"));
event.preventDefault();
function toggle_onglet($item, animation = true) {
var $panneau_cible = $("#" + $item.attr("aria-controls"));
var vitesse = (animation ? 200 : 0);
// Toggle du menu
$item.addClass("on").attr("aria-selected", "true").attr("tabindex", 0);
$menu_items.not($item).removeClass("on").attr("aria-selected", "false").attr("tabindex", -1);
$menu_items.not($item).removeClass("on").attr("aria-selected", "false").attr('hidden', true).attr("tabindex", -1);
// Afficher/masquer les panneaux
$panneaux.not($panneau_cible).fadeOut(200, function(){
$panneau_cible.fadeIn(200).removeAttr("hidden");
$panneaux.not($panneau_cible).fadeOut(vitesse, function () {
$panneau_cible.fadeIn(vitesse).removeAttr("hidden");
$panneau_cible.find("input").eq(0).focus();
}).attr("hidden", "");
}
// Au démarrage
toggle_onglet($menu_items.filter('[aria-selected=true]'), false);
// Au clic
$menu_items.click(function( event ) {
event.preventDefault();
toggle_onglet($(this));
return false;
});

Loading…
Cancel
Save