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/02/25 05:42:33 UTC

svn commit: r1571562 - in /roller/trunk/app/src/main: java/org/apache/roller/weblogger/pojos/WeblogCategory.java java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml

Author: gmazza
Date: Tue Feb 25 04:42:32 2014
New Revision: 1571562

URL: http://svn.apache.org/r1571562
Log:
ROL-1981 categories now ordered by time created, can be reordered by combinations of deleting, re-adding and/or renaming them.

Modified:
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java?rev=1571562&r1=1571561&r2=1571562&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java Tue Feb 25 04:42:32 2014
@@ -66,7 +66,12 @@ public class WeblogCategory implements S
         
         this.weblog = weblog;
         weblog.getWeblogCategories().add(this);
-        this.position = weblog.getWeblogCategories().size();
+        int size = weblog.getWeblogCategories().size();
+        if (size == 1) {
+            this.position = 0;
+        } else {
+            this.position = weblog.getWeblogCategories().get(size - 2).getPosition() + 1;
+        }
     }
     
     
@@ -149,9 +154,7 @@ public class WeblogCategory implements S
     }
 
     /**
-     * A 1-based position indicator for desired display order of that category.
-     * Value of 0 indicates no ordering yet assigned.
-     * New categories are always placed at the end of the list.
+     * A 0-based position indicator for desired display order of that category.
      */
     public int getPosition() {
         return position;

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java?rev=1571562&r1=1571561&r2=1571562&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java Tue Feb 25 04:42:32 2014
@@ -40,14 +40,8 @@ public class Categories extends UIAction
 
 	private static Log log = LogFactory.getLog(Categories.class);
 
-	// list of category ids to move
-	private String[] selectedCategories = null;
-
-	// category id of the category to move to
-	private String targetCategoryId = null;
-
 	// all categories from the action weblog
-	private Set<WeblogCategory> allCategories = Collections.EMPTY_SET;
+	private List<WeblogCategory> allCategories;
 
 	public Categories() {
 		this.actionName = "categories";
@@ -61,57 +55,26 @@ public class Categories extends UIAction
 	}
 
 	public String execute() {
-
-		// build list of categories for display
-		TreeSet<WeblogCategory> allCategories = new TreeSet<WeblogCategory>(new WeblogCategoryPathComparator());
-
 		try {
-			// Build list of all categories, except for current one, sorted by
-			// path.
             WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
-			List<WeblogCategory> cats = wmgr.getWeblogCategories(getActionWeblog());
-			for (WeblogCategory cat : cats) {
-			    allCategories.add(cat);
-			}
+			allCategories = wmgr.getWeblogCategories(getActionWeblog());
 		} catch (WebloggerException ex) {
 			log.error("Error building categories list", ex);
-			// TODO: i18n
 			addError("Error building categories list");
 		}
 
-		if (allCategories.size() > 0) {
-			setAllCategories(allCategories);
-		}
-
 		return LIST;
 	}
 
 	public String move() {
-        // TODO: Handle reordering of categories
 		return execute();
 	}
 
-	public String[] getSelectedCategories() {
-		return selectedCategories;
-	}
-
-	public void setSelectedCategories(String[] selectedCategories) {
-		this.selectedCategories = selectedCategories;
-	}
-
-	public String getTargetCategoryId() {
-		return targetCategoryId;
-	}
-
-	public void setTargetCategoryId(String targetCategoryId) {
-		this.targetCategoryId = targetCategoryId;
-	}
-
-	public Set getAllCategories() {
+	public List<WeblogCategory> getAllCategories() {
 		return allCategories;
 	}
 
-	public void setAllCategories(Set allCategories) {
+	public void setAllCategories(List<WeblogCategory> allCategories) {
 		this.allCategories = allCategories;
 	}
 }

Modified: roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml?rev=1571562&r1=1571561&r2=1571562&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml (original)
+++ roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml Tue Feb 25 04:42:32 2014
@@ -164,8 +164,9 @@
 				<join-column name="bloggercatid" insertable="true" updatable="true"/>
 			</many-to-one>
             <one-to-many name="weblogCategories" target-entity="org.apache.roller.weblogger.pojos.WeblogCategory" mapped-by="weblog" fetch="EAGER">
+                <order-by>position</order-by>
                 <cascade>
-                    <cascade-remove/>
+                    <cascade-remove/>                                                                                                  1
                 </cascade>
             </one-to-many>
 			<transient name="theme"/>