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