From 0dd0275144634949657a2a64417a429a5e878ec5 Mon Sep 17 00:00:00 2001
From: Tristan Cavelier <tristan.cavelier@nexedi.com>
Date: Thu, 12 Oct 2017 14:25:56 +0000
Subject: [PATCH] erp5_officejs_support_request_ui: prevent sending comment
 twice

on form view discussable, by disabling submit button
---
 ...supportrequest_pt_form_view_discussable_js.js | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_pt_form_view_discussable_js.js b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_pt_form_view_discussable_js.js
index 199cfb9d38..c4ca2eeef0 100644
--- a/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_pt_form_view_discussable_js.js
+++ b/bt5/erp5_officejs_support_request_ui/PathTemplateItem/web_page_module/gadget_supportrequest_pt_form_view_discussable_js.js
@@ -184,15 +184,22 @@
           }
         });
     })
-    .onEvent('submit', function () {
+    .declareJob('submitPostComment', function () {
       var gadget = this,
+        submitButton = null,
+        queue = null,
         editor = gadget.element.querySelector('#comment');
 
       if (editor.value === '') {
         return gadget.notifySubmitted({message: "Post content can not be empty!"});
       }
 
-      return gadget.notifySubmitted({message: "Comment added"})
+      submitButton = gadget.element.querySelector("input[type=submit]");
+      submitButton.disabled = true;
+      function enableSubmitButton() {
+        submitButton.disabled = false;
+      }
+      queue = gadget.notifySubmitted({message: "Posting comment"})
         .push(function () {
           var choose_file_html_element = gadget.element.querySelector('#attachment'),
             file_blob = choose_file_html_element.files[0],
@@ -219,5 +226,10 @@
           editor.value = '';
           return gadget.redirect({command: 'reload'});
         });
+      queue.then(enableSubmitButton, enableSubmitButton);
+      return queue;
+    })
+    .onEvent('submit', function () {
+      this.submitPostComment();
     });
 }(window, rJS, RSVP, calculatePageTitle));
\ No newline at end of file
-- 
2.30.9