Index: gallery/repository/src/main/resources/hippoecm-extension.xml
===================================================================
--- gallery/repository/src/main/resources/hippoecm-extension.xml (revision 30175)
+++ gallery/repository/src/main/resources/hippoecm-extension.xml (revision )
@@ -232,5 +232,34 @@
true
for flash or false
for javascript uploadtrue
the plugin will automatically upload the filestrue
if flash should be used, false
otherwise
+ */
+ public boolean isFlashUploadEnabled() {
+ return flashUploadEnabled;
-}
+ }
+
+ /**
+ * If set to true
(default) the upload plugin will use flash for file uploads, otherwise it will use a plain
+ * Javascript upload.
+ * @param flashUploadEnabled boolean indicating if flash should be used for file uploads.
+ */
+ public void setFlashUploadEnabled(boolean flashUploadEnabled) {
+ this.flashUploadEnabled = flashUploadEnabled;
+ }
+
+ private void parsePluginConfig(final IPluginConfig pluginConfig) {
+ if(pluginConfig.containsKey(FILEUPLOAD_FLASH_ENABLED_SETTING)) {
+ this.flashUploadEnabled = pluginConfig.getAsBoolean(FILEUPLOAD_FLASH_ENABLED_SETTING);
+ }
+ if(pluginConfig.containsKey(FILEUPLOAD_MAX_ITEMS_SETTING)) {
+ this.maxNumberOfFiles = pluginConfig.getAsInteger(FILEUPLOAD_MAX_ITEMS_SETTING);
+ }
+ // for backwards compatibility
+ if (pluginConfig.containsKey(FILE_EXTENSIONS_SETTING)) {
+ this.fileExtensions = pluginConfig.getStringArray(FILE_EXTENSIONS_SETTING);
+ }
+ if (pluginConfig.containsKey(FILEUPLOAD_ALLOWED_EXTENSIONS_SETTING)) {
+ this.fileExtensions = pluginConfig.getStringArray(FILEUPLOAD_ALLOWED_EXTENSIONS_SETTING);
+ }
+ if (pluginConfig.containsKey(FILEUPLOAD_AUTOUPLOAD_SETTING)) {
+ this.autoUpload = pluginConfig.getAsBoolean(FILEUPLOAD_AUTOUPLOAD_SETTING);
+ }
+ }
+
+}
Index: editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ResourceUploadPlugin.java
===================================================================
--- editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ResourceUploadPlugin.java (revision 30175)
+++ editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ResourceUploadPlugin.java (revision )
@@ -17,8 +17,6 @@
import java.io.IOException;
import java.io.InputStream;
-import java.util.Calendar;
-import java.util.Collection;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
@@ -27,7 +25,6 @@
import org.apache.jackrabbit.JcrConstants;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.upload.FileUpload;
-import org.apache.wicket.markup.html.form.upload.FileUploadField;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.util.value.IValueMap;
import org.apache.wicket.util.value.ValueMap;
@@ -38,7 +35,6 @@
import org.hippoecm.frontend.plugin.config.IPluginConfig;
import org.hippoecm.frontend.plugins.yui.upload.FileUploadWidget;
import org.hippoecm.frontend.plugins.yui.upload.FileUploadWidgetSettings;
-import org.hippoecm.frontend.plugins.yui.upload.multifile.MultiFileUploadComponent;
import org.hippoecm.frontend.service.render.RenderPlugin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,7 +53,6 @@
static final Logger log = LoggerFactory.getLogger(ResourceUploadPlugin.class);
private IValueMap types;
- private FileUploadForm form;
public ResourceUploadPlugin(IPluginContext context, IPluginConfig config) {
super(context, config);
@@ -68,7 +63,8 @@
types = new ValueMap(typesConfig);
}
- add(form = new FileUploadForm("form"));
+ FileUploadForm form = new FileUploadForm("form");
+ add(form);
String mode = config.getString("mode", "edit");
form.setVisible("edit".equals(mode));
@@ -79,13 +75,12 @@
private class FileUploadForm extends Form {
private static final long serialVersionUID = 1L;
- //private FileUploadField fileUploadField;
private FileUploadWidget widget;
public FileUploadForm(String name) {
super(name);
- FileUploadWidgetSettings settings = new FileUploadWidgetSettings();
+ FileUploadWidgetSettings settings = new FileUploadWidgetSettings(getPluginConfig());
settings.setAutoUpload(true);
settings.setClearAfterUpload(true);
settings.setClearTimeout(1000);
Index: yui/src/main/java/org/hippoecm/frontend/plugins/yui/upload/MultiFileUploadDialog.java
===================================================================
--- yui/src/main/java/org/hippoecm/frontend/plugins/yui/upload/MultiFileUploadDialog.java (revision 30175)
+++ yui/src/main/java/org/hippoecm/frontend/plugins/yui/upload/MultiFileUploadDialog.java (revision )
@@ -22,7 +22,11 @@
import org.apache.wicket.model.Model;
import org.apache.wicket.util.value.IValueMap;
import org.hippoecm.frontend.dialog.AbstractDialog;
+import org.hippoecm.frontend.plugin.config.IPluginConfig;
+/**
+ * A multi file upload dialog that can be configured by means of the {@link FileUploadWidgetSettings}.
+ */
public abstract class MultiFileUploadDialog extends AbstractDialog {
private static final long serialVersionUID = 1L;
@@ -32,7 +36,7 @@
private FileUploadWidget widget;
private AjaxButton ajaxButton;
- protected MultiFileUploadDialog(String[] fileExtensions) {
+ protected MultiFileUploadDialog(IPluginConfig pluginConfig) {
setOutputMarkupId(true);
setNonAjaxSubmit();
@@ -54,9 +58,7 @@
ajaxButton.setVisible(false);
addButton(ajaxButton);
- FileUploadWidgetSettings settings = new FileUploadWidgetSettings();
- settings.setFileExtensions(fileExtensions);
- settings.setMaxNumberOfFiles(25);
+ FileUploadWidgetSettings settings = new FileUploadWidgetSettings(pluginConfig);
widget = new FileUploadWidget("uploadWidget", settings) {
@Override
@@ -105,7 +107,7 @@
@Override
protected void onOk() {
- if (widget.isFlash()) {
+ if (widget.isFlashUpload()) {
AjaxRequestTarget target = AjaxRequestTarget.get();
if (target != null) {
ajaxButton.setEnabled(false);
Index: yui/src/main/java/org/hippoecm/frontend/plugins/yui/upload/FileUploadWidget.java
===================================================================
--- yui/src/main/java/org/hippoecm/frontend/plugins/yui/upload/FileUploadWidget.java (revision 30175)
+++ yui/src/main/java/org/hippoecm/frontend/plugins/yui/upload/FileUploadWidget.java (revision )
@@ -32,7 +32,13 @@
import java.util.Collection;
+/**
+ * Widget for uploading files. This widget allows both flash and non-flash uploads based on the configuration.
+ * By default the flash upload is used. For more configuration options please take a look at
+ * {@link FileUploadWidgetSettings}.
+ */
public class FileUploadWidget extends Panel {
+ @SuppressWarnings("unused")
final static String SVN_ID = "$Id: FileUploadWidget.java 27296 2011-03-10 17:53:33Z mchatzidakis $";
private static final String COMPONENT_ID = "component";
@@ -58,24 +64,30 @@
protected void onBeforeRender() {
super.onBeforeRender();
+ if(settings.isFlashUploadEnabled()) {
- if (detectedFlash == null) {
- Page page = getPage();
- for (IBehavior behavior : page.getBehaviors()) {
- if (behavior instanceof WebAppBehavior) {
- WebAppBehavior webapp = (WebAppBehavior) behavior;
- detectedFlash = webapp.getFlash();
- }
- }
- }
+ if (detectedFlash == null) {
+ Page page = getPage();
+ for (IBehavior behavior : page.getBehaviors()) {
+ if (behavior instanceof WebAppBehavior) {
+ WebAppBehavior webapp = (WebAppBehavior) behavior;
+ detectedFlash = webapp.getFlash();
+ }
+ }
+ }
+ }
- if (isFlash()) {
+ if (isFlashUpload()) {
renderFlashUpload();
} else {
renderJavascriptUpload();
}
}
- public boolean isFlash() {
+ /**
+ * Detect if flash is installed and if the correct version of the flash plugin is found.
+ * @return true
if flash and the correct version is detected, false
otherwise
+ */
+ public boolean isFlashUpload() {
return detectedFlash != null && detectedFlash.isValid(VALID_FLASH);
}
@@ -127,7 +139,7 @@
}
public void handleNonFlashSubmit() {
- if (!isFlash()) {
+ if (!isFlashUpload()) {
Collection