/******************************************************************************* AToMPM - A Tool for Multi-Paradigm Modelling Copyright (c) 2011 Raphael Mannadiar (raphael.mannadiar@mail.mcgill.ca) Modified by Conner Hansen (chansen@crimson.ua.edu) This file is part of AToMPM. AToMPM is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. AToMPM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with AToMPM. If not, see . *******************************************************************************/ Collaboration = function(){ //css/html based on http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/ /** * This enables the collaboration links so that they can be selected */ this.enableCollaborationLinks = function() { $('#a_screenshare').attr('href', 'mailto:?'+ 'subject='+encodeURIComponent('atompm screenshare invitation')+ '&body='+encodeURIComponent('follow this link \n\t'+ window.location.href+'?cswid='+__wid+'&host='+__user+ '\nto join '+__user+' in an atompm shared-screen session')); $('#a_screenshare').attr('class', 'enabled_link unselectable'); $('#a_modelshare').attr('href', 'mailto:?'+ 'subject='+encodeURIComponent('atompm modelshare invitation')+ '&body='+encodeURIComponent('follow this link \n\t'+ window.location.href+'?cswid='+__wid+'&aswid='+__aswid+'&host='+__user+ '\nto join '+__user+' in an atompm shared-model session')); $('#a_modelshare').attr('class', 'enabled_link unselectable'); }; /** * Toggles the chat window between the opened and closed states * * Credits to Maris Jukss */ this.toggleChat = function() { var name = $("#chatName"); var chat = $("#chat"); var text = $("#showChat"); if(chat.css("display") == "block") { chat.css("display", "none"); text.html("Open Chat"); } else { chat.css("display", "block"); text.html(""); name.html(window.localStorage.getItem('user')); } }; /** * Sends the entered text to the other user and then * clears the chat window */ this.sendText = function(){ // var text = document.getElementById("usermsg").value; var userMsg = $("#usermsg"); var text = userMsg.val(); if (text) { HttpUtils.httpReq( 'POST', 'plugins/chat/chat?wid='+__wid, ''+window.localStorage.getItem('user')+': '+text, function(statusCode,resp) { //call back here }); userMsg.val(""); } }; /** * Updates the chat window */ this.updateChat = function( text, name ){ var chatbox = $("#chatbox"); var currentTime = new Date(); var hours = currentTime.getHours(); var minutes = currentTime.getMinutes(); var oldH = chatbox.scrollHeight-20; if (minutes < 10) minutes = "0" + minutes; // Include the text in the chatbox chatbox.html( chatbox.html() + "
("+hours+":"+minutes+") "+text+"
" ); // Get the new height var newH = chatbox.prop("scrollHeight") - 20; if (newH > oldH) { chatbox.attr("scrollTop", 100000 + "px"); } }; return this; }();