Как создать новую задачу
Для того, чтобы дать пользователям возможность создавать задачи из вашего интерфейса, вставьте на странице форму:
<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-скрипты.