/* * UserArticle.java created on Dec 31, 2004 * */ package org.remiss.db; import javax.servlet.http.HttpServletRequest; /** * @author roger * */ public class UserArticle { private int view,start,action; private final Articles art; private static final int ART_LIMIT=10; public static String startPage, processPage; //ACTIONS public static final int NO_ACTION=0, EDIT_ART=1, UPDATE_ART=3, NEW_ART=4; public static final int INSERT_ART=5, DELETE_ART=6, LIST_ART=7, DELETE_CONFIRM=8; public static final int DELETE_COMMENT = 9; public UserArticle(){ view=0; start=0; startPage = "/index.jsp"; processPage = "/docs/articles.jsp"; art = new Articles(); } public void setView(String view) { try { this.view = Integer.parseInt(view); } catch(NumberFormatException e) { this.view = -1; } } public void setStart(String start) { try { this.start = Integer.parseInt(start); if(this.start<0) this.start=0; } catch(NumberFormatException e) { this.start = 0; } } public void setAction(String a) { try { action = Integer.parseInt(a); if(action<0) action=UserArticle.NO_ACTION; } catch(NumberFormatException e) { action = UserArticle.NO_ACTION; } } private void checkVars(HttpServletRequest request) { if(request.getServletPath().equals(startPage)){ // view does not make sense on this page view=0; // reset if not specified if(request.getParameter("start")==null) start = 0; } else if(request.getServletPath().equals(processPage)&&request.getParameter("action")==null) action=0; } public String getArticleList(int uid) { return "
\n" + art.getArticleList(uid); } public String processAuthenticatedRequest(HttpServletRequest request, int uid, boolean admin) { checkVars(request); StringBuffer ret= new StringBuffer(); if(action==UserArticle.LIST_ART) { ret.append("

Artikkelliste

\n"); ret.append(getArticleList(admin?0:uid)); } else if(action==UserArticle.NEW_ART) { ret.append("

Ny artikkel

\n"); ret.append( art.createNewForm()); } else if(action==UserArticle.EDIT_ART) { if(view>0) { ret.append("

Rediger artikkel\n

"); ret.append(art.createEditForm(view)); } else { ret.append("

Velg artikkel som skal redigeres

"); ret.append(art.getArticleList(admin?0:uid)); } } else if(action == UserArticle.INSERT_ART || action == UserArticle.UPDATE_ART) { String topic = request.getParameter("topic"); String ingress = request.getParameter("ingress"); String text = request.getParameter("text"); if(topic==null||topic.equals("")) return "

Topic er ikke satt

\n"; if(ingress==null||ingress.equals("")) return "

Ingress er ikke satt

\n"; if(text==null) text=""; if(action==UserArticle.INSERT_ART) { if(art.addArticle(uid,topic,ingress,text)) ret.append("

Vellykket! Satt inn ny artikkel.

\n"); else ret.append("

Det oppstod et problem når artikkelen skulle settes inn.

\n"); ret.append(getArticleList(admin?0:uid)); } else { if(view>0) { if(art.modifyArticle(view,topic,ingress,text)) ret.append("

Endret artikkel.

"); else ret.append("

Kunne ikke endre artikkel.

"); ret.append(getArticleList(admin?0:uid)); } } } else if(action == UserArticle.DELETE_ART||action==UserArticle.DELETE_CONFIRM) { if(view>0) { if(action==UserArticle.DELETE_CONFIRM) { if(art.deleteArticle(view, admin?0:uid)) ret.append("

Slettet artikkelen.

\n"); else ret.append("

Kunne ikke slette artikkelen./p>\n"); ret.append(getArticleList(admin?0:uid)); } else { ret.append("

Sikker på at du vil slette denne artikkelen? Yes

\n"); ret.append(art.viewArticle(view,admin)); } } else ret.append("

Ingen artikkel spesifisert til sletting.

\n"); } else if(action==DELETE_COMMENT) { ret.append("

Feil med kommentarid

"); if(request.getParameter("comid")!=null) { try { int comId = Integer.parseInt(request.getParameter("comid")); if(comId>0) { art.deleteComment(comId); ret.setLength(0); ret.append("

Fjernet kommentar

\n"); } }catch(NumberFormatException e) {} } } else return processRequest(request, admin); return ret.toString(); } public String processRequest(HttpServletRequest request) { return processRequest(request, false); } public String processRequest(HttpServletRequest request, boolean admin) { checkVars(request); StringBuffer ret = new StringBuffer(); if(view>0) { if(request.getParameter("subcom")!=null) { if(request.getParameter("name")!=null&&request.getParameter("comment")!=null) { if(!art.addComment(view, request.getParameter("name"), request.getParameter("comment"))) ret.append("

En feil oppstod når kommentar skulle legges til

"); } else ret.append("

Kommentar ikke lagt til

"); } ret.append(art.viewArticle(view,admin)); ret.append("\n"); ret.append(Articles.BACK); ret.append("\n"); String ua =request.getHeader("user-agent"); if(ua!=null&&(ua=ua.toLowerCase()).indexOf("bot")<0&&ua.indexOf("slurp")<0&&!admin) art.incrementCount(view); view=0; } else { String txt = art.viewArticles(start,ART_LIMIT,admin); if(txt!=null) ret.append(txt); else ret.append("

Fikk ikke valgt forespurt artikkel eller ingen " + "tidligere artikler

\n"); ret.append("

\n"); int tStart=start-ART_LIMIT; if(tStart<0) tStart=0; if(start>0||txt==null) ret.append("\n" + Articles.BACK + "\n"); if(txt!=null) ret.append("\n" + Articles.NEXT + "\n"); ret.append("

\n"); } return ret.toString(); } }