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 2012/10/24 12:44:54 UTC
svn commit: r1401615 - in /incubator/openmeetings/trunk/singlewebapp: ivy.xml
src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java
src/org/apache/openmeetings/web/util/
src/org/apache/openmeetings/web/util/AjaxDownload.java
Author: solomax
Date: Wed Oct 24 10:44:54 2012
New Revision: 1401615
URL: http://svn.apache.org/viewvc?rev=1401615&view=rev
Log:
Wicket: wicket is updated to 6.2.0; AjaxDownload is restored
Added:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java
Modified:
incubator/openmeetings/trunk/singlewebapp/ivy.xml
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java
Modified: incubator/openmeetings/trunk/singlewebapp/ivy.xml
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/ivy.xml?rev=1401615&r1=1401614&r2=1401615&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/ivy.xml (original)
+++ incubator/openmeetings/trunk/singlewebapp/ivy.xml Wed Oct 24 10:44:54 2012
@@ -216,25 +216,25 @@
<dependency org="org.simpleframework" name="simple-xml" rev="2.6.6" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-request" rev="6.0.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-request" rev="6.2.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-util" rev="6.0.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-util" rev="6.2.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-core" rev="6.0.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-core" rev="6.2.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-auth-roles" rev="6.0.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-auth-roles" rev="6.2.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-ioc" rev="6.0.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-ioc" rev="6.2.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-extensions" rev="6.0.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-extensions" rev="6.2.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-datetime" rev="6.0.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-datetime" rev="6.2.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java?rev=1401615&r1=1401614&r2=1401615&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/backup/BackupPanel.java Wed Oct 24 10:44:54 2012
@@ -31,6 +31,7 @@ import org.apache.openmeetings.utils.OmF
import org.apache.openmeetings.utils.math.CalendarPatterns;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.components.admin.AdminPanel;
+import org.apache.openmeetings.web.util.AjaxDownload;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
@@ -94,6 +95,9 @@ public class BackupPanel extends AdminPa
setMaxSize(Bytes.bytes(ImportHelper.getMaxUploadSize(Application
.getBean(ConfigurationDaoImpl.class))));
+ // Add a component to download a file without page refresh
+ final AjaxDownload download = new AjaxDownload();
+ add(download);
// add an download button
add(new AjaxButton("download", this) {
private static final long serialVersionUID = 839803820502260006L;
@@ -116,10 +120,13 @@ public class BackupPanel extends AdminPa
includeFilesInBackup.getConvertedInput()
.booleanValue());
+ /*download.setFileName(backupFile.getName());
+ download.setResourceStream(new FileResourceStream(backupFile));
+ download.initiate(target);*/
ResourceStreamRequestHandler handler
= new ResourceStreamRequestHandler(new FileResourceStream(backupFile), backupFile.getName());
handler.setContentDisposition(ContentDisposition.ATTACHMENT);
-
+
getRequestCycle().scheduleRequestHandlerAfterCurrent(handler);
} catch (Exception e) {
log.error("Exception on panel backup download ", e);
Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java?rev=1401615&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/AjaxDownload.java Wed Oct 24 10:44:54 2012
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.behavior.AbstractAjaxBehavior;
+import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
+import org.apache.wicket.request.resource.ContentDisposition;
+import org.apache.wicket.util.resource.IResourceStream;
+
+/**
+ * see: <a href="https://cwiki.apache.org/confluence/display/WICKET/AJAX+update+and+file+download+in+one+blow">
+ * https://cwiki.apache.org/confluence/display/WICKET/AJAX+update+and+file+download+in+one+blow</href>
+ *
+ */
+public class AjaxDownload extends AbstractAjaxBehavior {
+ private static final long serialVersionUID = 1L;
+
+ private boolean addAntiCache;
+
+ private String fileName;
+ private IResourceStream resourceStream;
+
+ public AjaxDownload() {
+ this(true);
+ }
+
+ public AjaxDownload(boolean addAntiCache) {
+ super();
+ this.addAntiCache = addAntiCache;
+ }
+
+ /**
+ * Call this method to initiate the download.
+ */
+ public void initiate(AjaxRequestTarget target) {
+ String url = getCallbackUrl().toString();
+
+ if (addAntiCache) {
+ url = url + (url.contains("?") ? "&" : "?");
+ url = url + "antiCache=" + System.currentTimeMillis();
+ }
+
+ // the timeout is needed to let Wicket release the channel
+ target.appendJavaScript("setTimeout(\"window.location.href='" + url
+ + "'\", 100);");
+ }
+
+ public void onRequest() {
+ ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(
+ getResourceStream(), getFileName());
+ handler.setContentDisposition(ContentDisposition.ATTACHMENT);
+ getComponent().getRequestCycle().scheduleRequestHandlerAfterCurrent(
+ handler);
+ }
+
+ /**
+ * Override this method for a file name which will let the browser prompt
+ * with a save/open dialog.
+ *
+ * @see ResourceStreamRequestTarget#getFileName()
+ */
+ protected String getFileName() {
+ return this.fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ /**
+ * Hook method providing the actual resource stream.
+ */
+ protected IResourceStream getResourceStream() {
+ return resourceStream;
+
+ }
+
+ public void setResourceStream(IResourceStream resourceStream) {
+ this.resourceStream = resourceStream;
+ }
+
+}