Close #595.
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Mon, 26 Feb 2007 17:03:09 +0000 (17:03 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Mon, 26 Feb 2007 17:03:09 +0000 (17:03 +0000)
Factorize [1479] in order to use it in several purpose

git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1523 839d8a87-29fc-0310-9880-83ba4fa771e5

ChangeLog
htdocs/javascript/ajax.js
modules/xnetgrp.php
templates/emails/antispam.tpl
templates/emails/index.tpl
templates/emails/redirect.tpl
templates/search/quick.tpl

index 604250f..91911aa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,9 @@ Bug/Wish:
     * Carnet:
         - #510: Use RSS hash to get iCal                                   -FRU
 
+    * Emails:
+        - #595: Update antispam description                                -FRU
+
     * Profile:
         - Better checks on image type for photos                           -FRU
 
index 2bf3c02..71382a9 100644 (file)
@@ -69,4 +69,44 @@ Ajax = {
     }
 }
 
+var currentTempMessage = 0;
+function setOpacity(obj, opacity)
+{
+  opacity = (opacity == 100)?99:opacity;
+  // IE
+  obj.style.filter = "alpha(opacity:"+opacity+")";
+  // Safari < 1.2, Konqueror
+  obj.style.KHTMLOpacity = opacity/100;
+  // Old Mozilla
+  obj.style.MozOpacity = opacity/100;
+  // Safari >= 1.2, Firefox and Mozilla, CSS3
+  obj.style.opacity = opacity/100
+}
+
+function _showTempMessage(id, state, back)
+{
+    var obj = document.getElementById(id);
+    if (currentTempMessage != state) {
+        return;
+    }   
+    setOpacity(obj, back * 5);
+    if (back > 0) {
+        setTimeout("_showTempMessage('" + id + "', " + currentTempMessage + "," + (back-1) + ")", 100);
+    } else {
+        obj.innerHTML = "";
+    }
+}
+
+function showTempMessage(id, message, success)
+{
+    var obj = document.getElementById(id);
+    obj.innerHTML = (success ? "<img src='images/icons/wand.gif' alt='' /> "
+                             : "<img src='images/icons/error.gif' alt='' /> ") + message;
+    obj.style.fontWeight = "bold";
+    obj.style.color = (success ? "green" : "red");;
+    currentTempMessage++;
+    setOpacity(obj, 100);
+    setTimeout("_showTempMessage('" + id + "', " + currentTempMessage + ", 20)", 700);
+}
+
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
index b677692..2383b30 100644 (file)
@@ -656,11 +656,14 @@ class XnetGrpModule extends PLModule
             return;
         }
 
-        list(,$fqdn) = explode('@', $email);
-        $fqdn = strtolower($fqdn);
-        $x = ($fqdn == 'polytechnique.org' || $fqdn == 'melix.org' ||
-              $fqdn == 'm4x.org' || $fqdn == 'melix.net');
-
+        if (strpos($email, '@') === false) {
+            $x = true;
+        } else {
+            list(,$fqdn) = explode('@', $email, 2);
+            $fqdn = strtolower($fqdn);
+            $x = ($fqdn == 'polytechnique.org' || $fqdn == 'melix.org' ||
+                  $fqdn == 'm4x.org' || $fqdn == 'melix.net');
+        }
         if ($x) {
             require_once 'user.func.inc.php';
             if ($forlife = get_user_forlife($email)) {
@@ -675,6 +678,7 @@ class XnetGrpModule extends PLModule
                 $page->trig($email." n'est pas un alias polytechnique.org valide");
             }
         } else {
+            require_once 'xorg.misc.inc.php';
             if (isvalid_email($email)) {
                 if (Env::v('x') && Env::has('userid') && Env::i('userid')) {
                     $uid = Env::i('userid');
index b3ad69e..4ec1279 100644 (file)
 {include file=../spool/wiki.d/cache_Xorg.Antispam.tpl part=1 included=1}
 
 <script type="text/javascript" src="javascript/ajax.js"></script>
+<script type="text/javascript">//<![CDATA[
+  {literal}
+  function bogoUpdated()
+  {
+    showTempMessage('bogo-msg', "Le changement de réglage de l'antispam a bien été effectué.", true);
+  }
+  {/literal}
+</script>
   <fieldset>
     <legend><strong>Choisis ton propre réglage :</strong></legend>
-    <input id='s0' type='radio' name='statut_filtre' value='0' {if $filtre eq 0}checked="checked"{/if} onclick="Ajax.update_html(null, '{$globals->baseurl}/emails/antispam/'+this.value)" />
-    <label for='s0'>(1) le filtre anti-spam est coupé</label>
+    <input id='s0' type='radio' name='statut_filtre' value='0' {if $filtre eq 0}checked="checked"{/if} onclick="Ajax.update_html(null, '{$globals->baseurl}/emails/antispam/'+this.value, bogoUpdated)" />
+    <label for='s0'>(1) le filtre anti-spam n'agit pas sur tes mails</label>
     <br />
-    <input id='s1' type='radio' name='statut_filtre' value='1' {if $filtre eq 1}checked="checked"{/if} onclick="Ajax.update_html(null, '{$globals->baseurl}/emails/antispam/'+this.value)" />
-    <label for='s1'>(2) le filtre anti-spam est activé, et marque les mails</label>
+    <input id='s1' type='radio' name='statut_filtre' value='1' {if $filtre eq 1}checked="checked"{/if} onclick="Ajax.update_html(null, '{$globals->baseurl}/emails/antispam/'+this.value, bogoUpdated)" />
+    <label for='s1'>(2) le filtre anti-spam marque les mails</label>
     <br />
-    <input id='s2' type='radio' name='statut_filtre' value='2' {if $filtre eq 2}checked="checked"{/if} onclick="Ajax.update_html(null, '{$globals->baseurl}/emails/antispam/'+this.value)" />
-    <label for='s2'>(3) le filtre anti-spam est activé, marque les mails, et élimine les spams avec des notes les plus hautes</label>
+    <input id='s2' type='radio' name='statut_filtre' value='2' {if $filtre eq 2}checked="checked"{/if} onclick="Ajax.update_html(null, '{$globals->baseurl}/emails/antispam/'+this.value, bogoUpdated)" />
+    <label for='s2'>(3) le filtre anti-spam marque les mails, et élimine les spams avec des notes les plus hautes</label>
     <br />
-    <input id='s3' type='radio' name='statut_filtre' value='3' {if $filtre eq 3}checked="checked"{/if} onclick="Ajax.update_html(null, '{$globals->baseurl}/emails/antispam/'+this.value)" />
-    <label for='s3'>(4) le filtre anti-spam est activé, et élimine les mails détectés comme spams</label>
+    <input id='s3' type='radio' name='statut_filtre' value='3' {if $filtre eq 3}checked="checked"{/if} onclick="Ajax.update_html(null, '{$globals->baseurl}/emails/antispam/'+this.value, bogoUpdated)" />
+    <label for='s3'>(4) le filtre anti-spam élimine les mails détectés comme spams</label>
   </fieldset>
 
+  <div id="bogo-msg" style="position:absolute;"></div><br />
+
 {include file=../spool/wiki.d/cache_Xorg.Antispam.tpl part=2 included=1}
 
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
index 04048cb..fa0d53e 100644 (file)
 </script>
 {literal}
 <script type="text/javascript">
-var bestaliasUpdatedLevel = 0; 
-function setOpacity(elName,opacity) {
-  opacity = (opacity == 100)?99:opacity;
-  el = document.getElementById(elName);
-  // IE
-  el.style.filter = "alpha(opacity:"+opacity+")";
-  // Safari < 1.2, Konqueror
-  el.style.KHTMLOpacity = opacity/100;
-  // Old Mozilla
-  el.style.MozOpacity = opacity/100;
-  // Safari >= 1.2, Firefox and Mozilla, CSS3
-  el.style.opacity = opacity/100
-}
-function bestaliasUpdated(htmltxt, back) {
-       var msg = document.getElementById('bestalias-msg');
-       if (back == null) {
-               msg.innerHTML = "Le changement a bien été effectué.";
-               msg.style.fontWeight="bold";
-               msg.style.color = "green";
-               bestaliasUpdatedLevel++;
-               setOpacity('bestalias-msg', 100);
-               setTimeout("bestaliasUpdated("+bestaliasUpdatedLevel+",20)", 700);
-               return;
-       }
-       if (bestaliasUpdatedLevel != htmltxt) {
-               return;
-       }
-       setOpacity('bestalias-msg', back * 5);
-       if (back > 0)
-       {
-               setTimeout("bestaliasUpdated("+bestaliasUpdatedLevel+","+(back-1)+")", 100);
-       }
-       else
-       {
-               msg.innerHTML = "";
-       }
-}
+  function bestaliasUpdated() {
+    showTempMessage('bestalias-msg', "Le changement a bien été effectué.", true);
+  }
 </script>      
 {/literal}
 <table class="bicol">
@@ -80,7 +46,7 @@ function bestaliasUpdated(htmltxt, back) {
           <br />
           {/iterate}
         </div>
-      <div id="bestalias-msg" style="position:absolute"></div>
+      <div id="bestalias-msg" style="position:absolute;"></div>
       <br />
       L'adresse cochée est celle que tu utilises le plus (et qui sera donc affichée sur ta carte de visite, ta fiche, etc...).
       Coche une autre case pour en changer !
index 3147c30..8cda86e 100644 (file)
     {#globals.mail.domain2#}, ou lorsque tu utilises notre
     <a href="Xorg/SMTPS%E9curis%E9">service d'envoi de courrier SMTP sécurisé</a>.
   </p>
-<script type="text/javascript" src="javascript/ajax.js"></script>
+
+  <script type="text/javascript" src="javascript/ajax.js"></script>
+  <script type="text/javascript">//<![CDATA[
+    {literal}
+    function redirectUpdate()
+    {
+        showTempMessage('redirect-msg', "Tes redirections ont été mise à jour.", true);
+    }
+    {/literal}
+  //]]></script>
+  <div id="redirect-msg" style="position:absolute;"></div><br />
   <div class="center">
     <table class="bicol" summary="Adresses de redirection">
       <tr>
@@ -81,7 +91,7 @@
         <th>Réécriture</th>
         <th>&nbsp;</th>
       </tr>
-      {foreach from=$emails item=e}
+      {foreach from=$emails item=e name=redirect}
       <tr class="{cycle values="pair,impair"}">
         <td>
           <strong>
           </strong>
         </td>
         <td>
-          <input type="checkbox" value="{$e->email}" {if $e->active}checked="checked"{/if} onclick="Ajax.update_html(null,'{$globals->baseurl}/emails/redirect/'+(this.checked?'':'in')+'active/{$e->email}')"/></td>
+          <input type="checkbox" value="{$e->email}"
+                 {if $e->active}checked="checked"{/if}
+                 {if $smarty.foreach.redirect.total eq 1}disabled="disabled"{/if}
+                 onchange="Ajax.update_html(null,'{$globals->baseurl}/emails/redirect/'+(this.checked?'':'in')+'active/{$e->email}', redirectUpdate)" /></td>
         <td>
-          <select onchange="Ajax.update_html(null,'{$globals->baseurl}/emails/redirect/rewrite/{$e->email}/'+this.value)">
+          <select onchange="Ajax.update_html(null,'{$globals->baseurl}/emails/redirect/rewrite/{$e->email}/'+this.value, redirectUpdate)">
             <option value=''>--- aucune ---</option>
             {foreach from=$alias item=a}
             <option {if $e->rewrite eq "`$a.alias`@polytechnique.org"}selected='selected'{/if}
index 55c152e..49ff5a8 100644 (file)
@@ -50,7 +50,7 @@ En effet, le moteur de recherche va alors chercher tous les utilisateurs dont le
 contient 'Le' <strong>et</strong> 'Normand' sans distinction de casse et sans tenir compte des accents.
 </p>
 <p>
-Il est conseillé d'omettre les particules car il est possible que celle-ci ne soit pas présente dans
+Il est conseillé d'omettre les particules car il est possible que celles-ci ne soient pas présentes dans
 notre base de données.
 </p>