1 <div class=
"formulaire_spip formulaire_editer formulaire_#ENV{form}[ (#ENV{formulaire_modifie}|oui) modifie]">
2 [
<p class=
"reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})
</p>]
3 <p id=
"message_attention" class=
"message_reinitialiser reponse_formulaire reponse_formulaire_ok">#ENV*{_message_attention}
</p>
4 [
<p class=
"reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})
</p>]
6 <BOUCLE_editable(CONDITION){si #ENV{editable}|oui}
>
7 <form method='post' action='#ENV{action}' enctype='multipart/form-data'
><div>
8 [(#REM) declarer les hidden qui declencheront le service du formulaire
9 parametre : url d'action ]
10 #ACTION_FORMULAIRE{#ENV{action}}
11 <input type=
"submit" class=
"submit noscroll invisible" name=
"enregistrer" value=
"<:bouton_enregistrer:>" />
13 <[(#DIV|sinon{ul})]
class=
"editer-groupe" id=
"deplacable">
15 <[(#DIV|sinon{li})]
id=
"reinitialiser" class=
"actions_formulaire">
16 <button type=
"submit" class=
"submit" name=
"reinitialiser" value=
"oui" onclick=
"return confirm('<:saisies:construire_reinitialiser_confirmer:>')">
17 <img src=
"#CHEMIN{images/formulaire-reinitialiser-24.png}" alt=
"" />
18 <:saisies:construire_reinitialiser:>
22 [(#REM)
<!-- les choix de saisies -->]
23 <BOUCLE_contenu(DATA){source tableau, #ENV{_contenu}}
>
24 [(#VAL{saisie}|array_key_exists{#VALEUR}|oui)
25 [(#VALEUR**|construire_formulaire_generer_saisie_configurable{#ENV**|unserialize})]
28 <[(#DIV|sinon{li})]
class=
"aucun"><em class=
"attention"><:saisies:construire_aucun_champs:></em></[(#DIV|sinon{li})]
>
31 <B_saisies_disponibles>
32 <[(#DIV|sinon{li})]
class=
"editer haut saisies_disponibles" id=
"attrapable">
33 <label><:saisies:construire_ajouter_champ:></label>
34 <BOUCLE_saisies_disponibles(DATA){source tableau, #ENV{_saisies_disponibles}}{par titre}
>
35 <button type=
"submit" name=
"ajouter_saisie" value=
"#CLE" class=
"submit noscroll ajouter_saisie"[
title=
"(#DESCRIPTION)"] [
style=
"background-image:url((#ICONE|sinon{#CHEMIN{images/formulaire-saisie-defaut.png}}))"]
>
38 </BOUCLE_saisies_disponibles>
40 </B_saisies_disponibles>
42 <B_saisies_groupes_disponibles>
43 <[(#DIV|sinon{li})]
class=
"editer haut saisies_groupes_disponibles" id=
"attrapable_bis">
44 <label><:saisies:construire_ajouter_groupe:></label>
45 <BOUCLE_saisies_groupes_disponibles(DATA){source tableau, #ENV{_saisies_groupes_disponibles}}{par titre}
>
46 <button type=
"submit" name=
"ajouter_groupe_saisie" value=
"#CLE" class=
"submit noscroll ajouter_saisie"[
title=
"(#DESCRIPTION)"] [
style=
"background-image:url((#ICONE|sinon{#CHEMIN{images/formulaire-saisie-defaut.png}}))"]
>
49 </BOUCLE_saisies_groupes_disponibles>
51 </B_saisies_groupes_disponibles>
56 [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
59 <span class='image_loading'
></span>
63 .message_reinitialiser,#reinitialiser {display: none}
64 .modifie .message_reinitialiser,.modifie #reinitialiser {display: block}
66 <script type=
"text/javascript">
69 function formulaire_configurer_onglets() {
70 var $formulaire_configurer = $('.formulaire_configurer');
71 var $onglets = $('
<ul class=
"formulaire_configurer-onglets"></ul>');
72 var $contenus = $formulaire_configurer.find('
> .editer-groupe
> .fieldset');
74 // On ajoute le conteneur des onglets
75 $formulaire_configurer.prepend($onglets);
77 // On parcourt les contenus pour générer les onglets
78 $contenus.each(function(i){
79 // On ajoute un identifiant et une classe
81 .attr('id', 'formulaire_configurer-contenu-'+i)
82 .addClass('formulaire_configurer-contenu');
83 // On récupère le titre (en le cachant au passage)
84 var titre = $(this).find('[(#VAL{
"{{{ titre }}}"}|propre|replace{
"\n",
""}|replace{
"<(\S*).*>",$
1,i})]').eq(
0).hide().text();
87 var $onglet = $('
<li><a href=
"#formulaire_configurer-contenu-'+i+'">'+titre+'
</a></li>');
103 // On active le premier onglet au démarrage
105 $onglet.addClass('actif');
108 // S'il y a des erreurs dans cette partie du contenu, on met une classe
"erreurs" à l'onglet aussi
109 if ($(this).find('.editer.erreur').length
> 0) {
110 $onglet.addClass('erreur');
113 // On ajoute l'onglet
114 $onglets.append($onglet);
121 /* enlever les required */
122 $('.formulaire_#FORM .editer.obligatoire').find('input, textarea, select').each(function(){
123 if ($(this).prop('required')) {
124 $(this).prop('required', false);
128 $('.formulaire_#FORM .configurable')
136 .parents('li.configurable:not(.en_configuration)')
140 if (!$(this).is('.en_configuration'))
142 .removeClass('hover')
146 .parents('.configurable').eq('
0')
150 .filter(':not(.en_configuration)')
156 // On lance la création des onglets
157 formulaire_configurer_onglets();
159 // Gérer la liste des vérifications
160 $('.liste_verifications').each(function(){
161 var $options = $(this).siblings('.options_verifier').hide();
162 var $select = $(this).find('select');
166 var montrer = $(this).val() ? $(this).val() : 'soigfeg';
167 $options.hide().filter('.'+montrer).show();
172 // On déplie toujours les fieldsets plés par défaut
173 $('.fieldset.plie').each(function(){
176 .find('
> fieldset
> .editer-groupe').show();
179 [(#ENV{erreurs}|non|et{#ENV{_jquery_ui_all}|ou{#ENV{_chemin_ui}}})
180 var saisies_sortable = function() {
181 $(
"#deplacable, #deplacable .editer-groupe" ).sortable({
183 containment: '#deplacable',
184 connectWith:
"#deplacable, #deplacable .editer-groupe",
185 placeholder:
"ui-state-highlight",
186 handle: '
>.actions .deplacer_saisie',
187 start: function(event, ui) {
188 $('.ui-state-highlight')
189 .css('height', ui.item.css('height'))
190 .css('height', '+=
20px');
192 update: function(event, ui) {
193 id = ui.item.data('id');
194 ou = ui.item.next().data('id');
197 // sinon dans le parent
198 ou = ui.item.closest('.fieldset').data('id');
200 ou = '\[' + ou + '\]';
205 session: '#ENV{_identifiant_session}',
206 action: 'deplacer_saisie',
210 //$('input.vide').submit();
211 $('.formulaire_#ENV{form}').addClass('modifie').trigger('modifsaisies');
216 if (!$.fn.sortable) {
218 $.getScript(
"(#ENV{_jquery_ui_all})", function(){
220 [(#ENV{_chemin_ui}|oui)
221 $.getScript(
"#CHEMIN{#ENV{_chemin_ui}core.js}", function(){
222 $.getScript(
"#CHEMIN{#ENV{_chemin_ui}widget.js}", function(){
223 $.getScript(
"#CHEMIN{#ENV{_chemin_ui}mouse.js}", function(){
224 $.getScript(
"#CHEMIN{#ENV{_chemin_ui}sortable.js}", function(){
230 [(#ENV{_chemin_ui}|oui)