$menu['***'] = Array (
'Marketing' => '###url###',
'Administration' => '###url###',
- 'Trackers' => 'trackers/',
'Clear cache' => 'clear_all_cache.php'
);
}
x!! | trezo/trezo.inc.php | -
------+-[ trackers ]------------------------------+----------------
x!! | trackers/tracker_show.php | \
-x!! | trackers/tracker_show_rq.php | \_ récrit de 0 (ou presque)
+x!! | trackers/tracker_show_rq.php | \_ obsolete
x!! | trackers/index.php | /
x!! | trackers/tracker_admin.php | /
------+-------------------------------------------+----------------
+++ /dev/null
-<?php
-require('auto.prepend.inc.php');
-require('tracker.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');
- if(!empty($_POST['short']) && !empty($_POST['texte'])) {
- $globals->db->query("INSERT INTO trackers.mail_lists
- SET short='{$_POST['short']}',texte='{$_POST['texte']}'");
- $mlid = mysql_insert_id();
- } else
- $mlid = clean_request('mlid');
- $bits = new Flagset();
- if(!empty($_POST['nomail']))
- $bits->addFlag('no_mail');
- if(!empty($_POST['perso']))
- $bits->addFlag('perso');
- tracker_update($_POST['name'], $_POST['desc'], $_POST['perms'],
- $mlid, $bits, $_POST['pris'], $_POST['trid']);
-
- $page->xorg_clear_cache('trackers/admin.tpl');
- $page->xorg_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');
- $sql = "SELECT ml_id,short
- FROM trackers.mail_lists
- ORDER BY short";
- $page->mysql_assign($sql, 'ml_list');
- $tr_id = clean_request('trid');
- $page->assign('tracker',new Tracker($tr_id));
- $page->run();
- // suppression d'un tracker
- case 'del':
- new_admin_page('trackers/admin.tpl');
- $page->xorg_clear_cache('trackers/admin.tpl');
- $page->xorg_clear_cache('trackers/index.tpl');
- $tracker = new Tracker($_POST['trid']);
- $tracker -> destroy();
- break;
- // nettoyage BD
- case 'clean':
- new_admin_page('trackers/admin.tpl');
- tracker_clean_bd();
- }
-} else
- new_admin_page('trackers/admin.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/answer.tpl', AUTH_COOKIE);
-require('tracker.inc.php');
-
-$tracker = new Tracker($_GET['tr_id']);
-
-if(isset($_POST['a_sub']) && $tracker->post_perms_ok()) {
- $sql = "INSERT INTO trackers.followups
- SET user_id='{$_SESSION['uid']}',
- texte='{$_POST['a_text']}',
- rq_id='{$_GET['rq_id']}'";
- $globals->db->query($sql);
- header("Location: show_rq.php?tr_id={$_GET['tr_id']}&rq_id={$_GET['rq_id']}");
-
-}
-
-$res = $globals->db->query("SELECT date,summary,texte
- FROM trackers.requests
- WHERE tr_id='{$_GET['tr_id']}' AND rq_id='{$_GET['rq_id']}'");
-
-if(empty($tracker->id) || !$tracker->post_perms_ok() || !mysql_num_rows($res))
- $page->failure();
-
-$request = mysql_fetch_assoc($res);
-mysql_free_result($res);
-
-$page->assign('request', $request);
-$page->assign('tracker', $tracker);
-
-$sql = "SELECT *, username
- FROM trackers.followups
- LEFT JOIN auth_user_md5 USING(user_id)
- WHERE rq_id='{$_GET['rq_id']}'";
-$page->mysql_assign($sql, 'fups');
-
-$page->run();
-?>
+++ /dev/null
-<?php
-require('auto.prepend.inc.php');
-new_skinned_page('trackers/index.tpl', AUTH_COOKIE);
-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
-<?php
-require('auto.prepend.inc.php');
-require('tracker.inc.php');
-
-new_skinned_page('trackers/post.tpl', AUTH_MDP);
-
-$tracker = new Tracker($_GET['tr_id']);
-
-if(empty($tracker->id) || !$tracker->post_perms_ok())
- $page->failure();
-
-if(empty($_POST['text']) || empty($_POST['sujet'])) {
- $page->assign('tracker', $tracker);
- $page->mysql_assign('SELECT * FROM trackers.states', 'states');
-} else {
- $rq_id = $tracker->post($_POST['sujet'], $_POST['text'], $_POST['prio'], $_POST['statut']);
- header("Location: show_rq.php?tr_id={$_GET['tr_id']}&rq_id=$rq_id");
-}
-
-$page->run();
-?>
+++ /dev/null
-<?php
-require('auto.prepend.inc.php');
-new_skinned_page('trackers/show.tpl', AUTH_COOKIE);
-require('tracker.inc.php');
-
-$tracker = new Tracker($_GET['tr_id']);
-
-if(empty($tracker->id) || !$tracker->read_perms_ok())
- $page->failure();
-
-if(!empty($_POST['id']) && $tracker->post_perms_ok())
- request_delete($_GET['tr_id'], $_POST['id']);
-
-$page->assign('tracker', $tracker);
-
-$sql = "SELECT r.date,r.summary,r.pri,r.rq_id, a.username
- FROM trackers.requests AS r
- LEFT JOIN trackers.states AS s USING(st_id)
- LEFT JOIN auth_user_md5 AS a ON(r.admin_id=a.user_id)
- WHERE tr_id = {$tracker->id} AND s.texte != 'fermé'
- ORDER BY pri DESC, r.date ASC";
-$page->mysql_assign($sql, 'requests');
-
-$sql = "SELECT r.date,r.summary,r.pri,r.rq_id, a.username
- FROM trackers.requests AS r
- LEFT JOIN trackers.states AS s USING(st_id)
- LEFT JOIN auth_user_md5 AS a ON(r.admin_id=a.user_id)
- WHERE tr_id = {$tracker->id} AND s.texte = 'fermé'
- ORDER BY pri DESC, r.date ASC";
-$page->mysql_assign($sql, 'close');
-
-$page->run();
-?>
+++ /dev/null
-<?php
-require('auto.prepend.inc.php');
-new_skinned_page('trackers/show_rq.tpl', AUTH_COOKIE);
-require('tracker.inc.php');
-
-$tracker = new Tracker($_GET['tr_id']);
-
-if(isset($_POST['n_sub']) && $tracker->post_perms_ok()) {
- $sql = "UPDATE trackers.requests
- SET pri='{$_POST['n_pri']}',admin_id='{$_POST['n_admin']}',st_id='{$_POST['n_state']}'
- WHERE tr_id='{$_GET['tr_id']}' AND rq_id='{$_GET['rq_id']}'";
- $globals->db->query($sql);
-}
-
-$res = $globals->db->query("SELECT r.*, a.username, b.username AS admin, s.texte AS state
- FROM trackers.requests AS r
- LEFT JOIN trackers.states AS s USING(st_id)
- LEFT JOIN auth_user_md5 AS a ON(r.user_id = a.user_id)
- LEFT JOIN auth_user_md5 AS b ON(r.admin_id = b.user_id)
- WHERE tr_id='{$_GET['tr_id']}' AND rq_id='{$_GET['rq_id']}'");
-
-if(empty($tracker->id) || !$tracker->read_perms_ok() || !mysql_num_rows($res))
- $page->failure();
-
-$request = mysql_fetch_assoc($res);
-mysql_free_result($res);
-
-$page->assign('request', $request);
-$page->assign('tracker', $tracker);
-
-$sql = "SELECT user_id,username
- FROM auth_user_md5
- WHERE perms='admin'
- ORDER BY username";
-$page->mysql_assign($sql, 'admins');
-
-$sql = "SELECT st_id,texte
- FROM trackers.states
- ORDER BY texte";
-$page->mysql_assign($sql, 'states');
-
-$sql = "SELECT *, username
- FROM trackers.followups
- LEFT JOIN auth_user_md5 USING(user_id)
- WHERE rq_id='{$_GET['rq_id']}'";
-$page->mysql_assign($sql, 'fups');
-
-$page->run();
-?>
+++ /dev/null
-<?php
-
-/** décrit un tracker
- * Cette classe décrit un tracker
- * les mails d'administrations envoyés, sont marqués par X-TrackerName: TrackerAdmin
- */
-class Tracker {
- /** l'id du tracker */
- var $id;
- /** la description du tracker */
- var $desc;
- /** le nom du tracker */
- var $name;
- /** la mailing list(id) */
- var $ml_id;
- /** la mailing list @poly.org */
- var $ml_short;
- /** nom de la ML */
- var $ml_text;
- /** le niveau nécessaire pour utiliser le tracker ("admin","auth") */
- var $perms;
- /** propriétés du tracker
- * no_mail, perso
- */
- var $bits;
- /** table texte de la priorité */
- var $pris;
-
- /** constructeur
- * @param $tr_id id du tracker
- */
- function Tracker($tr_id) {
- global $globals;
- $this->id = $tr_id;
-
- $req = $globals->db->query("SELECT t.texte,t.description,t.perms,t.bits,
- t.pri1,t.pri2,t.pri3,t.pri4,t.pri5,
- m.ml_id,m.short,m.texte
- FROM trackers.trackers AS t
- LEFT JOIN trackers.mail_lists AS m USING(ml_id)
- WHERE tr_id='$tr_id'");
- if(!mysql_num_rows($req)) {
- $this->id = 0;
- return;
- }
- $this->pris = array ();
-
- list($this->name,$this->desc,$this->perms,$tr_bits,
- $this->pris[1],$this->pris[2],$this->pris[3],$this->pris[4],$this->pris[5],
- $this->ml_id,$this->ml_short, $this->ml_text) = mysql_fetch_row($req);
- mysql_free_result($req);
-
- $this->bits = new flagset($tr_bits);
- }
-
- /** pseudo destructeur
- * détruit toutes les références au tracker et le tracker lui même dans les bases tr_*.
- * notifie tracker@polytechnique.org
- */
- function destroy() {
- mysql_query("DELETE FROM trackers.trackers WHERE tr_id='{$this->id}'");
- mysql_query("DELETE FROM trackers.mails WHERE tr_id='{$this->id}'");
- mysql_query("DELETE trackers.followups
- FROM trackers.followups AS f,trackers.requests AS r
- WHERE r.rq_id=f.rq_id AND r.tr_id='{$this->id}'");
- }
-
- function post($sujet, $text, $prio, $status) {
- mysql_query("INSERT INTO trackers.requests
- SET tr_id='{$this->id}',user_id='{$_SESSION['uid']}',
- admin_id='-1',st_id='$status',pri='$prio',
- summary='$sujet',texte='$text',date=NOW()");
- $id = mysql_insert_id();
- # TODO : mail
- return $id;
- }
-
- function read_perms_ok() {
- if(has_perms())
- return true;
- if(logged() && $this->perms == 'auth')
- return true;
- if($this->perms=="public")
- return true;
- return false;
- }
-
- function post_perms_ok() {
- if(has_perms())
- return true;
- if(identified() && $this->perms == 'auth')
- return true;
- if($this->perms=="public")
- return true;
- return false;
- }
-}
-
-function tracker_clean_bd() {
- global $globals;
- $req = $globals->db->query("SELECT ml.ml_id
- FROM trackers.mail_lists AS ml
- LEFT JOIN trackers.trackers AS tr USING(ml_id)
- WHERE tr.tr_id is null");
- if(mysql_num_rows($req)) {
- $ids = Array();
- while(list($id) = mysql_fetch_row($req)) $ids[] = $id;
- $globals->db->query("DELETE FROM trackers.mail_lists
- WHERE ml_id IN (".implode(",",$ids).") AND texte!='null@polytechnique.org'");
- }
- mysql_free_result($req);
-}
-
-
-function tracker_update($name,$desc,$perms,$ml_id,$bits,$pris, $tr_id=0) {
- global $globals;
- if($tr_id>0) {
- $globals->db->query("UPDATE trackers.trackers
- SET perms='$perms',ml_id='$ml_id',texte='$name',description='$desc',bits='{$bits->value}',
- pri1='{$pris[1]}',pri2='{$pris[2]}',pri3='{$pris[3]}',pri4='{$pris[4]}',pri5='{$pris[5]}'
- WHERE tr_id='$tr_id'");
- return $tr_id;
- } else {
- $globals->db->query("INSERT INTO trackers.trackers
- SET perms='$perms',ml_id='$ml_id',texte='$name',description='$desc',bits='{$bits->value}',
- pri1='{$pris[1]}',pri2='{$pris[2]}',pri3='{$pris[3]}',pri4='{$pris[4]}',pri5='{$pris[5]}'");
- return mysql_insert_id();
- }
-}
-
-
-function request_delete($tr_id, $rq_id) {
- mysql_query("DELETE FROM trackers.requests WHERE rq_id='$rq_id' AND tr_id='$tr_id'");
- if(mysql_affected_rows()) {
- mysql_query("DELETE FROM trackers.followups WHERE rq_id='$rq_id' AND tr_id='$tr_id'");
-# TODO mail
- }
-}
-
-?>
<?php
-function nb_trk($pri,$tr) {
- global $conn;
- $req = mysql_query("select count(rq_id) from trackers.requests left join trackers.states as st using(st_id)
- where tr_id='$tr' and admin_id<=0 and pri='$pri' and st.texte!='fermé'", $conn);
- list($res) = mysql_fetch_row($req);
- mysql_free_result($req);
- return ($res?$res:"-");
-}
function url()
{
<table class="bicol"
style="font-weight:normal;text-align:center; border-left:0px; border-right:0px; margin-top:0.5em; width:100%; margin-left: 0; font-size: smaller;">
<tr>
- <th style="width:33%">Valid</th>
- <th style="width:33%">Bugs</th>
- <th style="width:33%">Todo</th>
+ <th>Valid</th>
</tr>
<tr class="impair">
<td><a href="$rel/admin/valider.php">$stats_req</a></td>
- <td>
- <a href="$rel/trackers/show.php?tr_id=2">
- <strong>{$nbtrk[0]}</strong> / {$nbtrk[1]}
- </a>
- </td>
- <td>
- <a href="$rel/trackers/show.php?tr_id=1">
- <strong>{$nbtrk[2]}</strong> / {$nbtrk[3]}
- </a>
- </td>
</tr>
</table>
EOF;
ALTER TABLE `diogenes_logevents` ADD INDEX ( `session` );
-- optim trackers
-USE trackers;
-DROP TABLE cat_abo;
-DROP TABLE categories;
-ALTER TABLE requests DROP COLUMN cat_id;
-ALTER TABLE followups DROP COLUMN fu_id;
-ALTER TABLE requests ADD INDEX (tr_id);
-ALTER TABLE followups ADD INDEX (rq_id);
+drop trackers;
-{* $Id: index.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+{* $Id: index.tpl,v 1.2 2004-07-08 09:20:57 x2000habouzit Exp $ *}
<div class="rubrique">Administration Polytechnique.org</div>
<tr><th>Développement</th></tr>
<tr class="impair">
<td style="width:4em;"><strong>Trackers : </strong>
- <a href="../trackers/tracker_show.php?tr_id=2">BugList</a>
+ TRACKERS
|
- <a href="../trackers/tracker_show.php?tr_id=1">TodoList</a>
+ TICKETS
</td>
</tr>
<tr class="pair">
+++ /dev/null
-{* $Id: admin.tpl,v 1.4 2004-02-23 18:04:33 x2000habouzit Exp $ *}
-
-{literal}
-<script type="text/javascript">
- <!--
- function action( action, myid ) {
- ops = document.getElementById('operations');
- ops.action.value = action;
- ops.trid.value = myid;
- ops.submit();
- return true;
- }
-
- function del( myid ) {
- if( confirm ("You are about to delete this tracker !\nDo you still want to proceed ?") ) {
- return action('del', myid);
- }
- }
- -->
-</script>
-{/literal}
-
-<form id="operations" method="post" action="{$smarty.server.PHP_SELF}">
- <input type="hidden" id="action" name="action" value="" />
- <input type="hidden" id="trid" name="trid" value="" />
-</form>
-
-<p class="normal">
- [<a href="javascript:action('clean',-1)">Nettoyer la table des mailing-lists</a>]
- [<a href="javascript:action('edit',-1)">Ajouter un tracker</a>]
-</p>
-
-<div class="rubrique">
- Liste des trackers
-</div>
-
-<table class="bicol" summary="Liste des trackers">
- <tr>
- <th>Tracker</th>
- <th>Description</th>
- <th>Géré par</th>
- <th>Action</th>
- </tr>
-{foreach item=t from=$trackers}
- <tr class="{cycle values="impair,pair"}">
- <td><a href="{"trackers/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>
-
-<table class="bicol" summary="Liste des trackers">
- <tr>
- <th>Tracker</th>
- <th>Description</th>
- <th>Géré par</th>
- <th>Action</th>
- </tr>
-{foreach item=t from=$persos}
- <tr class="{cycle values="impair,pair"}">
- <td><a href="{"trackers/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>
-
-{* vim:set et sw=2 sts=2 sws=2: *}
+++ /dev/null
-{* $Id: answer.tpl,v 1.1 2004-04-26 14:45:53 x2000habouzit Exp $ *}
-
-{dynamic}
-
-<p class="normal">
- [<a href="index.php">Liste des trackers</a>]
- [<a href="show.php?tr_id={$smarty.get.tr_id}">Revenir au tracker</a>]
-[<a href="show_rq.php?tr_id={$smarty.get.tr_id}&rq_id={$smarty.get.rq_id}">Revenir à la requete</a>]
-</p>
-
-<div class="rubrique">
- {$request.summary} (posté le {$request.date|date_format:"%d %b %Y"})
-</div>
-
-<table class="bicol">
- <tr><th>Texte posté</th></tr>
- <tr><td><tt>{$request.texte|escape|nl2br}</tt></td></tr>
-</table>
-
-<br />
-
-<div class="rubrique">
- Répondre
-</div>
-
-<form action="{$smarty.server.REQUEST_URI}" method="post">
- <table class="bicol">
- <tr>
- <th>texte de la réponse</th>
- </tr>
- <tr>
- <td class="center">
- <textarea name="a_text" cols="74" rows="20"></textarea>
- </td>
- </tr>
- <tr>
- <td class="center">
- <input type="submit" name="a_sub" />
- </td>
- </tr>
- </table>
-</form>
-
-{/dynamic}
-
-{* vim:set et sw=2 sts=2 sws=2: *}
+++ /dev/null
-{* $Id: edit.tpl,v 1.2 2004-02-23 17:06:59 x2000habouzit Exp $ *}
-
-<div class="rubrique">
- Modification des propriétés du tracker
-</div>
-
-{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="name" size="40"
- value="{$tracker->name|default:$smarty.post.name}" />
- </td>
- </tr>
- <tr class="impair">
- <td class="titre"><strong>Description</strong>
- </td>
- <td>
- <input type="text" name="desc" size="40"
- value="{$tracker->desc|default:$smarty.post.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="nomail" size="40"
- {if ($tracker->bits && $tracker->bits->hasflag("no_mail")) || $smarty.post.no_mail}checked="checked"{/if} />
- cocher pour avoir un tracker silencieux
- <br />
- <input type="checkbox" name="perso" size="40"
- {if ($tracker->bits && $tracker->bits->hasflag("perso")) || $smarty.post.perso}checked="checked"{/if} />
- cocher pour avoir un tracker perso
- </td>
- </tr>
- <tr class="impair">
- <td class="titre">
- Droits
- </td>
- <td>
- <select name="perms">
- <option value="admin"
- {if $tracker->perms eq "admin" || $smarty.post.perms eq "admin"}selected="selected"{/if}
- >admin</option>
- <option value="auth"
- {if $tracker->perms eq "auth" || $smarty.post.perms eq "auth"}selected="selected"{/if}
- >auth</option>
- <option value="public"
- {if $tracker->perms eq "public" || $smarty.post.perms eq "public"}selected="selected"{/if}
- >public</option>
- </select>
- </td>
- </tr>
- <tr class="impair">
- <td class="titre">Mailing List
- </td>
- <td>
- <select name="mlid">
- {foreach item=ml from=$ml_list}
- <option value="{$ml.ml_id}"
- {if $ml.ml_id eq $tracker->ml_id || $ml.ml_id eq $smarty.post.mlid}selected="selected"{/if}>{$ml.short}</option>
- {/foreach}
- </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="pris[5]" size="40"
- value="{$tracker->pris[5]|default:$smarty.post.pris[5]}" />
- </td>
- </tr>
- <tr class="impair">
- <td class="titre"><strong>Priorité 4</strong></td>
- <td>
- <input type="text" name="pris[4]" size="40"
- value="{$tracker->pris[4]|default:$smarty.post.pris[4]}" />
- </td>
- </tr>
- <tr class="impair">
- <td class="titre"><strong>Priorité 3</strong></td>
- <td>
- <input type="text" name="pris[3]" size="40"
- value="{$tracker->pris[3]|default:$smarty.post.pris[3]}" />
- </td>
- </tr>
- <tr class="impair">
- <td class="titre"><strong>Priorité 2</strong></td>
- <td>
- <input type="text" name="pris[2]" size="40"
- value="{$tracker->pris[2]|default:$smarty.post.pris[2]}" />
- </td>
- </tr>
- <tr class="impair">
- <td class="titre"><strong>Priorité 1</strong></td>
- <td>
- <input type="text" name="pris[1]" size="40"
- value="{$tracker->pris[1]|default:$smarty.post.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="short" size="40" />
- </td>
- </tr>
- <tr class="impair">
- <td class="titre"><strong>Adresse (avec le @)</strong>
- </td>
- <td><input style="text" name="texte" size="40" />
- </td>
- </tr>
- <tr>
- <td colspan="2" class="center">
- <input type="hidden" name="trid" value="{$tracker->tr_id|default:$smarty.post.trid}" />
- <input type="hidden" name="action" value="update" />
- <input type="submit" value="Valider" />
- </td>
- </table>
-</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: *}
+++ /dev/null
-{* $Id: post.tpl,v 1.1 2004-02-23 18:43:41 x2000habouzit Exp $ *}
-
-{dynamic}
-
-<p class="normal">
- [<a href="index.php">Liste des trackers</a>]
- [<a href="show.php?tr_id={$smarty.get.tr_id}">Retourner au tracker</a>]
-</p>
-
-<div class="rubrique">
- Poster dans {$tracker->name}
-</div>
-
-<form method="post" action="{$smarty.server.REQUEST_URI}">
- <table class="bicol" cellpadding="3">
- <tr class="impair">
- <td class="titre">
- Priorité
- </td>
- <td>
- <select name="prio">
- <option value="5">{$tracker->pris[5]}</option>
- <option value="4">{$tracker->pris[4]}</option>
- <option value="3" selected="selected">{$tracker->pris[3]}</option>
- <option value="2">{$tracker->pris[2]}</option>
- <option value="1">{$tracker->pris[1]}</option>
- </select>
- </td>
- </tr>
- <tr>
- <td class="titre">
- Statut
- </td>
- <td>
- <select name="statut">
- {foreach item=st from=$states}
- <option value="{$st.st_id}">{$st.texte}</option>
- {/foreach}
- </select>
- </td>
- </tr>
- <tr>
- <td class="titre"> Sujet </td>
- <td><input name="sujet" type="text" size="40" value="{$smarty.post.sujet}" /></td>
- </tr>
- <tr>
- <td colspan="2"><textarea name="text" cols="74" rows="20">{$smarty.post.text}</textarea></td>
- </tr>
- <tr>
- <td colspan="2" class="center">
- <input type="submit" value="Valider" />
- </td>
- </tr>
- </table>
-</form>
-
-{/dynamic}
-
-{* vim:set et sw=2 sts=2 sws=2: *}
+++ /dev/null
-{* $Id: show.tpl,v 1.7 2004-04-26 14:45:53 x2000habouzit Exp $ *}
-
-{literal}
-<script type="text/javascript">
- <!--
- function del( myid ) {
- if( confirm ("You are about to delete this request !\nDo you still want to proceed ?") ) {
- ops = document.getElementById('op');
- ops.id.value = myid;
- ops.submit();
- return action('del', myid);
- }
- }
- -->
-</script>
-{/literal}
-
-<form id="op" method="post" action="{$smarty.server.REQUEST_URI}">
- <input type="hidden" id="id" name="id" value="" />
-</form>
-
-{dynamic}
-
-<p class="normal">
- [<a href="index.php">Liste des trackers</a>]
- [<a href="post.php?tr_id={$smarty.get.tr_id}">Poster dans ce tracker</a>]
-</p>
-
-<div class="rubrique">
- Tracker {$tracker->name}
-</div>
-<table class="bicol" cellpadding="3">
- <tr>
- <th>Date</th>
- <th>Sujet</th>
- <th>Assigné à</th>
- </tr>
-{foreach item=rq from=$requests}
- <tr class="pri{$rq.pri}">
- <td>{$rq.date|date_format:"%d %b %Y"}</td>
- <td><a href="show_rq.php?tr_id={$smarty.get.tr_id}&rq_id={$rq.rq_id}">{$rq.summary}</a></td>
- <td class="right">{if $rq.username}<a href="mailto:{$rq.username}@polytechnique.org">{$rq.username}</a>{else}-{/if}</td>
- </tr>
-{/foreach}
-<tr><th colspan="3"></th></tr>
-{foreach item=rq from=$close}
- <tr>
- <td>{$rq.date|date_format:"%d %b %Y"}</td>
- <td><a href="show_rq.php?tr_id={$smarty.get.tr_id}&rq_id={$rq.rq_id}">{$rq.summary}</a></td>
- <td class="action"><a href="javascript:del({$rq.rq_id})">delete</a></td>
- </tr>
-{/foreach}
-</table>
-{/dynamic}
-
-<br />
-<div class="ssrubrique">
- Couleurs des priorités
-</div>
-<table summary="priorités">
- <tr>
- <td class="pri1">1</td>
- <td class="pri2">2</td>
- <td class="pri3">3</td>
- <td class="pri4">4</td>
- <td class="pri5">5</td>
- </tr>
-</table>
-
-{* vim:set et sw=2 sts=2 sws=2: *}
+++ /dev/null
-{* $Id: show_rq.tpl,v 1.3 2004-04-26 14:24:08 x2000habouzit Exp $ *}
-
-{dynamic}
-
-<p class="normal">
- [<a href="index.php">Liste des trackers</a>]
- [<a href="show.php?tr_id={$smarty.get.tr_id}">Revenir au tracker</a>]
-</p>
-
-<div class="rubrique">
- {$request.summary} (posté le {$request.date|date_format:"%d %b %Y"})
-</div>
-
-<form action="{$smarty.server.REQUEST_URI}" method="post">
- <table class="bicol">
- <tr>
- <th>priorité</th>
- <th>Soumis par</th>
- <th>Assigné à </th>
- <th>Etat actuel</th>
- </tr>
- <tr class="impair">
- <td class="center">
- {$tracker->pris[$request.pri]}
- </td>
- <td class="center">
- {if $request.username}
- <a href="mailto:{$request.username}@polytechnique.org">{$request.username}</a>
- {else}-{/if}
- </td>
- <td class="center">
- {if $request.admin}
- <a href="mailto:{$request.admin}@polytechnique.org">{$request.admin}</a>
- {else}-{/if}
- </td>
- <td class="center">
- {$request.state}
- </td>
- </tr>
- <tr><th colspan="4">Texte posté</th></tr>
- <tr><td colspan="4"><tt>{$request.texte|escape|nl2br}</tt></td></tr>
- <tr><th colspan="4">Changer des propriétés</th></tr>
- <tr class="impair">
- <td class="center">
- <select name="n_pri">
- <option value="5" {if $request.pri eq 5}selected="selected"{/if}>{$tracker->pris[5]}</option>
- <option value="4" {if $request.pri eq 4}selected="selected"{/if}>{$tracker->pris[4]}</option>
- <option value="3" {if $request.pri eq 3}selected="selected"{/if}>{$tracker->pris[3]}</option>
- <option value="2" {if $request.pri eq 2}selected="selected"{/if}>{$tracker->pris[2]}</option>
- <option value="1" {if $request.pri eq 1}selected="selected"{/if}>{$tracker->pris[1]}</option>
- </select>
- </td>
- <td class="center">
- {if $request.username}
- <a href="mailto:{$request.username}@polytechnique.org">{$request.username}</a>
- {else}-{/if}
- </td>
- <td class="center">
- <select name="n_admin">
- <option value="">-</option>
- {foreach item=a from=$admins}
- <option value="{$a.user_id}" {if $a.user_id eq $request.admin_id}selected="selected"{/if}>{$a.username}</option>
- {/foreach}
- </select>
- </td>
- <td class="center">
- <select name="n_state">
- {foreach item=s from=$states}
- <option value="{$s.st_id}" {if $s.st_id eq $request.st_id}selected="selected"{/if}>{$s.texte}</option>
- {/foreach}
- </select>
- </td>
- </tr>
- <tr>
- <td class="center" colspan="4">
- <input type="submit" value="modifier" name="n_sub" />
- </td>
- </tr>
- </table>
-</form>
-
-<br />
-
-<div class="rubrique">
- Réponses
-</div>
-<p class="normal">
- [<a href="answer.php?tr_id={$smarty.get.tr_id}&rq_id={$smarty.get.rq_id}">Répondre</a>]
-</p>
-{if $fups}
-<table class="bicol">
- {foreach item=fup from=$fups}
- <tr><th>{$fup.username} <span class="smaller">le {$fup.date|date_format:"%d %b %Y"}</span></th></tr>
- <tr><td><tt>{$fup.texte|escape|nl2br}</tt></td></tr>
- {/foreach}
-</table>
-<p class="normal">
- [<a href="answer.php?tr_id={$smarty.get.tr_id}&rq_id={$smarty.get.rq_id}">Répondre</a>]
-</p>
-{/if}
-{/dynamic}
-
-{* vim:set et sw=2 sts=2 sws=2: *}