You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/02/17 07:24:43 UTC
svn commit: r1783336 - in /openmeetings/application:
branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/
trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/
Author: solomax
Date: Fri Feb 17 07:24:43 2017
New Revision: 1783336
URL: http://svn.apache.org/viewvc?rev=1783336&view=rev
Log:
[OPENMEETINGS-1563] 'original' download works as expected
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java?rev=1783336&r1=1783335&r2=1783336&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java Fri Feb 17 07:24:43 2017
@@ -18,8 +18,18 @@
*/
package org.apache.openmeetings.web.common.tree;
-import java.io.File;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_SWF;
+import java.io.File;
+import java.io.FileFilter;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
+import org.apache.openmeetings.util.OmFileHelper;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.util.resource.FileResourceStream;
@@ -48,9 +58,39 @@ public class DownloadMenuItem extends Me
@Override
public void onClick(AjaxRequestTarget target) {
- File f = tree.getLastSelected().getFile(ext);
- tree.downloader.setFileName(f.getName());
- tree.downloader.setResourceStream(new FileResourceStream(f));
- tree.downloader.initiate(target);
+ FileItem fi = tree.getLastSelected();
+ File f = fi.getFile(ext);
+ if (f != null && f.exists()) {
+ if (ext == null && (Type.Image == fi.getType() || Type.Presentation == fi.getType())) {
+ File[] ff = f.getParentFile().listFiles(new OriginalFilter(fi, ext));
+ if (ff.length > 0) {
+ f = ff[0];
+ }
+ }
+ tree.downloader.setFileName(f.getName());
+ tree.downloader.setResourceStream(new FileResourceStream(f));
+ tree.downloader.initiate(target);
+ }
+ }
+
+ private static class OriginalFilter implements FileFilter {
+ final FileItem fi;
+ Set<String> exclusions = new HashSet<>();
+
+ OriginalFilter(FileItem fi, String ext) {
+ this.fi = fi;
+ exclusions.add(EXTENSION_JPG);
+ if (Type.Presentation == fi.getType()) {
+ exclusions.add(EXTENSION_PDF);
+ exclusions.add(EXTENSION_SWF);
+ }
+ }
+
+ @Override
+ public boolean accept(File f) {
+ String n = f.getName();
+ String ext = OmFileHelper.getFileExt(n);
+ return n.startsWith(fi.getHash()) && !exclusions.contains(ext);
+ }
}
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1783336&r1=1783335&r2=1783336&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Fri Feb 17 07:24:43 2017
@@ -75,7 +75,14 @@ public abstract class FileTreePanel exte
protected final IModel<String> publicSize = Model.of((String)null);
final ConvertingErrorsDialog errorsDialog = new ConvertingErrorsDialog("errors", Model.of((Recording)null));
final FileItemTree tree;
- final AjaxSplitButton download = new AjaxSplitButton("download", new ArrayList<IMenuItem>());
+ final AjaxSplitButton download = new AjaxSplitButton("download", new ArrayList<IMenuItem>()) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target, IMenuItem item) {
+ item.onClick(target);
+ }
+ };
private final Form<Void> form = new Form<Void>("form");
private final AddFolderDialog addFolder;
private final ConfirmableBorderDialog trashConfirm;
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java?rev=1783336&r1=1783335&r2=1783336&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java Fri Feb 17 07:24:43 2017
@@ -18,8 +18,18 @@
*/
package org.apache.openmeetings.web.common.tree;
-import java.io.File;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_SWF;
+import java.io.File;
+import java.io.FileFilter;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
+import org.apache.openmeetings.util.OmFileHelper;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.util.resource.FileResourceStream;
@@ -48,9 +58,39 @@ public class DownloadMenuItem extends Me
@Override
public void onClick(AjaxRequestTarget target) {
- File f = tree.getLastSelected().getFile(ext);
- tree.downloader.setFileName(f.getName());
- tree.downloader.setResourceStream(new FileResourceStream(f));
- tree.downloader.initiate(target);
+ FileItem fi = tree.getLastSelected();
+ File f = fi.getFile(ext);
+ if (f != null && f.exists()) {
+ if (ext == null && (Type.Image == fi.getType() || Type.Presentation == fi.getType())) {
+ File[] ff = f.getParentFile().listFiles(new OriginalFilter(fi, ext));
+ if (ff.length > 0) {
+ f = ff[0];
+ }
+ }
+ tree.downloader.setFileName(f.getName());
+ tree.downloader.setResourceStream(new FileResourceStream(f));
+ tree.downloader.initiate(target);
+ }
+ }
+
+ private static class OriginalFilter implements FileFilter {
+ final FileItem fi;
+ Set<String> exclusions = new HashSet<>();
+
+ OriginalFilter(FileItem fi, String ext) {
+ this.fi = fi;
+ exclusions.add(EXTENSION_JPG);
+ if (Type.Presentation == fi.getType()) {
+ exclusions.add(EXTENSION_PDF);
+ exclusions.add(EXTENSION_SWF);
+ }
+ }
+
+ @Override
+ public boolean accept(File f) {
+ String n = f.getName();
+ String ext = OmFileHelper.getFileExt(n);
+ return n.startsWith(fi.getHash()) && !exclusions.contains(ext);
+ }
}
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1783336&r1=1783335&r2=1783336&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Fri Feb 17 07:24:43 2017
@@ -75,7 +75,14 @@ public abstract class FileTreePanel exte
protected final IModel<String> publicSize = Model.of((String)null);
final ConvertingErrorsDialog errorsDialog = new ConvertingErrorsDialog("errors", Model.of((Recording)null));
final FileItemTree tree;
- final AjaxSplitButton download = new AjaxSplitButton("download", new ArrayList<IMenuItem>());
+ final AjaxSplitButton download = new AjaxSplitButton("download", new ArrayList<IMenuItem>()) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target, IMenuItem item) {
+ item.onClick(target);
+ }
+ };
private final Form<Void> form = new Form<Void>("form");
private final AddFolderDialog addFolder;
private final ConfirmableBorderDialog trashConfirm;