Skip to content

Commit d2d6a59

Browse files
committed
work in progress
1 parent 4ad68eb commit d2d6a59

File tree

4 files changed

+142
-86
lines changed

4 files changed

+142
-86
lines changed

src/main/java/org/woehlke/simpleworklist/project/ProjectController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public final String projectTaskAddGet(
5454
task.setTaskEnergy(TaskEnergy.NONE);
5555
task.setTaskTime(TaskTime.NONE);
5656
task.setProject(thisProject);
57+
task.unsetFocus();
5758
Boolean mustChooseArea = false;
5859
if(userSession.getLastContextId() == 0L){
5960
mustChooseArea = true;

src/main/java/org/woehlke/simpleworklist/task/TaskStateTaskController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public final String addNewTaskToInboxGet(
5252
task.setTaskState(TaskState.INBOX);
5353
task.setTaskEnergy(TaskEnergy.NONE);
5454
task.setTaskTime(TaskTime.NONE);
55+
task.unsetFocus();
5556
Boolean mustChooseContext = false;
5657
if(userSession.getLastContextId() == 0L){
5758
mustChooseContext = true;
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
<!DOCTYPE html>
2+
<html xmlns="http://www.w3.org/1999/xhtml"
3+
xmlns:th="http://www.thymeleaf.org"
4+
xmlns:sec="http://www.thymeleaf.org/extras/spring-security"
5+
xmlns:sd="http://www.thymeleaf.org/spring-data">
6+
7+
<div th:fragment="tw-task-add-form(task,listTaskState,listTaskEnergy,listTaskTime,contexts)">
8+
<input type="hidden" th:field="*{id}" />
9+
<input type="hidden" th:field="*{uuid}" />
10+
<input type="hidden" th:field="*{focus}" />
11+
<input type="hidden" th:field="*{rowCreatedAt.time}" />
12+
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
13+
<div class="form-row">
14+
<div class="col-md-12 mb-12">
15+
<div class="form-group">
16+
<label th:for="${#ids.next('title')}" class="control-label">
17+
<span th:utext="#{task.show.title}">Title</span>
18+
</label>
19+
<input type="text" th:field="*{title}" class="form-control form-control-lg is-invalid" required/>
20+
<div th:each="err : ${#fields.errors('title')}">
21+
<div class="invalid-feedback" th:text="${err}" >err</div>
22+
</div>
23+
</div>
24+
</div>
25+
</div>
26+
<div class="form-row">
27+
<div class="col-md-6 mb-6">
28+
<div class="form-group">
29+
<label th:for="${#ids.next('listTaskState')}" class="control-label">
30+
<span th:utext="#{tasks.col.taskState}">taskState</span>
31+
</label>
32+
<select th:field="*{taskState}" class="form-control form-control-lg is-invalid" required>
33+
<option th:each="taskStateItem : ${listTaskState}"
34+
th:value="${taskStateItem.value}"
35+
th:text="${#messages.msgOrNull(taskStateItem.code)}">
36+
taskStateItem
37+
</option>
38+
</select>
39+
<div th:each="err : ${#fields.errors('taskState')}">
40+
<div class="invalid-feedback" th:text="${err}" >err</div>
41+
</div>
42+
</div>
43+
</div>
44+
<div class="col-md-6 mb-6">
45+
<div class="form-group">
46+
<label for="taskDueDate" class="control-label">
47+
<span th:utext="#{task.show.dueDate}">dueDate</span>
48+
</label>
49+
<input id="taskDueDate" type="text" th:field="*{dueDate}"
50+
class="form-control form-control-lg is-invalid"/>
51+
<div th:each="err : ${#fields.errors('dueDate')}">
52+
<div class="invalid-feedback" th:text="${err}" >err</div>
53+
</div>
54+
</div>
55+
</div>
56+
</div>
57+
<div class="form-row">
58+
<div class="col-md-12 mb-12">
59+
<div class="form-group">
60+
<label th:for="textEditor" class="control-label">
61+
<span th:utext="#{task.show.text}">Text</span>
62+
</label>
63+
<textarea id="textEditor" name="textEditor" rows="10" cols="50"
64+
class="form-control form-control-lg is-invalid"
65+
th:field="*{text}">Text
66+
</textarea>
67+
<div th:each="err : ${#fields.errors('text')}">
68+
<div class="invalid-feedback" th:text="${err}" >err</div>
69+
</div>
70+
</div>
71+
</div>
72+
</div>
73+
<div class="form-row">
74+
<div class="col-md-4 mb-4">
75+
<div class="form-group">
76+
<label th:for="${#ids.next('taskEnergy')}" class="control-label">
77+
<span th:utext="#{task.show.taskEnergy}">taskEnergy</span>
78+
</label>
79+
<select th:field="*{taskEnergy}" class="form-control form-control-lg is-invalid">
80+
<option th:each="taskEnergyItem : ${listTaskEnergy}"
81+
th:value="${taskEnergyItem.value}"
82+
th:text="${#messages.msgOrNull(taskEnergyItem.code)}">
83+
taskEnergyItem
84+
</option>
85+
</select>
86+
<div th:each="err : ${#fields.errors('taskEnergy')}">
87+
<div class="invalid-feedback" th:text="${err}" >err</div>
88+
</div>
89+
</div>
90+
</div>
91+
<div class="col-md-4 mb-4">
92+
<div class="form-group">
93+
<label th:for="${#ids.next('taskTime')}" class="control-label">
94+
<span th:utext="#{task.show.taskTime}">Time</span>
95+
</label>
96+
<select th:field="*{taskTime}" class="form-control form-control-lg is-invalid">
97+
<option th:each="taskTimeItem : ${listTaskTime}"
98+
th:value="${taskTimeItem.value}"
99+
th:text="${#messages.msgOrNull(taskTimeItem.code)}">
100+
taskTimeItem
101+
</option>
102+
</select>
103+
<div th:each="err : ${#fields.errors('taskEnergy')}">
104+
<div class="invalid-feedback" th:text="${err}" >err</div>
105+
</div>
106+
</div>&nbsp;
107+
</div>
108+
<div class="col-md-4 mb-4">
109+
<div class="form-group">
110+
<label th:for="${#ids.next('context.id')}" class="control-label">
111+
<span th:utext="#{task.show.context}">Context</span>
112+
</label>
113+
<select th:field="*{context.id}" class="form-control form-control-lg is-invalid">
114+
<option th:each="contextOption : ${contexts}"
115+
th:value="${contextOption.id}"
116+
th:text="${locale == 'de' ? contextOption.nameDe : contextOption.nameEn}">
117+
contextOption
118+
</option>
119+
</select>
120+
<div th:each="err : ${#fields.errors('context.id')}">
121+
<div class="invalid-feedback" th:text="${err}" >err</div>
122+
</div>
123+
</div>
124+
</div>
125+
</div>
126+
</div>
127+
128+
</html>

src/main/resources/templates/taskstate/task/add.html

Lines changed: 12 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<head th:replace="layout/page :: tw-page-head(headtitle=~{::title},links=~{},refreshMessages=false)">
88
<title th:text="'SimpleWorklist | ' + #{task.add.h1}">Title</title>
99
</head>
10-
<body th:replace="layout/page :: tw-page-body(twcontent=~{::mytwcontent},twtitle=~{::mytwtitle},,scripts=~{::script})">
10+
<body th:replace="layout/page :: tw-page-body(twcontent=~{::mytwcontent},twtitle=~{::mytwtitle},scripts=~{::script})">
1111

1212
<div th:fragment="mytwtitle">
1313
<!-- New Task Form -->
@@ -18,91 +18,17 @@ <h1>
1818
</div>
1919

2020
<div th:fragment="mytwcontent">
21-
<form id="formId" th:action="@{/taskstate/task/add}" th:object="${task}" method="post">
22-
<input type="hidden" th:field="*{taskState}" />
23-
<input type="hidden" th:field="*{context.id}" />
24-
<input type="hidden" th:field="*{rowCreatedAt.time}" />
25-
<div class="form-group form-control-lg">
26-
<label th:for="${#ids.next('title')}" class="control-label">
27-
<span th:utext="#{task.show.title}">Title</span>
28-
</label>
29-
<input type="text" th:field="*{title}" class="form-control" />
30-
<div>
31-
<div th:each="err : ${#fields.errors('title')}" th:text="${err}" class="alert alert-danger" >
32-
</div>
33-
</div>
34-
</div>
35-
<div class="form-group form-control-lg">
36-
<label for="taskDueDate" class="control-label">
37-
<span th:utext="#{task.show.dueDate}">Due Date</span>
38-
</label>
39-
<input id="taskDueDate" type="text" th:field="*{dueDate}" class="form-control" />
40-
<div>
41-
<div th:each="err : ${#fields.errors('dueDate')}" th:text="${err}" class="alert alert-danger">
42-
</div>
43-
</div>
44-
</div>
45-
<div class="form-group form-control-lg">
46-
<label th:for="textEditor" class="control-label">
47-
<span th:utext="#{task.show.text}">Text</span>
48-
</label>
49-
<textarea id="textEditor" name="textEditor" rows="10" cols="50" th:field="*{text}" class="form-control" ></textarea>
50-
<div>
51-
<div th:each="err : ${#fields.errors('text')}" th:text="${err}" class="alert alert-danger">
52-
</div>
53-
</div>
54-
</div>
55-
<div>
56-
<span class="form-group form-control-lg">
57-
<label th:for="${#ids.next('taskEnergy')}" class="control-label">
58-
<span th:utext="#{task.show.taskEnergy}">Energy</span>
59-
</label>
60-
<select th:field="*{taskEnergy}">
61-
<option th:each="taskEnergyItem : ${listTaskEnergy}"
62-
th:value="${taskEnergyItem.value}"
63-
th:text="${#messages.msgOrNull(taskEnergyItem.code)}">Wireframe</option>
64-
</select>
65-
<div>
66-
<div th:each="err : ${#fields.errors('taskEnergy')}" th:text="${err}" class="alert alert-danger">
67-
</div>
68-
</div>
69-
</span>&nbsp;
70-
<span class="form-group form-control-lg">
71-
<label th:for="${#ids.next('taskTime')}" class="control-label">
72-
<span th:utext="#{task.show.taskTime}">Time</span>
73-
</label>
74-
<select th:field="*{taskTime}">
75-
<option th:each="taskTimeItem : ${listTaskTime}"
76-
th:value="${taskTimeItem.value}"
77-
th:text="${#messages.msgOrNull(taskTimeItem.code)}">Wireframe</option>
78-
</select>
79-
<div>
80-
<div th:each="err : ${#fields.errors('taskTime')}" th:text="${err}" class="alert alert-danger">
81-
</div>
82-
</div>
83-
</span>&nbsp;
84-
<span class="form-group form-control-lg">
85-
<label th:for="${#ids.next('context.id')}" class="control-label">
86-
<span th:utext="#{task.show.context}">Area</span>
87-
</label>
88-
<select th:field="*{context.id}">
89-
<option th:each="areaOption : ${contexts}"
90-
th:value="${areaOption.id}"
91-
th:text="${locale == 'de' ? areaOption.nameDe : areaOption.nameEn}">Wireframe</option>
92-
</select>
93-
<div>
94-
<div th:each="err : ${#fields.errors('context.id')}" th:text="${err}" class="alert alert-danger">
95-
</div>
96-
</div>
97-
</span>
98-
</div>
99-
<input type="hidden"
100-
name="${_csrf.parameterName}"
101-
value="${_csrf.token}"/>
102-
<button id="createNewTask" type="submit" class="btn btn-primary">
103-
<i class="fas fa-save"></i>
104-
<span th:utext="#{task.add.button}">Add Task</span>
105-
</button>
21+
<form id="formId" class="was-validated"
22+
th:action="@{/taskstate/task/add}" th:object="${task}" method="post">
23+
<div th:replace="layout/taskedit :: tw-task-edit-form(task=${task},listTaskState=${listTaskState},listTaskEnergy=${listTaskEnergy},listTaskTime=${listTaskTime},contexts=${contexts})"></div>
24+
<div class="form-row">
25+
<div class="col-md-12 mb-12">
26+
<button id="createNewTask" type="submit" class="btn btn-block btn-primary">
27+
<i class="fas fa-save"></i>
28+
<span th:utext="#{task.add.button}">Add Task</span>
29+
</button>
30+
</div>
31+
</div>
10632
</form>
10733
</div>
10834

0 commit comments

Comments
 (0)