--- /dev/null
+<?php
+require('auto.prepend.inc.php');
+
+if(isset($_POST['action'])) {
+ switch($_POST['action']) {
+ // insertion ou création du tracker dans le formulaire
+ case 'update':
+ new_admin_page('trackers/admin.tpl');
+ $page->clear_cache('trackers/admin.tpl');
+ $page->clear_cache('trackers/index.tpl');
+ // TODO
+ break;
+ // édition des propriétés d'un tracker ou nouveau tracker
+ case 'edit':
+ new_admin_page('trackers/edit.tpl');
+ $tr_id = clean_request($_POST['tr_id']);
+ $page->assign('tracker',new Tracker($tr_id, $_SESSION['uid']));
+ $page->run();
+ // suppression d'un tracker
+ case 'del':
+ new_admin_page('trackers/admin.tpl');
+ $page->clear_cache('trackers/admin.tpl');
+ $page->clear_cache('trackers/index.tpl');
+ $tracker = new Tracker($_POST['tr_id'], $_SESSION['uid']);
+ $tracker -> destroy();
+ break;
+ // nettoyage BD
+ case 'clean':
+ new_admin_page('trackers/admin.tpl');
+ tracker_clean_bd();
+ }
+} else
+ new_admin_page('trackers/edit.tpl');
+
+if(!$page->xorg_is_cached()) {
+ // we know when a new tracker is added so we can trust cached version
+ $sql = "SELECT tr_id,tr.texte AS tr_name,description,ml.short,ml.texte AS ml_name
+ FROM trackers.trackers AS tr
+ LEFT JOIN trackers.mail_lists AS ml USING(ml_id)
+ WHERE tr.bits NOT LIKE '%perso%'
+ ORDER BY tr.texte");
+ $page->mysql_assign($sql, 'trackers');
+
+ $sql = "SELECT tr_id,tr.texte AS tr_name,description,ml.short,ml.texte AS ml_name
+ FROM trackers.trackers AS tr
+ LEFT JOIN trackers.mail_lists AS ml USING(ml_id)
+ WHERE tr.bits LIKE '%perso%'
+ ORDER BY tr.texte");
+ $page->mysql_assign($sql, 'persos');
+}
+
+$page->run();
+?>
--- /dev/null
+<?php
+require('auto.prepend.inc.php');
+new_skinned_page('trackers/index.tpl');
+if(has_perms())
+ header("Location: admin.php");
+
+if(!$page->xorg_is_cached()) {
+ // we know when a new tracker is added so we can trust cached version
+ $sql = "SELECT tr_id,tr.texte AS tr_name,description,ml.short,ml.texte AS ml_name
+ FROM trackers.trackers AS tr
+ LEFT JOIN trackers.mail_lists AS ml USING(ml_id)
+ WHERE tr.bits NOT LIKE '%perso%' AND tr.perms!='admin'
+ ORDER BY tr.texte");
+ $page->mysql_assign($sql, 'trackers');
+}
+
+$page->run();
+?>
--- /dev/null
+{* $Id: admin.tpl,v 1.1 2004-02-22 21:04:23 x2000habouzit Exp $ *}
+
+{literal}
+<script type="text/javascript">
+ <!--
+ function action( action, myid ) {
+ document.operations.action.value = action;
+ document.operations.tr_id.value = myid;
+ document.operations.submit();
+ return true;
+ }
+
+ function del( myid ) {
+ if( confirm ("You are about to delete this tracker !\nDo you still want to proceed ?") ) {
+ document.operations.action.value = "del";
+ document.operations.tr_id.value = myid;
+ document.operations.submit();
+ return true;
+ }
+ }
+ -->
+</script>
+{/literal}
+
+<form id="operations" method="post" action="{$smarty.server.PHP_SELF}">
+ <input type="hidden" id="action" value="" />
+ <input type="hidden" id="tr_id" value="" />
+</form>
+
+<div class="rubrique">
+ Administration des trackers
+</div>
+<div class="ssrubrique">
+ Nettoyer
+</div>
+<p class="normal">
+ [<a href="javascript:action('clean',-1)">Nettoyer la table des mailing-lists</a>]
+</p>
+<div class="ssrubrique">
+ Ajouter un tracker
+</div>
+<p class="normal">
+ [<a href="javascript:action('edit',-1)">Ajouter un tracker</a>]
+</p>
+
+<br />
+
+<div class="rubrique">
+ Liste des trackers
+</div>
+
+<br />
+
+<table class="bicol" summary="Liste des trackers">
+ <tr>
+ <th>Tracker</th>
+ <th>Description</th>
+ <th>Géré par</th>
+ </tr>
+{foreach item=t from=$persos}
+ <tr class="{cycle values="impair,pair"}">
+ <td><a href="{"tracker_show.php?tr_id=`$t.tr_id`"|url}">{$t.tr_name}</a></td>
+ <td>{$t.description}</td>
+ <td class="right"><a href="mailto:{$t.ml_name}">{$t.short}</a></td>
+ <td class="action">
+ <a href="javascript:action('edit',{$t.tr_id})">edit</a>
+ <a href="javascript:del({$t.tr_id})">del</a>
+ </tr>
+{/foreach}
+</table>
+
+<br />
+
+<div class="rubrique">
+ Liste des trackers persos
+</div>
+
+<br />
+
+<table class="bicol" summary="Liste des trackers">
+ <tr>
+ <th>Tracker</th>
+ <th>Description</th>
+ <th>Géré par</th>
+ </tr>
+{foreach item=t from=$trackers}
+ <tr class="{cycle values="impair,pair"}">
+ <td><a href="{"tracker_show.php?tr_id=`$t.tr_id`"|url}">{$t.tr_name}</a></td>
+ <td>{$t.description}</td>
+ <td class="right"><a href="mailto:{$t.ml_name}">{$t.short}</a></td>
+ <td class="action">
+ <a href="javascript:action('edit',{$t.tr_id})">edit</a>
+ <a href="javascript:del({$t.tr_id})">del</a>
+ </tr>
+{/foreach}
+</table>
+
+<br />
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: edit.tpl,v 1.1 2004-02-22 21:04:23 x2000habouzit Exp $ *}
+
+{dynamic}
+<form action="{$smarty.server.PHP_SELF}" method="post">
+ <table class="bicol">
+ <tr>
+ <th colspan="2">Description</th>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Nom du tracker</strong>
+ </td>
+ <td>
+ <input type="text" name="trf_name" size="40"
+ value="{$tracker->name|default:$smarty.post.trf_name}" />
+ </td>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Description</strong>
+ </td>
+ <td>
+ <input type="text" name="trf_desc" size="40"
+ value="{$tracker->desc|default:$smarty.post.trf_desc}" />
+ </td>
+ </tr>
+ <tr>
+ <th colspan="2">propriétés</th>
+ </tr>
+ <tr class="impair">
+ <td class="titre">
+ <strong>
+ Tracker non notifiant<br />
+ Tracker Perso
+ </strong>
+ </td>
+ <td>
+ <input type="checkbox" name="trf_no_mail" size="40"
+ {if $tracker->bits->hasflag("no_mail") || $smarty.post.trf_no_mail}checked="checked"{/if} />
+ cocher pour avoir un tracker silencieux<br />
+ <input type="checkbox" name="trf_perso" size="40"
+ {if $tracker->bits->hasflag("perso") || $smarty.post.trf_perso}checked="checked"{/if} />
+ cocher pour avoir un tracker perso
+ </td>
+ </tr>
+ <tr class="impair">
+ <td class="titre">
+ Droits
+ </td>
+ <td>
+ <select name="trf_perms">
+ <option value="admin"
+ {if $tracker->perms eq "admin" || $smarty.post.trf_perms eq "admin"}selected="selected"{/if}
+ >admin</option>
+ <option value="auth"
+ {if $tracker->perms eq "auth" || $smarty.post.trf_perms eq "auth"}selected="selected"{/if}
+ >auth</option>
+ <option value="public"
+ {if $tracker->perms eq "public" || $smarty.post.trf_perms eq "public"}selected="selected"{/if}
+ >public</option>
+ </select>
+ </td>
+ </tr>
+ <tr class="impair">
+ <td class="titre">Mailing List
+ </td>
+ <td>
+ <select name="trf_ml_id">
+ {*
+ <?
+ $req=mysql_query("SELECT ml_id,short FROM trackers.mail_lists ORDER BY short");
+ while(list($id,$short) = mysql_fetch_row($req)) {
+ echo "<option value=\"$id\"".($ml_id==$id ? " selected=\"selected\"" : "").">$short</option>\n";
+ }
+ mysql_free_result($req);
+ ?>
+ *}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th colspan="2">priorités</th>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Priorité 5</strong></td>
+ <td>
+ <input type="text" name="trf_pris[5]" size="40"
+ value="{$tracker->pris[5]|default:$smarty.post.trf_pris[5]}" />
+ </td>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Priorité 4</strong></td>
+ <td>
+ <input type="text" name="trf_pris[4]" size="40"
+ value="{$tracker->pris[4]|default:$smarty.post.trf_pris[4]}" />
+ </td>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Priorité 3</strong></td>
+ <td>
+ <input type="text" name="trf_pris[3]" size="40"
+ value="{$tracker->pris[3]|default:$smarty.post.trf_pris[3]}" />
+ </td>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Priorité 2</strong></td>
+ <td>
+ <input type="text" name="trf_pris[2]" size="40"
+ value="{$tracker->pris[2]|default:$smarty.post.trf_pris[2]}" />
+ </td>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Priorité 1</strong></td>
+ <td>
+ <input type="text" name="trf_pris[1]" size="40"
+ value="{$tracker->pris[1]|default:$smarty.post.trf_pris[1]}" />
+ </td>
+ </tr>
+ <tr>
+ <th colspan="2">Création d'une ML (laisser vide pour ne pas l'utiliser)</th>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Nom court</strong>
+ </td>
+ <td>
+ <input style="text" name="mlf_short" size="40" />
+ </td>
+ </tr>
+ <tr class="impair">
+ <td class="titre"><strong>Adresse (avec le @)</strong>
+ </td>
+ <td><input style="text" name="mlf_texte" size="40" />
+ </td>
+ </tr>
+ </table>
+ <br />
+ <input type="hidden" name="tr_id" value="{$tracker->tr_id|default:$smarty.post.tr_id}" />
+ <input type="hidden" name="action" value="update" />
+ <input type="submit" value="Valider" />
+</form>
+
+{/dynamic}
+
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: index.tpl,v 1.1 2004-02-22 21:04:23 x2000habouzit Exp $ *}
+
+<div class="rubrique">
+ Liste des trackers publics
+</div>
+
+<table class="bicol" summary="Liste des trackers">
+ <tr>
+ <th>Tracker</th>
+ <th>Description</th>
+ <th>Géré par</th>
+ </tr>
+{foreach item=t from=$trackers}
+ <tr class="{cycle values="impair,pair"}">
+ <td><a href="{"tracker_show.php?tr_id=`$t.tr_id`"|url}">{$t.tr_name}</a></td>
+ <td>{$t.description}</td>
+ <td class="right"><a href="mailto:{$t.ml_name}">{$t.short}</a></td>
+ </tr>
+{/foreach}
+</table>
+
+{* vim:set et sw=2 sts=2 sws=2: *}