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" /> </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&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" %>