Index: openacs-4/packages/chat/www/ajax/chat.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/ajax/Attic/chat.js,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/chat/www/ajax/chat.js 24 Jun 2006 14:23:42 -0000 1.2
+++ openacs-4/packages/chat/www/ajax/chat.js 7 Jun 2007 09:14:25 -0000 1.3
@@ -51,7 +51,7 @@
if (node.childNodes[i].nodeType == 3 ) {
// if this is a textnode, skip it
continue;
- }
+ }
msgCount++;
p = doc.createElement('p');
p.className = 'line';
@@ -80,68 +80,144 @@
}
function pushReceiver(content) {
- updateReceiver(content);
+ //alert(content);
+ updateReceiver(content);
var msgField = document.getElementById('chatMsg');
msgField.value = '';
msgField.disabled = false;
msgField.focus();
}
function updateReceiver(content) {
+ // alert(content);
var xmlobject = (new DOMParser()).parseFromString(content, 'application/xhtml+xml');
var body = xmlobject.getElementsByTagName('body');
+ //alert(content);
- for (var i = 0 ; i < body[0].childNodes.length ; i++) {
+ for (var i = 0 ; i < body[0].childNodes.length ; i++) {
if (body[0].childNodes[i].nodeType == 3 ) {
// if this is a textnode, skip it
continue;
}
+
var attribute = body[0].childNodes[i].getAttribute('id');
+
switch (attribute) {
case "messages":
- var messagesNode = body[0].childNodes[i];
+ var messagesNode = body[0].childNodes[i];
if (messagesNode.hasChildNodes()) {
- var messagesDoc = frames['ichat'].document;
- var messagesDiv = frames['ichat'].document.getElementById('messages');
- messagesReceiver(messagesNode,messagesDoc,messagesDiv);
+ var messagesDoc = frames['ichat'].document; //esto es lo actual de mi pagina
+ var messagesDiv = frames['ichat'].document.getElementById('messages'); //actual de mi pagina
+ messagesReceiver(messagesNode,messagesDoc,messagesDiv);//con todos los elemtnos nuevos en messagesNode, el documento messagesDco y la capa exacta, creare una nueva capa y sustituyo en el documento la que tengo por la nueva
}
break;
- case "users":
- var usersNode = body[0].childNodes[i].childNodes[0];
+ case "users":
+ var usersNode = body[0].childNodes[i].childNodes[0];
+
var usersDoc = frames['ichat-users'].document;
+
var usersTbody = frames['ichat-users'].document.getElementById('users').tBodies[0];
+
usersReceiver(usersNode,usersDoc,usersTbody);
break;
+ case "files":
+ var filesNode = body[0].childNodes[i].childNodes[0];
+ var filesDoc = frames['ichat-files'].document;
+ var filesTbody = frames['ichat-files'].document.getElementById('files').tBodies[0];
+ filesReceiver(filesNode,filesDoc,filesTbody);
+ break;
}
}
+
+
+
+
}
function usersReceiver(node,doc,tbody) {
var tr, td, e, s, nbody;
+
+
nbody = doc.createElement('tbody');
for (var i = 0 ; i < node.childNodes.length ; i++) {
if (node.childNodes[i].nodeType == 3 ){
// if this is a textnode, skip it
continue;
}
+
tr = doc.createElement('tr');
- e = node.childNodes[i].getElementsByTagName('TD');
+ e = node.childNodes[i].getElementsByTagName('td');
+
td = doc.createElement('td');
- td.innerHTML = decodeURIComponent(e[0].firstChild.nodeValue.replace(/\+/g,' '));
+ var ref = e[0].firstChild.getAttribute('href');
+ var ref2 = e[0].firstChild.firstChild.getAttribute('src');
+ var aux = "";
+ var aux2 = ""+aux+"";
+ td.innerHTML = decodeURIComponent(aux2);
+ tr.appendChild(td);
+
+
+
+ td = doc.createElement('td');
+ td.innerHTML = decodeURIComponent(e[1].firstChild.nodeValue.replace(/\+/g,' '));
td.className = 'user';
- tr.appendChild(td);
+ tr.appendChild(td);
+
td = doc.createElement('td');
- td.innerHTML = decodeURIComponent(e[1].firstChild.nodeValue.replace(/\+/g,' '));
+ td.innerHTML = decodeURIComponent(e[2].firstChild.nodeValue.replace(/\+/g,' '));
td.className = 'timestamp';
- tr.appendChild(td);
+ tr.appendChild(td);
+
nbody.appendChild(tr);
+
}
tbody.parentNode.replaceChild(nbody,tbody);
+
+
}
+function filesReceiver(node,doc,tbody) {
+ var tr, td, e, s, nbody;
+
+
+ nbody = doc.createElement('tbody');
+ for (var i = 0 ; i < node.childNodes.length ; i++) {
+ if (node.childNodes[i].nodeType == 3 ){
+ // if this is a textnode, skip it
+ continue;
+ }
+
+ tr = doc.createElement('tr');
+ e = node.childNodes[i].getElementsByTagName('td');
+
+ td = doc.createElement('td');
+
+ var ref = e[0].childNodes[0];
+
+ if(ref.nodeType != 1){
+ td = doc.createElement('td');
+ td.appendChild(e[0].firstChild);
+ td.className = 'files';
+ tr.appendChild(td);
+ nbody.appendChild(tr);
+ }
+ else{
+ var ref = e[0].childNodes[0].getAttribute('href');
+ var aux = ""+e[0].firstChild.childNodes[0].nodeValue.replace(/\+/g,' ')+"";
+ td.innerHTML = decodeURIComponent(aux);
+ td.className = 'files';
+ tr.appendChild(td);
+ nbody.appendChild(tr);
+ }
+ }
+ tbody.parentNode.replaceChild(nbody,tbody);
+
+}
+
+
function DataConnection() {};
DataConnection.prototype = {
@@ -152,10 +228,14 @@
autoConnect: null,
httpSendCmd: function(url) {
+
// if (!this.connection) {
+ //alert('httpSendCmd');
+ //alert(url);
this.busy = true;
this.connection = getHttpObject();
// }
+
this.connection.open('GET', url + '&mc=' + msgcount++, true);
var self = this;
this.connection.onreadystatechange = function() {
@@ -165,6 +245,7 @@
},
httpReceiver: function(obj) {
+ // alert('httpReceiver');
if (obj.connection.readyState == 4) {
if (obj.connection.status == 200) {
obj.handler(obj.connection.responseText);
@@ -177,6 +258,7 @@
},
chatSendMsg: function(send_url) {
+ //alert('chatSendMsg');
// if (inactivityTimeout) {
// clearTimeout(inactivityTimeout);
// alert("Clearing inactivityTimeout");
@@ -189,9 +271,11 @@
alert("chatSendMsg conflict! Maybe banned?");
}
var msgField = document.getElementById('chatMsg');
+ //alert(msgField);
if (msgField.value == '') {
return;
}
+ //alert(send_url);
msgField.disabled = true;
this.httpSendCmd(send_url + escape(msgField.value));
msgField.value = '#chat.sending_message#';
@@ -211,6 +295,10 @@
}
function registerDataConnection(handler,url,autoConnect) {
+// alert('registerDataConnection');
+ //alert(handler);
+ //alert(url);
+ //alert(autoConnect);
// var ds = new DataConnection(handler,url,autoConnect);
var ds = new DataConnection();
ds.handler = handler;
@@ -222,7 +310,9 @@
}
function updateDataConnections() {
+ //alert('updateDataConnections');
for (var ds in dataConnections) {
+ //alert(ds);
if (dataConnections[ds].autoConnect) {
// alert("updating " + dataConnections[ds].url);
dataConnections[ds].updateBackground();
@@ -239,11 +329,15 @@
}
function startProc() {
+ // alert('startProc');
document.getElementById('chatMsg').focus();
var messagesDiv = frames['ichat'].document.getElementById('messages');
+ // alert(frames['ichat'].document.getElementById('messages'));
+ // alert('startProc2');
if (messagesDiv) {
frames['ichat'].window.scrollTo(0,messagesDiv.offsetHeight);
}
+ // alert('startProc3');
}
window.onload = startProc;