Improve clarity of https://www.polytechnique.org/emails
authorNicolas Iooss <nicolas.iooss_git@polytechnique.org>
Tue, 7 Jan 2014 22:42:41 +0000 (23:42 +0100)
committerNicolas Iooss <nicolas.iooss_git@polytechnique.org>
Thu, 9 Jan 2014 18:15:39 +0000 (19:15 +0100)
This page incorrectly reported potential conflicting emails as given for life.
Fix this displaying issue by dividing the emails addresses in 3 categories.

Signed-off-by: Nicolas Iooss <nicolas.iooss_git@polytechnique.org>
ChangeLog
modules/email.php
templates/emails/index.tpl

index f092401..bfcc099 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
 ================================================================================
 VERSION 1.1.12                                                       XX XX XXXX
 
+    * Usability:
+        - Make /emails page clearer                                        -IOS
+
 ================================================================================
 VERSION 1.1.11                                                       31 12 2013
 
index 59ffcc3..17a82e1 100644 (file)
@@ -98,9 +98,23 @@ class EmailModule extends PLModule
                               INNER JOIN  email_virtual_domains AS m ON (s.domain = m.id)
                               INNER JOIN  email_virtual_domains AS d ON (d.aliasing = m.id)
                                    WHERE  s.uid = {?}
-                                ORDER BY  !alias, s.email",
+                                ORDER BY  !alias, s.email, d.name",
                                  $user->id());
-        $page->assign('aliases', $aliases);
+        $aliases_forlife = array();
+        $aliases_hundred = array();
+        $aliases_other = array();
+        while ($a = $aliases->next()) {
+            if ($a['forlife']) {
+                $aliases_forlife[] = $a;
+            } elseif ($a['hundred_year']) {
+                $aliases_hundred[] = $a;
+            } else {
+                $aliases_other[] = $a;
+            }
+        }
+        $page->assign('aliases_forlife', $aliases_forlife);
+        $page->assign('aliases_hundred', $aliases_hundred);
+        $page->assign('aliases_other', $aliases_other);
 
         $alias = XDB::fetchOneCell('SELECT  COUNT(email)
                                       FROM  email_source_account
index 4267818..6fcd13e 100644 (file)
 {/literal}
 
 <fieldset>
-  <legend>{icon name="email"} Mes adresses polytechniciennes à vie</legend>
+  <legend>{icon name="email"} Mes adresses polytechniciennes</legend>
 
   <div>
-    Tes adresses polytechniciennes sont&nbsp;:<br />
-    <div>
-      {iterate from=$aliases item=a}
-      <label>
-        <input type='radio' {if $a.bestalias}checked="checked"{/if} name='best' value='{$a.email}' />
-        <strong>{$a.email}</strong>
-      </label>&nbsp;{if $a.forlife}(**){/if}{if $a.hundred_year}(*){/if}
-      {if $a.expire}<span class='erreur'>(expire le {$a.expire|date_format})</span>{/if}
-      {if $a.alias}<a href="emails/alias">(changer ou supprimer mon alias melix)</a>{/if}
-      <br />
-      {/iterate}
-    </div>
+    Tes adresses polytechniciennes sont&nbsp;:
+    <dl>
+    {if $aliases_forlife|@count}
+      <dt>Adresses garanties à vie</dt>
+      <dd>
+        {foreach from=$aliases_forlife item=a}
+        <label>
+          <input type='radio' {if $a.bestalias}checked="checked"{/if} name='best' value='{$a.email}' />
+          <strong>{$a.email}</strong>
+        </label>
+        {if $a.expire}<span class='erreur'>(expire le {$a.expire|date_format})</span>{/if}
+        <br />
+        {/foreach}
+      </dd>
+    {/if}
+    <br/>
+    {if $aliases_hundred|@count}
+      <dt>Adresses garanties 100 ans (*)</dt>
+      <dd>
+        {foreach from=$aliases_hundred item=a}
+        <label>
+          <input type='radio' {if $a.bestalias}checked="checked"{/if} name='best' value='{$a.email}' />
+          <strong>{$a.email}</strong>
+        </label>
+        {if $a.expire}<span class='erreur'>(expire le {$a.expire|date_format})</span>{/if}
+        <br />
+        {/foreach}
+      </dd>
+    {/if}
+    <br/>
+    {if $aliases_other|@count}
+      <dt>Autres adresses (**)</dt>
+      <dd>
+        {foreach from=$aliases_other item=a}
+        <label>
+          <input type='radio' {if $a.bestalias}checked="checked"{/if} name='best' value='{$a.email}' />
+          <strong>{$a.email}</strong>
+        </label>
+        {if $a.expire}<span class='erreur'>(expire le {$a.expire|date_format})</span>{/if}
+        {if $a.alias}<a href="emails/alias">(changer ou supprimer mon alias melix)</a>{/if}
+        <br />
+        {/foreach}
+      </dd>
+    {/if}
+    </dl>
     <p class="smaller">
     L'adresse cochée est celle que tu utilises le plus (et qui sera donc affichée sur ta carte de visite, ta fiche&hellip;).
     <br />Coche une autre case pour en changer&nbsp;!
 
 <p class="smaller">
 {assign var="profile" value=$smarty.session.user->profile()}
-(*) ces adresses email te sont réservées pour une période 100 ans après ton entrée à l'X (dans ton cas, jusqu'en {$profile->yearpromo()+100}).
-</p>
-<p class="smaller">
-(**) ces adresses email te sont réservées à vie.
+(*) Ces adresses email te sont réservées pour une période de 100 ans après ton entrée à l'X (dans ton cas, jusqu'en {$profile->yearpromo()+100}).
 </p>
 <p class="smaller">
+{if $aliases_other|@count}(**) {/if}
 {if $homonyme}
 Tu as un homonyme donc tu ne peux pas profiter de l'alias {$homonyme}@{$main_email_domain}. Si quelqu'un essaie
 d'envoyer un email à cette adresse par mégarde il recevra une réponse d'un robot lui expliquant l'ambiguité et lui