• last updated 9 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Adapted standard form template to Bootstrap5 CSS classes (many thanks to Monika Andergassen)

Make page_template foreign key deferrable

This solves the problem of deleting implicitly child-items, which

depend on each other when deleting an item. When deleting an item, the

deletion of child-items in the content repository happens in an

arbitrary order, which could raise fk constraints. Since the deletion

happens in a transaction, the deferring checking of the constraints

helps, since then the constraint violating item is also already


There is no update script necessary, since reload alters the


    • -2
    • +2
undo recent change, which is not sufficiently general (and solve the issue by db means, next commit)

    • -4
    • +1
Address the cornercase of form pages having their template stored in the same folder: when deleting items containing such a setup, cleanup these formpages first

Addresses a consequence of https://cvs.openacs.org/changelog/OpenACS?cs=oacs-5-10%3Agustafn%3A20220613165033

    • -1
    • +5
Constrain captcha width to 100% of its parent's size

Added navbar-dark style to header nav, remove obsolete CSS defs (many thanks to Monika Andergassen)

Make login and logout urls subsite specific (many thanks to Monika Andergassen)

cleanup of subsite_link and subsite_url variables and reduce to subsite_url (many thanks to Monika Andergassen)

adapt markup for navbar and dropdown elements to bootstrap5 notation (many thanks to Monika Andergassen)

Added dynamic cluster configuration checking

- handle cases, where not all cluster nodes are available at startup

time (this is a problem for docker, since the IP addresses will not

be available as well)

- handle dynamic changing of configuration variables

- refactored code

- new methods "acs::Cluster register_nodes" and

"acs::Cluster refresh_blueprint" (called regulary via scheduled

procedure, running every minute)

    • -22
    • +8
    • -0
    • +294
file cluster-procs.tcl was initially added on branch oacs-5-10.

    • -0
    • +0
remove traces of md5::md5, since ns_md5 is emulated also for AOLserver

whitespace changes

reduce useless warnings for template::adp_parse_tags

The problem was that template::adp_compile_chunk produces no output, when the parsed chunk contains only whitespace,

causing an error message in this case. The changed method shortcuts the behavior.

Support the usage of HTTP locations in kernel parameter ClusterPeerIP

The change extends the values specified in ClusterPeerIP in two respects

- one can now specify the protocol (defaults to http)

- while ClusterPeerIP required an IP address, it is now possible to specify an DNS name

The DNS name is resolved for the time being at the start time of the OpenACS instance.

Drop "ON DELETE CASCADE" on page_template, since this might lead to crippled entries in the database.

When someone delets via operations in the database a form, protentially existing

form pages refering to this item might be left in a crippled state.

The cascade operation deletes the revision (xowiki_page_instance), but leaves

the half-crippled item. The problem does not exist over the web interface,

since it does not allow such items to be deleted while form pages exist.

    • -2
    • +2
    • -2
    • +2
Add support for menu-entries, where simply a "-link" is provided

Prefer util::which to retrieve the unzip executable

Complain in the logfile whenever the insertion of the null character is attempted in the syndication table

Implement a conversion from MS pptx to plaintext:

first slides are extracted from the presentation, then everything that is not the content of a text tag is removed.

More targeted sanityzing only on the variables that have a chance to contain the null character

Translate potential null characters in the syndication content with the empty string, so that we do not risk to try (and fail) to insert them in the database

flipping of session_id apparently works without keeping track of the old session_id, so there is no need of keeping track of it

provide stub for wf-specific in none shared workflows

    • -0
    • +4
Provide a fix for "dom parse -html ..." for adp tags.

"dom parse -html" has two problems with ADP tags like "<adp:icon ...>":

a) If the tag name contains a colon or underscore, the tag is

treated like plain text, i.e. "<" and ">" are converted into

HTML entities.

b) These tags have to be closed "<adp:icon ...>" is invalid.

Several existomg ADP tags have not closing tag.

Therefore, we resolve the ADP tags before parsing the text by

tdom. There should be some future framework support to do this in

general, but until we have this, resolve this problem here locally.

improve message key

    • -2
    • +2
New method "marshall_all_to_file"

This method is similar to "marshall_all", but exports the objects

directly to a file. This can save memory when exporting a large

collection of objects, since the plain "marshall_all" appends to

string, which can get very large, especially due to Tcl's

"double the size when space is needed" policy during "append"


    • -1
    • +31
New feature for shared workflow definitions: define workflow specific methods

Workflows support since a long time "object-specific" code, which is code

to be executed, when a workflow instance is initialized. Now, in symmetry

to this, one can define "wf-specific" code (e.g. registering methods to

be called directly on the workflow object.

Similar to the call of ":object-specific {...some code...}", one define

additionally ":wf-specific {...some code...}". This comes handy

when e.g. definiing methods directly executed on workflowss, such as e.g.


The methods are defined on the WorkflowContainer class, which is only available

on for shared workflows.

    • -15
    • +92
improved comments

Small optimization for cachingmode "none": no need to broadcast cache flushing