view website/issues/html/user.help-search.html @ 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 7146b68ac263
children 28aa76443f58
line wrap: on
line source

<html
  tal:define="form request/form/form/value;
  field request/form/property/value"
  >
  <head>
    <title>Search input for user helper</title>
    <script language="Javascript" type="text/javascript"
        tal:attributes="nonce request/client/client_nonce"
        tal:content="structure string:<!--
        // this is the name of the field in the original form that we're working on
        form  = parent.opener.document.${form};
        field  = '${field}';
        //-->">
    </script>
    <script type="text/javascript" src="@@file/help_controls.js"
	    tal:attributes="nonce request/client/client_nonce"></script>
    <link rel="stylesheet" type="text/css" href="@@file/style.css" />
  </head>
  <body onload="parent.submit.url='...'"
    tal:define="
qs request/env/QUERY_STRING;
qs python:'&'.join([a for a in qs.split('&') if not a.startswith('@template=')])"
>
    <pre tal:content="request/env/QUERY_STRING" tal:condition=false />
    <form method="get" name="itemSynopsis"
      target="list"
      tal:attributes="action request/classname"
      tal:define="
      property request/form/property/value;
   cols python:request.columns or 'id username address realname roles'.split();
   sort_on request/sort | nothing;
   sort_desc python:sort_on and request.sort[0][0] == '-';
   sort_on python:sort_on and request.sort[0][1] or 'lastname';

   search_input templates/page/macros/search_input;
   search_select templates/page/macros/search_select;
   search_select_roles templates/page/macros/search_select_roles;
   required python:[];
   th_label templates/page/macros/th_label;
   ">
   <input type="hidden" name="@template" value="help-list">
   <input type="hidden" name="property" value="" tal:attributes="value property">
   <input type="hidden" name="form" value="" tal:attributes="value request/form/form/value">
   <table>
<tr tal:define="name string:username; label string:Username:">
  <th metal:use-macro="th_label">Name</th>
  <td metal:use-macro="search_input"><input type=text></td>
</tr>

<tr tal:define="name string:roles;
                onchange string:this.form.submit();
                label string:Roles:"
                >
  <th metal:use-macro="th_label">role</th>
  <td metal:use-macro="search_select_roles">
    <select>
      <option value="">jokester</option>
    </select>
  </td>
</tr>

<tr>
  <td>&nbsp;</td>
  <td>
    <input type="hidden" name="@action" value="search">
    <input type="submit" value="Search" i18n:attributes="value">
    <input type="reset">
    <input type="hidden" value="username,realname,organisation,roles" name="properties">
    <input type="text" name="@pagesize" id="sp-pagesize" value="25" size="2">
    <label for="sp-pagesize" i18n:translate="">Pagesize</label>
  </td>
</tr>

   </table>

</form>
<pre tal:content="request" tal:condition=false />
<script type="text/javascript"
	tal:attributes="nonce request/client/client_nonce"><!--
  focus2id('username');
//--></script>
  </body>
</html>

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