chat-ajax-procs.tcl

  • last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Check permissions: chat_read always and chat_write whenever we post

Replace old procedural api with OO idioms and deprecate it

  1. … 26 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. … 19 more files in changeset.
Bring files on oacs-5-10 in sync with HEAD

  1. … 162 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:

+ 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.
Give xowiki chat also some kind of nice skin and centralize css retrieval

TODO: something smarter can be done in order to retrieve the proper css, based e.g. on theme, chat skin (to be implemented) etc. To be discussed is some way to resolve resources based on the theme.

  1. … 3 more files in changeset.
New chat_room includelet, behaving as the existing chat one, but plugged with extra chat package's feature (transcript management...)

To avoid package_id to be overridden, we force it always to the one of the current chat

  1. … 2 more files in changeset.
When transcripting a message, use the provided user_id when available

This fixes auto logout messages being written down as from unregistered visitor in the transcript

Specialize the way chat::Chat class retrieves the package_id: use the context_id of the chat room (if this is a valid chat room)

This will allow to embed a chat::Chat instance in a xowiki page pinting to an existing chat room and let it use the chat package specific features to e.g. keep transcripts of a conversation

  1. … 3 more files in changeset.
Whitespace cleanup + Add editor hints

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

- rework xotcl-core chat machinery to return its responses through JSON and include information about active users

- depend on xowiki instead of xotcl-core only

- exploit xowiki "Comet" server push implementation when the browser supports it

- reduce code duplication

- drop plain HTML chat

- reduce hardcoded styling

- minor cleanups

  1. … 23 more files in changeset.
Converge render method for chat and xotcl-core package

  1. … 1 more file in changeset.
Add editor hints + Whitespace changes

  1. … 2 more files in changeset.
Normalize indentation

Give templating a chance

move all hardcoded styling to the adp template, which might be styled by the theme. Also, biring some order in the login proc, e.g. don't open and read a file to include a javascript all the time.

  1. … 1 more file in changeset.
Modernize XoTcl idioms

merged changes from the oacs-5-9 branch and resolved conflicts

  1. … 7834 more files in changeset.
Fix spelling errors

  1. … 16 more files in changeset.
Don't abort script when people sends a message over a non-existing

chat, as this is required by the chat sweeper to happen.

Replace inline js event when sending the message to comply with CSP

Allow user to specify how far in the past people connecting to the chat will see.

This is important on Learn@WU because people joining the chat room later want to

see the full conversation and before this was not settable from the UI. (Now defaults

to 4 hours) Useful also when somebody accidentally refreshes the chat after the

timewindow has passed.

Took this chance to ease a bit every future development: removed stored procedures

slowing greatly any change on the data model in favor of plain sql statements.

Incremented usage of cache.

Removed duplicated database operation when managing transcripts.

Fixed transcript name not being shown when deleting.

  1. … 12 more files in changeset.
Commit some leftover change, apply some review suggestions

  1. … 1 more file in changeset.
Chats won't throw an error anymore when people keep looking to a room that has been closed.

Instead, user will be informed that the room is unavailable.

Added missing locale key source of errors in the log.

Fixed wrong stored procedure, stating different arguments than in actual usage.

Cleaned up weird idioms in xql files and chat api, moved many db operations into tcl api.

Exploited cache (ns_cache) to retrieve quickly chat room information.

Improved code quality a bit.

Ported upstream some local modification, like prettifying of flags in chat room management

and fix of double quoting in chat's javascript.

  1. … 11 more files in changeset.
Introduced new options to set chat rooms so login and/or logout message are not issued everytime a user enters/exits the chat.

  1. … 15 more files in changeset.