{
if(Ajax.xml_client.readyState == 4) {
if (Ajax.xml_client.status == 200) {
- document.getElementById(obj).innerHTML = Ajax.xml_client.responseText;
+ if (obj != null) {
+ document.getElementById(obj).innerHTML = Ajax.xml_client.responseText;
+ }
} else if (Ajax.xml_client.status == 403) {
window.location.reload();
}
}
function modify_one_email($email, $activate) {
+ $allinactive = true;
+ $thisone = false;
foreach ($this->emails as $i=>$mail) {
if ($mail->email == $email) {
- if ($activate)
- $this->emails[$i]->activate($this->uid);
- else
- $this->emails[$i]->deactivate($this->uid);
+ $thisone = $i;
}
+ $allinactive &= !$mail->active || $mail->email == $email;
}
+ if ($thisone === false) {
+ return ERROR_INVALID_EMAIL;
+ }
+ if ($allinactive || $activate)
+ $this->emails[$thisone]->activate($this->uid);
+ else
+ $this->emails[$thisone]->deactivate($this->uid);
+ if ($allinactive && !$activate) {
+ return ERROR_INACTIVE_REDIRECTION;
+ } else {
+ return SUCCESS;
+ }
}
+ function modify_one_email_redirect($email, $redirect) {
+ foreach ($this->emails as $i=>$mail) {
+ if ($mail->email == $email) {
+ $this->emails[$i]->rewrite($redirect, $this->uid);
+ return;
+ }
+ }
+ }
// }}}
}
// }}}
// {{{ function get_request()
- function get_request($uid)
+ static function get_request($uid)
{
return parent::get_typed_request($uid,'alias');
}
);
}
- function handler_emails(&$page)
+ function handler_emails(&$page, $action = null, $email = null)
{
global $globals;
$uid = S::v('uid');
- if (Post::has('best')) {
+ if ($action == 'best' && $email) {
// bestalias is the first bit : 1
// there will be maximum 8 bits in flags : 255
XDB::execute("UPDATE aliases SET flags=flags & (255 - 1) WHERE id={?}", $uid);
XDB::execute("UPDATE aliases SET flags=flags | 1 WHERE id={?} AND alias={?}",
- $uid, Post::v('best'));
+ $uid, $email);
}
// on regarde si on a affaire à un homonyme
$redirect = new Redirect(S::v('uid'));
if ($action == 'remove' && $email) {
- $page->assign('retour', $redirect->delete_email($email));
+ $retour = $redirect->delete_email($email);
+ $page->assign('retour', $retour);
}
-
+
+ if ($action == 'active' && $email) {
+ $redirect->modify_one_email($email, true);
+ }
+
+ if ($action == 'inactive' && $email) {
+ $redirect->modify_one_email($email, false);
+ }
+
+ if ($action == 'rewrite' && $email) {
+ $rewrite = @func_get_arg(3);
+ $redirect->modify_one_email_redirect($email, $rewrite);
+ }
+
if (Env::has('emailop')) {
$actifs = Env::v('emails_actifs', Array());
+ print_r(Env::v('emails_rewrite'));
if (Env::v('emailop') == "ajouter" && Env::has('email')) {
$page->assign('retour', $redirect->add_email(Env::v('email')));
} elseif (empty($actifs)) {
$page->assign('emails',$redirect->emails);
}
- function handler_antispam(&$page)
+ function handler_antispam(&$page, $statut_filtre = null)
{
require_once 'emails.inc.php';
$page->changeTpl('emails/antispam.tpl');
$bogo = new Bogo(S::v('uid'));
- if (Env::has('statut_filtre')) {
- $bogo->change(S::v('uid'), Env::i('statut_filtre'));
+ if (isset($statut_filtre)) {
+ $bogo->change(S::v('uid'), $statut_filtre + 0);
}
$page->assign('filtre',$bogo->level());
}
</h1>
{if $actuel}
-<form action="emails/alias/set/{if $mail_public}private{else}public{/if}" method='post'>
+<script type="text/javascript" src="javascript/ajax.js"></script>
<table class="flags">
<tr>
<td class="orange">
- <input type="checkbox" {if $mail_public}checked="checked"{/if} onclick="this.form.submit()" />
+ <input type="checkbox" {if $mail_public}checked="checked"{/if}
+ onclick="
+ Ajax.update_html(null,'{$globals->baseurl}/emails/alias/set/'+(this.checked?'public':'private'));
+ document.getElementById('mail_public').innerHTML = (this.checked?'public et apparaît donc sur ta fiche':'privé et n\'apparaît nulle part sur le site') + '.';
+ " />
</td>
<td>
Ton alias est actuellement : <strong>{$actuel}</strong>. Il est pour l'instant
- {if $mail_public}public et apparaît donc sur ta fiche.{else}privé et n'apparaît nulle part sur le site{/if}
+ <span id="mail_public">{if $mail_public}public et apparaît donc sur ta fiche.{else}privé et n'apparaît nulle part sur le site.{/if}</span>
</td>
</tr>
</table>
-</form>
{else}
<p>
qui ne peuvent plus se satisfaire du réglage 3.
</li>
</ol>
-<form action="emails/antispam" method="post">
+<script type="text/javascript" src="javascript/ajax.js"></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='this.form.submit()' />
+ <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>
<br />
- <input id='s1' type='radio' name='statut_filtre' value='1' {if $filtre eq 1}checked="checked"{/if} onclick='this.form.submit()' />
+ <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>
<br />
- <input id='s2' type='radio' name='statut_filtre' value='2' {if $filtre eq 2}checked="checked"{/if} onclick='this.form.submit()' />
+ <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>
<br />
- <input id='s3' type='radio' name='statut_filtre' value='3' {if $filtre eq 3}checked="checked"{/if} onclick='this.form.submit()' />
+ <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>
</fieldset>
-</form>
<p>
Evidemment, <strong>le système n'étant pas infaillible, il est possible qu'un
<h1>Gestion de mes courriers électroniques</h1>
+<script type="text/javascript" src="javascript/ajax.js">
+</script>
<table class="bicol">
<tr>
<th>Mes adresses polytechniciennes à vie</th>
<tr class="impair">
<td>
Tes adresses polytechniciennes sont :<br /><br />
- <form method='post' action='emails'>
<div>
{iterate from=$aliases item=a}
- <input type='radio' {if $a.best}checked="checked"{/if} name='best' value='{$a.alias}' onclick='this.form.submit()' />
+ <input type='radio' {if $a.best}checked="checked"{/if} name='best' value='{$a.alias}' onclick='Ajax.update_html(null,"{$globals->baseurl}/emails/best/{$a.alias}")' />
{if $a.a_vie}(**){/if}{if $a.cent_ans}(*){/if} <strong>{$a.alias}</strong>@{#globals.mail.domain#} et @{#globals.mail.domain2#}
{if $a.expire}<span class='erreur'>(expire le {$a.expire|date_format})</span>{/if}
<br />
{/iterate}
</div>
- </form>
<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 !
{#globals.mail.domain2#}, ou lorsque tu utilises notre
<a href="Docs/SMTPS%E9curis%E9">service d'envoi de courrier SMTP sécurisé</a>.
</p>
-<form action="emails/redirect" method="post">
+<script type="text/javascript" src="javascript/ajax.js"></script>
<div class="center">
<table class="bicol" summary="Adresses de redirection">
<tr>
</strong>
</td>
<td>
- <input type="checkbox" name="emails_actifs[]" value="{$e->email}" {if $e->active}checked="checked"{/if} /></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>
<td>
- <select name="emails_rewrite[{$e->email}]">
+ <select onchange="Ajax.update_html(null,'{$globals->baseurl}/emails/redirect/rewrite/{$e->email}/'+this.value)">
<option value=''>--- aucune ---</option>
{foreach from=$alias item=a}
<option {if $e->rewrite eq "`$a.alias`@polytechnique.org"}selected='selected'{/if}
{/foreach}
</select>
</td>
- <td><a href="emails/redirect/remove/{$e->email}">retirer</a></td>
+ <td><a href="emails/redirect/remove/{$e->email}">{icon name=bin_empty title="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" />
+ </div>
+ </form>
</td></tr>
</table>
- <br />
- <input type="submit" value="Valider les modifications" name="emailop" />
</div>
-</form>
{if $panne}
<p class="smaller">
<strong>
</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 :
+ l'équipe de Polytechnique.org te conseille de rediriger :
</p>
<ul>
<li>«prenom.nom»@polytechnique.edu vers {$smarty.session.forlife}@{#globals.mail.domain#}</li>