Skip to content

Commit

Permalink
updated revision (added functional crud)
Browse files Browse the repository at this point in the history
  • Loading branch information
eduard-cihunka committed Jan 7, 2017
1 parent 1de9b9a commit d0738d6
Show file tree
Hide file tree
Showing 13 changed files with 270 additions and 68 deletions.
122 changes: 122 additions & 0 deletions api/src/main/java/dto/RevisionCreateDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dto;

import java.util.Date;
import java.util.Objects;

/**
*
* @author eduard
*/
public class RevisionCreateDTO {
private Long id;

private String dateOfRevision;

private String userId;

private String machineId;

private String info;

private boolean isFunctionable;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getDateOfRevision() {
return dateOfRevision;
}

public void setDateOfRevision(String dateOfRevision) {
this.dateOfRevision = dateOfRevision;
}

public String getUser() {
return userId;
}

public void setUser(String user) {
this.userId = user;
}

public String getMachine() {
return machineId;
}

public void setMachine(String machine) {
this.machineId = machine;
}

public String getInfo() {
return info;
}

public void setInfo(String info) {
this.info = info;
}

public boolean isFunctionable() {
return isFunctionable;
}

public void setFunctionable(boolean functionable) {
isFunctionable = functionable;
}

@Override
public String toString() {
return "RevisionDTO{" +
"id=" + id +
", dateOfRevision=" + dateOfRevision +
", user=" + userId +
", machine=" + machineId +
", info='" + info + '\'' +
", isFunctionable=" + isFunctionable +
'}';
}

@Override
public int hashCode() {
final int prime = 13;
int result = 1;
result = prime * result + ((dateOfRevision == null) ? 0 : dateOfRevision.hashCode());
result = prime * result + ((userId == null) ? 0 : userId.hashCode());
result = prime * result + ((machineId == null) ? 0 : machineId.hashCode());
result = prime * result + ((info == null) ? 0 : info.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final RevisionCreateDTO other = (RevisionCreateDTO) obj;
if (!Objects.equals(this.dateOfRevision, other.dateOfRevision)) {
return false;
}
if (!Objects.equals(this.userId, other.userId)) {
return false;
}
if (!Objects.equals(this.machineId, other.machineId)) {
return false;
}
if (!Objects.equals(this.info, other.info)) {
return false;
}
return true;
}
}
6 changes: 1 addition & 5 deletions api/src/main/java/dto/RevisionDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,12 @@
* Created by Marek Bohm on 23.11.2016.
*/
public class RevisionDTO {

private Long id;

private Date dateOfRevision;

private UserDTO user;

private MachineDTO machine;

private String info;

private boolean isFunctionable;

public Long getId() {
Expand Down
Binary file modified api/target/classes/dto/RevisionDTO.class
Binary file not shown.
Binary file modified api/target/classes/facade/RevisionFacade.class
Binary file not shown.
2 changes: 2 additions & 0 deletions data/src/main/java/data/SampleDataLoadingFacadeImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ public void loadData() throws IOException {


User u = user("123456", "Luna", "Lovegood", "[email protected]", "800123456", new Date(), true);
User u1 = user("123456", "Sme", "taky", "[email protected]", "800223456", new Date(), true);


Revision r = revision(new Date(), m, u);
Revision r1 = revision(new Date(), m , u);
Expand Down
2 changes: 1 addition & 1 deletion service/src/main/java/service/RevisionServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public Revision create(Revision revision) {
@Override
public Revision update(Revision revision) {
Validate.notNull(revision.getId());
revisionDao.create(revision);
revisionDao.update(revision);
return revision;

}
Expand Down
Binary file modified service/target/classes/service/RentalServiceImpl.class
Binary file not shown.
Binary file modified service/target/classes/service/RevisionServiceImpl.class
Binary file not shown.
Binary file modified service/target/classes/service/UserServiceImpl.class
Binary file not shown.
Binary file modified service/target/classes/service/facade/RevisionFacadeImpl.class
Binary file not shown.
100 changes: 78 additions & 22 deletions web/src/main/java/controllers/RevisionController.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@
package controllers;

import dto.MachineDTO;
import dto.RevisionCreateDTO;
import dto.RevisionDTO;
import dto.UserDTO;
import facade.MachineFacade;
import facade.RevisionFacade;
import facade.UserFacade;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
Expand Down Expand Up @@ -60,35 +62,91 @@ public String findAll(Model model) {
return "revision/list";
}

@GetMapping("/new")
@RequestMapping(value = "/new", method = RequestMethod.GET)
public String newRevision(Model model) {
model.addAttribute("revision", new RevisionDTO());
return "revision/edit";
model.addAttribute("revision", new RevisionCreateDTO());
return "revision/new";
}

@RequestMapping(value = "/new", method = RequestMethod.POST)
public String submitNew(@ModelAttribute("revision") RevisionCreateDTO revisionDTO,
Model model, RedirectAttributes redirectAttributes,
UriComponentsBuilder uriBuilder) throws ParseException {
RevisionDTO revision = new RevisionDTO();

SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd");

if (revisionDTO.getDateOfRevision() != null && !revisionDTO.getDateOfRevision().trim().isEmpty()) {
revision.setDateOfRevision(parser.parse(revisionDTO.getDateOfRevision().trim()));
}

if (revisionDTO.getInfo() != null && !revisionDTO.getInfo().trim().isEmpty()) {
revision.setInfo(revisionDTO.getInfo());
}

if (revisionDTO.getMachine() != null && !revisionDTO.getMachine().trim().isEmpty()) {
revision.setMachine(machineFacade.findById(new Long(revisionDTO.getMachine().trim())));
}

if (revisionDTO.getUser() != null && !revisionDTO.getUser().trim().isEmpty()) {
revision.setUser(userFacade.findByEmail(revisionDTO.getUser().trim()));
}

Long newId = revisionFacade.createRevision(revision);
model.addAttribute("revision", revision);

redirectAttributes.addFlashAttribute("alert_success", "Revision details saved successfully.");
return "redirect:" + uriBuilder.path("/revision/edit/{id}").buildAndExpand(newId).encode().toUriString();

}



@RequestMapping(value = "/edit/{id}", method = RequestMethod.GET)
public String edit(Model model, @PathVariable Long id) throws ParseException {
RevisionDTO revision = revisionFacade.findById(id);
RevisionCreateDTO revisionDTO = new RevisionCreateDTO();

SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd");

revisionDTO.setDateOfRevision(parser.format(revision.getDateOfRevision()));
revisionDTO.setInfo(revision.getInfo());

model.addAttribute("revision", revisionDTO);

@GetMapping("/edit/{id}")
public String editRevision(@PathVariable Long id, Model model) {
model.addAttribute("revision", revisionFacade.findById(id));
return "revision/edit";
}

@PostMapping("/save")
public String saveRevision(@Valid @ModelAttribute("revision") RevisionDTO dto,
BindingResult bindingResult,
Model model,
RedirectAttributes redirectAttributes,
UriComponentsBuilder uriBuilder) {
logger.info("Saving revisionDTO: {}", dto);
if (bindingResult.hasErrors()) {
return "revision/edit";
@RequestMapping(value = "/edit/{id}", method = RequestMethod.POST)
public String submitEdit(@PathVariable long id,
@ModelAttribute("rental") RevisionCreateDTO revisionDTO,
Model model, RedirectAttributes redirectAttributes,
UriComponentsBuilder uriBuilder) throws ParseException {
RevisionDTO revision = revisionFacade.findById(id);

SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd");

if (revisionDTO.getDateOfRevision() != null && !revisionDTO.getDateOfRevision().trim().isEmpty()) {
revision.setDateOfRevision(parser.parse(revisionDTO.getDateOfRevision().trim()));
}
if (dto.getId() != null) {
revisionFacade.updateRevision(dto);

if (revisionDTO.getInfo() != null) {
revision.setInfo(revisionDTO.getInfo());
}
else {
revisionFacade.updateRevision(dto);

if (revisionDTO.getMachine() != null && !revisionDTO.getMachine().trim().isEmpty()) {
revision.setMachine(machineFacade.findById(new Long(revisionDTO.getMachine().trim())));
}
return "redirect:" + uriBuilder.path("/revision/").toUriString();

if (revisionDTO.getUser() != null && !revisionDTO.getUser().trim().isEmpty()) {
revision.setUser(userFacade.findByEmail(revisionDTO.getUser().trim()));
}

revisionFacade.updateRevision(revision);
model.addAttribute("revision", revision);

redirectAttributes.addFlashAttribute("alert_success", "Revision details saved successfully.");
return "redirect:" + uriBuilder.path("/revision/edit/{id}").buildAndExpand(id).encode().toUriString();
}

@RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
Expand All @@ -109,13 +167,11 @@ protected void dataBinder(WebDataBinder binder) {

@ModelAttribute("machines")
public List<MachineDTO> machines() {
logger.debug("machines()");
return machineFacade.findAllMachines();
}

@ModelAttribute("users")
public Collection<UserDTO> users() {
logger.debug("users()");
return userFacade.getAllUsers();
}
}
63 changes: 23 additions & 40 deletions web/src/main/webapp/WEB-INF/jsp/revision/edit.jsp
Original file line number Diff line number Diff line change
@@ -1,61 +1,44 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="form" uri="https://www.springframework.org/tags/form" %>

<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="my" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="https://java.sun.com/jsp/jstl/fmt" %>


<my:template title="${revision.id == null ? 'New revision' : 'Edit revision'}">
<%@ taglib prefix="form" uri="https://www.springframework.org/tags/form" %>
<my:template title="Edit rental">
<jsp:attribute name="body">

<div class="container">
<div class="col-md-6">
<form:form id="${revision.id}" method="post" modelAttribute="revision"
action="${pageContext.request.contextPath}/revision/save">
<form:hidden path="id" style="display:none"/>

<div class="form-group">
<label for="name">Info about revision</label>
<form:input path="info" cssClass="form-control" id="name" placeholder="Name"/>
<p><form:errors path="info" cssClass="error" /></p>
</div>

<div class="form-group">
<label for="name">Date of revision</label>
<form:input type="date" class="date" path="dateOfRevision" cssClass="form-control" id="name" placeholder="Name"/>
<p><form:errors path="dateOfRevision" cssClass="error" /></p>
</div>

<div class="form-group">
<form:label path="machine" cssClass="col-sm-2 control-label">Machine</form:label>
<div class="col-sm-10">
<div class="col-md-4">
<form:form method="post" modelAttribute="revision" action="${editAction}">
<div class="form-group">
<label for="dateOfRevision">Date of Revision</label>
<form:input path="dateOfRevision" cssClass="form-control" id="dateOfRevision" placeholder="dateOfRevision" value="${revision.dateOfRevision}"/>
</div>
<div class="form-group">
<label for="info">Info</label>
<form:input path="info" cssClass="form-control" id="info" placeholder="info" value="${revision.info}"/>
</div>
<div class="form-group">
<label for="price">Machine</label>
<form:select path="machine" cssClass="form-control">
<c:forEach items="${machines}" var="m">
<form:option value="${m.id}">${m.name}</form:option>
</c:forEach>
</form:select>
<p class="help-block"><form:errors path="machine" cssClass="error"/></p>
</div>
</div>

<div class="form-group">
<form:label path="user" cssClass="col-sm-2 control-label">User</form:label>
<div class="col-sm-10">
<label for="usr">User</label>
<form:select path="user" cssClass="form-control">
<c:forEach items="${users}" var="u">
<form:option value="${u.id}">${u.surname}</form:option>
<form:option value="${u.email}">${u.email}</form:option>
</c:forEach>
</form:select>
<p class="help-block"><form:errors path="user" cssClass="error"/></p>
</div>
</div>



<button type="submit" class="btn btn-default">Submit</button>
<button type="submit" class="btn btn-default">Submit</button>
</form:form>
</div>
<p>
<a href="${pageContext.request.contextPath}/revision/">Back to revision</a>
</p>
</div>
</jsp:attribute>
</my:template>
</my:template>
Loading

0 comments on commit d0738d6

Please sign in to comment.