keep current date
This commit is contained in:
@ -26,6 +26,7 @@ public class DoneBean implements Serializable, Comparable<DoneBean> {
|
||||
private static final DateTimeFormatter hhmm = DateTimeFormatter.ofPattern("HH:mm");
|
||||
|
||||
private Integer pk;
|
||||
private LocalDate day;
|
||||
private LocalDateTime timeFrom;
|
||||
private LocalDateTime timeUntil;
|
||||
private TProjectRecord project;
|
||||
@ -38,11 +39,13 @@ public class DoneBean implements Serializable, Comparable<DoneBean> {
|
||||
private Integer fkBilling;
|
||||
|
||||
public DoneBean() {
|
||||
this.day = null;
|
||||
}
|
||||
|
||||
public DoneBean(TDoneRecord r, Map<Integer, TProjectRecord> projectMap, Map<Integer, TModuleRecord> moduleMap,
|
||||
Map<Integer, TJobRecord> jobMap, Map<Integer, TBillingRecord> billingMap) {
|
||||
this.pk = r.getPk();
|
||||
this.day = r.getTimeFrom() != null ? r.getTimeFrom().toLocalDate() : (r.getTimeUntil() == null ? r.getTimeUntil().toLocalDate() : LocalDate.now());
|
||||
this.timeFrom = r.getTimeFrom();
|
||||
this.timeUntil = r.getTimeUntil();
|
||||
this.project = projectMap.get(r.getFkProject());
|
||||
@ -69,6 +72,10 @@ public class DoneBean implements Serializable, Comparable<DoneBean> {
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public void setLocalDate(LocalDate date) {
|
||||
this.day = date;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the day of timeFrom and timeUntil, keeping the times
|
||||
*
|
||||
@ -142,7 +149,9 @@ public class DoneBean implements Serializable, Comparable<DoneBean> {
|
||||
* @return a local date
|
||||
*/
|
||||
public LocalDate getLocalDate() {
|
||||
if (timeFrom != null) {
|
||||
if (day != null) {
|
||||
return day;
|
||||
} else if (timeFrom != null) {
|
||||
return timeFrom.toLocalDate();
|
||||
} else if (timeUntil != null) {
|
||||
return timeUntil.toLocalDate();
|
||||
@ -174,6 +183,12 @@ public class DoneBean implements Serializable, Comparable<DoneBean> {
|
||||
if (hm.length > 1) {
|
||||
minutes = Integer.valueOf(hm[1]);
|
||||
}
|
||||
LocalDate theDay = getLocalDate();
|
||||
if (theDay != null) {
|
||||
ldt = ldt.withYear(theDay.getYear());
|
||||
ldt = ldt.withMonth(theDay.getMonthValue());
|
||||
ldt = ldt.withDayOfMonth(theDay.getDayOfMonth());
|
||||
}
|
||||
ldt = ldt.withHour(hours);
|
||||
ldt = ldt.withMinute(minutes);
|
||||
ldt = ldt.withSecond(0);
|
||||
|
@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@ -63,19 +64,15 @@ public class DoneController {
|
||||
}
|
||||
|
||||
@RolesAllowed("timetrack_user")
|
||||
@RequestMapping(value = "/done/add", method = RequestMethod.GET)
|
||||
public String toAdd(Model model) {
|
||||
return toItem(null, model);
|
||||
@RequestMapping(value = "/done/add/{day}", method = RequestMethod.GET)
|
||||
public String toAdd(@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate day, Model model) {
|
||||
DoneBean bean = new DoneBean();
|
||||
bean.setLocalDate(day);
|
||||
return toItem(bean, model);
|
||||
}
|
||||
|
||||
@RolesAllowed("timetrack_user")
|
||||
@GetMapping("/done/edit/{id}")
|
||||
public String toItem(@PathVariable Integer id, Model model) {
|
||||
DoneBean bean = doneService.getBean(id);
|
||||
private String toItem(DoneBean bean, Model model) {
|
||||
DoneModel doneModel = new DoneModel();
|
||||
if (bean == null) {
|
||||
bean = new DoneBean(); // the add case
|
||||
}
|
||||
doneModel.setDay(bean.getLocalDate());
|
||||
model.addAttribute("doneBean", bean);
|
||||
model.addAttribute("doneModel", doneModel);
|
||||
@ -86,6 +83,16 @@ public class DoneController {
|
||||
return "done/item";
|
||||
}
|
||||
|
||||
@RolesAllowed("timetrack_user")
|
||||
@GetMapping("/done/edit/{id}")
|
||||
public String toItem(@PathVariable Integer id, Model model) {
|
||||
DoneBean bean = doneService.getBean(id);
|
||||
if (bean == null) {
|
||||
bean = new DoneBean(); // the add case; typically, only add from today
|
||||
}
|
||||
return toItem(bean, model);
|
||||
}
|
||||
|
||||
@RolesAllowed("timetrack_user")
|
||||
@RequestMapping(value = "/done/upsert", method = RequestMethod.POST)
|
||||
public String doUpsert(Model model, @ModelAttribute DoneBean bean) {
|
||||
|
@ -250,6 +250,7 @@ public class DoneGateway {
|
||||
bean.setPk(r.get(T_DONE.PK));
|
||||
bean.setTimeFrom(r.get(T_DONE.TIME_FROM));
|
||||
bean.setTimeUntil(r.get(T_DONE.TIME_UNTIL));
|
||||
bean.setLocalDate(bean.getLocalDate());
|
||||
bean.setProject(projectMap.get(r.get(T_DONE.FK_PROJECT)));
|
||||
bean.setModule(moduleMap.get(r.get(T_DONE.FK_MODULE)));
|
||||
bean.setActivity(jobMap.get(r.get(T_DONE.FK_JOB)));
|
||||
@ -311,6 +312,7 @@ public class DoneGateway {
|
||||
bean.setPk(r.get(T_DONE.PK));
|
||||
bean.setTimeFrom(r.get(T_DONE.TIME_FROM));
|
||||
bean.setTimeUntil(r.get(T_DONE.TIME_UNTIL));
|
||||
bean.setLocalDate(bean.getLocalDate());
|
||||
bean.setProject(projectMap.get(r.get(T_DONE.FK_PROJECT)));
|
||||
bean.setModule(moduleMap.get(r.get(T_DONE.FK_MODULE)));
|
||||
bean.setActivity(jobMap.get(r.get(T_DONE.FK_JOB)));
|
||||
|
@ -63,6 +63,12 @@ body {
|
||||
background: rgba(255,0,0,0.2);
|
||||
}
|
||||
|
||||
.redfont {
|
||||
color: #a00;
|
||||
padding-top: 6px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.body {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
@ -19,7 +19,7 @@
|
||||
<div class="row mb-3">
|
||||
<label for="outputDay" class="col-sm-2 col-form-label">am</label>
|
||||
<div class="col-sm-10">
|
||||
<p th:text="${doneModel.dayString}" />
|
||||
<input id="inputLocalDate" type="text" th:field="*{localDate}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
|
@ -19,7 +19,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<ul layout:fragment="menu">
|
||||
<li class="nav-item" sec:authorize="hasRole('timetrack_user')"><a class="nav-link btn btn-success btn-white-text" th:href="@{/done/add}">Neuer
|
||||
<li class="nav-item" sec:authorize="hasRole('timetrack_user')"><a class="nav-link btn btn-success btn-white-text" th:href="@{/done/add/{day}(day=${doneModel.day})}">Neuer
|
||||
Eintrag</a></li>
|
||||
</ul>
|
||||
<main layout:fragment="content">
|
||||
|
Reference in New Issue
Block a user