Magellan Linux

Contents of /trunk/flyspray/themes/Magellan/templates/newmultitasks.tpl

Parent Directory Parent Directory | Revision Log 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)
-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>