From b75820153a6ad3d15a33472aa008e8d3225b6d81 Mon Sep 17 00:00:00 2001 From: x2001corpet Date: Sun, 26 Nov 2006 22:07:50 +0000 Subject: [PATCH] ajax sur le module mes emails git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1179 839d8a87-29fc-0310-9880-83ba4fa771e5 --- htdocs/images/icons/bin_empty.gif | Bin 0 -> 1042 bytes htdocs/javascript/ajax.js | 4 +++- include/emails.inc.php | 28 ++++++++++++++++++++++++---- include/validations/aliases.inc.php | 2 +- modules/email.php | 31 +++++++++++++++++++++++-------- templates/emails/alias.tpl | 11 +++++++---- templates/emails/antispam.tpl | 11 +++++------ templates/emails/index.tpl | 6 +++--- templates/emails/redirect.tpl | 25 +++++++++++++------------ 9 files changed, 79 insertions(+), 39 deletions(-) create mode 100644 htdocs/images/icons/bin_empty.gif diff --git a/htdocs/images/icons/bin_empty.gif b/htdocs/images/icons/bin_empty.gif new file mode 100644 index 0000000000000000000000000000000000000000..337e0e2d7cca5ef0df06e3d87b4bdb0b96fe4cd8 GIT binary patch literal 1042 zcmV+t1nv7rNk%w1VGsZi0QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW00930EC2ui01yBW07nS#0RIUbNU-2PRl(ksTNlrrtyI{SLF-g2 z4?$S10ELt1?i;mn=$PU8N2wOQa@(|NgXiX1GH8!-nK3vAjw48o9$9kKMvcH%tWc2( zl`9n~RH90OGDhehD09D{Rnu0k9v)-OrbUYNMxY=*r?g?4W=0MiHfYL-`C{B!a^9$c5<@T! MS~6hT{tE~IJ1^b%q5uE@ literal 0 HcmV?d00001 diff --git a/htdocs/javascript/ajax.js b/htdocs/javascript/ajax.js index 155ae06..5d34faf 100644 --- a/htdocs/javascript/ajax.js +++ b/htdocs/javascript/ajax.js @@ -52,7 +52,9 @@ Ajax = { { 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(); } diff --git a/include/emails.inc.php b/include/emails.inc.php index c3852d3..eeb33b1 100644 --- a/include/emails.inc.php +++ b/include/emails.inc.php @@ -300,16 +300,36 @@ class Redirect } 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; + } + } + } // }}} } diff --git a/include/validations/aliases.inc.php b/include/validations/aliases.inc.php index 2f62e66..a6a3645 100644 --- a/include/validations/aliases.inc.php +++ b/include/validations/aliases.inc.php @@ -60,7 +60,7 @@ class AliasReq extends Validate // }}} // {{{ function get_request() - function get_request($uid) + static function get_request($uid) { return parent::get_typed_request($uid,'alias'); } diff --git a/modules/email.php b/modules/email.php index 6edfbd2..19cd346 100644 --- a/modules/email.php +++ b/modules/email.php @@ -35,7 +35,7 @@ class EmailModule extends PLModule ); } - function handler_emails(&$page) + function handler_emails(&$page, $action = null, $email = null) { global $globals; @@ -44,12 +44,12 @@ class EmailModule extends PLModule $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 @@ -198,11 +198,26 @@ class EmailModule extends PLModule $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)) { @@ -235,15 +250,15 @@ class EmailModule extends PLModule $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()); } diff --git a/templates/emails/alias.tpl b/templates/emails/alias.tpl index 86bd82b..e3979ec 100644 --- a/templates/emails/alias.tpl +++ b/templates/emails/alias.tpl @@ -36,19 +36,22 @@ {if $actuel} -
+
- + Ton alias est actuellement : {$actuel}. 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} + {if $mail_public}public et apparaît donc sur ta fiche.{else}privé et n'apparaît nulle part sur le site.{/if}
-
{else}

diff --git a/templates/emails/antispam.tpl b/templates/emails/antispam.tpl index e0d3acc..81c84f7 100644 --- a/templates/emails/antispam.tpl +++ b/templates/emails/antispam.tpl @@ -46,22 +46,21 @@ Quatre r qui ne peuvent plus se satisfaire du réglage 3. -

+
Choisis ton propre réglage : - +
- +
- +
- +
-

Evidemment, le système n'étant pas infaillible, il est possible qu'un diff --git a/templates/emails/index.tpl b/templates/emails/index.tpl index fcaf62f..da75c2f 100644 --- a/templates/emails/index.tpl +++ b/templates/emails/index.tpl @@ -22,6 +22,8 @@

Gestion de mes courriers électroniques

+ @@ -29,16 +31,14 @@
Mes adresses polytechniciennes à vie
Tes adresses polytechniciennes sont :

-
{iterate from=$aliases item=a} - + {if $a.a_vie}(**){/if}{if $a.cent_ans}(*){/if} {$a.alias}@{#globals.mail.domain#} et @{#globals.mail.domain2#} {if $a.expire}(expire le {$a.expire|date_format}){/if}
{/iterate}
-

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 ! diff --git a/templates/emails/redirect.tpl b/templates/emails/redirect.tpl index 8f25f32..cad27eb 100644 --- a/templates/emails/redirect.tpl +++ b/templates/emails/redirect.tpl @@ -72,7 +72,7 @@ {#globals.mail.domain2#}, ou lorsque tu utilises notre service d'envoi de courrier SMTP sécurisé.

-
+
@@ -92,9 +92,9 @@ + active}checked="checked"{/if} onclick="Ajax.update_html(null,'{$globals->baseurl}/emails/redirect/'+(this.checked?'':'in')+'active/{$e->email}')"/> - + {/foreach}
- active}checked="checked"{/if} /> - {foreach from=$alias item=a} retirer{icon name=bin_empty title="retirer"}
-  
- Ajouter une adresse email : - -    + +
+  
+ Ajouter une adresse email : + +    +
+
-
-
- {if $panne}

@@ -149,7 +150,7 @@

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 :

  • «prenom.nom»@polytechnique.edu vers {$smarty.session.forlife}@{#globals.mail.domain#}
  • -- 2.1.4