summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no>2010-09-03 12:48:57 -0400
committerKjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no>2010-09-03 12:48:57 -0400
commitc3e8e1ba1ce93706ef8d8e9f97ce18fe8575c220 (patch)
treef16c1568c3dfb040201cbad9fed03d99ed9ee1ce
parentef389445a475d3f96993e58dfd1a3fa82eb09ffb (diff)
Add quote submission
Based on submit.jsp and submitted.jsp from the old application.
-rw-r--r--html/quotes.jsp3
-rw-r--r--src/WEB-INF/web.xml10
-rw-r--r--src/lq/AddQuote.java69
-rw-r--r--src/lq/Strings.java3
4 files changed, 83 insertions, 2 deletions
diff --git a/html/quotes.jsp b/html/quotes.jsp
index 4d0c5d7..3e57979 100644
--- a/html/quotes.jsp
+++ b/html/quotes.jsp
@@ -24,8 +24,7 @@ hr {
| | |_|_|_| |_|\__,_/_/\_(_)_| |_|\___/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Quotes fra #linux.no på freenode
- Klikk <a href="submit.jsp">her</a> for å legge til en quote
- eller <a href="quotevote">her</a> for raskere stemming
+ Klikk <a href="add.jsp">her</a> for å legge til en quote
Sortér etter <a href="quotes.jsp?order=date">dato</a> | <a href="quotes.jsp?order=score">score</a> | <a href="quotes.jsp?order=number">id</a>
</pre>
diff --git a/src/WEB-INF/web.xml b/src/WEB-INF/web.xml
index bb255cb..3ed23ed 100644
--- a/src/WEB-INF/web.xml
+++ b/src/WEB-INF/web.xml
@@ -7,6 +7,16 @@
<display-name>Quotes fra #linux.no på freenode</display-name>
<servlet>
+ <servlet-name>add_quote</servlet-name>
+ <servlet-class>lq.AddQuote</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>add_quote</servlet-name>
+ <url-pattern>/post/add</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
<servlet-name>importquotes</servlet-name>
<servlet-class>lq.ImportQuotes</servlet-class>
</servlet>
diff --git a/src/lq/AddQuote.java b/src/lq/AddQuote.java
new file mode 100644
index 0000000..3174ac9
--- /dev/null
+++ b/src/lq/AddQuote.java
@@ -0,0 +1,69 @@
+package lq;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.Date;
+import javax.jdo.PersistenceManager;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class AddQuote extends HttpServlet {
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+ String nick = req.getParameter("nick");
+ String text = req.getParameter("quote");
+ String date = req.getParameter("date");
+ String forward = req.getHeader("X-Forwarded-For");
+ String ip = req.getRemoteAddr();
+
+ resp.setContentType("text/html");
+
+ boolean validInput = true;
+ Date quoteDate = new Date();
+
+ if (Strings.nullOrEmpty(nick)) {
+ nick = "Anonym";
+ }
+ if (Strings.nullOrEmpty(text)) {
+ validInput = false;
+ }
+ if (!Strings.nullOrEmpty(date)) {
+ try {
+ quoteDate = DateUtil.dateFormat.parse(date);
+ }
+ catch (ParseException exception) {
+ resp.getWriter().println("Dato må være på formatet YYYY-MM-DD");
+ validInput = false;
+ }
+ }
+ if (!Strings.nullOrEmpty(forward)) {
+ ip = ip + " (" + forward + ")";
+ }
+
+ if (!validInput) {
+ resp.getWriter().println("Eskje du lidt kniben nå");
+ return;
+ }
+
+ Quote newQuote = new Quote(quoteDate, nick, text, ip);
+ PersistenceManager pm = PMF.get().getPersistenceManager();
+ try {
+ pm.makePersistent(newQuote);
+ }
+ finally {
+ pm.close();
+ }
+
+ resp.getWriter().println(successString);
+ }
+
+ public final String successString =
+ "<center>\n" +
+ "<img src=\"roflcopter.gif\" /><p />\n" +
+ "<pre> Takk, quoten venter nå på godkjenning.</pre>\n" +
+ "<pre> <a href=\"/quotes.jsp\">Tilbake til quotes</a> </pre>\n" +
+ "</center>\n";
+}
diff --git a/src/lq/Strings.java b/src/lq/Strings.java
index f3604f0..42d23e5 100644
--- a/src/lq/Strings.java
+++ b/src/lq/Strings.java
@@ -7,6 +7,9 @@ public class Strings {
.replaceAll("<","&lt;")
.replaceAll(">","&gt;")
.replaceAll(" ","&nbsp;&nbsp;");
+ }
+ public static final boolean nullOrEmpty(String str) {
+ return str == null || str.isEmpty();
}
}