Support for handler for double-click prevention via CSS class
This change makes it possible to provide a double click prevention for HTML elements via the CSS class "prevent-double-click". The double click prevention deactivates a button or an anchor element after clicking for a short time (per default for 1s) and ignores in this time window further clicks. The time window can be specified via the data element oacs-timeout. When a double click occurs, the duplicate click is determined at the client side (in the browser) such that the first request will continue to run and will render its result when finished. Without double-click prevention (or with the double-click-prevention on the server side), the results of the first request are lost for the client, although these are still computed at the server side.
Usage Example:
<p>text with a <a class="prevent-double-click" data-oacs-timeout="2000" href="/slow.tcl?t=10s">link</a> <p> <form action="/slow.tcl"> <input class="btn prevent-double-click" data-oacs-timeout="2000" type="submit" value="Submit"> ... </form>
By reactivating the button automatically after the timeout, this approach works also reasonable well when opening additional tabs or browser windows.
The handler and implementation are designed to work with streaming HTML, provided that "template::collect_body_scripts" is called (like the reset of the template::* styling interface).
When HTML elements are deactivated, the DOM property "disabled" is set as well as a CSS class "disabled". Since disabled anchors are visually not different from non-disabled anchors, this CSS class can be used for styling disabled anchors differently.