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/07/18 23:52:44 UTC

svn commit: r219574 - in /incubator/roller/branches/roller_2.0: metadata/xdoclet/ src/org/roller/pojos/ src/org/roller/presentation/website/actions/ src/org/roller/presentation/website/formbeans/ web/ web/WEB-INF/ web/WEB-INF/classes/ web/website/

Author: snoopdave
Date: Mon Jul 18 14:52:20 2005
New Revision: 219574

URL: http://svn.apache.org/viewcvs?rev=219574&view=rev
Log:
New actions, forms and JSPs for group blogging UI

Added:
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/InviteMemberAction.java
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/MemberPermissionsAction.java
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/NewWebsiteAction.java
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourProfileAction.java
      - copied, changed from r219437, incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserEditAction.java
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourWebsitesAction.java
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/YourWebsitesForm.java
    incubator/roller/branches/roller_2.0/web/website/InviteMember.jsp
    incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp
    incubator/roller/branches/roller_2.0/web/website/YourProfile.jsp
      - copied unchanged from r190009, incubator/roller/branches/roller_2.0/web/website/UserEdit.jsp
    incubator/roller/branches/roller_2.0/web/website/YourWebsites.jsp
Modified:
    incubator/roller/branches/roller_2.0/metadata/xdoclet/global-forwards.xml
    incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java
    incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties
    incubator/roller/branches/roller_2.0/web/WEB-INF/editor-menu.xml
    incubator/roller/branches/roller_2.0/web/index.jsp
    incubator/roller/branches/roller_2.0/web/website/theme-editor.jsp

Modified: incubator/roller/branches/roller_2.0/metadata/xdoclet/global-forwards.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/metadata/xdoclet/global-forwards.xml?rev=219574&r1=219573&r2=219574&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/metadata/xdoclet/global-forwards.xml (original)
+++ incubator/roller/branches/roller_2.0/metadata/xdoclet/global-forwards.xml Mon Jul 18 14:52:20 2005
@@ -3,12 +3,14 @@
 <forward name="error"                  path="/error.jsp"/>
 <forward name="login-redirect"         path="/login-redirect.jsp"/>
 <forward name="logout-redirect"        path="/logout-redirect.jsp"/>
+
 <!-- unprotected actions -->
 <forward name="page"                   path="/page"/>
 <forward name="main"                   path="/main.do"/>
 <forward name="home.page"              path="/main.do"/>
-<forward name="createUser"             path="/user.do?method=createUser"/>
-<forward name="registerUser"           path="/user.do?method=registerUser"/>
+<forward name="createUser"             path="/yourProfile.do?method=createUser"/>
+<forward name="registerUser"           path="/yourProfile.do?method=registerUser"/>
+
 <!--  editor and admin role actions -->
 <forward name="bookmarks"              path="/editor/bookmarks.do?method=selectFolder"/>
 <forward name="comment"                path="/editor/comment.do?method=edit" />
@@ -18,10 +20,11 @@
 <forward name="exportEntries.done"     path="/editor/exportEntries.do?method=unspecified"/>
 <forward name="importBookmarks"        path="/editor/importBookmarks.do"/>
 <forward name="importEntries"          path="/editor/importEntries.do?method=edit"/>
+<forward name="inviteMember"           path="/editor/inviteMember.do" />
 <forward name="maintenance"            path="/editor/maintenance.do" />
+<forward name="newWebsite"             path="/editor/newWebsite.do?method=create" />
 <forward name="editPages"              path="/editor/page.do?method=editPages"/>
 <forward name="editPage"               path="/editor/page.do?method=edit"/>
-<forward name="editUser"               path="/editor/user.do?method=edit"/>
 <forward name="removePage"             path="/editor/page.do?method=remove"/>
 <forward name="removePage.ok"          path="/editor/page.do?method=removeOk"/>
 <forward name="referers"               path="/editor/referers.do"/>
@@ -31,12 +34,14 @@
 <forward name="trackback"              path="/editor/trackback.do?method=send"/>
 <forward name="toggleLinkback"         path="/editor/toggleLinkback.do"/>
 <forward name="uploadFiles"            path="/editor/uploadFiles.do"/>
-<forward name="editUser"               path="/editor/user.do?method=edit"/>
 <forward name="weblogEdit"             path="/editor/weblog.do?method=edit"/>
 <forward name="weblogCreate"           path="/editor/weblog.do?method=create"/>
 <forward name="flushCache"             path="/editor/weblog.do?method=flushCache"/>
 <forward name="weblogQuery"            path="/editor/weblogQuery.do?method=query"/>
 <forward name="editWebsite"            path="/editor/website.do?method=edit"/>
+<forward name="yourProfile"            path="/editor/yourProfile.do?method=edit" />
+<forward name="yourWebsites"           path="/editor/yourWebsites.do?method=edit" />
+
 <!-- admin role only actions -->
 <forward name="addUser"                path="/admin/user.do?method=add"/>
 <forward name="adminUser"              path="/admin/user.do?method=edit"/>

Modified: incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java?rev=219574&r1=219573&r2=219574&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java Mon Jul 18 14:52:20 2005
@@ -692,7 +692,7 @@
         }
         if (userPerms != null && !userPerms.isPending())
         {
-            if (userPerms != null && (userPerms.getPermissionMask() & mask) > 0) 
+            if (userPerms != null && (userPerms.getPermissionMask() & mask) == mask) 
             {
                 return true;
             }

Added: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/InviteMemberAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/InviteMemberAction.java?rev=219574&view=auto
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/InviteMemberAction.java (added)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/InviteMemberAction.java Mon Jul 18 14:52:20 2005
@@ -0,0 +1,37 @@
+package org.roller.presentation.website.actions;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.actions.DispatchAction;
+
+/**
+ * Allows website admin to invite new members to website.
+ * 
+ * @struts.action path="/editor/inviteMembers" parameter="method"
+ * @struts.action-forward name="inviteMembers.page" path="/website/InviteMembers.jsp"
+ */
+public class InviteMemberAction extends DispatchAction
+{
+    private static Log mLogger =
+        LogFactory.getFactory().getInstance(InviteMemberAction.class);
+    
+    public ActionForward edit(
+        ActionMapping       mapping,
+        ActionForm          actionForm,
+        HttpServletRequest  request,
+        HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        ActionForward forward = mapping.findForward("inviteMembers.page");
+        return forward;
+    }
+}

Added: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/MemberPermissionsAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/MemberPermissionsAction.java?rev=219574&view=auto
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/MemberPermissionsAction.java (added)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/MemberPermissionsAction.java Mon Jul 18 14:52:20 2005
@@ -0,0 +1,37 @@
+package org.roller.presentation.website.actions;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.actions.DispatchAction;
+
+/**
+ * Allows website admin to change website member permissions.
+ * 
+ * @struts.action path="/editor/memberPermissions" parameter="method"
+ * @struts.action-forward name="memberPermissions.page" path="/website/MemberPermissions.jsp"
+ */
+public class MemberPermissionsAction extends DispatchAction
+{
+    private static Log mLogger =
+        LogFactory.getFactory().getInstance(MemberPermissionsAction.class);
+    
+    public ActionForward edit(
+        ActionMapping       mapping,
+        ActionForm          actionForm,
+        HttpServletRequest  request,
+        HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        ActionForward forward = mapping.findForward("memberPermissions.page");
+        return forward;
+    }
+}

Added: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/NewWebsiteAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/NewWebsiteAction.java?rev=219574&view=auto
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/NewWebsiteAction.java (added)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/NewWebsiteAction.java Mon Jul 18 14:52:20 2005
@@ -0,0 +1,37 @@
+package org.roller.presentation.website.actions;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.actions.DispatchAction;
+
+/**
+ * Allows user to create a new website.
+ * 
+ * @struts.action path="/editor/newWebsite" parameter="method"
+ * @struts.action-forward name="newWebsite.page" path="/website/NewWebsite.jsp"
+ */
+public class NewWebsiteAction extends DispatchAction
+{
+    private static Log mLogger =
+        LogFactory.getFactory().getInstance(NewWebsiteAction.class);
+    
+    public ActionForward edit(
+        ActionMapping       mapping,
+        ActionForm          actionForm,
+        HttpServletRequest  request,
+        HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        ActionForward forward = mapping.findForward("newWebsite.page");
+        return forward;
+    }
+}

Copied: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourProfileAction.java (from r219437, incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserEditAction.java)
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourProfileAction.java?p2=incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourProfileAction.java&p1=incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserEditAction.java&r1=219437&r2=219574&rev=219574&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserEditAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourProfileAction.java Mon Jul 18 14:52:20 2005
@@ -23,20 +23,16 @@
 import org.roller.presentation.website.formbeans.UserFormEx;
 import org.roller.util.StringUtils;
 
-
-/////////////////////////////////////////////////////////////////////////////
 /**
- * Actions for editing your user information.
- * 
- * @struts.action name="userFormEx" path="/editor/user" 
- * 		scope="session" parameter="method"
+ * Allows user to edit his/her profile.
  * 
- * @struts.action-forward name="editUser.page" path="/website/UserEdit.jsp"
+ * @struts.action name="userFormEx" path="/editor/yourProfile" parameter="method"
+ * @struts.action-forward name="yourProfile.page" path="/website/YourProfile.jsp"
  */
-public class UserEditAction extends UserBaseAction
+public class YourProfileAction extends UserBaseAction
 {
     private static Log mLogger =
-        LogFactory.getFactory().getInstance(UserEditAction.class);
+        LogFactory.getFactory().getInstance(YourProfileAction.class);
 
     //-----------------------------------------------------------------------
     /** Handle GET for user edit page */
@@ -47,7 +43,7 @@
         HttpServletResponse response)
         throws IOException, ServletException
     {
-        ActionForward forward = mapping.findForward("editUser.page");
+        ActionForward forward = mapping.findForward("yourProfile.page");
         try
         {
             RollerRequest rreq = RollerRequest.getRollerRequest(request);
@@ -106,7 +102,7 @@
         throws IOException, ServletException
     {
         UserFormEx form = (UserFormEx)actionForm;
-        ActionForward forward = mapping.findForward("editUser.page");
+        ActionForward forward = mapping.findForward("yourProfile.page");
         ActionMessages msgs = new ActionMessages();
         try
         {

Added: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourWebsitesAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourWebsitesAction.java?rev=219574&view=auto
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourWebsitesAction.java (added)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/YourWebsitesAction.java Mon Jul 18 14:52:20 2005
@@ -0,0 +1,106 @@
+package org.roller.presentation.website.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+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 org.roller.RollerException;
+import org.roller.model.Roller;
+import org.roller.model.RollerFactory;
+import org.roller.pojos.PermissionsData;
+import org.roller.pojos.UserData;
+import org.roller.pojos.WebsiteData;
+import org.roller.presentation.BasePageModel;
+import org.roller.presentation.RollerSession;
+import org.roller.presentation.website.formbeans.YourWebsitesForm;
+
+/**
+ * Allows user to view and pick from list of his/her websites.
+ * 
+ * @struts.action path="/editor/yourWebsites" name="yourWebsitesForm" parameter="method"
+ * @struts.action-forward name="yourWebsites.page" path="/website/YourWebsites.jsp"
+ */
+public class YourWebsitesAction extends DispatchAction
+{
+    private static Log mLogger =
+        LogFactory.getFactory().getInstance(YourWebsitesAction.class);
+    
+    public ActionForward edit(
+            ActionMapping       mapping,
+            ActionForm          actionForm,
+            HttpServletRequest  request,
+            HttpServletResponse response)
+            throws Exception
+    {
+        request.setAttribute("model",
+                new YourWebsitesPageModel(request, response, mapping));
+        
+        ActionForward forward = mapping.findForward("yourWebsites.page");
+        return forward;
+    }
+        
+    public ActionForward select(
+            ActionMapping       mapping,
+            ActionForm          actionForm,
+            HttpServletRequest  request,
+            HttpServletResponse response)
+            throws Exception
+    {
+        YourWebsitesForm form = (YourWebsitesForm)actionForm;
+        Roller roller = RollerFactory.getRoller();
+        WebsiteData selectedWebsite = 
+            roller.getUserManager().retrieveWebsite(form.getWebsiteId());
+        RollerSession rollerSession = RollerSession.getRollerSession(request);
+        UserData user = rollerSession.getAuthenticatedUser();
+        if (selectedWebsite.hasUserPermissions(user, PermissionsData.LIMITED))
+        {
+            rollerSession.setCurrentWebsite(selectedWebsite);
+        }
+        
+        request.setAttribute("model",
+                new YourWebsitesPageModel(request, response, mapping));
+
+        ActionForward forward = mapping.findForward("yourWebsites.page");
+        return forward;
+    }
+        
+    public static class YourWebsitesPageModel extends BasePageModel
+    {
+        private List websites = new ArrayList();
+        private List pendings = new ArrayList();
+        public YourWebsitesPageModel(HttpServletRequest request,
+          HttpServletResponse response, ActionMapping mapping) throws RollerException
+        {
+            super(request, response, mapping);
+            Roller roller = RollerFactory.getRoller();
+            RollerSession rollerSession = RollerSession.getRollerSession(request);
+            UserData user = rollerSession.getAuthenticatedUser();
+            websites = roller.getUserManager().getWebsites(user, Boolean.TRUE);
+            pendings = roller.getUserManager().getPendingPermissions(user);
+        }
+        public List getWebsites()
+        {
+            return websites;
+        }
+        public void setWebsites(List websitePermissions)
+        {
+            this.websites = websitePermissions;
+        }
+        public List getPendings()
+        {
+            return pendings;
+        }
+        public void setPendings(List pendings)
+        {
+            this.pendings = pendings;
+        }
+    }
+}

Added: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/YourWebsitesForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/YourWebsitesForm.java?rev=219574&view=auto
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/YourWebsitesForm.java (added)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/formbeans/YourWebsitesForm.java Mon Jul 18 14:52:20 2005
@@ -0,0 +1,20 @@
+package org.roller.presentation.website.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+/**
+ * @struts.form name="yourWebsitesForm"
+ * @author Dave M Johnson
+ */
+public class YourWebsitesForm extends ActionForm
+{
+    private String websiteId; 
+    public String getWebsiteId()
+    {
+        return websiteId;
+    }
+    public void setWebsiteId(String websiteId)
+    {
+        this.websiteId = websiteId;
+    }
+}

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=219574&r1=219573&r2=219574&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 Jul 18 14:52:20 2005
@@ -1,55 +1,7 @@
 
 application.none=None
 
-#------------------------------------------------------------ Struts Validator
-
-errors.header=<div class="error"><ul>
-errors.footer=</ul></div>
-
-error.internationalized={0}
-
-errors.required={0} is required.
-errors.minlength={0} can not be less than {1} characters.
-errors.maxlength={0} can not be greater than {1} characters.
-errors.invalid={0} is invalid.
-errors.byte={0} must be a byte.
-errors.short={0} must be a short.
-errors.integer={0} must be an integer.
-errors.long={0} must be a long.
-errors.float={0} must be a float.
-errors.double={0} must be a double.
-errors.date={0} is not a date.
-errors.range={0} is not in the range {1} through {2}.
-errors.creditcard={0} is an invalid credit card number.
-errors.email={0} may only include letters, numbers, and spaces.
-errors.noslashes={0} may not include '/' slash characters.
-error.noTrackbackUrlSpecified=You did not specify a Trackback URL
-
-error.title.403=Access Denied (403)
-error.text.403=You do not have the privilege necessary to access the page you requested.
-
-error.title.404=Sorry! We couldn't find your document (404)
-error.text.404=The file that you requested could not be found on this server. 
-
-error.permissions.deniedSave=Access Denied (you logged in as a different user?)
-
-error.permissionDenied.title=Permission Denied
-error.permissionDenied.prompt=Possible causes:
-error.permissionDenied.reason1=You tried to save an object from "stale" web page, left by an earlier login under a different user account.
-error.permissionDenied.reason2=You logged in using incorrect capitalization of your username. To resolve this problem, logout and login again with your correct username.
-error.permissionDenied.reason3=Your blog server's database connection is misconfigured. To resolve this problem, see your system adminstrator.
-
-# ----------------------------------------------------------------- error.jsp
-
-errorPage.title=Unexpected Exception
-errorPage.message=Roller has encountered and logged an unexpected exception.
-errorPage.reason=Reason
-errorPage.noException=No stack trace.
-
-# ------------------------------------------------- Success Messages in Actions
-pageCache.flushed=Page cache has been successfully flushed.
-
-# ---------------------------------------------------------- BookmarkForm.jsp
+# ----------------------------------------------------------------- BookmarkForm.jsp
 
 bookmarkForm.addBookmark=Add a New Bookmark
 bookmarkForm.cancel=Cancel
@@ -65,7 +17,7 @@
 bookmarkForm.url=Bookmark URL
 bookmarkForm.weight=Display Weight
 
-# --------------------------------------------------------- BookmarksForm.jsp
+# --------------------------------------------------------------- BookmarksForm.jsp
 
 bookmarksForm.addBookmark=Add Bookmark
 bookmarksForm.addFolder=Add Folder
@@ -86,19 +38,19 @@
 bookmarksForm.warn.notMoving=Can't move parent folder [{0}] into one of it's children 
 bookmarksForm.error.move=Error performing move, parent to child moves not allowed
 
-# ------------------------------------------------------ Bookmarks import.jsp
+# ------------------------------------------------------------- Bookmarks import.jsp
 
 bookmarksImport.title=Import OPML Bookmarks
 bookmarksImport.prompt=Import your OPML format bookmarks or newreader subscription file:
 
-# ------------------------------------------------------ Calendars
+# ------------------------------------------------------------------------ Calendars
 
 calendar.summary=Blog Archive Calendar
 calendar.prev=Prev
 calendar.today=Today
 calendar.next=Next
 
-# ---------------------------------------------------------- CategoryForm.jsp
+# ----------------------------------------------------------------- CategoryForm.jsp
 
 categoryForm.name=Name
 categoryForm.description=Description
@@ -109,7 +61,7 @@
 categoryForm.addCategory=Add Category
 categoryForm.correctCategory=Correct Category
 
-# ---------------------------------------------------------- CategoriesForm.jsp
+# --------------------------------------------------------------- CategoriesForm.jsp
 
 categoriesForm.name=Name
 categoriesForm.description=Description
@@ -127,7 +79,7 @@
 categoriesForm.warn.notMoving=Can't move parent category [{0}] into one of it's children 
 categoriesForm.error.move=Error performing move, parent to child moves not allowed
 
-# ------------------------------------------------------- CategoryDeleteOK.jsp
+# ------------------------------------------------------------- CategoryDeleteOK.jsp
 
 categoryDeleteOK.removeCategory=Remove Weblog Category
 categoryDeleteOK.warningCatInUse=WARNING: This category is in use!
@@ -136,7 +88,7 @@
 categoryDeleteOK.noEntriesInCat=There are no weblog entries in this category, OK to delete.
 categoryDeleteOK.areYouSure=Are you sure you want to delete this weblog category?
 
-# ------------------------------------------------------------- comments.jsp
+# --------------------------------------------------------------------- comments.jsp
 
 comments.title=Comment
 comments.header=Post a comment
@@ -157,18 +109,18 @@
 comments.mathAuthenticatorQuestion=Please answer this simple math question
 error.commentAuthFailed=Comment authentication failed!
 
-# ------------------------------------------------------------- comments-preview.jsp
+# ------------------------------------------------------------ comments-preview.jsp
 
 comments.preview.title=Comment
 comments.preview=PREVIEW
 comments.preview.edit=Edit your comment
 
-# ------------------------------------------------------------- comments-display.jsp
+# ------------------------------------------------------------ comments-display.jsp
 
 comments.postedBy=Posted by
 comments.at=at
 
-# --------------------------------------------------------- Configuration
+# ------------------------------------------------------------------- Configuration
 
 configForm.title=Roller Configuration
 
@@ -214,7 +166,14 @@
 
 configForm.saved=Configuration settings saved
 
-#---------------------------------------------------------- Error messages 
+# ------------------------------------------------------------------- Comment emails
+
+email.comment.wrote=wrote
+email.comment.anonymous=An anonymous user wrote
+email.comment.respond=Respond to this comment at
+email.comment.title=Comment
+
+#-------------------------------------------------------------------- Error messages 
 
 error.add.blogcat=Error adding Weblog Category
 error.add.blogentry=Error adding Weblog Entry 
@@ -283,14 +242,71 @@
 errorPage.message=Roller has encountered and logged an unexpected exception.
 errorPage.reason=Reason
 
-# ------------------------------------------------------------ Footer
+#----------------------------------------------------------------- Struts Validator
+
+errors.header=<div class="error"><ul>
+errors.footer=</ul></div>
+
+error.internationalized={0}
+
+errors.required={0} is required.
+errors.minlength={0} can not be less than {1} characters.
+errors.maxlength={0} can not be greater than {1} characters.
+errors.invalid={0} is invalid.
+errors.byte={0} must be a byte.
+errors.short={0} must be a short.
+errors.integer={0} must be an integer.
+errors.long={0} must be a long.
+errors.float={0} must be a float.
+errors.double={0} must be a double.
+errors.date={0} is not a date.
+errors.range={0} is not in the range {1} through {2}.
+errors.creditcard={0} is an invalid credit card number.
+errors.email={0} may only include letters, numbers, and spaces.
+errors.noslashes={0} may not include '/' slash characters.
+error.noTrackbackUrlSpecified=You did not specify a Trackback URL
+
+error.title.403=Access Denied (403)
+error.text.403=You do not have the privilege necessary to access the page you requested.
+
+error.title.404=Sorry! We couldn't find your document (404)
+error.text.404=The file that you requested could not be found on this server. 
+
+error.permissions.deniedSave=Access Denied (you logged in as a different user?)
+
+error.permissionDenied.title=Permission Denied
+error.permissionDenied.prompt=Possible causes:
+error.permissionDenied.reason1=You tried to save an object from "stale" web page, left by an earlier login under a different user account.
+error.permissionDenied.reason2=You logged in using incorrect capitalization of your username. To resolve this problem, logout and login again with your correct username.
+error.permissionDenied.reason3=Your blog server's database connection is misconfigured. To resolve this problem, see your system adminstrator.
+
+# ----------------------------------------------------------------------- error.jsp
+
+errorPage.title=Unexpected Exception
+errorPage.message=Roller has encountered and logged an unexpected exception.
+errorPage.reason=Reason
+errorPage.noException=No stack trace.
+
+# ------------------------------------------------------------------- FolderForm.jsp
+
+folderForm.name=Name
+folderForm.save=Save
+folderForm.cancel=Cancel
+folderForm.description=Description
+folderForm.addFolder=Add New Bookmark Folder
+folderForm.editFolder=Edit Bookmark Folder
+folderForm.correctFolder=Correct Bookmark Folder edits
+
+folderForm.save.exception=ERROR saving folder, perhaps name is not unique? The error message is: {0}
+
+# -------------------------------------------------------------------------- Footer
 
 footer.reportIssue=Report an Issue
 footer.userGuide=User Guide
 footer.macros=Macros
 footer.mailingLists=Mailing Lists
 
-# ------------------------------------------------------------ Login
+# --------------------------------------------------------------------------- Login
 
 loginPage.userName=Username
 loginPage.password=Password
@@ -298,7 +314,80 @@
 loginPage.login=Login
 loginPage.reset=Reset
 
-# ------------------------------------------------------------ Main page
+# ------------------------------------------------------------------ Bookmark Macro
+
+macro.bookmark.urlFeed=URL of site's RSS feed
+macro.bookmark.error=The requested Bookmark Folder does not exist: {0}
+
+# ------------------------------------------------------------------ Referer Macro
+
+macro.referer.furtherReading=For further reading on today's posts:
+macro.referer.todaysHits=Today's Page Hits:
+
+# ----------------------------------------------------------------------- RSS Macro
+
+macro.rss.all=All
+macro.rss.excerpts=excerpts
+
+# ------------------------------------------------------------- Search Results Macro
+
+macro.searchresults.results=Search Results
+macro.searchresults.title=Define '{0}' on Dictionary.com
+macro.searchresults.searchFor=You searched {0} for
+macro.searchresults.hits_1=<strong>{0}</strong> entries found.<br /><em>You can also
+macro.searchresults.hits_2=try this same search</a> on <a href="http://google.com">Google</a>.</em>
+macro.searchresults.again=Search Again
+
+# -------------------------------------------------------- Search Results Day Macro
+
+macro.searchresultsday.entrypermalink.title=Permanent link to this weblog entry
+macro.searchresultsday.userpermalink.title=Link to user's home page
+macro.searchresultsday.categorypermalink.title=Show entries for this category
+
+# -------------------------------------------------------------------- Weblog Macro
+
+macro.weblog.daypermalink.title=Permanent link to this day
+macro.weblog.entrypermalink.title=Permanent link to this weblog entry
+macro.weblog.entrypermalink.edit=Edit
+macro.weblog.comments=Comments
+macro.weblog.comment=Comment
+macro.weblog.addcomment=Add a Comment
+macro.weblog.datepattern=MMMMM dd, yyyy 'at' hh:mm aa z
+macro.weblog.date.timestampFormat=MMM dd yyyy, hh:mm:ss a z
+macro.weblog.date.toStringFormat=EEEE MMMM dd, yyyy
+macro.weblog.preview=Preview
+macro.weblog.commentpermalink.title=comment permalink
+
+macro.weblog.postedby=Posted by
+macro.weblog.on=on
+macro.weblog.postedbywebsite=<br/>Website: <a rel="nofollow" href="{0}">{1}</a>
+macro.weblog.website=<br/>Website: <a href="{0}">{1}</a>
+macro.weblog.name=Name:
+macro.weblog.email=E-Mail:
+macro.weblog.url=URL:
+macro.weblog.rememberinfo=Remember Information?
+macro.weblog.yourcomment=Your Comment:
+macro.weblog.htmlsyntax=HTML Syntax:
+macro.weblog.htmldisabled=Disabled
+macro.weblog.htmlenabled=Enabled
+macro.weblog.commentwarning=Please enter a comment.
+macro.weblog.postcommentHeader=Post a Comment:
+macro.weblog.postcomment=Post Comment
+macro.weblog.post=Post
+macro.weblog.clear=Clear Info
+macro.weblog.searchalert=Please enter a search term to continue.
+macro.weblog.searchbutton=Search
+macro.weblog.searchdictionary=You searched this site for "<a href="http://dictionary.com/search?q={0}" title="Define '{1}' on Dictionary.com" class="dictionary">{2}</a>".
+macro.weblog.searchhits=<strong>{0}</strong> entries found.
+macro.weblog.searchagain=Search Again
+macro.weblog.searchgoogle=<em>You can also <a href="http://google.com/search?q={0}%20site:{1}/page/{3}" class="google">try this same search</a> on <a href="http://google.com">Google</a>.</em>
+macro.weblog.trackback=Trackback URL:
+macro.weblog.editentry=Edit
+macro.weblog.allcategories=All
+macro.weblog.nolanguages=This site does not support multiple langauges.
+macro.weblog.notifyMeOfComments=Notify me by email of new comments
+
+# ----------------------------------------------------------------------- Main page
 
 mainPage.recentEntries=Recent Weblog Entries
 mainPage.pinnedEntries=Featured Weblog Entries
@@ -312,7 +401,7 @@
 mainPage.rss.tip=Combined RSS feed for site.
 mainPage.loggedInAs=Logged in as
 
-# ------------------------------------------------------------ Maintenance
+# --------------------------------------------------------------------- Maintenance
 
 maintenance.title=Website Maintenance
 maintenance.prompt.index=Rebuild the search index for your Roller Website.
@@ -335,7 +424,7 @@
 newUser.created=New user successfully created. Create another?
 newUser.error.mismatchedPasswords=ERROR: passwords to not match
 
-# ------------------------------------------------------------ Navigation Bar
+# ------------------------------------------------------------------- Navigation Bar
 
 navigationBar.header=Navigation
 navigationBar.main=Main
@@ -345,7 +434,7 @@
 navigationBar.login=Login
 navigationBar.register=Register
 
-# ------------------------------------------------------------ Page management
+# ------------------------------------------------------------------ Page management
 
 pagesForm.title=Page Templates
 pagesForm.name=Name
@@ -360,8 +449,9 @@
 pagesForm.add=Add
 pagesForm.emptyPage=Empty page...
 
+pageCache.flushed=Page cache has been successfully flushed.
 
-# ------------------------------------------------------------ Page edit
+# ------------------------------------------------------------------------ Page edit
 
 pageForm.editPage=Edit Page
 pageForm.name=Name
@@ -371,66 +461,239 @@
 pageForm.save=Save
 pageForm.save.success=Page updated successfully.
 
-# ------------------------------------------------------------ FolderForm.jsp
+# -------------------------------------------------------- Ping Target Admin/Editing
 
-folderForm.name=Name
-folderForm.save=Save
-folderForm.cancel=Cancel
-folderForm.description=Description
-folderForm.addFolder=Add New Bookmark Folder
-folderForm.editFolder=Edit Bookmark Folder
-folderForm.correctFolder=Correct Bookmark Folder edits
+commonPingTargets.commonPingTargets=Common Weblog Ping Targets
+commonPingTargets.explanation=These target sites are available to all users for weblog update pings.
 
-folderForm.save.exception=ERROR saving folder, perhaps name is not unique? The error message is: {0}
+customPingTargets.customPingTargets=Custom Weblog Ping Targets
+customPingTargets.explanation=Use this page to setup sites that you wish to ping that are not already available from the \
+common sites.  Sites will normally advertise a ping url that you should use.  Sites that you configure here are only available \
+for your own use.
 
-# ------------------------------------------------------------- referers.jsp
+customPingTargets.disAllowedExplanation=The use of custom ping targets has been disabled on this site. \
+To get an additional common ping target added, please contact an administrator.
 
-referers.todaysReferers=Today's Referer Rankings
-referers.url=Referring URL
-referers.hits=Day Hits
-referers.deleteSelected=Delete Selected
+pings.title=Configure Automatic Weblog Pings
+pings.explanation=Pings allow you to notify sites that your weblog has changed so that the sites can read your feed to retrieve updates. \
+You can enable automatic pings for sites that you wish to notify whenever your weblog changes. You can also trigger pings manually \
+to specific sites from this page.  <strong>Note:</strong> Normally, you are expected to register your weblog with a site before starting \
+to send that site pings.
+pings.commonPingTargets=Common Ping Targets
+pings.commonPingTargetsExplanation=These ping targets have been configured by the site administrator for use by all users. \
+You can send pings to any of these well-known sites.
+pings.customPingTargets=Custom Ping Targets
+pings.customPingTargetsExplanationEmpty=You can also add sites yourself using the menu item <strong>Custom Ping Targets</strong>. \
+Your custom ping targets are only available for your own use.   Currently you have no custom ping targets.
+pings.customPingTargetsExplanationNonEmpty=These are sites you have set up for yourself as custom ping targets.  These are \
+only available for your own use.
 
-referers.hitCounters=Hit Counters
-referers.reset=Reset Hit Count
+ping.successful=The ping was successful.
+ping.transmittedButErrorReturned=The ping was transmitted but the server responded with the following error message.
+ping.transmissionFailed=The ping transmission failed.  Check to make sure the ping target URL is correct.
+ping.unknownHost=The hostname in the ping target URL is unknown.
+ping.networkConnectionFailed=There were network connection problems reaching the ping target site.
+ping.pingProcessingIsSuspended=Ping processing has been suspended temporarily by a site administrator.
+pingResult.OK=OK
 
-referers.deletedReferers=Deleted specified referers
-referers.noReferersSpecified=You did not specify any referers to delete
+pingTarget.pingTarget=Ping Target
+pingTarget.name=Name
+pingTarget.pingUrl=Ping URL
+pingTarget.addNew=Add New
+pingTarget.save=Save
+pingTarget.edit=Edit
+pingTarget.remove=Remove
+pingTarget.confirmRemoveTitle=Remove Ping Target Confirmation
+pingTarget.confirmCommonRemove=Removing this target will also remove all user's automatic ping configurations that use this target.  Are you sure?
+pingTarget.confirmCustomRemove=Removing this target will also remove all of your automatic ping configurations that use this target. Are you sure?
+pingTarget.removeOK=Yes, Remove
+pingTarget.cancel=No, Cancel
+pingTarget.enable=Enable
+pingTarget.enabled=ON
+pingTarget.disable=Disable
+pingTarget.disabled=OFF
+pingTarget.auto=Automatic
+pingTarget.manual=Manual
+pingTarget.sendPingNow=Send Ping Now
 
-# ------------------------------------------------------------- Search Form
+pingTarget.nameNotUnique=The name of this target conflicts with another one in the same set of targets.
+pingTarget.malformedUrl=The URL is not properly formed.
+pingTarget.unknownHost=The hostname in this URL doesn't seem to exist.
 
-searchForm.button=Search
-searchForm.alert=Please enter a search term to continue.
+# ------------------------------------------------------------------- Planet Roller
 
-# ------------------------------------------------------------- Tabbed Menu
+planet.rankings=Technorati Rankings
+planet.hotBlogs=Hot Blogs On-site
+planet.links=links
 
-tabbedmenu.main=Main
-tabbedmenu.weblog=Weblog
-tabbedmenu.weblog.newEntry=New Entry
-tabbedmenu.weblog.archives=Archives
-tabbedmenu.weblog.categories=Categories
-tabbedmenu.weblog.referers=Referers
-tabbedmenu.weblog.pingSetup=Pings
-tabbedmenu.weblog.customPingTargets=Custom Ping Targets
-tabbedmenu.weblog.export=Export
+planetConfig.pageTitle=Planet Configuration
+planetConfig.prompt=Configure Planet Roller
+planetConfig.title=Title
+planetConfig.adminEmail=Admin E-mail
+planetConfig.cacheDir=Cache Directory
+planetConfig.siteUrl=Site URL
+planetConfig.proxyHost=Proxy Host URL
+planetConfig.proxyPort=Proxy Host Port
+
+planetConfig.title.control=Planet Control
+planetConfig.prompt.control=Launch background tasks (for testing purposes only)
+
+planetConfig.numWebsites=Number of Roller hosted websites
+planetConfig.numSubscrtions=Number of Roller hosted subscriptions
+
+planetConfig.button.post=Save
+planetConfig.button.refreshEntries=Refresh Entries
+planetConfig.button.syncWebsites=Synchronize Roller Websites
+
+planetConfig.success.saved=Configuration saved
+planetConfig.success.refreshed=Refresh operation started
+planetConfig.success.synced=Website synchronization started
+planetConfig.error.cacheDirNotFound=Cache directory not found
+planetConfig.error.cacheDirNotWritable=Cache directory not writable
+planetConfig.error.badProxyPort=Proxy port is invalid
+
+planetConfig.tip.title=Title to be used in newsfeed header
+planetConfig.tip.adminEmail=E-mail address to be used in newsfeed header
+planetConfig.tip.cacheDir=Directory where newsfeed data will be cached
+planetConfig.tip.siteUrl=URL to be used in newsfeed header
+planetConfig.tip.proxyHost=URL of proxy host (if required)
+planetConfig.tip.proxyPort=Port of proxy host (if required)
+
+
+
+planetSubscriptions.pageTitle=Planet Subscriptions
+planetSubscriptions.prompt.add=Add a subscription
+planetSubscriptions.prompt.edit=Edit an existing subscription
+planetSubscriptions.existingTitle=Existing Subscriptions
+planetSubscriptions.existingPrompt=Select a subscription to edit
+planetSubscriptions.unconfigured=Planet Roller not yet configured
+planetSubscription.edit=Edit
+
+planetSubscriptions.column.title=Title
+planetSubscriptions.column.feedUrl=Feed URL
+planetSubscriptions.column.edit=Edit
+
+planetSubscription.tip.title=Title of blog
+planetSubscription.tip.siteUrl=URL of blog
+planetSubscription.tip.feedUrl=URL of blog newsfeed
+
+planetSubscription.title=Title
+planetSubscription.feedUrl=Feed URL
+planetSubscription.siteUrl=Site URL
+
+planetSubscriptions.button.save=Save
+planetSubscriptions.button.cancel=Cancel
+planetSubscriptions.button.delete=Delete
+
+planetSubscription.edit.tip=Edit this subscription
+
+planetSubscription.success.deleted=Subscription successfully deleted
+planetSubscription.success.saved=Saved subscription
+
+planetSubscription.error=Must specify feed URL
+planetSubscription.error.title=Title is required
+planetSubscription.error.feedUrl=Feed URL is required
+planetSubscription.error.siteUrl=Site URL is required
+planetSubscriptions.error.duringSave=Duplicate subscription? - {0}
+planetSubscription.error.deleting=Error deleting object
+
+
+planetGroups.pageTitle=Custom Planet Groups
+planetGroups.prompt.add=Add a custom aggregation group
+planetGroups.prompt.edit=Edit an existing aggregation group
+planetGroups.existingTitle=Existing Custom Aggregation Groups
+planetGroups.existingPrompt=Select an aggregation group to edit
+planetGroups.unconfigured=Planet Roller not yet configured
+planetGroups.edit=Edit
+
+planetGroups.column.title=Title
+planetGroups.column.feedUrl=Feed URL
+planetGroups.column.edit=Edit
+planetGroups.column.subscriptions=Subscriptions
+planetGroups.column.handle=Handle
+
+planetGroups.tip.title=Title of group
+planetGroups.tip.handle=Handle of this group
+planetGroups.tip.subscriptions=Edit group subscriptions
+planetGroups.edit.tip=Edit this group
+
+planetGroups.title=Title
+planetGroups.handle=Handle
+
+planetGroups.button.save=Save
+planetGroups.button.cancel=Cancel
+planetGroups.button.delete=Delete
+
+planetGroups.success.deleted=Group successfully deleted
+planetGroups.success.saved=Saved group
+
+planetGroups.error.title=Title is required
+planetGroups.error.handle=Handle is required
+planetGroups.error.duringSave=Duplicate group? - {0}
+planetGroups.error.nameReserved=Can't use handle 'all' or 'external'
+planetGroups.error.deleting=Error deleting object
+
+# --------------------------------------------------------------------- referers.jsp
+
+referers.todaysReferers=Today's Referer Rankings
+referers.url=Referring URL
+referers.hits=Day Hits
+referers.deleteSelected=Delete Selected
+
+referers.hitCounters=Hit Counters
+referers.reset=Reset Hit Count
+
+referers.deletedReferers=Deleted specified referers
+referers.noReferersSpecified=You did not specify any referers to delete
+
+# ---------------------------------------------------------------------- Search Form
+
+searchForm.button=Search
+searchForm.alert=Please enter a search term to continue.
+
+# ---------------------------------------------------------------------- Tabbed Menu
+
+tabbedmenu.main=Main
+tabbedmenu.website.user=Your profile
+tabbedmenu.user.websites=Your websites
+tabbedmenu.newWebsite=New website
+
+tabbedmenu.weblog=Weblog
+tabbedmenu.weblog.newEntry=New Entry
+tabbedmenu.weblog.archives=Archives
+tabbedmenu.weblog.categories=Categories
+tabbedmenu.weblog.referers=Referers
+tabbedmenu.weblog.pingSetup=Pings
+tabbedmenu.weblog.customPingTargets=Custom Ping Targets
+tabbedmenu.weblog.export=Export
 tabbedmenu.weblog.import=Import
 tabbedmenu.weblog.flushCache=Flush Cache
+
 tabbedmenu.bookmarks=Bookmarks
 tabbedmenu.bookmarks.allFolders=All Folders
 tabbedmenu.bookmarks.import=Import
+
 tabbedmenu.website=Website
 tabbedmenu.website.settings=Settings
-tabbedmenu.website.themes=Theme
-tabbedmenu.website.pages=Page Templates
 tabbedmenu.website.files=Files
-tabbedmenu.website.user=User
+tabbedmenu.website.themes=Theme
+tabbedmenu.website.pages=Templates
+tabbedmenu.website.members=Members
+tabbedmenu.website.inviteMember=Invite Member
 tabbedmenu.website.maintenance=Maintenance
+
 tabbedmenu.admin=Admin
 tabbedmenu.admin.config=Configuration
 tabbedmenu.admin.userAdmin=User Admin
 tabbedmenu.admin.createUser=New User
 tabbedmenu.admin.pingTargets=Ping Targets
 
-# ------------------------------------------------------------- Theme
+tabbedmenu.planet=Planet
+tabbedmenu.admin.planetConfig=Configuration
+tabbedmenu.admin.planetSubscriptions=External Subscriptions
+tabbedmenu.admin.planetGroups=Custom Groups
+
+# ---------------------------------------------------------------------------- Theme
 
 themeEditor.title=Website Theme
 themeEditor.selectTheme=Select a new theme to preview
@@ -442,7 +705,7 @@
 themeEditor.save=Save
 themeEditor.cancel=Cancel
 
-# ------------------------------------------------------------- Uploads
+# -------------------------------------------------------------------------- Uploads
 
 uploadFiles.title=File Uploads
 uploadFiles.manageFiles=Manage Uploaded Files
@@ -455,7 +718,7 @@
 
 uploadFiles.button.delete=Delete Selected
 
-# ------------------------------------------------------------- User admin
+# ---------------------------------------------------------------------- User admin
 
 userAdmin.searchUserTitle=Find user to edit
 userAdmin.editUserTitle=Edit user [{0}]
@@ -481,7 +744,7 @@
 userAdmin.userAdmin=Administrator
 userAdmin.warning=NOTE: This operation cannot be undone !!
 
-# ------------------------------------------------------------- User settings
+# -------------------------------------------------------------------- User settings
 
 userSettings.userSettings=User Settings
 userSettings.username=Username
@@ -497,66 +760,7 @@
 userSettings.saved=User settings were successfully saved.
 userSettings.needPasswordTwice=Must enter both password and confirmation password.
 
-# -------------------------------------------------------------- Ping Target Admin/Editing
-
-commonPingTargets.commonPingTargets=Common Weblog Ping Targets
-commonPingTargets.explanation=These target sites are available to all users for weblog update pings.
-
-customPingTargets.customPingTargets=Custom Weblog Ping Targets
-customPingTargets.explanation=Use this page to setup sites that you wish to ping that are not already available from the \
-common sites.  Sites will normally advertise a ping url that you should use.  Sites that you configure here are only available \
-for your own use.
-
-customPingTargets.disAllowedExplanation=The use of custom ping targets has been disabled on this site. \
-To get an additional common ping target added, please contact an administrator.
-
-pings.title=Configure Automatic Weblog Pings
-pings.explanation=Pings allow you to notify sites that your weblog has changed so that the sites can read your feed to retrieve updates. \
-You can enable automatic pings for sites that you wish to notify whenever your weblog changes. You can also trigger pings manually \
-to specific sites from this page.  <strong>Note:</strong> Normally, you are expected to register your weblog with a site before starting \
-to send that site pings.
-pings.commonPingTargets=Common Ping Targets
-pings.commonPingTargetsExplanation=These ping targets have been configured by the site administrator for use by all users. \
-You can send pings to any of these well-known sites.
-pings.customPingTargets=Custom Ping Targets
-pings.customPingTargetsExplanationEmpty=You can also add sites yourself using the menu item <strong>Custom Ping Targets</strong>. \
-Your custom ping targets are only available for your own use.   Currently you have no custom ping targets.
-pings.customPingTargetsExplanationNonEmpty=These are sites you have set up for yourself as custom ping targets.  These are \
-only available for your own use.
-
-ping.successful=The ping was successful.
-ping.transmittedButErrorReturned=The ping was transmitted but the server responded with the following error message.
-ping.transmissionFailed=The ping transmission failed.  Check to make sure the ping target URL is correct.
-ping.unknownHost=The hostname in the ping target URL is unknown.
-ping.networkConnectionFailed=There were network connection problems reaching the ping target site.
-ping.pingProcessingIsSuspended=Ping processing has been suspended temporarily by a site administrator.
-pingResult.OK=OK
-
-pingTarget.pingTarget=Ping Target
-pingTarget.name=Name
-pingTarget.pingUrl=Ping URL
-pingTarget.addNew=Add New
-pingTarget.save=Save
-pingTarget.edit=Edit
-pingTarget.remove=Remove
-pingTarget.confirmRemoveTitle=Remove Ping Target Confirmation
-pingTarget.confirmCommonRemove=Removing this target will also remove all user's automatic ping configurations that use this target.  Are you sure?
-pingTarget.confirmCustomRemove=Removing this target will also remove all of your automatic ping configurations that use this target. Are you sure?
-pingTarget.removeOK=Yes, Remove
-pingTarget.cancel=No, Cancel
-pingTarget.enable=Enable
-pingTarget.enabled=ON
-pingTarget.disable=Disable
-pingTarget.disabled=OFF
-pingTarget.auto=Automatic
-pingTarget.manual=Manual
-pingTarget.sendPingNow=Send Ping Now
-
-pingTarget.nameNotUnique=The name of this target conflicts with another one in the same set of targets.
-pingTarget.malformedUrl=The URL is not properly formed.
-pingTarget.unknownHost=The hostname in this URL doesn't seem to exist.
-
-# ------------------------------------------------------------- Weblog edit
+# ---------------------------------------------------------------------- Weblog edit
 
 weblogEdit.actionCol=Actions
 weblogEdit.autoformat=Autoformat
@@ -641,14 +845,14 @@
 
 weblogEdit.message.mediaCastProblem=Problem processing MediaCast, invalid URL?
 
-# ------------------------------------------------------------- Weblog Entry Remove 
+# -------------------------------------------------------------- Weblog Entry Remove 
 
 weblogEntryRemove.removeWeblogEntry=Remove Weblog Entry
 weblogEntryRemove.yes=Yes
 weblogEntryRemove.no=No
 weblogEntryRemove.areYouSure=Are you sure you want to remove this Weblog Entry? 
 
-# ------------------------------------------------------------- Weblog Entry Export/Import
+# ------------------------------------------------------ Weblog Entry Export/Import
 weblogEntryExport.title=Export Entries 
 weblogEntryExport.exportSuccess={0} 
 weblogEntryExport.exportFiles={0} 
@@ -658,7 +862,7 @@
 weblogEntryImport.XMLFile=XML file:
 weblogEntryImport.button.import=Import
 
-# ------------------------------------------------------------- Weblog Entry Export/Import
+# ------------------------------------------------------ Weblog Entry Export/Import
 
 weblogEntryQuery.title=Weblog Entry Archive
 
@@ -698,7 +902,7 @@
 weblogEntryQuery.button.query=Query
 weblogEntryQuery.button.export=Export
 
-# ------------------------------------------------------------- Weblog Main
+# ---------------------------------------------------------------------- Weblog Main
 
 weblogMain.search=Search
 weblogMain.navigation=Navigation
@@ -708,7 +912,7 @@
 weblogMain.archives=Archives
 weblogMain.poweredBy=Powered By
 
-# ------------------------------------------------------------- Website 
+# -------------------------------------------------------------------------- Website 
 
 websiteSettings.title=Website Settings
 websiteSettings.websiteTitle=Title
@@ -732,7 +936,7 @@
 websiteSettings.button.update=Update Website Settings
 websiteSettings.button.rebuildIndex=Rebuild Search Index
 
-# ------------------------------------------------------------ Welcome new user
+# ----------------------------------------------------------------- Welcome new user
 
 welcome.title=Welcome to Roller
 welcome.accountCreated=Your new user account has been created.
@@ -740,204 +944,4 @@
 welcome.rssAddressIs=Your main newsfeed address is
 welcome.clickHere=Click here
 welcome.toLoginAndPost=to login and post your first Weblog entry.
-
-# ------------------------------------------------------------- Bookmark Macro
-
-macro.bookmark.urlFeed=URL of site's RSS feed
-macro.bookmark.error=The requested Bookmark Folder does not exist: {0}
-
-# ------------------------------------------------------------- Referer Macro
-
-macro.referer.furtherReading=For further reading on today's posts:
-macro.referer.todaysHits=Today's Page Hits:
-
-# ------------------------------------------------------------- RSS Macro
-
-macro.rss.all=All
-macro.rss.excerpts=excerpts
-
-# ------------------------------------------------------------- Search Results Macro
-
-macro.searchresults.results=Search Results
-macro.searchresults.title=Define '{0}' on Dictionary.com
-macro.searchresults.searchFor=You searched {0} for
-macro.searchresults.hits_1=<strong>{0}</strong> entries found.<br /><em>You can also
-macro.searchresults.hits_2=try this same search</a> on <a href="http://google.com">Google</a>.</em>
-macro.searchresults.again=Search Again
-
-# ------------------------------------------------------------- Search Results Day Macro
-
-macro.searchresultsday.entrypermalink.title=Permanent link to this weblog entry
-macro.searchresultsday.userpermalink.title=Link to user's home page
-macro.searchresultsday.categorypermalink.title=Show entries for this category
-
-# ------------------------------------------------------------- Weblog Macro
-
-macro.weblog.daypermalink.title=Permanent link to this day
-macro.weblog.entrypermalink.title=Permanent link to this weblog entry
-macro.weblog.entrypermalink.edit=Edit
-macro.weblog.comments=Comments
-macro.weblog.comment=Comment
-macro.weblog.addcomment=Add a Comment
-macro.weblog.datepattern=MMMMM dd, yyyy 'at' hh:mm aa z
-macro.weblog.date.timestampFormat=MMM dd yyyy, hh:mm:ss a z
-macro.weblog.date.toStringFormat=EEEE MMMM dd, yyyy
-macro.weblog.preview=Preview
-macro.weblog.commentpermalink.title=comment permalink
-
-macro.weblog.postedby=Posted by
-macro.weblog.on=on
-macro.weblog.postedbywebsite=<br/>Website: <a rel="nofollow" href="{0}">{1}</a>
-macro.weblog.website=<br/>Website: <a href="{0}">{1}</a>
-macro.weblog.name=Name:
-macro.weblog.email=E-Mail:
-macro.weblog.url=URL:
-macro.weblog.rememberinfo=Remember Information?
-macro.weblog.yourcomment=Your Comment:
-macro.weblog.htmlsyntax=HTML Syntax:
-macro.weblog.htmldisabled=Disabled
-macro.weblog.htmlenabled=Enabled
-macro.weblog.commentwarning=Please enter a comment.
-macro.weblog.postcommentHeader=Post a Comment:
-macro.weblog.postcomment=Post Comment
-macro.weblog.post=Post
-macro.weblog.clear=Clear Info
-macro.weblog.searchalert=Please enter a search term to continue.
-macro.weblog.searchbutton=Search
-macro.weblog.searchdictionary=You searched this site for "<a href="http://dictionary.com/search?q={0}" title="Define '{1}' on Dictionary.com" class="dictionary">{2}</a>".
-macro.weblog.searchhits=<strong>{0}</strong> entries found.
-macro.weblog.searchagain=Search Again
-macro.weblog.searchgoogle=<em>You can also <a href="http://google.com/search?q={0}%20site:{1}/page/{3}" class="google">try this same search</a> on <a href="http://google.com">Google</a>.</em>
-macro.weblog.trackback=Trackback URL:
-macro.weblog.editentry=Edit
-macro.weblog.allcategories=All
-macro.weblog.nolanguages=This site does not support multiple langauges.
-macro.weblog.notifyMeOfComments=Notify me by email of new comments
-
-
-# ------------------------------------------------------------------- Comment emails
-
-email.comment.wrote=wrote
-email.comment.anonymous=An anonymous user wrote
-email.comment.respond=Respond to this comment at
-email.comment.title=Comment
-
-
-# ------------------------------------------------------------------- Planet Roller
-
-tabbedmenu.planet=Planet
-tabbedmenu.admin.planetConfig=Configuration
-tabbedmenu.admin.planetSubscriptions=External Subscriptions
-tabbedmenu.admin.planetGroups=Custom Groups
-
-planet.rankings=Technorati Rankings
-planet.hotBlogs=Hot Blogs On-site
-planet.links=links
-
-planetConfig.pageTitle=Planet Configuration
-planetConfig.prompt=Configure Planet Roller
-planetConfig.title=Title
-planetConfig.adminEmail=Admin E-mail
-planetConfig.cacheDir=Cache Directory
-planetConfig.siteUrl=Site URL
-planetConfig.proxyHost=Proxy Host URL
-planetConfig.proxyPort=Proxy Host Port
-
-planetConfig.title.control=Planet Control
-planetConfig.prompt.control=Launch background tasks (for testing purposes only)
-
-planetConfig.numWebsites=Number of Roller hosted websites
-planetConfig.numSubscrtions=Number of Roller hosted subscriptions
-
-planetConfig.button.post=Save
-planetConfig.button.refreshEntries=Refresh Entries
-planetConfig.button.syncWebsites=Synchronize Roller Websites
-
-planetConfig.success.saved=Configuration saved
-planetConfig.success.refreshed=Refresh operation started
-planetConfig.success.synced=Website synchronization started
-planetConfig.error.cacheDirNotFound=Cache directory not found
-planetConfig.error.cacheDirNotWritable=Cache directory not writable
-planetConfig.error.badProxyPort=Proxy port is invalid
-
-planetConfig.tip.title=Title to be used in newsfeed header
-planetConfig.tip.adminEmail=E-mail address to be used in newsfeed header
-planetConfig.tip.cacheDir=Directory where newsfeed data will be cached
-planetConfig.tip.siteUrl=URL to be used in newsfeed header
-planetConfig.tip.proxyHost=URL of proxy host (if required)
-planetConfig.tip.proxyPort=Port of proxy host (if required)
-
-
-
-planetSubscriptions.pageTitle=Planet Subscriptions
-planetSubscriptions.prompt.add=Add a subscription
-planetSubscriptions.prompt.edit=Edit an existing subscription
-planetSubscriptions.existingTitle=Existing Subscriptions
-planetSubscriptions.existingPrompt=Select a subscription to edit
-planetSubscriptions.unconfigured=Planet Roller not yet configured
-planetSubscription.edit=Edit
-
-planetSubscriptions.column.title=Title
-planetSubscriptions.column.feedUrl=Feed URL
-planetSubscriptions.column.edit=Edit
-
-planetSubscription.tip.title=Title of blog
-planetSubscription.tip.siteUrl=URL of blog
-planetSubscription.tip.feedUrl=URL of blog newsfeed
-
-planetSubscription.title=Title
-planetSubscription.feedUrl=Feed URL
-planetSubscription.siteUrl=Site URL
-
-planetSubscriptions.button.save=Save
-planetSubscriptions.button.cancel=Cancel
-planetSubscriptions.button.delete=Delete
-
-planetSubscription.edit.tip=Edit this subscription
-
-planetSubscription.success.deleted=Subscription successfully deleted
-planetSubscription.success.saved=Saved subscription
-
-planetSubscription.error=Must specify feed URL
-planetSubscription.error.title=Title is required
-planetSubscription.error.feedUrl=Feed URL is required
-planetSubscription.error.siteUrl=Site URL is required
-planetSubscriptions.error.duringSave=Duplicate subscription? - {0}
-planetSubscription.error.deleting=Error deleting object
-
-
-planetGroups.pageTitle=Custom Planet Groups
-planetGroups.prompt.add=Add a custom aggregation group
-planetGroups.prompt.edit=Edit an existing aggregation group
-planetGroups.existingTitle=Existing Custom Aggregation Groups
-planetGroups.existingPrompt=Select an aggregation group to edit
-planetGroups.unconfigured=Planet Roller not yet configured
-planetGroups.edit=Edit
-
-planetGroups.column.title=Title
-planetGroups.column.feedUrl=Feed URL
-planetGroups.column.edit=Edit
-planetGroups.column.subscriptions=Subscriptions
-planetGroups.column.handle=Handle
-
-planetGroups.tip.title=Title of group
-planetGroups.tip.handle=Handle of this group
-planetGroups.tip.subscriptions=Edit group subscriptions
-planetGroups.edit.tip=Edit this group
-
-planetGroups.title=Title
-planetGroups.handle=Handle
-
-planetGroups.button.save=Save
-planetGroups.button.cancel=Cancel
-planetGroups.button.delete=Delete
-
-planetGroups.success.deleted=Group successfully deleted
-planetGroups.success.saved=Saved group
-
-planetGroups.error.title=Title is required
-planetGroups.error.handle=Handle is required
-planetGroups.error.duringSave=Duplicate group? - {0}
-planetGroups.error.nameReserved=Can't use handle 'all' or 'external'
-planetGroups.error.deleting=Error deleting object
 

Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/editor-menu.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/editor-menu.xml?rev=219574&r1=219573&r2=219574&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/editor-menu.xml (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/editor-menu.xml Mon Jul 18 14:52:20 2005
@@ -22,15 +22,21 @@
 <menu-bar>
 
     <menu name="tabbedmenu.main" roles="any" perms="any">
-        <menu-item forward="planet"   name="tabbedmenu.planet" 
-                                      perms="any" roles="any" 
-                                      enabledProperty="planet.aggregator.enabled" />
-        <menu-item forward="main"     name="tabbedmenu.main"    
-                                      perms="any" roles="any" 
-                                      disabledProperty="planet.aggregator.enabled" />
-        <menu-item forward="editUser" name="tabbedmenu.website.user"
-                                      perms="any"
-                                      roles="editor,admin" />
+        <menu-item forward="planet"       name="tabbedmenu.planet" 
+                                          perms="any" roles="any" 
+                                          enabledProperty="planet.aggregator.enabled" />
+        <menu-item forward="main"         name="tabbedmenu.main"    
+                                          perms="any" roles="any" 
+                                          disabledProperty="planet.aggregator.enabled" />
+        <menu-item forward="yourProfile"  name="tabbedmenu.website.user"
+                                          perms="any"
+                                          roles="editor,admin" />
+        <menu-item forward="yourWebsites" name="tabbedmenu.user.websites"
+                                          perms="any"
+                                          roles="editor,admin" />
+        <menu-item forward="newWebsite"   name="tabbedmenu.newWebsite"
+                                          perms="any"
+                                          roles="editor,admin" />
     </menu>
     
     <menu name="tabbedmenu.weblog" perms="admin,author,limited">
@@ -55,11 +61,13 @@
     </menu>
 
     <menu name="tabbedmenu.website">
-        <menu-item forward="editWebsite" name="tabbedmenu.website.settings" />
-        <menu-item forward="editTheme"   name="tabbedmenu.website.themes" />
-        <menu-item forward="editPages"   name="tabbedmenu.website.pages" />
-        <menu-item forward="uploadFiles" name="tabbedmenu.website.files" />
-        <menu-item forward="maintenance" name="tabbedmenu.website.maintenance" />
+        <menu-item forward="editWebsite"       name="tabbedmenu.website.settings" />
+        <menu-item forward="uploadFiles"       name="tabbedmenu.website.files" />
+        <menu-item forward="editTheme"         name="tabbedmenu.website.themes" />
+        <menu-item forward="editPages"         name="tabbedmenu.website.pages" />
+        <menu-item forward="memberPermissions" name="tabbedmenu.website.members" />
+        <menu-item forward="inviteMember"      name="tabbedmenu.website.inviteMember" />
+        <menu-item forward="maintenance"       name="tabbedmenu.website.maintenance" />
     </menu>
 
     <menu name="tabbedmenu.admin" roles="admin">

Modified: incubator/roller/branches/roller_2.0/web/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/index.jsp?rev=219574&r1=219573&r2=219574&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/index.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/index.jsp Mon Jul 18 14:52:20 2005
@@ -1,2 +1,5 @@
 <%@ page language="java" %>	
+<jsp:forward page="yourWebsites.do?rmik=tabbedmenu.main&rmk=tabbedmenu.yourWebsites" />
+<%--
 <jsp:forward page="main.do?rmik=tabbedmenu.main&rmk=tabbedmenu.main" />
+--%>
\ No newline at end of file

Added: incubator/roller/branches/roller_2.0/web/website/InviteMember.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/InviteMember.jsp?rev=219574&view=auto
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/InviteMember.jsp (added)
+++ incubator/roller/branches/roller_2.0/web/website/InviteMember.jsp Mon Jul 18 14:52:20 2005
@@ -0,0 +1,7 @@
+<%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
+
+<h1><fmt:message key="inviteMember.title" /></h1>
+    
+<%@ include file="/theme/footer.jsp" %>
+
+

Added: incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp?rev=219574&view=auto
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp (added)
+++ incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp Mon Jul 18 14:52:20 2005
@@ -0,0 +1,7 @@
+<%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
+
+<h1><fmt:message key="newWebsite.title" /></h1>
+    
+<%@ include file="/theme/footer.jsp" %>
+
+

Added: incubator/roller/branches/roller_2.0/web/website/YourWebsites.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/YourWebsites.jsp?rev=219574&view=auto
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/YourWebsites.jsp (added)
+++ incubator/roller/branches/roller_2.0/web/website/YourWebsites.jsp Mon Jul 18 14:52:20 2005
@@ -0,0 +1,27 @@
+<%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
+
+<h1><fmt:message key="yourWebsites.title" /></h1>
+    
+<script type="text/javascript">
+<!--
+function selectWebsite(id) {
+    document.yourWebsitesForm.websiteId.value = id;
+    document.yourWebsitesForm.submit();
+} 
+-->
+</script>
+
+<html:form action="/editor/yourWebsites" method="post">
+    <input type="hidden" name="websiteId" value="" />
+    <input type="hidden" name="method" value="select" />		  
+</html:form>
+
+<c:forEach var="website" items="${model.websites}">
+    <a href='javascript:selectWebsite("<c:out value='${website.id}'/>")'>
+        <c:out value="${website.handle}" /><br />
+    </a>
+</c:forEach>
+
+<%@ include file="/theme/footer.jsp" %>
+
+

Modified: incubator/roller/branches/roller_2.0/web/website/theme-editor.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/theme-editor.jsp?rev=219574&r1=219573&r2=219574&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/theme-editor.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/theme-editor.jsp Mon Jul 18 14:52:20 2005
@@ -3,9 +3,9 @@
 String username = "";
 try
 {
-    RollerRequest rreq = RollerRequest.getRollerRequest(request);
-    UserData ud = rreq.getUser();
-    username = ud.getUserName();
+    RollerSession rollerSession = RollerSession.getRollerSession(request);
+    WebsiteData wd = rollerSession.getCurrentWebsite();
+    username = wd.getHandle();
 }
 catch (Exception e)
 {