view share/roundup/templates/devel/html/query.js @ 8040:19cef1e285b0

fix: remove delay when using csv export actions. The CSV file is written incrementally, so we can't determine the Content-Length. When using HTTP/1.1, this causes a delay while the browser waits for a timeout. Forcing the connection to close after the CSV file is written removes the delay. Ideally we should shift to chunked transfer encoding for these two actions, but that is much more invasive and when posting a request for CSV, it is unlikely that another request will be sent over the same socket.
author John Rouillard <rouilj@ieee.org>
date Tue, 18 Jun 2024 00:48:06 -0400
parents 04264349c483
children
line wrap: on
line source

var action;

function display(data)
{
  var list = $("div.list");
  list.empty();
  list.append(data);
}

// Run a query with a specific starting point and size
function query_start(start, size)
{
  var inputs = $(":input");
  var data = {}
  if (start > 0) data['@startwith'] = start
  if (size > -1) data['@pagesize'] = size
  for (var i = 0; i < inputs.length; i++)
    data[inputs[i].name] = inputs[i].value;
  jQuery.get(action, data, display);
  return false;
}

// Run a query, starting at the first element
function query()
{
  return query_start(0, -1)
}

// Deactivate the form's submit action, and instead
// invoke the action as part of (inline) query.
function replace_submit()
{
  var form = $("form");
  action = form.attr("action");
  form.attr("action",""); // reset
  form.submit(query);
}


$(document).ready(replace_submit);

Roundup Issue Tracker: http://roundup-tracker.org/