/usr/share/kadu/scripts/chat-scripts.js is in kadu-common 0.12.3-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | /* <![CDATA[ */
// MessageStatus enum vaules identical with those defined in kadu-core/chat/message/message-common.h
StatusUnknown = 0;
StatusReceived = 1;
StatusRead = 2;
StatusSent = 3;
StatusDelivered = 4;
StatusWontDeliver = 5;
// ContactActivity enum vaules identical with those defined in protocols/services/chat-state-service.h
StateActive = 0;
StateComposing = 1;
StateGone = 2;
StateInactive = 3;
StateNone = 4;
StatePaused = 5;
function adium_clearMessages()
{
var chatElement = document.getElementById('Chat');
chatElement.innerHTML = "";
}
function adium_removeFirstMessage()
{
var chatElement = document.getElementById('Chat');
if (chatElement && chatElement.firstChild)
chatElement.removeChild(chatElement.firstChild);
}
function adium_contactActivityChanged(state, message, name)
{
if (typeof(contactActivityChanged) != 'undefined')
contactActivityChanged(state, message, name);
}
function kadu_clearMessages()
{
// A style can place its own content before any messages with <kadu:top>,
// so we don't want to delete that content here. Also bear in mind that
// kadu_takeScriptNodes() usage might result in <script> tags being put as
// direct <body> children (but surely not preceding the first
// <span class="kadu_message">).
var messages = document.getElementsByClassName('kadu_message');
if (0 == messages.length)
return;
var node = messages[0];
while (node)
{
var nextNode = node.nextSibling;
if (node.parentNode)
node.parentNode.removeChild(node);
node = nextNode;
}
}
function kadu_appendMessage(html)
{
var body = document.getElementsByTagName('body')[0];
var range = document.createRange();
range.selectNode(body);
var documentFragment = range.createContextualFragment(html);
var scriptnodes = kadu_takeScriptNodes(documentFragment);
body.appendChild(documentFragment);
for (var k in scriptnodes)
body.appendChild(scriptnodes[k]);
}
function kadu_takeScriptNodes(node)
{
var scriptnodes = new Array();
for (var k in node.childNodes)
{
var childnode = node.childNodes[k];
if (childnode.nodeName && childnode.nodeName.toLowerCase() == "script")
{
var scriptnode = node.removeChild(childnode);
scriptnodes.push(scriptnode.cloneNode(true));
}
else
scriptnodes = scriptnodes.concat(kadu_takeScriptNodes(childnode));
}
return scriptnodes;
}
function scrollToBottom()
{
// we have better implementation in C++, so we should ignore it
// document.body.scrollTop = document.body.offsetHeight;
}
function kadu_removeFirstMessage()
{
var messages = document.getElementsByClassName('kadu_message');
for (var k in messages)
{
var message = messages[k];
if (message.parentNode)
{
var node = message.nextSibling;
message.parentNode.removeChild(message);
// There can be some <script> tags, see kadu_clearMessages() for explanation.
while (node.className != 'kadu_message')
{
var nextNode = node.nextSibling;
if (node.parentNode)
node.parentNode.removeChild(node);
node = nextNode;
}
break;
}
}
}
function kadu_messageStatusChanged(messageid, status)
{
if (typeof(messageStatusChanged) != 'undefined')
messageStatusChanged(messageid, status);
}
function kadu_contactActivityChanged(state, message, name)
{
if (typeof(contactActivityChanged) != 'undefined')
contactActivityChanged(state, message, name);
}
/* ]]> */
|