diff options
Diffstat (limited to 'themes/CleanFS/templates/details.edit.tpl')
-rw-r--r-- | themes/CleanFS/templates/details.edit.tpl | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/themes/CleanFS/templates/details.edit.tpl b/themes/CleanFS/templates/details.edit.tpl new file mode 100644 index 0000000..d56bd56 --- /dev/null +++ b/themes/CleanFS/templates/details.edit.tpl @@ -0,0 +1,255 @@ +<?php echo tpl_form(Filters::noXSS(createUrl('details', $task_details['task_id'])),null,null,null,'id="taskeditform"'); ?> +<!-- Grab fields wanted for this project so we can only show those we want --> +<?php $fields = explode( ' ', $proj->prefs['visible_fields'] ); +# FIXME The template should respect the ordering of 'visible_fields', aren't they? +# Maybe define a 'put visible_fields in default ordering'-button in project settings to let them make consistent with other projects and a no-brainer. +# But let also project managers have the choice to sort to the order they want it. + +# FIXME If user wants a task to be moved to other project and a hidden list value (not in visible_fields) would be not legal in the target project: +# Should we show that dropdown-list even if the field is not in the $fields-array to give the user the chance to resolve the issue? +# The field list dropdown is not a secret for webtech-people, it is just not visible by css display:none; +?> +<style> +/* can be moved to default theme.css later, when the multiple errors/messages-feature is matured. currently used only here. */ +.errorinput{color:#c00 !important;} +li.errorinput{background-color:#fc9;} +.errorinput::before{display:block;content: attr(title);} +</style> +<div id="taskdetails"> + <input type="hidden" name="action" value="details.update" /> + <input type="hidden" name="edit" value="1" /> + <input type="hidden" name="task_id" value="<?php echo Filters::noXSS($task_details['task_id']); ?>" /> + <input type="hidden" name="edit_start_time" value="<?php echo Filters::noXSS(Req::val('edit_start_time', time())); ?>" /> + <div id="taskfields"> + <ul class="form_elements slim"> + <!-- Status --> + <li<?php + # show the tasktype if invalid when moving tasks - even if not in the visible list. + echo isset($_SESSION['ERRORS']['invalidstatus']) ? ' class="errorinput"' : (in_array('status', $fields) ? '' : ' style="display:none"'); ?>> + <?php echo isset($_SESSION['ERRORS']['invalidstatus']) ? '<span class="errorinput" style="display:block;">'.eL('invalidstatus').'</span>' : ''; ?> + <label for="status"><?= eL('status') ?></label> + <?php echo tpl_select($statusselect); ?> + </li> + <!-- Progress --> + <li<?php echo in_array('progress', $fields) ? '' : ' style="display:none"'; ?>> + <label for="percent"<?php echo isset($_SESSION['ERRORS']['invalidprogress']) ? ' class="errorinput" title="'.eL('invalidprogress').'"':''; ?>><?php echo Filters::noXSS(L('percentcomplete')); ?></label> + <select id="percent" name="percent_complete" <?php echo tpl_disableif(!$user->perms('modify_all_tasks')) ?>> + <?php $arr = array(); for ($i = 0; $i<=100; $i+=10) $arr[$i] = $i.'%'; ?> + <?php echo tpl_options($arr, Req::val('percent_complete', $task_details['percent_complete'])); ?> + </select> + </li> + <!-- Task Type --> + <li<?php + # show the tasktype if invalid when moving tasks - even if not in the visible list. + echo isset($_SESSION['ERRORS']['invalidtasktype']) ? ' class="errorinput"' : (in_array('tasktype', $fields) ? '' : ' style="display:none"'); ?>> + <?php echo isset($_SESSION['ERRORS']['invalidtasktype']) ? '<span class="errorinput" style="display:block;">'.eL('invalidtasktype').'</span>' : ''; ?> + <label for="tasktype"><?= eL('tasktype') ?></label> + <?php echo tpl_select($tasktypeselect); ?> + </li> + <!-- Category --> + <li<?php + # show the category if invalid when moving tasks - even if not in the visible list. + echo isset($_SESSION['ERRORS']['invalidcategory']) ? ' class="errorinput"' : (in_array('category', $fields) ? '' : ' style="display:none"'); ?>> + <?php echo isset($_SESSION['ERRORS']['invalidcategory']) ? '<span class="errorinput" style="display:block;">'.eL('invalidcategory').'</span>' : ''; ?> + <label for="category"><?= eL('category') ?></label> + <?php echo tpl_select($catselect); ?> + </li> + <!-- Assigned To --> + <li<?php echo in_array('assignedto', $fields) ? '' : ' style="display:none"'; ?>> + <label><?= eL('assignedto') ?></label> + <?php if ($user->perms('edit_assignments')): ?> + <input type="hidden" name="old_assigned" value="<?php echo Filters::noXSS($old_assigned); ?>" /> + <?php $this->display('common.multiuserselect.tpl'); ?> + <?php else: ?> + <?php if (empty($assigned_users)): ?> + <?= eL('noone') ?> + <?php else: + foreach ($assigned_users as $userid): ?> + <?php echo tpl_userlink($userid); ?><br /> + <?php endforeach; + endif; + endif; ?> + </li> + <!-- OS --> + <li<?php + # show the os if invalid when moving tasks - even if not in the visible list. + echo isset($_SESSION['ERRORS']['invalidos']) ? ' class="errorinput"' : (in_array('os', $fields) ? '' : ' style="display:none"'); ?>> + <?php echo isset($_SESSION['ERRORS']['invalidos']) ? '<span class="errorinput" style="display:block;">'.eL('invalidos').'</span>' : ''; ?> + <label for="os"><?= eL('operatingsystem') ?></label> + <?php echo tpl_select($osselect); ?> + </li> + <!-- Severity --> + <li<?php echo in_array('severity', $fields) ? '' : ' style="display:none"'; ?>> + <label for="severity"<?php echo isset($_SESSION['ERRORS']['invalidseverity']) ? ' class="errorinput" title="'.eL('invalidseverity').'"':''; ?>><?php echo Filters::noXSS(L('severity')); ?></label> + <select id="severity" name="task_severity"> + <?php echo tpl_options($fs->severities, Req::val('task_severity', $task_details['task_severity'])); ?> + </select> + </li> + <!-- Priority --> + <li<?php echo in_array('priority', $fields) ? '' : ' style="display:none"'; ?>> + <label for="priority"<?php echo isset($_SESSION['ERRORS']['invalidpriority']) ? ' class="errorinput" title="'.eL('invalidpriority').'"':''; ?>><?php echo Filters::noXSS(L('priority')); ?></label> + <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', $task_details['task_priority'])); ?> + </select> + </li> + <!-- Reported In --> + <li<?php + # show the reportedversion if invalid when moving tasks - even if not in the visible list. + echo isset($_SESSION['ERRORS']['invalidreportedversion']) ? ' class="errorinput"' : (in_array('reportedin', $fields) ? '' : ' style="display:none"'); ?>> + <?php echo isset($_SESSION['ERRORS']['invalidreportedversion']) ? '<span class="errorinput" style="display:block;">'.eL('invalidreportedversion').'</span>' : ''; ?> + <label for="reportedver"><?= eL('reportedversion') ?></label> + <?php echo tpl_select($reportedversionselect); ?> + </li> + <!-- Due Version --> + <li<?php + # show the dueversion if invalid when moving tasks - even if not in the visible list. + echo isset($_SESSION['ERRORS']['invaliddueversion']) ? ' class="errorinput"' : (in_array('dueversion', $fields) ? '' : ' style="display:none"'); ?>> + <?php echo isset($_SESSION['ERRORS']['invaliddueversion']) ? '<span class="errorinput" style="display:block;">'.eL('invaliddueversion').'</span>' : ''; ?> + <label for="dueversion"><?= eL('dueinversion') ?></label> + <?php echo tpl_select($dueversionselect); ?> + </li> + <!-- Due Date --> + <li<?php echo (in_array('duedate', $fields) && $user->perms('modify_all_tasks')) ? '' : ' style="display:none"'; ?>> + <label for="due_date"><?= eL('duedate') ?></label> + <?php echo tpl_datepicker('due_date', '', Req::val('due_date', $task_details['due_date'])); ?> + </li> + <!-- Private --> + <?php if ($user->can_change_private($task_details)): ?> + <li<?php echo in_array('private', $fields) ? '' : ' style="display:none"'; ?>> + <label for="private"><?= eL('private') ?></label> + <?php echo tpl_checkbox('mark_private', Req::val('mark_private', $task_details['mark_private']), 'private'); ?> + </li> + <?php endif; ?> + + <?php if ($proj->prefs['use_effort_tracking'] && $user->perms('view_estimated_effort')): ?> + <li> + <label for="estimated_effort"><?= eL('estimatedeffort') ?></label> + <input id="estimated_effort" name="estimated_effort" class="text" type="text" size="5" maxlength="10" value="<?php echo Filters::noXSS(effort::secondsToEditString($task_details['estimated_effort'], $proj->prefs['hours_per_manday'], $proj->prefs['estimated_effort_format'])); ?>" /> + <?= eL('hours') ?> + </li> + <?php endif; ?> + + <!-- If no currently selected project is not there, push it on there so don't have to change things --> + <?php + $id = Req::val('project_id', $proj->id); + $selected = false; + foreach ($fs->projects as $value => $label) { + if ($label[0] == $id) { + $selected = true; + break; + } + } + + if (! $selected) { + $title = '---'; + $foo = array( $id, $title, 'project_id' => $id, 'project_title' => $title); + array_unshift( $fs->projects, $foo); + } + + ?> + + <!-- If there is only one choice of projects, then don't bother showing it --> + <li<?php + # show the targetproject selector if invalid when moving tasks + echo isset($_SESSION['ERRORS']['invalidtargetproject']) ? ' class="errorinput"' : ''; ?>> + <?php echo isset($_SESSION['ERRORS']['invalidtargetproject']) ? '<span class="errorinput" style="display:block;">'.eL('invalidtargetproject').'</span>' : ''; ?> + <label for="project_id"><?= eL('attachedtoproject') ?></label> + <select name="project_id" id="project_id"> + <?php echo tpl_options($fs->projects, Req::val('project_id', $proj->id)); ?> + </select> + </li> + </ul> + <div id="fineprint"> + <?= eL('openedby') ?> <?php echo tpl_userlink($task_details['opened_by']); ?> + - <span title="<?php echo formatDate($task_details['date_opened'], true); ?>"><?php echo formatDate($task_details['date_opened'], false); ?></span> + <?php if ($task_details['last_edited_by']): ?> + <br /> + <?= eL('editedby') ?> <?php echo tpl_userlink($task_details['last_edited_by']); ?> + - <span title="<?php echo Filters::noXSS(formatDate($task_details['last_edited_time'], true)); ?>"><?php echo Filters::noXSS(formatDate($task_details['last_edited_time'], false)); ?></span> + <?php endif; ?> + </div> +</div> +<div id="taskdetailsfull"> + <label for="itemsummary"<?php echo isset($_SESSION['ERRORS']['summaryrequired']) ? ' class="summary errorinput" title="'.eL('summaryrequired').'"':' class="summary"'; ?>>FS#<?php echo Filters::noXSS($task_details['task_id']); ?> <?php echo Filters::noXSS(L('summary')); ?>: + <input placeholder="<?= eL('summary') ?>" type="text" name="item_summary" id="itemsummary" maxlength="100" value="<?php echo Filters::noXSS(Req::val('item_summary', $task_details['item_summary'])); ?>" /> + </label> + <?php + foreach($tags as $tag): $tagnames[]= Filters::noXSS($tag['tag']); endforeach; + isset($tagnames) ? $tagstring=implode(';',$tagnames) : $tagstring=''; + ?> + <label style="display:block;" for="tags" title="<?= eL('tagsinfo') ?>"><?= eL('tags') ?>: + <input title="<?= eL('tagsinfo') ?>" placeholder="<?= eL('tags') ?>" type="text" name="tags" id="tags" maxlength="100" value="<?php echo Filters::noXSS(Req::val('tags', $tagstring)); ?>" /> + </label> + <?php if (defined('FLYSPRAY_HAS_PREVIEW')): ?> + <div class="hide preview" id="preview"></div> + <button tabindex="9" type="button" onclick="showPreview('details', '<?php echo Filters::noJsXSS($baseurl); ?>', 'preview')"><?php echo Filters::noXSS(L('preview')); ?></button> + <?php endif; ?> + <?php echo TextFormatter::textarea('detailed_desc', 15, 70, array('id' => 'details'), Req::val('detailed_desc', $task_details['detailed_desc'])); ?> + <br /> + <button type="reset"><?php echo Filters::noXSS(L('reset')); ?></button> + <br /> + + <div id="addlinkbox"> + <?php + $links = $proj->listTaskLinks($task_details['task_id']); + $this->display('common.editlinks.tpl', 'links', $links); ?> + <?php if ($user->perms('create_attachments')): ?> + <input id="link1" tabindex="8" class="text" type="text" maxlength="100" name="userlink[]" /> + <script> + // hide the fallback input field if javascript is enabled + document.getElementById("link1").style.display='none'; + </script> + <button id="addlinkbox_addalink" tabindex="10" type="button" onclick="addLinkField('addlinkbox')"><?php echo Filters::noXSS(L('addalink')); ?></button> + <button id="addlinkbox_addanotherlink" tabindex="10" style="display: none" type="button" onclick="addLinkField('addlinkbox')"><?php echo Filters::noXSS(L('addalink')); ?></button> + <br /> + <span style="display: none"><?php /* this span is shown/copied by javascript when adding links */ ?> + <input tabindex="8" class="text" type="text" maxlength="100" name="userlink[]" /> + <a href="javascript://" tabindex="9" class="button fa fa-remove fa-lg" title="<?= eL('remove') ?>" onclick="removeLinkField(this, 'addlinkbox');"></a><br /> + </span> + <?php endif; ?> + </div> + <div id="uploadfilebox"> + <?php + $attachments = $proj->listTaskAttachments($task_details['task_id']); + $this->display('common.editattachments.tpl', 'attachments', $attachments); + if ($user->perms('create_attachments')): ?> + <input id="file1" tabindex="5" class="file" type="file" size="55" name="usertaskfile[]" /> + <script> + // hide the fallback input field if javascript is enabled + document.getElementById("file1").style.display='none'; + </script> + <button id="uploadfilebox_attachafile" tabindex="7" type="button" onclick="addUploadFields()"> + <?= eL('uploadafile') ?> (<?= eL('max') ?> <?php echo Filters::noXSS($fs->max_file_size); ?> <?= eL('MiB') ?>) + </button> + <button id="uploadfilebox_attachanotherfile" tabindex="7" style="display: none" type="button" onclick="addUploadFields()"> + <?= eL('attachanotherfile') ?> (<?= eL('max') ?> <?php echo Filters::noXSS($fs->max_file_size); ?> <?= eL('MiB') ?>) + </button> + <br /> + <span style="display: none"><?php /* this span is shown/copied by javascript when adding files */ ?> + <input tabindex="5" class="file" type="file" size="55" name="usertaskfile[]" /> + <a href="javascript://" tabindex="6" class="button fa fa-remove fa-lg" title="<?= eL('remove') ?>" onclick="removeUploadField(this);"></a><br /> + </span> + <?php endif; ?> + </div> + <div class="buttons"> + <?php if ($user->perms('add_comments') && (!$task_details['is_closed'] || $proj->prefs['comment_closed'])): ?> + <input type="checkbox" id="s_addcomment" /> + <label for="s_addcomment" title="<?= eL('addcomment') ?>"> + <span class="fa-stack"> + <i class="fa fa-comment-o fa-stack-2x"></i> + <i class="fa fa-plus fa-stack-1x"></i> + </span> + </label> + <div id="edit_add_comment"> + <label for="comment_text"><?php echo Filters::noXSS(L('comment')); ?></label> + <textarea accesskey="r" tabindex="8" id="comment_text" name="comment_text" cols="50" rows="2"></textarea> + </div> + <br /> + <?php endif; ?> + <button type="submit" class="positive" accesskey="s" onclick="return checkok('<?php echo Filters::noJsXSS($baseurl); ?>js/callbacks/checksave.php?time=<?php echo Filters::noXSS(time()); ?>&task_id=<?php echo Filters::noXSS($task_details['task_id']); ?>', '<?php echo Filters::noJsXSS(L('alreadyedited')); ?>', 'taskeditform')"><?php echo Filters::noXSS(L('savedetails')); ?></button> + <a class="button" href="<?php echo Filters::noXSS(createUrl('details', $task_details['task_id'])); ?>"><?= eL('canceledit') ?></a> + </div> +</div> +<div class="clear"></div> +</div> +</form> |