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);
+ }
+}