Index: openacs-4/packages/xowiki/tcl/chat-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/chat-procs.tcl,v
diff -u -N -r1.54.2.2 -r1.54.2.3
--- openacs-4/packages/xowiki/tcl/chat-procs.tcl 25 Feb 2019 15:35:44 -0000 1.54.2.2
+++ openacs-4/packages/xowiki/tcl/chat-procs.tcl 25 Feb 2019 15:48:45 -0000 1.54.2.3
@@ -516,7 +516,7 @@
template::head::add_javascript -src urn:ad:js:get-http-object -order 10
template::head::add_javascript -script "const linkRegex = \"${link_regex}\";" -order 19
template::head::add_javascript -src /resources/xowiki/chat-common.js -order 20
- template::head::add_javascript -src /resources/xowiki/chat-skins/chat-$skin-common.js -order 21
+ template::head::add_javascript -src /resources/xowiki/chat-skins/chat-$skin.js -order 21
template::head::add_javascript -src $jspath -order 30
set send_url ${base_url}&m=add_msg&msg=
Index: openacs-4/packages/xowiki/www/resources/chat-common.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/Attic/chat-common.js,v
diff -u -N -r1.10.2.2 -r1.10.2.3
--- openacs-4/packages/xowiki/www/resources/chat-common.js 25 Feb 2019 15:35:44 -0000 1.10.2.2
+++ openacs-4/packages/xowiki/www/resources/chat-common.js 25 Feb 2019 15:48:45 -0000 1.10.2.3
@@ -1,3 +1,5 @@
+// Common xowiki chat functions
+
// Send the message
function chatSendMsg(send_url, handler) {
var msgField = document.getElementById('xowiki-chat-send');
@@ -9,3 +11,23 @@
http_send.send(null);
msgField.value = '';
}
+
+// Simple function to create links
+function createLink(text) {
+ if (linkRegex != null) {
+ return text.replace(new RegExp(linkRegex,'g'), function(url) {
+ return '' + url + '';
+ })
+ } else {
+ return text;
+ }
+}
+
+// Render the data, being a user or a message
+function renderData(json) {
+ if (json.type == "message") {
+ renderMessage(json);
+ } else if (json.type == "users") {
+ renderUsers(json);
+ }
+}
Index: openacs-4/packages/xowiki/www/resources/chat-skins/chat-bubbles-common.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/chat-skins/chat-bubbles-common.js,v
diff -u -N
--- openacs-4/packages/xowiki/www/resources/chat-skins/chat-bubbles-common.js 25 Feb 2019 15:35:44 -0000 1.3.2.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,265 +0,0 @@
-// Common xowiki chat functions, mainly for data rendering.
-
-var previous_user_id = "";
-var current_color = "";
-
-// Full screen
-function addFullScreenLink() {
-
- // Full screen trigger block
- const triggerFSblock = document.createElement("div");
- triggerFSblock.className = 'xowiki-chat-trigger-fs-block';
-
- // Full screen trigger
- const triggerFSlink = document.createElement("a");
- triggerFSlink.className = 'xowiki-chat-trigger-fs-link';
- triggerFSlink.setAttribute("href", "#");
-
- // Trigger icon
- var triggerFSoff = '';
- var triggerFSon = '';
- triggerFSlink.innerHTML = triggerFSon;
-
- // Full screen when clicked
- triggerFSlink.addEventListener("click", function(event) {
- event.preventDefault();
- var chat = document.getElementById('xowiki-chat');
- var chatFS = document.getElementById('xowiki-chat-fs');
- if (chat != null) {
- chat.id = 'xowiki-chat-fs';
- triggerFSlink.innerHTML = triggerFSoff;
- document.body.style.overflow = "hidden";
- } else if (chatFS != null) {
- chatFS.id = 'xowiki-chat';
- triggerFSlink.innerHTML = triggerFSon;
- document.body.style.overflow = "scroll";
- }
- // Scroll down the messages
- var messages = document.getElementById('xowiki-chat-messages');
- messages.scrollTop = messages.scrollHeight;
- });
-
- // Add Full screen trigger to the chat
- const formBlock = document.getElementById('xowiki-chat-messages-form-block');
- triggerFSblock.appendChild(triggerFSlink);
- formBlock.appendChild(triggerFSblock);
-}
-
-// Send link pic
-function addSendPic() {
-
- var sendPic = '';
- var button = document.getElementById('xowiki-chat-send-button');
-
- if (button != null) {
- button.innerHTML = sendPic;
- }
-}
-
-// Simple function to create links
-function createLink(text) {
- if (linkRegex != null) {
- return text.replace(new RegExp(linkRegex,'g'), function(url) {
- return '' + url + '';
- })
- } else {
- return text;
- }
-}
-
-// Render the data, being a user or a message
-function renderData(json) {
- if (json.type == "message") {
- renderMessage(json);
- } else if (json.type == "users") {
- renderUsers(json);
- }
-}
-
-// Render the message
-function renderMessage(msg) {
- var messages = document.getElementById('xowiki-chat-messages');
- var user = msg.user.replace(/\\'/g, "\"");
- var message = createLink(msg.message);
- var user_id = msg.user_id;
- var my_user = document.getElementById('xowiki-my-user-id');
- if (my_user == null) {
- my_user_id = "";
- } else {
- my_user_id = my_user.innerText;
- }
- var color = msg.color;
-
- // Delete temporal terminator
- var temp_terminator = document.getElementById('xowiki-chat-message-block-end-temp');
- if (temp_terminator != null) {
- temp_terminator.parentNode.removeChild(temp_terminator);
- }
-
- // If the user and the color changes, show the user info again
- if (previous_user_id != user_id && current_color != color) {
-
- // Add terminator for the previous message block if exists
- if (previous_user_id != "") {
- if (previous_user_id == my_user_id) {
- end_message = document.createElement('div');
- end_message.className = 'xowiki-chat-message-block-end-me';
- messages.appendChild(end_message);
- } else {
- end_message = document.createElement('div');
- end_message.className = 'xowiki-chat-message-block-end';
- messages.appendChild(end_message);
- }
- }
-
- // Show user name and pic only for others
- if (user_id != my_user_id) {
-
- // User block
- user_block = document.createElement('div');
- user_block.className = 'xowiki-chat-user-block';
-
- // User picture
- wrapper = document.createElement('div');
- wrapper.className = 'xowiki-chat-user-pic-wrap';
- var show_avatar = document.getElementById('xowiki-chat-show-avatar');
- if (show_avatar != null) {
- img = document.createElement('img');
- img.src = '/shared/portrait-bits.tcl?user_id=' + user_id
- img.className = 'xowiki-chat-user-pic';
- img.style = 'border-color:' + color;
- wrapper.appendChild(img);
- }
- messages.appendChild(wrapper);
-
- // User link
- a = document.createElement('a');
- a.href = '/shared/community-member?user%5fid=' + user_id;
- a.target = '_blank';
- a.className = 'xowiki-chat-user-link';
-
- // User name
- span = document.createElement('span');
- span.textContent = user;
- span.setAttribute("class", "xowiki-chat-user");
- span.setAttribute("style", "color:" + color);
- a.appendChild(span);
- user_block.appendChild(a);
- previous_user_id = user_id;
- current_color = color;
-
- messages.appendChild(user_block);
-
- } else {
-
- // Empty div to use as the dummy header
- user_block = document.createElement('div');
- user_block.className = 'xowiki-chat-user-block-me';
- messages.appendChild(user_block);
- previous_user_id = user_id;
- current_color = color;
- }
- }
-
- message_block = document.createElement('div');
- if (user_id != my_user_id) {
- message_block.className = 'xowiki-chat-message-block';
- } else {
- message_block.className = 'xowiki-chat-message-block-me';
- }
-
- // Message body
- span = document.createElement('span');
- span.innerHTML = message;
- if (user_id != my_user_id) {
- span.className = 'xowiki-chat-message';
- } else {
- span.className = 'xowiki-chat-message-me';
- }
- message_block.appendChild(span);
-
- // Timestamp
- span = document.createElement('span');
- span.innerHTML = msg.timestamp;
- if (user_id != my_user_id) {
- span.className = 'xowiki-chat-timestamp';
- } else {
- span.className = 'xowiki-chat-timestamp-me';
- }
- message_block.appendChild(span);
-
- messages.appendChild(message_block);
-
- // Add temporal terminator for message block
- if (user_id == my_user_id) {
- end_message = document.createElement('div');
- end_message.className = 'xowiki-chat-message-block-end-me';
- end_message.id = 'xowiki-chat-message-block-end-temp';
- messages.appendChild(end_message);
- } else {
- end_message = document.createElement('div');
- end_message.className = 'xowiki-chat-message-block-end';
- end_message.id = 'xowiki-chat-message-block-end-temp';
- messages.appendChild(end_message);
- }
-
- messages.scrollTop = messages.scrollHeight;
-
- // IE will lose focus on message send
- document.getElementById('xowiki-chat-send').focus();
-}
-
-// Render the user in the user list
-function renderUsers(msg) {
- var users = document.getElementById('xowiki-chat-users');
- while (users.hasChildNodes()) {
- users.removeChild(users.firstChild);
- }
- for (var i = 0; i < msg.message.length; i++) {
- var user = msg.message[i].user.replace(/\\'/g, "\"");
- var user_id = msg.message[i].user_id;
- var color = msg.message[i].color;
-
- // User link
- a = document.createElement('a');
- a.href = '/shared/community-member?user%5fid=' + user_id;
- a.target = '_blank';
- a.className = 'xowiki-chat-user-link';
-
- // User block
- user_block = document.createElement('div');
- user_block.className = 'xowiki-chat-user-block';
- a.appendChild(user_block);
-
- // User picture
- var show_avatar = document.getElementById('xowiki-chat-show-avatar');
- if (show_avatar != null) {
- wrapper = document.createElement('div');
- wrapper.className = 'xowiki-chat-user-pic-wrap';
- img = document.createElement('img');
- img.setAttribute("src", "/shared/portrait-bits.tcl?user_id=" + user_id);
- img.setAttribute("class", "xowiki-chat-user-pic");
- img.setAttribute("style", "border-color:" + color);
- wrapper.appendChild(img);
- user_block.appendChild(wrapper);
- }
-
- // User name
- span = document.createElement('span');
- span.textContent = user;
- span.setAttribute("class", "xowiki-chat-user");
- span.setAttribute("style", "color:" + color);
- user_block.appendChild(span);
-
- br = document.createElement('br');
- user_block.appendChild(br);
-
- // Timestamp
- span = document.createElement('span');
- span.innerHTML = msg.message[i].timestamp;
- span.className = 'xowiki-chat-timestamp';
- user_block.appendChild(span);
-
- users.appendChild(a);
- }
-}
Index: openacs-4/packages/xowiki/www/resources/chat-skins/chat-bubbles.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/chat-skins/Attic/chat-bubbles.js,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/resources/chat-skins/chat-bubbles.js 25 Feb 2019 15:48:45 -0000 1.1.2.1
@@ -0,0 +1,245 @@
+// Javascript side of the Bubbles Chat skin
+
+var previous_user_id = "";
+var current_color = "";
+
+// Full screen
+function addFullScreenLink() {
+
+ // Full screen trigger block
+ const triggerFSblock = document.createElement("div");
+ triggerFSblock.className = 'xowiki-chat-trigger-fs-block';
+
+ // Full screen trigger
+ const triggerFSlink = document.createElement("a");
+ triggerFSlink.className = 'xowiki-chat-trigger-fs-link';
+ triggerFSlink.setAttribute("href", "#");
+
+ // Trigger icon
+ var triggerFSoff = '';
+ var triggerFSon = '';
+ triggerFSlink.innerHTML = triggerFSon;
+
+ // Full screen when clicked
+ triggerFSlink.addEventListener("click", function(event) {
+ event.preventDefault();
+ var chat = document.getElementById('xowiki-chat');
+ var chatFS = document.getElementById('xowiki-chat-fs');
+ if (chat != null) {
+ chat.id = 'xowiki-chat-fs';
+ triggerFSlink.innerHTML = triggerFSoff;
+ document.body.style.overflow = "hidden";
+ } else if (chatFS != null) {
+ chatFS.id = 'xowiki-chat';
+ triggerFSlink.innerHTML = triggerFSon;
+ document.body.style.overflow = "scroll";
+ }
+ // Scroll down the messages
+ var messages = document.getElementById('xowiki-chat-messages');
+ messages.scrollTop = messages.scrollHeight;
+ });
+
+ // Add Full screen trigger to the chat
+ const formBlock = document.getElementById('xowiki-chat-messages-form-block');
+ triggerFSblock.appendChild(triggerFSlink);
+ formBlock.appendChild(triggerFSblock);
+}
+
+// Send link pic
+function addSendPic() {
+
+ var sendPic = '';
+ var button = document.getElementById('xowiki-chat-send-button');
+
+ if (button != null) {
+ button.innerHTML = sendPic;
+ }
+}
+
+// Render the message
+function renderMessage(msg) {
+ var messages = document.getElementById('xowiki-chat-messages');
+ var user = msg.user.replace(/\\'/g, "\"");
+ var message = createLink(msg.message);
+ var user_id = msg.user_id;
+ var my_user = document.getElementById('xowiki-my-user-id');
+ if (my_user == null) {
+ my_user_id = "";
+ } else {
+ my_user_id = my_user.innerText;
+ }
+ var color = msg.color;
+
+ // Delete temporal terminator
+ var temp_terminator = document.getElementById('xowiki-chat-message-block-end-temp');
+ if (temp_terminator != null) {
+ temp_terminator.parentNode.removeChild(temp_terminator);
+ }
+
+ // If the user and the color changes, show the user info again
+ if (previous_user_id != user_id && current_color != color) {
+
+ // Add terminator for the previous message block if exists
+ if (previous_user_id != "") {
+ if (previous_user_id == my_user_id) {
+ end_message = document.createElement('div');
+ end_message.className = 'xowiki-chat-message-block-end-me';
+ messages.appendChild(end_message);
+ } else {
+ end_message = document.createElement('div');
+ end_message.className = 'xowiki-chat-message-block-end';
+ messages.appendChild(end_message);
+ }
+ }
+
+ // Show user name and pic only for others
+ if (user_id != my_user_id) {
+
+ // User block
+ user_block = document.createElement('div');
+ user_block.className = 'xowiki-chat-user-block';
+
+ // User picture
+ wrapper = document.createElement('div');
+ wrapper.className = 'xowiki-chat-user-pic-wrap';
+ var show_avatar = document.getElementById('xowiki-chat-show-avatar');
+ if (show_avatar != null) {
+ img = document.createElement('img');
+ img.src = '/shared/portrait-bits.tcl?user_id=' + user_id
+ img.className = 'xowiki-chat-user-pic';
+ img.style = 'border-color:' + color;
+ wrapper.appendChild(img);
+ }
+ messages.appendChild(wrapper);
+
+ // User link
+ a = document.createElement('a');
+ a.href = '/shared/community-member?user%5fid=' + user_id;
+ a.target = '_blank';
+ a.className = 'xowiki-chat-user-link';
+
+ // User name
+ span = document.createElement('span');
+ span.textContent = user;
+ span.setAttribute("class", "xowiki-chat-user");
+ span.setAttribute("style", "color:" + color);
+ a.appendChild(span);
+ user_block.appendChild(a);
+ previous_user_id = user_id;
+ current_color = color;
+
+ messages.appendChild(user_block);
+
+ } else {
+
+ // Empty div to use as the dummy header
+ user_block = document.createElement('div');
+ user_block.className = 'xowiki-chat-user-block-me';
+ messages.appendChild(user_block);
+ previous_user_id = user_id;
+ current_color = color;
+ }
+ }
+
+ message_block = document.createElement('div');
+ if (user_id != my_user_id) {
+ message_block.className = 'xowiki-chat-message-block';
+ } else {
+ message_block.className = 'xowiki-chat-message-block-me';
+ }
+
+ // Message body
+ span = document.createElement('span');
+ span.innerHTML = message;
+ if (user_id != my_user_id) {
+ span.className = 'xowiki-chat-message';
+ } else {
+ span.className = 'xowiki-chat-message-me';
+ }
+ message_block.appendChild(span);
+
+ // Timestamp
+ span = document.createElement('span');
+ span.innerHTML = msg.timestamp;
+ if (user_id != my_user_id) {
+ span.className = 'xowiki-chat-timestamp';
+ } else {
+ span.className = 'xowiki-chat-timestamp-me';
+ }
+ message_block.appendChild(span);
+
+ messages.appendChild(message_block);
+
+ // Add temporal terminator for message block
+ if (user_id == my_user_id) {
+ end_message = document.createElement('div');
+ end_message.className = 'xowiki-chat-message-block-end-me';
+ end_message.id = 'xowiki-chat-message-block-end-temp';
+ messages.appendChild(end_message);
+ } else {
+ end_message = document.createElement('div');
+ end_message.className = 'xowiki-chat-message-block-end';
+ end_message.id = 'xowiki-chat-message-block-end-temp';
+ messages.appendChild(end_message);
+ }
+
+ messages.scrollTop = messages.scrollHeight;
+
+ // IE will lose focus on message send
+ document.getElementById('xowiki-chat-send').focus();
+}
+
+// Render the user in the user list
+function renderUsers(msg) {
+ var users = document.getElementById('xowiki-chat-users');
+ while (users.hasChildNodes()) {
+ users.removeChild(users.firstChild);
+ }
+ for (var i = 0; i < msg.message.length; i++) {
+ var user = msg.message[i].user.replace(/\\'/g, "\"");
+ var user_id = msg.message[i].user_id;
+ var color = msg.message[i].color;
+
+ // User link
+ a = document.createElement('a');
+ a.href = '/shared/community-member?user%5fid=' + user_id;
+ a.target = '_blank';
+ a.className = 'xowiki-chat-user-link';
+
+ // User block
+ user_block = document.createElement('div');
+ user_block.className = 'xowiki-chat-user-block';
+ a.appendChild(user_block);
+
+ // User picture
+ var show_avatar = document.getElementById('xowiki-chat-show-avatar');
+ if (show_avatar != null) {
+ wrapper = document.createElement('div');
+ wrapper.className = 'xowiki-chat-user-pic-wrap';
+ img = document.createElement('img');
+ img.setAttribute("src", "/shared/portrait-bits.tcl?user_id=" + user_id);
+ img.setAttribute("class", "xowiki-chat-user-pic");
+ img.setAttribute("style", "border-color:" + color);
+ wrapper.appendChild(img);
+ user_block.appendChild(wrapper);
+ }
+
+ // User name
+ span = document.createElement('span');
+ span.textContent = user;
+ span.setAttribute("class", "xowiki-chat-user");
+ span.setAttribute("style", "color:" + color);
+ user_block.appendChild(span);
+
+ br = document.createElement('br');
+ user_block.appendChild(br);
+
+ // Timestamp
+ span = document.createElement('span');
+ span.innerHTML = msg.message[i].timestamp;
+ span.className = 'xowiki-chat-timestamp';
+ user_block.appendChild(span);
+
+ users.appendChild(a);
+ }
+}
Index: openacs-4/packages/xowiki/www/resources/chat-skins/chat-classic-common.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/chat-skins/chat-classic-common.js,v
diff -u -N
--- openacs-4/packages/xowiki/www/resources/chat-skins/chat-classic-common.js 25 Feb 2019 15:35:44 -0000 1.3.2.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,203 +0,0 @@
-// Common xowiki chat functions, mainly for data rendering.
-
-var previous_user_id = "";
-var current_color = "";
-
-// Full screen
-function addFullScreenLink() {
-
- // Full screen trigger block
- const triggerFSblock = document.createElement("div");
- triggerFSblock.className = 'xowiki-chat-trigger-fs-block';
-
- // Full screen trigger
- const triggerFSlink = document.createElement("a");
- triggerFSlink.className = 'xowiki-chat-trigger-fs-link';
- triggerFSlink.setAttribute("href", "#");
-
- // Trigger icon
- var triggerFSoff = '';
- var triggerFSon = '';
- triggerFSlink.innerHTML = triggerFSon;
-
- // Full screen when clicked
- triggerFSlink.addEventListener("click", function(event) {
- event.preventDefault();
- var chat = document.getElementById('xowiki-chat');
- var chatFS = document.getElementById('xowiki-chat-fs');
- if (chat != null) {
- chat.id = 'xowiki-chat-fs';
- triggerFSlink.innerHTML = triggerFSoff;
- document.body.style.overflow = "hidden";
- } else if (chatFS != null) {
- chatFS.id = 'xowiki-chat';
- triggerFSlink.innerHTML = triggerFSon;
- document.body.style.overflow = "scroll";
- }
- // Scroll down the messages
- var messages = document.getElementById('xowiki-chat-messages');
- messages.scrollTop = messages.scrollHeight;
- });
-
- // Add Full screen trigger to the chat
- const formBlock = document.getElementById('xowiki-chat-messages-form-block');
- triggerFSblock.appendChild(triggerFSlink);
- formBlock.appendChild(triggerFSblock);
-}
-
-// Send link pic
-function addSendPic() {
-
- var sendPic = '';
- var button = document.getElementById('xowiki-chat-send-button');
-
- if (button != null) {
- button.innerHTML = sendPic;
- }
-}
-
-// Simple function to create links
-function createLink(text) {
- if (linkRegex != null) {
- return text.replace(new RegExp(linkRegex,'g'), function(url) {
- return '' + url + '';
- })
- } else {
- return text;
- }
-}
-
-// Render the data, being a user or a message
-function renderData(json) {
- if (json.type == "message") {
- renderMessage(json);
- } else if (json.type == "users") {
- renderUsers(json);
- }
-}
-
-// Render the message
-function renderMessage(msg) {
- var messages = document.getElementById('xowiki-chat-messages');
- var user = msg.user.replace(/\\'/g, "\"");
- var message = createLink(msg.message);
- var user_id = msg.user_id;
- var my_user = document.getElementById('xowiki-my-user-id');
- if (my_user == null) {
- my_user_id = "";
- } else {
- my_user_id = my_user.innerText;
- }
- var color = msg.color;
-
- // User block
- user_block = document.createElement('div');
- user_block.className = 'xowiki-chat-user-block';
-
- // User link
- a = document.createElement('a');
- a.href = '/shared/community-member?user%5fid=' + user_id;
- a.target = '_blank';
- a.className = 'xowiki-chat-user-link';
-
- // User name
- span = document.createElement('span');
- span.textContent = user;
- span.setAttribute("class", "xowiki-chat-user");
- span.setAttribute("style", "color:" + color);
- a.appendChild(span);
- user_block.appendChild(a);
- previous_user_id = user_id;
- current_color = color;
-
- messages.appendChild(user_block);
-
- message_block = document.createElement('div');
- if (user_id != my_user_id) {
- message_block.className = 'xowiki-chat-message-block';
- } else {
- message_block.className = 'xowiki-chat-message-block-me';
- }
-
- // Message body
- span = document.createElement('span');
- span.innerHTML = message;
- if (user_id != my_user_id) {
- span.className = 'xowiki-chat-message';
- } else {
- span.className = 'xowiki-chat-message-me';
- }
- message_block.appendChild(span);
-
- // Timestamp
- span = document.createElement('span');
- span.innerHTML = msg.timestamp;
- if (user_id != my_user_id) {
- span.className = 'xowiki-chat-timestamp';
- } else {
- span.className = 'xowiki-chat-timestamp-me';
- }
- message_block.appendChild(span);
-
- messages.appendChild(message_block);
-
- messages.scrollTop = messages.scrollHeight;
-
- // IE will lose focus on message send
- document.getElementById('xowiki-chat-send').focus();
-}
-
-// Render the user in the user list
-function renderUsers(msg) {
- var users = document.getElementById('xowiki-chat-users');
- while (users.hasChildNodes()) {
- users.removeChild(users.firstChild);
- }
- for (var i = 0; i < msg.message.length; i++) {
- var user = msg.message[i].user.replace(/\\'/g, "\"");
- var user_id = msg.message[i].user_id;
- var color = msg.message[i].color;
-
- // User link
- a = document.createElement('a');
- a.href = '/shared/community-member?user%5fid=' + user_id;
- a.target = '_blank';
- a.className = 'xowiki-chat-user-link';
-
- // User block
- user_block = document.createElement('div');
- user_block.className = 'xowiki-chat-user-block';
- a.appendChild(user_block);
-
- // User picture
- var show_avatar = document.getElementById('xowiki-chat-show-avatar');
- if (show_avatar != null) {
- wrapper = document.createElement('div');
- wrapper.className = 'xowiki-chat-user-pic-wrap';
- img = document.createElement('img');
- img.setAttribute("src", "/shared/portrait-bits.tcl?user_id=" + user_id);
- img.setAttribute("class", "xowiki-chat-user-pic");
- img.setAttribute("style", "border-color:" + color);
- wrapper.appendChild(img);
- user_block.appendChild(wrapper);
- }
-
- // User name
- span = document.createElement('span');
- span.textContent = user;
- span.setAttribute("class", "xowiki-chat-user");
- span.setAttribute("style", "color:" + color);
- user_block.appendChild(span);
-
- br = document.createElement('br');
- user_block.appendChild(br);
-
- // Timestamp
- span = document.createElement('span');
- span.innerHTML = msg.message[i].timestamp;
- span.className = 'xowiki-chat-timestamp';
- user_block.appendChild(span);
-
- users.appendChild(a);
- }
-}
Index: openacs-4/packages/xowiki/www/resources/chat-skins/chat-classic.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/chat-skins/Attic/chat-classic.js,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/resources/chat-skins/chat-classic.js 25 Feb 2019 15:48:45 -0000 1.1.2.1
@@ -0,0 +1,183 @@
+// Javascript side of the Classic Chat skin
+
+var previous_user_id = "";
+var current_color = "";
+
+// Full screen
+function addFullScreenLink() {
+
+ // Full screen trigger block
+ const triggerFSblock = document.createElement("div");
+ triggerFSblock.className = 'xowiki-chat-trigger-fs-block';
+
+ // Full screen trigger
+ const triggerFSlink = document.createElement("a");
+ triggerFSlink.className = 'xowiki-chat-trigger-fs-link';
+ triggerFSlink.setAttribute("href", "#");
+
+ // Trigger icon
+ var triggerFSoff = '';
+ var triggerFSon = '';
+ triggerFSlink.innerHTML = triggerFSon;
+
+ // Full screen when clicked
+ triggerFSlink.addEventListener("click", function(event) {
+ event.preventDefault();
+ var chat = document.getElementById('xowiki-chat');
+ var chatFS = document.getElementById('xowiki-chat-fs');
+ if (chat != null) {
+ chat.id = 'xowiki-chat-fs';
+ triggerFSlink.innerHTML = triggerFSoff;
+ document.body.style.overflow = "hidden";
+ } else if (chatFS != null) {
+ chatFS.id = 'xowiki-chat';
+ triggerFSlink.innerHTML = triggerFSon;
+ document.body.style.overflow = "scroll";
+ }
+ // Scroll down the messages
+ var messages = document.getElementById('xowiki-chat-messages');
+ messages.scrollTop = messages.scrollHeight;
+ });
+
+ // Add Full screen trigger to the chat
+ const formBlock = document.getElementById('xowiki-chat-messages-form-block');
+ triggerFSblock.appendChild(triggerFSlink);
+ formBlock.appendChild(triggerFSblock);
+}
+
+// Send link pic
+function addSendPic() {
+
+ var sendPic = '';
+ var button = document.getElementById('xowiki-chat-send-button');
+
+ if (button != null) {
+ button.innerHTML = sendPic;
+ }
+}
+
+// Render the message
+function renderMessage(msg) {
+ var messages = document.getElementById('xowiki-chat-messages');
+ var user = msg.user.replace(/\\'/g, "\"");
+ var message = createLink(msg.message);
+ var user_id = msg.user_id;
+ var my_user = document.getElementById('xowiki-my-user-id');
+ if (my_user == null) {
+ my_user_id = "";
+ } else {
+ my_user_id = my_user.innerText;
+ }
+ var color = msg.color;
+
+ // User block
+ user_block = document.createElement('div');
+ user_block.className = 'xowiki-chat-user-block';
+
+ // User link
+ a = document.createElement('a');
+ a.href = '/shared/community-member?user%5fid=' + user_id;
+ a.target = '_blank';
+ a.className = 'xowiki-chat-user-link';
+
+ // User name
+ span = document.createElement('span');
+ span.textContent = user;
+ span.setAttribute("class", "xowiki-chat-user");
+ span.setAttribute("style", "color:" + color);
+ a.appendChild(span);
+ user_block.appendChild(a);
+ previous_user_id = user_id;
+ current_color = color;
+
+ messages.appendChild(user_block);
+
+ message_block = document.createElement('div');
+ if (user_id != my_user_id) {
+ message_block.className = 'xowiki-chat-message-block';
+ } else {
+ message_block.className = 'xowiki-chat-message-block-me';
+ }
+
+ // Message body
+ span = document.createElement('span');
+ span.innerHTML = message;
+ if (user_id != my_user_id) {
+ span.className = 'xowiki-chat-message';
+ } else {
+ span.className = 'xowiki-chat-message-me';
+ }
+ message_block.appendChild(span);
+
+ // Timestamp
+ span = document.createElement('span');
+ span.innerHTML = msg.timestamp;
+ if (user_id != my_user_id) {
+ span.className = 'xowiki-chat-timestamp';
+ } else {
+ span.className = 'xowiki-chat-timestamp-me';
+ }
+ message_block.appendChild(span);
+
+ messages.appendChild(message_block);
+
+ messages.scrollTop = messages.scrollHeight;
+
+ // IE will lose focus on message send
+ document.getElementById('xowiki-chat-send').focus();
+}
+
+// Render the user in the user list
+function renderUsers(msg) {
+ var users = document.getElementById('xowiki-chat-users');
+ while (users.hasChildNodes()) {
+ users.removeChild(users.firstChild);
+ }
+ for (var i = 0; i < msg.message.length; i++) {
+ var user = msg.message[i].user.replace(/\\'/g, "\"");
+ var user_id = msg.message[i].user_id;
+ var color = msg.message[i].color;
+
+ // User link
+ a = document.createElement('a');
+ a.href = '/shared/community-member?user%5fid=' + user_id;
+ a.target = '_blank';
+ a.className = 'xowiki-chat-user-link';
+
+ // User block
+ user_block = document.createElement('div');
+ user_block.className = 'xowiki-chat-user-block';
+ a.appendChild(user_block);
+
+ // User picture
+ var show_avatar = document.getElementById('xowiki-chat-show-avatar');
+ if (show_avatar != null) {
+ wrapper = document.createElement('div');
+ wrapper.className = 'xowiki-chat-user-pic-wrap';
+ img = document.createElement('img');
+ img.setAttribute("src", "/shared/portrait-bits.tcl?user_id=" + user_id);
+ img.setAttribute("class", "xowiki-chat-user-pic");
+ img.setAttribute("style", "border-color:" + color);
+ wrapper.appendChild(img);
+ user_block.appendChild(wrapper);
+ }
+
+ // User name
+ span = document.createElement('span');
+ span.textContent = user;
+ span.setAttribute("class", "xowiki-chat-user");
+ span.setAttribute("style", "color:" + color);
+ user_block.appendChild(span);
+
+ br = document.createElement('br');
+ user_block.appendChild(br);
+
+ // Timestamp
+ span = document.createElement('span');
+ span.innerHTML = msg.message[i].timestamp;
+ span.className = 'xowiki-chat-timestamp';
+ user_block.appendChild(span);
+
+ users.appendChild(a);
+ }
+}