You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/06/08 18:06:46 UTC
svn commit: r189602 [24/50] - in /incubator/roller/trunk: ./ contrib/
contrib/lib/ contrib/plugins/ contrib/plugins/src/ contrib/plugins/src/org/
contrib/plugins/src/org/roller/ contrib/plugins/src/org/roller/presentation/
contrib/plugins/src/org/roller/presentation/velocity/
contrib/plugins/src/org/roller/presentation/velocity/plugins/
contrib/plugins/src/org/roller/presentation/velocity/plugins/acronyms/
contrib/plugins/src/org/roller/presentation/velocity/plugins/bookmarks/
contrib/plugins/src/org/roller/presentation/velocity/plugins/email/
contrib/plugins/src/org/roller/presentation/velocity/plugins/jspwiki/
contrib/plugins/src/org/roller/presentation/velocity/plugins/radeox/
contrib/plugins/src/org/roller/presentation/velocity/plugins/readmore/
contrib/plugins/src/org/roller/presentation/velocity/plugins/smileys/
contrib/plugins/src/org/roller/presentation/velocity/plugins/textile/ docs/
docs/images/ docs/installguide/ docs/installguide/old/ docs/userguide/
docs/userguide/images/ docs/userguide/old/ metadata/ metadata/database/
metadata/database/hibernate/ metadata/xdoclet/ personal/ personal/eclipse/
personal/testing/ src/ src/org/ src/org/roller/ src/org/roller/business/
src/org/roller/business/hibernate/ src/org/roller/business/utils/
src/org/roller/model/ src/org/roller/pojos/ src/org/roller/presentation/
src/org/roller/presentation/atom/ src/org/roller/presentation/bookmarks/
src/org/roller/presentation/bookmarks/actions/
src/org/roller/presentation/bookmarks/formbeans/
src/org/roller/presentation/bookmarks/tags/
src/org/roller/presentation/filters/ src/org/roller/presentation/forms/
src/org/roller/presentation/newsfeeds/ src/org/roller/presentation/pagecache/
src/org/roller/presentation/pagecache/rollercache/
src/org/roller/presentation/tags/ src/org/roller/presentation/tags/calendar/
src/org/roller/presentation/tags/menu/
src/org/roller/presentation/velocity/ src/org/roller/presentation/weblog/
src/org/roller/presentation/weblog/actions/
src/org/roller/presentation/weblog/formbeans/
src/org/roller/presentation/weblog/search/
src/org/roller/presentation/weblog/search/operations/
src/org/roller/presentation/weblog/tags/ src/org/roller/presentation/website/
src/org/roller/presentation/website/actions/
src/org/roller/presentation/website/formbeans/
src/org/roller/presentation/website/tags/
src/org/roller/presentation/xmlrpc/ src/org/roller/util/ tests/ tests/org/
tests/org/roller/ tests/org/roller/business/ tests/org/roller/model/
tests/org/roller/persistence/ tests/org/roller/presentation/
tests/org/roller/presentation/atom/ tests/org/roller/presentation/bookmarks/
tests/org/roller/presentation/velocity/
tests/org/roller/presentation/velocity/plugins/
tests/org/roller/presentation/velocity/plugins/smileys/
tests/org/roller/presentation/velocity/plugins/textile/
tests/org/roller/presentation/xmlrpc/ tests/org/roller/util/ tools/
tools/buildtime/ tools/buildtime/mockrunner-0.2.6/
tools/buildtime/mockrunner-0.2.6/lib/ tools/buildtime/tomcat-4.1.24/
tools/buildtime/xdoclet-1.2/ tools/buildtime/xdoclet-1.2/lib/
tools/hibernate-2.1/ tools/hibernate-2.1/lib/ tools/lib/
tools/standard-1.0.3/ tools/standard-1.0.3/lib/ tools/standard-1.0.3/tld/
tools/struts-1.1/ tools/struts-1.1/lib/ web/ web/WEB-INF/
web/WEB-INF/classes/ web/WEB-INF/classes/flavors/
web/WEB-INF/classes/themes/ web/bookmarks/ web/images/ web/images/editor/
web/images/midas/ web/images/preview/ web/images/smileys/ web/tags/
web/templates/ web/theme/ web/theme/images/ web/theme/lavender/
web/theme/scripts/ web/theme/scripts/classes/ web/themes/ web/themes/basic/
web/themes/berkley/ web/themes/berkley/images/ web/themes/cheb/
web/themes/cheb/images/ web/themes/cheb/scripts/ web/themes/clean/
web/themes/currency-i18n/ web/themes/currency-i18n/images/
web/themes/currency/ web/themes/currency/images/ web/themes/grey2/
web/themes/moonshine/ web/themes/pacifica/ web/themes/robot/
web/themes/rolling/ web/themes/rolling/images/ web/themes/sotto/
web/themes/sotto/images/ web/themes/sotto/styles/ web/themes/sunsets/
web/themes/sunsets/images/ web/themes/sunsets/scripts/
web/themes/sunsets/styles/ web/themes/werner/ web/themes/x2/
web/themes/x2/images/ web/themes/x2/scripts/ web/themes/x2/styles/
web/weblog/ web/website/
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,811 @@
+
+package org.roller.presentation.weblog.actions;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionError;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.apache.struts.actions.DispatchAction;
+import org.roller.RollerException;
+import org.roller.model.RollerSpellCheck;
+import org.roller.model.UserManager;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.CommentData;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WebsiteData;
+import org.roller.presentation.MainPageAction;
+import org.roller.presentation.RollerContext;
+import org.roller.presentation.RollerRequest;
+import org.roller.presentation.RollerSession;
+import org.roller.presentation.pagecache.PageCache;
+import org.roller.presentation.velocity.PageHelper;
+import org.roller.presentation.weblog.formbeans.WeblogEntryFormEx;
+import org.roller.presentation.weblog.search.IndexManager;
+import org.roller.presentation.weblog.search.operations.AddEntryOperation;
+import org.roller.presentation.weblog.search.operations.RemoveEntryOperation;
+import org.roller.presentation.xmlrpc.RollerXmlRpcClient;
+import org.roller.util.Utilities;
+
+import com.swabunga.spell.event.SpellCheckEvent;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+
+/////////////////////////////////////////////////////////////////////////////
+/**
+ * Supports Weblog Entry form actions edit, remove, update, etc.
+ *
+ * @struts.action name="weblogEntryFormEx" path="/weblog"
+ * scope="request" parameter="method"
+ *
+ * @struts.action-forward name="weblogEdit.page" path="/weblog/WeblogEdit.jsp"
+ * @struts.action-forward name="weblogEntryRemove.page" path="/weblog/WeblogEntryRemove.jsp"
+ */
+public final class WeblogEntryFormAction extends DispatchAction
+{
+ private static Log mLogger =
+ LogFactory.getFactory().getInstance(WeblogEntryFormAction.class);
+
+ //-----------------------------------------------------------------------
+ /**
+ * Allow user to create a new weblog entry.
+ */
+ public ActionForward create(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("weblogEdit.page");
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm;
+ form.initNew(request, response);
+
+ request.setAttribute("model",
+ new WeblogEntryPageModel(request, response, mapping,
+ (WeblogEntryFormEx)actionForm,
+ WeblogEntryPageModel.EDIT_MODE));
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ request.getSession().getServletContext().log("ERROR",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Allow user to edit a weblog entry.
+ */
+ public ActionForward edit(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("weblogEdit.page");
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ WeblogEntryData entry = rreq.getWeblogEntry();
+ WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm;
+ form.copyFrom(entry, request.getLocale());
+
+ request.setAttribute("model",
+ new WeblogEntryPageModel(request, response, mapping,
+ form,
+ WeblogEntryPageModel.EDIT_MODE));
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ request.getSession().getServletContext().log("ERROR",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward preview(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ // we need to save any new entries before Previewing
+ WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm;
+ if (form.getId() == null)
+ {
+ save(mapping, actionForm, request, response);
+ }
+ return display(WeblogEntryPageModel.PREVIEW_MODE,
+ mapping, actionForm, request, response);
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward returnToEditMode(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ return display(WeblogEntryPageModel.EDIT_MODE,
+ mapping, actionForm, request, response);
+ }
+
+ //-----------------------------------------------------------------------
+ private ActionForward display(
+ WeblogEntryPageModel.PageMode mode,
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("weblogEdit.page");
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ request.setAttribute("model",
+ new WeblogEntryPageModel(request, response, mapping,
+ (WeblogEntryFormEx)actionForm, mode));
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ request.getSession().getServletContext().log("ERROR",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Saves weblog entry and flushes page cache so that new entry will appear
+ * on users weblog page.
+ */
+ public ActionForward save(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("weblogEdit.page");
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ UserManager userMgr =
+ rreq.getRoller().getUserManager();
+
+ UserData user = rreq.getUser();
+ WebsiteData site = userMgr.getWebsite( user.getUserName() );
+ WeblogEntryFormEx wf = (WeblogEntryFormEx)actionForm;
+
+ // I was getting column 'x' cannot be null, so I fixed it here.
+ // A better solution might be to change the table so it allows
+ // nulls for these columns.
+ if (wf.getAllowComments() == null)
+ {
+ wf.setAllowComments(Boolean.FALSE);
+ }
+ if (wf.getRightToLeft() == null)
+ {
+ wf.setRightToLeft(Boolean.FALSE);
+ }
+ if (wf.getPinnedToMain() == null)
+ {
+ wf.setPinnedToMain(Boolean.FALSE);
+ }
+ if (wf.getPublishEntry() == null)
+ {
+ wf.setPublishEntry(Boolean.FALSE);
+ }
+
+ WeblogEntryData entry = new WeblogEntryData();
+ wf.copyTo(entry, request.getLocale());
+ entry.setWebsite( site );
+
+ // Store value object (creates new or updates existing)
+ entry.setUpdateTime(new Timestamp(new Date().getTime()));
+ entry.save();
+ wf.copyFrom(entry, request.getLocale());
+ rreq.getRoller().commit();
+
+ reindexEntry(entry);
+
+ // open up a new session, because we will forward to the edit action
+ //rreq.getRoller().begin(); // begin already called by RequestFilter
+
+ request.setAttribute(RollerRequest.WEBLOGENTRYID_KEY, entry.getId());
+
+ // Flush the page cache
+ PageCache.removeFromCache(request, user);
+ // refresh the front page cache
+ MainPageAction.flushMainPageCache();
+
+ // remove session objects that may be left over from spellchecking
+ HttpSession session = request.getSession(true);
+ session.removeAttribute("spellCheckEvents");
+ session.removeAttribute("entryText");
+
+ // sendWeblogsPing wasn't getting set right when unchecked
+ if (request.getParameter("sendWeblogsPing") == null)
+ {
+ wf.setSendWeblogsPing(Boolean.FALSE);
+ }
+
+ sendWeblogsDotComPing(request, user, wf, entry);
+
+ request.setAttribute("model",
+ new WeblogEntryPageModel(request, response, mapping,
+ (WeblogEntryFormEx)actionForm,
+ WeblogEntryPageModel.EDIT_MODE));
+
+ ActionMessages uiMessages = new ActionMessages();
+ uiMessages.add(null, new ActionMessage("weblogEdit.changesSaved"));
+ saveMessages(request, uiMessages);
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Ping the weblogs.com server. Notifies them of blog updates.
+ * Several other sites reference weblogs.com for updates.
+ *
+ * @param request
+ * @param user
+ * @param wf
+ * @param entry
+ */
+ private void sendWeblogsDotComPing(
+ HttpServletRequest request,
+ UserData user,
+ WeblogEntryFormEx wf,
+ WeblogEntryData entry)
+ {
+ // send a ping to Weblogs.com
+ if (wf.getSendWeblogsPing() != null &&
+ wf.getSendWeblogsPing().booleanValue())
+ {
+ RollerContext rctx = RollerContext.getRollerContext(request);
+ String blogUrl = Utilities.escapeHTML(
+ rctx.getAbsoluteContextUrl(request)
+ + "/page/" + user.getUserName());
+
+ String blogName = entry.getWebsite().getName();
+ String result =
+ RollerXmlRpcClient.sendWeblogsPing(blogUrl, blogName);
+ if (result != null) // condition
+ {
+ request.getSession().setAttribute(
+ RollerSession.STATUS_MESSAGE,
+ "Weblogs.com Response: " + result);
+ }
+ }
+ }
+
+
+ //-----------------------------------------------------------------------
+ /**
+ * Responds to request to remove weblog entry. Forwards user to page
+ * that presents the 'are you sure?' question.
+ */
+ public ActionForward removeOk(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("weblogEntryRemove.page");
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ WeblogEntryFormEx wf = (WeblogEntryFormEx)actionForm;
+ WeblogEntryData wd =
+ rreq.getRoller().getWeblogManager().retrieveWeblogEntry(wf.getId());
+ wf.copyFrom(wd, request.getLocale());
+ if (wd == null || wd.getId() == null)
+ {
+ throw new NullPointerException(
+ "Unable to find WeblogEntry for " +
+ request.getParameter(RollerRequest.WEBLOGENTRYID_KEY));
+ }
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Responds to request from the 'are you sure you want to remove?' page.
+ * Removes the specified weblog entry and flushes the cache.
+ */
+ public ActionForward remove(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ WeblogManager mgr = rreq.getRoller().getWeblogManager();
+ WeblogEntryData wd = mgr.retrieveWeblogEntry(request.getParameter("id"));
+
+ // Flush the page cache
+ UserData user = rreq.getUser();
+ PageCache.removeFromCache(request, user);
+
+ // remove the index for it
+ wd.setPublishEntry(Boolean.FALSE);
+ reindexEntry(wd);
+
+ wd.remove();
+ rreq.getRoller().commit();
+
+ ActionMessages uiMessages = new ActionMessages();
+ uiMessages.add(null, new ActionMessage("weblogEdit.entryRemoved"));
+ saveMessages(request, uiMessages);
+ }
+ else
+ {
+ return mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ throw new ServletException(e);
+ }
+
+ // need to reset all values to empty (including 'id')
+ actionForm = new WeblogEntryFormEx();
+ request.setAttribute(mapping.getName(), actionForm);
+ return create(mapping, actionForm, request, response);
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward correctSpelling(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ HttpSession session = request.getSession(true);
+ WeblogEntryFormEx wf = (WeblogEntryFormEx)actionForm;
+ // misspelt words have been submitted
+ if (wf.getReplacementWords() != null &&
+ wf.getReplacementWords().length > 0)
+ {
+ // replace misspelt words with chosen replacement
+ String[] replacementWords = wf.getReplacementWords();
+ StringBuffer entryText = new StringBuffer(wf.getText());
+
+ ArrayList events =
+ (ArrayList) session.getAttribute("spellCheckEvents");
+ SpellCheckEvent event = null;
+ String oldWord = null;
+ String newWord = null;
+ int start = -1;
+ int end = -1;
+ int count = replacementWords.length;
+ for(ListIterator it=events.listIterator(events.size());
+ it.hasPrevious();)
+ {
+ event = (SpellCheckEvent)it.previous();
+ oldWord = event.getInvalidWord();
+ newWord = replacementWords[ --count ];
+ if (!oldWord.equals(newWord))
+ {
+ start = event.getWordContextPosition();
+ end = start + oldWord.length();
+ entryText.replace( start, end, newWord );
+ }
+ }
+ wf.setText( entryText.toString() );
+
+ return save(mapping, wf, request, response);
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ throw new ServletException(e);
+ }
+ return mapping.findForward("access-denied");
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward spellCheck(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("weblogEdit.page");
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ HttpSession session = request.getSession(true);
+ WeblogEntryFormEx wf = (WeblogEntryFormEx)actionForm;
+
+ // we need to save any new entries before SpellChecking
+ if (wf.getId() == null)
+ {
+ save(mapping, actionForm, request, response);
+ }
+
+ // pass the submitted entry text through the spellchecker
+ ArrayList words =
+ RollerSpellCheck.getSpellingErrors( wf.getText() );
+ session.setAttribute("spellCheckEvents", words);
+
+ request.setAttribute("model",
+ new WeblogEntryPageModel(
+ request, response, mapping,
+ (WeblogEntryFormEx)actionForm,
+ WeblogEntryPageModel.SPELL_MODE, words));
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Update selected comments: delete and/or mark as spam.
+ */
+ public ActionForward updateComments(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("weblogEdit.page");
+ ActionErrors errors = new ActionErrors();
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ try
+ {
+ if ( rreq.isUserAuthorizedToEdit() )
+ {
+ WeblogEntryData wd = rreq.getWeblogEntry();
+ if (wd == null || wd.getId() == null)
+ {
+ throw new NullPointerException("Unable to find WeblogEntry for "+
+ request.getParameter(RollerRequest.WEBLOGENTRYID_KEY));
+ }
+ WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm;
+
+ // If form indicates that comments should be deleted, then delete
+ WeblogManager mgr = rreq.getRoller().getWeblogManager();
+ String[] deleteIds = form.getDeleteComments();
+ if (deleteIds != null && deleteIds.length > 0)
+ {
+ mgr.removeComments( deleteIds );
+ }
+
+ List comments = mgr.getComments( wd.getId(), false ); // spam too
+ if (form.getSpamComments() != null)
+ {
+ // comments marked as spam
+ List spamIds = Arrays.asList(form.getSpamComments());
+
+ // iterate over all comments, check each to see if
+ // is in the spamIds list. If so, mark it as spam.
+ Iterator it = comments.iterator();
+ while (it.hasNext())
+ {
+ CommentData comment = (CommentData)it.next();
+ if (spamIds.contains(comment.getId()))
+ {
+ comment.setSpam(Boolean.TRUE);
+ }
+ else
+ {
+ comment.setSpam(Boolean.FALSE);
+ }
+ comment.save();
+ }
+ }
+
+ rreq.getRoller().commit();
+
+ reindexEntry(wd);
+
+ request.setAttribute("model",
+ new WeblogEntryPageModel(request, response, mapping,
+ (WeblogEntryFormEx)actionForm,
+ WeblogEntryPageModel.EDIT_MODE));
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ forward = mapping.findForward("error");
+
+ errors.add(ActionErrors.GLOBAL_ERROR,
+ new ActionError("error.edit.comment", e.toString()));
+ saveErrors(request,errors);
+
+ mLogger.error(getResources(request).getMessage("error.edit.comment")
+ + e.toString(),e);
+ }
+ return forward;
+ }
+
+ /**
+ *
+ */
+ public ActionForward sendTrackback(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response) throws RollerException
+ {
+ ActionForward forward = mapping.findForward("weblogEdit.page");
+ ActionErrors errors = new ActionErrors();
+ WeblogEntryData entry = null;
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if (rreq.isUserAuthorizedToEdit())
+ {
+ WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm;
+ String entryid = form.getId();
+ if ( entryid == null )
+ {
+ entryid= request.getParameter(RollerRequest.WEBLOGENTRYID_KEY);
+ }
+
+ RollerContext rctx= RollerContext.getRollerContext(request);
+ WeblogManager wmgr= rreq.getRoller().getWeblogManager();
+ entry = wmgr.retrieveWeblogEntry(entryid);
+
+ String title = entry.getTitle();
+
+ // Run entry through registered PagePlugins
+ PageHelper pageHelper = PageHelper.createPageHelper(request, response);
+ pageHelper.setSkipFlag(true); // don't process ReadMorePlugin
+ String excerpt = pageHelper.renderPlugins(entry);
+ excerpt = StringUtils.left( Utilities.removeHTML(excerpt),255 );
+
+ String url = rctx.createEntryPermalink(entry, request, true);
+ String blog_name = entry.getWebsite().getName();
+
+ if (form.getTrackbackUrl() != null)
+ {
+ try
+ {
+ // Construct data
+
+ String data = URLEncoder.encode("title", "UTF-8")
+ +"="+URLEncoder.encode(title, "UTF-8");
+
+ data += ("&" + URLEncoder.encode("excerpt", "UTF-8")
+ +"="+URLEncoder.encode(excerpt,"UTF-8"));
+
+ data += ("&" + URLEncoder.encode("url", "UTF-8")
+ +"="+URLEncoder.encode(url,"UTF-8"));
+
+ data += ("&" + URLEncoder.encode("blog_name", "UTF-8")
+ +"="+URLEncoder.encode(blog_name,"UTF-8"));
+
+ // Send data
+ URL tburl = new URL(form.getTrackbackUrl());
+ URLConnection conn = tburl.openConnection();
+ conn.setDoOutput(true);
+
+ OutputStreamWriter wr =
+ new OutputStreamWriter(conn.getOutputStream());
+ wr.write(data);
+ wr.flush();
+
+ // Get the response
+ BufferedReader rd = new BufferedReader(
+ new InputStreamReader(conn.getInputStream()));
+
+ String line;
+ StringBuffer resultBuff = new StringBuffer();
+ while ((line = rd.readLine()) != null)
+ {
+ resultBuff.append(Utilities.escapeHTML(line, true));
+ resultBuff.append("<br />");
+ }
+
+ ActionMessages resultMsg = new ActionMessages();
+ resultMsg.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("weblogEdit.trackbackResults",
+ resultBuff));
+ saveMessages(request, resultMsg);
+
+ wr.close();
+ rd.close();
+ }
+ catch (IOException e)
+ {
+ errors.add(ActionErrors.GLOBAL_ERROR,
+ new ActionError("error.trackback",e));
+ }
+ }
+ else
+ {
+ errors.add(ActionErrors.GLOBAL_ERROR,
+ new ActionError("error.noTrackbackUrlSpecified"));
+ }
+
+ form.setTrackbackUrl(null);
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e) // unexpected
+ {
+ mLogger.error(e);
+ String msg = e.getMessage();
+ if ( msg == null )
+ {
+ msg = e.getClass().getName();
+ }
+ errors.add(ActionErrors.GLOBAL_ERROR,
+ new ActionError("error.general",msg));
+ }
+
+ if ( !errors.isEmpty() )
+ {
+ saveErrors(request, errors);
+ }
+
+ request.setAttribute("model",
+ new WeblogEntryPageModel(request, response, mapping,
+ (WeblogEntryFormEx)actionForm,
+ WeblogEntryPageModel.EDIT_MODE));
+
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward cancel(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ return (mapping.findForward("weblogEdit"));
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward unspecified(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ return create(mapping, actionForm, request, response);
+ }
+
+ /**
+ * Attempts to remove the Entry from the Lucene index and
+ * then re-index the Entry if it is Published. If the Entry
+ * is being deleted then mark it published = false.
+ * @param entry
+ */
+ private void reindexEntry(WeblogEntryData entry)
+ {
+ IndexManager manager =
+ RollerContext.getRollerContext(
+ RollerContext.getServletContext()).getIndexManager();
+
+ // remove entry before (re)adding it, or in case it isn't Published
+ RemoveEntryOperation removeOp = new RemoveEntryOperation(entry);
+ manager.executeIndexOperationNow(removeOp);
+
+ // if published, index the entry
+ if (entry.getPublishEntry() == Boolean.TRUE)
+ {
+ AddEntryOperation addEntry = new AddEntryOperation(entry);
+ manager.scheduleIndexOperation(addEntry);
+ }
+ }
+}
+
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryPageModel.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryPageModel.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryPageModel.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogEntryPageModel.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,318 @@
+/*
+ * Created on Mar 10, 2004
+ */
+package org.roller.presentation.weblog.actions;
+
+import com.swabunga.spell.event.SpellCheckEvent;
+
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.roller.RollerException;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.presentation.BasePageModel;
+import org.roller.presentation.RollerContext;
+import org.roller.presentation.RollerRequest;
+import org.roller.presentation.tags.calendar.CalendarModel;
+import org.roller.presentation.velocity.ContextLoader;
+import org.roller.presentation.weblog.formbeans.WeblogEntryFormEx;
+import org.roller.presentation.weblog.tags.EditWeblogCalendarModel;
+import org.roller.util.StringUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * All data needed to render the edit-weblog page.
+ * @author David M Johnson
+ */
+public class WeblogEntryPageModel extends BasePageModel
+{
+ private RollerRequest rollerRequest = null;
+ private PageMode mode = null;
+ private ArrayList words = null;
+ private WeblogEntryFormEx form;
+ private List comments = null;
+
+ public static class PageMode {
+ private String name;
+ public PageMode(String name) {
+ this.name = name;
+ }
+ public boolean equals(Object obj) {
+ return ((PageMode)obj).name.equals(name);
+ }
+ }
+
+ public static final PageMode EDIT_MODE = new PageMode("EDIT_MODE");
+ public static final PageMode SPELL_MODE = new PageMode("SPELL_MODE");
+ public static final PageMode PREVIEW_MODE = new PageMode("PREVIEW_MODE");
+
+
+ public WeblogEntryPageModel(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ ActionMapping mapping,
+ WeblogEntryFormEx form,
+ PageMode mode,
+ ArrayList words) throws RollerException
+ {
+ this(request, response, mapping, form, mode);
+ this.words = words;
+ }
+
+ public WeblogEntryPageModel(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ ActionMapping mapping,
+ WeblogEntryFormEx form,
+ PageMode mode) throws RollerException
+ {
+ super(request, response, mapping);
+ this.rollerRequest = RollerRequest.getRollerRequest(request);
+ this.form = form;
+ this.mode = mode;
+
+ getRequest().setAttribute("leftPage","/weblog/WeblogEditSidebar.jsp");
+
+ if (null != form.getId())
+ {
+ WeblogManager wmgr = rollerRequest.getRoller().getWeblogManager();
+ comments = wmgr.getComments(form.getId(), false);
+ }
+ }
+
+ public String getBaseURL()
+ {
+ return getRequest().getContextPath();
+ }
+
+ /**
+ * Get recent weblog entries using request parameters to determine
+ * username, date, and category name parameters.
+ * @return List of WeblogEntryData objects.
+ * @throws RollerException
+ */
+ public List getRecentPublishedEntries() throws RollerException
+ {
+ return rollerRequest.getRoller().getWeblogManager()
+ .getWeblogEntries(
+ rollerRequest.getWebsite(), // userName
+ null, // startDate
+ new Date(), // endDate
+ null, // catName
+ WeblogManager.PUB_ONLY, // status
+ new Integer(20)); // maxEntries
+ }
+
+ /**
+ * Get recent weblog entries using request parameters to determine
+ * username, date, and category name parameters.
+ * @return List of WeblogEntryData objects.
+ * @throws RollerException
+ */
+ public List getRecentDraftEntries() throws RollerException
+ {
+ return rollerRequest.getRoller().getWeblogManager()
+ .getWeblogEntries(
+ rollerRequest.getWebsite(),
+ null, // startDate
+ new Date(), // endDate
+ null, // catName
+ WeblogManager.DRAFT_ONLY, // status
+ new Integer(20)); // maxEntries
+ }
+
+ public List getHoursList()
+ {
+ List ret = new LinkedList();
+ for (int i=0; i<24; i++)
+ {
+ ret.add(new Integer(i));
+ }
+ return ret;
+ }
+
+ public List getMinutesList()
+ {
+ List ret = new LinkedList();
+ for (int i=0; i<60; i++)
+ {
+ ret.add(new Integer(i));
+ }
+ return ret;
+ }
+
+ public List getSecondsList()
+ {
+ return getMinutesList();
+ }
+
+ public boolean getHasPagePlugins()
+ {
+ return ContextLoader.hasPlugins();
+ }
+
+ public String getEditorPage()
+ {
+ // Select editor page selected by user (simple text editor,
+ // DHTML editor, Ekit Java applet, etc.
+ String editorPage = rollerRequest.getWebsite().getEditorPage();
+ if (StringUtils.isEmpty( editorPage ))
+ {
+ editorPage = "editor-text.jsp";
+ }
+ return editorPage;
+ }
+
+ public CalendarModel getCalendarModel() throws Exception
+ {
+ // Determine URL to self
+ ActionForward selfForward = getMapping().findForward("editWeblog");
+ String selfUrl= getRequest().getContextPath()+selfForward.getPath();
+
+ // Setup weblog calendar model
+ CalendarModel model = new EditWeblogCalendarModel(
+ rollerRequest, getResponse(), selfUrl );
+ return model;
+ }
+
+ public UserData getUser()
+ {
+ return rollerRequest.getUser();
+ }
+
+ public List getCategories() throws Exception
+ {
+ return rollerRequest.getRoller().getWeblogManager()
+ .getWeblogCategories(rollerRequest.getWebsite(), false);
+ }
+
+ public List getComments() throws Exception
+ {
+ return comments;
+ }
+
+ private WeblogEntryData weblogEntry;
+
+ public WeblogEntryData getWeblogEntry() throws RollerException
+ {
+ if (weblogEntry == null)
+ {
+ weblogEntry = new WeblogEntryData();
+ form.copyTo(weblogEntry, getRequest().getLocale());
+ weblogEntry.setWebsite(rollerRequest.getWebsite());
+ }
+ return weblogEntry;
+ }
+
+ public String getPermaLink() throws RollerException
+ {
+ String context = RollerContext
+ .getRollerContext(rollerRequest.getRequest())
+ .getAbsoluteContextUrl(rollerRequest.getRequest());
+ return context + getWeblogEntry().getPermaLink();
+ }
+
+ public String getSpellCheckHtml() throws RollerException
+ {
+ String text = getWeblogEntry().getText();
+ String escapeText = StringUtils.replace( text, "<", "{" );
+ escapeText = StringUtils.replace( escapeText, ">", "}" );
+ StringBuffer newText = new StringBuffer(escapeText);
+ ArrayList events = (ArrayList)
+ getRequest().getSession().getAttribute("spellCheckEvents");
+ SpellCheckEvent event = null;
+ String word = null;
+ int start = -1;
+ int end = -1;
+ String select = null;
+ for(ListIterator it=events.listIterator(events.size()); it.hasPrevious();)
+ {
+ event = (SpellCheckEvent)it.previous();
+ word = event.getInvalidWord();
+ start = event.getWordContextPosition();
+ end = start + word.length();
+ select = makeSelect(word, event.getSuggestions());
+
+ newText.replace( start, end, select );
+ }
+ escapeText = StringUtils.replace( newText.toString(), "}", ">" );
+ escapeText = StringUtils.replace( escapeText, "{", "<" );
+ return escapeText;
+ }
+
+ public static String makeSelect(String word, List words)
+ {
+ StringBuffer buf = new StringBuffer("<select name=\"");
+ buf.append("replacementWords\" style=\"font-size: 10px;\">");
+ buf.append("<option selected=\"selected\" value=\"").append(word);
+ buf.append("\">").append(word).append("</option>");
+ if (words == null || words.size() < 1)
+ {
+ buf.append("<option value=\"").append(word);
+ buf.append("\">No Suggestions</option>");
+ }
+ else
+ {
+ for (Iterator it2=words.iterator(); it2.hasNext();)
+ {
+ word = it2.next().toString();
+ buf.append("<option value=\"").append(word);
+ buf.append("\">").append(word).append("</option>");
+ }
+ }
+ buf.append("</select>");
+ return buf.toString();
+ }
+
+ /**
+ * @return Returns the mode.
+ */
+ public PageMode getMode() {
+ return mode;
+ }
+
+ /**
+ * @param mode The mode to set.
+ */
+ public void setMode(PageMode mode) {
+ this.mode = mode;
+ }
+
+ public boolean getEditMode()
+ {
+ return mode.equals(EDIT_MODE);
+ }
+
+ public boolean getSpellMode()
+ {
+ return mode.equals(SPELL_MODE);
+ }
+
+ public boolean getPreviewMode()
+ {
+ return mode.equals(PREVIEW_MODE);
+ }
+
+ /**
+ * @return Returns the words.
+ */
+ public ArrayList getWords() {
+ return words;
+ }
+ /**
+ * @param words The words to set.
+ */
+ public void setWords(ArrayList words) {
+ this.words = words;
+ }
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogQueryAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogQueryAction.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogQueryAction.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogQueryAction.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,62 @@
+
+package org.roller.presentation.weblog.actions;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.actions.DispatchAction;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.roller.RollerException;
+import org.roller.model.WeblogManager;
+import org.roller.presentation.RollerRequest;
+import org.roller.presentation.weblog.formbeans.WeblogQueryForm;
+
+
+/////////////////////////////////////////////////////////////////////////////
+/**
+ * Query weblog entries and display the results in tabular form.
+ *
+ * @struts.action path="/weblogQuery" name="weblogQueryForm"
+ * scope="session" parameter="method"
+ *
+ * @struts.action-forward name="weblogQuery.page" path="/weblog/WeblogQuery.jsp"
+ */
+public final class WeblogQueryAction extends DispatchAction
+{
+ //-----------------------------------------------------------------------
+ /**
+ * Respond to request to add a new or edit an existing weblog entry.
+ * Loads the appropriate model objects and forwards the request to
+ * the edit weblog page.
+ */
+ public ActionForward query(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException, RollerException
+ {
+ WeblogQueryForm form = (WeblogQueryForm)actionForm;
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ WeblogManager wmgr = rreq.getRoller().getWeblogManager();
+
+ request.setAttribute("model", new WeblogQueryPageModel(
+ request,
+ response,
+ mapping,
+ rreq.getWebsite(),
+ form.getCategoryId(),
+ form.getStartDateString(),
+ form.getEndDateString(),
+ form.getStatus(),
+ form.getMaxEntries()));
+
+ return mapping.findForward("weblogQuery.page");
+ }
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogQueryPageModel.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogQueryPageModel.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogQueryPageModel.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/actions/WeblogQueryPageModel.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,185 @@
+/*
+ * Created on Mar 10, 2004
+ */
+package org.roller.presentation.weblog.actions;
+
+import org.apache.struts.action.ActionMapping;
+import org.roller.RollerException;
+import org.roller.model.WeblogManager;
+import org.roller.pojos.WeblogCategoryData;
+import org.roller.pojos.WebsiteData;
+import org.roller.presentation.BasePageModel;
+import org.roller.presentation.RollerRequest;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * All data needed to render the edit-weblog page.
+ * @author David M Johnson
+ */
+public class WeblogQueryPageModel extends BasePageModel
+{
+ private RollerRequest rollerRequest = null;
+ private WebsiteData website = null;
+ private String category = null;
+ private Date startDate = null;
+ private Date endDate = null;
+ private String status = WeblogManager.PUB_ONLY;
+ private Integer maxEntries = null;
+
+ public WeblogQueryPageModel(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ ActionMapping mapping,
+ WebsiteData website,
+ String categoryId,
+ String start,
+ String end,
+ String status,
+ Integer maxEntries) throws RollerException
+ {
+ super(request, response, mapping);
+ rollerRequest = RollerRequest.getRollerRequest(request);
+
+ this.website = website;
+
+ if (null != categoryId && !categoryId.equals(""))
+ {
+ WeblogManager wmgr = rollerRequest.getRoller().getWeblogManager();
+ WeblogCategoryData cd = wmgr.retrieveWeblogCategory(categoryId);
+ category = cd.getPath();
+ }
+
+ final DateFormat df =
+ DateFormat.getDateInstance(DateFormat.SHORT, request.getLocale());
+ if (null != start && start.trim().length() > 0)
+ {
+ try
+ {
+ startDate = df.parse(start);
+ }
+ catch (ParseException e)
+ {
+ throw new RollerException("ERROR parsing start date.");
+ }
+ }
+
+ if (null != end && end.trim().length() > 0)
+ {
+ try
+ {
+ endDate = df.parse(end);
+ }
+ catch (ParseException e)
+ {
+ throw new RollerException("ERROR parsing end date.");
+ }
+ }
+
+ this.status = status;
+ this.maxEntries = maxEntries;
+ }
+
+ public String getBaseURL()
+ {
+ return getRequest().getContextPath();
+ }
+
+ /**
+ * Get recent weblog entries using request parameters to determine
+ * username, date, and category name parameters.
+ * @return List of WeblogEntryData objects.
+ * @throws RollerException
+ */
+ public List getRecentWeblogEntries() throws RollerException
+ {
+ return rollerRequest.getRoller().getWeblogManager().getWeblogEntries(
+ website,
+ startDate,
+ endDate,
+ category,
+ status,
+ maxEntries);
+ }
+
+ public List getCategories() throws Exception
+ {
+ List categories = rollerRequest.getRoller().getWeblogManager()
+ .getWeblogCategories(rollerRequest.getWebsite());
+ return categories;
+ }
+
+// public List getHoursList()
+// {
+// List ret = new LinkedList();
+// for (int i=0; i<24; i++)
+// {
+// ret.add(new Integer(i));
+// }
+// return ret;
+// }
+//
+// public List getMinutesList()
+// {
+// List ret = new LinkedList();
+// for (int i=0; i<60; i++)
+// {
+// ret.add(new Integer(i));
+// }
+// return ret;
+// }
+//
+// public List getSecondsList()
+// {
+// return getMinutesList();
+// }
+//
+// public boolean getHasPagePlugins()
+// {
+// return ContextLoader.hasPlugins();
+// }
+//
+// public String getEditorPage()
+// {
+// // Select editor page selected by user (simple text editor,
+// // DHTML editor, Ekit Java applet, etc.
+// String editorPage = rollerRequest.getWebsite().getEditorPage();
+// if (StringUtils.isEmpty( editorPage ))
+// {
+// editorPage = "editor-text.jsp";
+// }
+// return editorPage;
+// }
+//
+// public CalendarModel getCalendarModel() throws Exception
+// {
+// // Determine URL to self
+// ActionForward selfForward = getMapping().findForward("editWeblog");
+// String selfUrl= getRequest().getContextPath()+selfForward.getPath();
+//
+// // Setup weblog calendar model
+// CalendarModel model = new EditWeblogCalendarModel(
+// rollerRequest.getRequest(), getResponse(), selfUrl );
+// model.setDay( rollerRequest.getDate(true) );
+// return model;
+// }
+//
+// public UserData getUser()
+// {
+// return rollerRequest.getUser();
+// }
+//
+// public int getCommentCount(WeblogEntryData entry) throws Exception
+// {
+// // include Spam in comments count
+// List comments = rollerRequest.getRoller().getWeblogManager().getComments(entry.getId(), false);
+// if (comments == null) return 0;
+// return comments.size();
+// }
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/actions/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/actions/package.html?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/actions/package.html (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/actions/package.html Wed Jun 8 09:06:16 2005
@@ -0,0 +1,9 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title></title>
+</head>
+<body>
+Actions for weblog forms.<br>
+</body>
+</html>
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/BakeWeblogForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/BakeWeblogForm.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/BakeWeblogForm.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/BakeWeblogForm.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,17 @@
+package org.roller.presentation.weblog.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+/**
+ * Holds the name of the theme chosen or
+ * the template being edited.
+ *
+ * @struts.form name="bakeWeblogForm"
+ *
+ * @author llavandowska
+ */
+public class BakeWeblogForm extends ActionForm
+{
+
+
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CategoriesForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CategoriesForm.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CategoriesForm.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CategoriesForm.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,63 @@
+
+package org.roller.presentation.weblog.formbeans;
+
+import org.roller.RollerException;
+import org.roller.pojos.WeblogCategoryData;
+import org.roller.presentation.forms.WeblogCategoryForm;
+
+
+/**
+ * @struts.form name="categoriesForm"
+ */
+public class CategoriesForm extends WeblogCategoryForm
+{
+ private String mParentId = null;
+ private boolean mMoveContents = false;
+ private String mMoveToCategoryId = null;
+ private String[] mSelectedCategories = null;
+
+ public CategoriesForm()
+ {
+ super();
+ }
+
+ public CategoriesForm( WeblogCategoryData catData, java.util.Locale locale ) throws RollerException
+ {
+ super(catData, locale);
+ }
+
+ public String getParentId()
+ {
+ return mParentId;
+ }
+
+ public void setParentId(String parentId)
+ {
+ mParentId = parentId;
+ }
+
+ //-------------------------------------------------- Property moveContents
+
+ /** If true then contents should be moved when this Category is removed */
+ public boolean getMoveContents() { return mMoveContents; }
+
+ /** If true then contents should be moved when this Category is removed */
+ public void setMoveContents( boolean flag ) { mMoveContents = flag;}
+
+ //----------------------------------------------- Property moveToCategoryId
+
+ /** Category where contents should be moved if this Category is removed */
+ public String getMoveToCategoryId() { return mMoveToCategoryId; }
+
+ /** Category where contents should be moved if this Category is removed */
+ public void setMoveToCategoryId( String id ) { mMoveToCategoryId = id;}
+
+ //--------------------------------------------- Property selectedCategories
+
+ /** Get selected Categories */
+ public String[] getSelectedCategories() { return mSelectedCategories; }
+
+ /** Set selected Categories */
+ public void setSelectedCategories( String[] f ) {mSelectedCategories = f;}
+}
+
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CategoryDeleteForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CategoryDeleteForm.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CategoryDeleteForm.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CategoryDeleteForm.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,134 @@
+/*
+ * Created on Jan 19, 2004
+ */
+package org.roller.presentation.weblog.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+import java.util.List;
+
+/**
+ * @struts.form name="categoryDeleteForm"
+ */
+public class CategoryDeleteForm extends ActionForm
+{
+ private String name;
+ private String catid = null;
+ private String moveToWeblogCategoryId = null;
+ private List cats = null;
+ private Boolean inUse = Boolean.FALSE;
+ private Boolean confirmDelete = null;
+
+ /**
+ * @return
+ */
+ public List getCats()
+ {
+ return cats;
+ }
+
+ /**
+ * @return
+ */
+ public String getCatid()
+ {
+ return catid;
+ }
+
+ /**
+ * @return
+ */
+ public Boolean isInUse()
+ {
+ return inUse;
+ }
+
+ /**
+ * @return
+ */
+ public String getMoveToWeblogCategoryId()
+ {
+ return moveToWeblogCategoryId;
+ }
+
+ /**
+ * @param list
+ */
+ public void setCats(List list)
+ {
+ cats = list;
+ }
+
+ /**
+ * @param string
+ */
+ public void setCatid(String string)
+ {
+ catid = string;
+ }
+
+ /**
+ * @param b
+ */
+ public void setInUse(Boolean b)
+ {
+ inUse = b;
+ }
+
+ /**
+ * @param string
+ */
+ public void setMoveToWeblogCategoryId(String string)
+ {
+ moveToWeblogCategoryId = string;
+ }
+
+ /**
+ * @return
+ */
+ public Boolean isDelete()
+ {
+ return confirmDelete;
+ }
+
+ /**
+ * @param b
+ */
+ public void setConfirmDelete(Boolean b)
+ {
+ confirmDelete = b;
+ }
+
+ /**
+ * @return
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * @param string
+ */
+ public void setName(String string)
+ {
+ name = string;
+ }
+
+ /**
+ * @return Returns the delete.
+ */
+ public Boolean getConfirmDelete()
+ {
+ return confirmDelete;
+ }
+
+ /**
+ * @return Returns the inUse.
+ */
+ public Boolean getInUse()
+ {
+ return inUse;
+ }
+
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CommentFormEx.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CommentFormEx.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CommentFormEx.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/CommentFormEx.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,94 @@
+package org.roller.presentation.weblog.formbeans;
+
+import org.apache.struts.action.ActionMapping;
+import org.roller.RollerException;
+import org.roller.pojos.CommentData;
+import org.roller.presentation.forms.CommentForm;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Extends the WeblogEntryForm so that additional properties may be added.
+ * These properties are not persistent and are only needed for the UI.
+ *
+ * @struts.form name="commentFormEx"
+ * @author Lance Lavandowska
+ */
+public class CommentFormEx extends CommentForm
+{
+ private String[] deleteComments = null;
+ private String[] spamComments = null;
+ private String mEntryId = null;
+
+ public CommentFormEx()
+ {
+ super();
+ }
+
+ public CommentFormEx(CommentData entryData, java.util.Locale locale ) throws RollerException
+ {
+ super(entryData, locale);
+ }
+
+ public String[] getDeleteComments()
+ {
+ return deleteComments;
+ }
+
+ public void setDeleteComments(String[] deleteIds)
+ {
+ deleteComments = deleteIds;
+ }
+
+ /**
+ * @return
+ */
+ public String[] getSpamComments()
+ {
+ return spamComments;
+ }
+
+ public void setSpamComments(String[] spamIds)
+ {
+ spamComments = spamIds;
+ }
+
+ /**
+ * @return
+ */
+ public String getWeblogEntryId()
+ {
+ return mEntryId;
+ }
+
+ /**
+ * @param string
+ */
+ public void setWeblogEntryId(String string)
+ {
+ mEntryId = string;
+ }
+
+ /**
+ * @see org.apache.struts.action.ActionForm#reset(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest)
+ */
+ public void reset(ActionMapping mapping, HttpServletRequest request)
+ {
+ super.reset(mapping, request);
+ deleteComments = null;
+ spamComments = null;
+ }
+
+ /**
+ * @see org.apache.struts.action.ActionForm#reset(org.apache.struts.action.ActionMapping, javax.servlet.ServletRequest)
+ */
+ public void reset(ActionMapping mapping, ServletRequest request)
+ {
+ super.reset(mapping, request);
+ deleteComments = null;
+ spamComments = null;
+ }
+
+}
+
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/ImportEntriesForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/ImportEntriesForm.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/ImportEntriesForm.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/ImportEntriesForm.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,50 @@
+/*
+ * Created on Apr 1, 2004
+ */
+package org.roller.presentation.weblog.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+import java.util.ArrayList;
+
+/**
+ * @struts.form name="importEntries"
+ * @author lance.lavandowska
+ */
+public class ImportEntriesForm extends ActionForm
+{
+ private ArrayList xmlFiles = new ArrayList();
+ private String importFileName;
+
+ /**
+ * @return Returns the xmlFiles.
+ */
+ public ArrayList getXmlFiles()
+ {
+ return this.xmlFiles;
+ }
+
+ /**
+ * @param xmlFiles The xmlFiles to set.
+ */
+ public void setXmlFiles(ArrayList xmlFiles)
+ {
+ this.xmlFiles = xmlFiles;
+ }
+
+ /**
+ * @return Returns the importFileName.
+ */
+ public String getImportFileName()
+ {
+ return this.importFileName;
+ }
+
+ /**
+ * @param importFileName The importFileName to set.
+ */
+ public void setImportFileName(String importFileName)
+ {
+ this.importFileName = importFileName;
+ }
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/TrackbackForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/TrackbackForm.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/TrackbackForm.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/TrackbackForm.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,58 @@
+/*
+ * Created on Apr 14, 2003
+ */
+package org.roller.presentation.weblog.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+/**
+ * Data to be sent in a Trackback.
+ * @author David M Johnson
+ * @struts.form name="trackbackForm"
+ */
+public class TrackbackForm extends ActionForm
+{
+ private String mTrackbackURL = null;
+ private String mEntryId = null;
+
+ /**
+ *
+ */
+ public TrackbackForm()
+ {
+ super();
+ }
+
+ /**
+ * @return
+ */
+ public String getEntryId()
+ {
+ return mEntryId;
+ }
+
+ /**
+ * @return
+ */
+ public String getTrackbackURL()
+ {
+ return mTrackbackURL;
+ }
+
+ /**
+ * @param string
+ */
+ public void setEntryId(String string)
+ {
+ mEntryId = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setTrackbackURL(String string)
+ {
+ mTrackbackURL = string;
+ }
+
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogCategoryFormEx.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogCategoryFormEx.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogCategoryFormEx.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogCategoryFormEx.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,77 @@
+package org.roller.presentation.weblog.formbeans;
+
+import org.roller.RollerException;
+import org.roller.pojos.WeblogCategoryData;
+import org.roller.presentation.forms.WeblogCategoryForm;
+
+/**
+ * Extends the WeblogCategoryForm so that additional properties may be added.
+ * These properties are not persistent and are only needed for the UI.
+ *
+ * @struts.form name="weblogCategoryFormEx"
+ */
+public class WeblogCategoryFormEx extends WeblogCategoryForm
+{
+ private String mParentId = null;
+ private boolean mMoveContents = false;
+ private String mMoveToWeblogCategoryId = null;
+
+ public WeblogCategoryFormEx()
+ {
+ super();
+ }
+
+ public WeblogCategoryFormEx(WeblogCategoryData catData, java.util.Locale locale) throws RollerException
+ {
+ super(catData, locale);
+ }
+
+ public String getParentId()
+ {
+ return mParentId;
+ }
+
+ public void setParentId(String parentId)
+ {
+ mParentId = parentId;
+ }
+
+ /** If true then contents should be moved when this folder is removed */
+ public boolean getMoveContents()
+ {
+ return mMoveContents;
+ }
+
+ public void setMoveContents(boolean flag)
+ {
+ mMoveContents = flag;
+ }
+
+ /** WeblogCategory where contents should be moved if this cat is removed */
+ public String getMoveToWeblogCategoryId()
+ {
+ return mMoveToWeblogCategoryId;
+ }
+
+ public void setMoveToWeblogCategoryId(String id)
+ {
+ mMoveToWeblogCategoryId = id;
+ }
+
+ /**
+ * @see org.roller.presentation.forms.WeblogCategoryForm#copyFrom(org.roller.pojos.WeblogCategoryData)
+ */
+ public void copyFrom(WeblogCategoryData dataHolder, java.util.Locale locale) throws RollerException
+ {
+ super.copyFrom(dataHolder, locale);
+ try
+ {
+ mParentId = dataHolder.getParent().getId();
+ }
+ catch (RollerException e)
+ {
+ throw new RuntimeException("ERROR fetching parent category.");
+ }
+ }
+
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,363 @@
+package org.roller.presentation.weblog.formbeans;
+
+import org.apache.commons.lang.StringUtils;
+import org.roller.RollerException;
+import org.roller.pojos.CommentData;
+import org.roller.pojos.WeblogEntryData;
+import org.roller.presentation.RollerRequest;
+import org.roller.presentation.forms.WeblogEntryForm;
+import org.roller.util.DateUtil;
+
+import java.sql.Timestamp;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.Locale;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Extends the WeblogEntryForm so that additional properties may be added.
+ * @struts.form name="weblogEntryFormEx"
+ * @author dmj
+ */
+public class WeblogEntryFormEx extends WeblogEntryForm
+{
+ private String mCategoryId = null;
+ private Date mDate = new Date();
+ private String mDateString = null;
+ private Integer mHours = new Integer(0);
+ private Integer mMinutes = new Integer(0);
+ private Integer mSeconds = new Integer(0);
+ private String[] mReplacementWords = null;
+ private Boolean mSendWeblogsPing = Boolean.FALSE;
+ private String[] pluginsArray = new String[0];
+ private String[] deleteComments = new String[0];
+ private String[] spamComments = new String[0];
+ private String trackbackUrl = null;
+
+ public WeblogEntryFormEx()
+ {
+ super();
+ }
+
+ public WeblogEntryFormEx(WeblogEntryData entryData, java.util.Locale locale)
+ throws RollerException
+ {
+ copyFrom(entryData, locale);
+ }
+
+ /**
+ * @param request
+ * @param response
+ */
+ public void initNew(HttpServletRequest request, HttpServletResponse response)
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if (rreq.getWebsite().getDefaultPlugins() != null)
+ {
+ setPluginsArray(StringUtils.split(
+ rreq.getWebsite().getDefaultPlugins(), ",") );
+ }
+ allowComments = Boolean.TRUE;
+ updateTime = new Timestamp(new Date().getTime());
+ pubTime = updateTime;
+ initPubTimeDateString(request.getLocale());
+ }
+
+ /**
+ * Copy values from this Form to the WeblogEntryData.
+ */
+ public void copyTo(WeblogEntryData entry, Locale locale)
+ throws RollerException
+ {
+ super.copyTo(entry, locale);
+ final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
+ final Date newDate;
+ try
+ {
+ newDate = df.parse(getDateString());
+ }
+ catch (ParseException e)
+ {
+ throw new RollerException("ERROR parsing date.");
+ }
+ final Calendar cal = Calendar.getInstance(locale);
+ cal.setTime(newDate);
+ cal.set(Calendar.HOUR_OF_DAY, getHours().intValue());
+ cal.set(Calendar.MINUTE, getMinutes().intValue());
+ cal.set(Calendar.SECOND, getSeconds().intValue());
+ entry.setPubTime(new Timestamp(cal.getTimeInMillis()));
+
+ entry.setPlugins( StringUtils.join(this.pluginsArray,",") );
+
+ // checkboxes don't send a value for unchecked
+ if (entry.getPublishEntry() == null)
+ {
+ entry.setPublishEntry(Boolean.FALSE);
+ }
+
+ entry.setCategoryId(getCategoryId());
+ }
+
+ /**
+ * Copy values from WeblogEntryData to this Form.
+ */
+ public void copyFrom(WeblogEntryData entry, Locale locale)
+ throws RollerException
+ {
+ super.copyFrom(entry, locale);
+ mCategoryId = entry.getCategory().getId();
+
+ initPubTimeDateString(locale);
+
+ if (entry.getPlugins() != null)
+ {
+ pluginsArray = StringUtils.split(entry.getPlugins(), ",");
+ }
+
+ populateSpamComments(entry);
+ }
+
+ /**
+ * Populate the spamComments array for this entry.
+ * @param entry
+ */
+ private void populateSpamComments(WeblogEntryData entry)
+ {
+ ArrayList spamList = new ArrayList();
+ Iterator it = entry.getComments(false).iterator();
+ while (it.hasNext()) {
+ CommentData comment = (CommentData)it.next();
+ if (comment.getSpam().booleanValue())
+ {
+ spamList.add(comment.getId());
+ }
+ }
+ spamComments = (String[])spamList.toArray(new String[spamList.size()]);
+ }
+
+ /**
+ * Localize the PubTime date string.
+ * @param locale
+ */
+ private void initPubTimeDateString(Locale locale)
+ {
+ Calendar cal = Calendar.getInstance(locale);
+ cal.setTime(getPubTime());
+ mHours = new Integer(cal.get(Calendar.HOUR_OF_DAY));
+ mMinutes = new Integer(cal.get(Calendar.MINUTE));
+ mSeconds = new Integer(cal.get(Calendar.SECOND));
+ DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
+ mDateString = df.format(getPubTime());
+ }
+
+ /**
+ * Returns the category ID.
+ * @return String
+ */
+ public String getCategoryId()
+ {
+ return mCategoryId;
+ }
+
+ public Date getDate()
+ {
+ return mDate;
+ }
+
+ /**
+ * Date string formatted using SHORT format from user's locale.
+ * @return Returns the dateString.
+ */
+ public String getDateString()
+ {
+ return mDateString;
+ }
+
+ /**
+ * @return Returns the hours.
+ */
+ public Integer getHours()
+ {
+ return mHours;
+ }
+
+ /**
+ * @return Returns the minutes.
+ */
+ public Integer getMinutes()
+ {
+ return mMinutes;
+ }
+
+ /**
+ * Returns the array of replacement words.
+ * @return String[]
+ */
+ public String[] getReplacementWords()
+ {
+ return mReplacementWords;
+ }
+
+ /**
+ * @return Returns the seconds.
+ */
+ public Integer getSeconds()
+ {
+ return mSeconds;
+ }
+
+ /**
+ * @return
+ */
+ public Boolean getSendWeblogsPing()
+ {
+ return mSendWeblogsPing;
+ }
+
+ /**
+ * Sets the categoryName.
+ * @param categoryName The categoryName to set
+ */
+ public void setCategoryId(String categoryId)
+ {
+ this.mCategoryId = categoryId;
+ }
+
+ /**
+ * Date string formatted using SHORT format from user's locale.
+ * @param dateString The dateString to set.
+ */
+ public void setDateString(String dateString) throws ParseException
+ {
+ mDateString = dateString;
+ }
+
+ /**
+ * @param hours The hours to set.
+ */
+ public void setHours(Integer hours)
+ {
+ mHours = hours;
+ }
+
+ /**
+ * @param minutes The minutes to set.
+ */
+ public void setMinutes(Integer minutes)
+ {
+ mMinutes = minutes;
+ }
+
+ public void setReplacementWords(String[] words)
+ {
+ this.mReplacementWords = words;
+ }
+
+ /**
+ * @param seconds The seconds to set.
+ */
+ public void setSeconds(Integer seconds)
+ {
+ mSeconds = seconds;
+ }
+
+ /**
+ * @param boolean1
+ */
+ public void setSendWeblogsPing(Boolean boolean1)
+ {
+ mSendWeblogsPing = boolean1;
+ }
+
+ public String getDay()
+ {
+ java.util.Date theDay = getPubTime();
+ theDay = theDay!=null ? theDay : new java.util.Date();
+ return DateUtil.format8chars(theDay);
+ }
+
+ /**
+ * @return
+ */
+ public String[] getPluginsArray()
+ {
+ return pluginsArray;
+ }
+
+ /**
+ * @param strings
+ */
+ public void setPluginsArray(String[] strings)
+ {
+ pluginsArray = strings;
+ }
+
+ public void doReset(
+ org.apache.struts.action.ActionMapping mapping,
+ javax.servlet.ServletRequest request)
+ {
+ super.doReset(mapping, request);
+
+ pluginsArray = new String[0];
+
+ // reset time fields to current time
+ Calendar cal = Calendar.getInstance(request.getLocale());
+ Date now = new Date();
+ cal.setTime(now);
+ mHours = new Integer(cal.get(Calendar.HOUR_OF_DAY));
+ mMinutes = new Integer(cal.get(Calendar.MINUTE));
+ mSeconds = new Integer(cal.get(Calendar.SECOND));
+ DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, request.getLocale());
+ mDateString = df.format(now);
+ }
+
+ /**
+ * @return Returns the selectedComments.
+ */
+ public String[] getDeleteComments() {
+ return deleteComments;
+ }
+
+ /**
+ * @param selectedComments The selectedComments to set.
+ */
+ public void setDeleteComments(String[] selectedComments) {
+ this.deleteComments = selectedComments;
+ }
+
+ /**
+ * @return Returns the commentsToMarkAsSpam.
+ */
+ public String[] getSpamComments() {
+ return spamComments;
+ }
+
+ /**
+ * @param commentsToMarkAsSpam The commentsToMarkAsSpam to set.
+ */
+ public void setSpamComments(String[] commentsToMarkAsSpam) {
+ this.spamComments = commentsToMarkAsSpam;
+ }
+
+ /**
+ * @return Returns the trackbackUrl.
+ */
+ public String getTrackbackUrl()
+ {
+ return trackbackUrl;
+ }
+ /**
+ * @param trackbackUrl The trackbackUrl to set.
+ */
+ public void setTrackbackUrl(String trackbackUrl)
+ {
+ this.trackbackUrl = trackbackUrl;
+ }
+}
+
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogQueryForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogQueryForm.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogQueryForm.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/WeblogQueryForm.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,152 @@
+/*
+ * Created on Mar 25, 2004
+ */
+package org.roller.presentation.weblog.formbeans;
+
+import org.apache.struts.action.ActionMapping;
+
+import java.text.DateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import javax.servlet.ServletRequest;
+
+/**
+ * Form allows user to set Weblog Entry query and export parameters.
+ *
+ * @struts.form name="weblogQueryForm"
+ * @author lance.lavandowska
+ */
+public class WeblogQueryForm
+ extends org.apache.struts.action.ActionForm
+ implements java.io.Serializable
+{
+ private String mEndDateString;
+ private String mStartDateString;
+ private String mFileBy = "month";
+ private String mExportFormat = "rss";
+ private String mCategoryId = null;
+ private Integer mMaxEntries = new Integer(20);
+ private String mStatus = "ALL";
+
+ // TODO : Implement option for RSS2 or Atom
+
+ public void reset( ActionMapping mapping, ServletRequest request)
+ {
+ // reset time fields to current time
+ Calendar cal = Calendar.getInstance(request.getLocale());
+ Date now = new Date();
+ cal.setTime(now);
+
+ DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, request.getLocale());
+ mEndDateString = df.format( now );
+
+ cal.set(Calendar.DAY_OF_MONTH, 1);
+ mStartDateString = df.format( cal.getTime() );
+ }
+
+ /**
+ * @return Returns the mStartDateString.
+ */
+ public String getStartDateString()
+ {
+ return this.mStartDateString;
+ }
+ /**
+ * @param startDateString The mStartDateString to set.
+ */
+ public void setStartDateString(String startDateString)
+ {
+ this.mStartDateString = startDateString;
+ }
+
+ /**
+ * @return Returns the mDateString.
+ */
+ public String getEndDateString()
+ {
+ return this.mEndDateString;
+ }
+
+ /**
+ * @param dateString The mDateString to set.
+ */
+ public void setEndDateString(String dateString)
+ {
+ this.mEndDateString = dateString;
+ }
+
+ /**
+ * @return Returns the mFileBy.
+ */
+ public String getFileBy()
+ {
+ return this.mFileBy;
+ }
+
+ /**
+ * @param fileBy The mFileBy to set.
+ */
+ public void setFileBy(String fileBy)
+ {
+ this.mFileBy = fileBy;
+ }
+
+ /**
+ * @return Returns the mExportFormat.
+ */
+ public String getExportFormat()
+ {
+ return this.mExportFormat;
+ }
+
+ /**
+ * @param exportFormat The mExportFormat to set.
+ */
+ public void setExportFormat(String exportFormat)
+ {
+ this.mExportFormat = exportFormat;
+ }
+ /**
+ * @return Returns the category.
+ */
+ public String getCategoryId()
+ {
+ return mCategoryId;
+ }
+ /**
+ * @param category The category to set.
+ */
+ public void setCategoryId(String category)
+ {
+ mCategoryId = category;
+ }
+ /**
+ * @return Returns the maxEntries.
+ */
+ public Integer getMaxEntries()
+ {
+ return mMaxEntries;
+ }
+ /**
+ * @param maxEntries The maxEntries to set.
+ */
+ public void setMaxEntries(Integer maxEntries)
+ {
+ mMaxEntries = maxEntries;
+ }
+ /**
+ * @return Returns the status.
+ */
+ public String getStatus()
+ {
+ return mStatus;
+ }
+ /**
+ * @param status The status to set.
+ */
+ public void setStatus(String status)
+ {
+ mStatus = status;
+ }
+}
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/package.html?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/package.html (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/formbeans/package.html Wed Jun 8 09:06:16 2005
@@ -0,0 +1,9 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title></title>
+</head>
+<body>
+Form beans for weblog forms.<br>
+</body>
+</html>
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/package.html?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/package.html (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/package.html Wed Jun 8 09:06:16 2005
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title></title>
+</head>
+<body>
+
+<p>
+Struts Actions, Form beans, and JSP tags for Weblog Entry related things
+such as the Weblog Entry Editor, Weblog Comments, Weblog Categories, and such.
+</p>
+
+</body>
+</html>
Added: incubator/roller/trunk/src/org/roller/presentation/weblog/search/FieldConstants.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/weblog/search/FieldConstants.java?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/weblog/search/FieldConstants.java (added)
+++ incubator/roller/trunk/src/org/roller/presentation/weblog/search/FieldConstants.java Wed Jun 8 09:06:16 2005
@@ -0,0 +1,33 @@
+/*
+ * Created on Jul 19, 2003
+ *
+ * Authored by: Mindaugas Idzelis (min@idzelis.com)
+ */
+package org.roller.presentation.weblog.search;
+
+
+/**
+ * @author aim4min
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public final class FieldConstants
+{
+ //~ Static fields/initializers =============================================
+
+ public static final String ANCHOR = "anchor";
+ public static final String UPDATED = "updated";
+ public static final String ID = "id";
+ public static final String USERNAME = "username";
+ public static final String CATEGORY = "cat";
+ public static final String TITLE = "title";
+ public static final String PUBLISHED = "published";
+ public static final String CONTENT = "content";
+ public static final String CONTENT_STORED = "content_stored";
+ public static final String C_CONTENT = "comment";
+ public static final String C_EMAIL = "email";
+ public static final String C_NAME = "name";
+ public static final String CONSTANT = "constant";
+ public static final String CONSTANT_V = "v"; //must be lowercase, or match the transform rules of the analyzer
+}