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/08/08 16:43:03 UTC
svn commit: r230810 [5/6] - in /incubator/roller/branches/roller_2.0: ./
contrib/plugins/src/org/roller/presentation/velocity/plugins/acronyms/
contrib/plugins/src/org/roller/presentation/velocity/plugins/convertbreaks/
contrib/plugins/src/org/roller/p...
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/ThemeEditorAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/ThemeEditorAction.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/ThemeEditorAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/ThemeEditorAction.java Mon Aug 8 07:41:04 2005
@@ -1,651 +1,429 @@
package org.roller.presentation.website.actions;
-import java.io.BufferedReader;
-import java.io.FileReader;
import java.io.IOException;
+import java.util.Collection;
import java.util.Date;
-import java.util.HashMap;
import java.util.Iterator;
-
-import javax.servlet.ServletContext;
+import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
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.actions.DispatchAction;
import org.roller.RollerException;
+import org.roller.pojos.WeblogTemplate;
+import org.roller.pojos.WebsiteData;
+import org.roller.presentation.RollerRequest;
+import org.roller.ThemeNotFoundException;
import org.roller.config.RollerRuntimeConfig;
+import org.roller.model.Roller;
import org.roller.model.RollerFactory;
+import org.roller.model.ThemeManager;
import org.roller.model.UserManager;
-import org.roller.pojos.PageData;
-import org.roller.pojos.WebsiteData;
-import org.roller.presentation.RollerContext;
-import org.roller.presentation.RollerRequest;
+import org.roller.pojos.Theme;
+import org.roller.pojos.ThemeTemplate;
import org.roller.presentation.RollerSession;
import org.roller.presentation.pagecache.PageCacheFilter;
-import org.roller.presentation.velocity.PreviewResourceLoader;
-import org.roller.presentation.website.ThemeCache;
-import org.roller.presentation.website.formbeans.ThemeEditorForm;
-
-/////////////////////////////////////////////////////////////////////////////
/**
- * Actions for theme chooser page.
- *
- * @author llavandowska
- *
+ * Struts Action class that handles the website theme chooser page.
+ *
+ * @author Allen Gilliland
+ *
* @struts.action name="themeEditorForm" path="/editor/themeEditor"
* scope="session" parameter="method"
- *
+ *
* @struts.action-forward name="editTheme.page" path="/website/theme-editor.jsp"
*/
-public class ThemeEditorAction extends DispatchAction
-{
- private static final String SESSION_TEMPLATE = "weblog.template";
- private static final String LAST_THEME = "weblog.prev.theme";
- private static Log mLogger =
- LogFactory.getFactory().getInstance(ThemeEditorAction.class);
- private ThemeCache themeCache = ThemeCache.getInstance();
-
- /**
- * Take user to edit theme page.
- *
- * @param mapping Struts action mapping.
- * @param form Theme editor form bean.
- * @param request Servlet request.
- * @param response Servlet response.
- * @return Forward to edit-website page.
- * @throws IOException
- * @throws ServletException
- */
- //-----------------------------------------------------------------------
- public ActionForward edit(
- ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException
- {
- ActionErrors errors = new ActionErrors();
- ActionForward forward = mapping.findForward("editTheme.page");
- try
- {
- RollerSession rollerSession = RollerSession.getRollerSession(request);
- RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rollerSession.isUserAuthorizedToAdmin() )
- {
- loadThemes( rreq, errors, true);
- ThemeEditorForm teForm = (ThemeEditorForm)form;
-
- teForm.setThemeName(null); // start fresh
-
- if (mLogger.isDebugEnabled())
- {
- mLogger.debug("loaded themes, form="+teForm);
- }
-
-// // if a custom template has been previewed already,
-// // it'll be in memory.
-// String template =
-// (String)request.getSession().getAttribute(SESSION_TEMPLATE);
-//
-// if (mLogger.isDebugEnabled())
-// {
-// mLogger.debug("got template="+template);
-// }
-//
-// if (StringUtils.isNotEmpty(template))
-// {
-// // load the template in memory
-// teForm.setThemeTemplate( template );
-//
-// if (mLogger.isDebugEnabled())
-// {
-// mLogger.debug("set template");
-// }
-// }
-// // otherwise the "custom" template will need be loaded
-// // from the current page.
-// else
-// {
-
- // clear any previously set themes
- clearThemePages(rreq,
- (String)request.getSession(true).getAttribute(LAST_THEME));
-
- // load the current default page
- PageData page = getDefaultPage( request );
- teForm.setThemeTemplate( page.getTemplate() );
-
-
- //}
- }
- else
- {
- forward = mapping.findForward("access-denied");
- }
- }
- catch (Exception e)
- {
- mLogger.error("ERROR in action",e);
- throw new ServletException(e);
- }
- return forward;
- }
-
- //-----------------------------------------------------------------------
- /**
- * Load the template/theme to be previewed. The template must be stashed
- * in PreviewResourceLoader so that PreviewServlet can find it.
- *
- * @param mapping Struts action mapping.
- * @param form Theme editor form bean.
- * @param request Servlet request.
- * @param response Servlet response.
- * @return Forward to edit-website page.
- * @throws IOException
- * @throws ServletException
- */
- public ActionForward preview(
- ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException
- {
- ActionErrors errors = new ActionErrors();
- ActionForward forward = mapping.findForward("editTheme.page");
- try
- {
- RollerSession rollerSession = RollerSession.getRollerSession(request);
- RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rollerSession.isUserAuthorizedToAdmin() )
- {
- HttpSession session = request.getSession();
- ThemeEditorForm teForm = (ThemeEditorForm)form;
-
- String theme = teForm.getThemeName();
- ServletContext ctx = rreq.getServletContext();
- RollerContext rollerContext =
- RollerContext.getRollerContext( ctx );
-
- boolean showCustom = false;
- if ( !"Custom".equals( theme ) )
- {
- // if it isn't a custom template, load it from file
- String sb = this.readTheme(rollerContext, theme);
- teForm.setThemeTemplate( sb );
-
- // clear any previously set themes
- clearThemePages(rreq,
- (String) session.getAttribute(LAST_THEME));
-
- setThemePages(request, theme);
- session.setAttribute(LAST_THEME, theme);
- }
- else
- {
- showCustom = true;
- clearThemePages(rreq,
- (String) session.getAttribute(LAST_THEME));
-
- session.removeAttribute(LAST_THEME);
- //session.removeAttribute(SESSION_TEMPLATE);
-
- //UserData ud = rreq.getUser();
- //PreviewResourceLoader.clearAllTemplates( ud.getUserName());
- }
- loadThemes( rreq, errors, showCustom);
-
- // put the template where PreviewServlet
- // will be able to find it
- PageData page = getDefaultPage( request );
- PreviewResourceLoader.setTemplate(page.getId(),
- teForm.getThemeTemplate(), RollerSession.getRollerSession(request).getCurrentWebsite().getHandle() );
-
- // save the template in session for later editing
- session.setAttribute(SESSION_TEMPLATE,
- teForm.getThemeTemplate() );
- }
- else
- {
- forward = mapping.findForward("access-denied");
- }
- }
- catch (Exception e)
- {
- mLogger.error("ERROR in action",e);
- throw new ServletException(e);
- }
- return forward;
- }
-
- //-----------------------------------------------------------------------
- /**
- * Save the selected Theme or edited template as the Weblog pages template.
+public class ThemeEditorAction extends DispatchAction {
+
+ private static Log mLogger =
+ LogFactory.getFactory().getInstance(ThemeEditorAction.class);
+
+
+ /**
+ * Default action method.
+ */
+ public ActionForward unspecified(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException {
+
+ // make "edit" our default action
+ return this.edit(mapping, actionForm, request, response);
+ }
+
+
+ /**
+ * Base action method.
*
- * @param mapping Struts action mapping.
- * @param form Theme editor form bean.
- * @param request Servlet request.
- * @param response Servlet response.
- * @return Forward to edit-website page.
- * @throws IOException
- * @throws ServletException
- */
- public ActionForward save(
- ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException
- {
- ActionErrors errors = new ActionErrors();
- ActionForward forward = mapping.findForward("editTheme.page");
- try
- {
- RollerSession rollerSession = RollerSession.getRollerSession(request);
- RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rollerSession.isUserAuthorizedToAdmin() )
- {
- loadThemes( rreq, errors, true);
- ThemeEditorForm teForm = (ThemeEditorForm)form;
- String theme = teForm.getThemeName();
- ServletContext ctx = rreq.getServletContext();
- RollerContext rollerContext =
- RollerContext.getRollerContext( ctx );
-
- WebsiteData website = RollerSession.getRollerSession(request).getCurrentWebsite();
-
- // load the template either from the Form
- // or from the disk (if its a stock Theme).
- String template = "";
- if ( "Custom".equals( theme ) )
- {
- // use the edited template
- template = teForm.getThemeTemplate();
- }
- else
- {
- // Figure path to new user theme
- String sb = this.readTheme(rollerContext, theme);
- template = sb;
- }
-
- // clear the places holding onto the template
- PreviewResourceLoader.clearAllTemplates(website.getHandle());
- request.getSession().removeAttribute(SESSION_TEMPLATE);
-
- // store the template in the page
- UserManager mgr = RollerFactory.getRoller().getUserManager();
- PageData page = getDefaultPage( request );
-
- page.setTemplate( template );
- mgr.storePage( page);
+ * Shows the theme chooser page with this users current theme selected.
+ **/
+ public ActionForward edit(
+ ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException {
+
+ ActionErrors errors = new ActionErrors();
+ ActionForward forward = mapping.findForward("editTheme.page");
+ try {
+ RollerSession rses = RollerSession.getRollerSession(request);
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rses.isUserAuthorizedToAdmin() ) {
- saveThemePages( rreq, theme);
+ // get users current theme and our themes list
+ Roller roller = RollerFactory.getRoller();
+ ThemeManager themeMgr = roller.getThemeManager();
- // put them into the PreviewResourceLoader also
- setThemePages(request, theme);
-
- // clear the page cache
- PageCacheFilter.removeFromCache(request, RollerSession.getRollerSession(request).getCurrentWebsite());
- teForm.setThemeName("Custom");
- }
- else
- {
- forward = mapping.findForward("access-denied");
- }
- }
- catch (Exception e)
- {
- mLogger.error("ERROR in action",e);
- throw new ServletException(e);
- }
- return forward;
- }
-
-
- /**
- * Cancel choosing of theme.
- *
- * @param mapping Struts action mapping.
- * @param form Theme editor form bean.
- * @param request Servlet request.
- * @param response Servlet response.
- * @return Forward to edit-website page.
- * @throws IOException
- * @throws ServletException
- */
- public ActionForward cancel(
- ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException
- {
- ActionForward forward = mapping.findForward("editTheme");
- try
- {
- RollerSession rollerSession = RollerSession.getRollerSession(request);
- RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rollerSession.isUserAuthorizedToAdmin() )
- {
- // clear the page cache
- WebsiteData website = RollerSession.getRollerSession(request).getCurrentWebsite();
- PageCacheFilter.removeFromCache( request, website );
- ThemeEditorForm teForm = (ThemeEditorForm)form;
-
- // clear the places holding onto the template
- PreviewResourceLoader.clearAllTemplates( website.getHandle() );
- request.getSession().removeAttribute(SESSION_TEMPLATE);
- teForm.setThemeName("Custom");
- }
- else
- {
- forward = mapping.findForward("access-denied");
- }
- }
- catch (Exception e)
- {
- mLogger.error("ERROR in action",e);
- throw new ServletException(e);
- }
- return forward;
- }
-
- /**
- * Load the Themes from disk ONCE per user session.
- *
- * @param rreq
- * @param errors
- */
- private void loadThemes(
- RollerRequest rreq, ActionErrors errors, boolean listCustom)
- {
- HttpSession session = rreq.getRequest().getSession(false);
- try
- {
- // Figure path to new user templates
- ServletContext ctx = rreq.getServletContext();
- String[] themes = null;
- if (ctx.getAttribute("themeStore") != null)
- {
- themes = (String[]) ctx.getAttribute("themeStore");
- }
- else
- {
- RollerContext rollerContext =
- RollerContext.getRollerContext( ctx );
- themes = rollerContext.getThemeNames();
- ctx.setAttribute("themeStore", themes);
- }
-
- // need to insert "Custom" as the top theme.
- // "Custom" means the hand-edited template.
- if (listCustom)
- {
- // probably should use arraycopy here?
- String[] themes2 = new String[ themes.length+1 ];
- themes2[0] = "Custom";
- for (int i=1; i<themes2.length; i++)
- {
- themes2[i] = themes[i-1];
- }
- themes = themes2;
- }
- session.setAttribute( "themes", themes );
- }
- catch (Exception e)
- {
- errors.add(ActionErrors.GLOBAL_ERROR,
- new ActionError("error.editing.user", e.toString()));
- }
- }
-
- /**
- * Get the Default Page for the website specified by request.
- *
- * @param rreq
- * @return PageData
- */
- private PageData getDefaultPage(HttpServletRequest request) throws RollerException
- {
- try
- {
- UserManager mgr = RollerFactory.getRoller().getUserManager();
- WebsiteData wd = RollerSession.getRollerSession(request).getCurrentWebsite();
- String defaultPageId = wd.getDefaultPageId();
- return mgr.retrievePage( defaultPageId );
- }
- catch (Exception e)
- {
+ String username = rses.getAuthenticatedUser().getUserName();
+ WebsiteData website = rses.getCurrentWebsite();
+ String currentTheme = website.getEditorTheme();
+ List themes = themeMgr.getEnabledThemesList();
+
+ // if we allow custom themes then add it to the end of the list
+ if(RollerRuntimeConfig.getBooleanProperty("themes.customtheme.allowed"))
+ themes.add(Theme.CUSTOM);
+
+ // on the first pass just show a preview of the current theme
+ request.setAttribute("previewTheme", currentTheme);
+ request.setAttribute("currentTheme", currentTheme);
+ request.setAttribute("themesList", themes);
+
+ mLogger.debug("Previewing theme "+currentTheme+" to "+username);
+
+ } else {
+ forward = mapping.findForward("access-denied");
+ }
+
+ } catch (Exception e) {
mLogger.error("ERROR in action",e);
- throw new RollerException( e );
- }
- }
+ throw new ServletException(e);
+ }
+
+ return forward;
+ }
+
/**
- * Loads theme into preview resource loader.
- *
- * @param rreq
- * @param theme
- * @throws RollerException
+ * Preview action method.
+ *
+ * Happens when the user selects a new preview theme from the dropdown menu.
+ * Shows a new preview theme.
*/
- private void setThemePages( HttpServletRequest request, String theme )
- throws RollerException
- {
- RollerContext rollerContext =
- RollerContext.getRollerContext(request);
-
- try
- {
- HashMap pages = rollerContext.readThemeMacros(theme);
- Iterator iter = pages.keySet().iterator();
- while ( iter.hasNext() )
- {
- String pageName = (String) iter.next();
- String sb = (String)pages.get( pageName );
- UserManager umgr = RollerFactory.getRoller().getUserManager();
- WebsiteData website = RollerSession.getRollerSession(request).getCurrentWebsite();
- String handle = website.getHandle();
- PageData page = umgr.getPageByName( RollerSession.getRollerSession(request).getCurrentWebsite(), pageName );
- if (page != null)
- {
- PreviewResourceLoader.setTemplate(page.getId(),sb, handle);
- }
- else
- {
- PreviewResourceLoader.setTemplate(pageName, sb, handle);
+ public ActionForward preview(
+ ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException {
+
+ ActionErrors errors = new ActionErrors();
+ ActionForward forward = mapping.findForward("editTheme.page");
+ try {
+ RollerSession rses = RollerSession.getRollerSession(request);
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rses.isUserAuthorizedToAdmin() ) {
+
+ // get users current theme
+ Roller roller = RollerFactory.getRoller();
+ ThemeManager themeMgr = roller.getThemeManager();
+
+ String username = rses.getAuthenticatedUser().getUserName();
+ WebsiteData website = rses.getCurrentWebsite();
+ String currentTheme = website.getEditorTheme();
+ List themes = themeMgr.getEnabledThemesList();
+
+ // if we allow custom themes then add it to the end of the list
+ if(RollerRuntimeConfig.getBooleanProperty("themes.customtheme.allowed"))
+ themes.add(Theme.CUSTOM);
+
+ // set the current theme in the request
+ request.setAttribute("currentTheme", currentTheme);
+ request.setAttribute("themesList", themes);
+
+ String theme = request.getParameter("theme");
+ try {
+ Theme previewTheme = themeMgr.getTheme(theme);
+
+ if(previewTheme.isEnabled()) {
+ // make sure the view knows what theme to preview
+ request.setAttribute("previewTheme", previewTheme.getName());
+
+ mLogger.debug("Previewing theme "+previewTheme.getName()+
+ " to "+username);
+ } else {
+ request.setAttribute("previewTheme", currentTheme);
+ errors.add(null, new ActionMessage("Theme not enabled"));
+ saveErrors(request, errors);
+ }
+
+ } catch(ThemeNotFoundException tnfe) {
+ // hmm ... maybe they chose "custom"?
+ if(theme != null && theme.equals(Theme.CUSTOM)) {
+ request.setAttribute("previewTheme", Theme.CUSTOM);
+ } else {
+ // we should never get here
+ request.setAttribute("previewTheme", currentTheme);
+ errors.add(null, new ActionMessage("Theme not found"));
+ saveErrors(request, errors);
+ }
}
+
+ } else {
+ forward = mapping.findForward("access-denied");
}
- }
- catch (Exception e)
- {
+
+ } catch (Exception e) {
mLogger.error("ERROR in action",e);
- throw new RollerException( e );
+ throw new ServletException(e);
}
+ return forward;
}
+
/**
- * Clears users preview theme from the preview resource loader.
- *
- * @param rreq
- * @param theme
- * @throws RollerException
+ * Save action method.
+ *
+ * Happens when the user clicks the "Save" button to set a new theme.
+ * This method simply updates the WebsiteData.editorTheme property with
+ * the value of the new theme.
*/
- private void clearThemePages( RollerRequest rreq, String theme )
- throws RollerException
- {
- if (mLogger.isDebugEnabled())
- {
- mLogger.debug("theme="+theme);
- }
-
- if (theme == null) return;
-
- RollerContext rollerContext =
- RollerContext.getRollerContext(rreq.getRequest());
-
- try
- {
- //UserData ud = rreq.getUser();
- UserManager mgr = RollerFactory.getRoller().getUserManager();
- //String username = ud.getUserName();
+ public ActionForward save(
+ ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException {
- String themeDir = rollerContext.getThemePath(theme);
- String[] children = RollerContext.getThemeFilenames(themeDir);
-
- // Custom theme won't have any files
- if (children == null) return;
+ ActionErrors errors = new ActionErrors();
+ ActionForward forward = mapping.findForward("editTheme.page");
+ try {
+ RollerSession rses = RollerSession.getRollerSession(request);
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rses.isUserAuthorizedToAdmin() ) {
+
+ String newTheme = null;
+
+ // lookup what theme the user wants first
+ String theme = request.getParameter("theme");
+ try {
+ Roller roller = RollerFactory.getRoller();
+ ThemeManager themeMgr = roller.getThemeManager();
+ Theme previewTheme = themeMgr.getTheme(theme);
- for (int i = 0; i < children.length; i++)
- {
- String pageName = children[i].substring(
- 0,children[i].length()-3);
-
- PageData page = mgr.getPageByName(
- RollerSession.getRollerSession(rreq.getRequest()).getCurrentWebsite(), pageName);
- if (page != null)
- {
- PreviewResourceLoader.clearTemplate( page.getId() );
+ if(previewTheme.isEnabled()) {
+ newTheme = previewTheme.getName();
+ } else {
+ errors.add(null, new ActionMessage("Theme not enabled"));
+ saveErrors(request, errors);
+ }
+
+ } catch(ThemeNotFoundException tnfe) {
+ // possibly selected "custom"
+ if(theme != null && theme.equals(Theme.CUSTOM)) {
+ newTheme = Theme.CUSTOM;
+ } else {
+ // hmm ... that's weird
+ mLogger.warn(tnfe);
+ errors.add(null, new ActionMessage("Theme not found"));
+ saveErrors(request, errors);
+ }
}
- else
- {
- PreviewResourceLoader.clearTemplate( pageName );
+
+ // update theme for website and save
+ if(newTheme != null) {
+ try {
+ Roller roller = RollerFactory.getRoller();
+ String username = rses.getAuthenticatedUser().getUserName();
+ WebsiteData website = rses.getCurrentWebsite();
+ website.setEditorTheme(newTheme);
+ website.save();
+
+ mLogger.debug("Saved theme "+newTheme+
+ " for "+username);
+
+ // make sure to flush the page cache so ppl can see the change
+ PageCacheFilter.removeFromCache(request, website);
+
+ // update complete ... now just send them back to edit
+ return this.edit(mapping, form, request, response);
+
+ } catch(RollerException re) {
+ mLogger.error(re);
+ errors.add(null, new ActionMessage("Error setting theme"));
+ saveErrors(request, errors);
+ }
}
+
+ // if we got down here then there was an error :(
+ // send the user back to preview page with errors already set
+ return this.preview(mapping, form, request, response);
+
+ } else {
+ forward = mapping.findForward("access-denied");
}
+ } catch (Exception e) {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
}
- catch (Exception e)
- {
- if (mLogger.isDebugEnabled())
- {
- mLogger.debug("clearThemePages error: ", e);
- }
-
- throw new RollerException( e );
- }
-
+ return forward;
}
+
/**
- * Reads theme pages from disk and saves them as pages in website of
- * the user specified by the RollerRequest.
- *
- * @param rreq Request wrapper.
- * @param theme Name of theme to save.
- * @throws RollerException
+ * Customize action method.
+ *
+ * Happens when a user clicks the "Customize" button on their current theme.
+ * This method copies down all the theme templates from the currently
+ * selected theme into the users custom template pages and updates the users
+ * theme to "custom".
*/
- private void saveThemePages( RollerRequest rreq, String theme )
- throws RollerException
- {
- RollerContext rollerContext =
- RollerContext.getRollerContext(rreq.getRequest());
-
- try
- {
- UserManager mgr = RollerFactory.getRoller().getUserManager();
- WebsiteData website = RollerSession.getRollerSession(rreq.getRequest()).getCurrentWebsite();
+ public ActionForward customize(
+ ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException {
- HashMap pages = rollerContext.readThemeMacros(theme);
- Iterator iter = pages.keySet().iterator();
- while ( iter.hasNext() )
- {
- String pageName = (String) iter.next();
- String pageContent = (String)pages.get( pageName );
-
- PageData page = mgr.getPageByName(
- RollerSession.getRollerSession(rreq.getRequest()).getCurrentWebsite(), pageName );
- if (page != null)
- {
- // User already has page by that name, so overwrite it.
- page.setTemplate( pageContent );
- }
- else
- {
- // User does not have page by that name, so create new page.
- page = new PageData( null,
- website, // website
- pageName, // name
- pageName, // description
- pageName, // link
- pageContent, // template
- new Date() // updateTime
- );
- mgr.storePage( page );
+ ActionErrors errors = new ActionErrors();
+ ActionForward forward = mapping.findForward("editTheme.page");
+ try {
+ RollerSession rses = RollerSession.getRollerSession(request);
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ if ( rses.isUserAuthorizedToAdmin() ) {
+
+ // copy down current theme to weblog templates
+ Roller roller = RollerFactory.getRoller();
+ ThemeManager themeMgr = roller.getThemeManager();
+
+ String username = rses.getAuthenticatedUser().getUserName();
+ WebsiteData website = rses.getCurrentWebsite();
+
+ try {
+ Theme usersTheme = themeMgr.getTheme(website.getEditorTheme());
+
+ // only if custom themes are allowed
+ if(RollerRuntimeConfig.getBooleanProperty("themes.customtheme.allowed")) {
+ try {
+ this.saveThemePages(website, usersTheme);
+ } catch(RollerException re) {
+ mLogger.error(re);
+ errors.add(null, new ActionMessage("Error customizing theme"));
+ saveErrors(request, errors);
+ }
+
+ // make sure to flush the page cache so ppl can see the change
+ PageCacheFilter.removeFromCache(request, website);
+ }
+
+ } catch(ThemeNotFoundException tnfe) {
+ // this catches the potential case where someone customizes
+ // a theme and has their theme as "custom" but then hits the
+ // browser back button and presses the button again, so
+ // they are basically trying to customize a "custom" theme
+
+ // log this as a warning just in case
+ mLogger.warn(tnfe);
+
+ // show the user an error message and let things go back
+ // to the edit page
+ errors.add(null, new ActionMessage("Oops! You already have a custom theme."));
}
+
+ // just take the user back home to the edit theme page
+ return this.edit(mapping, form, request, response);
+
+ } else {
+ forward = mapping.findForward("access-denied");
}
- RollerFactory.getRoller().commit();
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
mLogger.error("ERROR in action",e);
- throw new RollerException( e );
+ throw new ServletException(e);
}
-
+ return forward;
}
+
/**
- * Read the 'Weblog.vm' file for a theme and return it as a String.
- *
- * @param ctx Roller context.
- * @param theme Name of theme.
- * @return Theme in the form of a string.
+ * Helper method that copies down the pages from a given theme into a
+ * users weblog templates.
+ *
+ * @param rreq Request wrapper.
+ * @param theme Name of theme to save.
* @throws RollerException
*/
- public String readTheme(RollerContext ctx, String theme)
- throws RollerException
- {
- String fileName = "Weblog.vm";
- if (themeCache.getFromCache(theme, fileName) != null)
- {
- return themeCache.getFromCache(theme, fileName);
- }
+ private void saveThemePages(WebsiteData website, Theme theme)
+ throws RollerException {
- String themesDir = RollerRuntimeConfig.getProperty("users.themes.path");
+ mLogger.debug("Setting custom templates for website: "+website.getName());
- String themeFile = RollerContext.getServletContext(
- ).getRealPath( "/" + themesDir
- + "/" + theme + "/" + fileName );
-
- // Import weblog page template from specified theme
- StringBuffer sb = new StringBuffer();
- BufferedReader rdr = null;
- try
- {
- rdr = new BufferedReader(
- new FileReader(themeFile));
- String line = null;
- while ( null != (line = rdr.readLine()) )
- {
- sb.append( line );
- sb.append("\n");
+ try {
+ UserManager userMgr = RollerFactory.getRoller().getUserManager();
+
+ Collection templates = theme.getTemplates();
+ Iterator iter = templates.iterator();
+ ThemeTemplate theme_template = null;
+ while ( iter.hasNext() ) {
+ theme_template = (ThemeTemplate) iter.next();
+ //String pageContent = (String) templates.get( pageName );
+
+ WeblogTemplate template =
+ userMgr.getPageByName(website, theme_template.getName());
+ if (template != null) {
+ // User already has page by that name, so overwrite it.
+ template.setContents(theme_template.getContents());
+
+ } else {
+ // User does not have page by that name, so create new page.
+ template = new WeblogTemplate( null,
+ website, // website
+ theme_template.getName(), // name
+ theme_template.getDescription(), // description
+ theme_template.getName(), // link
+ theme_template.getContents(), // contents
+ new Date() // last mod
+ );
+ userMgr.storePage( template );
+ }
}
- themeCache.putIntoCache(theme, fileName, sb.toString());
- }
- catch (Exception e)
- {
- mLogger.error("themeFile:" + themeFile, e);
- throw new RollerException( e );
- }
- finally
- {
- try {
- if (rdr != null) rdr.close();
- } catch (IOException ioe) {
- mLogger.warn("unable to close " + themeFile);
+
+ // now update this website's theme to custom
+ website.setEditorTheme(Theme.CUSTOM);
+
+ // if this is the first time someone is customizing a theme then
+ // we need to set a default page
+ if(website.getDefaultPageId() == null ||
+ website.getDefaultPageId().equals("dummy")) {
+ // we have to go back to the db to figure out the id
+ WeblogTemplate template = userMgr.getPageByName(website, "Weblog");
+ if(template != null) {
+ mLogger.debug("Setting default page to "+template.getId());
+ website.setDefaultPageId(template.getId());
+ }
}
+
+ // save our updated website
+ userMgr.storeWebsite(website);
+
+ // commit? i still don't understand when this is needed :/
+ RollerFactory.getRoller().commit();
+
+ } catch (Exception e) {
+ mLogger.error("ERROR in action",e);
+ throw new RollerException( e );
}
- return sb.toString();
}
}
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserBaseAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserBaseAction.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserBaseAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserBaseAction.java Mon Aug 8 07:41:04 2005
@@ -24,7 +24,14 @@
import org.roller.presentation.website.formbeans.UserFormEx;
import org.roller.util.DateUtil;
import org.roller.util.Utilities;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+import java.util.TimeZone;
+import java.util.TreeSet;
+import org.roller.model.RollerFactory;
/////////////////////////////////////////////////////////////////////////////
Copied: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java (from r225818, incubator/roller/trunk/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java)
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java?p2=incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java&p1=incubator/roller/trunk/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java&r1=225818&r2=230810&rev=230810&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/WeblogTemplateFormAction.java Mon Aug 8 07:41:04 2005
@@ -20,12 +20,13 @@
import org.apache.struts.actions.DispatchAction;
import org.roller.RollerException;
import org.roller.RollerPermissionsException;
+import org.roller.model.RollerFactory;
import org.roller.model.UserManager;
-import org.roller.pojos.Template;
import org.roller.pojos.WeblogTemplate;
import org.roller.pojos.UserData;
import org.roller.pojos.WebsiteData;
import org.roller.presentation.RollerRequest;
+import org.roller.presentation.RollerSession;
import org.roller.presentation.forms.WeblogTemplateForm;
import org.roller.presentation.pagecache.PageCacheFilter;
import org.roller.util.StringUtils;
@@ -58,7 +59,8 @@
try
{
RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rreq.isUserAuthorizedToEdit() )
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if ( rses.isUserAuthorizedToAdmin() )
{
WeblogTemplateForm form = (WeblogTemplateForm)actionForm;
WeblogTemplate data = new WeblogTemplate();
@@ -71,9 +73,9 @@
data.setContents("");
validateLink( data );
- UserManager mgr = rreq.getRoller().getUserManager();
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
mgr.storePage( data );
- rreq.getRoller().commit();
+ RollerFactory.getRoller().commit();
ActionMessages uiMessages = new ActionMessages();
uiMessages.add(ActionMessages.GLOBAL_MESSAGE,
@@ -81,8 +83,8 @@
data.getName()));
saveMessages(request, uiMessages);
- UserData user = rreq.getUser();
- PageCacheFilter.removeFromCache( request, user );
+ UserData user = rses.getAuthenticatedUser();
+ PageCacheFilter.removeFromCache( request, hd );
actionForm.reset(mapping,request);
@@ -113,14 +115,15 @@
try
{
RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rreq.isUserAuthorizedToEdit() )
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if ( rses.isUserAuthorizedToAdmin() )
{
- UserData ud = rreq.getUser();
+ UserData ud = rses.getAuthenticatedUser();
WeblogTemplate pd = (WeblogTemplate) rreq.getPage();
WeblogTemplateForm pf = (WeblogTemplateForm)actionForm;
pf.copyFrom(pd, request.getLocale());
- PageCacheFilter.removeFromCache( request,ud );
+ PageCacheFilter.removeFromCache( request, pd.getWebsite() );
addModelObjects(rreq);
}
@@ -149,7 +152,8 @@
try
{
RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rreq.isUserAuthorizedToEdit() )
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if ( rses.isUserAuthorizedToAdmin() )
{
addModelObjects(rreq);
}
@@ -178,18 +182,19 @@
try
{
RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rreq.isUserAuthorizedToEdit() )
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if ( rses.isUserAuthorizedToAdmin() )
{
WeblogTemplateForm form = (WeblogTemplateForm)actionForm;
WeblogTemplate data = new WeblogTemplate();
form.copyTo(data, request.getLocale());
- UserManager mgr = rreq.getRoller().getUserManager();
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
mgr.removePageSafely( data.getId() );
- rreq.getRoller().commit();
+ RollerFactory.getRoller().commit();
- UserData user = rreq.getUser();
- PageCacheFilter.removeFromCache( request,user );
+ UserData user = rses.getAuthenticatedUser();
+ PageCacheFilter.removeFromCache( request, data.getWebsite() );
addModelObjects(rreq);
@@ -226,14 +231,15 @@
ActionForward forward = mapping.findForward("removePage.page");
try
{
+ RollerSession rses = RollerSession.getRollerSession(request);
RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rreq.isUserAuthorizedToEdit() )
+ if ( rses.isUserAuthorizedToAdmin() )
{
WeblogTemplate cd = (WeblogTemplate) rreq.getPage();
WeblogTemplateForm pf = (WeblogTemplateForm)actionForm;
pf.copyFrom(cd, request.getLocale());
- UserData ud = rreq.getUser();
+ UserData ud = rses.getAuthenticatedUser();
request.setAttribute("user",ud);
}
else
@@ -260,21 +266,22 @@
ActionForward forward = mapping.findForward("editPage.page");
try
{
+ RollerSession rses = RollerSession.getRollerSession(request);
RollerRequest rreq = RollerRequest.getRollerRequest(request);
- if ( rreq.isUserAuthorizedToEdit() )
+ if ( rses.isUserAuthorizedToAdmin() )
{
WeblogTemplateForm form = (WeblogTemplateForm)actionForm;
- UserManager mgr = rreq.getRoller().getUserManager();
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
WeblogTemplate data = mgr.retrievePage(form.getId());
data.save(); // should through exception if no save permission
form.copyTo(data, request.getLocale());
data.setLastModified( new java.util.Date() );
- data.setWebsite( rreq.getWebsite() );
+ data.setWebsite(mgr.retrieveWebsite(form.getWebsite().getId()));
validateLink( data );
mgr.storePage( data );
- rreq.getRoller().commit();
+ RollerFactory.getRoller().commit();
// set the (possibly) new link back into the Form bean
((WeblogTemplateForm)actionForm).setLink( data.getLink() );
@@ -285,8 +292,8 @@
data.getName()));
saveMessages(request, uiMessages);
- UserData user = rreq.getUser();
- PageCacheFilter.removeFromCache( request,user );
+ UserData user = rses.getAuthenticatedUser();
+ PageCacheFilter.removeFromCache(request, data.getWebsite());
}
else
{
@@ -356,14 +363,14 @@
private void addModelObjects( RollerRequest rreq )
throws RollerException {
- HttpServletRequest request = rreq.getRequest();
-
- UserManager mgr = rreq.getRoller().getUserManager();
+ HttpServletRequest request = rreq.getRequest();
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ RollerSession rses = RollerSession.getRollerSession(rreq.getRequest());
- UserData user = rreq.getUser();
+ UserData user = rses.getAuthenticatedUser();
request.setAttribute("user",user);
- WebsiteData wd = rreq.getWebsite();
+ WebsiteData wd = rses.getCurrentWebsite();
request.setAttribute("website", wd);
List pages = mgr.getPages(wd);
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/WebsiteFormAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/WebsiteFormAction.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/WebsiteFormAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/WebsiteFormAction.java Mon Aug 8 07:41:04 2005
@@ -138,8 +138,11 @@
if ( rollerSession.isUserAuthorizedToAdmin() )
{
WebsiteFormEx form = (WebsiteFormEx)actionForm;
- if (!form.getDefaultPageId().equals(form.getWeblogDayPageId()))
- {
+
+ /* we don't need this check any longer -- Allen G
+ if(!form.getDefaultPageId().equals(form.getWeblogDayPageId()))
+ {
+ */
WebsiteData wd = umgr.retrieveWebsite(form.getId());
wd.save(); // should throw if save not permitted
@@ -168,6 +171,7 @@
List epages = Arrays.asList(StringUtils.split(
org.apache.commons.lang.StringUtils.deleteWhitespace(editorPages), ","));
request.setAttribute("editorPagesList", epages);
+ /*
}
else
{
@@ -175,6 +179,7 @@
new ActionError("websiteSettings.error.sameTemplate"));
saveErrors(request, errors);
}
+ */
}
else
{
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/package.html Mon Aug 8 07:41:04 2005
@@ -4,6 +4,7 @@
<title></title>
</head>
<body>
-Actions for user forms.<br>
+Struts actions for managing Roller config, website settings and admin.
+
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/RollerConfigFormEx.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/RollerConfigFormEx.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/RollerConfigFormEx.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/RollerConfigFormEx.java Mon Aug 8 07:41:04 2005
@@ -8,8 +8,6 @@
import org.roller.pojos.RollerConfigData;
import org.roller.presentation.forms.RollerConfigForm;
-import sun.security.krb5.internal.crypto.d;
-
/**
* These properties are not persistent and are only needed for the UI.
*
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/package.html Mon Aug 8 07:41:04 2005
@@ -4,6 +4,7 @@
<title></title>
</head>
<body>
-Form beans for user forms.<br>
+Form beans for managing Roller config, website settings and admin.
+
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/package.html Mon Aug 8 07:41:04 2005
@@ -4,11 +4,7 @@
<title></title>
</head>
<body>
-
-<p>
-Struts Actions, Form beans, and JSP tags for managing the various aspects of a
-Roller Website including the Users, Themes, Page templates, and configuration.
-</p>
+ThemeCache keeps us from hitting Velocity/disk so often.
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/tags/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/tags/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/tags/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/tags/package.html Mon Aug 8 07:41:04 2005
@@ -4,6 +4,7 @@
<title></title>
</head>
<body>
-JSP tags for user display and editing.<br>
+JSP tags for file manager and user authorization.
+
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/BloggerAPIHandler.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/BloggerAPIHandler.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/BloggerAPIHandler.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/BloggerAPIHandler.java Mon Aug 8 07:41:04 2005
@@ -22,7 +22,7 @@
import org.roller.model.RollerFactory;
import org.roller.model.UserManager;
import org.roller.model.WeblogManager;
-import org.roller.pojos.PageData;
+import org.roller.pojos.WeblogTemplate;
import org.roller.pojos.UserData;
import org.roller.pojos.WeblogEntryData;
import org.roller.pojos.WebsiteData;
@@ -133,8 +133,8 @@
Roller roller = RollerFactory.getRoller();
UserManager userMgr = roller.getUserManager();
- PageData page = userMgr.retrievePage(templateType);
- page.setTemplate(templateData);
+ WeblogTemplate page = userMgr.retrievePage(templateType);
+ page.setContents(templateData);
userMgr.storePage(page);
flushPageCache(page.getWebsite());
@@ -177,7 +177,7 @@
{
Roller roller = RollerFactory.getRoller();
UserManager userMgr = roller.getUserManager();
- PageData page = userMgr.retrievePage(templateType);
+ WeblogTemplate page = userMgr.retrievePage(templateType);
if ( null == page )
{
@@ -185,7 +185,7 @@
}
else
{
- return page.getTemplate();
+ return page.getContents();
}
}
catch (Exception e)
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/MetaWeblogAPIHandler.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/MetaWeblogAPIHandler.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/MetaWeblogAPIHandler.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/MetaWeblogAPIHandler.java Mon Aug 8 07:41:04 2005
@@ -124,6 +124,9 @@
String title = (String)postcontent.get("title");
if (title == null) title = "";
+ Date dateCreated = (Date)postcontent.get("dateCreated");
+ if (dateCreated == null) dateCreated = (Date)postcontent.get("pubDate");
+
String cat = null;
if ( postcontent.get("categories") != null )
{
@@ -150,6 +153,11 @@
{
entry.setStatus(WeblogEntryData.DRAFT);
}
+ if (dateCreated != null)
+ {
+ entry.setPubTime(new Timestamp(dateCreated.getTime()));
+ }
+
if ( cat != null )
@@ -207,6 +215,10 @@
String title = (String)postcontent.get("title");
if (title == null) title = "";
+ Date dateCreated = (Date)postcontent.get("dateCreated");
+ if (dateCreated == null) dateCreated = (Date)postcontent.get("pubDate");
+ if (dateCreated == null) dateCreated = new Date();
+
String cat = null;
if ( postcontent.get("categories") != null )
{
@@ -225,12 +237,13 @@
Roller roller = RollerFactory.getRoller();
WeblogManager weblogMgr = roller.getWeblogManager();
- Timestamp current = new Timestamp(System.currentTimeMillis());
+ Timestamp current =
+ new Timestamp(System.currentTimeMillis());
WeblogEntryData entry = new WeblogEntryData();
entry.setTitle(title);
entry.setText(description);
- entry.setPubTime(current);
+ entry.setPubTime(new Timestamp(dateCreated.getTime()));
entry.setUpdateTime(current);
entry.setWebsite(website);
if (Boolean.valueOf(publish).booleanValue())
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/xmlrpc/package.html Mon Aug 8 07:41:04 2005
@@ -4,17 +4,13 @@
<title></title>
</head>
<body>
-XML-RPC API Implementations<br>
+Roller implementation of Blogger and MetaWeblog APIs.
+
+<p>Blogger API spec can be found at http://plant.blogger.com/api/index.html</p>
+
+<p>See also http://xmlrpc.free-conversant.com/docs/bloggerAPI</p>
+
+<p>MetaWeblog API spec can be found at http://www.xmlrpc.com/metaWeblogApi</p>
-<h3>Roller XML-RPC Handler for the Blogger v1 API.</h3>
-<p>
-Blogger API spec can be found at http://plant.blogger.com/api/index.html<br />
-See also http://xmlrpc.free-conversant.com/docs/bloggerAPI
-</p>
-
-<h3>Roller XML-RPC Handler for the MetaWeblog API.</h3>
-<p>
-MetaWeblog API spec can be found at http://www.xmlrpc.com/metaWeblogApi
-</p>
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/util/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/util/package.html?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/util/package.html (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/util/package.html Mon Aug 8 07:41:04 2005
@@ -4,7 +4,7 @@
<title></title>
</head>
<body>
-This package is home to general purpose utility classes, especially those that
-are truly generic and have no dependency on Roller.<br>
+Roller utility classes including date processing, mail, caching, etc.
+
</body>
</html>
Modified: incubator/roller/branches/roller_2.0/tests/org/roller/RollerTestBase.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tests/org/roller/RollerTestBase.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/tests/org/roller/RollerTestBase.java (original)
+++ incubator/roller/branches/roller_2.0/tests/org/roller/RollerTestBase.java Mon Aug 8 07:41:04 2005
@@ -22,9 +22,11 @@
import org.roller.model.WeblogManager;
import org.roller.pojos.CommentData;
import org.roller.pojos.PermissionsData;
+import org.roller.pojos.Theme;
import org.roller.pojos.UserData;
import org.roller.pojos.WeblogCategoryData;
import org.roller.pojos.WeblogEntryData;
+import org.roller.pojos.WeblogTemplate;
import org.roller.pojos.WebsiteData;
/**
Modified: incubator/roller/branches/roller_2.0/tests/org/roller/business/IndexManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tests/org/roller/business/IndexManagerTest.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/tests/org/roller/business/IndexManagerTest.java (original)
+++ incubator/roller/branches/roller_2.0/tests/org/roller/business/IndexManagerTest.java Mon Aug 8 07:41:04 2005
@@ -2,31 +2,53 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-
+
+import org.roller.RollerTestBase;
+import org.roller.business.search.operations.AddEntryOperation;
import org.roller.business.search.operations.SearchOperation;
import org.roller.model.IndexManager;
-import org.roller.RollerTestBase;
+import org.roller.pojos.WeblogEntryData;
/**
* @author Dave Johnson
*/
public class IndexManagerTest extends RollerTestBase
{
- public void testSearch()
+ public void testSearch() throws Exception
{
try
{
IndexManager imgr = getRoller().getIndexManager();
+ WeblogEntryData wd1 = new WeblogEntryData();
+ wd1.setId("dummy");
+ wd1.setTitle("The Tholian Web");
+ wd1.setText(
+ "When the Enterprise attempts to ascertain the fate of the U.S.S. "
+ +"Defiant which vanished 3 weeks ago, the warp engines begin to lose "
+ +"power, and Spock reports strange sensor readings.");
+ imgr.executeIndexOperationNow(
+ new AddEntryOperation((IndexManagerImpl)imgr, wd1));
+
+ WeblogEntryData wd2 = new WeblogEntryData();
+ wd2.setId("dummy");
+ wd2.setTitle("A Piece of the Action");
+ wd2.setText(
+ "The crew of the Enterprise attempts to make contact with "
+ +"the inhabitants of planet Sigma Iotia II, and Uhura puts Kirk "
+ +"in communication with Boss Oxmyx.");
+ imgr.executeIndexOperationNow(
+ new AddEntryOperation((IndexManagerImpl)imgr, wd2));
+
SearchOperation search = new SearchOperation(imgr);
- search.setTerm("test");
+ search.setTerm("Enterprise");
imgr.executeIndexOperationNow(search);
- assertTrue(search.getResultsCount() > 0);
+ assertTrue(search.getResultsCount() == 2);
SearchOperation search2 = new SearchOperation(imgr);
- search2.setTerm("test");
+ search2.setTerm("Tholian");
imgr.executeIndexOperationNow(search2);
- assertTrue(search2.getResultsCount() > 0);
+ assertTrue(search2.getResultsCount() == 1);
}
catch (Exception e)
{
Modified: incubator/roller/branches/roller_2.0/tests/org/roller/business/PermissionsTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tests/org/roller/business/PermissionsTest.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/tests/org/roller/business/PermissionsTest.java (original)
+++ incubator/roller/branches/roller_2.0/tests/org/roller/business/PermissionsTest.java Mon Aug 8 07:41:04 2005
@@ -12,7 +12,7 @@
import org.roller.model.WeblogManager;
import org.roller.pojos.BookmarkData;
import org.roller.pojos.FolderData;
-import org.roller.pojos.PageData;
+import org.roller.pojos.WeblogTemplate;
import org.roller.pojos.PermissionsData;
import org.roller.pojos.UserData;
import org.roller.pojos.WeblogEntryData;
@@ -152,7 +152,7 @@
UserData testuser0 = umgr.getUser("testuser0");
WebsiteData website0 = (WebsiteData)umgr.getWebsites(testuser0, null).get(0);
assertNotNull(website0);
- PageData page = (PageData)getRoller().getUserManager().getPages(website0).get(0);
+ WeblogTemplate page = (WeblogTemplate)getRoller().getUserManager().getPages(website0).get(0);
assertNotNull(page);
// and tries to save it
Modified: incubator/roller/branches/roller_2.0/tests/org/roller/business/UserManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tests/org/roller/business/UserManagerTest.java?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/tests/org/roller/business/UserManagerTest.java (original)
+++ incubator/roller/branches/roller_2.0/tests/org/roller/business/UserManagerTest.java Mon Aug 8 07:41:04 2005
@@ -18,6 +18,7 @@
import org.roller.model.UserManager;
import org.roller.model.WeblogManager;
import org.roller.pojos.FolderData;
+import org.roller.pojos.WeblogTemplate;
import org.roller.pojos.UserData;
import org.roller.pojos.WeblogCategoryData;
import org.roller.pojos.WebsiteData;
@@ -258,7 +259,8 @@
assertNotNull(root);
List pages1 = getRoller().getUserManager().getPages(website);
- assertEquals(3, pages1.size());
+ // new registrations require a theme, so no pages are created -- Allen G
+ assertEquals(0, pages1.size());
getRoller().rollback();
// Remove the website and user
Propchange: incubator/roller/branches/roller_2.0/tools/lib/xmlrpc-1.2-b1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties Mon Aug 8 07:41:04 2005
@@ -145,7 +145,6 @@
configForm.adminUsers=Admin Users
configForm.encryptPasswords=Encrypt Passwords?
configForm.algorithm=Encryption Algorithm
-configForm.newUserThemes=New User Themes
configForm.editorPages=Editor Pages
configForm.autoformatComments=Autoformat Comments?
configForm.escapeCommentHtml=Escape Comment HTML?
@@ -160,6 +159,10 @@
configForm.uploadDir=Upload Directory
configForm.uploadPath=Upload Path
+configForm.themeSettings=Theme Settings
+configForm.newUserThemes=Themes Directory
+configForm.allowCustomTheme=Allow Custom Themes?
+
configForm.rssAggregatorSettings=RSS Aggregator Settings
configForm.enableRssAggregator=Enable RSS Aggregator?
configForm.cacheIncomingRss=Cache Incoming RSS Newsfeeds?
@@ -582,6 +585,7 @@
pagesForm.addNewPage.success=New page <strong>{0}</strong> added successfully.
pagesForm.add=Add
pagesForm.emptyPage=Empty page...
+pagesForm.themesReminder=<b>Reminder:</b> You are currently using the {0} shared theme, so some page edits may not effect how your blog looks.
pageCache.flushed=Page cache has been successfully flushed.
@@ -855,6 +859,7 @@
Page Templates of your previous theme.
themeEditor.save=Save
themeEditor.cancel=Cancel
+themeEditor.customize=Customize
# ---------------------------------------------------------------------- Uploads
@@ -1183,8 +1188,4 @@
yourWebsites.declined=You have declined an invitation to join weblog [{0}]
yourWebsites.accepted=You are now a member of weblog [{0}]
yourWebsites.resigned=You have resigned from weblog [{0}]
-
-
-
-
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/bookmark.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/bookmark.vm?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/bookmark.vm (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/bookmark.vm Mon Aug 8 07:41:04 2005
@@ -1,5 +1,5 @@
#**
- * Macros to display Bookmark Folders and Bookmarks.
+ * Bookmarks and bookmark folders.
* @author Lance Lavandowska (conversion to Velocimacros)
*#
@@ -33,6 +33,9 @@
#**
* Displays the Bookmarks in a Folder instance.
+ * @param folder FolderData object to be displayed
+ * @param showFolderName True to show folder's name
+ * @param expandingFolder True to show expandable folder
*#
#macro( showFolder $folder $showFolderName $expandingFolder )
#set( $bookmarks = $pageModel.getBookmarks($folder) )
@@ -67,9 +70,9 @@
#**
* Displays a bookmark folder as named.
- * @param folderName Name of the folder to be displayed.
- * @param showFolderName True if folder's name is to be displayed.
- * @param expandingFolder True if folder is to be displayed as a expanding folder.
+ * @param folderName Name of the folder to be displayed.
+ * @param showFolderName True to show folder's name
+ * @param expandingFolder True to show expandable folder
*#
#macro( showBookmarks $folderName $showFolderName $expandingFolder )
#if ( $pageModel.getFolder($folderName) )
@@ -82,16 +85,22 @@
#**
* Display all Bookmarks (from all Folders) for user.
+ * @param expandingFolder True to show expandable folder
**#
#macro( showAllBookmarks $expandingFolder )
#set( $root = $pageModel.getFolderByPath("/") )
#showFolder($root true $expandingFolder)
#end
+#**
+ * Show link to OPML file for specified folder.
+ * @param folderName Name of folder to be displayed (or / separated path)
+ *#
#macro( showOpmlLink $folderName )
#if ( $pageModel.getFolder( $folderName ) )
- <a href="$ctxPath/flavor/$userName?flavor=opml&path=$folder.path">
- <img src="$ctxPath/images/opml.png" alt="OPML for $folderName" />
+ <a href="$ctxPath/flavor/$userName?flavor=opml&path=$folderName">
+ <img src="$ctxPath/images/opml.png"
+ alt="OPML badge" title="OPML for $folderName" />
</a>
#else
<span class="error">$text.get( "macro.bookmark.error", [$folderName])</span>
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/comments.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/comments.vm?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/comments.vm (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/comments.vm Mon Aug 8 07:41:04 2005
@@ -1,9 +1,12 @@
+#**
+ * Comment page links and comment forms.
+ *#
#**
* Display the pop-up comments link for a weblog entry.
* Use the URL for the href attribute for those who have disabled
* javascript or who desire to open the comments window in another (Mozilla) tab.
- * @param entry WeblogEntry object.
+ * @param entry WeblogEntryData object for which link is to be displayed.
*#
#macro( showCommentsLink $entry )
#set( $commentCount = $pageModel.getCommentCount($entry.Id) )
@@ -17,7 +20,7 @@
#**
* Display the in-page comments link for a weblog entry.
- * @param entry WeblogEntry object.
+ * @param entry WeblogEntryData object for which link is to be displayed.
*#
#macro( showCommentsPageLink $entry )
#set( $commentCount = $pageModel.getCommentCount($entry.Id) )
@@ -29,8 +32,8 @@
#**
* Display link for comments that renders a dynamically (DHTML) generated
- * comments form - Matt Raible style.
- * @param entry WeblogEntry object.
+ * comments form - Matt Raible's "twisty comments" style.
+ * @param entry WeblogEntryData object for which link is to be displayed.
*#
#macro( showCommentsDiv $entry )
#set( $commentCount = $pageModel.getCommentCount($entry.Id) )
@@ -84,8 +87,8 @@
#end
#**
- * Display comments for an entry.
- * @param entry WeblogEntry object.
+ * Display all comments comments for an entry.
+ * @param entry WeblogEntryData object for which comments are to be displayed.
*#
#macro( showComments $entry )
<div class="comments" id="comments">
@@ -117,6 +120,7 @@
#**
* Display recent comments for whole blog (not just one entry).
+ * @param numComments Maximum number of comments to be displayed
**#
#macro( showRecentComments $numComments )
#if( !$numComments ) #set( $numComments = 20 ) #end
@@ -143,8 +147,9 @@
#end
#**
- * Display list of recent comments. $maxWidth determines the amount of text
- * from the comment to display in the list.
+ * Display list of most recent comments for a blog.
+ * @param numComments Max number of comments to show.
+ * @param maxWidth Limit width of comment text to this number of characters
**#
#macro( showRecentCommentsListWidth $numComments $maxWidth )
#if( !$numComments ) #set( $numComments = 20 ) #end
@@ -165,8 +170,10 @@
#end
</ul>
#end
+
#**
- * Convenience method. Show list with 25 character width.
+ * Display list of most recent comments for a blog (with maxWidth = 25)
+ * @param numComments Max number of comments to show.
**#
#macro( showRecentCommentsList $numComments )
#showRecentCommentsListWidth( $numComments 25 )
@@ -174,7 +181,7 @@
#**
* Display comment form for a weblog entry.
- * @param entry WeblogEntry object.
+ * @param entry WeblogEntry object for which form is to be shown.
*#
#macro( showCommentForm $entry )
<div class="comments-form">
@@ -307,7 +314,7 @@
#**
* Display hidden comment form for a weblog entry.
- * @param entry WeblogEntry object.
+ * @param entry WeblogEntry object for which form is to be shown,
*#
#macro( showHiddenCommentForm )
<div style="display: none" class="comments">
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/flavors/atom.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/flavors/atom.vm?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/flavors/atom.vm (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/flavors/atom.vm Mon Aug 8 07:41:04 2005
@@ -1,29 +1,37 @@
-$pageHelper.setContentType("application/atom+xml;charset=utf-8")<?xml version="1.0" encoding='utf-8'?>
-<feed version="0.3" xmlns="http://purl.org/atom/ns#">
- <title>$utilities.textToHTML($website.name,true)</title>
- <tagline>$utilities.textToHTML($website.description,true)</tagline>
- <link rel="alternate" type="text/html" href="$websiteURL" />
- <modified>$utilities.formatIso8601Date($updateTime)</modified>
- <generator url="http://www.rollerweblogger.org" version="#showVersion() ($rollerBuildTime:$rollerBuildUser)">Roller Weblogger</generator>
- #if( $userName != "zzz_none_zzz" )
- <author>
- <name>$fullName</name>
- <url>$websiteURL</url>
- </author>
- #end
- #set( $entries = $pageModel.getRecentWeblogEntriesArray($entryCount, 'nil') )
- #foreach( $entry in $entries )
- <entry>
- <title>$utilities.textToHTML($entry.title,true)</title>
- <issued>$utilities.formatIso8601Date($entry.pubTime)</issued>
- <created>$utilities.formatIso8601Date($entry.pubTime)</created>
- <modified>$utilities.formatIso8601Date($entry.updateTime)</modified>
- #if( $userName == "zzz_none_zzz" )
- <author><name>$entry.creator.fullName</name></author>
- #end
- <link rel="alternate" type="text/html" href="$absBaseURL$entry.permaLink"/>
- <id>tag:$host,$utilities.formatIso8601Day($entry.pubTime):/$entry.website.user.userName?anchor=$entry.anchor</id>
- <content type="text/html" mode="escaped">#showEntryDescription($entry)</content>
- </entry>
- #end
-</feed>
+$pageHelper.setContentType("application/atom+xml;charset=utf-8")<?xml version="1.0" encoding='utf-8'?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title>$utilities.textToHTML($website.name,true)</title>
+ <subtitle>$utilities.textToHTML($website.description,true)</subtitle>
+ <id>$absBaseURL/flavor/${website.handle}?flavor=atom</id>
+ <link rel="alternate" type="text/html" href="$websiteURL" />
+ <link rel="self" type="application/atom+xml"
+ href="$absBaseURL/flavor/${website.handle}?flavor=atom" />
+ <updated>$utilities.formatIso8601Date($updateTime)</updated>
+ <generator uri="http://www.rollerweblogger.org" version="#showVersion() ($rollerBuildTime:$rollerBuildUser)">
+ Roller Weblogger
+ </generator>
+ #if( $userName != "zzz_none_zzz" )<author>
+ <name>$fullName</name>
+ <uri>$websiteURL</uri>
+ </author>#end
+ #set( $entries = $pageModel.getRecentWeblogEntriesArray($entryCount, 'nil') )
+ #foreach( $entry in $entries )
+ <entry>
+ <title>$utilities.textToHTML($entry.title,true)</title>
+ <id>$absBaseURL$entry.permaLink</id>
+ <link rel="alternate" type="text/html" href="$absBaseURL$entry.permaLink"/>
+ <published>$utilities.formatIso8601Date($entry.pubTime)</published>
+ <updated>$utilities.formatIso8601Date($entry.updateTime)</updated>
+ #if( $userName == "zzz_none_zzz" )<author><name>$entry.creator.fullName</name></author>#end
+ <content type="html">#showEntryDescription($entry)</content>
+ #set( $mc_url = $entry.findEntryAttribute("att_mediacast_url") )
+ #set( $mc_type = $entry.findEntryAttribute("att_mediacast_type") )
+ #set( $mc_length = $entry.findEntryAttribute("att_mediacast_length") )
+ #if( $mc_url && $mc_length && $mc_type )
+ <link rel="enclosure" type="$mc_type" length="$mc_length" href="$mc_url"/>
+ #set($mc_url = false) #set($mc_type = false) #set($mc_length = false)
+ #end
+ </entry>
+ #end
+</feed>
+
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/navbar.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/navbar.vm?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/navbar.vm (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/navbar.vm Mon Aug 8 07:41:04 2005
@@ -1,5 +1,5 @@
#**
- * Macros to display the Roller Navigation bars.
+ * Roller menus and navigation bars.
* @author Lance Lavandowska (conversion to Velocimacros)
*#
@@ -28,15 +28,15 @@
#end
#**
- * Print a link for a menu item. Take into consideration:
- * 1. Should this be particularly CSS friendly.
- * 2. Or is this specifically a vertical menu.
- * 3. Otherwise use the specified delimiter.
+ * Print a link for a menu item. Take into consideration:<br />
+ * 1. Should this be particularly CSS friendly.<br />
+ * 2. Or is this specifically a vertical menu.<br />
+ * 3. Otherwise use the specified delimiter.<br />
*
- * @param linkUrl The URL to be used in the href attribute.
+ * @param linkUrl The URL to be used in the href attribute.
* @param linkValue The value used to look up the link's label.
- * @param useCSS Use CSS based formatting.
- * @param vertical Use "hard-formatting" to create vertical menu.
+ * @param useCSS Use CSS based formatting.
+ * @param vertical Use "hard-formatting" to create vertical menu.
* @param delimiter Seperate horizontal items with this value.
*#
#macro( printNavLink $linkUrl $linkValue $useCSS $vertical $delimiter )
@@ -49,8 +49,9 @@
#**
* Show Roller Page Navigation Bar, includes links to all pages
* except those that are hidden (because the start with "_").
- * @param vertical True if bar is to be displayed vertically.
+ * @param vertical True if bar is to be displayed vertically.
* @param delimiter Delimiter between entries in bar.
+ * @param useCSS Use CSS based formatting.
*#
#macro( showNavBar2 $vertical $delimiter $useCSS)
#set( $container = "div" )
@@ -107,7 +108,10 @@
#end
#**
- * Backwards compatibility version.
+ * Show Roller Page Navigation Bar, includes links to all pages
+ * except those that are hidden (because the start with "_").
+ * @param vertical True if bar is to be displayed vertically.
+ * @param delimiter Delimiter between entries in bar.
*#
#macro( showNavBar $vertical $delimiter )
#showNavBar2( $vertical $delimiter false)
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/newsfeed.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/newsfeed.vm?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/newsfeed.vm (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/newsfeed.vm Mon Aug 8 07:41:04 2005
@@ -1,5 +1,5 @@
#**
- * Macros to display RSS Newschannels.
+ * The deprecated #showNewsfeeds() macro.
* @author Lance Lavandowska (conversion to Velocimacros)
* @author Dave Johnson (conversion from Digestor to Flock)
*#
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/planetrss.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/planetrss.vm?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/planetrss.vm (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/planetrss.vm Mon Aug 8 07:41:04 2005
@@ -1,13 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
+ #if($group)
+ <title>$utilities.textToHTML($group.title,true)</title>
+ <description>Aggregated feed for group [$utilities.textToHTML($group.title,true)]</description>
+ #else
<title>$utilities.textToHTML($planet.configuration.title,true)</title>
- <description>Aggregated Feed generated by Roller Planet aggregator</description>
+ <description>$utilities.textToHTML($planet.configuration.title,true)</description>
+ #end
<link>$utilities.textToHTML($planet.configuration.siteUrl)</link>
<lastBuildDate>$utilities.formatRfc822Date($planet.lastUpdated)</lastBuildDate>
- <generator>Roller Planet 1.1-dev</generator>
- #if($groupName)
- #set($entries = $planet.getAggregation($groupName,50))
+ <generator>Roller</generator>
+ #if($group)
+ #set($entries = $planet.getAggregation($group, 50))
#else
#set($entries = $planet.getAggregation(50))
#end
@@ -32,4 +37,4 @@
</item>
#end
</channel>
-</rss>
+</rss>
\ No newline at end of file
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/referer.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/referer.vm?rev=230810&r1=230809&r2=230810&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/referer.vm (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/referer.vm Mon Aug 8 07:41:04 2005
@@ -1,5 +1,5 @@
#**
- * Macros to display referers and Linkbacks.
+ * Referers and linkbacks.
* @author Lance Lavandowska (conversion to Velocimacros)
*#