Skip to content
Extraits de code Groupes Projets
Valider 7d2a7354 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

Merge branch 'issue9'

fix #8 #9
parents dc3f1322 714c1b53
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -3,8 +3,11 @@ ...@@ -3,8 +3,11 @@
<p class="explication message_saisies_modifiees"><strong><:saisies:construire_attention_enregistrer:></strong></p> <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_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
#SET{constuire_formulaire,''}
[(#ENV*{message_erreur}|non) [(#ENV*{message_erreur}|non|ou{#ENV*{erreurs/saisies_modifiees_parallele}})
#SET{constuire_formulaire,oui}
]
[(#GET{constuire_formulaire}|oui)
<div class="ajax"> <div class="ajax">
#FORMULAIRE_CONSTRUIRE_FORMULAIRE{#ENV{saisie_id}, #ENV{_saisies}, #ARRAY{options_globales,#ENV{_options_globales}}} #FORMULAIRE_CONSTRUIRE_FORMULAIRE{#ENV{saisie_id}, #ENV{_saisies}, #ARRAY{options_globales,#ENV{_options_globales}}}
</div> </div>
...@@ -19,11 +22,11 @@ ...@@ -19,11 +22,11 @@
<p class="boutons"> <p class="boutons">
<span class='image_loading'></span> <span class='image_loading'></span>
[(#ENV*{message_erreur}|oui) [(#GET{constuire_formulaire}|non)
<input type='submit' class='submit' name="annulation" value='<:bouton_annuler|attribut_html:>' /> <input type='submit' class='submit' name="annulation" value='<:bouton_annuler|attribut_html:>' />
<input type='submit' class='submit' name="enregistrer_confirmation" value='<:bouton_enregistrer|attribut_html:>' /> <input type='submit' class='submit' name="enregistrer_confirmation" value='<:bouton_enregistrer|attribut_html:>' />
] ]
[(#ENV*{message_erreur}|non) [(#GET{constuire_formulaire}|oui)
<input type='submit' class='submit revert' name="revert" value='<:formidable:bouton_revert_formulaire|attribut_html:>' <input type='submit' class='submit revert' name="revert" value='<:formidable:bouton_revert_formulaire|attribut_html:>'
onclick="return confirm('<:saisies:construire_reinitialiser_confirmer:>')" /> onclick="return confirm('<:saisies:construire_reinitialiser_confirmer:>')" />
<input type='submit' class='submit' name="enregistrer" value='<:bouton_enregistrer|attribut_html:>' /> <input type='submit' class='submit' name="enregistrer" value='<:bouton_enregistrer|attribut_html:>' />
......
...@@ -15,6 +15,13 @@ function formulaires_editer_formulaire_champs_charger($id_formulaire) { ...@@ -15,6 +15,13 @@ function formulaires_editer_formulaire_champs_charger($id_formulaire) {
and autoriser('editer', 'formulaire', $id_formulaire) and autoriser('editer', 'formulaire', $id_formulaire)
) { ) {
$saisies = unserialize($formulaire['saisies']); $saisies = unserialize($formulaire['saisies']);
// Est-ce qu'on restaure une révision ?
if ($id_version = _request('id_version')) {
include_spip('inc/revisions');
$old = recuperer_version($id_formulaire, 'formulaire', $id_version);
$saisies = unserialize($old['saisies']);
}
if (!is_array($saisies)) { if (!is_array($saisies)) {
$saisies = array(); $saisies = array();
} }
...@@ -76,15 +83,31 @@ function formulaires_editer_formulaire_champs_verifier($id_formulaire) { ...@@ -76,15 +83,31 @@ function formulaires_editer_formulaire_champs_verifier($id_formulaire) {
and !($annulation = _request('annulation'))) { and !($annulation = _request('annulation'))) {
// On récupère le formulaire dans la session // On récupère le formulaire dans la session
$saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire"); $saisies_nouvelles = session_get("constructeur_formulaire_formidable_$id_formulaire");
$md5_precedent_formulaire_initial = session_get("constructeur_formulaire_formidable_$id_formulaire".'_md5_formulaire_initial');
// On récupère les anciennes saisies // On récupère les anciennes saisies
$saisies_anciennes = unserialize(sql_getfetsel( $saisies_anciennes = sql_getfetsel(
'saisies', 'saisies',
'spip_formulaires', 'spip_formulaires',
'id_formulaire = '.$id_formulaire 'id_formulaire = '.$id_formulaire
)); );
if (!$saisies_anciennes) {
return $erreurs;
}
// On vérifie que les saisies en bases n'ont pas été modifiés depuis le début de la modification du formulaire
// Si tel est le cas, on demande de recommencer la modif du formulaire, avec la saisie en base
// Ne pas le faire si on est en train de restaurer une vieille version, puisque dans ce cas ce qui compte sera bien sur la veille version qu'on veut restaurer, et pas la version plus récente en base:)
$md5_saisies_anciennes = md5($saisies_anciennes);
$saisies_anciennes = unserialize($saisies_anciennes);
if ($md5_precedent_formulaire_initial and $md5_precedent_formulaire_initial != $md5_saisies_anciennes and !_request('id_version')) {
session_set("constructeur_formulaire_formidable_$id_formulaire", $saisies_anciennes);
session_set("constructeur_formulaire_formidable_$id_formulaire".'_md5_formulaire_initial', $md5_saisies_anciennes);
$erreurs['message_erreur'] = _T('formidable:erreur_saisies_modifiees_parallele');
$erreurs['saisies_modifiees_parallele'] = _T('formidable:erreur_saisies_modifiees_parallele');
return $erreurs;
}
// On compare // On compare les anciennes saisies aux nouvelles
$comparaison = saisies_comparer($saisies_anciennes, $saisies_nouvelles); $comparaison = saisies_comparer($saisies_anciennes, $saisies_nouvelles);
// S'il y a des suppressions, on demande confirmation avec attention // S'il y a des suppressions, on demande confirmation avec attention
...@@ -123,7 +146,7 @@ function formulaires_editer_formulaire_champs_traiter($id_formulaire) { ...@@ -123,7 +146,7 @@ function formulaires_editer_formulaire_champs_traiter($id_formulaire) {
// On envoie les nouvelles dans la table dans la table // On envoie les nouvelles dans la table dans la table
include_spip('action/editer_objet'); include_spip('action/editer_objet');
$err = objet_modifier('formulaire', $id_formulaire, array('saisies' => serialize($saisies_nouvelles))); $err = objet_modifier('formulaire', $id_formulaire, array('saisies' => serialize($saisies_nouvelles)));
// Si c'est bon on appelle d'éventuelles fonctions d'update des traitements // Si c'est bon on appelle d'éventuelles fonctions d'update des traitements
// puis on renvoie vers la config des traitements // puis on renvoie vers la config des traitements
if (!$err) { if (!$err) {
...@@ -156,6 +179,9 @@ function formulaires_editer_formulaire_champs_traiter($id_formulaire) { ...@@ -156,6 +179,9 @@ function formulaires_editer_formulaire_champs_traiter($id_formulaire) {
'avertissement', 'avertissement',
'oui' 'oui'
); );
if ($id_version = _request('id_version')) {
$retours['redirect'] = parametre_url($retours['redirect'], 'id_version', $id_version);
}
} }
} }
......
...@@ -18,6 +18,11 @@ function formulaires_editer_formulaire_traitements_charger($id_formulaire) { ...@@ -18,6 +18,11 @@ function formulaires_editer_formulaire_traitements_charger($id_formulaire) {
and autoriser('editer', 'formulaire', $id_formulaire) and autoriser('editer', 'formulaire', $id_formulaire)
) { ) {
$traitements = unserialize($formulaire['traitements']); $traitements = unserialize($formulaire['traitements']);
if ($id_version = _request('id_version')) {
include_spip('inc/revisions');
$old = recuperer_version($id_formulaire, 'formulaire', $id_version);
$traitements = unserialize($old['traitements']);
}
$saisies = unserialize($formulaire['saisies']); $saisies = unserialize($formulaire['saisies']);
if (!is_array($traitements)) { if (!is_array($traitements)) {
$traitements = array(); $traitements = array();
......
...@@ -89,6 +89,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -89,6 +89,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'erreur_identifiant_format' => 'L’identifiant ne peut contenir que des chiffres, lettres latines non accentuées et le caractère "_"', 'erreur_identifiant_format' => 'L’identifiant ne peut contenir que des chiffres, lettres latines non accentuées et le caractère "_"',
'erreur_importer_forms' => 'Erreur durant l’importation du formulaire Forms&Tables', 'erreur_importer_forms' => 'Erreur durant l’importation du formulaire Forms&Tables',
'erreur_importer_wcs' => 'Erreur durant l’importation du formulaire W.C.S', 'erreur_importer_wcs' => 'Erreur durant l’importation du formulaire W.C.S',
'erreur_saisies_modifiees_parallele' => 'Les saisies du formulaire ont été modifiées par ailleurs. Vos propres modifications n\'ont donc pas été enregistrées. Veuillez recommencer la modification des champs.',
'erreur_importer_yaml' => 'Erreur durant l’importation du fichier YAML', 'erreur_importer_yaml' => 'Erreur durant l’importation du fichier YAML',
'erreur_inexistant' => 'Le formulaire n’existe pas.', 'erreur_inexistant' => 'Le formulaire n’existe pas.',
'erreur_unicite' => 'Cette valeur est déjà utilisée', 'erreur_unicite' => 'Cette valeur est déjà utilisée',
......
<paquet <paquet
prefix="formidable" prefix="formidable"
categorie="communication" categorie="communication"
version="4.1.1" version="4.2.0"
etat="stable" etat="stable"
compatibilite="[3.1.0;3.2.*]" compatibilite="[3.1.0;3.2.*]"
logo="images/formidable-64.png" logo="images/formidable-64.png"
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<pipeline nom="corbeille_table_infos" inclure="formidable_pipelines.php" /> <pipeline nom="corbeille_table_infos" inclure="formidable_pipelines.php" />
<necessite nom="spip_bonux" compatibilite="[3.3.8;[" /> <necessite nom="spip_bonux" compatibilite="[3.3.8;[" />
<necessite nom="saisies" compatibilite="[3.26.0;[" /> <necessite nom="saisies" compatibilite="[3.34.0;[" />
<necessite nom="verifier" compatibilite="[1.6.2;[" /> <necessite nom="verifier" compatibilite="[1.6.2;[" />
<necessite nom="yaml" compatibilite="[1.5.2;[" /> <necessite nom="yaml" compatibilite="[1.5.2;[" />
<necessite nom="facteur" compatibilite="[3.6.2;[" /> <necessite nom="facteur" compatibilite="[3.6.2;[" />
......
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