• last updated 14 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Harden the page contract and ensure that:

- for chat rooms in the chat package, only the chat class enforcing permissions is used

- for other chat ids, either the id is an object the user can read, or the user can at least read on the current connection package

Only allow valid privileges in the privs parameter

restrict substitution in string

Made .xql file more consistent by using dot notation

OpenACS for PostgreSQL uses since the release of 5.10.0 the dot

notation for the SQL function acs_permission.permission_p() to ease

portability with Oracle.

In general, one has to be careful that during an upgrade from an older

OpenACS version (e.g. 5.9.*) directly to 5.10.1 to upgrade process

does not depend on the dot notation, otherwise the upgrade will fail.

One should be safe for most UI functions in this respect.

Harden page contract

Cleanup of external binaries: always use "util::which" to resolve binaries

  1. … 5 more files in changeset.
improved spelling

  1. … 3 more files in changeset.
Fix selector for the click all list callback

Cleanup long deactivated code

Fix typo

Improve documentation

Cleanuo commented code

Whitespace cleanup

Move custom calendar widget javascript implementation out of the core.js and into a separate file

In core/maintained packages, this widget is used only by template::widget::textdate (which in turn is used nowhere). For this widget, we can include the relevant code on-demand.

Direct usages found in unsupported packages have been adapted by adding the extra requirement on the fly.

It is unclear if we should keep maintaining a calendar widget in our codebase, however, as the current one still works (kudos to the original author), we do not deprecate it for the time being.

It is also true that a custom widget provides a way to customize the look and feel of date fields, which is otherwise completely delegated to the browser.

Various packages, including the core, provide custom css styling for the current widget.

  1. … 2 more files in changeset.
Fix the idiom used to cut the query parameters from the URL

Handle null dates

Modernize idioms

Cleanup acs_CopyText and inline the only usage found in the codebase with a modern replacement

The function was using deprecated idioms, see https://developer.mozilla.org/en-US/docs/Web/API/document/execCommand, and "PrivilegeManager" and the "netscape" property, both long discontinued.

On modern browsers, under the correct conditions, the function can be reimplemented via a oneliner (see https://developer.mozilla.org/en-US/docs/Web/API/Clipboard)

provide link to nsstats on startup page on fresh installations (when available)

fix for containarized applications: don't use configured location unless host-name-map is in place

containeraized applications with the hostnode map will still have a problem, but these are

less frequent. For these, a solution is still pending.

Shorten idiom

Modernize idioms via optional chaining

Prefer string interpolation via template literals

Cleanup trivial acs_initHtmlArea and inline its only usages in the codebase

Cleanup trivial api, nowadays replaceable with a simple oneliner and inline the only usage found upstream

  1. … 1 more file in changeset.
Use modern javascript and browser features to simplify the code

Use an idiom that does not assume the form field to be a direct child of the form, which may not be true depending on the theme

Inline usages of acs_rte* js utilities in unmaintained packages and remove it from core.js

acs_rte* is most likely broken anyway, as nobody seems to define updateRTEs function...

Factor richtext-or-file javascript outside of the core.js

This may or not be a step on the road to deprecating this widget, which still sports inline event handlers and is used only by unmaintained packages.

  1. … 2 more files in changeset.
Make page more robust to situations, more frequest in a test setup, where a short-lived user has issued requests on the system and was recorded as online