gustafn in OpenACS

re-add notnull value constraint on message_id

This constraint was removed about 14 days ago. Without this constraint,

errors like the following will show up....

[30/Aug/2022:14:07:29.820625][3102633.7f152c28d700][-conn:openacs.org:default:0:196214-] Error: rp_handler no-script-abort: errorMsg can't read "message(forum_id)": no such variable while serving GE

T /forums/message-view?message_id HTTP/1.1

: ad_url </forums/message-view> maps to file </var/www/openacs.org/packages/forums/www/message-view.adp>

: TCL LOOKUP VARNAME message

: can't read "message(forum_id)": no such variable

: while executing

: "forum::get -forum_id $message(forum_id) -array forum"

Probably, in many more cases, the incorrect removal of the notnull constrain performed by [1]

requires the same fix.

[1] https://github.com/openacs/forums/commit/c403e3134ce4e73ba94a80540a8b0f3cb1651ed0#diff-d35c736495ede0174fb39791ab660c5cd1a4ca467db2c4741cfc935167d7e5a8

    • -2
    • +2
    /openacs-4/packages/forums/www/message-view.tcl
handle clases, where "nt_load_end" is not provided

comment tags, which are NOT supported by HTML5, allow "abbr" in enhanced text

improve styling for Bootstrap 5

provide exception handler for cleanup

further improve recording, when just navigational timing is effective

Improved robustness

When not nt_con_st or nt_con_end is provided, set nt_tcp_time to 0

Reduce verbosity

implemented ad_html_security_check based on ns_parsehtml

Use "ns_parsehtml" for speed and correctness when available

The new NaviServer built-in command "ns_parsehtml" is used on

several occasions in the code when available, namely in

- util_close_html_tags

- escaping disallowed HTML tags in ad_text_to_html

- util_close_html_tags

The command "util_close_html_tags" has a long history of troubles,

since it was implemented originally based on regular expressions. It

was reported in Jan 2009, that the function took on certain forums

entries 6 to 9 hours (e.g. /forums/message-view?message_id=357753) to

finish. Therefore, at this time a quick version based on tdom was

introduced, which reduced at that time the performance to 7.3

seconds. However, the tdom-based version tend to fail on invalid HTML,

so it could cover only a few cases. The new "ns_parsehtml" is more

robust and works very stable on openacs.org with the know problem

cases. Furthermore, this version is also significantly faster than the

tdom version.

improve spelling

fix bug in db_multirow_group_last_row_p

The bug showed up in bug-tracker usage of multirows,

where db_multirow_group_last_row_p was still expecting the

dict structure

use icanuse "ns_parsehtml" and new interface

added icanuse rule for ns_parsehtml

Give people the chance to use OpenACS with WithDeprecatedCode set to 0

When OpenACS is configured with loading of deprecated procs

deactivated, files like deprecated-procs.tcl are not

loaded. Therefore, these files should only contain code, which was

deprecated at LEAST ONE RELEASE EARLIER, such that site admins have one

release time to fix calls to deprecated code.

This change reverts in part Antonio's commit from 26 Aug 2022 which

causes errors like the following on openacs.org:

Error in include template "/var/www/openacs.org/packages/news/lib/news":

invalid command name "ad_parameter_all_values_as_list"

fix documentation

Fixed bug in util_convert_line_breaks_to_html

The code deleted spaces around certain tags, while - according to the

documentation, only line breaks should be removed from there.

Extended regression test.

Fixed serious bug killing at least short-text questions in inclass exam

The bug was introduced in [1], by testing for the existence of the

disabled attribute, and when it exists, it was omitting values

reading. The problem is that when form-fields are reset, the

"disabled" attribute is set to 0, leading the exists check to

succeed. In essence, This change sets now the default value of the

form-field to "0", such that it is safe to test it everywhere.

Originally, it was not set by default to save resources (memory and

processing power), but this requires a more careful analysis when

changes happen.

[1] https://fisheye.openacs.org/browse/OpenACS/openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl?r1=1.368.2.125&r2=1.368.2.126

Tighten test for is_wf_instance

Previously, the test was based on setting of state and FormPage.

In cases, where plain FormPages are used inside an xowf package

this test was leading to wrong results.

    • -1
    • +4
    /openacs-4/packages/xowf/tcl/xowf-procs.tcl
base all timings on NavigationTiming plugin to get closer to previous behavior

file navtiming.js was initially added on branch oacs-5-10.

improved error message

make clear, what the name and what the item_id in the message are

    • -2
    • +2
    /openacs-4/packages/xowiki/tcl/folder-procs.tcl
use new path xowiki/lib/portlets/ instead of .../www/...

    • -3
    • +4
    /openacs-4/packages/xowiki/tcl/xowiki-procs.tcl
comment method

Deactivated script-dynamic again

activating "script-dynamic" for script-src prevents resources as the following from loading

<script type="text/javascript" src="/resources/xowiki/bootstrap-treeview/1.2.0/bootstrap-treeview.min.js" nonce="F8843D5CD542FB1CDB4C94C5D13C4E5ECC2E1DCA">

improve test coverage of apm_* API

reduce verbosity

added test for checking documentation in regard of valid HTML markup

replace occurrences of <br/> in api doc strings

Properly escape "<" and ">" in api-doc documentation.

Since all documentation is rendered via HTML, the characters

"<" and ">" have to be HTML-quoted, otherwise strange things

(omission, unintended renderings) might occur.

E.g. the sentence

Define an interface between a page and an

ADP <include> similar to the page_contract.

was rendered as

Define an interface between a page and an

ADP similar to the page_contract.

which is incorrect.