diff --git a/pagure/templates/issue.html b/pagure/templates/issue.html
index ce5db3a..5a381c1 100644
--- a/pagure/templates/issue.html
+++ b/pagure/templates/issue.html
@@ -917,6 +917,7 @@ function try_async_comment(form) {
console.log('Submitting form:');
console.log(form);
set_ui_for_comment(true);
+
var _data = $(form).serialize();
var btn = $(document.activeElement);
if (btn[0].name == 'drop_comment'){
@@ -924,11 +925,15 @@ function try_async_comment(form) {
set_ui_for_comment(false);
return true;
}
- if (!sse || source.readyState != 1) {
- $(form).off('submit');
- form.submit();
- return false;
- }
+
+ /* Keep some variable in memory before sending them in case the SSE is down */
+ var _url = form.action;
+ var _comment = $(form).find('#comment').val();
+ var _commit_id = null;
+ var _line = null;
+ var _token = "{{ form.csrf_token.current_token }}";
+ var _base_url = _url.split('?')[0];
+
var _url = form.action + "?js=1";
$.post( _url, _data )
.done(function(data) {
@@ -944,7 +949,37 @@ function try_async_comment(form) {
$('#comments').find('.edit_comment').remove();
$( ".issue-metadata-form" ).hide();
$( ".issue-metadata-display" ).show();
- set_ui_for_comment(false);
+ if (!sse || source.readyState != 1) {
+ console.log('no sse, adding the comment manually');
+ $.ajax({
+ url: "{{ url_for('ui_ns.markdown_preview') }}" ,
+ type: 'POST',
+ data: {
+ content: _comment,
+ csrf_token: _token,
+ },
+ dataType: 'html',
+ success: function(res) {
+ var _comment = emojione.toImage(res);
+ var data = {
+ comment_added: _comment,
+ comment_user: "{{ g.fas_user.username }}",
+ comment_date: Date.now(),
+ avatar_url: "{{ g.fas_user.email | avatar_url(16) }}",
+ }
+ process_event(
+ data,
+ "{{ issue.uid }}",
+ "{{ g.fas_user.username if g.authenticated or '' }}");
+ set_ui_for_comment(false);
+ setup_reply_btns()
+ return false;
+ }
+ });
+ return false;
+ } else {
+ set_ui_for_comment(false);
+ }
} else {
// Make the browser submit the form sync
$(form).off('submit');