/* * 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("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(); } }