Contents of /trunk/flyspray/themes/Magellan/templates/newmultitasks.tpl
Parent Directory | Revision Log
Revision 6 -
(show annotations)
(download)
Thu Mar 24 13:33:23 2016 UTC (8 years, 2 months ago) by niro
File size: 9673 byte(s)
Thu Mar 24 13:33:23 2016 UTC (8 years, 2 months ago) by niro
File size: 9673 byte(s)
-import flyspray-1.0-beta Magellan theme
1 | <?php |
2 | if (!isset($supertask_id)) { |
3 | $supertask_id = 0; |
4 | } |
5 | $field_num = 3; |
6 | ?> |
7 | <!-- Grab fields wanted for this project so we can only show those we want --> |
8 | <?php $fields = explode( ' ', $proj->prefs['visible_fields'] ); ?> |
9 | |
10 | <div id="intromessage"><?php echo L('hintforbulkimport'); ?></div> |
11 | <?php echo tpl_form(Filters::noXSS(CreateUrl('newmultitasks', $proj->id, $supertask_id))); ?> |
12 | <input type="hidden" name="supertask_id" value="<?php echo Filters::noXSS($supertask_id); ?>" /> |
13 | <input type="hidden" name="project_id" value="<?php echo Filters::noXSS($proj->id); ?>" /> |
14 | <input type="hidden" name="action" value="newmultitasks.newmultitasks" /> |
15 | <button class="button" accesskey="f" type="button" onClick="Apply()"><?php echo L('applyfirstline'); ?></button> |
16 | <table class="list"> |
17 | <thead> |
18 | <tr> |
19 | <th></th> |
20 | <?php if (in_array('tasktype', $fields)) { ?><th><?php echo Filters::noXSS(L('tasktype')); ?></th><?php $field_num++;} ?> |
21 | <?php if (in_array('category', $fields)) { ?><th><?php echo Filters::noXSS(L('category')); ?></th><?php $field_num++;} ?> |
22 | <?php if (in_array('status', $fields)) { ?><th><?php echo Filters::noXSS(L('status')); ?></th><?php $field_num++;} ?> |
23 | <?php if (in_array('os', $fields)) { ?><th><?php echo Filters::noXSS(L('operatingsystem')); ?></th><?php $field_num++;} ?> |
24 | <?php if (in_array('severity', $fields)) { ?><th><?php echo Filters::noXSS(L('severity')); ?></th><?php $field_num++;} ?> |
25 | <?php if (in_array('priority', $fields)) { ?><th><?php echo Filters::noXSS(L('priority')); ?></th><?php $field_num++;} ?> |
26 | <?php if (in_array('reportedin', $fields)) { ?><th><?php echo Filters::noXSS(L('reportedversion')); ?></th><?php $field_num++;} ?> |
27 | <?php if (in_array('dueversion', $fields)) { ?><th><?php echo Filters::noXSS(L('dueinversion')); ?></th><?php $field_num++;} ?> |
28 | <?php if ($user->perms('modify_all_tasks')): ?><?php if (in_array('assignedto', $fields)) { ?><th><?php echo Filters::noXSS(L('assignedto')); ?></th><?php $field_num++;} ?><?php endif; ?> |
29 | <th><?php echo Filters::noXSS(L('summary')); ?></th> |
30 | <th><?php echo Filters::noXSS(L('details')); ?></th> |
31 | </tr> |
32 | </thead> |
33 | <tbody id="table"> |
34 | <tr id="row"> |
35 | <td><button class="button img delete" accesskey="s" type="button" onClick="removeRow(this);return false;"></button></td> |
36 | <?php if (in_array('tasktype', $fields)) { ?> |
37 | <td> |
38 | <?php } else { ?> |
39 | <td style="display:none"> |
40 | <?php } ?> |
41 | <select name="task_type[]" id="tasktype"> |
42 | <?php echo tpl_options($proj->listTaskTypes(), Req::val('task_type')); ?> |
43 | |
44 | </select> |
45 | </td> |
46 | |
47 | <!-- Category--> |
48 | <?php if (in_array('category', $fields)) { ?> |
49 | <td> |
50 | <?php } else { ?> |
51 | <td style="display:none"> |
52 | <?php } ?> |
53 | <select class="adminlist" name="product_category[]" id="category"> |
54 | <?php echo tpl_options($proj->listCategories(), Req::val('product_category')); ?> |
55 | |
56 | </select> |
57 | </td> |
58 | |
59 | <!-- Status--> |
60 | <?php if (in_array('status', $fields)) { ?> |
61 | <td> |
62 | <?php } else { ?> |
63 | <td style="display:none"> |
64 | <?php } ?> |
65 | <select id="status" name="item_status[]" <?php echo tpl_disableif(!$user->perms('modify_all_tasks')); ?>> |
66 | <?php echo tpl_options($proj->listTaskStatuses(), Req::val('item_status', ($user->perms('modify_all_tasks') ? STATUS_NEW : STATUS_UNCONFIRMED))); ?> |
67 | </select> |
68 | </td> |
69 | |
70 | <!-- OS--> |
71 | <?php if (in_array('os', $fields)) { ?> |
72 | <td> |
73 | <?php } else { ?> |
74 | <td style="display:none"> |
75 | <?php } ?> |
76 | <select id="os" name="operating_system[]"> |
77 | <?php echo tpl_options($proj->listOs(), Req::val('operating_system')); ?> |
78 | |
79 | </select> |
80 | </td> |
81 | |
82 | <!-- Severity--> |
83 | <?php if (in_array('severity', $fields)) { ?> |
84 | <td> |
85 | <?php } else { ?> |
86 | <td style="display:none"> |
87 | <?php } ?> |
88 | <select id="severity" class="adminlist" name="task_severity[]"> |
89 | <?php echo tpl_options($fs->severities, Req::val('task_severity', 2)); ?> |
90 | |
91 | </select> |
92 | </td> |
93 | |
94 | <!-- Priority--> |
95 | <?php if (in_array('priority', $fields)) { ?> |
96 | <td> |
97 | <?php } else { ?> |
98 | <td style="display:none"> |
99 | <?php } ?> |
100 | <select id="priority" name="task_priority[]" <?php echo tpl_disableif(!$user->perms('modify_all_tasks')); ?>> |
101 | <?php echo tpl_options($fs->priorities, Req::val('task_priority', 4)); ?> |
102 | </select> |
103 | </td> |
104 | |
105 | <!-- Reported Version--> |
106 | <?php if (in_array('reportedin', $fields)) { ?> |
107 | <td> |
108 | <?php } else { ?> |
109 | <td style="display:none"> |
110 | <?php } ?> |
111 | <select class="adminlist" name="product_version[]" id="reportedver"> |
112 | <?php echo tpl_options($proj->listVersions(false, 2), Req::val('product_version')); ?> |
113 | |
114 | </select> |
115 | </td> |
116 | |
117 | <!-- Due Version --> |
118 | <?php if (in_array('dueversion', $fields)) { ?> |
119 | <td> |
120 | <?php } else { ?> |
121 | <td style="display:none"> |
122 | <?php } ?> |
123 | <select id="dueversion" name="closedby_version[]" <?php echo tpl_disableif(!$user->perms('modify_all_tasks')); ?>> |
124 | <option value="0"><?php echo Filters::noXSS(L('undecided')); ?></option> |
125 | <?php echo tpl_options($proj->listVersions(false, 3),$proj->prefs['default_due_version'], false); ?> |
126 | </select> |
127 | </td> |
128 | |
129 | <!-- Assigned To --> |
130 | <?php if ($user->perms('modify_all_tasks')){ ?><?php if (in_array('assignedto', $fields)) { ?> |
131 | <td> |
132 | <?php } else { ?> |
133 | <td style="display:none"> |
134 | <?php } echo tpl_userselect('assigned_to[0]', Req::val('assigned_to[0]'), 'find_user_0'); ?> |
135 | </td> |
136 | <?php } ?> |
137 | <td> |
138 | <input type="text" class="text" size="30" id="summary" name="item_summary[]" onPaste="pasteMultiLines(this, event);return false"/> |
139 | </td> |
140 | <td> |
141 | <input type="text" class="text" size="20" id="details" name="detailed_desc[]" onkeydown="return TabandCreate(this, event);" onPaste="pasteMultiLines(this, event);return false"/> |
142 | </td> |
143 | </tr> |
144 | |
145 | <tr> |
146 | <td class="buttons" colspan="<?php echo $field_num; ?>"> |
147 | <button class="button" accesskey="a" type="button" onClick="createRow('','')"><?php echo L('addmorerows'); ?></button> |
148 | <button class="button positive" accesskey="s" type="submit"><?php echo L('addtasks'); ?></button> |
149 | </td> |
150 | </tr> |
151 | </tbody> |
152 | </table> |
153 | <script type="text/javascript"> |
154 | |
155 | var index = 0; |
156 | function createRow(summary, details) |
157 | { |
158 | index++; |
159 | var table = document.getElementById("table"); |
160 | var rows = table.getElementsByTagName("tr"); |
161 | var clone = rows[0].cloneNode(true); |
162 | |
163 | var tds = clone.getElementsByTagName("td"); |
164 | var length = tds.length; |
165 | tds[length-2].getElementsByTagName("input")[0].value = summary; |
166 | tds[length-1].getElementsByTagName("input")[0].value = details; |
167 | tds[length-3].getElementsByTagName("input")[0].value = ""; |
168 | tds[length-3].getElementsByTagName("script")[0].innerHTML = ""; |
169 | var res = tds[length-3].innerHTML.replace(/assigned_to\[0\]/g, "assigned_to[" + index + "]"); |
170 | res = res.replace(/find_user_0/g, "find_user_" + index); |
171 | tds[length-3].innerHTML = res; |
172 | table.insertBefore(clone, table.lastElementChild); |
173 | showstuff("assigned_to[" + index + "]_complete"); |
174 | new Ajax.Autocompleter(tds[length-3].getElementsByTagName("input")[0].id, tds[length-3].getElementsByTagName("span")[0].id, "<?php echo Filters::noXSS($baseurl); ?>js/callbacks/usersearch.php", null); |
175 | } |
176 | function removeRow(elem) |
177 | { |
178 | var table = document.getElementById("table"); |
179 | var rows = table.getElementsByTagName("tr"); |
180 | var length = rows.length; |
181 | if(length <= 2) |
182 | return false; |
183 | for(var i = 0; i < length -1; i++) |
184 | { |
185 | if(rows[i] == elem.parentNode.parentNode) { |
186 | table.deleteRow(i); |
187 | break; |
188 | } |
189 | } |
190 | } |
191 | function pasteMultiLines(elem, e) |
192 | { |
193 | |
194 | if(e && e.clipboardData && e.clipboardData.getData) { |
195 | var strs = e.clipboardData.getData("text/plain").split("\n"); |
196 | var table = document.getElementById("table"); |
197 | var rows = table.getElementsByTagName("tr"); |
198 | for(var i = 0; i < rows.length-1; i++) |
199 | { |
200 | if(rows[i] == elem.parentNode.parentNode) |
201 | break; |
202 | } |
203 | var index; |
204 | if(elem.id == "summary") |
205 | index = 2; |
206 | else |
207 | index = 1; |
208 | var k = 0; |
209 | for(var j = i; j < rows.length-1 && k < strs.length; j++, k++) |
210 | { |
211 | var tds = rows[j].getElementsByTagName("td"); |
212 | var length = tds.length; |
213 | tds[length-index].getElementsByTagName("input")[0].value = strs[k]; |
214 | } |
215 | for(; k < strs.length; k++) |
216 | { |
217 | if(index == 2) |
218 | createRow(strs[k], ""); |
219 | else |
220 | createRow("", strs[k]); |
221 | } |
222 | } |
223 | } |
224 | function Apply() |
225 | { |
226 | var table = document.getElementById("table"); |
227 | var rows = table.getElementsByTagName("tr"); |
228 | var fields = rows[0].getElementsByTagName("td"); |
229 | for(var i = 1; i < rows.length-1; i++) |
230 | { |
231 | var tds = rows[i].getElementsByTagName("td"); |
232 | for(var j = 1; j < tds.length; j++) |
233 | { |
234 | var input = tds[j].getElementsByTagName("input"); |
235 | var select = tds[j].getElementsByTagName("select"); |
236 | if(input != null && input.length > 0) |
237 | { |
238 | input[0].value = fields[j].getElementsByTagName("input")[0].value; |
239 | } |
240 | if(select != null && select.length > 0) |
241 | { |
242 | select[0].value = fields[j].getElementsByTagName("select")[0].value; |
243 | } |
244 | } |
245 | } |
246 | } |
247 | function TabandCreate(elem, e) |
248 | { |
249 | if(e.keyCode != 9) |
250 | return true; |
251 | var table = document.getElementById("table"); |
252 | var rows = table.getElementsByTagName("tr"); |
253 | var length = rows.length; |
254 | var parent = elem.parentNode.parentNode; |
255 | if(parent == rows[length-2]) |
256 | createRow('',''); |
257 | parent.nextElementSibling.getElementsByTagName("input")[1].focus(); |
258 | return false; |
259 | } |
260 | </script> |
261 | </form> |