Skip to content
Extraits de code Groupes Projets
Valider a22606d7 rédigé par cedric@yterium.com's avatar cedric@yterium.com
Parcourir les fichiers

ergonomie de la modification des champs du formulaire :

on masque le gros message vert et le gros bouton "Reinitialiser" trop affordants qui sont proposés par saisies.
 A la place un message simple en haut, et le bouton "Revenir à la dernière version enregistrée" dans le cartouche en bas, qui apparaissent dès qu'une saisie est modifiée
parent fd9cb475
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<div class="formulaire_spip formulaire_editer formulaire_#ENV{form}[ formulaire_#ENV{form}-(#ENV{id,nouveau})]">
<p class="explication message_saisies_modifiees"><strong><:saisies:construire_attention_enregistrer:></strong></p>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV*{message_erreur}|non)
<div class="ajax">
#FORMULAIRE_CONSTRUIRE_FORMULAIRE{formidable_#ENV{id}, #ENV{_saisies}}
#FORMULAIRE_CONSTRUIRE_FORMULAIRE{#ENV{saisie_id}, #ENV{_saisies}}
</div>
]
......@@ -14,26 +15,41 @@
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
<p class="boutons">
<span class="image_loading"></span>
[(#ENV*{message_erreur}|non)
<em class="attention"><:saisies:construire_attention_enregistrer:></em>
<button type="submit" class="submit">
<img src="#CHEMIN{images/formulaire-enregistrer-16.png}" alt="" />
<:bouton_enregistrer:>
</button>
]
<span class='image_loading'></span>
[(#ENV*{message_erreur}|oui)
<button type="submit" class="link" name="annulation" value="oui">
<:bouton_annuler:>
</button>
<button type="submit" class="submit" name="confirmation" value="oui">
<img src="#CHEMIN{images/formulaire-enregistrer-16.png}" alt="" />
<:bouton_enregistrer:>
</button>
<input type='cancel' class='submit' name="annulation" value='<:bouton_annuler|attribut_html:>' />
]
[(#ENV*{message_erreur}|non)
<input type='submit' class='submit revert' name="revert" value='<:formidable:bouton_revert_formulaire|attribut_html:>'
onclick="return confirm('<:saisies:construire_reinitialiser_confirmer:>')" />
]
<input type='submit' class='submit' name="enregistrer" value='<:bouton_enregistrer|attribut_html:>' />
</p>
</div></form>
]
</div>
<style>
.formulaire_edit .formulaire_editer_formulaire_champs .message_reinitialiser,
.formulaire_edit .formulaire_editer_formulaire_champs #reinitialiser {display: none;}
.formulaire_spip .message_saisies_modifiees,input.revert {display: none;}
.modifie .message_saisies_modifiees,.modifie input.revert {display: block;}
</style>
<script type="text/javascript">
function update_modif_saisies(){
var is_modified = jQuery('.formulaire_[(#ENV{form})] .formulaire_construire_formulaire').is('.modifie');
if (is_modified)
jQuery('.formulaire_#ENV{form}').addClass('modifie');
else
jQuery('.formulaire_#ENV{form}').removeClass('modifie');
}
jQuery(function(){
update_modif_saisies();
onAjaxLoad(update_modif_saisies);
jQuery('.formulaire_[(#ENV{form})] .formulaire_construire_formulaire').bind('modifsaisies',update_modif_saisies);
});
</script>
......@@ -17,6 +17,7 @@ function formulaires_editer_formulaire_champs_charger($id_formulaire){
if (!is_array($saisies)) $saisies = array();
$contexte['_saisies'] = $saisies;
$contexte['id'] = $id_formulaire;
$contexte['saisie_id'] = "formidable_$id_formulaire";
}
return $contexte;
......@@ -57,55 +58,63 @@ function formulaires_editer_formulaire_champs_traiter($id_formulaire){
include_spip('inc/saisies');
$retours = array();
$id_formulaire = intval($id_formulaire);
// On récupère le formulaire dans la session
$saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire");
// On récupère les anciennes saisies
$saisies_anciennes = unserialize(sql_getfetsel(
'saisies',
'spip_formulaires',
'id_formulaire = '.$id_formulaire
));
// On envoie les nouvelles dans la table dans la table
$ok = sql_updateq(
'spip_formulaires',
array(
'saisies' => serialize($saisies_nouvelles)
),
'id_formulaire = '.$id_formulaire
);
// Si c'est bon on appelle d'éventuelles fonctions d'update des traitements puis on renvoie vers la config des traitements
if ($ok){
// On va chercher les traitements
$traitements = unserialize(sql_getfetsel(
'traitements',
if (_request('revert')){
session_set("constructeur_formulaire_formidable_$id_formulaire");
$retours = array('editable'=>true);
}
if (_request('enregistrer')){
// On récupère le formulaire dans la session
$saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire");
// On récupère les anciennes saisies
$saisies_anciennes = unserialize(sql_getfetsel(
'saisies',
'spip_formulaires',
'id_formulaire = '.$id_formulaire
));
// Pour chaque traitements on regarde s'i y a une fonction d'update
if (is_array($traitements))
foreach ($traitements as $type_traitement => $traitement){
if ($update = charger_fonction('update', "traiter/$type_traitement", true)){
$update($id_formulaire, $traitement, $saisies_anciennes, $saisies_nouvelles);
// On envoie les nouvelles dans la table dans la table
$ok = sql_updateq(
'spip_formulaires',
array(
'saisies' => serialize($saisies_nouvelles)
),
'id_formulaire = '.$id_formulaire
);
// Si c'est bon on appelle d'éventuelles fonctions d'update des traitements puis on renvoie vers la config des traitements
if ($ok){
// On va chercher les traitements
$traitements = unserialize(sql_getfetsel(
'traitements',
'spip_formulaires',
'id_formulaire = '.$id_formulaire
));
// Pour chaque traitements on regarde s'i y a une fonction d'update
if (is_array($traitements))
foreach ($traitements as $type_traitement => $traitement){
if ($update = charger_fonction('update', "traiter/$type_traitement", true)){
$update($id_formulaire, $traitement, $saisies_anciennes, $saisies_nouvelles);
}
}
}
// On redirige vers la config suivante
$retours['redirect'] = parametre_url(
parametre_url(
// On redirige vers la config suivante
$retours['redirect'] = parametre_url(
parametre_url(
generer_url_ecrire('formulaire_edit')
, 'id_formulaire', $id_formulaire
parametre_url(
generer_url_ecrire('formulaire_edit')
, 'id_formulaire', $id_formulaire
)
, 'configurer', 'traitements'
)
, 'configurer', 'traitements'
)
, 'avertissement', 'oui'
);
, 'avertissement', 'oui'
);
}
}
return $retours;
}
......
......@@ -21,6 +21,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// B
'bouton_formulaires' => 'Formulaires',
'bouton_revert_formulaire' => 'Revenir à la dernière version enregistrée',
// C
'cfg_analyse_classe_explication' => 'Vous pouvez indiquer des classes CSS qui seront ajoutées
......
......@@ -26,7 +26,7 @@
<pipeline nom="optimiser_base_disparus" inclure="formidable_pipelines.php" />
<necessite nom="spip_bonux" compatibilite="[1.9.3;[" />
<necessite nom="saisies" compatibilite="[1.34.2;[" />
<necessite nom="saisies" compatibilite="[1.39.0;[" />
<necessite nom="verifier" compatibilite="[0.1;[" />
<necessite nom="yaml" compatibilite="[1.1;[" />
<necessite nom="facteur" compatibilite="[3.0.3;[" />
......
......@@ -29,6 +29,9 @@ body .formidable_analyse .progress-bar span {
.formulaire #wysiwyg .contenu_apres .apres { display: inline;}
.formulaire #wysiwyg .contenu_url_redirect .url_redirect { display: inline;}
.formulaire_edit .formulaire_editer_formulaire_champs .editer.saisies_disponibles {border-top:1px solid #ccc;padding-top:15px;margin-top: 15px;}
.formulaire_edit .formulaire_editer_formulaire_champs .submit.revert {float: left;color: #8A1F11;opacity: 0.9;}
.formulaires_reponse #contenu #wysiwyg {margin-top:1em;}
.formulaires_reponse #contenu #wysiwyg .label {
width:140px; float:left; display:block;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter