You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by gh...@apache.org on 2013/07/29 13:21:24 UTC

svn commit: r1508000 - in /roller/trunk/app/src/main: java/org/apache/roller/weblogger/ui/struts2/editor/ resources/ webapp/WEB-INF/jsps/editor/ webapp/roller-ui/styles/

Author: ghuber
Date: Mon Jul 29 11:21:23 2013
New Revision: 1508000

URL: http://svn.apache.org/r1508000
Log:
Some testing......

Modified:
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java
    roller/trunk/app/src/main/resources/ApplicationResources.properties
    roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp
    roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Entries.jsp
    roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp
    roller/trunk/app/src/main/webapp/roller-ui/styles/roller.css

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java?rev=1508000&r1=1507999&r2=1508000&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java Mon Jul 29 11:21:23 2013
@@ -50,300 +50,309 @@ import org.apache.struts2.interceptor.va
  */
 public final class EntryEdit extends EntryBase {
 
-	private static Log log = LogFactory.getLog(EntryEdit.class);
+    private static Log log = LogFactory.getLog(EntryEdit.class);
 
-	// bean for managing form data
-	private EntryBean bean = new EntryBean();
+    // bean for managing form data
+    private EntryBean bean = new EntryBean();
 
-	// the entry we are editing
-	private WeblogEntry entry = null;
+    // the entry we are editing
+    private WeblogEntry entry = null;
 
-	// url to send trackback to
-	private String trackbackUrl = null;
-
-	public EntryEdit() {
-		this.actionName = "entryEdit";
-		this.desiredMenu = "editor";
-		this.pageTitle = "weblogEdit.title.editEntry";
-	}
-
-	@Override
-	public List<String> requiredWeblogPermissionActions() {
-		return Collections.singletonList(WeblogPermission.EDIT_DRAFT);
-	}
-
-	public void myPrepare() {
-		if (getBean().getId() != null) {
-			try {
-				WeblogEntryManager wmgr = WebloggerFactory.getWeblogger()
-						.getWeblogEntryManager();
-				setEntry(wmgr.getWeblogEntry(getBean().getId()));
-			} catch (WebloggerException ex) {
-				log.error(
-						"Error looking up entry by id - " + getBean().getId(),
-						ex);
-			}
-		}
-	}
-
-	/**
-	 * Show form for editing an existing entry.
-	 * 
-	 * @return String The result of the action.
-	 */
-	@SkipValidation
-	public String execute() {
-
-		// make sure we have an entry to edit and it belongs to the action
-		// weblog
-		if (getEntry() == null) {
-			return ERROR;
-		} else if (!getEntry().getWebsite().equals(getActionWeblog())) {
-			return DENIED;
-		}
-
-		// load bean with pojo data
-		getBean().copyFrom(getEntry(), getLocale());
-
-		return INPUT;
-	}
-
-	/**
-	 * Save weblog entry.
-	 * 
-	 * @return String The result of the action.
-	 */
-	public String save() {
-
-		// make sure we have an entry to edit and it belongs to the action
-		// weblog
-		if (getEntry() == null) {
-			return ERROR;
-		} else if (!getEntry().getWebsite().equals(getActionWeblog())) {
-			return DENIED;
-		}
-
-		if (!hasActionErrors())
-			try {
-				WeblogEntryManager weblogMgr = WebloggerFactory.getWeblogger()
-						.getWeblogEntryManager();
-
-				WeblogEntry entry = getEntry();
-
-				// set updatetime & pubtime
-				entry.setUpdateTime(new Timestamp(new Date().getTime()));
-				entry.setPubTime(getBean().getPubTime(getLocale(),
-						getActionWeblog().getTimeZoneInstance()));
-
-				// copy data to pojo
-				getBean().copyTo(entry);
-
-				// handle pubtime auto set
-				if (entry.isPublished()) {
-					if (entry.getPubTime() == null) {
-						// no time specified, use current time
-						entry.setPubTime(entry.getUpdateTime());
-					}
-
-					// if user does not have author perms then force PENDING
-					// status
-					if (!getActionWeblog().hasUserPermission(
-							getAuthenticatedUser(), WeblogPermission.POST)) {
-						entry.setStatus(WeblogEntry.PENDING);
-					}
-				}
-
-				// if user is an admin then apply pinned to main value as well
-				GlobalPermission adminPerm = new GlobalPermission(
-						Collections.singletonList(GlobalPermission.ADMIN));
-				if (WebloggerFactory.getWeblogger().getUserManager()
-						.checkPermission(adminPerm, getAuthenticatedUser())) {
-					entry.setPinnedToMain(getBean().getPinnedToMain());
-				}
-
-				if (!StringUtils.isEmpty(getBean().getEnclosureURL())) {
-					try {
-						// Fetch MediaCast resource
-						log.debug("Checking MediaCast attributes");
-						MediacastResource mediacast = MediacastUtil
-								.lookupResource(getBean().getEnclosureURL());
-
-						// set mediacast attributes
-						entry.putEntryAttribute("att_mediacast_url",
-								mediacast.getUrl());
-						entry.putEntryAttribute("att_mediacast_type",
-								mediacast.getContentType());
-						entry.putEntryAttribute("att_mediacast_length", ""
-								+ mediacast.getLength());
-
-					} catch (MediacastException ex) {
-						addMessage(getText(ex.getErrorKey()));
-					}
-				} else {
-					try {
-						// if MediaCast string is empty, clean out MediaCast
-						// attributes
-						weblogMgr.removeWeblogEntryAttribute(
-								"att_mediacast_url", entry);
-						weblogMgr.removeWeblogEntryAttribute(
-								"att_mediacast_type", entry);
-						weblogMgr.removeWeblogEntryAttribute(
-								"att_mediacast_length", entry);
-
-					} catch (WebloggerException e) {
-						addMessage(getText("weblogEdit.mediaCastErrorRemoving"));
-					}
-				}
-
-				if (log.isDebugEnabled()) {
-					log.debug("entry bean is ...\n" + getBean().toString());
-					log.debug("final status = " + entry.getStatus());
-					log.debug("updtime = " + entry.getUpdateTime());
-					log.debug("pubtime = " + entry.getPubTime());
-				}
-
-				log.debug("Saving entry");
-				weblogMgr.saveWeblogEntry(entry);
-				WebloggerFactory.getWeblogger().flush();
-
-				// notify search of the new entry
-				if (entry.isPublished()) {
-					reindexEntry(entry);
-				} else {
-					removeEntryIndex(entry);
-				}
-
-				// notify caches
-				CacheManager.invalidate(entry);
-
-				// Queue applicable pings for this update.
-				if (entry.isPublished()) {
-					WebloggerFactory.getWeblogger().getAutopingManager()
-							.queueApplicableAutoPings(entry);
-				}
-
-				if (entry.isPending()) {
-					// implies that entry just changed to pending
-					MailUtil.sendPendingEntryNotice(entry);
-					addMessage("weblogEdit.submittedForReview");
-				} else {
-					addMessage("weblogEdit.changesSaved");
-				}
-
-				return INPUT;
-
-			} catch (Exception e) {
-				log.error("Error saving new entry", e);
-				// TODO: i18n
-				addError("Error saving new entry");
-			}
-
-		return INPUT;
-	}
-
-	/**
-	 * Send trackback to a specific url.
-	 */
-	@SkipValidation
-	public String trackback() {
-
-		// make sure we have an entry to edit and it belongs to the action
-		// weblog
-		if (getEntry() == null) {
-			return ERROR;
-		} else if (!getEntry().getWebsite().equals(getActionWeblog())) {
-			return DENIED;
-		}
-
-		if (!StringUtils.isEmpty(getTrackbackUrl())) {
-			RollerMessages results = null;
-			try {
-				Trackback trackback = new Trackback(getEntry(),
-						getTrackbackUrl());
-				results = trackback.send();
-			} catch (TrackbackNotAllowedException ex) {
-				addError("error.trackbackNotAllowed");
-			} catch (Throwable t) {
-				log.error("Error sending trackback", t);
-				// TODO: error handling
-				addError("error.general", t.getMessage());
-			}
-
-			if (results != null) {
-				for (Iterator mit = results.getMessages(); mit.hasNext();) {
-					RollerMessage msg = (RollerMessage) mit.next();
-					if (msg.getArgs() == null) {
-						addMessage(msg.getKey());
-					} else {
-						addMessage(msg.getKey(), Arrays.asList(msg.getArgs()));
-					}
-				}
-
-				for (Iterator eit = results.getErrors(); eit.hasNext();) {
-					RollerMessage err = (RollerMessage) eit.next();
-					if (err.getArgs() == null) {
-						addError(err.getKey());
-					} else {
-						addError(err.getKey(), Arrays.asList(err.getArgs()));
-					}
-				}
-			}
-
-			// reset trackback url
-			setTrackbackUrl(null);
-
-		}
-
-		return INPUT;
-	}
-
-	/**
-	 * Get the list of all categories for the action weblog, not including root.
-	 */
-	public List<WeblogCategory> getCategories() {
-		try {
-			WeblogEntryManager wmgr = WebloggerFactory.getWeblogger()
-					.getWeblogEntryManager();
-			return wmgr.getWeblogCategories(getActionWeblog(), false);
-		} catch (WebloggerException ex) {
-			log.error(
-					"Error getting category list for weblog - " + getWeblog(),
-					ex);
-			return Collections.EMPTY_LIST;
-		}
-	}
-
-	public String getPreviewURL() {
-		return WebloggerFactory
-				.getWeblogger()
-				.getUrlStrategy()
-				.getPreviewURLStrategy(null)
-				.getWeblogEntryURL(getActionWeblog(), null,
-						getEntry().getAnchor(), true);
-	}
-
-	public EntryBean getBean() {
-		return bean;
-	}
-
-	public void setBean(EntryBean bean) {
-		this.bean = bean;
-	}
-
-	public WeblogEntry getEntry() {
-		return entry;
-	}
-
-	public void setEntry(WeblogEntry entry) {
-		this.entry = entry;
-	}
-
-	public String getTrackbackUrl() {
-		return trackbackUrl;
-	}
-
-	public void setTrackbackUrl(String trackbackUrl) {
-		this.trackbackUrl = trackbackUrl;
-	}
+    // url to send trackback to
+    private String trackbackUrl = null;
+
+    public EntryEdit() {
+        this.actionName = "entryEdit";
+        this.desiredMenu = "editor";
+        this.pageTitle = "weblogEdit.title.editEntry";
+    }
+
+    @Override
+    public List<String> requiredWeblogPermissionActions() {
+        return Collections.singletonList(WeblogPermission.EDIT_DRAFT);
+    }
+
+    public void myPrepare() {
+        if (getBean().getId() != null) {
+            try {
+                WeblogEntryManager wmgr = WebloggerFactory.getWeblogger()
+                        .getWeblogEntryManager();
+                setEntry(wmgr.getWeblogEntry(getBean().getId()));
+            } catch (WebloggerException ex) {
+                log.error(
+                        "Error looking up entry by id - " + getBean().getId(),
+                        ex);
+            }
+        }
+    }
+
+    /**
+     * Show form for editing an existing entry.
+     * 
+     * @return String The result of the action.
+     */
+    @SkipValidation
+    public String execute() {
+
+        // make sure we have an entry to edit and it belongs to the action
+        // weblog
+        if (getEntry() == null) {
+            return ERROR;
+        } else if (!getEntry().getWebsite().equals(getActionWeblog())) {
+            return DENIED;
+        }
+
+        // load bean with pojo data
+        getBean().copyFrom(getEntry(), getLocale());
+
+        return INPUT;
+    }
+
+    /**
+     * Save weblog entry.
+     * 
+     * @return String The result of the action.
+     */
+    public String save() {
+
+        // make sure we have an entry to edit and it belongs to the action
+        // weblog
+        if (getEntry() == null) {
+            return ERROR;
+        } else if (!getEntry().getWebsite().equals(getActionWeblog())) {
+            return DENIED;
+        }
+
+        if (!hasActionErrors())
+            try {
+                WeblogEntryManager weblogMgr = WebloggerFactory.getWeblogger()
+                        .getWeblogEntryManager();
+
+                WeblogEntry entry = getEntry();
+
+                // set updatetime & pubtime
+                entry.setUpdateTime(new Timestamp(new Date().getTime()));
+                entry.setPubTime(getBean().getPubTime(getLocale(),
+                        getActionWeblog().getTimeZoneInstance()));
+
+                // copy data to pojo
+                getBean().copyTo(entry);
+
+                // handle pubtime auto set
+                if (entry.isPublished()) {
+                    if (entry.getPubTime() == null) {
+                        // no time specified, use current time
+                        entry.setPubTime(entry.getUpdateTime());
+                    }
+
+                    // if user does not have author perms then force PENDING
+                    // status
+                    if (!getActionWeblog().hasUserPermission(
+                            getAuthenticatedUser(), WeblogPermission.POST)) {
+                        entry.setStatus(WeblogEntry.PENDING);
+                    }
+
+                    // If the entry was published to future, set status as
+                    // SCHEDULED we only consider an entry future published if
+                    // it is scheduled more than 1 minute into the future
+                    if (entry.getPubTime().after(
+                            new Date(System.currentTimeMillis() + 60000))) {
+                        getBean().setStatus(WeblogEntry.SCHEDULED);
+                    }
+
+                }
+
+                // if user is an admin then apply pinned to main value as well
+                GlobalPermission adminPerm = new GlobalPermission(
+                        Collections.singletonList(GlobalPermission.ADMIN));
+                if (WebloggerFactory.getWeblogger().getUserManager()
+                        .checkPermission(adminPerm, getAuthenticatedUser())) {
+                    entry.setPinnedToMain(getBean().getPinnedToMain());
+                }
+
+                if (!StringUtils.isEmpty(getBean().getEnclosureURL())) {
+                    try {
+                        // Fetch MediaCast resource
+                        log.debug("Checking MediaCast attributes");
+                        MediacastResource mediacast = MediacastUtil
+                                .lookupResource(getBean().getEnclosureURL());
+
+                        // set mediacast attributes
+                        entry.putEntryAttribute("att_mediacast_url",
+                                mediacast.getUrl());
+                        entry.putEntryAttribute("att_mediacast_type",
+                                mediacast.getContentType());
+                        entry.putEntryAttribute("att_mediacast_length", ""
+                                + mediacast.getLength());
+
+                    } catch (MediacastException ex) {
+                        addMessage(getText(ex.getErrorKey()));
+                    }
+                } else {
+                    try {
+                        // if MediaCast string is empty, clean out MediaCast
+                        // attributes
+                        weblogMgr.removeWeblogEntryAttribute(
+                                "att_mediacast_url", entry);
+                        weblogMgr.removeWeblogEntryAttribute(
+                                "att_mediacast_type", entry);
+                        weblogMgr.removeWeblogEntryAttribute(
+                                "att_mediacast_length", entry);
+
+                    } catch (WebloggerException e) {
+                        addMessage(getText("weblogEdit.mediaCastErrorRemoving"));
+                    }
+                }
+
+                if (log.isDebugEnabled()) {
+                    log.debug("entry bean is ...\n" + getBean().toString());
+                    log.debug("final status = " + entry.getStatus());
+                    log.debug("updtime = " + entry.getUpdateTime());
+                    log.debug("pubtime = " + entry.getPubTime());
+                }
+
+                log.debug("Saving entry");
+                weblogMgr.saveWeblogEntry(entry);
+                WebloggerFactory.getWeblogger().flush();
+
+                // notify search of the new entry
+                if (entry.isPublished()) {
+                    reindexEntry(entry);
+                } else {
+                    removeEntryIndex(entry);
+                }
+
+                // notify caches
+                CacheManager.invalidate(entry);
+
+                // Queue applicable pings for this update.
+                if (entry.isPublished()) {
+                    WebloggerFactory.getWeblogger().getAutopingManager()
+                            .queueApplicableAutoPings(entry);
+                }
+
+                if (entry.isPending()) {
+                    // implies that entry just changed to pending
+                    MailUtil.sendPendingEntryNotice(entry);
+                    addMessage("weblogEdit.submittedForReview");
+                } else {
+                    addMessage("weblogEdit.changesSaved");
+                }
+
+                return INPUT;
+
+            } catch (Exception e) {
+                log.error("Error saving new entry", e);
+                // TODO: i18n
+                addError("Error saving new entry");
+            }
+
+        return INPUT;
+    }
+
+    /**
+     * Send trackback to a specific url.
+     */
+    @SkipValidation
+    public String trackback() {
+
+        // make sure we have an entry to edit and it belongs to the action
+        // weblog
+        if (getEntry() == null) {
+            return ERROR;
+        } else if (!getEntry().getWebsite().equals(getActionWeblog())) {
+            return DENIED;
+        }
+
+        if (!StringUtils.isEmpty(getTrackbackUrl())) {
+            RollerMessages results = null;
+            try {
+                Trackback trackback = new Trackback(getEntry(),
+                        getTrackbackUrl());
+                results = trackback.send();
+            } catch (TrackbackNotAllowedException ex) {
+                addError("error.trackbackNotAllowed");
+            } catch (Throwable t) {
+                log.error("Error sending trackback", t);
+                // TODO: error handling
+                addError("error.general", t.getMessage());
+            }
+
+            if (results != null) {
+                for (Iterator mit = results.getMessages(); mit.hasNext();) {
+                    RollerMessage msg = (RollerMessage) mit.next();
+                    if (msg.getArgs() == null) {
+                        addMessage(msg.getKey());
+                    } else {
+                        addMessage(msg.getKey(), Arrays.asList(msg.getArgs()));
+                    }
+                }
+
+                for (Iterator eit = results.getErrors(); eit.hasNext();) {
+                    RollerMessage err = (RollerMessage) eit.next();
+                    if (err.getArgs() == null) {
+                        addError(err.getKey());
+                    } else {
+                        addError(err.getKey(), Arrays.asList(err.getArgs()));
+                    }
+                }
+            }
+
+            // reset trackback url
+            setTrackbackUrl(null);
+
+        }
+
+        return INPUT;
+    }
+
+    /**
+     * Get the list of all categories for the action weblog, not including root.
+     */
+    public List<WeblogCategory> getCategories() {
+        try {
+            WeblogEntryManager wmgr = WebloggerFactory.getWeblogger()
+                    .getWeblogEntryManager();
+            return wmgr.getWeblogCategories(getActionWeblog(), false);
+        } catch (WebloggerException ex) {
+            log.error(
+                    "Error getting category list for weblog - " + getWeblog(),
+                    ex);
+            return Collections.EMPTY_LIST;
+        }
+    }
+
+    public String getPreviewURL() {
+        return WebloggerFactory
+                .getWeblogger()
+                .getUrlStrategy()
+                .getPreviewURLStrategy(null)
+                .getWeblogEntryURL(getActionWeblog(), null,
+                        getEntry().getAnchor(), true);
+    }
+
+    public EntryBean getBean() {
+        return bean;
+    }
+
+    public void setBean(EntryBean bean) {
+        this.bean = bean;
+    }
+
+    public WeblogEntry getEntry() {
+        return entry;
+    }
+
+    public void setEntry(WeblogEntry entry) {
+        this.entry = entry;
+    }
+
+    public String getTrackbackUrl() {
+        return trackbackUrl;
+    }
+
+    public void setTrackbackUrl(String trackbackUrl) {
+        this.trackbackUrl = trackbackUrl;
+    }
 
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java?rev=1508000&r1=1507999&r2=1508000&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java Mon Jul 29 11:21:23 2013
@@ -19,6 +19,7 @@ package org.apache.roller.weblogger.ui.s
 
 import java.io.File;
 import java.io.FileInputStream;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -46,10 +47,9 @@ public class MediaFileEdit extends Media
     // content types for upload file
     private String uploadedFileContentType = null;
 
-    // filename for uploaded file 
+    // filename for uploaded file
     private String uploadedFileName = null;
 
-
     public MediaFileEdit() {
         this.actionName = "mediaFileEdit";
         this.desiredMenu = "editor";
@@ -62,7 +62,8 @@ public class MediaFileEdit extends Media
     public void myPrepare() {
         refreshAllDirectories();
         try {
-            MediaFileManager mgr = WebloggerFactory.getWeblogger().getMediaFileManager();
+            MediaFileManager mgr = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
             if (!StringUtils.isEmpty(bean.getDirectoryId())) {
                 setDirectory(mgr.getMediaFileDirectory(bean.getDirectoryId()));
             }
@@ -76,8 +77,10 @@ public class MediaFileEdit extends Media
      * Validates media file metadata to be updated.
      */
     public void myValidate() {
-        MediaFile fileWithSameName = getDirectory().getMediaFile(getBean().getName());
-        if (fileWithSameName != null && !fileWithSameName.getId().equals(getMediaFileId())) {
+        MediaFile fileWithSameName = getDirectory().getMediaFile(
+                getBean().getName());
+        if (fileWithSameName != null
+                && !fileWithSameName.getId().equals(getMediaFileId())) {
             addError("MediaFile.error.duplicateName", getBean().getName());
         }
     }
@@ -89,7 +92,8 @@ public class MediaFileEdit extends Media
      */
     @SkipValidation
     public String execute() {
-        MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager();
+        MediaFileManager manager = WebloggerFactory.getWeblogger()
+                .getMediaFileManager();
         try {
             MediaFile mediaFile = manager.getMediaFile(getMediaFileId());
             this.bean.copyFrom(mediaFile);
@@ -114,7 +118,8 @@ public class MediaFileEdit extends Media
     public String save() {
         myValidate();
         if (!hasActionErrors()) {
-            MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager();
+            MediaFileManager manager = WebloggerFactory.getWeblogger()
+                    .getMediaFileManager();
             try {
                 MediaFile mediaFile = manager.getMediaFile(getMediaFileId());
                 bean.copyTo(mediaFile);
@@ -122,10 +127,19 @@ public class MediaFileEdit extends Media
                 if (uploadedFile != null) {
                     mediaFile.setLength(this.uploadedFile.length());
                     mediaFile.setContentType(this.uploadedFileContentType);
-                    manager.updateMediaFile(getActionWeblog(),
-                        mediaFile, new FileInputStream(this.uploadedFile));
+                    manager.updateMediaFile(getActionWeblog(), mediaFile,
+                            new FileInputStream(this.uploadedFile));
                 } else {
-                   manager.updateMediaFile(getActionWeblog(), mediaFile);
+                    manager.updateMediaFile(getActionWeblog(), mediaFile);
+                }
+
+                // Move file
+                if (!getBean().getDirectoryId().equals(
+                        mediaFile.getDirectory().getId())) {
+                    log.debug("Processing move of " + mediaFile.getId());
+                    setSelectedMediaFiles(new String[] { mediaFile.getId() });
+                    setSelectedDirectory(getBean().getDirectoryId());
+                    doMoveSelected();
                 }
 
                 WebloggerFactory.getWeblogger().flush();
@@ -170,7 +184,8 @@ public class MediaFileEdit extends Media
     }
 
     /**
-     * @param uploadedFile the uploadedFile to set
+     * @param uploadedFile
+     *            the uploadedFile to set
      */
     public void setUploadedFile(File uploadedFile) {
         this.uploadedFile = uploadedFile;
@@ -184,7 +199,8 @@ public class MediaFileEdit extends Media
     }
 
     /**
-     * @param uploadedFileContentType the uploadedFileContentType to set
+     * @param uploadedFileContentType
+     *            the uploadedFileContentType to set
      */
     public void setUploadedFileContentType(String uploadedFileContentType) {
         this.uploadedFileContentType = uploadedFileContentType;
@@ -198,7 +214,8 @@ public class MediaFileEdit extends Media
     }
 
     /**
-     * @param uploadedFileName the uploadedFileName to set
+     * @param uploadedFileName
+     *            the uploadedFileName to set
      */
     public void setUploadedFileName(String uploadedFileName) {
         this.uploadedFileName = uploadedFileName;

Modified: roller/trunk/app/src/main/resources/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/ApplicationResources.properties?rev=1508000&r1=1507999&r2=1508000&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/ApplicationResources.properties (original)
+++ roller/trunk/app/src/main/resources/ApplicationResources.properties Mon Jul 29 11:21:23 2013
@@ -2218,6 +2218,7 @@ weblogEntryQuery.updateTime=Updated
 weblogEntryQuery.status=Status
 weblogEntryQuery.pending=Pending
 weblogEntryQuery.draft=Draft
+weblogEntryQuery.scheduled=Scheduled
 
 weblogEntryQuery.section.format=Format to be used
 

Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp?rev=1508000&r1=1507999&r2=1508000&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp Mon Jul 29 11:21:23 2013
@@ -355,9 +355,10 @@
 
     function saveComment(id) {
         var content = $("#comment-" + id).children()[0].value;
+        var salt = $("#comments_salt").val();
         $.ajax({
             type: "POST",
-            url: '<%= request.getContextPath()%>/roller-ui/authoring/commentdata?id=' + id,
+            url: '<%= request.getContextPath()%>/roller-ui/authoring/commentdata?id=' + id +'&salt='+salt,
             data: content,
             dataType: "text",
             processData: "false",

Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Entries.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Entries.jsp?rev=1508000&r1=1507999&r2=1508000&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Entries.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Entries.jsp Mon Jul 29 11:21:23 2013
@@ -38,11 +38,13 @@
             <s:param value="pager.items.size()" />
         </s:text>
     </div>
-    <div style="float:right;">
-        <s:date name="firstEntry.pubTime" format="MM/dd/yy hh:mm a" />
-        --- 
-        <s:date name="lastEntry.pubTime" format="MM/dd/yy hh:mm a" />
-    </div>
+    <s:if test="pager.items.size() > 0">
+        <div style="float:right;">
+            <s:date name="firstEntry.pubTime" format="MM/dd/yy hh:mm a" />
+            --- 
+            <s:date name="lastEntry.pubTime" format="MM/dd/yy hh:mm a" />
+        </div>
+    </s:if>
     <br />
     
     
@@ -92,7 +94,9 @@
     <s:text name="weblogEntryQuery.draft" />&nbsp;&nbsp;
     <span class="pendingEntryBox">&nbsp;&nbsp;&nbsp;&nbsp;</span>
     <s:text name="weblogEntryQuery.pending" />&nbsp;&nbsp;
-</p>      
+    <span class="scheduledEntryBox">&nbsp;&nbsp;&nbsp;&nbsp;</span>
+    <s:text name="weblogEntryQuery.scheduled" />&nbsp;&nbsp;
+</p>
 
 <table class="rollertable" width="100%">
 
@@ -116,13 +120,16 @@
 </tr>
 
 <s:iterator id="post" value="pager.items">
-    <%-- <td> with style if comment is spam or pending --%>               
+    <%-- <td> with style if comment is spam or pending --%>
     <s:if test="#post.status == 'DRAFT'">
         <tr class="draftentry"> 
     </s:if>
     <s:elseif test="#post.status == 'PENDING'">
         <tr class="pendingentry"> 
     </s:elseif>
+    <s:elseif test="#post.status == 'SCHEDULED'">
+        <tr class="scheduledentry"> 
+    </s:elseif>
     <s:else>
         <tr>
     </s:else>

Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp?rev=1508000&r1=1507999&r2=1508000&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp Mon Jul 29 11:21:23 2013
@@ -104,6 +104,13 @@ function fullPreviewMode() {
                         <s:date name="entry.updateTime" />)
                     </span>
                 </s:elseif>
+                <s:elseif test="bean.scheduled">
+                    <span style="color:orange; font-weight:bold">
+                        <s:text name="weblogEdit.scheduled" />
+                        (<s:text name="weblogEdit.updateTime" />
+                        <s:date name="entry.updateTime" />)
+                    </span>
+                </s:elseif>
                 <s:hidden name="bean.status" />
             </td>
         </tr>

Modified: roller/trunk/app/src/main/webapp/roller-ui/styles/roller.css
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/roller-ui/styles/roller.css?rev=1508000&r1=1507999&r2=1508000&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/roller-ui/styles/roller.css (original)
+++ roller/trunk/app/src/main/webapp/roller-ui/styles/roller.css Mon Jul 29 11:21:23 2013
@@ -359,6 +359,9 @@ td.pendingentry, tr.pendingentry {
 td.draftentry, tr.draftentry {
     background: #ffffcc;
 }
+td.scheduledentry, tr.scheduledentry {
+    background: #EEEEE0;
+}
 .draftEntryBox {
     background: #ffffcc;
     border: 1px gray solid;
@@ -367,6 +370,10 @@ td.draftentry, tr.draftentry {
     background: #ffcccc;
     border: 1px gray solid;
 }
+.scheduledEntryBox {
+    background: #EEEEE0;
+    border: 1px gray solid;
+}
 
 /* ----------------------------------------------------------------------
 Calendar styles