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 2014/06/17 15:34:41 UTC
svn commit: r1603162 - in /roller/trunk/app/src/main:
java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java
resources/ApplicationResources.properties
webapp/WEB-INF/jsps/editor/MediaFileView.jsp
Author: ghuber
Date: Tue Jun 17 13:34:40 2014
New Revision: 1603162
URL: http://svn.apache.org/r1603162
Log:
Media folder seletor fixes. See ROL-2008.
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java
roller/trunk/app/src/main/resources/ApplicationResources.properties
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java?rev=1603162&r1=1603161&r2=1603162&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java Tue Jun 17 13:34:40 2014
@@ -51,10 +51,9 @@ public class MediaFileView extends Media
private String directoryName;
private String sortBy;
private String newDirectoryName;
-
- private List<MediaFile> childFiles;
- private MediaFileDirectory currentDirectory;
+ private List<MediaFile> childFiles;
+ private MediaFileDirectory currentDirectory;
// Search criteria - drop-down for file type
private static List<KeyValueObject> FILE_TYPES = null;
@@ -79,7 +78,6 @@ public class MediaFileView extends Media
private MediaFileSearchBean bean = new MediaFileSearchBean();
-
public MediaFileView() {
this.actionName = "mediaFileView";
this.desiredMenu = "editor";
@@ -90,39 +88,45 @@ public class MediaFileView extends Media
* Prepares view action
*/
public void myPrepare() {
-
+
if (SIZE_FILTER_TYPES == null) {
- SIZE_FILTER_TYPES = Arrays.asList(
- new KeyValueObject("mediaFileView.gt", getText("mediaFileView.gt")),
- new KeyValueObject("mediaFileView.ge", getText("mediaFileView.ge")),
- new KeyValueObject("mediaFileView.eq", getText("mediaFileView.eq")),
- new KeyValueObject("mediaFileView.le", getText("mediaFileView.le")),
- new KeyValueObject("mediaFileView.lt", getText("mediaFileView.lt")));
-
- FILE_TYPES = Arrays.asList(
- new KeyValueObject("mediaFileView.any", getText("mediaFileView.any")),
- new KeyValueObject("mediaFileView.others", getText("mediaFileView.others")),
- new KeyValueObject("mediaFileView.image", getText("mediaFileView.image")),
- new KeyValueObject("mediaFileView.video", getText("mediaFileView.video")),
- new KeyValueObject("mediaFileView.audio", getText("mediaFileView.audio")));
-
- SIZE_UNITS = Arrays.asList(
- new KeyValueObject("mediaFileView.bytes", getText("mediaFileView.bytes")),
- new KeyValueObject("mediaFileView.kb", getText("mediaFileView.kb")),
- new KeyValueObject("mediaFileView.mb", getText("mediaFileView.mb")));
-
- SORT_OPTIONS = Arrays.asList(
- new KeyValueObject("name", getText("mediaFileView.name")),
- new KeyValueObject("date_uploaded", getText("mediaFileView.date")),
- new KeyValueObject("type", getText("mediaFileView.type")));
+ SIZE_FILTER_TYPES = Arrays.asList(new KeyValueObject(
+ "mediaFileView.gt", getText("mediaFileView.gt")),
+ new KeyValueObject("mediaFileView.ge",
+ getText("mediaFileView.ge")), new KeyValueObject(
+ "mediaFileView.eq", getText("mediaFileView.eq")),
+ new KeyValueObject("mediaFileView.le",
+ getText("mediaFileView.le")), new KeyValueObject(
+ "mediaFileView.lt", getText("mediaFileView.lt")));
+
+ FILE_TYPES = Arrays.asList(new KeyValueObject("mediaFileView.any",
+ getText("mediaFileView.any")), new KeyValueObject(
+ "mediaFileView.others", getText("mediaFileView.others")),
+ new KeyValueObject("mediaFileView.image",
+ getText("mediaFileView.image")),
+ new KeyValueObject("mediaFileView.video",
+ getText("mediaFileView.video")),
+ new KeyValueObject("mediaFileView.audio",
+ getText("mediaFileView.audio")));
+
+ SIZE_UNITS = Arrays.asList(new KeyValueObject(
+ "mediaFileView.bytes", getText("mediaFileView.bytes")),
+ new KeyValueObject("mediaFileView.kb",
+ getText("mediaFileView.kb")), new KeyValueObject(
+ "mediaFileView.mb", getText("mediaFileView.mb")));
+
+ SORT_OPTIONS = Arrays.asList(new KeyValueObject("name",
+ getText("mediaFileView.name")), new KeyValueObject(
+ "date_uploaded", getText("mediaFileView.date")),
+ new KeyValueObject("type", getText("mediaFileView.type")));
}
-
+
refreshAllDirectories();
}
/**
- * Create a new directory by name. All folders placed at the root.
+ * Create a new directory by name. All folders placed at the root.
*/
public String createNewDirectory() {
boolean dirCreated = false;
@@ -132,22 +136,40 @@ public class MediaFileView extends Media
addError("mediaFile.error.view.dirNameInvalid");
} else {
try {
+
log.debug("Creating new directory - " + this.newDirectoryName);
- MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager();
- manager.createMediaFileDirectory(getActionWeblog(), this.newDirectoryName);
- // flush changes
- WebloggerFactory.getWeblogger().flush();
- addMessage("mediaFile.directoryCreate.success");
- dirCreated = true;
+ MediaFileManager manager = WebloggerFactory.getWeblogger()
+ .getMediaFileManager();
+
+ if (!getActionWeblog().hasMediaFileDirectory(
+ this.newDirectoryName)) {
+ // Create
+ MediaFileDirectory dir = manager.createMediaFileDirectory(
+ getActionWeblog(), this.newDirectoryName);
+ // flush changes
+ WebloggerFactory.getWeblogger().flush();
+ addMessage("mediaFile.directoryCreate.success",
+ this.newDirectoryName);
+
+ // Switch to folder
+ setDirectoryId(dir.getId());
+
+ dirCreated = true;
+ } else {
+ // already exists
+ addMessage("mediaFile.directoryCreate.error.exists",
+ this.newDirectoryName);
+ }
+
} catch (WebloggerException e) {
log.error("Error creating new directory", e);
addError("Error creating new directory");
}
}
-
if (dirCreated) {
- // Refresh list of directories so the newly created directory is included.
+ // Refresh list of directories so the newly created directory is
+ // included.
refreshAllDirectories();
}
return execute();
@@ -163,24 +185,27 @@ public class MediaFileView extends Media
}
/**
- * Fetches and displays list of media file for the given directory.
- * The directory could be chosen by ID or path.
+ * Fetches and displays list of media file for the given directory. The
+ * directory could be chosen by ID or path.
*
* @return String The result of the action.
*/
@SkipValidation
public String execute() {
- MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager();
+ MediaFileManager manager = WebloggerFactory.getWeblogger()
+ .getMediaFileManager();
try {
MediaFileDirectory directory;
if (StringUtils.isNotEmpty(this.directoryId)) {
directory = manager.getMediaFileDirectory(this.directoryId);
} else if (StringUtils.isNotEmpty(this.directoryName)) {
- directory = manager.getMediaFileDirectoryByName(getActionWeblog(), this.directoryName);
+ directory = manager.getMediaFileDirectoryByName(
+ getActionWeblog(), this.directoryName);
} else {
- directory = manager.getDefaultMediaFileDirectory(getActionWeblog());
+ directory = manager
+ .getDefaultMediaFileDirectory(getActionWeblog());
}
this.directoryId = directory.getId();
this.directoryName = directory.getName();
@@ -189,22 +214,27 @@ public class MediaFileView extends Media
this.childFiles.addAll(directory.getMediaFiles());
if ("type".equals(sortBy)) {
- Collections.sort(this.childFiles,
- new MediaFileComparator(MediaFileComparatorType.TYPE));
+ Collections.sort(this.childFiles, new MediaFileComparator(
+ MediaFileComparatorType.TYPE));
} else if ("date_uploaded".equals(sortBy)) {
- Collections.sort(this.childFiles,
- new MediaFileComparator(MediaFileComparatorType.DATE_UPLOADED));
+ Collections.sort(this.childFiles, new MediaFileComparator(
+ MediaFileComparatorType.DATE_UPLOADED));
} else {
// default to sort by name
sortBy = "name";
- Collections.sort(this.childFiles,
- new MediaFileComparator(MediaFileComparatorType.NAME));
+ Collections.sort(this.childFiles, new MediaFileComparator(
+ MediaFileComparatorType.NAME));
}
this.currentDirectory = directory;
+ // set current directory if valid
+ if (directory != null) {
+ setViewDirectoryId(directory.getId());
+ }
+
return SUCCESS;
} catch (FileIOException ex) {
@@ -222,10 +252,12 @@ public class MediaFileView extends Media
*/
public String view() {
try {
- MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager();
+ MediaFileManager manager = WebloggerFactory.getWeblogger()
+ .getMediaFileManager();
if (!StringUtils.isEmpty(viewDirectoryId)) {
setDirectoryId(viewDirectoryId);
- setCurrentDirectory(manager.getMediaFileDirectory(viewDirectoryId));
+ setCurrentDirectory(manager
+ .getMediaFileDirectory(viewDirectoryId));
}
} catch (WebloggerException ex) {
log.error("Error looking up directory", ex);
@@ -235,7 +267,7 @@ public class MediaFileView extends Media
/**
* Save a media file.
- *
+ *
* @return String The result of the action.
*/
public String search() {
@@ -245,9 +277,11 @@ public class MediaFileView extends Media
if (valSuccess) {
MediaFileFilter filter = new MediaFileFilter();
bean.copyTo(filter);
- MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager();
+ MediaFileManager manager = WebloggerFactory.getWeblogger()
+ .getMediaFileManager();
try {
- List<MediaFile> rawResults = manager.searchMediaFiles(getActionWeblog(), filter);
+ List<MediaFile> rawResults = manager.searchMediaFiles(
+ getActionWeblog(), filter);
boolean hasMore = false;
List<MediaFile> results = new ArrayList<MediaFile>();
results.addAll(rawResults);
@@ -256,15 +290,16 @@ public class MediaFileView extends Media
hasMore = true;
}
- this.pager = new MediaFilePager(bean.getPageNum(), results, hasMore);
-
+ this.pager = new MediaFilePager(bean.getPageNum(), results,
+ hasMore);
+
} catch (Exception e) {
log.error("Error applying search criteria", e);
addError("Error applying search criteria - check Roller logs");
}
}
-
+
return SUCCESS;
}
@@ -292,13 +327,17 @@ public class MediaFileView extends Media
public String deleteFolder() {
try {
- MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager();
+ MediaFileManager manager = WebloggerFactory.getWeblogger()
+ .getMediaFileManager();
if (directoryId != null) {
- log.debug("Deleting media file folder - " + directoryId + " (" + directoryName + ")");
- MediaFileDirectory mediaFileDir = manager.getMediaFileDirectory(directoryId);
+ log.debug("Deleting media file folder - " + directoryId + " ("
+ + directoryName + ")");
+ MediaFileDirectory mediaFileDir = manager
+ .getMediaFileDirectory(directoryId);
manager.removeMediaFileDirectory(mediaFileDir);
refreshAllDirectories();
- WebloggerFactory.getWeblogger().getWeblogManager().saveWeblog(this.getActionWeblog());
+ WebloggerFactory.getWeblogger().getWeblogManager()
+ .saveWeblog(this.getActionWeblog());
// flush changes
WebloggerFactory.getWeblogger().flush();
@@ -309,7 +348,8 @@ public class MediaFileView extends Media
CacheManager.invalidate(getActionWeblog());
// re-route to default folder
- mediaFileDir = manager.getDefaultMediaFileDirectory(getActionWeblog());
+ mediaFileDir = manager
+ .getDefaultMediaFileDirectory(getActionWeblog());
setDirectoryId(mediaFileDir.getId());
setDirectoryName(mediaFileDir.getName());
} else {
@@ -321,7 +361,6 @@ public class MediaFileView extends Media
return execute();
}
-
/**
* Include selected media file in gallery
*
@@ -392,7 +431,9 @@ public class MediaFileView extends Media
* Validates search input
*/
public boolean myValidate() {
- if (StringUtils.isEmpty(bean.getName()) && StringUtils.isEmpty(bean.getTags()) && StringUtils.isEmpty(bean.getType()) && bean.getSize() == 0) {
+ if (StringUtils.isEmpty(bean.getName())
+ && StringUtils.isEmpty(bean.getTags())
+ && StringUtils.isEmpty(bean.getType()) && bean.getSize() == 0) {
addError("MediaFile.error.search.empty");
return false;
}
Modified: roller/trunk/app/src/main/resources/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/ApplicationResources.properties?rev=1603162&r1=1603161&r2=1603162&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/ApplicationResources.properties (original)
+++ roller/trunk/app/src/main/resources/ApplicationResources.properties Tue Jun 17 13:34:40 2014
@@ -1157,7 +1157,8 @@ mediaFileSidebar.search=Search Uploaded
mediaFile.search.title=Search media files
mediaFile.delete.confirm=Delete selected media files?
mediaFile.move.confirm=Move selected media files?
-mediaFile.directoryCreate.success=New directory successfully created.
+mediaFile.directoryCreate.success=New folder [{0}] successfully created.
+mediaFile.directoryCreate.error.exists=New folder [{0}] already exists. Please choose another name.
mediaFile.includeInGallery.success=Media file(s) successfully included in gallery.
mediaFile.includeInGallery.error=Error including media file {0} in gallery.
mediaFile.delete.success=Media file(s) successfully deleted.
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp?rev=1603162&r1=1603161&r2=1603162&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp Tue Jun 17 13:34:40 2014
@@ -110,6 +110,11 @@
document.mediaFileViewForm.submit();
}
}
+
+ function onView() {
+ document.mediaFileViewForm.action = "<s:url action='mediaFileView!view' />";
+ document.mediaFileViewForm.submit();
+ }
<%-- menu button for each image, launched from the plus sign image --%>
@@ -322,11 +327,11 @@
<span style="float:right">
<s:if test="!allDirectories.isEmpty">
- <%-- View button --%>
- <s:submit type="button" action="mediaFileView!view" key="mediaFileView.viewFolder" />
+ <%-- View button
+ <s:submit type="button" action="mediaFileView!view" key="mediaFileView.viewFolder" /> --%>
<%-- Folder to View combo-box --%>
- <s:select name="viewDirectoryId" list="allDirectories" listKey="id" listValue="name" />
+ <s:select name="viewDirectoryId" list="allDirectories" listKey="id" listValue="name" onchange="onView()" />
</s:if>
</span>