r67: - Upping template system to use ISSO
[bugdar.git] / editreport.php
1 <?php
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # BugStrike [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # All parts of this file are ©2002-[#]year[#] Iris Studios, Inc. No # ||
7 || # part of this file may be reproduced in any way: part or whole. # ||
8 || # --------------------------------------------------------------- # ||
9 || # ©2002 - [#]year[#] Iris Studios, Inc. | http://www.iris-studios.com # ||
10 || ################################################################### ||
11 \*=====================================================================*/
12
13 $fetchtemplates = array(
14 'editreport',
15 'pcv_select_row'
16 );
17
18 require_once('./global.php');
19
20 sanitize(array('bugid' => INT));
21
22 $bug = $db->query_first("
23 SELECT bug.*, user.email, user.displayname, user.showemail
24 FROM " . TABLE_PREFIX . "bug AS bug
25 LEFT JOIN " . TABLE_PREFIX . "user AS user
26 ON (bug.userid = user.userid)
27 WHERE bug.bugid = $vars[bugid]"
28 );
29
30 if (!$bug)
31 {
32 echo 'alert: bad bug';
33 exit;
34 }
35
36 if (!(((can_perform('caneditown') AND $bugsys->userinfo['userid'] == $comment['userid']) OR can_perform('caneditothers')) AND can_perform('caneditinfo')))
37 {
38 echo 'no permission';
39 exit;
40 }
41
42 // ###################################################################
43
44 if (empty($_REQUEST['do']))
45 {
46 $_REQUEST['do'] = 'edit';
47 }
48
49 // ###################################################################
50 /*
51 #*# do these later once we have delete permissions figured out
52 if ($_REQUEST['do'] == 'kill')
53 {
54 // run code to remove item in database
55 }
56
57 // ###################################################################
58
59 if ($_REQUEST['do'] == 'delete')
60 {
61 // display delete confirmation message
62 }*/
63
64 // ###################################################################
65
66 if ($_POST['do'] == 'update')
67 {
68 sanitize(array(
69 'summary' => STR_NOHTML,
70 'priority' => INT,
71 'status' => INT,
72 'resolution' => INT,
73 'assignedto' => INT,
74 'pcv_select' => STR)
75 );
76
77 $vars['pcv'] = parse_pcv_select($vars['pcv_select'], true);
78
79 if (!$vars['summary'])
80 {
81 echo 'you need to enter a summary';
82 exit;
83 }
84 if (!$vars['pcv'])
85 {
86 echo 'invalid product/component/version';
87 exit;
88 }
89
90 $db->query("
91 UPDATE " . TABLE_PREFIX . "bug
92 SET summary = '" . addslasheslike($vars['summary']) . "',
93 priority = $vars[priority], status = $vars[status],
94 resolution = $vars[resolution],
95 assignedto = $vars[assignedto],
96 productid = " . $vars['pcv']['product'] . ",
97 componentid = " . $vars['pcv']['component'] . ",
98 versionid = " . $vars['pcv']['version'] . "
99 WHERE bugid = $bug[bugid]"
100 );
101
102 if ($vars['changeproduct'])
103 {
104 $_REQUEST['do'] = 'editproduct';
105 }
106 else
107 {
108 echo "<a href=\"showreport.php?bugid=$bug[bugid]\">done with update bug</a>";
109 }
110 }
111
112 // ###################################################################
113
114 if ($_REQUEST['do'] == 'edit')
115 {
116 foreach ($bugsys->datastore['severity'] AS $severity)
117 {
118 $value = $severity['severityid'];
119 $selected = iff($severity['severityid'] == $bug['severity'], true, false);
120 $label = $severity['severity'];
121 eval('$select[severity] .= "' . $template->fetch('selectoption') . '";');
122 }
123
124 $show['changestatus'] = iff(can_perform('canchangestatus'), true, false);
125 if (can_perform('canchangestatus'))
126 {
127 foreach ($bugsys->datastore['priority'] AS $priority)
128 {
129 $value = $priority['priorityid'];
130 $selected = iff($priority['priorityid'] == $bug['priority'], true, false);
131 $label = $priority['priority'];
132 eval('$select[priority] .= "' . $template->fetch('selectoption') . '";');
133 }
134
135 foreach ($bugsys->datastore['status'] AS $status)
136 {
137 $value = $status['statusid'];
138 $selected = iff($status['statusid'] == $bug['status'], true, false);
139 $label = $status['status'];
140 eval('$select[status] .= "' . $template->fetch('selectoption') . '";');
141 }
142
143 foreach ($bugsys->datastore['resolution'] AS $resolution)
144 {
145 $value = $resolution['resolutionid'];
146 $selected = iff($resolution['resolutionid'] == $bug['resolution'], true, false);
147 $label = $resolution['resolution'];
148 eval('$select[resolution] .= "' . $template->fetch('selectoption') . '";');
149 }
150 }
151
152 $show['assign'] = iff(can_perform('canassign'), true, false);
153 if (can_perform('canassign'))
154 {
155 foreach ($bugsys->datastore['assignto'] AS $dev)
156 {
157 $value = $dev['userid'];
158 $selected = iff($dev['userid'] == $bug['assignedto'], true, false);
159 $label = construct_user_display($dev, false);
160 eval('$select[dev] .= "' . $template->fetch('selectoption') . '";');
161 }
162 }
163
164 $pcv_select = construct_pcv_select("p$bug[productid]c$bug[componentid]v$bug[versionid]");
165
166 eval('$template->flush("' . $template->fetch('editreport') . '");');
167 }
168
169 /*=====================================================================*\
170 || ###################################################################
171 || # $HeadURL$
172 || # $Id$
173 || ###################################################################
174 \*=====================================================================*/
175 ?>