{**************************************************************************}
{* *}
-{* Copyright (C) 2003-2006 Polytechnique.org *}
+{* Copyright (C) 2003-2009 Polytechnique.org *}
{* http://opensource.polytechnique.org/ *}
{* *}
{* This program is free software; you can redistribute it and/or modify *}
{* *}
{**************************************************************************}
-{if $retour == $smarty.const.ERROR_INACTIVE_REDIRECTION}
- <p class="erreur">
- Tu ne peux pas avoir aucune adresse de redirection active, sinon ton adresse
- {$smarty.session.forlife}@{#globals.mail.domain#} ne fonctionnerait plus.
- </p>
-{/if}
-{if $retour == $smarty.const.ERROR_INVALID_EMAIL}
- <p class="erreur">
- Erreur: l'email n'est pas valide.
- </p>
-{/if}
-{if $retour == $smarty.const.ERROR_LOOP_EMAIL}
- <p class="erreur">
- Erreur: {$smarty.session.forlife}@{#globals.mail.domain#} ne doit pas être renvoyé
- vers lui-même, ni vers son équivalent en {#globals.mail.domain2#} ni vers polytechnique.edu.
- </p>
-{/if}
<h1>
Tes adresses de redirection
</h1>
<p>
- Tu configures ici les adresses emails vers lesquelles tes adresses (listées ci-dessous) sont dirigées :
+ Tu configures ici les adresses emails vers lesquelles tes adresses (listées ci-dessous) sont dirigées :
</p>
<ul>
{if $melix}
{/foreach}
</ul>
<p>
- Le routage est en place pour les adresses dont la case "<strong>Actif</strong>" est cochée.
- Si tu modifies souvent ton routage, tu as tout intérêt à rentrer toutes les
+ Le routage est en place pour les adresses dont la case "<strong>Actif</strong>" est cochée.
+ Si tu modifies souvent ton routage, tu as tout intérêt à rentrer toutes les
adresses qui sont susceptibles de recevoir ton routage, de sorte qu'en
jouant avec les cases "<strong>Actif</strong>" tu pourras facilement mettre en place les unes
ou bien les autres.
</p>
<p>
- Enfin, la <strong>réécriture</strong> consiste à substituer à ton adresse email habituelle
- (adresse wanadoo, yahoo, free, ou autre) ton adresse {#globals.mail.domain#} ou
- {#globals.mail.domain2#} dans l'adresse d'expédition de tes messages, lorsque le courrier
- passe par nos serveurs. Ceci arrive lorsque tu écris à un camarade sur son adresse {#globals.mail.domain#} ou
+ Enfin, la <strong>réécriture</strong> consiste à substituer à ton adresse email habituelle
+ (adresse gmail, orange, free, ou autre) ton adresse {#globals.mail.domain#} ou
+ {#globals.mail.domain2#} dans l'adresse d'expédition de tes messages, lorsque le courrier
+ passe par nos serveurs. Ceci arrive lorsque tu écris à un camarade sur son adresse {#globals.mail.domain#} ou
{#globals.mail.domain2#}, ou lorsque tu utilises notre
- <a href="Docs/SMTPS%E9curis%E9">service d'envoi de courrier SMTP sécurisé</a>.
+ <a href="Xorg/SMTPSecurise">service d'envoi de courrier SMTP sécurisé</a>.
</p>
-<form action="emails/redirect" method="post">
+
+ {javascript name=ajax}
+ <script type="text/javascript">//<![CDATA[
+ {literal}
+ function activeEnable()
+ {
+ var remove = $(".active_email:checked");
+ if (remove.length <= 1) {
+ remove.attr("disabled", "disabled");
+ remove.parent('td').parent('tr').children('td').children('.remove_email').hide();
+ } else {
+ remove.removeAttr("disabled");
+ $('.remove_email').show();
+ }
+ }
+
+ function redirectUpdate()
+ {
+ showTempMessage('redirect-msg', "Tes redirections ont été mises à jour.", true);
+ activeEnable();
+ }
+
+ function removeRedirect(link, email)
+ {
+ if (confirm("Supprimer l'adresse " + email + " ?")) {
+ $.get(link.href, {},function() {
+ $('tr[@id=line_' + email.replace('@', '_at_') + ']').remove();
+ showRemove();
+ activeEnable();
+ });
+ }
+ return false;
+ }
+
+ function showRemove()
+ {
+ var removeLinks = $('.remove_email');
+ if (removeLinks.length == 1) {
+ removeLinks.hide();
+ } else {
+ removeLinks.show();
+ }
+ }
+
+ function updateRedirect(checked, email)
+ {
+ activeEnable();
+ Ajax.update_html(null, 'emails/redirect/' + (checked ? '' : 'in') + 'active/' + email, redirectUpdate);
+ }
+
+ function rewriteUpdate(mail, allow, box)
+ {
+ return function() {
+ if (!allow) {
+ if (box.value != '') {
+ alert("Un mail de validation vient d'être envoyer sur " + mail
+ + ". La réécriture ne sera active que lorsque tu auras cliqué sur le lien indiqué dans ce mail.");
+ }
+ }
+ redirectUpdate();
+ };
+ }
+
+ {/literal}
+ //]]></script>
+ {test_email}
+ <div id="redirect-msg" style="position:absolute;"></div><br />
<div class="center">
<table class="bicol" summary="Adresses de redirection">
<tr>
- <th>Email</th>
+ <th>Redirection</th>
<th>Actif</th>
- <th>Réécriture</th>
+ <th>Réécriture</th>
<th> </th>
</tr>
- {foreach from=$emails item=e}
- <tr class="{cycle values="pair,impair"}">
+ {foreach from=$emails item=e name=redirect}
+ <tr class="{cycle values="pair,impair"}" id="line_{$e->email|replace:'@':'_at_'}">
<td>
<strong>
- {if $e->broken}<span class="erreur">{/if}
- {$e->email}
- {if $e->broken}{icon name=error title="En panne"}</span>{/if}
+ {if $e->broken}<span class="erreur">{assign var="erreur" value="1"}{/if}
+ {if $e->panne neq '0000-00-00'}{assign var="panne" value="1"}{icon name=error title="En panne"}{/if}
+ {$e->display_email}
+ {if $e->broken}</span>{/if}
</strong>
</td>
<td>
- <input type="checkbox" name="emails_actifs[]" value="{$e->email}" {if $e->active}checked="checked"{/if} /></td>
- <td>
- <select name="emails_rewrite[{$e->email}]">
+ <input type="checkbox" value="{$e->email}" {if $e->sufficient}class="active_email"{/if}
+ {if $e->active}checked="checked"{/if}
+ {if $smarty.foreach.redirect.total eq 1}disabled="disabled"{/if}
+ onchange="updateRedirect(this.checked, '{$e->email}')" /></td>
+ <td style="text-align: left">
+ {if $e->has_rewrite()}
+ <select onchange="Ajax.update_html(null,'emails/redirect/rewrite/{$e->email}/'+this.value, rewriteUpdate('{$e->email}', {$e->allow_rewrite|default:"0"}, this))">
<option value=''>--- aucune ---</option>
+ {assign var=dom1 value=#globals.mail.domain#}
+ {assign var=dom2 value=#globals.mail.domain2#}
{foreach from=$alias item=a}
- <option {if $e->rewrite eq "`$a.alias`@polytechnique.org"}selected='selected'{/if}
- value='{$a.alias}@polytechnique.org'>{$a.alias}@polytechnique.org</option>
- <option {if $e->rewrite eq "`$a.alias`@m4x.org"}selected='selected'{/if}
- value='{$a.alias}@m4x.org'>{$a.alias}@m4x.org</option>
+ <option {if $e->rewrite eq "`$a.alias`@`$dom1`"}selected='selected'{/if}
+ value='{$a.alias}@{#globals.mail.domain#}'>{$a.alias}@{#globals.mail.domain#}</option>
+ <option {if $e->rewrite eq "`$a.alias`@`$dom2`"}selected='selected'{/if}
+ value='{$a.alias}@{#globals.mail.domain2#}'>{$a.alias}@{#globals.mail.domain2#}</option>
{/foreach}
</select>
+ {if $e->rewrite neq '' && !$e->allow_rewrite}{icon name="error" title="en attente de validation"}{/if}
+ {else}
+ <em>pas de réécriture</em>
+ {/if}
+ </td>
+ <td>
+ {if $e->is_removable()}
+ <a href="emails/redirect/remove/{$e->email}"
+ class="remove_email"
+ onclick="return removeRedirect(this, "{$e->email}");" >
+ {icon name=cross title="Supprimer"}
+ </a>
+ {else}
+ {if $e->sufficient}<span class="remove_email"></span>{/if}
+ <a href="emails/redirect#{$e->email}">{icon name=information title="Plus d'informations"}</a>
+ {/if}
</td>
- <td><a href="emails/redirect/remove/{$e->email}">retirer</a></td>
</tr>
{/foreach}
<tr class="{cycle values="pair,impair"}"><td colspan="4">
- <br />
- Ajouter une adresse email :
- <input type="text" size="35" maxlength="60" name="email" value="" />
- <input type="submit" value="ajouter" name="emailop" />
+ <form action="emails/redirect" method="post">
+ <div>
+ <br />
+ Ajouter une adresse email :
+ <input type="text" size="35" maxlength="60" name="email" value="" />
+ <input type="submit" value="ajouter" name="emailop" />
+ {xsrf_token_field}
+ </div>
+ </form>
</td></tr>
</table>
- <br />
- <input type="submit" value="Valider les modifications" name="emailop" />
+ <script type="text/javascript">showRemove(); activeEnable();</script>
</div>
-</form>
+{if $panne}
<p class="smaller">
- Les adresses marquées {icon name=error title="En panne"} sont des adresses qui sont considérées comme étant en panne
- depuis plusieurs mois. Si tu penses qu'il s'agit d'une erreur, tu peux la réactiver. Si une nouvelle panne était détectée
- sur cette adresse, elle serait immédiatement redésactivée.
+ <strong>
+ {icon name=error title="En panne"}
+ <a href="Xorg/Pannes">Panne :</a>
+ </strong>
+ les adresses marquées de cette icône sont des adresses de redirection pour lesquelles une panne
+ a été détectée. Si le problème persiste, la redirection vers ces adresses sera désactivée.
</p>
+{/if}
+{if $erreur}
+<p class="smaller">
+ <strong>
+ {icon name=error title="En panne"}
+ <a href="Xorg/Pannes" style="color: #f00">Panne durable :</a>
+ </strong>
+ les adresses en rouge sont des adresses qui ont été désactivées en raison d'un grand nombre de pannes. Si tu penses que
+ le problème est résolu, tu peux les réactiver, mais l'adresse sera redésactivée si les problèmes persistent.
+</p>
+{/if}
+{if $smarty.session.mx_failures|@count}
+<fieldset>
+ <legend>{icon name=error} Des problèmes sont actuellement recontrés sur tes redirections suivantes</legend>
+ {foreach from=$smarty.session.mx_failures item=mail}
+ <div>
+ <span class="erreur">{$mail.mail}</span>
+ <div class="explication">{$mail.text}</div>
+ </div>
+ {/foreach}
+</fieldset>
+{/if}
+
+{if #globals.mailstorage.googleapps_active# or #globals.mailstorage.imap_active# or hasPerm('admin') or $googleapps}
+<h1>Tes comptes de stockage de courrier</h1>
+{/if}
+{if #globals.mailstorage.imap_active# or hasPerm('admin')}
+<p id="imap">
+ Polytechnique.org te propose de conserver les emails que tu reçois, pendant une durée limitée (environ 30 jours).
+ Grâce à ce service, tu disposes d'une sauvegarde de tes emails en secours, au cas où, par exemple, tu effacerais
+ un email par erreur.<br />
+ <strong>Attention :</strong> il ne s'agit que d'un service de secours, dont la disponibilité n'est pas garantie.
+</p>
+
+<table class="bicol" summary="Compte de stockage">
+ <col width="55%" />
+ <col width="45%" />
+ <tr>
+ <th colspan="2">Compte de stockage</th>
+ </tr>
+ <tr class="pair">
+ <td>
+ <a href="Xorg/IMAP">
+ <strong>Accès de secours aux emails (IMAP)</strong>
+ </a><br />Hébergé par Polytechnique.org
+ </td>
+ <td style="text-align: center; vertical-align: middle">
+ <a href="emails/redirect#line_imap">Voir l'état de la redirection vers l'IMAP</a>
+ </td>
+ </tr>
+</table>
+{/if}
-<h1>Pour les Élèves (non encore diplômés)</h1>
+{if #globals.mailstorage.googleapps_active# or hasPerm('admin') or $googleapps}
+<br />
+<p id="googleapps">
+ Grâce à un partenariat avec Google, Polytechnique.org te propose également un compte
+ <b>Google Apps</b>, qui te permet de disposer des services Google (GMail pour
+ tes emails, Google Calendar, Google Docs, ...) sur une adresse polytechnique.org.
+</p>
+
+<table class="bicol" summary="Compte de stockage" id="googleapps">
+ <col width="55%" />
+ <col width="45%" />
+ <tr>
+ <th colspan="2">Compte de stockage</th>
+ </tr>
+ <tr class="pair">
+ {if $googleapps eq 'active'}
+ <td>
+ <a href="googleapps">
+ <strong>Compte Google Apps / Polytechnique.org</strong>
+ </a><br />Hébergé par Google
+ </td>
+ <td style="text-align: center; vertical-align: middle">
+ Ton compte Google Apps est actif.<br />
+ <a href="emails/redirect#line_googleapps">Voir l'état de la redirection vers GMail</a>
+ </td>
+ {else}
+ <td colspan="2">
+ {if $googleapps eq 'disabled'}
+ Ton compte Google Apps est actuellement inactif.<br />
+ {else}
+ Tu n'as pas encore de compte Google Apps pour Polytechnique.org.<br />
+ {/if}
+ <a href="googleapps">Plus d'informations …</a>
+ </td>
+ {/if}
+ </tr>
+</table>
+{/if}
+
+{if $eleve}
+<h1>Pour les Élèves (non encore diplômés)</h1>
<p>
- L'X te fournit aussi une adresse à vie en <strong>«prenom.nom»@polytechnique.edu</strong> qui par défaut est
- une redirection vers «login»@poly.polytechnique.fr. <a href="https://mail.polytechnique.edu/">
+ L'X te fournit aussi une adresse à vie en <strong>«prenom.nom»@polytechnique.edu</strong> qui par défaut est
+ une redirection vers «login»@poly.polytechnique.fr. <a href="https://www.mail.polytechnique.edu/">
Tu peux modifier cette redirection</a> et la faire pointer vers ton adresse
- {$smarty.session.forlife}@{#globals.mail.domain#} (attention, cela demande de la concentration).
+ {$user->forlifeEmail()} (attention, cela demande de la concentration).
</p>
<p>
- Si tu utilises le service POP de poly pour récupérer tes mails dans ton logiciel de courrier,
- l'équipe de Polytechnique.org te conseille de rediriger :
+ Si tu utilises le service POP de poly pour récupérer tes emails dans ton logiciel de courrier,
+ l'équipe de Polytechnique.org te conseille de rediriger :
</p>
<ul>
- <li>«prenom.nom»@polytechnique.edu vers {$smarty.session.forlife}@{#globals.mail.domain#}</li>
- <li>{$smarty.session.forlife}@{#globals.mail.domain#} vers «login»@poly.polytechnique.fr</li>
+ <li>«prenom.nom»@polytechnique.edu vers {$user->forlifeEmail()} ;</li>
+ <li>{$user->forlifeEmail()} vers «login»@poly.polytechnique.fr.</li>
</ul>
+<p>
+ Attention à ne pas faire une boucle quand tu manipules tes redirections ! Tes emails seraient
+ alors perdus, jusqu'à ce que tu règles le problème.
+</p>
+{/if}
-{* vim:set et sw=2 sts=2 sws=2: *}
+{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}