From 7743e0e58199e7d59177ab8a6bac8a6310456c86 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Mon, 30 Oct 2006 00:53:49 +0000 Subject: [PATCH] Allows to moderate the lists directly on the lists main page (use a bit of Ajax in order to limit the calls to the RPC) git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1036 839d8a87-29fc-0310-9880-83ba4fa771e5 --- bin/lists.rpc.py | 1 + htdocs/images/icons/magnifier.gif | Bin 0 -> 1073 bytes htdocs/javascript/ajax.js | 62 ++++++++++++++++++++++++ templates/listes/index.tpl | 68 +++++++++++++------------- templates/listes/liste.inc.tpl | 98 ++++++++++++++++++++++++++++++++++++++ templates/listes/listes.inc.tpl | 35 ++------------ 6 files changed, 197 insertions(+), 67 deletions(-) create mode 100644 htdocs/images/icons/magnifier.gif create mode 100644 htdocs/javascript/ajax.js create mode 100644 templates/listes/liste.inc.tpl diff --git a/bin/lists.rpc.py b/bin/lists.rpc.py index 7f5a5f0..62188ed 100755 --- a/bin/lists.rpc.py +++ b/bin/lists.rpc.py @@ -938,6 +938,7 @@ server = FastXMLRPCServer(("localhost", 4949), BasicAuthXMLRPCRequestHandler) # index.php server.register_function(get_lists) +server.register_function(get_list_info) server.register_function(subscribe) server.register_function(unsubscribe) # members.php diff --git a/htdocs/images/icons/magnifier.gif b/htdocs/images/icons/magnifier.gif new file mode 100644 index 0000000000000000000000000000000000000000..203174e443cb32fc3f0af6f137de86c28c4c60f3 GIT binary patch literal 1073 zcmb`GT}TvB6vxkQrX^;Z?&@Y)V;{EZs-qID6w$io2gzgmq z;?qD64q>n*#SjrAnC#pE>v5 zp1y8RN5}>?cn7#~qc&O71zDH1yn-J+tLiCUmbhS6&8J0GRC1z%0&;VLk{NfUxlAgf z(7enComwt0XJ|>)Gg2R84oT#d~yeQ{5 zj@Kk!R&_qBa#@X+w45vyKIh+ty01kRfEK7TzW4cjLp_~6tz>H(fOS1Y({U?GHkn`< zWG6WlcYmbwBY`K0~<}DO#$#t(X-4%Y@8*$=zK+y;3PfGMj1EJm!O*6 zL>oz7D5$#eh%YP@-h-EaXnsGxGT3@^ zYw_hP5BcE3-2rcyjekB`-Eg4WSvE6UUEJvMyUTABH#D9(MfhtDS5#CUscNn|;lFz9 a;Q2cHa+mG&@!F?d_LCOz#afFOF8%-$ME-yP literal 0 HcmV?d00001 diff --git a/htdocs/javascript/ajax.js b/htdocs/javascript/ajax.js new file mode 100644 index 0000000..ec485a7 --- /dev/null +++ b/htdocs/javascript/ajax.js @@ -0,0 +1,62 @@ +/*************************************************************************** + * Copyright (C) 2003-2006 Polytechnique.org * + * http://opensource.polytechnique.org/ * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * + ***************************************************************************/ + +Ajax = { + xml_client: null, + init: false, + + prepare_client: function() + { + if (!Ajax.init) { + if (window.XMLHttpRequest) { + Ajax.xml_client = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + try { + Ajax.xml_client = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + Ajax.xml_client = new ActiveXObject("Microsoft.XMLHTTP"); + } + } + if (Ajax.xml_client == null) { + alert("Ton client ne supporte pas Ajax, nécessaire pour certaines fonctionalités de cette page"); + } + } + Ajax.init = true; + }, + + update_html: function(obj, src) + { + Ajax.prepare_client(); + if (Ajax.xml_client == null) { + return true; + } + Ajax.xml_client.onreadystatechange = + function() + { + if(Ajax.xml_client.readyState == 4) { + document.getElementById(obj).innerHTML = Ajax.xml_client.responseText; + } + }; + Ajax.xml_client.open ('GET', src, true); + Ajax.xml_client.send (null); + return false; + } +} + diff --git a/templates/listes/index.tpl b/templates/listes/index.tpl index 3bde13d..f884eef 100644 --- a/templates/listes/index.tpl +++ b/templates/listes/index.tpl @@ -26,21 +26,19 @@

L'inscription à une liste de diffusion

-

-Pour t'inscrire à une liste il suffit de cliquer sur l'icone -{icon name=add} située en fin de ligne. -

- -

-Certaines listes sont à inscription modérée, l'inscription n'y est pas -immédiate. Il faut en effet l'action d'un modérateur de la liste pour valider -(ou éventuellement refuser) ta candidature. Ces listes apparaissent avec l'icone -{icon name=flag_orange title="en cours"}. -

+
    +
  • Pour demander ton inscription à une liste de diffusion, il suffit + de cliquer sur l'icône {icon name=add} située en fin de ligne
  • +
  • Si la liste est à inscription modérée, l'icône {icon name=flag_orange title="en cours"} + apparaîtra tant que ton inscription n'aura pas été validée par un modérateur
  • +
  • Pour te désinscrire d'une liste dont tu es membre, il suffit de cliquer sur la croix + {icon name=cross title="désinscription"} située en fin de ligne
  • +
-

-Pour se désinscrire, il suffit de la même manière de cliquer sur l'icone -{icon name=cross title="désinscription"}. +

Attention : Lorsqu'une liste à laquelle tu es abonné est + privée, l'icône {icon name=weather_cloudy} est affichée en début de ligne. + Si tu t'en désinscrits, il ne te sera pas possible de t'y abonner de nouveau + sans l'action d'un modérateur

La diffusion sur une liste de diffusion

@@ -48,53 +46,53 @@ Pour se d La diffusion a trois niveaux de modération. La diffusion peut être :

    -
  • libre : tout le monde peut y envoyer des mails, la diffusion y est +
  • libre : tout le monde peut y envoyer des mails, la diffusion y est immédiate;
  • -
  • restreinte : les membres de la liste peuvent envoyer librement des mails, +
  • restreinte : les membres de la liste peuvent envoyer librement des mails, les extérieurs sont modérés;
  • -
  • modérée: l'envoi d'un mail à la liste est alors filtré par des +
  • modérée: l'envoi d'un mail à la liste est alors filtré par des modérateurs, eux seuls peuvent accepter un message envoyé à la liste.

-{icon name=wrench title="Modérateur"} indique que tu es modérateur de la liste.
-Les modérateurs jouent également le rôle de gestionnaire. +{icon name=wrench title="Modérateur"} indique que tu es modérateur de la liste, les modérateurs jouent également le rôle de gestionnaire.
+{icon name=error title="Modérateur mais non-membre"} indque que tu es modérateur de la liste, mais que tu n'en es pas membre.

-

Demander la création d'une liste de diffusion

+

Demander la création d'une liste de diffusion

Nos listes ont pour but de réunir des X autour de thèmes ou centres d'intérêt communs. C'est un moyen pratique et efficace de rassembler plusieurs personnes autour d'un projet commun ou d'une thématique particulière.

-

+ +

Tu peux demander la création d'une liste de diffusion sur le thème de ton choix.

+{if $owner|@count} +

Listes dont tu es modérateur

-

- Listes de diffusion publiques -

- -

-Les listes de diffusion publiques sont visibles par tous les X inscrits à Polytechnique.org. -

+{include file='listes/listes.inc.tpl' lists=$owner} +{/if} +{if $member|@count} +

Listes dont tu es membre

-{include file='listes/listes.inc.tpl' priv=0} - -

- Listes de diffusion privées (et de promo) -

+{include file='listes/listes.inc.tpl' lists=$member} +{/if} +

Listes de diffusion publiques auxquelles tu peux t'inscrire

-Si tu te désinscris de ces listes, tu ne seras plus capable de t'y réinscrire par toi-même ! +Les listes de diffusion publiques sont visibles par tous les X inscrits à Polytechnique.org.

-{include file='listes/listes.inc.tpl' priv=1} +{if $public|@count} +{include file='listes/listes.inc.tpl' lists=$public}
+{/if}
diff --git a/templates/listes/liste.inc.tpl b/templates/listes/liste.inc.tpl new file mode 100644 index 0000000..bc289cc --- /dev/null +++ b/templates/listes/liste.inc.tpl @@ -0,0 +1,98 @@ +{**************************************************************************} +{* *} +{* Copyright (C) 2003-2006 Polytechnique.org *} +{* http://opensource.polytechnique.org/ *} +{* *} +{* This program is free software; you can redistribute it and/or modify *} +{* it under the terms of the GNU General Public License as published by *} +{* the Free Software Foundation; either version 2 of the License, or *} +{* (at your option) any later version. *} +{* *} +{* This program is distributed in the hope that it will be useful, *} +{* but WITHOUT ANY WARRANTY; without even the implied warranty of *} +{* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *} +{* GNU General Public License for more details. *} +{* *} +{* You should have received a copy of the GNU General Public License *} +{* along with this program; if not, write to the Free Software *} +{* Foundation, Inc., *} +{* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *} +{* *} +{**************************************************************************} + + + + + + + + + +{* vim:set et sw=2 sts=2 sws=2: *} diff --git a/templates/listes/listes.inc.tpl b/templates/listes/listes.inc.tpl index 6a703e1..ae8ab8c 100644 --- a/templates/listes/listes.inc.tpl +++ b/templates/listes/listes.inc.tpl @@ -30,39 +30,10 @@ - {foreach from=$listes item=liste} - {if $liste.priv eq $priv} - - - - - - - - + {foreach from=$lists item=liste} + + {include file="listes/liste.inc.tpl"} - {/if} {/foreach}
+ {if $liste.own && $liste.sub} + {icon name=wrench title="Modérateur"} + {elseif $liste.own} + {icon name=error title="Modérateur mais non-membre"} + {elseif $liste.priv} + {icon name=weather_cloudy title="Liste privée"} + {/if} + + {$liste.list} + + {$liste.desc}
+ {if $liste.subscriptions|@count} + • Demandes d'inscription
+ {foreach from=$liste.subscriptions item=s} + + {icon name=add title="Accepter"} + + + {icon name=delete title="Refuser"} + + {$s.name} + {if $s.login} + {icon name=user_suit title="Afficher la fiche"} + {/if} +
+ {/foreach} + {/if} + {if $liste.mails|@count} + • Demandes de modération
+ + {foreach from=$liste.mails item=m} + + {icon name=add title="Valider le mail"} + + + {icon name=delete title="Détruire"} + + De : {$m.sender}
+ + {icon name=magnifier title="Voir le message"} + + Sujet : {$m.subj|hdc|default:"[pas de sujet]"}
+ {/foreach} +
+ {/if} +
+ {if $liste.diff eq 2}modérée{elseif $liste.diff}restreinte{else}libre{/if} + + {if $liste.ins}modérée{else}libre{/if} +{$liste.nbsub} + {if $liste.sub eq 2} + + {icon name=cross title="me désinscrire"} + + {elseif $liste.sub eq 1} + {icon name=flag_orange title='inscription en attente de modération'} + {else} + + {icon name=add title="m'inscrire"} + + {/if} + Nb
- {if $liste.own} - {icon name=wrench title="Modérateur"} - {/if} - - {$liste.list} - {$liste.desc} - {if $liste.diff eq 2}modérée{elseif $liste.diff}restreinte{else}libre{/if} - - {if $liste.ins}modérée{else}libre{/if} - {$liste.nbsub} - {if $liste.sub eq 2} - - {icon name=cross title="me désinscrire"} - - {elseif $liste.sub eq 1} - {icon name=flag_orange title='inscription en attente de modération'} - {else} - - {icon name=add title="m'inscrire"} - {/if} -
-- 2.1.4