[OPENMEETINGS-1632] wicket AjaxDownload is used
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/7b108d94 Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/7b108d94 Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/7b108d94 Branch: refs/heads/master Commit: 7b108d9458e278e73b5a5cebf00f0053b20a4e1e Parents: ccca6bd Author: Maxim Solodovnik <[email protected]> Authored: Wed Apr 19 04:59:55 2017 +0000 Committer: Maxim Solodovnik <[email protected]> Committed: Wed Apr 19 04:59:55 2017 +0000 ---------------------------------------------------------------------- .../web/admin/backup/BackupPanel.java | 27 +++- .../web/admin/labels/LangPanel.java | 31 +++-- .../web/common/tree/DownloadMenuItem.java | 4 +- .../web/common/tree/FileTreePanel.java | 26 +++- .../web/room/menu/StartSharingButton.java | 26 ++-- .../openmeetings/web/user/record/VideoInfo.java | 29 ++++- .../openmeetings/web/util/AjaxDownload.java | 128 ------------------- .../openmeetings/web/util/ajax-download.js | 23 ---- 8 files changed, 108 insertions(+), 186 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/7b108d94/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java index f804ba6..ff19b04 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java @@ -20,8 +20,10 @@ package org.apache.openmeetings.web.admin.backup; import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey; import static org.apache.openmeetings.web.app.Application.getBean; +import static org.apache.wicket.util.time.Duration.NONE; import java.io.File; +import java.nio.file.Path; import java.text.DecimalFormat; import java.util.Date; @@ -33,11 +35,11 @@ import org.apache.openmeetings.util.CalendarPatterns; import org.apache.openmeetings.util.OmFileHelper; import org.apache.openmeetings.web.admin.AdminPanel; import org.apache.openmeetings.web.app.Application; -import org.apache.openmeetings.web.util.AjaxDownload; import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior; import org.apache.wicket.ajax.AbstractAjaxTimerBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; +import org.apache.wicket.extensions.ajax.AjaxDownload; import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.CheckBox; @@ -45,8 +47,9 @@ 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.Model; +import org.apache.wicket.request.resource.IResource; +import org.apache.wicket.resource.FileSystemResource; import org.apache.wicket.util.lang.Bytes; -import org.apache.wicket.util.resource.FileResourceStream; import org.apache.wicket.util.time.Duration; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; @@ -106,7 +109,23 @@ public class BackupPanel extends AdminPanel { setMaxSize(Bytes.bytes(maxBytes)); // Add a component to download a file without page refresh - final AjaxDownload download = new AjaxDownload(); + final AjaxDownload download = new AjaxDownload(new IResource() { + private static final long serialVersionUID = 1L; + + @Override + public void respond(Attributes attributes) { + new FileSystemResource(backupFile.toPath()) { + private static final long serialVersionUID = 1L; + + @Override + protected ResourceResponse createResourceResponse(Attributes attr, Path path) { + ResourceResponse response = super.createResourceResponse(attr, path); + response.setCacheDuration(NONE); + return response; + } + }.respond(attributes); + } + }); add(download); // add an download button add(new AjaxButton("download", this) { @@ -164,8 +183,6 @@ public class BackupPanel extends AdminPanel { timer.stop(target); target.add(progressBar.setVisible(false)); - download.setFileName(backupFile.getName()); - download.setResourceStream(new FileResourceStream(backupFile)); download.initiate(target); } }).setVisible(false).setOutputMarkupPlaceholderTag(true)); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/7b108d94/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java index afef420..b280d8a 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java @@ -38,20 +38,23 @@ import org.apache.openmeetings.web.common.PagedEntityListPanel; import org.apache.openmeetings.web.data.DataViewContainer; import org.apache.openmeetings.web.data.OmOrderByBorder; import org.apache.openmeetings.web.data.SearchableDataProvider; -import org.apache.openmeetings.web.util.AjaxDownload; import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior; import org.apache.wicket.AttributeModifier; import org.apache.wicket.ajax.AjaxEventBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; import org.apache.wicket.ajax.markup.html.AjaxLink; +import org.apache.wicket.extensions.ajax.AjaxDownload; import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.upload.FileUpload; import org.apache.wicket.markup.html.form.upload.FileUploadField; import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.request.resource.ContentDisposition; +import org.apache.wicket.request.resource.ResourceStreamResource; import org.apache.wicket.util.resource.AbstractResourceStream; +import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.ResourceStreamNotFoundException; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; @@ -172,17 +175,18 @@ public class LangPanel extends AdminPanel { }); // Add a component to download a file without page refresh - final AjaxDownload download = new AjaxDownload(); - langForm.add(download); - - langForm.add(new AjaxButton("export"){ + final AjaxDownload download = new AjaxDownload(new ResourceStreamResource() { private static final long serialVersionUID = 1L; + { + setContentDisposition(ContentDisposition.ATTACHMENT); + } + @Override - protected void onSubmit(AjaxRequestTarget target) { + protected IResourceStream getResourceStream(Attributes attributes) { final String name = LabelDao.getLabelFileName(language.getValue()); - download.setFileName(name); - download.setResourceStream(new AbstractResourceStream() { + setFileName(name); + return new AbstractResourceStream() { private static final long serialVersionUID = 1L; private transient InputStream is; @@ -203,7 +207,16 @@ public class LangPanel extends AdminPanel { is = null; } } - }); + }; + } + }); + langForm.add(download); + + langForm.add(new AjaxButton("export"){ + private static final long serialVersionUID = 1L; + + @Override + protected void onSubmit(AjaxRequestTarget target) { download.initiate(target); // repaint the feedback panel so that it is hidden http://git-wip-us.apache.org/repos/asf/openmeetings/blob/7b108d94/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java index e1c55f7..d94e86d 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java @@ -30,7 +30,6 @@ 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; import com.googlecode.wicket.jquery.ui.JQueryIcon; import com.googlecode.wicket.jquery.ui.widget.menu.MenuItem; @@ -66,8 +65,7 @@ public class DownloadMenuItem extends MenuItem { f = ff[0]; } } - tree.downloader.setFileName(f.getName()); - tree.downloader.setResourceStream(new FileResourceStream(f)); + tree.dwnldFile = f; tree.downloader.initiate(target); } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/7b108d94/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java index 37552d2..df9d056 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java @@ -23,7 +23,10 @@ import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG; import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF; import static org.apache.openmeetings.web.app.Application.getBean; import static org.apache.openmeetings.web.app.WebSession.getUserId; +import static org.apache.wicket.util.time.Duration.NONE; +import java.io.File; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -41,19 +44,21 @@ import org.apache.openmeetings.db.entity.record.Recording; import org.apache.openmeetings.web.common.ConfirmableAjaxBorder; import org.apache.openmeetings.web.common.ConfirmableAjaxBorder.ConfirmableBorderDialog; import org.apache.openmeetings.web.common.NameDialog; -import org.apache.openmeetings.web.util.AjaxDownload; import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxEventBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.attributes.CallbackParameter; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; +import org.apache.wicket.extensions.ajax.AjaxDownload; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; +import org.apache.wicket.request.resource.IResource; +import org.apache.wicket.resource.FileSystemResource; import com.googlecode.wicket.jquery.core.JQueryBehavior; import com.googlecode.wicket.jquery.core.Options; @@ -77,7 +82,24 @@ public abstract class FileTreePanel extends Panel { private final WebMarkupContainer sizes = new WebMarkupContainer("sizes"); private FileItem lastSelected = null; private Map<String, FileItem> selected = new HashMap<>(); - final AjaxDownload downloader = new AjaxDownload(); + File dwnldFile; + final AjaxDownload downloader = new AjaxDownload(new IResource() { + private static final long serialVersionUID = 1L; + + @Override + public void respond(Attributes attributes) { + new FileSystemResource(dwnldFile.toPath()) { + private static final long serialVersionUID = 1L; + + @Override + protected ResourceResponse createResourceResponse(Attributes attr, Path path) { + ResourceResponse response = super.createResourceResponse(attr, path); + response.setCacheDuration(NONE); + return response; + } + }.respond(attributes); + } + }); protected final IModel<String> homeSize = Model.of((String)null); protected final IModel<String> publicSize = Model.of((String)null); final ConvertingErrorsDialog errorsDialog = new ConvertingErrorsDialog("errors", Model.of((Recording)null)); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/7b108d94/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java index 64801fa..1250eb5 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java @@ -27,6 +27,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SCREENSH import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey; import static org.apache.openmeetings.web.app.Application.getBean; import static org.apache.openmeetings.web.app.WebSession.getLanguage; +import static org.apache.wicket.util.time.Duration.NONE; import java.io.InputStream; @@ -41,9 +42,11 @@ import org.apache.openmeetings.web.app.Application; import org.apache.openmeetings.web.app.WebSession; import org.apache.openmeetings.web.common.OmButton; import org.apache.openmeetings.web.room.VideoSettings; -import org.apache.openmeetings.web.util.AjaxDownload; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.behavior.AttributeAppender; +import org.apache.wicket.extensions.ajax.AjaxDownload; +import org.apache.wicket.request.resource.ResourceStreamResource; +import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.StringResourceStream; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; @@ -57,6 +60,7 @@ public class StartSharingButton extends OmButton { private static final String CDATA_END = "]]>"; private final AjaxDownload download; private final Client c; + private String app = ""; public StartSharingButton(String id, Client c) { super(id); @@ -64,20 +68,26 @@ public class StartSharingButton extends OmButton { setOutputMarkupPlaceholderTag(true); setVisible(false); add(new AttributeAppender("title", Application.getString(1480))); - add(download = new AjaxDownload(true) { + add(download = new AjaxDownload(new ResourceStreamResource() { private static final long serialVersionUID = 1L; + { + setFileName(String.format("public_%s.jnlp", StartSharingButton.this.c.getRoomId())); + setCacheDuration(NONE); + } + @Override - protected String getFileName() { - return String.format("public_%s.jnlp", StartSharingButton.this.c.getRoomId()); + protected IResourceStream getResourceStream(Attributes attributes) { + StringResourceStream srs = new StringResourceStream(app, "application/x-java-jnlp-file"); + srs.setCharset(UTF_8); + return srs; } - }); + })); } @Override public void onClick(AjaxRequestTarget target) { //TODO deny download in case other screen sharing is in progress - String app = ""; try (InputStream jnlp = getClass().getClassLoader().getResourceAsStream("APPLICATION.jnlp")) { ConfigurationDao cfgDao = getBean(ConfigurationDao.class); app = IOUtils.toString(jnlp, UTF_8); @@ -108,10 +118,6 @@ public class StartSharingButton extends OmButton { .replace("$allowRecording", "" + (room.isAllowRecording() && (0 == sessionManager.getRecordingCount(roomId)))) .replace("$allowPublishing", "" + (0 == sessionManager.getPublishingCount(roomId))) ; - - StringResourceStream srs = new StringResourceStream(app, "application/x-java-jnlp-file"); - srs.setCharset(UTF_8); - download.setResourceStream(srs); download.initiate(target); } catch (Exception e) { log.error("Unexpected error while creating jnlp file", e); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/7b108d94/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java index a5a6285..792269a 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java @@ -22,8 +22,10 @@ import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4; import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData; import static org.apache.openmeetings.web.app.Application.getBean; import static org.apache.openmeetings.web.app.WebSession.getUserId; +import static org.apache.wicket.util.time.Duration.NONE; import java.io.File; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; @@ -38,15 +40,16 @@ import org.apache.openmeetings.db.entity.record.Recording.Status; import org.apache.openmeetings.db.entity.record.RecordingMetaData; import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.web.common.InvitationDialog; -import org.apache.openmeetings.web.util.AjaxDownload; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.extensions.ajax.AjaxDownload; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import org.apache.wicket.util.resource.FileResourceStream; +import org.apache.wicket.request.resource.IResource; +import org.apache.wicket.resource.FileSystemResource; import com.googlecode.wicket.jquery.ui.JQueryIcon; import com.googlecode.wicket.jquery.ui.form.button.AjaxButton; @@ -77,7 +80,24 @@ public class VideoInfo extends Panel { }.start(); } }; - private final AjaxDownload download = new AjaxDownload(); + private final AjaxDownload download = new AjaxDownload(new IResource() { + private static final long serialVersionUID = 1L; + + @Override + public void respond(Attributes attributes) { + File f = rm.getObject().getFile(EXTENSION_MP4); + new FileSystemResource(f.toPath()) { + private static final long serialVersionUID = 1L; + + @Override + protected ResourceResponse createResourceResponse(Attributes attr, Path path) { + ResourceResponse response = super.createResourceResponse(attr, path); + response.setCacheDuration(NONE); + return response; + } + }.respond(attributes); + } + }); private final IModel<Recording> rm = new CompoundPropertyModel<>(new Recording()); private final IModel<String> roomName = Model.of((String)null); private boolean isInterview = false; @@ -184,9 +204,6 @@ public class VideoInfo extends Panel { @Override public void onClick(AjaxRequestTarget target) { - File f = rm.getObject().getFile(EXTENSION_MP4); - download.setFileName(f.getName()); - download.setResourceStream(new FileResourceStream(f)); download.initiate(target); } }); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/7b108d94/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AjaxDownload.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AjaxDownload.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AjaxDownload.java deleted file mode 100644 index c61c7d7..0000000 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AjaxDownload.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * 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 java.util.UUID; - -import org.apache.wicket.Component; -import org.apache.wicket.Page; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.behavior.AbstractAjaxBehavior; -import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.markup.head.JavaScriptHeaderItem; -import org.apache.wicket.markup.head.OnDomReadyHeaderItem; -import org.apache.wicket.markup.head.PriorityHeaderItem; -import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler; -import org.apache.wicket.request.resource.ContentDisposition; -import org.apache.wicket.request.resource.JavaScriptResourceReference; -import org.apache.wicket.request.resource.ResourceReference; -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; - private final String iframeId; - - public AjaxDownload() { - this(true); - } - - public AjaxDownload(boolean addAntiCache) { - super(); - this.addAntiCache = addAntiCache; - iframeId = String.format("download-iframe-%s", UUID.randomUUID().toString()); - } - - /** - * Call this method to initiate the download. - */ - public void initiate(AjaxRequestTarget target) { - StringBuilder url = new StringBuilder(getCallbackUrl()); - - if (addAntiCache) { - url.append(url.indexOf("?") > -1 ? "&" : "?") - .append("antiCache=").append(System.currentTimeMillis()); - } - target.appendJavaScript(String.format("$('#%s').attr('src', '%s');", iframeId, url.toString())); - } - - @Override - protected void onBind() { - super.onBind(); - // it is impossible to get page by id anyway - if (!(getComponent() instanceof Page)) { - getComponent().setOutputMarkupId(true); - } - } - - private static ResourceReference newResourceReference() { - return new JavaScriptResourceReference(AjaxDownload.class, "ajax-download.js"); - } - - @Override - public void renderHead(Component component, IHeaderResponse response) { - super.renderHead(component, response); - response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference()))); - response.render(OnDomReadyHeaderItem.forScript(String.format("addDwnldIframe('%s', '%s');", component instanceof Page ? "" : component.getMarkupId(), iframeId))); - } - - @Override - public void onRequest() { - ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(getResourceStream(), getFileName()); - handler.setContentDisposition(getContentDisposition()); - getComponent().getRequestCycle().scheduleRequestHandlerAfterCurrent(handler); - } - - protected ContentDisposition getContentDisposition() { - return ContentDisposition.ATTACHMENT; - } - /** - * 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; - } - -} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/7b108d94/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ajax-download.js ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ajax-download.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ajax-download.js deleted file mode 100644 index ee23529..0000000 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ajax-download.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * 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. - */ - -function addDwnldIframe(compId, id) { - compId = !!compId ? '#' + compId : 'body'; - $(compId).append('<iframe id="' + id + '" style="display:none" src="about:blank"></iframe>'); -}
