-[(#ENV{erreurs}|table_valeur{positionner}|oui)
- <a name="ajax_ancre" href="[(#ENV{erreurs}|table_valeur{positionner})]"></a>
-]
-<div class="formulaire_spip formulaire_editer formulaire_#ENV{form}">
+<div class="formulaire_spip formulaire_editer formulaire_#ENV{form}[ (#ENV{formulaire_modifie}|oui) modifie]">
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
- <p id="message_attention" class="reponse_formulaire reponse_formulaire_ok[ (#ENV{formulaire_modifie}|non) invisible]">#ENV*{_message_attention}</p>
+ <p id="message_attention" class="message_reinitialiser reponse_formulaire reponse_formulaire_ok">#ENV*{_message_attention}</p>
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<BOUCLE_editable(CONDITION){si #ENV{editable}|oui}>
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
- <input style="display:none;" type="submit" class="submit" name="enregistrer" value="<:bouton_enregistrer:>" />
+ <input type="submit" class="submit noscroll invisible" name="enregistrer" value="<:bouton_enregistrer:>" />
- <ul id="deplacable">
+ <[(#DIV|sinon{ul})] class="editer-groupe" id="deplacable">
- <li id="reinitialiser" class="actions_formulaire[ (#ENV{formulaire_modifie}|non) invisible]">
+ <[(#DIV|sinon{li})] id="reinitialiser" class="actions_formulaire">
<button type="submit" class="submit" name="reinitialiser" value="oui" onclick="return confirm('<:saisies:construire_reinitialiser_confirmer:>')">
<img src="#CHEMIN{images/formulaire-reinitialiser-24.png}" alt="" />
<:saisies:construire_reinitialiser:>
</button>
- </li>
+ </[(#DIV|sinon{li})]>
- <BOUCLE_contenu(POUR){tableau #ENV{_contenu}}>
+ [(#REM)<!-- les choix de saisies -->]
+ <BOUCLE_contenu(DATA){source tableau, #ENV{_contenu}}>
[(#VAL{saisie}|array_key_exists{#VALEUR}|oui)
- [(#VALEUR**|formidable_generer_saisie_configurable{#ENV**|unserialize})]
+ [(#VALEUR**|construire_formulaire_generer_saisie_configurable{#ENV**|unserialize})]
]
</BOUCLE_contenu>
- <li class="aucun"><em class="attention"><:saisies:construire_aucun_champs:></em></li>
+ <[(#DIV|sinon{li})] class="aucun"><em class="attention"><:saisies:construire_aucun_champs:></em></[(#DIV|sinon{li})]>
<//B_contenu>
<B_saisies_disponibles>
- <li class="editer haut saisies_disponibles" id="attrapable">
+ <[(#DIV|sinon{li})] class="editer haut saisies_disponibles" id="attrapable">
<label><:saisies:construire_ajouter_champ:></label>
- <BOUCLE_saisies_disponibles(POUR){tableau #ENV{_saisies_disponibles}}>
- <button type="submit" name="ajouter_saisie" value="#CLE" class="submit ajouter_saisie"[ title="(#VALEUR|table_valeur{description})"] [style="background-image:url((#VALEUR|table_valeur{icone}|sinon{#CHEMIN{images/formulaire-saisie-defaut.png}}))"]>
- <span>[(#VALEUR|table_valeur{titre})]</span>
+ <BOUCLE_saisies_disponibles(DATA){source tableau, #ENV{_saisies_disponibles}}{par titre}>
+ <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}}))"]>
+ <span>#TITRE</span>
</button>
</BOUCLE_saisies_disponibles>
- </li>
+ </[(#DIV|sinon{li})]>
</B_saisies_disponibles>
- </ul>
+
+ <B_saisies_groupes_disponibles>
+ <[(#DIV|sinon{li})] class="editer haut saisies_groupes_disponibles" id="attrapable_bis">
+ <label><:saisies:construire_ajouter_groupe:></label>
+ <BOUCLE_saisies_groupes_disponibles(DATA){source tableau, #ENV{_saisies_groupes_disponibles}}{par titre}>
+ <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}}))"]>
+ <span>#TITRE</span>
+ </button>
+ </BOUCLE_saisies_groupes_disponibles>
+ </[(#DIV|sinon{li})]>
+ </B_saisies_groupes_disponibles>
+
+ </[(#DIV|sinon{ul})]>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<span class='image_loading'></span>
</div></form>
+ <style>
+ .message_reinitialiser,#reinitialiser {display: none}
+ .modifie .message_reinitialiser,.modifie #reinitialiser {display: block}
+ </style>
<script type="text/javascript">
- jQuery(function(){
- jQuery('.formulaire_construire_formulaire li.configurable')
- .hover(
- function(){
- jQuery(this)
- .addClass('hover')
+ (function($){
+
+ function formulaire_configurer_onglets() {
+ var $formulaire_configurer = $('.formulaire_configurer');
+ var $onglets = $('<ul class="formulaire_configurer-onglets"></ul>');
+ var $contenus = $formulaire_configurer.find('> .editer-groupe > .fieldset');
+
+ // On ajoute le conteneur des onglets
+ $formulaire_configurer.prepend($onglets);
+
+ // On parcourt les contenus pour générer les onglets
+ $contenus.each(function(i){
+ // On ajoute un identifiant et une classe
+ $(this)
+ .attr('id', 'formulaire_configurer-contenu-'+i)
+ .addClass('formulaire_configurer-contenu');
+ // On récupère le titre (en le cachant au passage)
+ var titre = $(this).find('[(#VAL{"{{{ titre }}}"}|propre|replace{"\n",""}|replace{"<(\S*).*>",$1,i})]').eq(0).hide().text();
+
+ // On crée un onglet
+ var $onglet = $('<li><a href="#formulaire_configurer-contenu-'+i+'">'+titre+'</a></li>');
+ $onglet
+ .click(function(){
+ $contenus.hide();
+ $(
+ $(this)
+ .siblings()
+ .removeClass('actif')
+ .end()
+ .addClass('actif')
+ .find('a')
+ .attr('href')
+ ).show();
+ return false;
+ });
+
+ // On active le premier onglet au démarrage
+ if (i == 0) {
+ $onglet.addClass('actif');
+ }
+
+ // S'il y a des erreurs dans cette partie du contenu, on met une classe "erreurs" à l'onglet aussi
+ if ($(this).find('.editer.erreur').length > 0) {
+ $onglet.addClass('erreur');
+ }
+
+ // On ajoute l'onglet
+ $onglets.append($onglet);
+ })
+ .hide()
+ .eq(0)
+ .show();
+ }
+
+ /* enlever les required */
+ $('.formulaire_#FORM .editer.obligatoire').find('input, textarea, select').each(function(){
+ if ($(this).prop('required')) {
+ $(this).prop('required', false);
+ }
+ });
+
+ $('.formulaire_#FORM .configurable')
+ .hover(
+ function(){
+ $(this)
+ .addClass('hover')
+ .find('> .actions')
+ .show()
+ .end()
+ .parents('li.configurable:not(.en_configuration)')
+ .mouseout();
+ },
+ function(){
+ if (!$(this).is('.en_configuration'))
+ $(this)
+ .removeClass('hover')
.find('> .actions')
- .show()
+ .hide()
.end()
- .parents('li.configurable:not(.en_configuration)')
- .mouseout();
+ .parents('.configurable').eq('0')
+ .mouseover();
+ }
+ )
+ .filter(':not(.en_configuration)')
+ .find('> .actions')
+ .hide()
+ .end()
+ .end();
+
+ // On lance la création des onglets
+ formulaire_configurer_onglets();
+
+ // Gérer la liste des vérifications
+ $('.liste_verifications').each(function(){
+ var $options = $(this).siblings('.options_verifier').hide();
+ var $select = $(this).find('select');
+
+ $select
+ .change(function(){
+ var montrer = $(this).val() ? $(this).val() : 'soigfeg';
+ $options.hide().filter('.'+montrer).show();
+ })
+ .change();
+ });
+
+ // On déplie toujours les fieldsets plés par défaut
+ $('.fieldset.plie').each(function(){
+ $(this)
+ .removeClass('plie')
+ .find('> fieldset > .editer-groupe').show();
+ });
+
+ [(#ENV{erreurs}|non|et{#ENV{_jquery_ui_all}|ou{#ENV{_chemin_ui}}})
+ var saisies_sortable = function() {
+ $( "#deplacable, #deplacable .editer-groupe" ).sortable({
+ revert: true,
+ containment: '#deplacable',
+ connectWith: "#deplacable, #deplacable .editer-groupe",
+ placeholder: "ui-state-highlight",
+ handle: '>.actions .deplacer_saisie',
+ start: function(event, ui) {
+ $('.ui-state-highlight')
+ .css('height', ui.item.css('height'))
+ .css('height', '+=20px');
},
- function(){
- if (!jQuery(this).is('.en_configuration'))
- jQuery(this)
- .removeClass('hover')
- .find('> .actions')
- .hide()
- .end()
- .parents('li.configurable').eq('0')
- .mouseover();
- }
- )
- .filter(':not(.en_configuration)')
- .find('> .actions')
- .hide()
- .end()
- .end();
-
- // On lance la création des onglets
- formulaire_configurer_onglets();
-
- // Gérer la liste des vérifications
- jQuery('.liste_verifications')
- .each(function(){
- var options = jQuery(this).siblings('.options_verifier').hide();
- var select = jQuery(this).find('select');
-
- select
- .change(function(){
- var montrer = jQuery(this).val() ? jQuery(this).val() : 'soigfeg';
- options.hide().filter('.'+montrer).show();
- })
- .change();
- });
-
- // On déplie toujours les fieldsets plés par défaut
- jQuery('li.fieldset.plie')
- .each(function(){
- jQuery(this)
- .removeClass('plie')
- .find('> fieldset > ul').show();
- });
-
- [(#ENV{erreurs}|non|et{#ENV{_chemin_ui}})
- $.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.core.js}", function(){
- $.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.widget.js}", function(){
- $.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.mouse.js}", function(){
- $.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.sortable.js}", function(){
- if ($.fn.sortable) {
- jQuery( "#deplacable, #deplacable ul" ).sortable({
- revert: true,
- containment: '#deplacable',
- connectWith: "#deplacable, #deplacable ul",
- placeholder: "ui-state-highlight",
- handle: '>.actions .deplacer_saisie',
- start: function(event, ui) {
- jQuery('.ui-state-highlight')
- .css('height', ui.item.css('height'))
- .css('height', '+=20px');
- },
- update: function(event, ui) {
- id = ui.item.data('id');
- ou = ui.item.next().data('id');
- // avant le suivant
- if (!ou) {
- // sinon dans le parent
- ou = ui.item.closest('.fieldset').data('id');
- if (ou) {
- ou = '[(#VAL{91}|chr)]' + ou + '[(#VAL{93}|chr)]';
- }
- }
- url = "#URL_ECRIRE";
- $.get(url, {
- session: '#ENV{_identifiant_session}',
- action: 'deplacer_saisie',
- saisie: id,
- ou: ou
- }, function() {
- //jQuery('input.vide').submit();
- jQuery('#reinitialiser').removeClass('invisible');
- jQuery('#message_attention').removeClass('invisible');
- });
+ update: function(event, ui) {
+ id = ui.item.data('id');
+ ou = ui.item.next().data('id');
+ // avant le suivant
+ if (!ou) {
+ // sinon dans le parent
+ ou = ui.item.closest('.fieldset').data('id');
+ if (ou) {
+ ou = '\[' + ou + '\]';
}
+ }
+ url = "#URL_ECRIRE";
+ $.get(url, {
+ session: '#ENV{_identifiant_session}',
+ action: 'deplacer_saisie',
+ saisie: id,
+ ou: ou
+ }, function() {
+ //$('input.vide').submit();
+ $('.formulaire_#ENV{form}').addClass('modifie').trigger('modifsaisies');
});
}
- });});});});
-
- $.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.core.js}", function(){
- $.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.widget.js}", function(){
- $.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.mouse.js}", function(){
- $.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.draggable.js}", function(){
- if ($.fn.draggable) {
- jQuery( "#attrapable" ).draggable({
- connectToSortable: "#deplacable, #deplacable ul",
- helper: "clone"
- });
+ });
+ }
+ if (!$.fn.sortable) {
+ [
+ $.getScript("(#ENV{_jquery_ui_all})", function(){
+ ]
+ [(#ENV{_chemin_ui}|oui)
+ $.getScript("#CHEMIN{#ENV{_chemin_ui}core.js}", function(){
+ $.getScript("#CHEMIN{#ENV{_chemin_ui}widget.js}", function(){
+ $.getScript("#CHEMIN{#ENV{_chemin_ui}mouse.js}", function(){
+ $.getScript("#CHEMIN{#ENV{_chemin_ui}sortable.js}", function(){
+ ]
+ if ($.fn.sortable) {
+ saisies_sortable();
}
- });});});});
+ });
+ [(#ENV{_chemin_ui}|oui)
+ });});});
]
- });
-
- function formulaire_configurer_onglets(){
- var formulaire_configurer = jQuery('.formulaire_configurer');
- var onglets = jQuery('<ul class="formulaire_configurer-onglets"></ul>');
- var contenus = formulaire_configurer.find('> ul > li.fieldset');
-
- // On ajoute le conteneur des onglets
- formulaire_configurer
- .prepend(onglets);
-
- // On parcourt les contenus pour générer les onglets
- contenus
- .each(function(i){
- // On ajoute un identifiant et une classe
- jQuery(this)
- .attr('id', 'formulaire_configurer-contenu-'+i)
- .addClass('formulaire_configurer-contenu');
- // On récupère le titre (en le cachant au passage)
- var titre = jQuery(this).find('h3').eq(0).hide().text();
- // On crée un onglet
- var onglet = jQuery('<li><a href="#formulaire_configurer-contenu-'+i+'">'+titre+'</a></li>');
- onglet
- .click(function(){
- contenus.hide();
- jQuery(
- jQuery(this)
- .siblings()
- .removeClass('actif')
- .end()
- .addClass('actif')
- .find('a')
- .attr('href')
- ).show();
- return false;
- });
-
- // On active le premier onglet au démarrage
- if (i == 0) onglet.addClass('actif');
-
- // S'il y a des erreurs dans cette partie du contenu, on met une classe "erreurs" à l'onglet aussi
- if (jQuery(this).find('li.erreur').length > 0)
- onglet.addClass('erreur');
-
- // On ajoute l'onglet
- onglets
- .append(onglet);
- })
- .hide()
- .eq(0)
- .show();
- }
+ } else {
+ saisies_sortable();
+ }
+ ]
+
+ })(jQuery);
</script>
</BOUCLE_editable>
</div>