Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/themes/CleanFS/templates/newmultitasks.tpl
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2020-02-01 09:05:48 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2020-02-01 09:05:48 +0100
commit6854cb3f4d8219cf1829e32122eb2502a916eae9 (patch)
tree350feb504587d932e02837a1442b059759927646 /themes/CleanFS/templates/newmultitasks.tpl
initial checkin
Diffstat (limited to 'themes/CleanFS/templates/newmultitasks.tpl')
-rw-r--r--themes/CleanFS/templates/newmultitasks.tpl261
1 files changed, 261 insertions, 0 deletions
diff --git a/themes/CleanFS/templates/newmultitasks.tpl b/themes/CleanFS/templates/newmultitasks.tpl
new file mode 100644
index 0000000..d8126f5
--- /dev/null
+++ b/themes/CleanFS/templates/newmultitasks.tpl
@@ -0,0 +1,261 @@
+<?php
+ if (!isset($supertask_id)) {
+ $supertask_id = 0;
+ }
+ $field_num = 3;
+?>
+<!-- Grab fields wanted for this project so we can only show those we want -->
+<?php $fields = explode( ' ', $proj->prefs['visible_fields'] ); ?>
+
+<div id="intromessage"><?php echo L('hintforbulkimport'); ?></div>
+<?php echo tpl_form(Filters::noXSS(CreateUrl('newmultitasks', $proj->id, $supertask_id))); ?>
+ <input type="hidden" name="supertask_id" value="<?php echo Filters::noXSS($supertask_id); ?>" />
+ <input type="hidden" name="project_id" value="<?php echo Filters::noXSS($proj->id); ?>" />
+ <input type="hidden" name="action" value="newmultitasks.newmultitasks" />
+ <button class="button" accesskey="f" type="button" onClick="Apply()"><?php echo L('applyfirstline'); ?></button>
+ <table class="list">
+ <thead>
+ <tr>
+ <th></th>
+ <?php if (in_array('tasktype', $fields)) { ?><th><?php echo Filters::noXSS(L('tasktype')); ?></th><?php $field_num++;} ?>
+ <?php if (in_array('category', $fields)) { ?><th><?php echo Filters::noXSS(L('category')); ?></th><?php $field_num++;} ?>
+ <?php if (in_array('status', $fields)) { ?><th><?php echo Filters::noXSS(L('status')); ?></th><?php $field_num++;} ?>
+ <?php if (in_array('os', $fields)) { ?><th><?php echo Filters::noXSS(L('operatingsystem')); ?></th><?php $field_num++;} ?>
+ <?php if (in_array('severity', $fields)) { ?><th><?php echo Filters::noXSS(L('severity')); ?></th><?php $field_num++;} ?>
+ <?php if (in_array('priority', $fields)) { ?><th><?php echo Filters::noXSS(L('priority')); ?></th><?php $field_num++;} ?>
+ <?php if (in_array('reportedin', $fields)) { ?><th><?php echo Filters::noXSS(L('reportedversion')); ?></th><?php $field_num++;} ?>
+ <?php if (in_array('dueversion', $fields)) { ?><th><?php echo Filters::noXSS(L('dueinversion')); ?></th><?php $field_num++;} ?>
+ <?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; ?>
+ <th><?php echo Filters::noXSS(L('summary')); ?></th>
+ <th><?php echo Filters::noXSS(L('details')); ?></th>
+ </tr>
+ </thead>
+ <tbody id="table">
+ <tr id="row">
+ <td><button class="button img delete" accesskey="s" type="button" onClick="removeRow(this);return false;"></button></td>
+ <?php if (in_array('tasktype', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } ?>
+ <select name="task_type[]" id="tasktype">
+ <?php echo tpl_options($proj->listTaskTypes(), Req::val('task_type')); ?>
+
+ </select>
+ </td>
+
+ <!-- Category-->
+ <?php if (in_array('category', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } ?>
+ <select class="adminlist" name="product_category[]" id="category">
+ <?php echo tpl_options($proj->listCategories(), Req::val('product_category')); ?>
+
+ </select>
+ </td>
+
+ <!-- Status-->
+ <?php if (in_array('status', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } ?>
+ <select id="status" name="item_status[]" <?php echo tpl_disableif(!$user->perms('modify_all_tasks')); ?>>
+ <?php echo tpl_options($proj->listTaskStatuses(), Req::val('item_status', ($user->perms('modify_all_tasks') ? STATUS_NEW : STATUS_UNCONFIRMED))); ?>
+ </select>
+ </td>
+
+ <!-- OS-->
+ <?php if (in_array('os', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } ?>
+ <select id="os" name="operating_system[]">
+ <?php echo tpl_options($proj->listOs(), Req::val('operating_system')); ?>
+
+ </select>
+ </td>
+
+ <!-- Severity-->
+ <?php if (in_array('severity', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } ?>
+ <select id="severity" class="adminlist" name="task_severity[]">
+ <?php echo tpl_options($fs->severities, Req::val('task_severity', 2)); ?>
+
+ </select>
+ </td>
+
+ <!-- Priority-->
+ <?php if (in_array('priority', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } ?>
+ <select id="priority" name="task_priority[]" <?php echo tpl_disableif(!$user->perms('modify_all_tasks')); ?>>
+ <?php echo tpl_options($fs->priorities, Req::val('task_priority', 4)); ?>
+ </select>
+ </td>
+
+ <!-- Reported Version-->
+ <?php if (in_array('reportedin', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } ?>
+ <select class="adminlist" name="product_version[]" id="reportedver">
+ <?php echo tpl_options($proj->listVersions(false, 2), Req::val('product_version')); ?>
+
+ </select>
+ </td>
+
+ <!-- Due Version -->
+ <?php if (in_array('dueversion', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } ?>
+ <select id="dueversion" name="closedby_version[]" <?php echo tpl_disableif(!$user->perms('modify_all_tasks')); ?>>
+ <option value="0"><?php echo Filters::noXSS(L('undecided')); ?></option>
+ <?php echo tpl_options($proj->listVersions(false, 3),$proj->prefs['default_due_version'], false); ?>
+ </select>
+ </td>
+
+ <!-- Assigned To -->
+ <?php if ($user->perms('modify_all_tasks')){ ?><?php if (in_array('assignedto', $fields)) { ?>
+ <td>
+ <?php } else { ?>
+ <td style="display:none">
+ <?php } echo tpl_userselect('assigned_to[0]', Req::val('assigned_to[0]'), 'find_user_0'); ?>
+ </td>
+ <?php } ?>
+ <td>
+ <input type="text" class="text" size="30" id="summary" name="item_summary[]" onPaste="pasteMultiLines(this, event);return false"/>
+ </td>
+ <td>
+ <input type="text" class="text" size="20" id="details" name="detailed_desc[]" onkeydown="return TabandCreate(this, event);" onPaste="pasteMultiLines(this, event);return false"/>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="buttons" colspan="<?php echo $field_num; ?>">
+ <button class="button" accesskey="a" type="button" onClick="createRow('','')"><?php echo L('addmorerows'); ?></button>
+ <button class="button positive" accesskey="s" type="submit"><?php echo L('addtasks'); ?></button>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <script type="text/javascript">
+
+ var index = 0;
+ function createRow(summary, details)
+ {
+ index++;
+ var table = document.getElementById("table");
+ var rows = table.getElementsByTagName("tr");
+ var clone = rows[0].cloneNode(true);
+
+ var tds = clone.getElementsByTagName("td");
+ var length = tds.length;
+ tds[length-2].getElementsByTagName("input")[0].value = summary;
+ tds[length-1].getElementsByTagName("input")[0].value = details;
+ tds[length-3].getElementsByTagName("input")[0].value = "";
+ tds[length-3].getElementsByTagName("script")[0].innerHTML = "";
+ var res = tds[length-3].innerHTML.replace(/assigned_to\[0\]/g, "assigned_to[" + index + "]");
+ res = res.replace(/find_user_0/g, "find_user_" + index);
+ tds[length-3].innerHTML = res;
+ table.insertBefore(clone, table.lastElementChild);
+ showstuff("assigned_to[" + index + "]_complete");
+ 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);
+ }
+ function removeRow(elem)
+ {
+ var table = document.getElementById("table");
+ var rows = table.getElementsByTagName("tr");
+ var length = rows.length;
+ if(length <= 2)
+ return false;
+ for(var i = 0; i < length -1; i++)
+ {
+ if(rows[i] == elem.parentNode.parentNode) {
+ table.deleteRow(i);
+ break;
+ }
+ }
+ }
+ function pasteMultiLines(elem, e)
+ {
+
+ if(e && e.clipboardData && e.clipboardData.getData) {
+ var strs = e.clipboardData.getData("text/plain").split("\n");
+ var table = document.getElementById("table");
+ var rows = table.getElementsByTagName("tr");
+ for(var i = 0; i < rows.length-1; i++)
+ {
+ if(rows[i] == elem.parentNode.parentNode)
+ break;
+ }
+ var index;
+ if(elem.id == "summary")
+ index = 2;
+ else
+ index = 1;
+ var k = 0;
+ for(var j = i; j < rows.length-1 && k < strs.length; j++, k++)
+ {
+ var tds = rows[j].getElementsByTagName("td");
+ var length = tds.length;
+ tds[length-index].getElementsByTagName("input")[0].value = strs[k];
+ }
+ for(; k < strs.length; k++)
+ {
+ if(index == 2)
+ createRow(strs[k], "");
+ else
+ createRow("", strs[k]);
+ }
+ }
+ }
+ function Apply()
+ {
+ var table = document.getElementById("table");
+ var rows = table.getElementsByTagName("tr");
+ var fields = rows[0].getElementsByTagName("td");
+ for(var i = 1; i < rows.length-1; i++)
+ {
+ var tds = rows[i].getElementsByTagName("td");
+ for(var j = 1; j < tds.length; j++)
+ {
+ var input = tds[j].getElementsByTagName("input");
+ var select = tds[j].getElementsByTagName("select");
+ if(input != null && input.length > 0)
+ {
+ input[0].value = fields[j].getElementsByTagName("input")[0].value;
+ }
+ if(select != null && select.length > 0)
+ {
+ select[0].value = fields[j].getElementsByTagName("select")[0].value;
+ }
+ }
+ }
+ }
+ function TabandCreate(elem, e)
+ {
+ if(e.keyCode != 9)
+ return true;
+ var table = document.getElementById("table");
+ var rows = table.getElementsByTagName("tr");
+ var length = rows.length;
+ var parent = elem.parentNode.parentNode;
+ if(parent == rows[length-2])
+ createRow('','');
+ parent.nextElementSibling.getElementsByTagName("input")[1].focus();
+ return false;
+ }
+ </script>
+</form>