Browse Source

Utiliser sortable.js pour le constructeur de formulaireUtiliser

sortable.js pour le constructeur de formulaire.
pull/113/head
Maïeul 1 year ago
parent
commit
82572aa411
  1. 2
      css/formulaires_constructeur.css
  2. 45
      formulaires/construire_formulaire.html
  3. 1
      formulaires/construire_formulaire.php

2
css/formulaires_constructeur.css

@ -3,8 +3,6 @@
border:none;
background:transparent;
}
#deplacable .ui-state-highlight { height: 5em; line-height: 1.2em; }
#deplacable .ui-sortable {min-height:3em;}
.formulaire_construire_formulaire .actions_formulaire{
margin:0;

45
formulaires/construire_formulaire.html

@ -30,8 +30,6 @@
</div>
]
]
<div class="editer-groupe" id="deplacable">
<div 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="" />
@ -39,6 +37,8 @@
</button>
</div>
<div class="editer-groupe" id="sortable">
[(#REM)<!-- les choix de saisies -->]
<BOUCLE_contenu(DATA){source tableau, #ENV{_contenu}}>
[(#VAL{saisie}|array_key_exists{#VALEUR}|oui)
@ -96,6 +96,47 @@
<script type="text/javascript">
(function($){
jQuery.getScript('[(#CHEMIN{prive/javascript/Sortable.js}|timestamp)]').done(function() {
var sortableOptions = {
group: {
name: "construire_formulaire",
pull: true,
put: true,
},
handle: '.deplacer_saisie',
onEnd: function(evt) {
$saisie = $(evt.item);
id = $saisie.data('id');
ou = $saisie.next().data('id');
if (!ou) {
// sinon dans le parent
ou = $saisie.closest('.avec_sous_saisies').data('id');
// Si jamais match lui-même, ca veut dire qu'on déplace un fieldest
if (ou == id) {
ou = $saisie.parents('.avec_sous_saisies').first().data("id");
}
if (ou) {
ou = '\[' + ou + '\]';
}
}
console.log(ou);
url = "#URL_ECRIRE";
$.get(url, {
session: '#ENV{_identifiant_session}',
action: 'deplacer_saisie',
saisie: id,
ou: ou
}, function() {
$('.formulaire_#ENV{form}').addClass('modifie').trigger('modifsaisies');
});
},
animation: 250,
};
containers = document.querySelectorAll("#sortable, #sortable .avec_sous_saisies .editer-groupe");
for (var i = 0; i < containers.length; i++) {
new Sortable(containers[i], sortableOptions);
}
});
/* enlever les required */
$('.formulaire_#FORM .editer.obligatoire').find('input, textarea, select').each(function(){
if ($(this).prop('required')) {

1
formulaires/construire_formulaire.php

@ -511,6 +511,7 @@ function construire_formulaire_generer_saisie_configurable($saisie, $env) {
'nom' => $nom,
'identifiant' => $identifiant,
'formulaire_config' => $formulaire_config,
'deplacable' => true,
)
),
'debut'

Loading…
Cancel
Save