• last updated 10 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
output warning for unexpected input

Various small improvements:

- Page->content_header_append/content_header_get: new methods to

include HTML content before the form. One use case ist to include

additional forms this way, since these cannot be included in the

main form of a FormPage. The additional content is displayed in the

www-view method.

- FormPage->create_form_fields_from_names: new convenience function to create

form-fields via their names. The definitions of the named form-fields are

taken from the provided form_constraints. This function is useful when

only a subset of the form-constraints definitions should be used

to create form-fields.

- improve comments

- improve argument checking on parent_id to be able to provide better

error messages

- reduce usage of regexp for performance reasons

- improve spelling

  1. … 2 more files in changeset.
use "throw" in exception handling with "try"

Fail with the actual error message when parsing the value fails, rather than because of "result" variable not being set

- Define converters as procs

- Register these procs as aliases where convenient

- this effects:

dict_to_fc, dict_to_spec, spec_to_dict, fc_to_dict, dict_value

- extended regression test

- bumped version number to 5.10.1d9

  1. … 2 more files in changeset.
Added archiving of items, reduced usage of images for icons

When an item is archived, it is not shown to plain users. Internally,

when an item is archived, the publish status is changed to "expired"

and removed from search/syndication. When an item is archived, it can

be brought via "toggle-publish-status" to state "production" again.

Future versions might rename the item in such conditions, but

currently, it is NOT renamed, so one cannot create one more item in

the same folder with the same name.

For realizing this functionality, the includelet "form-usages" accepts

now an additional optional value for "-buttons" named "archive". The

publish status toggle can be used now for switching from

"production"->"ready", "ready"->"production" and

"expired"->"production".

Additionally, the usage of .png images as icons was reduced by CSS

elements for easier styling (e.g., for different themes) and for

reducing less server requests and better responsiveness. In particular

the images for active.png and inactive.png are not necessary any more

and were removed.

Bumped version number to 5.10.1d8 to enforce loading of the message

keys.

  1. … 13 more files in changeset.
define javascript input handler for formfield class numeric to prevent non-numeric input while preserving the multi-lingual interpretation

make log entries more uniform

prefer standard OpenACS API for accessing parameters

  1. … 4 more files in changeset.
modernize idiom

minor update of call pattern and debug line

Refactor form-field statistics (part 1)

- Start move of statistics from being collected in form-fields to

collecting these in the workflow objects. The original code was

developed with less randomization (e.g. no x out of y alternatives)

which requires that the formfields have to be reset multiple times

(e.g. for multiple students in the exam protocol). The exam-protocol

handler cleans regularly the form-fields, which caused also the

deletion of statistics. Collecting these in the (exam) workflow is

safe.

- Collect correct and incorrect statistics per alternative. Since

different students might see different alternatives calculating the

successrate can only be performed by the students having seens this

alternative.

  1. … 2 more files in changeset.
deactivate grammarly as well, when spellcheck is turned off for textarea

better control of browser built-in spellcheck

- xowiki: added property "spellcheck" to formfield classes "textarea" and "text_fields"

- xowf: allow per-exam to activate/deactivate spellcheck in these widget classes

  1. … 6 more files in changeset.
Extend high-level filtering by providing "-unless" clause in form-field class "form_page"

- added "unless" clause to form-field class "test_section" to be able to filter

certain pages which should not be included

- reduced redundancy be factor out "compute_filter_clauses" method for FormPage

(used in includelet procs (class "form-usages") and form-field procs (class "form_page")

  1. … 3 more files in changeset.
allow to specify witdget type alternatively via "_type" in the form field dict

This change makes it possible to specify the whole widget spec part in a single dict

  1. … 1 more file in changeset.
State dependecny from package-procs, or ::xowiki::CSS class won't be available to this library at boot

New CSS abstraction: xowiki::CSS

Before this change, the application developer was responsible to

initialize the CSS-speficic settings (such as setting default values

for parameter classes). The new object xowiki::CSS is initialized

automatically, when an xowiki class (or one of its subclasses) is

initialized. Furthermore, it provides a per-thread caching to reduce

double work. Furthermore, the xowiki::CSS provides a mapping between

abstract and concrete CSS class names, such that switching between

different CSS toolkits becomes easier (e.g. upgrade from bootstrap 3

to newer versions).

xowiki::CSS initialize ;# make sure, everything is in line with PreferredCSSToolkit

xowiki::CSS clear ;# reset the mapping

xowiki::CSS toolkit ;# return the toolkit name

xowiki::CSS class /classname/ ;# perform CSS class name mapping

The methods "setCSSDefaults" and "preferredCSSToolkit" as deprecated.

The version number was bumped to 5.10.0d81

  1. … 7 more files in changeset.
streamline returnredirect commands

make sure, the provided URL is always properly encoded

  1. … 2 more files in changeset.
minor refactoring to correct old-style widgetSpecs; prefer variable resolver over method calls for unset

support editor=none in arbitrary form-field specs

prefer usage of "xo::write_tmp_file" over "xo::write_file" for writing tmp files

  1. … 4 more files in changeset.
fix creating/editing of xowiki::Forms

This change essentially reverts the change of July 2, which broke

the feature to specify "editor=none". This is important for the

"form" form-field entry, which requires a FORM tag, that is

usually removed by actual version of the ckeditor.

  1. … 1 more file in changeset.
upgrade default ckeditor from 4.15.1 to 4.16.1 (released in May 2021)

  1. … 2 more files in changeset.
In order to make the "editor=" formfield spec option have any effect, one should catch the value from the spec early, before the formfield is reclassed and initialized

This also exposes that the editor=none value is not valid (detected by xowiki and xowf automated tests). For this to be valid one should define it as a richtext subclass.

  1. … 1 more file in changeset.
make child_components a proc (::xowiki::formfield::child_components) and add filter expression

Added new method "child_components": Return for a list of form-field objs all child components

provide a less confusing name for new methodm improve comments

  1. … 1 more file in changeset.
Fix typo in comment

Implement reset_to_default method to reset formfields in case of validation error

the current behavior of this method is currently a no-op for every formfield, except files, where we want to make sure the value has been reset. We also handle the case now of compound fields, as they might be compounds of file formfields

  1. … 1 more file in changeset.