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/03 16:48:09 UTC

svn commit: r227232 - in /incubator/roller/branches/roller_2.0: src/org/roller/business/hibernate/ src/org/roller/model/ src/org/roller/presentation/tags/menu/ src/org/roller/presentation/velocity/ src/org/roller/presentation/weblog/actions/ web/ web/W...

Author: snoopdave
Date: Wed Aug  3 07:47:58 2005
New Revision: 227232

URL: http://svn.apache.org/viewcvs?rev=227232&view=rev
Log:
Further refinements to group blogging UI

Modified:
    incubator/roller/branches/roller_2.0/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
    incubator/roller/branches/roller_2.0/src/org/roller/model/UserManager.java
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/CommentServlet.java
    incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java
    incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties
    incubator/roller/branches/roller_2.0/web/WEB-INF/classes/log4j.properties
    incubator/roller/branches/roller_2.0/web/WEB-INF/classes/roller.properties
    incubator/roller/branches/roller_2.0/web/WEB-INF/editor-menu.xml
    incubator/roller/branches/roller_2.0/web/login-redirect.jsp
    incubator/roller/branches/roller_2.0/web/main.jsp
    incubator/roller/branches/roller_2.0/web/theme/roller.css
    incubator/roller/branches/roller_2.0/web/theme/status.jsp
    incubator/roller/branches/roller_2.0/web/weblog/WeblogEdit.jsp
    incubator/roller/branches/roller_2.0/web/weblog/WeblogEditSidebar.jsp
    incubator/roller/branches/roller_2.0/web/website/InviteMember.jsp
    incubator/roller/branches/roller_2.0/web/website/MemberPermissions.jsp
    incubator/roller/branches/roller_2.0/web/website/YourWebsites.jsp
    incubator/roller/branches/roller_2.0/web/website/welcome.jsp

Modified: incubator/roller/branches/roller_2.0/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/business/hibernate/HibernateUserManagerImpl.java?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/business/hibernate/HibernateUserManagerImpl.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/business/hibernate/HibernateUserManagerImpl.java Wed Aug  3 07:47:58 2005
@@ -10,10 +10,10 @@
 
 import net.sf.hibernate.Criteria;
 import net.sf.hibernate.HibernateException;
-import net.sf.hibernate.Query;
 import net.sf.hibernate.Session;
 import net.sf.hibernate.expression.EqExpression;
 import net.sf.hibernate.expression.Expression;
+import net.sf.hibernate.expression.MatchMode;
 import net.sf.hibernate.expression.Order;
 
 import org.apache.commons.logging.Log;
@@ -585,6 +585,46 @@
         {
             throw new RollerException(e);
         }
+    }
+
+    public List getUsersStartingWith(String startsWith, 
+            int offset, int length, Boolean enabled) throws RollerException
+    {
+        Session session = ((HibernateStrategy)mStrategy).getSession();
+        Criteria criteria = session.createCriteria(UserData.class);  
+        List rawresults = new ArrayList();
+        List results = new ArrayList();
+        if (enabled != null)
+        {
+            criteria.add(Expression.eq("isEnabled", Boolean.TRUE));
+        }
+        if (startsWith != null) 
+        {
+            criteria.add(Expression.disjunction()
+                .add(Expression.like("userName", startsWith, MatchMode.START))
+                .add(Expression.like("emailAddress", startsWith, MatchMode.START)));
+        }
+        try
+        {
+            rawresults = criteria.list();
+        }
+        catch (HibernateException e)
+        {
+            throw new RollerException(e);
+        }
+        int pos = 0;
+        int count = 0;
+        Iterator iter = rawresults.iterator();
+        while (iter.hasNext() && count < length)
+        {
+            UserData user = (UserData)iter.next();
+            if (pos++ >= offset) 
+            {
+                results.add(user);
+                count++;
+            }
+        }
+        return results;
     }
 }
 

Modified: incubator/roller/branches/roller_2.0/src/org/roller/model/UserManager.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/model/UserManager.java?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/model/UserManager.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/model/UserManager.java Wed Aug  3 07:47:58 2005
@@ -250,6 +250,17 @@
      * Remove contents of website.
      */
     public void removeWebsiteContents(WebsiteData data) throws RollerException;
+
+    /**
+     * Returns users whose usernames or email addresses start with a string.
+     * @param startsWith String to match userNames and emailAddresses against
+     * @param offset     Offset into results (for paging)
+     * @param length     Max to return (for paging)
+     * @param enabled    True for only enalbed, false for disabled, null for all
+     * @return List of (up to length) users that match startsWith string
+     */
+    public List getUsersStartingWith(String startsWith, 
+            int offset, int length, Boolean enabled) throws RollerException;
 }
 
 

Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java Wed Aug  3 07:47:58 2005
@@ -113,9 +113,10 @@
             while (roles.hasNext())
             {
                 String role = (String)roles.next();
-                if (    req.isUserInRole(role) 
-                     || role.equals("any")
-                     || (role.equals("admin") && rollerSession.isAdminUser()))  
+                if (    req.isUserInRole(role) || role.equals("any")
+                     || (role.equals("admin") 
+                             && rollerSession != null 
+                             && rollerSession.isAdminUser()))  
                 {
                     ret = true;
                     break;
@@ -126,7 +127,8 @@
         // finally make sure that user has required website permissions
         if (ret && mPerms != null && mPerms.size() > 0)
         {
-            UserData user = rollerSession.getAuthenticatedUser();
+            UserData user = null;
+            if (rollerSession != null) user = rollerSession.getAuthenticatedUser();
             WebsiteData website = RollerSession.getRollerSession(req).getCurrentWebsite();
             PermissionsData permsData = null;
             if (user != null && website != null) 

Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/CommentServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/CommentServlet.java?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/CommentServlet.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/velocity/CommentServlet.java Wed Aug  3 07:47:58 2005
@@ -269,7 +269,8 @@
      * Re-index the WeblogEntry so that the new comment gets indexed.
      * @param entry
      */
-    private void reindexEntry(Roller roller, WeblogEntryData entry) throws RollerException
+    private void reindexEntry(Roller roller, WeblogEntryData entry) 
+    throws RollerException
     {
         IndexManager manager = roller.getIndexManager();
 
@@ -308,16 +309,22 @@
 
     // Email notification
 
-    // agangolli: Incorporated suggested changes from Ken Blackler, with server-wide configurable options
+    // agangolli: Incorporated suggested changes from Ken Blackler, with server-wide 
+    // configurable options
     // TODO: Make the addressing options configurable on a per-website basis.
 
     private static final String EMAIL_ADDR_REGEXP = "^.*@.*[.].{2,}$";
 
-    // Servlet init params that control how messages are addressed server-wide.  These default to false for old behavior
-    // Controls whether the owner and commenters get separate messages (owner's message contains a link to the entry edit page).
-    private static final String SEPARATE_OWNER_MSG_PARAM = CommentServlet.class.getName() + ".separateOwnerMessage";
-    // Controls whether the commenters addresses are placed in a Bcc header or a visible address field
-    private static final String HIDE_COMMENTER_ADDRESSES_PARAM = CommentServlet.class.getName() + ".hideCommenterAddresses";
+    // Servlet init params that control how messages are addressed server-wide.  
+    // These default to false for old behavior
+    // Controls whether the owner and commenters get separate messages (owner's 
+    // message contains a link to the entry edit page).
+    private static final String SEPARATE_OWNER_MSG_PARAM = 
+        CommentServlet.class.getName() + ".separateOwnerMessage";
+    // Controls whether the commenters addresses are placed in a Bcc header or 
+    // a visible address field
+    private static final String HIDE_COMMENTER_ADDRESSES_PARAM = 
+        CommentServlet.class.getName() + ".hideCommenterAddresses";
 
 
     /**
@@ -349,14 +356,17 @@
         }
 
         // Send e-mail to owner and subscribed users (if enabled)
-        boolean notify = RollerRuntimeConfig.getBooleanProperty("users.comments.emailnotify");
+        boolean notify = RollerRuntimeConfig.getBooleanProperty(
+                "users.comments.emailnotify");
         if (notify && site.getEmailComments().booleanValue())
         {
             // Determine message and addressing options from init parameters
             boolean separateMessages = 
-                    RollerConfig.getBooleanProperty("comment.notification.separateOwnerMessage");
+                    RollerConfig.getBooleanProperty(
+                            "comment.notification.separateOwnerMessage");
             boolean hideCommenterAddrs = 
-                    RollerConfig.getBooleanProperty("comment.notification.hideCommenterAddresses");
+                    RollerConfig.getBooleanProperty(
+                            "comment.notification.hideCommenterAddresses");
 
             //------------------------------------------
             // --- Determine the "from" address
@@ -400,12 +410,14 @@
 
             //------------------------------------------
             // --- Form the messages to be sent -
-            // For simplicity we always build separate owner and commenter messages even if sending a single one
+            // For simplicity we always build separate owner and commenter messages 
+            // even if sending a single one
             
             // Determine with mime type to use for e-mail
             StringBuffer msg = new StringBuffer();
             StringBuffer ownermsg = new StringBuffer();
-            boolean escapeHtml = RollerRuntimeConfig.getBooleanProperty("users.comments.escapehtml");
+            boolean escapeHtml = 
+                RollerRuntimeConfig.getBooleanProperty("users.comments.escapehtml");
                         
             if (!escapeHtml)
             {
@@ -510,22 +522,27 @@
                 {
                     // Send separate messages to owner and commenters
                     sendMessage(session, from,
-                        new String[]{website.getEmailAddress()}, null, null, subject, ownermsg.toString(), isHtml);
+                        new String[]{website.getEmailAddress()}, 
+                        null, null, subject, ownermsg.toString(), isHtml);
                     if (commenterAddrs.length > 0)
                     {
-                        // If hiding commenter addrs, they go in Bcc: otherwise in the To: of the second message
+                        // If hiding commenter addrs, they go in Bcc: otherwise in 
+                        // the To: of the second message
                         String[] to = hideCommenterAddrs ? null : commenterAddrs;
                         String[] bcc = hideCommenterAddrs ? commenterAddrs : null;
-                        sendMessage(session, from, to, null, bcc, subject, msg.toString(), isHtml);
+                        sendMessage(session, from, to, null, bcc, 
+                                subject, msg.toString(), isHtml);
 
                     }
                 }
                 else
                 {
-                    // Single message.  User in To: header, commenters in either cc or bcc depending on hiding option
+                    // Single message.  User in To: header, commenters in either cc 
+                    // or bcc depending on hiding option
                     String[] cc = hideCommenterAddrs ? null : commenterAddrs;
                     String[] bcc = hideCommenterAddrs ? commenterAddrs : null;
-                    sendMessage(session, from, new String[]{website.getEmailAddress()}, cc, bcc, subject,
+                    sendMessage(session, from, 
+                        new String[]{website.getEmailAddress()}, cc, bcc, subject,
                         ownermsg.toString(), isHtml);
                 }
             }
@@ -546,9 +563,11 @@
         } // if email enabled
     }
 
-    // This is somewhat ridiculous, but avoids duplicating a bunch of logic in the already messy sendEmailNotification
-    private void sendMessage(Session session, String from, String[] to, String[] cc, String[] bcc, String subject,
-                             String msg, boolean isHtml) throws MessagingException
+    // This is somewhat ridiculous, but avoids duplicating a bunch of logic in the 
+    // already messy sendEmailNotification
+    private void sendMessage(Session session, String from, String[] to, String[] cc, 
+            String[] bcc, String subject,
+            String msg, boolean isHtml) throws MessagingException
     {
         if (isHtml)
             MailUtil.sendHTMLMessage(session, from, to, cc, bcc, subject, msg);

Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/actions/WeblogEntryFormAction.java Wed Aug  3 07:47:58 2005
@@ -6,17 +6,24 @@
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;
 import java.net.URLEncoder;
 import java.sql.Timestamp;
+import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
+import java.util.ResourceBundle;
 
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -33,6 +40,7 @@
 import org.apache.struts.action.ActionMessage;
 import org.apache.struts.action.ActionMessages;
 import org.apache.struts.actions.DispatchAction;
+import org.apache.struts.util.RequestUtils;
 import org.roller.RollerException;
 import org.roller.RollerPermissionsException;
 import org.roller.model.IndexManager;
@@ -42,6 +50,7 @@
 import org.roller.model.UserManager;
 import org.roller.model.WeblogManager;
 import org.roller.pojos.CommentData;
+import org.roller.pojos.PermissionsData;
 import org.roller.pojos.UserData;
 import org.roller.pojos.WeblogEntryData;
 import org.roller.pojos.WebsiteData;
@@ -52,6 +61,7 @@
 import org.roller.presentation.pagecache.PageCacheFilter;
 import org.roller.presentation.velocity.PageHelper;
 import org.roller.presentation.weblog.formbeans.WeblogEntryFormEx;
+import org.roller.util.MailUtil;
 import org.roller.util.Utilities;
 
 import com.swabunga.spell.event.SpellCheckEvent;
@@ -311,8 +321,10 @@
                 if (!rses.isUserAuthorizedToAuthor() && 
                         rses.isUserAuthorized() && entry.isPending())
                 {
+                    notifyWebsiteAuthorsOfPendingEntry(request, entry);
                     uiMessages.add(null, 
                             new ActionMessage("weblogEdit.submitedForReview"));
+                    
                 }
                 else 
                 {
@@ -341,6 +353,102 @@
         return forward;
     }
     
+    /**
+     * Inform authors and admins of entry's website that entry is pending.
+     * @param entry
+     * @throws RollerException
+     * @throws MalformedURLException
+     */
+    private void notifyWebsiteAuthorsOfPendingEntry(
+            HttpServletRequest request, WeblogEntryData entry) 
+    {
+        try
+        {
+            Roller roller = RollerFactory.getRoller();
+            UserManager umgr = roller.getUserManager();
+            javax.naming.Context ctx = (javax.naming.Context)
+                new InitialContext().lookup("java:comp/env");
+            Session mailSession = 
+                (Session)ctx.lookup("mail/Session");
+            if (mailSession != null)
+            {
+                String userName = entry.getCreator().getUserName();
+                String from = entry.getCreator().getEmailAddress();
+                String cc[] = new String[] {from};
+                String bcc[] = new String[0];
+                String to[];
+                String subject;
+                String content;
+                
+                // list of enabled website authors and admins
+                ArrayList reviewers = new ArrayList();
+                List websiteUsers = umgr.getUsers(entry.getWebsite(), Boolean.TRUE);
+                
+                // build list of reviewers (website users with author permission)
+                Iterator websiteUserIter = websiteUsers.iterator();
+                while (websiteUserIter.hasNext())
+                {
+                    UserData websiteUser = (UserData)websiteUserIter.next();
+                    if (entry.getWebsite().hasUserPermissions(
+                            websiteUser, PermissionsData.AUTHOR)
+                         && websiteUser.getEmailAddress() != null) 
+                    {
+                        reviewers.add(websiteUser.getEmailAddress());
+                    }
+                }
+                to = (String[])reviewers.toArray(new String[reviewers.size()]);
+                
+                // Figure URL to entry edit page
+                RollerContext rc = RollerContext.getRollerContext(request);
+                String rootURL = rc.getAbsoluteContextUrl(request);
+                if (rootURL == null || rootURL.trim().length()==0)
+                {
+                    rootURL = RequestUtils.serverURL(request) + request.getContextPath();
+                }               
+                String editURL = rootURL 
+                    + "/editor/weblog.do?method=edit&entryid=" + entry.getId(); 
+                
+                ResourceBundle resources = ResourceBundle.getBundle(
+                    "ApplicationResources", entry.getWebsite().getLocaleInstance());
+                StringBuffer sb = new StringBuffer();
+                sb.append(
+                    MessageFormat.format(
+                        resources.getString("weblogEntry.pendingEntrySubject"),
+                        new Object[] {entry.getWebsite().getName()})
+                );
+                subject = sb.toString();
+                sb = new StringBuffer();
+                sb.append(
+                    MessageFormat.format(
+                        resources.getString("weblogEntry.pendingEntryContent"),
+                        new Object[] { userName, userName, editURL })
+                );
+                content = sb.toString();
+                MailUtil.sendTextMessage(
+                        mailSession, from, to, cc, bcc, subject, content);
+            }
+        }
+        catch (NamingException e)
+        {
+            mLogger.error("ERROR: Notification email(s) not sent, "
+                    + "Roller's mail session not properly configured");
+        }
+        catch (MessagingException e)
+        {
+            mLogger.error("ERROR: Notification email(s) not sent, "
+                    + "due to Roller configuration or mail server problem.");
+        }
+        catch (MalformedURLException e)
+        {
+            mLogger.error("ERROR: Notification email(s) not sent, "
+                    + "Roller site URL is malformed?");
+        }
+        catch (RollerException e)
+        {
+            throw new RuntimeException("FATAL ERROR: unable to find Roller object");
+        }
+    }
+
     private boolean checkMediaCast(WeblogEntryData entry)
     {
         boolean valid = false;

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=227232&r1=227231&r2=227232&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 Wed Aug  3 07:47:58 2005
@@ -166,10 +166,10 @@
 
 configForm.saved=Configuration settings saved
 
-# ------------------------------------------------------------------- Create website
+# ------------------------------------------------------------------- Create weblog
 
-createWebsite.title=Create Website
-createWebsite.description=Create a new website by specifying handle, name, title, timezone/locale information and theme to be used.
+createWebsite.title=Create Weblog
+createWebsite.description=Create a new weblog by specifying handle, name, title, timezone/locale information and theme to be used.
 createWebsite.handle=Handle
 createWebsite.name=Name
 createWebsite.description=Description
@@ -180,8 +180,8 @@
 
 createWebsite.button.save=Create
 
-createWebsiteDone.title=Website Created
-createWebsiteDone.message=The following new website has been created:
+createWebsiteDone.title=Weblog Created
+createWebsiteDone.message=The following new weblog has been created:
 createWebsiteDone.name=Name
 createWebsiteDone.description=Description
 createWebsiteDone.handle=Handle
@@ -331,7 +331,7 @@
 # ------------------------------------------------------------------- Invite member
 
 inviteMember.title=Invite New Member
-inviteMember.description=You can invite any user to join this website
+inviteMember.description=You can invite any user to join this weblog
 inviteMember.userName=Username
 inviteMember.administrator=Admin
 inviteMember.author=Author
@@ -341,11 +341,11 @@
 inviteMember.button.save=Send Invitation
 
 inviteMember.error.userNotFound=User not found system
-inviteMember.error.userAlreadyInvited=User already invited to this website
-inviteMember.error.userAlreadyMember=User already a member of this website
+inviteMember.error.userAlreadyInvited=User already invited to this weblog
+inviteMember.error.userAlreadyMember=User already a member of this weblog
 
 inviteMemberDone.title=Invitation Sent
-inviteMemberDone.message=User [{0}] has been invited to join this website
+inviteMemberDone.message=User [{0}] has been invited to join this weblog
 inviteMemberDone.inviteAnother=Invite another
 
 # --------------------------------------------------------------------------- Login
@@ -445,22 +445,22 @@
 mainPage.actions=Actions
 mainPage.status=Status
 mainPage.loggedInAs=Logged in as
-mainPage.currentWebsite=Editing website
+mainPage.currentWebsite=Editing weblog
 
 # --------------------------------------------------------------------- Maintenance
 
-maintenance.title=Website Maintenance
-maintenance.prompt.index=Rebuild the search index for your Roller Website.
+maintenance.title=Weblog Maintenance
+maintenance.prompt.index=Rebuild the search index for your Roller weblog.
 maintenance.button.index=Rebuild Search Index
-maintenance.prompt.flush=Flush the page cache for your Roller Website.
+maintenance.prompt.flush=Flush the page cache for your Roller weblog.
 maintenance.button.flush=Flush Cache
-maintenance.message.indexed=Successully scheduled search index rebuild for your Roller Website
-maintenance.message.flushed=Successfully flushed the page cache of your Roller Website
+maintenance.message.indexed=Successully scheduled search index rebuild for your Roller weblog
+maintenance.message.flushed=Successfully flushed the page cache of your Roller weblog
 
 # --------------------------------------------------------------- Member permissions
 
 memberPermissions.title=Website Member Permissions
-memberPermissions.description=You can change permissions of website members, or remove them from the website.
+memberPermissions.description=You can change permissions of weblog members, or remove them from the weblog.
 memberPermissions.userName=Username
 memberPermissions.administrator=Admin
 memberPermissions.author=Author
@@ -472,7 +472,7 @@
 memberPermissions.membersRemoved=Removed {0} user(s)
 memberPermissions.membersChanged=Changed permission for {0} user(s)
 
-memberPermissions.confirmRemove=Are you sure you want to remove members from this website?
+memberPermissions.confirmRemove=Are you sure you want to remove members from this weblog?
 
 memberPermissions.button.save=Save
 
@@ -603,16 +603,16 @@
 planetConfig.title.control=Planet Control
 planetConfig.prompt.control=Launch background tasks (for testing purposes only)
 
-planetConfig.numWebsites=Number of Roller hosted websites
+planetConfig.numWebsites=Number of Roller hosted weblogs
 planetConfig.numSubscrtions=Number of Roller hosted subscriptions
 
 planetConfig.button.post=Save
 planetConfig.button.refreshEntries=Refresh Entries
-planetConfig.button.syncWebsites=Synchronize Roller Websites
+planetConfig.button.syncWebsites=Synchronize Roller weblogs
 
 planetConfig.success.saved=Configuration saved
 planetConfig.success.refreshed=Refresh operation started
-planetConfig.success.synced=Website synchronization started
+planetConfig.success.synced=weblog synchronization started
 planetConfig.error.cacheDirNotFound=Cache directory not found
 planetConfig.error.cacheDirNotWritable=Cache directory not writable
 planetConfig.error.badProxyPort=Proxy port is invalid
@@ -720,8 +720,8 @@
 
 tabbedmenu.main=Main
 tabbedmenu.website.user=Your Profile
-tabbedmenu.user.websites=Your Websites
-tabbedmenu.createWebsite=Create Website
+tabbedmenu.user.websites=Your Weblogs
+tabbedmenu.createWebsite=Create Weblog
 
 tabbedmenu.weblog=Weblog
 tabbedmenu.weblog.newEntry=New Entry
@@ -733,7 +733,7 @@
 tabbedmenu.website.files=Uploads
 
 
-tabbedmenu.website=Website
+tabbedmenu.website=Weblog Admin
 tabbedmenu.website.settings=Settings
 tabbedmenu.website.themes=Theme
 tabbedmenu.website.pages=Templates
@@ -746,7 +746,7 @@
 tabbedmenu.weblog.import=Import
 tabbedmenu.weblog.flushCache=Flush Cache
 
-tabbedmenu.admin=Admin
+tabbedmenu.admin=Global Admin
 tabbedmenu.admin.config=Configuration
 tabbedmenu.admin.userAdmin=User Admin
 tabbedmenu.admin.createUser=New User
@@ -759,7 +759,7 @@
 
 # ---------------------------------------------------------------------------- Theme
 
-themeEditor.title=Website Theme
+themeEditor.title=Weblog Theme
 themeEditor.selectTheme=Select a new theme to preview
 themeEditor.preview=Preview
 themeEditor.yourThemeIsShownBelow=Your current theme is shown below.
@@ -826,6 +826,15 @@
 
 # ---------------------------------------------------------------------- Weblog edit
 
+weblogEntry.pendingEntrySubject=Roller [{0}] new post pending review
+
+weblogEntry.pendingEntryContent=User [{0}] has submitted a new weblog entry \
+for your review. Please review this post and either publish it or save it as a \
+draft so that user [{1}] may edit it again.\
+\
+Link to edit the pending post:\
+<{2}>
+
 weblogEdit.actionCol=Actions
 weblogEdit.autoformat=Autoformat
 weblogEdit.calendarTitle=Weblog Entry Archive
@@ -985,7 +994,7 @@
 
 # -------------------------------------------------------------------------- Website 
 
-websiteSettings.title=Website Settings
+websiteSettings.title=Weblog Settings
 websiteSettings.websiteTitle=Title
 websiteSettings.websiteDescription=Description
 websiteSettings.templateSettings=Template Settings
@@ -1006,7 +1015,7 @@
 websiteSettings.editorSettings=Editor
 websiteSettings.commentSettings=Comments
 
-websiteSettings.button.update=Update Website Settings
+websiteSettings.button.update=Update Weblog Settings
 websiteSettings.button.rebuildIndex=Rebuild Search Index
 
 # ----------------------------------------------------------------- Welcome new user
@@ -1027,28 +1036,31 @@
 
 yourProfile.button.save=Save
 
-# ------------------------------------------------------------------- Your websites
+# ------------------------------------------------------------------- Your Weblogs
 
-yourWebsites.title=Your Websites
-yourWebsites.description=Click website title to select it as your current website.
-yourWebsites.invited=You've been invited to join the website
+yourWebsites.title=Your Weblogs
+yourWebsites.description=Click weblog title to select it as your current weblog.
+yourWebsites.invited=You've been invited to join the weblog
 yourWebsites.accept=accept
 yourWebsites.decline=decline
-yourWebsites.createWebsite=Create new website
+yourWebsites.createWebsite=Create new weblog
 yourWebsites.tableTitle=Title
 yourWebsites.tableDescription=Description
 yourWebsites.permissions=Permissions
 yourWebsites.select=Select
 yourWebsites.resign=Resign
-yourWebsites.confirmResignation=Are you sure you wish to resign from website
+yourWebsites.confirmResignation=Are you sure you wish to resign from weblog
+yourWebsites.youHaveNone=You have no weblogs.
+yourWebsites.youCanCreateOne=You may create one.
+yourWebsites.youCannot=Ask your administrator to create one for you.
 
-yourWebsites.invitations=Website Invitations
+yourWebsites.invitations=Weblog Invitations
 yourWebsites.invitationsPrompt=You have one or more invitations to accept or decline:
-yourWebsites.youAreInvited=You are invited to join website [{0}] - 
+yourWebsites.youAreInvited=You are invited to join weblog [{0}] - 
 
 
-yourWebsites.selected=You are now working in website [{0}]
-yourWebsites.declined=You have declined an invitation to join website [{0}]
-yourWebsites.accepted=You are now a member of website [{0}]
-yourWebsites.resigned=You have resigned from website [{0}]
+yourWebsites.selected=You are now working in weblog [{0}]
+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/log4j.properties
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/log4j.properties?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/log4j.properties (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/log4j.properties Wed Aug  3 07:47:58 2005
@@ -11,7 +11,8 @@
 log4j.appender.stdout.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} | %C{1}:%M | %m%n
 
 log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.File=${catalina.base}/logs/roller.log
+#log4j.appender.R.File=${catalina.base}/logs/roller.log
+log4j.appender.R.File=roller.log
 
 # Keep two 1MB log backup files
 log4j.appender.R.MaxFileSize=1MB

Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/roller.properties
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/roller.properties?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/roller.properties (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/roller.properties Wed Aug  3 07:47:58 2005
@@ -26,6 +26,12 @@
 
 #----------------------------------
 
+# user management settings
+
+users.registration.enabled=true
+
+#----------------------------------
+
 # upload settings
 uploads.dir=${user.home}/roller_data/uploads
 uploads.url=/resources

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=227232&r1=227231&r2=227232&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 Wed Aug  3 07:47:58 2005
@@ -47,7 +47,7 @@
         <menu-item forward="referers"     name="tabbedmenu.weblog.referers" />
     </menu>
 
-    <menu name="tabbedmenu.website">
+    <menu name="tabbedmenu.website" perms="admin">
         <menu-item forward="editWebsite"       name="tabbedmenu.website.settings" 
                                                perms="admin" />
         <menu-item forward="editTheme"         name="tabbedmenu.website.themes" 

Modified: incubator/roller/branches/roller_2.0/web/login-redirect.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/login-redirect.jsp?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/login-redirect.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/login-redirect.jsp Wed Aug  3 07:47:58 2005
@@ -1,14 +1,29 @@
 <%@ page language="java" errorPage="/error.jsp" contentType="text/html; charset=UTF-8" %><%@ 
 taglib uri="http://java.sun.com/jstl/core" prefix="c" %><%@ 
-taglib uri="http://www.rollerweblogger.org/tags" prefix="roller" %>
-<% request.setAttribute("secure_login", 
-    org.roller.config.RollerConfig.getProperty("securelogin.enabled")); %>
+taglib uri="http://www.rollerweblogger.org/tags" prefix="roller" %><%@ 
+page import="org.roller.model.*" %><%@
+page import="org.roller.pojos.*" %><%@
+page import="org.roller.config.RollerConfig" %><%@
+page import="org.roller.presentation.RollerSession" %><%@
+page import="java.util.List" %>
+<% request.setAttribute("secure_login", RollerConfig.getProperty("securelogin.enabled")); %>
 <c:if test='${secure_login == "true"}' >
   <roller:secure mode="unsecured" />
 </c:if>
 <%
-// ROLLER_2.0: if user has one website, then go to editor page instead (as before)
-String dest = "editor/yourWebsites.do?method=edit&rmik=tabbedmenu.user.websites";
-response.sendRedirect(dest);
+Roller roller = RollerFactory.getRoller();
+RollerSession rollerSession = RollerSession.getRollerSession(request);
+UserData user = rollerSession.getAuthenticatedUser();
+List websites = roller.getUserManager().getWebsites(user, Boolean.TRUE);
+if (websites.size() == 1) {
+    WebsiteData website = (WebsiteData)websites.get(0);
+    website.hasUserPermissions(user, PermissionsData.LIMITED);
+    rollerSession.setCurrentWebsite(website);
+    response.sendRedirect(
+        "editor/weblog.do?method=create&rmk=tabbedmenu.weblog&rmik=tabbedmenu.weblog.newEntry");
+} else {
+    response.sendRedirect(
+       "editor/yourWebsites.do?method=edit&rmik=tabbedmenu.user.websites");
+}
 %>
 

Modified: incubator/roller/branches/roller_2.0/web/main.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/main.jsp?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/main.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/main.jsp Wed Aug  3 07:47:58 2005
@@ -84,7 +84,7 @@
 
             </span>
 
-            <roller:ApplyPlugins name="post" scope="page" stripHtml="true" maxLength="60" skipFlag="true" />
+            <roller:ApplyPlugins name="post" scope="page" stripHtml="true" maxLength="200" skipFlag="true" />
 
          </div>
     </c:forEach>

Modified: incubator/roller/branches/roller_2.0/web/theme/roller.css
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/theme/roller.css?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/theme/roller.css (original)
+++ incubator/roller/branches/roller_2.0/web/theme/roller.css Wed Aug  3 07:47:58 2005
@@ -38,8 +38,8 @@
 input, select, option {
     font:small Verdana,Arial,Sans-serif;
     color:black;
-    font:x-small/1.5em Verdana, Arial, Helvetica, sans-serif;
-    font-size: 69%;
+    font:small/1.5em Verdana, Arial, Helvetica, sans-serif;
+    font-size: 100%;
 }
 
 p {

Modified: incubator/roller/branches/roller_2.0/web/theme/status.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/theme/status.jsp?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/theme/status.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/theme/status.jsp Wed Aug  3 07:47:58 2005
@@ -5,6 +5,7 @@
 WebsiteData website = rollerSession.getCurrentWebsite();
 boolean allowNewUsers = RollerConfig.getBooleanProperty("users.registration.enabled");
 %>
+<br />
 
 <table class="sidebarBox">
     <tr>

Modified: incubator/roller/branches/roller_2.0/web/weblog/WeblogEdit.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/weblog/WeblogEdit.jsp?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/weblog/WeblogEdit.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/weblog/WeblogEdit.jsp Wed Aug  3 07:47:58 2005
@@ -41,9 +41,7 @@
     postWeblogEntry();
 }
 function saveDraft() {
-    if (document.weblogEntryFormEx.status.value == "PUBLISHED" ) {
-        document.weblogEntryFormEx.status.value = "DRAFT";
-    } 
+    document.weblogEntryFormEx.status.value = "DRAFT"; 
     document.weblogEntryFormEx.method.value = "save";
     postWeblogEntry();
 }

Modified: incubator/roller/branches/roller_2.0/web/weblog/WeblogEditSidebar.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/weblog/WeblogEditSidebar.jsp?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/weblog/WeblogEditSidebar.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/weblog/WeblogEditSidebar.jsp Wed Aug  3 07:47:58 2005
@@ -25,7 +25,7 @@
 			           name="post" property="id" />
 			           <roller:linkparam id="method" value="edit" />
 			           <img src='<c:url value="/images/Edit16.png"/>' align="absmiddle" border="0" alt="icon" title="Edit" />
-			           <str:truncateNicely lower="23" upper="27">
+			           <str:truncateNicely lower="50">
 			              <c:out value="${post.title}" />
 			           </str:truncateNicely>
 			    </roller:link>
@@ -58,7 +58,7 @@
                            name="post" property="id" />
                            <roller:linkparam id="method" value="edit" />
                            <img src='<c:url value="/images/Edit16.png"/>' align="absmiddle" border="0" alt="icon" title="Edit" />
-                           <str:truncateNicely lower="23" upper="27">
+                           <str:truncateNicely lower="50">
                               <c:out value="${post.title}" />
                            </str:truncateNicely>
                     </roller:link>
@@ -90,7 +90,7 @@
                            name="post" property="id" />
                            <roller:linkparam id="method" value="edit" />
                            <img src='<c:url value="/images/Edit16.png"/>' align="absmiddle" border="0" alt="icon" title="Edit" />
-                           <str:truncateNicely lower="23" upper="27">
+                           <str:truncateNicely lower="50">
                               <c:out value="${post.title}" />
                            </str:truncateNicely>
                     </roller:link>

Modified: 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=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/InviteMember.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/InviteMember.jsp Wed Aug  3 07:47:58 2005
@@ -1,4 +1,69 @@
 <%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
+<script type="text/javascript">
+// <!--
+function createRequestObject() {
+    var ro;
+    var browser = navigator.appName;
+    if (browser == "Microsoft Internet Explorer") {
+        ro = new ActiveXObject("Microsoft.XMLHTTP");
+    } else {
+        ro = new XMLHttpRequest();
+    }
+    return ro;
+}
+var http = createRequestObject();
+var init = false;
+var userURL = "<%= request.getContextPath() %>" + "/userdata";
+
+function onUserNameFocus() {
+    if (!init) {
+        init = true;
+        sendUserRequest(userURL);
+    }
+}
+function onUserNameChange() {
+    userName = document.getElementById("userName");
+    if (userName.value.length > 0) {
+        sendUserRequest(userURL + "?startsWith=" + userName.value);
+    } else {
+        sendUserRequest(userURL);
+    }
+}
+function onUserSelected() {
+    userList = document.getElementById("userList");
+    user = userList.options[userList.options.selectedIndex];
+    userName = document.getElementById("userName");
+    userName.value = user.value;
+}
+function sendUserRequest(url) {
+    http.open('get', url);
+    http.onreadystatechange = handleUserResponse;
+    http.send(null);
+}
+function handleUserResponse() {
+    if (http.readyState == 4) {
+        userList = document.getElementById("userList");
+        for (i = userList.options.length; i >= 0; i--) {
+            userList.options[i] = null;
+        }   
+        //userList.onchange = null;
+        data = http.responseText;  
+        //alert(data);
+        if (data.indexOf("\n") != -1) {
+            lines = data.split('\n');
+            for (i = 0; i < lines.length; i++) {
+                if (lines[i].indexOf(',') != -1) {
+                   userArray = lines[i].split(',');
+                   userList.options[userList.length] = 
+                      new Option(userArray[0] + " (" + userArray[1] + ")", userArray[0]);
+                }
+            }
+        }  
+        //userList.onchange = onUserSelected();
+    }
+}
+// -->
+</script> 
 
 <h1><fmt:message key="inviteMember.title" /></h1>
 
@@ -9,10 +74,20 @@
     <div class="formrow">
        <label for="userName" class="formrow" />
            <fmt:message key="inviteMember.userName" /></label>
-       <html:text property="userName" size="30" maxlength="30" />
+       <div>
+           <input name="userName" id="userName" size="30" maxlength="30" 
+               onfocus="onUserNameFocus()" onkeyup="onUserNameChange()" /><br />
+       </div>
     </div>    
     
     <div class="formrow">
+       <label class="formrow" />&nbsp;</label>
+       <div>
+           <select id="userList" size="10" onchange="onUserSelected()" style="width:300px"></select>
+       </div>
+    </div>    
+    
+     <div class="formrow">
        <label for="userName" class="formrow" />
            <fmt:message key="inviteMember.permissions" /></label>
        <input type="radio" name="permissionsMask" value="3"  />
@@ -29,7 +104,7 @@
     </div>
     
 </html:form>
-    
+
 <%@ include file="/theme/footer.jsp" %>
 
 

Modified: incubator/roller/branches/roller_2.0/web/website/MemberPermissions.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/MemberPermissions.jsp?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/MemberPermissions.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/MemberPermissions.jsp Wed Aug  3 07:47:58 2005
@@ -10,7 +10,7 @@
             removing = true;
         }
     }
-    if (removing && !confirm("<c:out value='memberPermissions.confirmRemove' />")) return;
+    if (removing && !confirm("<fmt:message key='memberPermissions.confirmRemove' />")) return;
     document.memberPermissionsForm.submit();
 }
 // -->

Modified: 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=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/YourWebsites.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/YourWebsites.jsp Wed Aug  3 07:47:58 2005
@@ -52,50 +52,62 @@
                 <fmt:message key="yourWebsites.decline" />
             </a><br />
 	    </c:forEach>
+        <br />
     </c:if>
     
-    <c:if test="${!empty model.permissions}">
-	    <h1><fmt:message key="yourWebsites.title" /></h1>    
-	    <p><fmt:message key="yourWebsites.description" /></p>
-	    <table class="rollertable">
-	        <tr class="rHeaderTr">
-	           <th class="rollertable" width="20%">
-	               <fmt:message key="yourWebsites.tableTitle" />
-	           </th>
-	           <th class="rollertable" width="20%">
-	               <fmt:message key="yourWebsites.tableDescription" />
-	           </th>
-	           <th class="rollertable" width="20%">
-	               <fmt:message key="yourWebsites.permissions" />
-	           </th>
-	           <th class="rollertable" width="20%">
-	               <fmt:message key="yourWebsites.resign" />
-	           </th>
-	        </tr>
-	        <c:forEach var="perms" items="${model.permissions}">
-	            <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">  
-	               <td class="rollertable">
-	                   <a href='javascript:selectWebsite("<c:out value='${perms.website.id}'/>")'>
-	                       <c:out value="${perms.website.name}" />
-	                   </a>
-	               </td>
-	               <td class="rollertable">
-	                   <c:out value="${perms.website.description}" />
-	               </td>
-	               <td class="rollertable" align="center">
-	                   <c:if test="${perms.permissionMask == 0}" >LIMITED</c:if>
-	                   <c:if test="${perms.permissionMask == 1}" >AUTHOR</c:if>
-	                   <c:if test="${perms.permissionMask == 3}" >ADMIN</c:if>
-	               </td>
-	               <td class="rollertable" align="center">
-	                   <a href='javascript:resignWebsite("<c:out value='${perms.website.id}'/>","<c:out value="${perms.website.handle}" />")'>
-	                       <fmt:message key="yourWebsites.resign" />
-	                   </a>
-	               </td>
-	            </roller:row>
-	        </c:forEach>
-	    </table>
-    </c:if>
+    <c:choose>
+	    <c:when test="${!empty model.permissions}">
+            <h1><fmt:message key="yourWebsites.title" /></h1>    
+		    <p><fmt:message key="yourWebsites.description" /></p>
+		    <table class="rollertable">
+		        <tr class="rHeaderTr">
+		           <th class="rollertable" width="20%">
+		               <fmt:message key="yourWebsites.tableTitle" />
+		           </th>
+		           <th class="rollertable" width="20%">
+		               <fmt:message key="yourWebsites.tableDescription" />
+		           </th>
+		           <th class="rollertable" width="20%">
+		               <fmt:message key="yourWebsites.permissions" />
+		           </th>
+		           <th class="rollertable" width="20%">
+		               <fmt:message key="yourWebsites.resign" />
+		           </th>
+		        </tr>
+		        <c:forEach var="perms" items="${model.permissions}">
+		            <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">  
+		               <td class="rollertable">
+		                   <a href='javascript:selectWebsite("<c:out value='${perms.website.id}'/>")'>
+		                       <c:out value="${perms.website.name}" />
+		                   </a>
+		               </td>
+		               <td class="rollertable">
+		                   <c:out value="${perms.website.description}" />
+		               </td>
+		               <td class="rollertable" align="center">
+		                   <c:if test="${perms.permissionMask == 0}" >LIMITED</c:if>
+		                   <c:if test="${perms.permissionMask == 1}" >AUTHOR</c:if>
+		                   <c:if test="${perms.permissionMask == 3}" >ADMIN</c:if>
+		               </td>
+		               <td class="rollertable" align="center">
+		                   <a href='javascript:resignWebsite("<c:out value='${perms.website.id}'/>","<c:out value="${perms.website.handle}" />")'>
+		                       <fmt:message key="yourWebsites.resign" />
+		                   </a>
+		               </td>
+		            </roller:row>
+		        </c:forEach>
+		    </table>
+        </c:when>
+        <c:when test="${empty model.permissions}">
+            <h1><fmt:message key="yourWebsites.title" /></h1>    
+            <p><fmt:message key="yourWebsites.youHaveNone" /></p>
+            <p>
+                <roller:link page="/editor/createWebsite.do">
+                    <fmt:message key="yourWebsites.youCanCreateOne" />
+                </roller:link>
+            </p>            
+        </c:when>
+    </c:choose>
     
 </html:form>
 

Modified: incubator/roller/branches/roller_2.0/web/website/welcome.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/welcome.jsp?rev=227232&r1=227231&r2=227232&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/welcome.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/welcome.jsp Wed Aug  3 07:47:58 2005
@@ -4,11 +4,7 @@
 
 <p><fmt:message key="welcome.accountCreated" /></p>
 
-<p><b><fmt:message key="welcome.addressIs" />:</b> <c:out value="${weblogURL}"/></p>
-
-<p><b><fmt:message key="welcome.rssAddressIs" />:</b> <c:out value="${rssURL}"/></p>
-
-<p><a href='<c:out value="${contextURL}"/>/editor/weblog.do?method=create&amp;rmik=New%20Entry'><fmt:message key="welcome.clickHere" /></a> 
+<p><a href='<c:out value="${contextURL}"/>/login-redirect.jsp'><fmt:message key="welcome.clickHere" /></a> 
 <fmt:message key="welcome.toLoginAndPost" /></p>
 
 <%@ include file="/theme/footer.jsp" %>