• last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.
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.
Properly close button tag (Explorer was complaining)

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.
Converge styling of chat in a single css file for both xowiki and chat packages

This might fork in the future, but there is no need atm

  1. … 1 more file in changeset.
Switch to a non-nsv approach to determine the right chat class

  1. … 1 more file in changeset.
Unclutter the code by putting mode detection in a separate proc

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.
Chat Redesign: add send button + svg icon

  1. … 2 more files in changeset.
Allow to make other (non .adp) kinds of resources "theme aware" and use this to provide a theme mapping to the /resources/ URL pattern, then use this new capability to allow the override of css in the chat implementations

  1. … 2 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.
Move chat machinery from xotcl-core to xowiki

Rationale: this feature makes little sense without the front-end xowiki provides and makes chat implementation harder to understand, as components are scattered in different packages.

  1. … 1 more file in changeset.
Chat Redesign: 'Full screen' trigger + icon, making the chat use the whole browser window.

  1. … 2 more files in changeset.
Chat Redesign: add LinkRegex global parameter to the chat package, containing the regexp that will look for URLs inside chat messages, so they can be properly formatted as html links.

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

+ New style classes, opening the door to further graphic redesign.

+ Revamping of the user list.

+ Revamping of the input block.

+ Small changes in the messages block, including floating timestamps to the right.

+ Responsive design: use flexbox for chat layout.

+ Responsive design: make user list horizontally scrollable for 'small' widths.

+ Expose user_id in a hidden div, in the chat adp, so it can be used by the javascript part to check and assign different styles to the chat messages if they belong to the user watching the page.

+ xotcl-core: Pass color and user_id in the message, avoiding the creation of the user link at this level.

+ xotcl-core: Remove user_link proc.

+ xowiki: Avoid autocompletion in input field.

+ xowiki: Adding and relocation of div elements.

+ xowiki: Simple function to transform url-like elements of the messages into links.

+ xowiki: Create user links in chat-common.js.

+ xowiki: Check user_id and assign classes to elements depending on the user watching the page.

  1. … 4 more files in changeset.