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 2012/03/04 17:18:43 UTC
svn commit: r1296827 - in /roller/trunk:
weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/
weblogger-web/src/main/resources/
weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/
weblogger-webapp/src/main/webapp/theme/scripts/
Author: ghuber
Date: Sun Mar 4 16:18:43 2012
New Revision: 1296827
URL: http://svn.apache.org/viewvc?rev=1296827&view=rev
Log:
Some testing...
Modified:
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkAdd.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java
roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Categories.jsp
roller/trunk/weblogger-webapp/src/main/webapp/theme/scripts/roller.js
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkAdd.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkAdd.java?rev=1296827&r1=1296826&r2=1296827&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkAdd.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkAdd.java Sun Mar 4 16:18:43 2012
@@ -116,6 +116,9 @@ public class BookmarkAdd extends UIActio
// TODO: i18n
addMessage("bookmark added");
+ // Set for next action
+ getBean().setId(newBookmark.getId());
+
return SUCCESS;
} catch(Exception ex) {
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java?rev=1296827&r1=1296826&r2=1296827&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java Sun Mar 4 16:18:43 2012
@@ -36,271 +36,285 @@ import org.apache.roller.weblogger.pojos
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.roller.weblogger.util.cache.CacheManager;
-
/**
- * List bookmarks and folders and allow for moving them around and deleting them.
+ * List bookmarks and folders and allow for moving them around and deleting
+ * them.
*/
public class Bookmarks extends UIAction {
-
- private static Log log = LogFactory.getLog(Bookmarks.class);
-
- // the id of folder being viewed
- private String folderId = null;
-
- // the folder being viewed
- private WeblogBookmarkFolder folder = null;
-
- // the list of folders to move/delete
- private String[] selectedFolders = null;
-
- // the list of bookmarks to move/delete
- private String[] selectedBookmarks = null;
-
- // the target folder to move items to
- private String targetFolderId = null;
-
- // all folders from the action weblog
- private Set allFolders = Collections.EMPTY_SET;
-
- // path of folders representing selected folders hierarchy
- private List folderPath = Collections.EMPTY_LIST;
-
-
- public Bookmarks() {
- this.actionName = "bookmarks";
- this.desiredMenu = "editor";
- this.pageTitle = "bookmarksForm.rootTitle";
- }
-
-
- // admin perms required
- public List<String> requiredWeblogPermissionActions() {
- return Collections.singletonList(WeblogPermission.ADMIN);
- }
-
-
- public void myPrepare() {
- try {
- BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
- if(!StringUtils.isEmpty(getFolderId()) &&
- !"/".equals(getFolderId())) {
- setFolder(bmgr.getFolder(getFolderId()));
- } else {
- setFolder(bmgr.getRootFolder(getActionWeblog()));
- }
- } catch (WebloggerException ex) {
- log.error("Error looking up folder", ex);
- }
- }
-
-
- /**
- * Present the bookmarks and subfolders available in the folder specified
- * by the request.
- */
- public String execute() {
-
- // build list of folders for display
- TreeSet allFolders = new TreeSet(new FolderPathComparator());
-
- try {
- // Build list of all folders, except for current one, sorted by path.
- BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
- List<WeblogBookmarkFolder> folders = bmgr.getAllFolders(getActionWeblog());
- for(WeblogBookmarkFolder fd : folders) {
- if (!fd.getId().equals(getFolderId())) {
- allFolders.add(fd);
- }
- }
-
- // build folder path
- WeblogBookmarkFolder parent = getFolder().getParent();
- if(parent != null) {
- List folderPath = new LinkedList();
- folderPath.add(0, getFolder());
- while (parent != null) {
- folderPath.add(0, parent);
- parent = parent.getParent();
- }
- setFolderPath(folderPath);
- }
- } catch (WebloggerException ex) {
- log.error("Error building folders list", ex);
- // TODO: i18n
- addError("Error building folders list");
- }
-
- if (allFolders.size() > 0) {
- setAllFolders(allFolders);
- }
-
- return LIST;
- }
-
-
- /**
- * Delete folders and bookmarks.
- */
- public String delete() {
-
- BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-
- log.debug("Deleting selected folders and bookmarks.");
-
- try {
- String folders[] = getSelectedFolders();
- if (null != folders) {
- log.debug("Processing delete of "+folders.length+" folders.");
- for (int i = 0; i < folders.length; i++) {
- log.debug("Deleting folder - "+folders[i]);
- WeblogBookmarkFolder fd = bmgr.getFolder(folders[i]);
- bmgr.removeFolder(fd); // removes child folders and bookmarks too
- }
- }
-
- WeblogBookmark bookmark = null;
- String bookmarks[] = getSelectedBookmarks();
- if (null != bookmarks) {
- log.debug("Processing delete of "+bookmarks.length+" bookmarks.");
- for (int j = 0; j < bookmarks.length; j++) {
- log.debug("Deleting bookmark - "+bookmarks[j]);
- bookmark = bmgr.getBookmark(bookmarks[j]);
- bmgr.removeBookmark(bookmark);
- }
- }
-
- // flush changes
- WebloggerFactory.getWeblogger().flush();
-
- // notify caches
- CacheManager.invalidate(getActionWeblog());
-
- } catch (WebloggerException ex) {
- log.error("Error doing folder/bookmark deletes", ex);
- // TODO: i18n
- addError("Error doing folder/bookmark deletes");
- }
-
- return execute();
- }
-
-
- /**
- * Move folders and bookmarks to a new folder.
- */
- public String move() {
-
- try {
- BookmarkManager bmgr = WebloggerFactory.getWeblogger().getBookmarkManager();
-
- log.debug("Moving folders and bookmarks to folder - "+getTargetFolderId());
-
- // Move folders to new parent folder.
- String folders[] = getSelectedFolders();
- WeblogBookmarkFolder parent = bmgr.getFolder(getTargetFolderId());
- if (null != folders) {
- for (int i = 0; i < folders.length; i++) {
- WeblogBookmarkFolder fd = bmgr.getFolder(folders[i]);
-
- // Don't move folder into itself.
- if (!fd.getId().equals(parent.getId()) &&
- !parent.descendentOf(fd)) {
- bmgr.moveFolder(fd, parent);
- } else {
- addMessage("bookmarksForm.warn.notMoving", fd.getName());
- }
- }
- }
-
- // Move bookmarks to new parent folder.
- String bookmarks[] = getSelectedBookmarks();
- if (null != bookmarks) {
- for (int j = 0; j < bookmarks.length; j++) {
- // maybe we should be using folder.addBookmark()?
- WeblogBookmark bd = bmgr.getBookmark(bookmarks[j]);
- bd.setFolder(parent);
- bmgr.saveBookmark(bd);
- }
- }
-
- // flush changes
- WebloggerFactory.getWeblogger().flush();
-
- // notify caches
- CacheManager.invalidate(getActionWeblog());
-
- } catch (WebloggerException e) {
- log.error("Error doing folder/bookmark move", e);
- addError("bookmarksForm.error.move");
- }
-
- return execute();
- }
-
-
- private static final class FolderPathComparator implements Comparator {
- public int compare(Object o1, Object o2) {
- WeblogBookmarkFolder f1 = (WeblogBookmarkFolder)o1;
- WeblogBookmarkFolder f2 = (WeblogBookmarkFolder)o2;
- return f1.getPath().compareTo(f2.getPath());
- }
- }
-
-
- public String getFolderId() {
- return folderId;
- }
-
- public void setFolderId(String folderId) {
- this.folderId = folderId;
- }
-
- public String[] getSelectedFolders() {
- return selectedFolders;
- }
-
- public void setSelectedFolders(String[] folders) {
- this.selectedFolders = folders;
- }
-
- public String[] getSelectedBookmarks() {
- return selectedBookmarks;
- }
-
- public void setSelectedBookmarks(String[] bookmarks) {
- this.selectedBookmarks = bookmarks;
- }
-
- public String getTargetFolderId() {
- return targetFolderId;
- }
-
- public void setTargetFolderId(String targetFolderId) {
- this.targetFolderId = targetFolderId;
- }
-
- public Set getAllFolders() {
- return allFolders;
- }
-
- public void setAllFolders(Set allFolders) {
- this.allFolders = allFolders;
- }
-
- public WeblogBookmarkFolder getFolder() {
- return folder;
- }
-
- public void setFolder(WeblogBookmarkFolder folder) {
- this.folder = folder;
- }
-
- public List getFolderPath() {
- return folderPath;
- }
-
- public void setFolderPath(List folderPath) {
- this.folderPath = folderPath;
- }
-
+
+ private static Log log = LogFactory.getLog(Bookmarks.class);
+
+ // the id of folder being viewed
+ private String folderId = null;
+
+ // the folder being viewed
+ private WeblogBookmarkFolder folder = null;
+
+ // the list of folders to move/delete
+ private String[] selectedFolders = null;
+
+ // the list of bookmarks to move/delete
+ private String[] selectedBookmarks = null;
+
+ // the target folder to move items to
+ private String targetFolderId = null;
+
+ // all folders from the action weblog
+ private Set allFolders = Collections.EMPTY_SET;
+
+ // path of folders representing selected folders hierarchy
+ private List folderPath = Collections.EMPTY_LIST;
+
+ public Bookmarks() {
+ this.actionName = "bookmarks";
+ this.desiredMenu = "editor";
+ this.pageTitle = "bookmarksForm.rootTitle";
+ }
+
+ // admin perms required
+ public List<String> requiredWeblogPermissionActions() {
+ return Collections.singletonList(WeblogPermission.ADMIN);
+ }
+
+ public void myPrepare() {
+ try {
+ BookmarkManager bmgr = WebloggerFactory.getWeblogger()
+ .getBookmarkManager();
+ if (!StringUtils.isEmpty(getFolderId())
+ && !"/".equals(getFolderId())) {
+ setFolder(bmgr.getFolder(getFolderId()));
+ } else {
+ setFolder(bmgr.getRootFolder(getActionWeblog()));
+ }
+ } catch (WebloggerException ex) {
+ log.error("Error looking up folder", ex);
+ }
+ }
+
+ /**
+ * Present the bookmarks and subfolders available in the folder specified by
+ * the request.
+ */
+ public String execute() {
+
+ // build list of folders for display
+ TreeSet allFolders = new TreeSet(new FolderPathComparator());
+
+ try {
+ // Build list of all folders, except for current one, sorted by
+ // path.
+ BookmarkManager bmgr = WebloggerFactory.getWeblogger()
+ .getBookmarkManager();
+ List<WeblogBookmarkFolder> folders = bmgr
+ .getAllFolders(getActionWeblog());
+ for (WeblogBookmarkFolder fd : folders) {
+ if (getFolderId() == null && fd.getParent() == null) {
+ // Root folder so do not show the root /
+ } else if (!fd.getId().equals(getFolderId())) {
+ allFolders.add(fd);
+ }
+ }
+
+ // build folder path
+ WeblogBookmarkFolder parent = getFolder().getParent();
+ if (parent != null) {
+ List folderPath = new LinkedList();
+ folderPath.add(0, getFolder());
+ while (parent != null) {
+ folderPath.add(0, parent);
+ parent = parent.getParent();
+ }
+ setFolderPath(folderPath);
+ }
+ } catch (WebloggerException ex) {
+ log.error("Error building folders list", ex);
+ // TODO: i18n
+ addError("Error building folders list");
+ }
+
+ if (allFolders.size() > 0) {
+ setAllFolders(allFolders);
+ }
+
+ return LIST;
+ }
+
+ /**
+ * Delete folders and bookmarks.
+ */
+ public String delete() {
+
+ BookmarkManager bmgr = WebloggerFactory.getWeblogger()
+ .getBookmarkManager();
+
+ log.debug("Deleting selected folders and bookmarks.");
+
+ try {
+ String folders[] = getSelectedFolders();
+ if (null != folders && folders.length > 0) {
+ if (log.isDebugEnabled())
+ log.debug("Processing delete of " + folders.length
+ + " folders.");
+ for (int i = 0; i < folders.length; i++) {
+ if (log.isDebugEnabled())
+ log.debug("Deleting folder - " + folders[i]);
+ WeblogBookmarkFolder fd = bmgr.getFolder(folders[i]);
+ if (fd != null) {
+ bmgr.removeFolder(fd); // removes child folders and
+ // bookmarks too
+ }
+ }
+ }
+
+ WeblogBookmark bookmark = null;
+ String bookmarks[] = getSelectedBookmarks();
+ if (null != bookmarks && bookmarks.length > 0) {
+ if (log.isDebugEnabled())
+ log.debug("Processing delete of " + bookmarks.length
+ + " bookmarks.");
+ for (int j = 0; j < bookmarks.length; j++) {
+ if (log.isDebugEnabled())
+ log.debug("Deleting bookmark - " + bookmarks[j]);
+ bookmark = bmgr.getBookmark(bookmarks[j]);
+ if (bookmark != null) {
+ bmgr.removeBookmark(bookmark);
+ }
+
+ }
+ }
+
+ // flush changes
+ WebloggerFactory.getWeblogger().flush();
+
+ // notify caches
+ CacheManager.invalidate(getActionWeblog());
+
+ } catch (WebloggerException ex) {
+ log.error("Error doing folder/bookmark deletes", ex);
+ // TODO: i18n
+ addError("Error doing folder/bookmark deletes");
+ }
+
+ return execute();
+ }
+
+ /**
+ * Move folders and bookmarks to a new folder.
+ */
+ public String move() {
+
+ try {
+ BookmarkManager bmgr = WebloggerFactory.getWeblogger()
+ .getBookmarkManager();
+
+ if (log.isDebugEnabled())
+ log.debug("Moving folders and bookmarks to folder - "
+ + getTargetFolderId());
+
+ // Move folders to new parent folder.
+ String folders[] = getSelectedFolders();
+ WeblogBookmarkFolder parent = bmgr.getFolder(getTargetFolderId());
+ if (null != folders && folders.length > 0) {
+ for (int i = 0; i < folders.length; i++) {
+ WeblogBookmarkFolder fd = bmgr.getFolder(folders[i]);
+
+ // Don't move folder into itself.
+ if (!fd.getId().equals(parent.getId())
+ && !parent.descendentOf(fd)) {
+ bmgr.moveFolder(fd, parent);
+ } else {
+ addMessage("bookmarksForm.warn.notMoving", fd.getName());
+ }
+ }
+ }
+
+ // Move bookmarks to new parent folder.
+ String bookmarks[] = getSelectedBookmarks();
+ if (null != bookmarks && bookmarks.length > 0) {
+ for (int j = 0; j < bookmarks.length; j++) {
+ // maybe we should be using folder.addBookmark()?
+ WeblogBookmark bd = bmgr.getBookmark(bookmarks[j]);
+ bd.setFolder(parent);
+ bmgr.saveBookmark(bd);
+ }
+ }
+
+ // flush changes
+ WebloggerFactory.getWeblogger().flush();
+
+ // notify caches
+ CacheManager.invalidate(getActionWeblog());
+
+ } catch (WebloggerException e) {
+ log.error("Error doing folder/bookmark move", e);
+ addError("bookmarksForm.error.move");
+ }
+
+ return execute();
+ }
+
+ private static final class FolderPathComparator implements Comparator {
+ public int compare(Object o1, Object o2) {
+ WeblogBookmarkFolder f1 = (WeblogBookmarkFolder) o1;
+ WeblogBookmarkFolder f2 = (WeblogBookmarkFolder) o2;
+ return f1.getPath().compareTo(f2.getPath());
+ }
+ }
+
+ public String getFolderId() {
+ return folderId;
+ }
+
+ public void setFolderId(String folderId) {
+ this.folderId = folderId;
+ }
+
+ public String[] getSelectedFolders() {
+ return selectedFolders;
+ }
+
+ public void setSelectedFolders(String[] folders) {
+ this.selectedFolders = folders;
+ }
+
+ public String[] getSelectedBookmarks() {
+ return selectedBookmarks;
+ }
+
+ public void setSelectedBookmarks(String[] bookmarks) {
+ this.selectedBookmarks = bookmarks;
+ }
+
+ public String getTargetFolderId() {
+ return targetFolderId;
+ }
+
+ public void setTargetFolderId(String targetFolderId) {
+ this.targetFolderId = targetFolderId;
+ }
+
+ public Set getAllFolders() {
+ return allFolders;
+ }
+
+ public void setAllFolders(Set allFolders) {
+ this.allFolders = allFolders;
+ }
+
+ public WeblogBookmarkFolder getFolder() {
+ return folder;
+ }
+
+ public void setFolder(WeblogBookmarkFolder folder) {
+ this.folder = folder;
+ }
+
+ public List getFolderPath() {
+ return folderPath;
+ }
+
+ public void setFolderPath(List folderPath) {
+ this.folderPath = folderPath;
+ }
+
}
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java?rev=1296827&r1=1296826&r2=1296827&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Categories.java Sun Mar 4 16:18:43 2012
@@ -34,184 +34,186 @@ import org.apache.roller.weblogger.pojos
import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
-
/**
* Manage weblog categories.
*/
public class Categories extends UIAction {
-
- private static Log log = LogFactory.getLog(Categories.class);
-
- // the id of the category we are viewing
- private String categoryId = null;
-
- // the category we are viewing
- private WeblogCategory category = null;
-
- // 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 allCategories = Collections.EMPTY_SET;
-
- // path of categories representing selected categories hierarchy
- private List categoryPath = Collections.EMPTY_LIST;
-
-
- public Categories() {
- this.actionName = "categories";
- this.desiredMenu = "editor";
- this.pageTitle = "categoriesForm.rootTitle";
- }
-
-
- // author perms required
- public List<String> requiredWeblogPermissionActions() {
- return Collections.singletonList(WeblogPermission.POST);
- }
-
-
- public void myPrepare() {
- try {
- WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
- if(!StringUtils.isEmpty(getCategoryId()) &&
- !"/".equals(getCategoryId())) {
- setCategory(wmgr.getWeblogCategory(getCategoryId()));
- } else {
- setCategory(wmgr.getRootWeblogCategory(getActionWeblog()));
- }
- } catch (WebloggerException ex) {
- log.error("Error looking up category", ex);
- }
- }
-
-
- public String execute() {
-
- // build list of categories for display
- TreeSet allCategories = new TreeSet(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(), true);
- for(WeblogCategory cat : cats) {
- if (!cat.getId().equals(getCategoryId())) {
- allCategories.add(cat);
- }
- }
-
- // build category path
- WeblogCategory parent = getCategory().getParent();
- if(parent != null) {
- List categoryPath = new LinkedList();
- categoryPath.add(0, getCategory());
- while (parent != null) {
- categoryPath.add(0, parent);
- parent = parent.getParent();
- }
- setCategoryPath(categoryPath);
- }
- } 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() {
-
- try {
- WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
-
- log.debug("Moving categories to category - "+getTargetCategoryId());
-
- // Move subCategories to new category.
- String[] cats = getSelectedCategories();
- WeblogCategory parent = wmgr.getWeblogCategory(getTargetCategoryId());
- if(cats != null) {
- for (int i = 0; i < cats.length; i++) {
- WeblogCategory cd =
- wmgr.getWeblogCategory(cats[i]);
-
- // Don't move category into itself.
- if (!cd.getId().equals(parent.getId()) &&
- !parent.descendentOf(cd)) {
- wmgr.moveWeblogCategory(cd, parent);
- } else {
- addMessage("categoriesForm.warn.notMoving", cd.getName());
- }
- }
-
- // flush changes
- WebloggerFactory.getWeblogger().flush();
- }
-
- } catch (WebloggerException ex) {
- log.error("Error moving categories", ex);
- addError("categoriesForm.error.move");
- }
-
- return execute();
- }
-
-
- public String getCategoryId() {
- return categoryId;
- }
-
- public void setCategoryId(String categoryId) {
- this.categoryId = categoryId;
- }
-
- public WeblogCategory getCategory() {
- return category;
- }
-
- public void setCategory(WeblogCategory category) {
- this.category = category;
- }
-
- 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() {
- return allCategories;
- }
-
- public void setAllCategories(Set allCategories) {
- this.allCategories = allCategories;
- }
-
- public List getCategoryPath() {
- return categoryPath;
- }
-
- public void setCategoryPath(List categoryPath) {
- this.categoryPath = categoryPath;
- }
-
+
+ private static Log log = LogFactory.getLog(Categories.class);
+
+ // the id of the category we are viewing
+ private String categoryId = null;
+
+ // the category we are viewing
+ private WeblogCategory category = null;
+
+ // 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 allCategories = Collections.EMPTY_SET;
+
+ // path of categories representing selected categories hierarchy
+ private List categoryPath = Collections.EMPTY_LIST;
+
+ public Categories() {
+ this.actionName = "categories";
+ this.desiredMenu = "editor";
+ this.pageTitle = "categoriesForm.rootTitle";
+ }
+
+ // author perms required
+ public List<String> requiredWeblogPermissionActions() {
+ return Collections.singletonList(WeblogPermission.POST);
+ }
+
+ public void myPrepare() {
+ try {
+ WeblogEntryManager wmgr = WebloggerFactory.getWeblogger()
+ .getWeblogEntryManager();
+ if (!StringUtils.isEmpty(getCategoryId())
+ && !"/".equals(getCategoryId())) {
+ setCategory(wmgr.getWeblogCategory(getCategoryId()));
+ } else {
+ setCategory(wmgr.getRootWeblogCategory(getActionWeblog()));
+ }
+ } catch (WebloggerException ex) {
+ log.error("Error looking up category", ex);
+ }
+ }
+
+ public String execute() {
+
+ // build list of categories for display
+ TreeSet allCategories = new TreeSet(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(), true);
+ for (WeblogCategory cat : cats) {
+ if (getCategoryId() == null && cat.getParent() == null) {
+ // Root folder so do not show the root /
+ } else if (!cat.getId().equals(getCategoryId())) {
+ allCategories.add(cat);
+ }
+ }
+
+ // build category path
+ WeblogCategory parent = getCategory().getParent();
+ if (parent != null) {
+ List categoryPath = new LinkedList();
+ categoryPath.add(0, getCategory());
+ while (parent != null) {
+ categoryPath.add(0, parent);
+ parent = parent.getParent();
+ }
+ setCategoryPath(categoryPath);
+ }
+ } 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() {
+
+ try {
+ WeblogEntryManager wmgr = WebloggerFactory.getWeblogger()
+ .getWeblogEntryManager();
+
+ log.debug("Moving categories to category - "
+ + getTargetCategoryId());
+
+ // Move subCategories to new category.
+ String[] cats = getSelectedCategories();
+ WeblogCategory parent = wmgr
+ .getWeblogCategory(getTargetCategoryId());
+ if (cats != null) {
+ for (int i = 0; i < cats.length; i++) {
+ WeblogCategory cd = wmgr.getWeblogCategory(cats[i]);
+
+ // Don't move category into itself.
+ if (!cd.getId().equals(parent.getId())
+ && !parent.descendentOf(cd)) {
+ wmgr.moveWeblogCategory(cd, parent);
+ } else {
+ addMessage("categoriesForm.warn.notMoving",
+ cd.getName());
+ }
+ }
+
+ // flush changes
+ WebloggerFactory.getWeblogger().flush();
+ }
+
+ } catch (WebloggerException ex) {
+ log.error("Error moving categories", ex);
+ addError("categoriesForm.error.move");
+ }
+
+ return execute();
+ }
+
+ public String getCategoryId() {
+ return categoryId;
+ }
+
+ public void setCategoryId(String categoryId) {
+ this.categoryId = categoryId;
+ }
+
+ public WeblogCategory getCategory() {
+ return category;
+ }
+
+ public void setCategory(WeblogCategory category) {
+ this.category = category;
+ }
+
+ 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() {
+ return allCategories;
+ }
+
+ public void setAllCategories(Set allCategories) {
+ this.allCategories = allCategories;
+ }
+
+ public List getCategoryPath() {
+ return categoryPath;
+ }
+
+ public void setCategoryPath(List categoryPath) {
+ this.categoryPath = categoryPath;
+ }
+
}
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java?rev=1296827&r1=1296826&r2=1296827&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java (original)
+++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderAdd.java Sun Mar 4 16:18:43 2012
@@ -120,6 +120,9 @@ public class FolderAdd extends UIAction
// TODO: i18n
addMessage("folder added");
+ // Set for next action
+ getBean().setId(newFolder.getId());
+
return SUCCESS;
} catch(Exception ex) {
Modified: roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties?rev=1296827&r1=1296826&r2=1296827&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties (original)
+++ roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties Sun Mar 4 16:18:43 2012
@@ -92,7 +92,7 @@ bookmarksForm.folder=Bookmark Folder
bookmarksForm.priority=Priority
bookmarksForm.edit=Edit
bookmarksForm.edit.tip=Click to edit this folder or bookmark
-bookmarksForm.move=Move selected
+bookmarksForm.move=Move
bookmarksForm.move.confirm=Move selected bookmarks?
bookmarksForm.name=Name
bookmarksForm.path=Path
@@ -103,6 +103,7 @@ bookmarksForm.warn.notMoving=Can''t move
children
bookmarksForm.error.move=Error performing move, parent to child moves not allowed
bookmarksForm.importBookmarks=Import bookmarks via OPML
+bookmarksForm.noresults=There are currently no folders or bookmarks
# --------------------------------------------------------- Bookmarks import.jsp
@@ -155,6 +156,7 @@ Category.error.nameNull=Name is a requir
Category.error.nameSize=Name cannot be more than 255 characters
Category.error.descriptionSize=Description cannot be more than 255 characters
Category.error.imageBad=The image url you entered is not valid
+categoriesForm.noresults=There are currently no categories
# ----------------------------------------------------------- CategoriesForm.jsp
Modified: roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp?rev=1296827&r1=1296826&r2=1296827&view=diff
==============================================================================
--- roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp (original)
+++ roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Bookmarks.jsp Sun Mar 4 16:18:43 2012
@@ -19,16 +19,7 @@
<%-- JavaScript for bookmarks table --%>
<script type="text/javascript">
-<!--
-function setChecked(val)
-{
- len = document.bookmarks.elements.length;
- var i=0;
- for( i=0 ; i<len ; i++)
- {
- document.bookmarks.elements[i].checked=val;
- }
-}
+// <!--
function onDelete()
{
if ( confirm("<s:text name='bookmarksForm.delete.confirm' />") )
@@ -45,7 +36,7 @@ function onMove()
document.bookmarks.submit();
}
}
-//-->
+// -->
</script>
<s:if test="folderPath.isEmpty">
@@ -79,29 +70,21 @@ function onMove()
<s:hidden name="weblog" />
<s:hidden name="folderId" />
- <%-- Select-all button --%>
- <input type="button" value="<s:text name="bookmarksForm.checkAll"/>" onclick="setChecked(1)" />
-
- <%-- Select-none button --%>
- <input type="button" value="<s:text name="bookmarksForm.checkNone"/>" onclick="setChecked(0)" />
-
- <%-- Delete-selected button --%>
- <input type="button" value="<s:text name="bookmarksForm.delete"/>" onclick="onDelete()" />
-
- <s:if test="!allFolders.isEmpty">
+ <s:if test="!allFolders.isEmpty && ( folder.folders.size > 0 || folder.bookmarks.size > 0)">
+
<%-- Move-selected button --%>
- <s:submit type="button" action="bookmarks!move" key="bookmarksForm.move" onclick="onMove()" />
+ <s:submit type="button" action="bookmarks!move" key="bookmarksForm.move" onclick="onMove();return false;" />
<%-- Move-to combo-box --%>
<s:select name="targetFolderId" list="allFolders" listKey="id" listValue="path" />
+
+ <br /><br />
+
</s:if>
-
- <p />
-
<table class="rollertable">
-
+
<tr class="rHeaderTr">
- <th class="rollertable" width="5%"> </th>
+ <th class="rollertable" width="5%"><input name="control" type="checkbox" onclick="toggleFunctionAll(this.checked);"/></th>
<th class="rollertable" width="5%"> </th>
<th class="rollertable" width="30%"><s:text name="bookmarksForm.name" /></th>
<th class="rollertable" width="45%"><s:text name="bookmarksForm.description" /></th>
@@ -110,6 +93,8 @@ function onMove()
<th class="rollertable" width="5%"><s:text name="bookmarksForm.visitLink" /></th>
</tr>
+ <s:if test="folder.folders.size > 0 || folder.bookmarks.size > 0">
+
<%-- Folders --%>
<s:iterator id="folder" value="folder.folders" status="rowstatus">
<s:if test="#rowstatus.odd == true">
@@ -119,7 +104,7 @@ function onMove()
<tr class="rollertable_even">
</s:else>
- <td class="rollertable">
+ <td class="rollertable center" style="vertical-align:middle">
<input type="checkbox" name="selectedFolders" value="<s:property value="#folder.id"/>" />
</td>
@@ -161,7 +146,7 @@ function onMove()
<tr class="rollertable_even">
</s:else>
- <td class="rollertable">
+ <td class="rollertable center" style="vertical-align:middle">
<input type="checkbox" name="selectedBookmarks" value="<s:property value="#bookmark.id"/>" />
</td>
@@ -200,6 +185,19 @@ function onMove()
</tr>
</s:iterator>
+ </s:if>
+ <s:else>
+ <tr>
+ <td style="vertical-align:middle" colspan="7"><s:text name="bookmarksForm.noresults" /></td>
+ </tr>
+ </s:else>
</table>
+ <s:if test="folder.folders.size > 0 || folder.bookmarks.size > 0">
+ <div class="control">
+ <%-- Delete-selected button --%>
+ <input type="button" value="<s:text name="bookmarksForm.delete"/>" onclick="onDelete()" />
+ </div>
+ </s:if>
+
</s:form>
Modified: roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Categories.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Categories.jsp?rev=1296827&r1=1296826&r2=1296827&view=diff
==============================================================================
--- roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Categories.jsp (original)
+++ roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Categories.jsp Sun Mar 4 16:18:43 2012
@@ -19,17 +19,8 @@
<%-- JavaScript for categories table --%>
<script type="text/javascript">
-<!--
-function setChecked(val)
-{
- len = document.categories.elements.length;
- var i=0;
- for( i=0 ; i<len ; i++)
- {
- document.categories.elements[i].checked=val;
- }
-}
-function onMove()
+// <!--
+function onMove()
{
if ( confirm("<s:text name='categoriesForm.move.confirm' />") )
{
@@ -71,33 +62,31 @@ function onMove()
<s:hidden name="weblog" />
<s:hidden name="categoryId" />
- <%-- Select-all button --%>
- <input type="button" value="<s:text name='categoriesForm.checkAll' />" onclick="setChecked(1)" /></input>
-
- <%-- Select-none button --%>
- <input type="button" value="<s:text name='categoriesForm.checkNone' />" onclick="setChecked(0)" /></input>
+ <s:if test="!allCategories.isEmpty">
-
+ <%-- Move-selected button --%>
+ <s:submit value="%{getText('categoriesForm.move')}" onclick="onMove();return false;" />
- <%-- Move-selected button --%>
- <s:submit value="%{getText('categoriesForm.move')}" onclick="onMove()" />
+ <%-- Move-to combo-box --%>
+ <s:select name="targetCategoryId" list="allCategories" listKey="id" listValue="path" />
- <%-- Move-to combo-box --%>
- <s:select name="targetCategoryId" list="allCategories" listKey="id" listValue="path" />
+ <br /><br />
- <p />
+ </s:if>
<table class="rollertable">
<tr class="rollertable">
- <th class="rollertable" width="5%"> </td>
- <th class="rollertable" width="5%"> </td>
- <th class="rollertable" width="30%"><s:text name="categoriesForm.name" /></td>
- <th class="rollertable" width="45%"><s:text name="categoriesForm.description" /></td>
- <th class="rollertable" width="5%"><s:text name="categoriesForm.edit" /></td>
- <th class="rollertable" width="5%"><s:text name="categoriesForm.remove" /></td>
+ <th class="rollertable" width="5%"><input type="checkbox" name="control" onclick="toggleFunctionAll(this.checked);"/></th>
+ <th class="rollertable" width="5%"> </th>
+ <th class="rollertable" width="30%"><s:text name="categoriesForm.name" /></th>
+ <th class="rollertable" width="45%"><s:text name="categoriesForm.description" /></th>
+ <th class="rollertable" width="5%"><s:text name="categoriesForm.edit" /></th>
+ <th class="rollertable" width="5%"><s:text name="categoriesForm.remove" /></th>
</tr>
+ <s:if test="AllCategories != null && !AllCategories.isEmpty">
+
<%-- Categories --%>
<s:iterator id="category" value="category.weblogCategories" status="rowstatus">
<s:if test="#rowstatus.odd == true">
@@ -107,7 +96,7 @@ function onMove()
<tr class="rollertable_even">
</s:else>
- <td class="rollertable">
+ <td class="rollertable center" style="vertical-align:middle">
<input type="checkbox" name="selectedCategories" value="<s:property value="#category.id"/>" />
</td>
@@ -144,6 +133,13 @@ function onMove()
</tr>
</s:iterator>
+ </s:if>
+ <s:else>
+ <tr>
+ <td style="vertical-align:middle" colspan="6"><s:text name="categoriesForm.noresults" /></td>
+ </tr>
+ </s:else>
+
</table>
</s:form>
Modified: roller/trunk/weblogger-webapp/src/main/webapp/theme/scripts/roller.js
URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-webapp/src/main/webapp/theme/scripts/roller.js?rev=1296827&r1=1296826&r2=1296827&view=diff
==============================================================================
--- roller/trunk/weblogger-webapp/src/main/webapp/theme/scripts/roller.js (original)
+++ roller/trunk/weblogger-webapp/src/main/webapp/theme/scripts/roller.js Sun Mar 4 16:18:43 2012
@@ -180,11 +180,23 @@ function isblank(s) {
window.defaultStatus=document.title;
// Toggle check boxes
+function toggleFunctionAll(toggle) {
+ var inputs = document.getElementsByTagName('input');
+ for(var i = 0; i < inputs.length ; i++) {
+ if(inputs[i].name != "control" && inputs[i].type == 'checkbox' && inputs[i].disabled == false ) {
+ if (inputs[i].checked == true){
+ inputs[i].checked = !inputs[i].checked;
+ } else{
+ inputs[i].checked = toggle;
+ }
+ }
+ }
+}
function toggleFunction(toggle,name) {;
var inputs = document.getElementsByName(name);
for(var i = 0; i < inputs.length ; i++) {
if(inputs[i].type == 'checkbox' && inputs[i].disabled == false) {
- if (inputs[i].checked==true){
+ if (inputs[i].checked == true){
inputs[i].checked = !inputs[i].checked;
} else{
inputs[i].checked = toggle;