Juan Hernandez has uploaded a new change for review. Change subject: webadmin: Use GET instead of POST for reports ......................................................................
webadmin: Use GET instead of POST for reports Currently the integration with the reports application creates a new frame with a form that is populated with parameters and then submitted using the POST method. This generates some issues if the reports application decides to re-submit it, as the browser will automatically present a confirmation dialog to the user. This patch changes the integration to use the GET method instead, so even if the form is submitted more than once there will be no confirmation dialog. Note that the only effective change in this patch is the change in the method from POST to GET, the rest is just renaming the classes, methods and attributes from "postable" to "submittable", to keep things consistent. Change-Id: Ic464a461a349610035caf4fcb74f9c758e047f19 Bug-Url: https://bugzilla.redhat.com/1033090 Signed-off-by: Juan Hernandez <[email protected]> --- M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/ReportPresenterWidget.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/ReportView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.ui.xml R frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/form/SubmittableFrame.java 5 files changed, 29 insertions(+), 28 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/21520/1 diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/ReportPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/ReportPresenterWidget.java index c5e348d..87fc5de 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/ReportPresenterWidget.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/ReportPresenterWidget.java @@ -28,9 +28,9 @@ void setFrameParams(Map<String, List<String>> params); /** - * POST the Frame Data + * Submit the Frame Data */ - void postFrame(); + void submitFrame(); } private ReportModel model = null; @@ -54,7 +54,7 @@ private void updateReportUrl() { getView().setFrameParams(getModel().getReportParams()); getView().setFrameUrl(getModel().getReportUrl()); - getView().postFrame(); + getView().submitFrame(); } public ReportModel getModel() { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/ReportView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/ReportView.java index 13a3c59..03d9d48 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/ReportView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/ReportView.java @@ -8,17 +8,17 @@ import org.ovirt.engine.ui.common.view.AbstractView; import org.ovirt.engine.ui.webadmin.section.main.presenter.ReportPresenterWidget; -import org.ovirt.engine.ui.webadmin.widget.form.PostableFrame; +import org.ovirt.engine.ui.webadmin.widget.form.SubmittableFrame; import com.google.gwt.dom.client.Style.Position; public class ReportView extends AbstractView implements ReportPresenterWidget.ViewDef { - private final PostableFrame frame; + private final SubmittableFrame frame; @Inject public ReportView() { - frame = new PostableFrame("_blank"); //$NON-NLS-1$ + frame = new SubmittableFrame("_blank"); //$NON-NLS-1$ frame.setSize("100%", "100%"); //$NON-NLS-1$ //$NON-NLS-2$ frame.getElement().getStyle().setPosition(Position.ABSOLUTE); initWidget(frame); @@ -39,8 +39,8 @@ } @Override - public void postFrame() { - frame.post(); + public void submitFrame() { + frame.submit(); } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java index 2ae1dcc..57335e6 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.java @@ -6,7 +6,7 @@ import org.ovirt.engine.ui.common.view.AbstractView; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabReportsPresenter; -import org.ovirt.engine.ui.webadmin.widget.form.PostableFrame; +import org.ovirt.engine.ui.webadmin.widget.form.SubmittableFrame; import com.google.gwt.core.client.GWT; import com.google.gwt.uibinder.client.UiBinder; @@ -17,13 +17,13 @@ private static MainTabReportsViewUiBinder uiBinder = GWT.create(MainTabReportsViewUiBinder.class); @UiField(provided = true) - PostableFrame reportPostableFrame; + SubmittableFrame reportsSubmittableFrame; interface MainTabReportsViewUiBinder extends UiBinder<Widget, MainTabReportsView> { } public MainTabReportsView() { - reportPostableFrame = new PostableFrame("dashboard"); //$NON-NLS-1$ + reportsSubmittableFrame = new SubmittableFrame("dashboard"); //$NON-NLS-1$ initWidget(uiBinder.createAndBindUi(this)); } @@ -31,16 +31,16 @@ @Override public void updateReportsPanel(String url, Map<String, List<String>> params) { - reportPostableFrame.setUrl(url); + reportsSubmittableFrame.setUrl(url); // Set parameters - reportPostableFrame.removeOldParams(); + reportsSubmittableFrame.removeOldParams(); for (Entry<String, List<String>> entry : params.entrySet()) { for (String param : entry.getValue()) { - reportPostableFrame.addParameter(entry.getKey(), param); + reportsSubmittableFrame.addParameter(entry.getKey(), param); } } - reportPostableFrame.post(); + reportsSubmittableFrame.submit(); } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.ui.xml index 931b0c9..7741913 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabReportsView.ui.xml @@ -12,6 +12,6 @@ </ui:style> <g:HTMLPanel> - <d:PostableFrame ui:field="reportPostableFrame" addStyleNames="{style.frame}"></d:PostableFrame> + <d:SubmittableFrame ui:field="reportsSubmittableFrame" addStyleNames="{style.frame}"></d:SubmittableFrame> </g:HTMLPanel> </ui:UiBinder> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/form/PostableFrame.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/form/SubmittableFrame.java similarity index 78% rename from frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/form/PostableFrame.java rename to frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/form/SubmittableFrame.java index 4dde63d..48615e4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/form/PostableFrame.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/form/SubmittableFrame.java @@ -12,24 +12,25 @@ import com.google.gwt.user.client.ui.RootPanel; /** - * A {@link Frame} that has it's contents POSTed + * A {@link Frame} containing only a form that can can be submitted. */ -public class PostableFrame extends Frame { +public class SubmittableFrame extends Frame { private final FormPanel form; private final Map<String, List<Hidden>> hiddens = new HashMap<String, List<Hidden>>(); /** - * Create a new {@link PostableFrame} with the specified name. + * Create a new {@link SubmittableFrame} with the specified name. * * @param frameName * Frame name: MUST be unique.<BR> - * Two {@link PostableFrame}s that operate separately on the same page, must have different names. + * Two {@link SubmittableFrame}s that operate separately on the same page, must have different names. */ - public PostableFrame(String frameName) { - // Form + public SubmittableFrame(String frameName) { + // Create a form using the GET to avoid double post warnings from the browser if the form in the frame is + // submitted more than once: form = new FormPanel(frameName); - form.setMethod(FormPanel.METHOD_POST); + form.setMethod(FormPanel.METHOD_GET); form.setSize("0", "0"); //$NON-NLS-1$ //$NON-NLS-2$ // Frame @@ -37,9 +38,9 @@ } /** - * POST the frame + * Submit the frame. */ - public void post() { + public void submit() { // attach form lazily if (!form.isAttached()) { attachForm(); @@ -49,7 +50,7 @@ } /** - * Set a POST parameter + * Set a parameter * * @param name * @param value @@ -69,7 +70,7 @@ } /** - * Add a POST parameter + * Add a parameter * * @param name * @param value @@ -90,7 +91,7 @@ } /** - * Remove old POST parameters + * Remove old parameters */ public void removeOldParams() { for (List<Hidden> hiddenList : hiddens.values()) { -- To view, visit http://gerrit.ovirt.org/21520 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic464a461a349610035caf4fcb74f9c758e047f19 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Juan Hernandez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
