Skip to content

Commit 6288f29

Browse files
committed
List of ALL Tasks
1 parent 3468cc0 commit 6288f29

File tree

10 files changed

+110
-2
lines changed

10 files changed

+110
-2
lines changed

src/main/java/org/woehlke/java/simpleworklist/domain/TaskStateTabController.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,17 @@ public final String focus(
158158
);
159159
}
160160

161+
162+
@RequestMapping(path = "/all", method = RequestMethod.GET)
163+
public final String all(
164+
@PageableDefault(sort = "orderIdTaskState", direction = Sort.Direction.DESC) Pageable pageable,
165+
@NotNull @ModelAttribute("userSession") UserSessionBean userSession,
166+
Locale locale,
167+
Model model
168+
) {
169+
Context context = super.getContext(userSession);
170+
return taskStateTabControllerService.getTaskStatePageAll(
171+
context, pageable, userSession, locale, model
172+
);
173+
}
161174
}

src/main/java/org/woehlke/java/simpleworklist/domain/db/data/task/TaskRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
@Repository
1616
public interface TaskRepository extends JpaRepository<Task, Long> {
1717

18+
Page<Task> findByContext(Context context, Pageable request);
1819
List<Task> findByContext(Context context);
1920

2021
@Query(name="findByTaskStateInbox")

src/main/java/org/woehlke/java/simpleworklist/domain/db/data/task/TaskService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public interface TaskService {
3636
Page<Task> findByTaskStateTrash(Context context, Pageable request);
3737
Page<Task> findByTaskStateDeleted(Context context, Pageable request);
3838
Page<Task> findByTaskStateProjects(Context context, Pageable request);
39+
Page<Task> findByTaskStateAll(Context context, Pageable pageRequest);
3940

4041
Page<Task> findByProjectId(Project thisProject, Pageable request);
4142
Page<Task> findByProjectRoot(Context context, Pageable request);

src/main/java/org/woehlke/java/simpleworklist/domain/db/data/task/TaskServiceImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,11 @@ public Page<Task> findByTaskStateProjects(Context context, Pageable request) {
202202
return taskRepository.findByTaskStateProjects(context, request);
203203
}
204204

205+
@Override
206+
public Page<Task> findByTaskStateAll(Context context, Pageable pageRequest) {
207+
return taskRepository.findByContext(context, pageRequest);
208+
}
209+
205210
@Override
206211
public Task findTopByTaskStateAndContextOrderByOrderIdTaskStateDesc(TaskState taskState, Context context) {
207212
return taskRepository.findTopByTaskStateAndContextOrderByOrderIdTaskStateDesc(taskState,context);

src/main/java/org/woehlke/java/simpleworklist/domain/db/data/task/TaskState.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public enum TaskState implements Serializable {
2020
COMPLETED("fas fa-check-square"),
2121
TRASH("fas fa-trash-alt"),
2222
DELETED("fas fa-trash-alt"),
23+
ALL("fas fa-diagram-project"), //TODO Icon for ALL
2324
PROJECTS("fas fa-diagram-project");
2425

2526
private String icon;

src/main/java/org/woehlke/java/simpleworklist/domain/meso/breadcrumb/BreadcrumbServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public Breadcrumb getBreadcrumbForTaskstate(
7979
}
8080
Breadcrumb breadcrumb = new Breadcrumb(locale, context);
8181
String code = taskstate.getMsgCode();
82-
String name = messageSource.getMessage(code,null,locale);
82+
String name = messageSource.getMessage(code,null, locale);
8383
breadcrumb.addTaskstate(name, taskstate.getUrlPath());
8484
return breadcrumb;
8585
}

src/main/java/org/woehlke/java/simpleworklist/domain/meso/taskstate/TaskStateTabControllerService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,11 @@ String getTaskStatePageProjects(
9999
Model model
100100
);
101101

102+
String getTaskStatePageAll(
103+
Context context,
104+
Pageable pageable,
105+
UserSessionBean userSession,
106+
Locale locale,
107+
Model model
108+
);
102109
}

src/main/java/org/woehlke/java/simpleworklist/domain/meso/taskstate/TaskStateTabControllerServiceImpl.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.springframework.stereotype.Service;
88
//import org.springframework.transaction.annotation.Propagation;
99
//import org.springframework.transaction.annotation.Transactional;
10-
import org.springframework.transaction.annotation.Propagation;
1110
import org.springframework.ui.Model;
1211
import org.woehlke.java.simpleworklist.domain.db.data.Context;
1312
import org.woehlke.java.simpleworklist.domain.db.data.Task;
@@ -258,4 +257,25 @@ public String getTaskStatePageProjects(
258257
model.addAttribute("dataPage", true);
259258
return taskState.getTemplate();
260259
}
260+
261+
@Override
262+
public String getTaskStatePageAll(
263+
@NotNull Context context,
264+
@NotNull Pageable pageRequest,
265+
@NotNull UserSessionBean userSession,
266+
@NotNull Locale locale,
267+
@NotNull Model model
268+
){
269+
log.info("getTaskStatePageAll");
270+
TaskState taskState = TaskState.ALL;
271+
userSession.setLastTaskState(taskState);
272+
Page<Task> taskPage = taskService.findByTaskStateAll(context, pageRequest);
273+
Breadcrumb breadcrumb = breadcrumbService.getBreadcrumbForTaskstate(taskState,locale,userSession);
274+
model.addAttribute("breadcrumb", breadcrumb);
275+
model.addAttribute("taskPage", taskPage);
276+
model.addAttribute("taskstateType", taskState.getSlug() );
277+
model.addAttribute("userSession", userSession);
278+
model.addAttribute("dataPage", true);
279+
return taskState.getTemplate();
280+
}
261281
}

src/main/resources/templates/layout/taskstates.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,20 @@
133133
<span th:text="#{layout.page.trash}" class="link-dark">Trash</span>
134134
</a>
135135
</li>
136+
<li class="nav-item" ondrop="drop2trash(event)" ondragover="allowDropOfTask(event)">
137+
<a id="taskstate_all" class="nav-link active link-dark"
138+
th:href="@{/taskstate/all}"
139+
th:if="${taskstateType == 'all'}">
140+
<i class="fa-solid fa-database"></i>
141+
<span th:text="#{layout.page.all}" class="link-dark">All</span>
142+
</a>
143+
<a id="taskstate_all" class="nav-link link-dark"
144+
th:href="@{/taskstate/all}"
145+
th:if="${taskstateType != 'all'}">
146+
<i class="fa-solid fa-database"></i>
147+
<span th:text="#{layout.page.all}" class="link-dark">All</span>
148+
</a>
149+
</li>
136150
<li class="nav-item" ondrop="drop2trash(event)" ondragover="allowDropOfTask(event)">
137151
<a id="taskstate_projects" class="nav-link active link-dark"
138152
th:href="@{/project/root}"
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<!DOCTYPE html>
2+
<html th:lang="${#locale.language}"
3+
xmlns="http://www.w3.org/1999/xhtml"
4+
xmlns:th="http://www.thymeleaf.org"
5+
xmlns:sec="http://www.thymeleaf.org/extras/spring-security"
6+
xmlns:sd="http://www.thymeleaf.org/spring-data">
7+
<head th:replace="layout/page :: tw-page-head(headtitle=~{::title},links=~{},refreshMessages=false)">
8+
<title th:text="'SimpleWorklist | ' + #{tasks.inbox.h1}">Inbox</title>
9+
</head>
10+
<body th:replace="layout/page :: tw-page-body(twcontent=~{::mytwcontent},twtitle=~{::mytwtitle},scripts=~{})">
11+
12+
<div th:fragment="mytwtitle">
13+
<div id="tw-content-title">
14+
<div class="row">
15+
<h1 class="col-md-12 mb-12">
16+
<i class="fas fa-inbox"></i>
17+
<span th:utext="#{tasks.all.h1}">All</span>
18+
</h1>
19+
</div>
20+
<div class="row">
21+
<div id="tw-content-title-actionbuttons" class="col-md-3 mb-3">
22+
<a class="btn btn-block btn-primary" role="button" th:href="@{/taskstate/task/add}">
23+
<i class="fas fa-plus-square"></i>
24+
<span th:utext="#{tasks.inbox.addTask}">Add Task</span>
25+
</a>
26+
</div>
27+
</div>
28+
</div>
29+
</div>
30+
31+
<div th:fragment="mytwcontent">
32+
<div th:replace="layout/tasks :: tw-tasks-message(message=${message})" th:if="${message} != null"
33+
id="mytwcontent-message">
34+
</div>
35+
<div th:if="${taskPage.getTotalElements() gt 0}" id="mytwcontent-taskpage">
36+
<div
37+
th:replace="layout/tasks :: tw-tasks-table(taskPage=${taskPage}, myTaskState='INBOX', myUrlPath=@{/taskstate})">
38+
</div>
39+
</div>
40+
<div th:if="${taskPage.getTotalElements() eq 0}" id="mytwcontent-no-taskpage">
41+
<div th:text="#{tasks.inbox.noTasks}">You have no Tasks in Your Inbox</div>
42+
</div>
43+
</div>
44+
45+
</body>
46+
</html>

0 commit comments

Comments
 (0)