• last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Document chat api using ad_* api facilities

Make sure package_id is set on transcripts also when flushing messages every day

Chat reform:

- use consistently package_id to model belonging of a chat object to a particular package instead of the context_id

- set context_id to the package_id, as was already the case in practice, for permission checking

- make sure package_id exists and set it to the context_id in case it doesn't to handle legacy installations

  1. … 4 more files in changeset.
Skip permission checks outside the connection context (in the sweeper)

Rework permission check

Check permissions: chat_read always and chat_write whenever we post

Pass the creation user to the transcript object, as this proc is often called via scheduled procedure and won't find one otherwise

Improve formatting of messages

Fix upgrade

Add callback definition to the info file and define the contract properly as enforced by the UI

  1. … 1 more file in changeset.
Maintenance upgrade to get rid of obsolete package parameters

  1. … 1 more file in changeset.
file apm-callback-procs.tcl was initially added on branch oacs-5-10.

    • -0
    • +0
    ./apm-callback-procs.tcl
Rely on xotcl ORM machinery to handle acs_object metadata instead of doing it manually

Right way to override the fetching of an object is thorugh the fetch query

This would not be necessary once we add acs_object attributes to ::xo::db::Object slots, but as side-effects of this are not clear we leave it for some other time

Replace old procedural api with OO idioms and deprecate it

  1. … 22 more files in changeset.
file xotcl-chat-procs.tcl was initially added on branch oacs-5-10.

Major reform in the chat backend: use xotcl-core ORM to define all the relevant objects and data model

This greatly converges oracle and postgres codebase and will make easier to apply incremental updates to the data model in the future. It will also automatically update the acs_object_type metadata automatically

TODO: remove legacy procs, temporarly reimplemented using the new backend

  1. … 4 more files in changeset.
Remove old commented-out code

Chat data-model reform:

- introduce on delete cascade on foreign key constraints so package can be removed easily e.g. from the subsite UI

- remove remaining stored procedures (and function_args definitions) to relieve the burden on the development process and reduce divergency between oracle and postgres code

- converge oracle and postgres datamodels:

. oracle -> add missing messages_time_window column

. postgres -> remove creation_date from chat_transcripts, which was found to be still existing on old downstream installations

  1. … 7 more files in changeset.
Whitespace changes

  1. … 4 more files in changeset.
Chat Redesign: enable/disable avatar pictures by room, using the new attribute 'avatar_p', instead of by package instance, using the 'ShowAvatar' parameter.

  1. … 16 more files in changeset.
Bring files on oacs-5-10 in sync with HEAD

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

  1. … 4 more files in changeset.
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: cleanup of obsolete parameters ('AppletHeight','AppletWidth','DefaultClient','ServerHost','ServerPort').

  1. … 3 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.
Provide a working way to configure the plain xowiki chat includelet:

at Chat class instantiation one can now specify a configuration dict that will be

persisted in an nsv and used to set option parameters (instance variables) such as login messages, logout messages

and the messages time window (and potentially other options in the future). This persistent configuration happpens whenever a client

logs in.

  1. … 2 more files in changeset.
Retract configurability for plain xowiki includelet as, without some way of persisisting the conf over subsequent object instantiations, would really not work and also ignore chat room configs

  1. … 2 more files in changeset.
Allow also plain xowiki includelet to specifiy if we want login and logout messages and the past messages time window through includelet parameters

  1. … 2 more files in changeset.
Chat reform:

- reduce code duplication by determining the proper chat class dynamically and storing it in an nsv

- move static content in the resources path. Serving them is now independent from the mounted xowiki path

- get rid of the ajax url path

  1. … 12 more files in changeset.