Remember submitted values on group's main page erroneous edition.
authorStéphane Jacob <sj@m4x.org>
Tue, 20 Sep 2011 14:14:11 +0000 (16:14 +0200)
committerStéphane Jacob <sj@m4x.org>
Tue, 20 Sep 2011 14:16:14 +0000 (16:16 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
modules/xnetgrp.php
templates/xnetgrp/edit.tpl

index 6e72bf5..0de64cc 100644 (file)
@@ -168,12 +168,13 @@ class XnetGrpModule extends PLModule
     {
         global $globals;
         $page->changeTpl('xnetgrp/edit.tpl');
+        $error = false;
 
         if (S::admin()) {
-            $dom = XDB::iterator('SELECT  *
-                                    FROM  group_dom
-                                ORDER BY  nom');
-            $page->assign('dom', $dom);
+            $domains = XDB::iterator('SELECT  *
+                                        FROM  group_dom
+                                    ORDER BY  nom');
+            $page->assign('domains', $domains);
             $page->assign('super', true);
         }
 
@@ -196,12 +197,38 @@ class XnetGrpModule extends PLModule
 
                 if (Post::v('mail_domain') && (strstr(Post::v('mail_domain'), '.') === false)) {
                     $page->trigError('Le domaine doit être un FQDN (aucune modification effectuée)&nbsp;!!!');
-                    return;
+                    $error = true;
                 }
                 if (Post::t('nom') == '' || Post::t('diminutif') == '') {
                     $page->trigError('Ni le nom ni le diminutif du groupe ne peuvent être vide.');
+                    $error = true;
+                }
+                if ($error) {
+                    $page->assign('nom', Post::t('nom'));
+                    $page->assign('diminutif', Post::t('diminutif'));
+                    $page->assign('mail_domain', Post::t('mail_domain'));
+                    $page->assign('cat', Post::v('cat'));
+                    $page->assign('dom', Post::v('dom'));
+                    $page->assign('ax', Post::v('ax'));
+                    $page->assign('axDate', Post::t('axDate'));
+                    $page->assign('site', $site);
+                    $page->assign('resp', Post::t('resp'));
+                    $page->assign('mail', Post::t('mail'));
+                    $page->assign('phone', Post::t('phone'));
+                    $page->assign('fax', Post::t('fax'));
+                    $page->assign('address', Post::t('address'));
+                    $page->assign('forum', Post::t('forum'));
+                    $page->assign('inscriptible', Post::v('inscriptible'));
+                    $page->assign('sub_url', Post::t('sub_url'));
+                    $page->assign('unsub_url', Post::t('unsub_url'));
+                    $page->assign('welcome_msg', Post::t('welcome_msg'));
+                    $page->assign('pub', Post::v('pub'));
+                    $page->assign('notif_unsub', Post::i('notif_unsub'));
+                    $page->assign('descr', Post::t('descr'));
+                    $page->assign('error', $error);
                     return;
                 }
+
                 $axDate = make_datetime(Post::v('axDate'));
                 if (Post::t('axDate') != '') {
                     $axDate = make_datetime(Post::v('axDate'))->format('Y-m-d');
@@ -275,6 +302,13 @@ class XnetGrpModule extends PLModule
 
             pl_redirect('../' . Post::v('diminutif', $globals->asso('diminutif')) . '/edit');
         }
+        $page->assign('error', $error);
+        $page->assign('cat', $globals->asso('cat'));
+        $page->assign('dom', $globals->asso('dom'));
+        $page->assign('ax', $globals->asso('ax'));
+        $page->assign('inscriptible', $globals->asso('inscriptible'));
+        $page->assign('pub', $globals->asso('pub'));
+        $page->assign('notif_unsub', $globals->asso('notif_unsub'));
     }
 
     function handler_mail($page)
index 5af8cda..b63c1bd 100644 (file)
@@ -31,7 +31,7 @@
         Nom&nbsp;:
       </td>
       <td>
-        <input type="text" size="40" value="{$asso->nom}" name="nom" />
+        <input type="text" size="40" value="{if $error}{$nom}{else}{$asso->nom}{/if}" name="nom" />
       </td>
     </tr>
     <tr>
@@ -39,7 +39,7 @@
         Diminutif&nbsp;:
       </td>
       <td>
-        <input type="text" size="40" value="{$asso->diminutif}" name="diminutif" />
+        <input type="text" size="40" value="{if $error}{$diminutif}{else}{$asso->diminutif}{/if}" name="diminutif" />
       </td>
     </tr>
     <tr>
@@ -47,7 +47,7 @@
         Domaine DNS&nbsp;:
       </td>
       <td>
-        <input type="text" size="40" value="{$asso->mail_domain}" name="mail_domain" />
+        <input type="text" size="40" value="{if $error}{$mail_domain}{else}{$asso->mail_domain}{/if}" name="mail_domain" />
       </td>
     </tr>
     <tr>
       </td>
       <td>
         <select name="cat">
-          <option value="groupesx" {if $asso->cat eq 'GroupesX'}selected="selected"{/if}>Groupes X</option>
-          <option value="binets" {if $asso->cat eq 'Binets'}selected="selected"{/if}>Binets</option>
-          <option value="promotions" {if $asso->cat eq 'Promotions'}selected="selected"{/if}>Promotions</option>
-          <option value="institutions" {if $asso->cat eq 'Institutions'}selected="selected"{/if}>Institutions</option>
+          <option value="groupesx" {if $cat eq 'GroupesX'}selected="selected"{/if}>Groupes X</option>
+          <option value="binets" {if $cat eq 'Binets'}selected="selected"{/if}>Binets</option>
+          <option value="promotions" {if $cat eq 'Promotions'}selected="selected"{/if}>Promotions</option>
+          <option value="institutions" {if $cat eq 'Institutions'}selected="selected"{/if}>Institutions</option>
         </select>
       </td>
     </tr>
       <td>
         <select name="dom">
           <option value="">&nbsp;</option>
-          {iterate from=$dom item=d}
-          <option value="{$d.id}" {if $d.id eq $asso->dom}selected="selected"{/if}>{$d.nom} [{$d.cat}]</option>
+          {iterate from=$domains item=d}
+          <option value="{$d.id}" {if $d.id eq $dom}selected="selected"{/if}>{$d.nom} [{$d.cat}]</option>
           {/iterate}
         </select>
       </td>
     </tr>
     <tr>
       <td class="titre center" colspan="2">
-        <label><input type="checkbox" value="1" name="ax" {if $asso->ax}checked="checked"{/if} />
-        groupe agréé par l'AX</label> le <input type="text" size="10" maxlength="10" value="{$asso->axDate}" name="axDate" />
+        <label><input type="checkbox" value="1" name="ax" {if $ax}checked="checked"{/if} />
+        groupe agréé par l'AX</label> le <input type="text" size="10" maxlength="10" value="{if $error}{$axDate}{$asso->axDate}{/if}" name="axDate" />
         <small>(ex: 01/01/1970)</small>
       </td>
     </tr>
         Site web&nbsp;:
       </td>
       <td>
-        <input type="text" size="40" value="{$asso->site|default:"http://"}" name="site" />
+        <input type="text" size="40" value="{if $error}{$site}{else}{$asso->site|default:"http://"}{/if}" name="site" />
       </td>
     </tr>
 
         Contact&nbsp;:
       </td>
       <td>
-        <input type="text" size="40" name="resp" value="{$asso->resp}" />
+        <input type="text" size="40" name="resp" value="{if $error}{$resp}{else}{$asso->resp}{/if}" />
       </td>
     </tr>
 
         Adresse email&nbsp;:
       </td>
       <td>
-        <input type="text" size="40" name="mail" value="{$asso->mail}" />
+        <input type="text" size="40" name="mail" value="{if $error}{$mail}{else}{$asso->mail}{/if}" />
       </td>
     </tr>
 
     <tr>
       <td class="titre">Téléphone</td>
       <td>
-        <input type="text" maxlength="28" name="phone" value="{$asso->phone}" />
+        <input type="text" maxlength="28" name="phone" value="{if $error}{$phone}{else}{$asso->phone}{/if}" />
       </td>
     </tr>
     <tr>
       <td class="titre">Fax</td>
       <td>
-        <input type="text" maxlength="28" name="fax" value="{$asso->fax}" />
+        <input type="text" maxlength="28" name="fax" value="{if $error}{$fax}{else}{$asso->fax}{/if}" />
       </td>
     </tr>
     <tr>
       <td class="titre">Adresse</td>
       <td>
-        <textarea name="address" cols="30" rows="4">{$asso->address}</textarea>
+        <textarea name="address" cols="30" rows="4">{if $error}{$address}{else}{$asso->address}{/if}</textarea>
       </td>
     </tr>
 
         Forum&nbsp;:
       </td>
       <td>
-        <input type="text" size="40" name="forum" value="{$asso->forum}" />
+        <input type="text" size="40" name="forum" value="{if $error}{$forum}{else}{$asso->forum}{/if}" />
       </td>
     </tr>
 
         Inscription possible&nbsp;:
       </td>
       <td>
-        <input type="radio" value="1" id="inscr_yes"
-          {if $asso->inscriptible eq 1}checked="checked"{/if}
-          name="inscriptible" />
-        <label for="inscr_yes">oui</label>
-        <input type="radio" value="0" id="inscr_no"
-          {if $asso->inscriptible neq 1}checked="checked"{/if}
-          name="inscriptible" />
-        <label for="inscr_no">non</label>
+        <label><input type="radio" value="1" {if $inscriptible eq 1}checked="checked"{/if} name="inscriptible" />oui</label>
+        <label><input type="radio" value="0" {if $inscriptible neq 1}checked="checked"{/if} name="inscriptible" />non</label>
       </td>
     </tr>
 
         <em>laisser vide par défaut</em>
       </td>
       <td>
-        <input type="text" size="40" name="sub_url" value="{$asso->sub_url}" />
+        <input type="text" size="40" name="sub_url" value="{if $error}{$sub_url}{else}{$asso->sub_url}{/if}" />
       </td>
     </tr>
 
         <em>laisser vide par défaut</em>
       </td>
       <td>
-        <input type="text" size="40" name="unsub_url" value="{$asso->unsub_url}" />
+        <input type="text" size="40" name="unsub_url" value="{if $error}{$unsub_url}{else}{$asso->unsub_url}{/if}" />
       </td>
     </tr>
 
         <em>envoyé à l'inscription</em>
       </td>
       <td>
-        <textarea cols='40' rows='8' name='welcome_msg'>{$asso->welcome_msg}</textarea>
+        <textarea cols='40' rows='8' name='welcome_msg'>{if $error}{$welcome_msg}{else}{$asso->welcome_msg}{/if}</textarea>
       </td>
     </tr>
 
       <td class="titre center" colspan="2">
         Diffusion de la liste des membres&nbsp;:
         <select name="pub">
-          <option value="public" {if $asso->pub eq 'public'}selected="selected"{/if}>Publique</option>
-          <option value="membre" {if $asso->pub eq 'membre'}selected="selected"{/if}>Aux membres du groupe</option>
-          <option value="private" {if $asso->pub eq 'private'}selected="selected"{/if}>Aux animateurs du groupe</option>
+          <option value="public" {if $pub eq 'public'}selected="selected"{/if}>Publique</option>
+          <option value="membre" {if $pub eq 'membre'}selected="selected"{/if}>Aux membres du groupe</option>
+          <option value="private" {if $pub eq 'private'}selected="selected"{/if}>Aux animateurs du groupe</option>
         </select>
       </td>
     </tr>
     <tr>
       <td class="titre center" colspan="2">
-        <label><input type="checkbox" value="1" name="notif_unsub" {if $asso->notif_unsub}checked="checked"{/if} />
+        <label><input type="checkbox" value="1" name="notif_unsub" {if $notif_unsub}checked="checked"{/if} />
         prévenir les animateurs lors de la désinscription d'un membre</label>
       </td>
     </tr>
     <a href="wiki_help" class="popup3">
       {icon name=information title="Syntaxe wiki"} Voir la syntaxe wiki autorisée pour la description.
     </a>
-    <textarea name="descr" cols="70" rows="15" id="descr">{$asso->descr}</textarea>
+    <textarea name="descr" cols="70" rows="15" id="descr">{if $error}{$descr}{else}{$asso->descr}{/if}</textarea>
     <input type="submit" name="preview" value="Aperçu de la description"
            onclick="previewWiki('descr', 'preview_descr', true, 'preview_descr'); return false;" /><br />
     <input type="submit" name="submit" value="Enregistrer" />