on peut y poster
authorx2000habouzit <x2000habouzit>
Mon, 23 Feb 2004 18:43:41 +0000 (18:43 +0000)
committerx2000habouzit <x2000habouzit>
Mon, 23 Feb 2004 18:43:41 +0000 (18:43 +0000)
htdocs/trackers/post.php [new file with mode: 0644]
htdocs/trackers/show.php
include/tracker.inc.php
templates/trackers/post.tpl [new file with mode: 0644]

diff --git a/htdocs/trackers/post.php b/htdocs/trackers/post.php
new file mode 100644 (file)
index 0000000..dd67498
--- /dev/null
@@ -0,0 +1,21 @@
+<?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();   
+?>
index ecaf0a6..19632c5 100644 (file)
@@ -5,7 +5,7 @@ require('tracker.inc.php');
 
 $tracker = new Tracker($_GET['tr_id']);
 
-if(empty($tracker->id) || !$tracker->perms_ok())
+if(empty($tracker->id) || !$tracker->read_perms_ok())
     $page->failure();
 
 $page->assign('tracker', $tracker);
index 559c0bc..110ed0a 100644 (file)
@@ -65,7 +65,17 @@ class Tracker {
                      WHERE r.rq_id=f.rq_id AND r.tr_id='{$this->id}'");
     }
 
-    function perms_ok() {
+    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'");
+        $id = mysql_insert_id();
+        # TODO : mail
+        return $id;
+    }
+
+    function read_perms_ok() {
         if(has_perms())
             return true;
         if(logged() && $this->perms == 'auth')
@@ -74,6 +84,16 @@ class Tracker {
             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() {
@@ -107,4 +127,5 @@ function tracker_update($name,$desc,$perms,$ml_id,$bits,$pris, $tr_id=0) {
         return mysql_insert_id();
     }
 }
+
 ?>
diff --git a/templates/trackers/post.tpl b/templates/trackers/post.tpl
new file mode 100644 (file)
index 0000000..6511887
--- /dev/null
@@ -0,0 +1,59 @@
+{* $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: *}