• last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Added support for anonymous users in chat class

Previous version of the chat class required a login for participating

in the chat. The new version also supports a mixed mode, with

authenticated and non-authenticated users can participate. For

unauthenticated users, the disambiguation is performed over the peer

IP address, similar to the xotcl-request-monitor. Instead of the raw

IP address, an artificial username is displayed for such users (like

e.g. userXXX).

For unauthenticated users, some differences apply:

- one cannot provide a link to the private page

- unauthenticated users cannot access the user-portrait

of authenticated users.

The GUI changes are only made on chat-skins/chat-classic.js, not on

the other skins.

  1. … 1 more file in changeset.
Make sure configuration is applied consistently to all of the multiple instances of the chat class (add message, subscription, login...) that are involved in a conversation

This fixes certain options such as login and logout message not being applied correctly

reduce cache hits on nsv "::chat::Chat" and on "::chat::Chat-ID-options"

Fully qualify the parameter command to not conflict with the class having the same name in the ::xo namespace

prefer standard OpenACS API for accessing parameters

  1. … 4 more files in changeset.
use acs::clusterwide instead of xo::clusterwide

  1. … 5 more files in changeset.
don't rely on uppercase header field names

  1. … 10 more files in changeset.
factor out script wrappers

reduce number of locks when NaviServer is used

Prefer api to retrieve csp nonce, as it performs useful existance checks

improve spelling

  1. … 33 more files in changeset.
prefer "nsf::is object" over ":isobject" or "info commands", since it is faster, more generic and can be used in all contexts

  1. … 15 more files in changeset.
modernize code: use resolver variables rather than method calls

  1. … 14 more files in changeset.
reduce XOTcl 1.* idioms

  1. … 1 more file in changeset.
- modernize code (remove "my")

- prefer fully qualified commands based on IDs

  1. … 33 more files in changeset.
Prefer connchan message relay implementation (we check whether it is available anyway)

Make chat_id required, as path to the chat.tcl script is now immutable and all the potentially expensive package_id retrieval was only due to defaulting the chat_id. Use cases around already define their chat_id independently

Move chat.tcl into acs-subsite:

although this would depend on xowiki, having in xowiki/www might conflict with legitimate pages named "chat"

  1. … 2 more files in changeset.
improve spelling

  1. … 6 more files in changeset.
Fix typo

Access object members directly instead than by method

Add default for avatar_p

Chat Redesign: enable/disable avatar pictures by room, using the new attribute 'avatar_p', instead of by package instance, using the 'ShowAvatar' parameter.

  1. … 19 more files in changeset.
Chat Redesign: move common functions used in the chat skins to 'chat-common.js', and rename the skin javascript files.

  1. … 5 more files in changeset.
Improve the situation on browsers such as Firefox, where correct xml is somehow enforced when one does not specify the responseType

One should also find a solution for the persistent subscription, as it is trickier

  1. … 3 more files in changeset.
message-relay-procs: factor out subscription handling from bgdelivery

and chat-procs and provide compatibility for streaming chat modes

with HTTPS.

The message-relay-procs provide two different implementation for

delivering messages to subscribers:

a) via bgdelivery (traditional method): this is, what was used so far,

having the disadvantage that it only works on plain HTTP connections

b) via ns_connchan (new method): ns_connchan is a relatively new feature

of NaviServer which allows transparent reading/writing from connections.

Chat has a new instance variable named "message_relay", which consists

of preferences for the chat connections. So far, the traditional "bgdelivery"

is still the default mode.

bumped version numbers

- xotcl-core 5.10.0d14

- xowiki: 5.10.0d23

  1. … 5 more files in changeset.
Chat Redesign:

  1. … 4 more files in changeset.
modernize code

Chat Redesign:

+ Add specific container for the chat includelet (xowiki-chat-includelet).

+ Set a sensible default for the 'xowiki-chat-includelet' size.

+ Move the 'my-user-id' hidden element in the chat adp to the chat procs.

+ Rename 'my-user-id' element to 'xowiki-my-user-id'.

+ Get the ChatSkin parameter inside the login proc.

+ Include the skin parameter in the chat includelet.

  1. … 8 more files in changeset.
Chat Redesign:

+ Skin support.

+ New 'ChatSkin' instance parameter, with currently two possible values: 'classic' and 'bubbles'.

+ Skins are located in the new packages/xowiki/www/resources/chat-skins/ directory.

+ New 'bubbles' skin, default for the chat package.

+ Old skin renamed to 'classic', default for the xowiki includelet.

+ New skins can be created by just adding the css and js files in the skins directory, and naming them accordingly. For example, being '$skin' the name of the new skin, the files should be named chat-$skin-common.js and chat-$skin.css.

+ New '-skin' parameter to the Chat login proc, containing the name of the skin (i.e. 'classic' or 'bubbles').

+ Bump version number.

  1. … 9 more files in changeset.