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

Reply via email to