Skip to content

Commit 1cb7348

Browse files
Merge pull request #65
added edit.jsp * implemented doPost (contacts) * added images
2 parents cbb7b3a + a4b8843 commit 1cb7348

File tree

16 files changed

+112
-17
lines changed

16 files changed

+112
-17
lines changed

src/ru/javawebinar/basejava/model/Resume.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ public String getFullName() {
4545
return fullName;
4646
}
4747

48+
public void setFullName(String fullName) {
49+
this.fullName = fullName;
50+
}
51+
4852
public Map<ContactType, String> getContacts() {
4953
return contacts;
5054
}

src/ru/javawebinar/basejava/web/ResumeServlet.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import javax.servlet.http.*;
55
import java.io.IOException;
66
import ru.javawebinar.basejava.Config;
7+
import ru.javawebinar.basejava.model.ContactType;
78
import ru.javawebinar.basejava.model.Resume;
89
import ru.javawebinar.basejava.storage.Storage;
910

@@ -45,6 +46,20 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response)
4546
@Override
4647
protected void doPost(HttpServletRequest request, HttpServletResponse response)
4748
throws ServletException, IOException {
48-
49+
request.setCharacterEncoding("UTF-8");
50+
String uuid = request.getParameter("uuid");
51+
String fullName = request.getParameter("fullName");
52+
Resume resume = storage.get(uuid);
53+
resume.setFullName(fullName);
54+
for (ContactType type : ContactType.values()) {
55+
String value = request.getParameter(type.name());
56+
if (value != null && value.trim().length() != 0) {
57+
resume.addContact(type, value);
58+
} else {
59+
resume.getContacts().remove(type);
60+
}
61+
}
62+
storage.update(resume);
63+
response.sendRedirect("resume");
4964
}
5065
}

web/WEB-INF/jsp/edit.jsp

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,40 @@
1+
<%@ page import="ru.javawebinar.basejava.model.ContactType" %>
12
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
3+
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
4+
25
<html>
36
<head>
4-
<title>Title</title>
7+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
8+
<link rel="stylesheet" href="css/style.css">
9+
<jsp:useBean id="resume" type="ru.javawebinar.basejava.model.Resume" scope="request"/>
10+
<title>Resume ${resume.fullName}</title>
511
</head>
612
<body>
7-
13+
<jsp:include page="fragments/header.jsp"/>
14+
<section>
15+
<form method="post" action="resume" enctype="application/x-www-form-urlencoded">
16+
<input type="hidden" name="uuid" value="${resume.uuid}">
17+
<dl>
18+
<dt>Name</dt>
19+
<dd><input type="text" name="fullName" size="50" value="${resume.fullName}"></dd>
20+
</dl>
21+
<h3>Contacts</h3>
22+
<c:forEach var="type" items="<%=ContactType.values()%>">
23+
<dl>
24+
<dt>${type.title}</dt>
25+
<dd><input type="text" name="${type.name()}" size="30"
26+
value="${resume.getContact(type)}"></dd>
27+
</dl>
28+
</c:forEach>
29+
<h3>Sections:</h3>
30+
<input type="text" name="section" size="30" value="1"><br/>
31+
<input type="text" name="section" size="30" value="2"><br/>
32+
<input type="text" name="section" size="30" value="3"><br/>
33+
<hr>
34+
<button type="submit">Save</button>
35+
<button onclick="window.history.back()">Cancel</button>
36+
</form>
37+
</section>
38+
<jsp:include page="fragments/footer.jsp"/>
839
</body>
9-
</html>
40+
</html>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<%@page contentType="text/html" pageEncoding="UTF-8" %>
22
<footer>
3-
Project <a href="http://javaops.ru/reg/basejava">Development Web-app ResumeDB</a>
3+
Project <a href="http://javaops.ru/reg/basejava">Web-app development ResumeDB</a>
44
</footer>

web/WEB-INF/jsp/list.jsp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
<tr>
2424
<td><a href="resume?uuid=${resume.uuid}&action=view">${resume.fullName}</a></td>
2525
<td><%=ContactType.EMAIL.toHtml(resume.getContact(ContactType.EMAIL))%></td>
26-
<td><a href="resume?uuid=${resume.uuid}&action=delete">Delete</a></td>
27-
<td><a href="resume?uuid=${resume.uuid}&action=edit">Edit</a></td>
26+
<td><a href="resume?uuid=${resume.uuid}&action=delete"><img src="img/delete.png"></a></td>
27+
<td><a href="resume?uuid=${resume.uuid}&action=edit"><img src="img/pencil.png"></a></td>
2828
</tr>
2929
</c:forEach>
3030
</table>

web/WEB-INF/jsp/view.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<body>
1212
<jsp:include page="fragments/header.jsp"/>
1313
<section>
14-
<h2>${resume.fullName}&nbsp;<a href="resume?uuid=${resume.uuid}&action=edit">Edit</a></h2>
14+
<h2>${resume.fullName}&nbsp;<a href="resume?uuid=${resume.uuid}&action=edit"><img src="img/pencil.png"></a></h2>
1515
<p>
1616
<c:forEach var="contactEntry" items="${resume.contacts}">
1717
<jsp:useBean id="contactEntry"

web/css/style.css

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,54 @@ footer {
1111
font-size: 20px;
1212
padding: 5px 20px;
1313
margin: 20px 0;
14-
}
14+
}
15+
16+
dl {
17+
background: none repeat scroll 0 0 #FAFAFA;
18+
margin: 8px 0;
19+
padding: 0;
20+
}
21+
22+
dt {
23+
display: inline-block;
24+
width: 170px;
25+
}
26+
27+
dd {
28+
display: inline-block;
29+
margin-left: 8px;
30+
vertical-align: top;
31+
}
32+
33+
/*h2, h3 {*/
34+
/* margin: 15px 0 5px;*/
35+
/*}*/
36+
37+
/*li {*/
38+
/* margin: 15px 0;*/
39+
/*}*/
40+
41+
/*a[href^="skype:"] {*/
42+
/* padding-left: 20px !important;*/
43+
/* background: url(../img/skype.png) no-repeat center left;*/
44+
/*}*/
45+
46+
/*a[href^="mailto:"] {*/
47+
/* padding-left: 20px !important;*/
48+
/* background: url(../img/email.png) no-repeat center left;*/
49+
/*}*/
50+
51+
/*a[href^="https://stackoverflow.com"] {*/
52+
/* padding-left: 20px !important;*/
53+
/* background: url(../img/so.png) no-repeat center left;*/
54+
/*}*/
55+
56+
/*a[href^="https://www.linkedin.com"] {*/
57+
/* padding-left: 20px !important;*/
58+
/* background: url(../img/lin.png) no-repeat center left;*/
59+
/*}*/
60+
61+
/*a[href*="github."] {*/
62+
/* padding-left: 20px !important;*/
63+
/* background: url(../img/gh.png) no-repeat center left;*/
64+
/*}*/

web/img/add.png

698 Bytes
Loading

web/img/delete.png

695 Bytes
Loading

web/img/email.png

530 Bytes
Loading

0 commit comments

Comments
 (0)