• last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Generalized ADP compilation caching, simplified handling of ad_init

Generalized adp-compilation caching

* since the result of ADP compilation can depend on the icon set

(and maybe more factors in the future), and the icon set

can be switched freely, either one needs more ADP compilation

at runtime (page rendering time) or caching had to be generalized.

* generalization of caching leads to better scalability, and

since the number of icon sets concurrently active at one

site is limited, this option seems favorable.

* The only potential incompatibility might be from installations

doing "manual" incantations of "template::adp_init" followed by

direct calls of the stub. The only packages (out of the 365

packages in CVS) effected by this are "diagram" and

"workflow". Both have been fixed in the repository. This

incantation can be simplified as followed.

Simplified handling of adp_init

* old:

template::adp_init adp $file_stub

template::code::adp::$file_stub

* new

[template::adp_init adp $file_stub]

Bumped version to 5.10.1d8

  1. … 1 more file in changeset.
Make 'template::adp_compile_chunk' public, as it is used by the new 'xowiki::adp_parse_tags'

in case an icon name is mapped to the empty string in some iconset, use the title text instead of an icon

extend registered names for adp:icons

added "form-info-sign" and "download" icon to gyphicon/bi compatibility mapping

separating naviserver and aolserver specific files

file parse-procs-aolserver.tcl was initially added on branch oacs-5-10.

    • -0
    • +0
    ./parse-procs-aolserver.tcl
file parse-procs-naviserver.tcl was initially added on branch oacs-5-10.

    • -0
    • +0
    ./parse-procs-naviserver.tcl
Improved toolkit support for homogeneous theming and appearance

This change included new tags for rendering icons and toggles. The

change makes it possible that an unchanged markup of icons can be

adapt itself according to a theme or a manual configuration. One can

use e.g. for Bootstrap 3 glyphicons, and when changing the theme to

Bootstrap 5, then bootstrap icons are used.

Furthermore, the new markup eases maintenance and helps to achieve a

consistent look-and-feel also, when design decisions are altered.

Both, bootstrap-icons and glyphicons are font-based. This leads as

well to a better user experience, since the number of requests are

substantially lower than with the previous approach based on .gif and

.png files. When the iconset is set to "classic" (package parameter in

acs-subsite), the old image files are used.

- new tag: <adp:icon name="NAME" title="..." style="..." class="...">

Icon-names available for all iconsets:

edit

trash

radio-checked

radio-unchecked

checkbox-checked

checkbox-unchecked

arrow-down

arrow-up

The page acs-admin/package/bootstrap-icons/sample contains more

detailed information, including the names which are identical

between bootstrap 3 and 5.

- bumped version number of acs-templating to 5.10.1d6

  1. … 1 more file in changeset.
file style-procs.tcl was initially added on branch oacs-5-10.

Improve doc

Replace the lame template::util::get_opts with some homemade utility that will parse arguments reliably, adjust the one upstream use case where arguments other than those documented might be passed to the element creation, introduce a warning when this happens somewhere else

  1. … 1 more file in changeset.
Fix test, the proc behaves as documented (and IMO, it should go away at some point)

New test for template::util::get_opts

This will expose a bug when an argument in an even position is specified that starts with a "-" character

not necessary to check if format is a list

move the check for the provided format on richtext level

increase robustness

Be stricter when validating widgets with restricted options: when no options are specified, treat it as automatic failure

Compute amplitude and wavelength explicitly in pixels and make it stable with respect to the captcha size, introduce a random offset for the wave instead

Fixes acs-templating.tesseract_cannot_crack_catpcha automated test

Minor modernization

- use atomic stack operations to reduce locks and avoid race conditions

- improve spelling

- break overlong lines

- better align comments with actual code

Drop the pointsize parameter, use size instead, yielding more predictable results across Imagemagik versions and more controllable in general, make the wavelength randomized in the distortion

Deprecate template::util::tcl_to_sql_list, completely replaced by ns_dbquotelist, a native NaviServer command

  1. … 15 more files in changeset.
Improve test portability

Baseline test of captcha robustness: challenge the captcha using tesseract, also applying basic normalizations

Fail when no value is specified

Fix tests according to new behavior

Improve behavior: invalidate the captcha when the check fails, cleanup expired captcha also when a new one is generated

Test newly introduced api

file captcha-procs.tcl was initially added on branch oacs-5-10.

    • -0
    • +0
    ./test/captcha-procs.tcl
A simple image captcha implementation:

a random text is converted to a distorted image, its checksum, together with the expected text are stored in a lookup table. Upon validation, the text input by the user is matched against the checksum to determine if the captcha is correct.

Plan is to use it downstream on certain publicly available contact forms.

  1. … 8 more files in changeset.