petclinic-uncached
Changes
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointment.java 37(+37 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentBook.java 13(+13 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentForm.java 67(+67 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointments.java 15(+15 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java 30(+28 -2)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/StubAppointmentBook.java 23(+23 -0)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java 13(+6 -7)
org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java 1(+0 -1)
Details
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointment.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointment.java
new file mode 100644
index 0000000..d193117
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointment.java
@@ -0,0 +1,37 @@
+package org.springframework.samples.petclinic.appointments;
+
+import java.util.Date;
+
+public class Appointment {
+
+ private String owner;
+
+ private String ownerPhone;
+
+ private String pet;
+
+ private String notes;
+
+ private Date dateTime;
+
+ public String getOwner() {
+ return owner;
+ }
+
+ public String getOwnerPhone() {
+ return ownerPhone;
+ }
+
+ public String getPet() {
+ return pet;
+ }
+
+ public Date getDateTime() {
+ return dateTime;
+ }
+
+ public String getNotes() {
+ return notes;
+ }
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentBook.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentBook.java
new file mode 100644
index 0000000..55ebd48
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentBook.java
@@ -0,0 +1,13 @@
+package org.springframework.samples.petclinic.appointments;
+
+import java.util.Date;
+
+public interface AppointmentBook {
+
+ Appointments getAppointmentsForToday();
+
+ Appointments getAppointmentsForDay(Date day);
+
+ Long createAppointment(AppointmentForm form);
+
+}
\ No newline at end of file
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentForm.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentForm.java
new file mode 100644
index 0000000..d3d7aba
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentForm.java
@@ -0,0 +1,67 @@
+package org.springframework.samples.petclinic.appointments;
+
+import java.util.Date;
+
+public class AppointmentForm {
+
+ private Long doctor;
+
+ private Long owner;
+
+ private String pet;
+
+ private Date date;
+
+ private Date time;
+
+ private String notes;
+
+ public Long getDoctor() {
+ return doctor;
+ }
+
+ public void setDoctor(Long doctor) {
+ this.doctor = doctor;
+ }
+
+ public Long getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Long owner) {
+ this.owner = owner;
+ }
+
+ public String getPet() {
+ return pet;
+ }
+
+ public void setPet(String pet) {
+ this.pet = pet;
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ public Date getTime() {
+ return time;
+ }
+
+ public void setTime(Date time) {
+ this.time = time;
+ }
+
+ public String getNotes() {
+ return notes;
+ }
+
+ public void setNotes(String notes) {
+ this.notes = notes;
+ }
+
+}
\ No newline at end of file
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointments.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointments.java
new file mode 100644
index 0000000..f2aa85e
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/Appointments.java
@@ -0,0 +1,15 @@
+package org.springframework.samples.petclinic.appointments;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class Appointments {
+
+ private Map<String, List<Appointment>> vetAppointments = new LinkedHashMap<String, List<Appointment>>();
+
+ public Map<String, List<Appointment>> getAllByVet() {
+ return vetAppointments;
+ }
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java
index c8abc0a..e3c7860 100644
--- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/AppointmentsController.java
@@ -1,6 +1,10 @@
package org.springframework.samples.petclinic.appointments;
+import java.util.Date;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -8,9 +12,31 @@ import org.springframework.web.bind.annotation.RequestMethod;
@RequestMapping("/appointments")
public class AppointmentsController {
+ private AppointmentBook appointmentBook;
+
+ @Autowired
+ public AppointmentsController(AppointmentBook appointmentBook) {
+ this.appointmentBook = appointmentBook;
+ }
+
@RequestMapping(method = RequestMethod.GET)
- public void get() {
-
+ public Appointments get() {
+ return appointmentBook.getAppointmentsForToday();
+ }
+
+ @RequestMapping(value="/{day}", method = RequestMethod.GET)
+ public Appointments getForDay(@PathVariable Date day) {
+ return appointmentBook.getAppointmentsForDay(day);
+ }
+
+ @RequestMapping(value="/new", method = RequestMethod.GET)
+ public AppointmentForm getNewForm() {
+ return new AppointmentForm();
}
+ @RequestMapping(method = RequestMethod.POST)
+ public String post(AppointmentForm form) {
+ appointmentBook.createAppointment(form);
+ return "redirect:/appointments";
+ }
}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/StubAppointmentBook.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/StubAppointmentBook.java
new file mode 100644
index 0000000..92525a3
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/appointments/StubAppointmentBook.java
@@ -0,0 +1,23 @@
+package org.springframework.samples.petclinic.appointments;
+
+import java.util.Date;
+
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class StubAppointmentBook implements AppointmentBook {
+
+ public Appointments getAppointmentsForDay(Date day) {
+ return new Appointments();
+ }
+
+ public Appointments getAppointmentsForToday() {
+ return new Appointments();
+ }
+
+ public Long createAppointment(AppointmentForm form) {
+ return 1L;
+ }
+
+
+}
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java
index 934accd..9841482 100644
--- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/Owner.java
@@ -12,7 +12,7 @@ public class Owner {
private String city;
- private String telephone;
+ private String phone;
public Owner() {
@@ -58,13 +58,12 @@ public class Owner {
this.city = city;
}
- public String getTelephone() {
- return telephone;
+ public String getPhone() {
+ return phone;
}
- public void setTelephone(String telephone) {
- this.telephone = telephone;
+ public void setPhone(String phone) {
+ this.phone = phone;
}
-
-}
+}
\ No newline at end of file
diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java
index f41e895..f24cd07 100644
--- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java
+++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/owners/OwnersController.java
@@ -37,7 +37,6 @@ public class OwnersController {
@RequestMapping(method = RequestMethod.POST)
public String post(Owner owner) {
Long ownerId = repository.saveOwner(owner);
- // TODO simplify this since /owners is the current resource already?
return "redirect:/owners/" + ownerId;
}
diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/addNewForm.jsp b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/addNewForm.jsp
new file mode 100644
index 0000000..997640d
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/addNewForm.jsp
@@ -0,0 +1,31 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<h2>Add New Appointment</h2>
+
+<form:form id="addNewForm" action="${pageContext.request.contextPath}/appointments" modelAttribute="appointment" method="post">
+ <form:label for="doctor" path="doctor">
+ Doctor
+ <form:input path="doctor" />
+ </form:label>
+ <form:label for="owner" path="owner">
+ Owner
+ <form:input path="owner" />
+ </form:label>
+ <form:label for="pet" path="pet">
+ Pet
+ <form:input path="pet" />
+ </form:label>
+ <form:label for="date" path="date">
+ Date
+ <form:input path="date" />
+ </form:label>
+ <form:label for="time" path="time">
+ Time
+ <form:input path="time" />
+ </form:label>
+ <form:label for="notes" path="notes">
+ Notes
+ <form:input path="notes" />
+ </form:label>
+ <input type="submit" value="Add" />
+</form:form>
\ No newline at end of file
diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/content.jsp b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/content.jsp
new file mode 100644
index 0000000..b171fb5
--- /dev/null
+++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/appointments/content.jsp
@@ -0,0 +1,11 @@
+<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
+
+<div id="sidebar">
+ <ul id="sub-nav">
+ <li><a href="${pageContext.request.contextPath}/appointments">Calendar</a></li>
+ <li><a href="${pageContext.request.contextPath}/appointments/new">Add New</a></li>
+ </ul>
+</div>
+<div id="main">
+ <tiles:insertAttribute name="main" />
+</div>
\ No newline at end of file
diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/tiles.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/tiles.xml
index 87229ac..e87543e 100644
--- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/tiles.xml
+++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/tiles.xml
@@ -17,13 +17,30 @@
</definition>
<!-- APPOINTMENTS PAGES -->
+
+ <!-- CALENDAR PAGE -->
<definition name="appointments" extends="page">
<put-attribute name="title" value="Appointments" type="string" />
- <put-attribute name="content" value="/WEB-INF/appointments/calendar.jsp" type="template" />
+ <put-attribute name="content" value="appointments.content" type="definition" />
</definition>
+ <definition name="appointments.content" template="/WEB-INF/appointments/content.jsp">
+ <put-attribute name="main" value="/WEB-INF/appointments/calendar.jsp" type="template" />
+ </definition>
+
+ <!-- ADD NEW PAGE -->
+ <definition name="appointments/new" extends="page">
+ <put-attribute name="title" value="Add New Appointment" type="string" />
+ <put-attribute name="content" value="appointments/new.content" type="definition" />
+ </definition>
+
+ <definition name="appointments/new.content" template="/WEB-INF/appointments/content.jsp">
+ <put-attribute name="main" value="/WEB-INF/appointments/addNewForm.jsp" type="template" />
+ </definition>
+
<!-- OWNERS PAGES -->
+
<!-- SEARCH PAGE -->
<definition name="owners" extends="page">
<put-attribute name="title" value="Owners" type="string" />
@@ -36,7 +53,7 @@
<!-- ADD NEW PAGE -->
<definition name="owners/new" extends="page">
- <put-attribute name="title" value="Owners" type="string" />
+ <put-attribute name="title" value="Add New Owner" type="string" />
<put-attribute name="content" value="owners/new.content" type="definition" />
</definition>
@@ -54,7 +71,7 @@
<put-attribute name="main" value="/WEB-INF/owners/searchResults.jsp" type="template" />
</definition>
- <!-- OWNER DETAIL PAGE -->
+ <!-- DETAIL PAGE -->
<definition name="owner" extends="page">
<put-attribute name="title" value="Owner" type="string" />
<put-attribute name="content" value="owner.content" type="definition" />
@@ -64,4 +81,5 @@
<put-attribute name="main" value="/WEB-INF/owners/owner.jsp" type="template" />
</definition>
+
</tiles-definitions>
\ No newline at end of file