Index: openacs-4/packages/xowiki/www/ajax/chat-common.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/ajax/Attic/chat-common.js,v diff -u -N --- openacs-4/packages/xowiki/www/ajax/chat-common.js 20 Nov 2018 17:27:59 -0000 1.11 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,205 +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", "javascript:void(0)"); - - // Trigger icon - var triggerFSoff = ''; - var triggerFSon = ''; - triggerFSlink.innerHTML = triggerFSon; - - // Full screen when clicked - triggerFSlink.onclick = () => { - var chat = document.getElementById('xowiki-chat'); - var chatFS = document.getElementById('xowiki-chat-fs'); - if (chat != null) { - chat.id = 'xowiki-chat-fs'; - triggerFSlink.innerHTML = triggerFSoff; - } else if (chatFS != null) { - chatFS.id = 'xowiki-chat'; - triggerFSlink.innerHTML = triggerFSon; - } - } - - // 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('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.innerHTML = user; - span.className = 'xowiki-chat-user'; - span.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 - wrapper = document.createElement('div'); - wrapper.className = 'xowiki-chat-user-pic-wrap'; - 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); - user_block.appendChild(wrapper); - - // User name - span = document.createElement('span'); - span.innerHTML = user; - span.className = 'xowiki-chat-user'; - span.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); - } -} - -// Send the message -function chatSendMsg(send_url, handler) { - var msgField = document.getElementById('xowiki-chat-send'); - var msg = msgField.value; - if (msg == '') {return;} - http_send.open('GET', send_url + encodeURIComponent(msg), true); - http_send.onreadystatechange = handler; - http_send.send(null); - msgField.value = ''; -}