Skip to content

Commit

Permalink
Make references deletable
Browse files Browse the repository at this point in the history
  • Loading branch information
Blodir committed Apr 26, 2016
1 parent ed5f699 commit 3a10c91
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/main/java/ohtuhatut/controller/ReferenceController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ohtuhatut.controller;

import ohtuhatut.domain.Reference;
import ohtuhatut.service.ReferenceListService;
import ohtuhatut.service.ReferenceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
Expand All @@ -18,6 +19,9 @@
public class ReferenceController {
@Autowired
private ReferenceService referenceService;

@Autowired
private ReferenceListService referenceListService;

@RequestMapping(method = RequestMethod.GET)
public String getAllReferences(Model model) {
Expand Down Expand Up @@ -97,4 +101,20 @@ public String newReferenceCreate(@ModelAttribute Reference reference, RedirectAt
}

// <--- new

@RequestMapping(value = "/{id}/delete", method = RequestMethod.POST)
public String deleteReference(@PathVariable Long id) {

Reference reference = referenceService.getReference(id);

if (reference == null) {
return "404";
}

referenceListService.removeReference(reference);

referenceService.deleteReference(reference);

return "redirect:/references/";
}
}
4 changes: 4 additions & 0 deletions src/main/java/ohtuhatut/domain/ReferenceList.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,8 @@ public List<Reference> getReferences() {
public void setReferences(List<Reference> references) {
this.references = references;
}

public void removeReference(Reference reference) {
references.remove(reference);
}
}
8 changes: 8 additions & 0 deletions src/main/java/ohtuhatut/service/ReferenceListService.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.springframework.stereotype.Service;

import java.util.List;
import ohtuhatut.domain.Reference;


/**
Expand All @@ -28,4 +29,11 @@ public List<ReferenceList> getAllReferenceLists() {
return referenceListRepository.findAll();
}

public void removeReference(Reference reference) {
for (ReferenceList referenceList : referenceListRepository.findAll()) {
if (referenceList.getReferences().contains(reference)) {
referenceList.removeReference(reference);
}
}
}
}
4 changes: 4 additions & 0 deletions src/main/java/ohtuhatut/service/ReferenceService.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ public void saveReference(Reference reference) {
referenceRepository.save(reference);
}

public void deleteReference(Reference reference) {
referenceRepository.delete(reference);
}

/*
* Bind reference to its correct type (eg. a "book" Reference will be returned
* as a BookReference)
Expand Down
12 changes: 12 additions & 0 deletions src/main/resources/templates/reference_edit.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,18 @@ <h1 th:text="'Edit reference: ' + ${reference.title}"></h1>

<input type="submit" value="Submit"/>
</form>
<form id="delete-reference" action="#" th:action="@{/references/{id}/delete/(id=${reference.id})}" th:object="${reference}" method="post">
</form>
<button onclick="confirmDeletion()">Delete</button>
</div>

<script>
function confirmDeletion() {
if (confirm("Confirm deletion of reference") === true) {
$("#delete-reference").submit();
}
}
</script>

</body>
</html>

0 comments on commit 3a10c91

Please sign in to comment.