1 <?php # vim:ts=4:sw=4:et:
2 /* For licensing and copyright terms, see the file named LICENSE */
5 require_once 'MTrackWeb.php';
7 class MTrackWeb_Report extends MTrackWeb
9 var $template = 'report.html';
14 require_once 'MTrack/ACL.php';
15 MTrackACL::requireAllRights('Reports', 'read');
22 $this->edit = !empty($_REQUEST['edit']);
24 if ($this->edit && !$pi) {
25 MTrackACL::requireAllRights('Reports', 'create');
26 $rep = new MTrack_Report;
30 $rep = DB_DataObject::factory('reports');
32 MTrackACL::requireAllRights("report:" . $rep->rid, $this->edit ? 'modify' : 'read');
35 ///$rep = MTrack_Report::loadBySummary($pi);
36 ///MTrackACL::requireAllRights("report:" . $rep->rid, $edit ? 'modify' : 'read');
38 if (isset($_GET['format'])) {
39 // targeted report format; omit decoration <<< ??? tab delimited only at present?
41 unset($params['format']);
42 switch ($_GET['format']) {
44 header('Content-Type: text/plain');
47 echo $rep->renderReport($rep->query, $params, $_GET['format']);
51 $this->title = "Create Report";
53 $this->title = $this->edit ?
54 ('{' . $rep->rid . '} ' . $rep->summary . " (edit)") :
55 '{' . $rep->rid . '} ' . $rep->summary;
57 $this->canModify = MTrackACL::hasAllRights("report:" . $rep->rid, 'modify');
60 MTrack_Report::$link = $this->link;
68 MTrackACL::requireAllRights('Reports', 'create');
69 $rep = new MTrack_Report;
73 $rep = DB_DataObject::factory('reports');
75 MTrackACL::requireAllRights("report:" . $rep->rid, 'modify');
78 $rep->summary = $_POST['name'];
79 $rep->description = $_POST['description'];
80 $rep->query = $_POST['query'];
81 if (isset($_POST['cancel'])) {
82 header("Location: {$this->baseURL}/Reports");
85 // in theory... everything else is a 'save'...
87 $cs = MTrackChangeset::begin(
88 "report:" . $rep->summary, $_POST['comment']);
91 return $this->get($pi);
92 } catch (Exception $e) {
93 $this->message = $e->getMessage();
95 return $this->get($pi);