
Как создать новую задачу
Для того, чтобы дать пользователям возможность создавать задачи из вашего интерфейса, вставьте на странице форму:
<form method="post" enctype="multipart/form-data" action="${contextPath}/template/${template}/action.ftl/task/${task.number}"> <input type="hidden" name="forms_task_edit_id" value="${task.id}"> Заголовок задачи: <input type="text" name="forms_task_edit_name" value="" size="80" maxlength="200"> Описание: <textarea name="forms_task_edit_description" cols=70 rows=10></textarea> Вложенные файлы<br>: <input type="file" name="forms_task_edit_attachment" value="" size="70" maxlength="200"><br> <input type="file" name="forms_task_edit_attachment" value="" size="70" maxlength="200"><br> <input type="file" name="forms_task_edit_attachment" value="" size="70" maxlength="200"><br> Мое имя:<br> <@std.saveCookies field="temp_user_name"> <input type="text" name="temp_user_name" value="${request.cookies.temp_user_name?default("")}"> </@std.saveCookies> Мой email:<br> <@std.saveCookies field="temp_user_email"> <input type="text" name="temp_user_email" value="${request.cookies.temp_user_email?default("")}"> </@std.saveCookies> <input type="hidden" name="method" value="task_edit"> <input type="submit"> </form>
На странице action.ftl (или на другой, на которую будет отправляться форма) должен быть такой код:
<@std.script> if (request.get("value").get("method")!=null && request.get("value").get("method").equals("task_edit")) { if (!Util.validateCreateCategory(task, "bug")) { return ""; } String prefix=""; if (request.get("value").get("temp_user_name")!=null) { prefix+="From: "+request.get("value").get("temp_user_name")+"\n"; } if (request.get("value").get("temp_user_email")!=null){ prefix+="Email: "+request.get("value").get("temp_user_email")+"\n"; } String taskName_1 = request.get("value").get("forms_task_edit_name"); String taskDescription_1 = request.get("value").get("forms_task_edit_description"); String taskId = request.get("value").get("forms_task_edit_id"); String taskCategory_1 = CSVImport.findCategoryIdByName("bug"); SecuredTaskTriggerBean newTask = new SecuredTaskTriggerBean(taskId, prefix+taskDescription_1,taskName_1, null, null, null, null, null, null, null, null, sc.getUserId(), task.getHandlerId(), task.getHandlerUserId(), task.getHandlerGroupId(), taskId, taskCategory_1, null, null, null, null, null, sc).create(); Uploader.upload(newTask); return newTask.getNumber(); } return ""; </@std.script>
Как видно из кода выше, задача создается через Beanshell-скрипт, в котором создается обычный SecuredTaskTriggerBean. Вы можете использовать в шаблонах свои beanshell-скрипты.