You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by gm...@apache.org on 2014/08/07 18:45:38 UTC
svn commit: r1616533 - in /roller/trunk/app/src/main:
java/org/apache/roller/weblogger/pojos/
java/org/apache/roller/weblogger/ui/struts2/editor/ resources/
webapp/WEB-INF/ webapp/WEB-INF/jsps/editor/
Author: gmazza
Date: Thu Aug 7 16:45:37 2014
New Revision: 1616533
URL: http://svn.apache.org/r1616533
Log:
Consolidation of FolderAdd and FolderEdit
Removed:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderAdd.jsp
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderBean.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java
roller/trunk/app/src/main/resources/ApplicationResources.properties
roller/trunk/app/src/main/resources/struts.xml
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarkEdit.jsp
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarksSidebar.jsp
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp
roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java Thu Aug 7 16:45:37 2014
@@ -878,7 +878,7 @@ public class Weblog implements Serializa
*/
public boolean hasBookmarkFolder(String name) {
for (WeblogBookmarkFolder folder : this.getBookmarkFolders()) {
- if(name.equals(folder.getName())) {
+ if(name.toLowerCase().equals(folder.getName().toLowerCase())) {
return true;
}
}
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmarkFolder.java Thu Aug 7 16:45:37 2014
@@ -184,10 +184,4 @@ public class WeblogBookmarkFolder implem
return bmgr.getBookmarks(this);
}
- // convenience method for updating the folder name
- public void updateName(String newName) throws WebloggerException {
- setName(newName);
- WebloggerFactory.getWeblogger().getBookmarkManager().saveFolder(this);
- }
-
}
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java Thu Aug 7 16:45:37 2014
@@ -80,7 +80,7 @@ public class BookmarkEdit extends UIActi
@SkipValidation
public String execute() {
if (!isAdd()) {
- // make sure bean is populated with DB values on initial load
+ // load bean with database values during initial load
getBean().copyFrom(getBookmark());
}
return INPUT;
@@ -88,10 +88,8 @@ public class BookmarkEdit extends UIActi
public String save() {
-
- // validation
myValidate();
-
+
if(!hasActionErrors()) {
try {
getBean().copyTo(bookmark);
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java Thu Aug 7 16:45:37 2014
@@ -32,6 +32,7 @@ import org.apache.roller.weblogger.pojos
import org.apache.roller.weblogger.pojos.WeblogBookmarkFolder;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.roller.weblogger.util.cache.CacheManager;
+import org.apache.struts2.interceptor.validation.SkipValidation;
/**
* List bookmarks and folders and allow for moving them around and deleting them.
@@ -174,6 +175,13 @@ public class Bookmarks extends UIAction
return execute();
}
+ @SkipValidation
+ public String folderCreated() {
+ // action from FolderEdit upon creation of a new folder, to display
+ // a success message prior to showing the new folder.
+ addMessage("folderForm.created");
+ return execute();
+ }
/**
* View the contents of another bookmark folder.
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderBean.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderBean.java?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderBean.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderBean.java Thu Aug 7 16:45:37 2014
@@ -46,9 +46,7 @@ public class FolderBean {
}
public void copyTo(WeblogBookmarkFolder dataHolder) throws WebloggerException {
- if(!dataHolder.getName().equals(this.name)) {
- dataHolder.updateName(this.name);
- }
+ dataHolder.setName(this.name);
}
public void copyFrom(WeblogBookmarkFolder dataHolder) {
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java Thu Aug 7 16:45:37 2014
@@ -32,7 +32,7 @@ import org.apache.struts2.interceptor.va
/**
- * Edit an existing folder.
+ * Edit a new or existing folder.
*/
public class FolderEdit extends UIAction {
@@ -41,118 +41,96 @@ public class FolderEdit extends UIAction
// the id of the folder we are working with
private String folderId = null;
- // the folder we are editing
+ // the folder we are adding or editing
private WeblogBookmarkFolder folder = null;
// bean for managing form data
private FolderBean bean = new FolderBean();
-
-
+
public FolderEdit() {
- this.actionName = "folderEdit";
this.desiredMenu = "editor";
- this.pageTitle = "folderForm.edit.title";
}
// load folder to edit
public void myPrepare() {
- try {
- BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
- if(!StringUtils.isEmpty(getBean().getId())) {
- setFolder(bmgr.getFolder(getBean().getId()));
+ if (StringUtils.isEmpty(bean.getId())) {
+ // Create and initialize new folder but don't save yet
+ folder = new WeblogBookmarkFolder();
+ folder.setWeblog(getActionWeblog());
+ } else {
+ // retrieve existing folder data from DB
+ try {
+ BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
+ folder = bmgr.getFolder(getBean().getId());
+ } catch (WebloggerException ex) {
+ log.error("Error looking up folder", ex);
}
- } catch (WebloggerException ex) {
- log.error("Error looking up folder", ex);
}
}
-
-
+
/**
* Show folder edit page.
*/
@SkipValidation
public String execute() {
-
- if(getFolder() == null) {
- addError("Cannot edit null folder");
- return ERROR;
+ if (!isAdd()) {
+ // load bean with database values during initial load
+ getBean().copyFrom(folder);
}
-
- // make sure bean is properly loaded from pojo data
- getBean().copyFrom(getFolder());
-
return INPUT;
}
-
/**
* Save updated folder data.
*/
public String save() {
-
- if(getFolder() == null) {
- addError("Cannot edit null folder");
- return ERROR;
- }
-
- // validation
myValidate();
if(!hasActionErrors()) {
try {
-
// copy updated attributes
- getBean().copyTo(getFolder());
+ getBean().copyTo(folder);
// save changes
BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
- bmgr.saveFolder(getFolder());
+ bmgr.saveFolder(folder);
WebloggerFactory.getWeblogger().flush();
// notify caches
- CacheManager.invalidate(getFolder());
+ CacheManager.invalidate(folder);
- addMessage("folderForm.update.success");
+ if (isAdd()) {
+ // if adding, move to new folder upon save.
+ folderId = folder.getId();
+ } else {
+ // create message added in Bookmarks class as it's reached via a
+ // redirect in struts.xml instead of a chain.
+ addMessage("folderForm.updated");
+ }
+
+ return SUCCESS;
} catch(Exception ex) {
log.error("Error saving folder", ex);
- addError("Error saving folder");
+ addError("generic.error.check.logs");
}
}
return INPUT;
}
- /**
- * Cancel.
- *
- * @return the string
- */
- public String cancel() {
- return CANCEL;
- }
-
- // TODO: validation
public void myValidate() {
-
- // name is required, has max length, no html
-
// make sure new name is not a duplicate of an existing folder
- if(!getFolder().getName().equals(getBean().getName())) {
- Weblog weblog = getFolder().getWeblog();
- if(weblog.hasBookmarkFolder(getBean().getName())) {
+ if((isAdd() || !folder.getName().equals(getBean().getName()))) {
+ if (folder.getWeblog().hasBookmarkFolder(getBean().getName())) {
addError("folderForm.error.duplicateName", getBean().getName());
}
}
}
-
- public WeblogBookmarkFolder getFolder() {
- return folder;
- }
- public void setFolder(WeblogBookmarkFolder folder) {
- this.folder = folder;
+ private boolean isAdd() {
+ return actionName.equals("folderAdd");
}
public FolderBean getBean() {
Modified: roller/trunk/app/src/main/resources/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/ApplicationResources.properties?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/ApplicationResources.properties (original)
+++ roller/trunk/app/src/main/resources/ApplicationResources.properties Thu Aug 7 16:45:37 2014
@@ -476,10 +476,10 @@ folderForm.add.subtitle=Adding new bookm
folderForm.edit.title=Edit Folder
folderForm.edit.subtitle=Editing bookmark folder [{0}]
-folderForm.add.success=Folder added
-folderForm.update.success=Folder name updated
+folderForm.created=Folder created
+folderForm.updated=Folder name updated
-folderForm.error.duplicateName=The folder name {0} is already in use, you will need to choose another
+folderForm.error.duplicateName=The folder name {0} is already in use, please choose another name
# errors from validation
Folder.error.nameNull=Name is a required field
Modified: roller/trunk/app/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/struts.xml?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/struts.xml (original)
+++ roller/trunk/app/src/main/resources/struts.xml Thu Aug 7 16:45:37 2014
@@ -382,8 +382,6 @@
<param name="actionName">bookmarks</param>
<param name="weblog">${weblog}</param>
<param name="folderId">${folderId}</param>
- <!-- TODO: Remove in JSP? -->
- <param name="suppressEmptyParameters">true</param>
</result>
<result name="error" type="chain">bookmarkEdit</result>
</action>
@@ -395,26 +393,29 @@
</action>
<action name="folderAdd!*" method="{1}"
- class="org.apache.roller.weblogger.ui.struts2.editor.FolderAdd">
- <result name="input" type="tiles">.FolderAdd</result>
- <result name="success" type="chain">bookmarks</result>
- <result name="cancel" type="redirectAction">
- <param name="actionName">bookmarks</param>
+ class="org.apache.roller.weblogger.ui.struts2.editor.FolderEdit">
+ <param name="actionName">folderAdd</param>
+ <param name="pageTitle">folderForm.add.title</param>
+ <result name="input" type="tiles">.FolderEdit</result>
+ <!-- redirect because switching to the newly created bookmarks folder -->
+ <result name="success" type="redirectAction">
+ <param name="actionName">bookmarks!folderCreated</param>
<param name="weblog">${weblog}</param>
<param name="folderId">${folderId}</param>
- <param name="suppressEmptyParameters">true</param>
</result>
<result name="error" type="chain">bookmarks</result>
</action>
<action name="folderEdit!*" method="{1}"
class="org.apache.roller.weblogger.ui.struts2.editor.FolderEdit">
+ <param name="actionName">folderEdit</param>
+ <param name="pageTitle">folderForm.edit.title</param>
<result name="input" type="tiles">.FolderEdit</result>
+ <result name="success" type="chain">bookmarks</result>
<result name="cancel" type="redirectAction">
<param name="actionName">bookmarks</param>
<param name="weblog">${weblog}</param>
<param name="folderId">${folderId}</param>
- <param name="suppressEmptyParameters">true</param>
</result>
<result name="error" type="chain">bookmarks</result>
</action>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarkEdit.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarkEdit.jsp?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarkEdit.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarkEdit.jsp Thu Aug 7 16:45:37 2014
@@ -17,7 +17,7 @@
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<%-- Titling, processing actions different between bookmark add and edit --%>
+<%-- Titling, processing actions different between add and edit --%>
<s:if test="actionName == 'bookmarkEdit'">
<s:set var="subtitleKey">bookmarkForm.edit.subtitle</s:set>
<s:set var="mainAction">bookmarkEdit</s:set>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp Thu Aug 7 16:45:37 2014
@@ -19,8 +19,7 @@
<%-- JavaScript for bookmarks table --%>
<script>
-// <!--
-function onDelete()
+function onDelete()
{
if ( confirm("<s:text name='bookmarksForm.delete.confirm' />") )
{
@@ -45,7 +44,6 @@ function onMove()
document.bookmarks.submit();
}
}
-// -->
</script>
<s:if test="folder.name == 'default'">
@@ -64,7 +62,7 @@ function onMove()
<s:url var="editUrl" action="folderEdit">
<s:param name="weblog" value="%{actionWeblog.handle}" />
<s:param name="bean.id" value="%{folder.id}" />
- <s:param name="folderId" value="%{folder.id}" suppressEmptyParameters="true" />
+ <s:param name="folderId" value="%{folder.id}" />
</s:url>
<s:a href="%{editUrl}"><img src='<s:url value="/images/page_white_edit.png"/>' border="0" alt="icon" /
title="<s:text name='bookmarksForm.folder.edit.tip' />" /></s:a>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarksSidebar.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarksSidebar.jsp?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarksSidebar.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/BookmarksSidebar.jsp Thu Aug 7 16:45:37 2014
@@ -41,6 +41,7 @@
<img src='<s:url value="/images/folder_add.png"/>' border="0"alt="icon" />
<s:url var="addFolder" action="folderAdd">
<s:param name="weblog" value="%{actionWeblog.handle}" />
+ <s:param name="folderId" value="%{folder.id}" />
</s:url>
<s:a href="%{addFolder}"><s:text name="bookmarksForm.addFolder" /></s:a>
</p>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/FolderEdit.jsp Thu Aug 7 16:45:37 2014
@@ -17,21 +17,33 @@
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+<%-- Titling, processing actions different between add and edit --%>
+<s:if test="actionName == 'folderEdit'">
+ <s:set var="subtitleKey">folderForm.edit.subtitle</s:set>
+ <s:set var="mainAction">folderEdit</s:set>
+</s:if>
+<s:else>
+ <s:set var="subtitleKey">folderForm.add.subtitle</s:set>
+ <s:set var="mainAction">folderAdd</s:set>
+</s:else>
+
+
<p class="subtitle">
- <s:text name="folderForm.edit.subtitle" >
+ <s:text name="%{#subtitleKey}" >
<s:param value="folder.name" />
</s:text>
</p>
-<s:form action="folderEdit!save">
+<s:form>
<s:hidden name="salt" />
<s:hidden name="weblog" />
- <s:hidden name="bean.id" />
-
- <%-- if we cancel then we need this attribute --%>
- <%-- (Need to test after folder edit re-implemented) --%>
- <s:hidden name="folderId" value="%{folder.id}" />
-
+ <%-- folderId needed on cancel to determine folder to return to (see struts.xml) --%>
+ <s:hidden name="folderId" value="%{folderId}" />
+ <s:if test="actionName == 'folderEdit'">
+ <%-- bean for folder add does not have a bean id yet --%>
+ <s:hidden name="bean.id" />
+ </s:if>
+
<table>
<tr>
<td><s:text name="generic.name" /></td>
@@ -40,7 +52,7 @@
</table>
<p>
- <s:submit value="%{getText('generic.save')}" />
+ <s:submit value="%{getText('generic.save')}" action="%{#mainAction}!save"/>
<s:submit value="%{getText('generic.cancel')}" action="folderEdit!cancel" />
</p>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml?rev=1616533&r1=1616532&r2=1616533&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml Thu Aug 7 16:45:37 2014
@@ -348,11 +348,6 @@
<put-attribute name="styles" value="/WEB-INF/jsps/tiles/css-nosidebar.jsp" />
</definition>
- <definition name=".FolderAdd" extends=".tiles-tabbedpage" >
- <put-attribute name="content" value="/WEB-INF/jsps/editor/FolderAdd.jsp" />
- <put-attribute name="styles" value="/WEB-INF/jsps/tiles/css-nosidebar.jsp" />
- </definition>
-
<definition name=".FolderEdit" extends=".tiles-tabbedpage" >
<put-attribute name="content" value="/WEB-INF/jsps/editor/FolderEdit.jsp" />
<put-attribute name="styles" value="/WEB-INF/jsps/tiles/css-nosidebar.jsp" />