php8
[web.mtrack] / MTrackWeb / Roadmap.php
1 <?php # vim:ts=2:sw=2:et:
2 /* For licensing and copyright terms, see the file named LICENSE */
3
4
5 die("roadmap - not migrated..");
6
7 MTrackACL::requireAllRights('Roadmap', 'read');
8
9 mtrack_head("Roadmap");
10
11 $completed = isset($_GET['completed']) ? 'checked' : '';
12 $watched = isset($_GET['watched']) ?
13   'checked' : (count($_GET) ? '' : 'checked');
14
15 echo <<<HTML
16 <h1>Roadmap</h1>
17 <div style="float:right">
18 <form method="get">
19   <input type="checkbox" id='completed' name="completed" $completed>
20   <label for='completed'>Show completed milestones</label><br/>
21   <input type="checkbox" id='watched' name="watched" $watched>
22   <label for='watched'>Show only watched milestones</label><br/>
23   <button type="submit" name='s'>Update</button><br>
24 </form>
25 <button onclick="document.location.href='{$ABSWEB}milestone.php?new=1';return false;">Add Milestone</button>
26 <script type='text/javascript'>
27 var showingGraphs = true;
28 function toggleGraphs()
29 {
30   if (showingGraphs) {
31     $('.burndown').hide();
32   } else {
33     $('.burndown').show();
34   }
35   showingGraphs = !showingGraphs;
36 }
37 </script>
38 <button onclick="toggleGraphs(); return false;">Toggle Graphs</button>
39 </div>
40 HTML;
41 $db = MTrackDB::get();
42
43 if (!empty($_GET['completed'])) {
44   $comp = "";
45 } else {
46   $comp = " AND completed IS NULL ";
47 }
48
49 if ($watched == 'checked') {
50   $me = $db->quote(mtrack_canon_username(MTrackAuth::whoami()));
51   if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql') {
52     $oid = 'w.oid::integer';
53   } else {
54     $oid = 'w.oid';
55   }
56   $sql = <<<SQL
57 SELECT distinct name, duedate
58 FROM watches w
59 LEFT JOIN milestones m on (m.mid = $oid)
60   WHERE
61     w.userid = $me AND
62     w.otype = 'milestone' AND
63     deleted != 1
64     AND pmid IS NULL
65     $comp
66 ORDER by duedate ASC, name
67 SQL;
68
69 } else {
70   $sql = <<<SQL
71 SELECT name
72 FROM milestones
73   WHERE 
74     deleted != 1
75     AND pmid IS NULL
76   $comp 
77 ORDER by case when duedate IS NULL then 1 else 0 end, duedate ASC, name
78 SQL;
79 }
80
81 $i = 0;
82 foreach ($db->query($sql)->fetchAll(PDO::FETCH_ASSOC) as $row) {
83   echo MTrack_Milestone::macro_MilestoneSummary($row['name']);
84   $i++;
85 }
86
87 if ($i == 0) {
88   $milestones = $watched == 'checked' ? 'watched milestones' : 'milestones';
89   echo <<<HTML
90 <p><em>No $milestones were found.</em></p>
91 HTML;
92 }
93
94 mtrack_foot();
95