~ubuntu-branches/ubuntu/trusty/jwchat/trusty

« back to all changes in this revision

Viewing changes to groupchat.html.es_ga

  • Committer: Bazaar Package Importer
  • Author(s): Lincoln de Sousa, Lincoln de Sousa, Marcelo Jorge Vieira
  • Date: 2010-09-16 11:42:28 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20100916114228-5s5ne28n1w6wrfbl
Tags: 1.0+dfsg-1
[Lincoln de Sousa]

* Switch to dpkg-source 3.0 (quilt) format
* Migrating package from cdbs to debhelper 7.0.50~
* Changing the rule get-orig-source to generate a dfsg compatible
  package striping swf files from the orig (Closes: #591962)
* Updated Standards-Version to 3.9.1
* Removing po-debconf from the Build-Depends-Indep list.

[Marcelo Jorge Vieira]

* Fixing the default backend
* Fixing Debugger dependency
* Changing information about packaging from old maintainers to
  Debian XMPP Team.
* Removing sound support.
* Setting a port for apache VirtualHost.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
 
<html>
3
 
  <head>
4
 
    <title>JWChat - Groupchat</title>
5
 
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
6
 
<script>
7
 
 // this one's needed to make roster.js work
8
 
var JABBERSERVER = opener.JABBERSERVER;
9
 
</script>
10
 
    <script src="shared.js"></script>
11
 
    <script src="browsercheck.js"></script>
12
 
    <script src="emoticons.js"></script>
13
 
    <script src="config.js"></script>
14
 
    <script src="statusLed.js"></script>
15
 
    <script src="jsjac.js"></script>
16
 
    <script src="roster.js"></script>
17
 
    <script language="JavaScript1.2">
18
 
<!--
19
 
var colors = new Array('maroon','green','olive','navy','purple','teal','red','blue');
20
 
 
21
 
var scrollHeight = 0;
22
 
function putMsgHTML(msg,mtime,user,usercolor,err) {
23
 
  var msgHTML = '';
24
 
  
25
 
  msgHTML += "<div><span class=time>["+mtime+"] </span>";    
26
 
  
27
 
  if (msg.match(/^\/me /)) {
28
 
    msg = msgFormat(msg);
29
 
    msg = msg.replace(/^\/me /,"<span style=\"color:green;font-weight:bold;\" class=msgnick title='@ "+mtime+"'>*&nbsp;"+htmlEnc(user)+"</span> ");
30
 
  } else if (user != group) {
31
 
    msg = msgFormat(msg);
32
 
    msgHTML += "<span style=\"color:"+usercolor+";\" class=msgnick title='@ "+mtime+"'>&lt;" + htmlEnc(user) + "&gt;</span>&nbsp;";
33
 
  }
34
 
 
35
 
  if (user == group) {/* channel status messages */
36
 
    if (err)
37
 
      msgHTML += "<span style=\"font-weight:bold;color:red;\">"+msg+"</span>";
38
 
    else
39
 
      msgHTML += "<span style=\"font-weight:bold;\">"+msg+"</span>";
40
 
  } else {
41
 
    if (user != nick && meRegExp.test(msg) && !notHREFMeRegExp.test(msg))
42
 
      msgHTML += "&nbsp;" + msg.replace(meRegExp,"<span class='highlighted'>$1</span>");
43
 
    else 
44
 
      msgHTML +=  msg;
45
 
  }
46
 
 
47
 
  msgHTML += "</div>";
48
 
 
49
 
  var scroll_bottom = false;
50
 
  if (cFrame.body.scrollTop+cFrame.body.clientHeight >= cFrame.body.scrollHeight)
51
 
    scroll_bottom = true;
52
 
                                
53
 
  cFrame.body.innerHTML += msgHTML;
54
 
 
55
 
  if (scroll_bottom)
56
 
    frames.groupchatChat.groupchatIChat.scrollTo(0,cFrame.body.scrollHeight);
57
 
}
58
 
 
59
 
function popMsgs() {
60
 
 
61
 
  if (!user) 
62
 
    user = srcW.roster.getUserByJID(group);
63
 
 
64
 
  while (user.chatmsgs.length>0) {
65
 
    var msg;
66
 
    if (is.ie5||is.op) {
67
 
      msg = user.chatmsgs[0];
68
 
      user.chatmsgs = user.chatmsgs.slice(1,user.chatmsgs.length);
69
 
    } else
70
 
      msg = user.chatmsgs.shift();
71
 
 
72
 
    var from = msg.getFrom();
73
 
    if (msg.getFrom().indexOf('/') != -1)
74
 
      from = msg.getFrom().substring(msg.getFrom().indexOf('/')+1);
75
 
 
76
 
    /* get date */
77
 
    var timestamp;
78
 
    if (msg.jwcTimestamp)
79
 
      timestamp = msg.jwcTimestamp;
80
 
    else
81
 
      timestamp = new Date();
82
 
 
83
 
    var mtime = '';
84
 
    if (new Date() - timestamp > 24*3600*1000)
85
 
      mtime += timestamp.toLocaleDateString() + " ";
86
 
                
87
 
    mtime += timestamp.toLocaleTimeString();
88
 
    
89
 
    /* look for a subject */
90
 
    if (msg.getSubject()) { // set topic
91
 
      user.roster.subject = msg.getSubject();
92
 
      frames.groupchatTop.document.forms[0].elements['subject'].value = msg.getSubject();
93
 
      putMsgHTML("/me has set the topic to: "+msg.getSubject(), mtime, from);
94
 
      return;
95
 
    }
96
 
 
97
 
    if(!msg.getBody() || msg.getBody() == '')
98
 
      return;
99
 
        
100
 
    /* calculate color */
101
 
    var charSum = 0;
102
 
    for (var i=0; i<from.length; i++)
103
 
      charSum += from.charCodeAt(i);
104
 
    
105
 
    putMsgHTML(msg.getBody(),mtime,from,colors[charSum%(colors.length)]);
106
 
  }
107
 
 
108
 
  /* disabled: it's annoying */
109
 
  //  if (srcW.focusWindows) frames.groupchatBottom.document.forms[0].msgbox.focus();
110
 
}
111
 
 
112
 
function displayTimestamp() {
113
 
  var tstyle;
114
 
  if (is.ie) {
115
 
    tstyle = cFrame.styleSheets('timestampstyle');
116
 
    tstyle.disabled = opener.top.timestamps;
117
 
  } else {
118
 
    tstyle = cFrame.getElementById("timestampstyle");
119
 
    tstyle.sheet.disabled = opener.top.timestamps;
120
 
  }
121
 
}
122
 
 
123
 
function updateMe() {
124
 
  frames.groupchatTop.document.forms[0].subject.disabled = (roster.me.role == 'none');
125
 
  frames.groupchatBottom.document.forms[0].submit.disabled = (roster.me.role == 'none');
126
 
 
127
 
  if (roster.me.affiliation == 'owner')
128
 
    frames.groupchatBottom.document.getElementById('config_chan_button').style.display = '';
129
 
  else
130
 
    frames.groupchatBottom.document.getElementById('config_chan_button').style.display = 'none';
131
 
 
132
 
  if (roster.me.role == 'none') {// seems we left
133
 
    cFrame.body.innerHTML += "<span style='color:red';>"+"Disconnected."+"</span><br>";
134
 
    frames.groupchatChat.groupchatIChat.scrollTo(0,cFrame.body.scrollHeight);
135
 
  }
136
 
 
137
 
  if (frames.groupchatRoster.updateMe)
138
 
    frames.groupchatRoster.updateMe();
139
 
}
140
 
 
141
 
function changeUserStat(jid,stat,val,confirm,reason) {
142
 
  var user = roster.getUserByJID(jid);
143
 
  var iq = new JSJaCIQ();
144
 
  iq.setType('set');
145
 
  iq.setTo(group);
146
 
 
147
 
  var query = iq.setQuery('http://jabber.org/protocol/muc#admin');
148
 
  var item = query.appendChild(iq.getDoc().createElement('item'));
149
 
  item.setAttribute('nick',user.name);
150
 
 
151
 
  item.setAttribute(stat,val);
152
 
        
153
 
  if (reason || (confirm && (reason = prompt("Reason","")) != ''))
154
 
    item.appendChild(iq.getDoc().createElement('reason')).appendChild(iq.getDoc().createTextNode(reason));
155
 
 
156
 
  me = this;
157
 
  srcW.con.send(iq,me.handleError);
158
 
}
159
 
 
160
 
function handleError(iq) {
161
 
  // handle error
162
 
  if (iq && iq.getType() == 'error') {
163
 
    srcW.Debug.log(iq.xml(),1);
164
 
    var error = iq.getNode().getElementsByTagName('error').item(0);
165
 
    if (error) {
166
 
      var msg = '';
167
 
      for (var i=0; i<error.childNodes.length; i++) {
168
 
        switch (error.childNodes.item(i).nodeName) {
169
 
        case 'not-allowed':
170
 
          putMsgHTML("Not Allowed",new Date(),group,null,true);
171
 
          break;
172
 
        case 'forbidden':
173
 
          putMsgHTML("Forbidden",new Date(),group,null,true);
174
 
          break;
175
 
        case 'item-not-found':
176
 
          putMsgHTML("Not Found",new Date(),group,null,true);
177
 
          break;
178
 
        default:
179
 
          putMsgHTML(error.childNodes.item(i).nodeName,new Date(),group,null,true);
180
 
          break;
181
 
        }
182
 
      }
183
 
    }
184
 
  }
185
 
}
186
 
 
187
 
function changeRole(jid,role,confirm,reason) {
188
 
  changeUserStat(jid,"role",role,confirm,reason);
189
 
}
190
 
 
191
 
function changeAffiliation(jid,affil,confirm,reason) {
192
 
  changeUserStat(jid,"affiliation",affil,confirm);
193
 
}
194
 
 
195
 
var configW
196
 
function openConfig() {
197
 
  if (!configW || configW.closed)
198
 
    configW = open("groupchatconfig.html","gccW"+makeWindowName(jid),"width=480,height=380,resizable=yes,scrollbars=yes");
199
 
  configW.focus();
200
 
  return false;
201
 
}
202
 
 
203
 
function cleanUp() {
204
 
  if (configW && !configW.closed)
205
 
    configW.close();
206
 
}
207
 
 
208
 
function part() {
209
 
  cleanUp();
210
 
 
211
 
  if (srcW.con) {
212
 
    var presence = new JSJaCPresence();
213
 
    presence.setType('unavailable');
214
 
    presence.setTo(group);
215
 
    srcW.con.send(presence);
216
 
  }
217
 
 
218
 
  if (!user.messages.length && !user.chatmsgs.length && srcW && srcW.roster) {
219
 
    srcW.roster.removeUser(user);
220
 
    srcW.roster.print();
221
 
  }
222
 
}
223
 
 
224
 
/* global vars */
225
 
var srcW,user,roster,cFrame,jid,nick,pass,meRegExp,notHREFMeRegExp;
226
 
 
227
 
function init() {
228
 
  getArgs();
229
 
  
230
 
  srcW = opener;
231
 
 
232
 
  jid = passedArgs['jid'];
233
 
  group = jid;
234
 
 
235
 
  if (typeof(passedArgs['nick']) != 'undefined')
236
 
    nick = passedArgs['nick'];
237
 
  if(typeof(nick) == 'undefined' || nick == '')
238
 
    nick = srcW.roster.nick; // guess a nick
239
 
 
240
 
  meRegExp = new RegExp("\\b("+nick+")\\b","i");
241
 
  notHREFMeRegExp = new RegExp("href=\"\\S*\\b"+nick+"\\b\\S*\"","i");
242
 
 
243
 
  if (passedArgs['pass'] != 'undefined')
244
 
    pass = passedArgs['pass'];
245
 
 
246
 
  srcW.Debug.log("groupchat room: "+jid+", nick: "+nick + ", pass: "+pass ,2);
247
 
  
248
 
  // send presence
249
 
  var aPresence = new JSJaCPresence();
250
 
  aPresence.setTo(group+'/'+nick);
251
 
 
252
 
  var x = aPresence.appendNode('x', 
253
 
        {'xmlns': 'http://jabber.org/protocol/muc'});
254
 
  if (typeof(pass) != 'undefined' && pass != '')
255
 
    x.appendChild(aPresence.buildNode('password' ,pass));
256
 
 
257
 
  if (srcW.onlstat != 'available' && srcW.onlstat != 'invisible')
258
 
    aPresence.setShow(srcW.onlstat);
259
 
 
260
 
  if (srcW.onlmsg != '')
261
 
    aPresence.setStatus(srcW.onlmsg);
262
 
 
263
 
  srcW.Debug.log("sending muc presence:\n"+aPresence.xml(),3);
264
 
 
265
 
  srcW.con.send(aPresence);
266
 
  
267
 
  cFrame = frames.groupchatChat.groupchatIChat.document;
268
 
 
269
 
  user = srcW.roster.getUserByJID(group);
270
 
  if(!user) {
271
 
    user = srcW.roster.addUser(new RosterUser(group,'',["Chat Rooms"],group.substring(0,group.indexOf('@'))));
272
 
    user.chatW = window.self;
273
 
  }
274
 
  user.status = 'available';
275
 
  srcW.roster.print();
276
 
  
277
 
  user.roster = new GroupchatRoster(window.self);
278
 
  user.roster.nick = nick; // remember my nickname
279
 
  roster = user.roster;
280
 
  //        user.roster.print();
281
 
  
282
 
  //  document.title += " - " + group;
283
 
  document.title = group+'/'+nick;
284
 
 
285
 
  popMsgs();
286
 
  displayTimestamp();
287
 
}
288
 
 
289
 
function keyPressed(e) {
290
 
  if (e.keyCode == 27)
291
 
    window.close();
292
 
}
293
 
 
294
 
function updateStyleIE() {
295
 
  try {
296
 
    if (user && user.roster)
297
 
      user.roster.updateStyleIE();
298
 
  } catch(e) {}
299
 
}
300
 
 
301
 
onkeydown = keyPressed;
302
 
onload = init;
303
 
onunload = part;
304
 
onresize = updateStyleIE;
305
 
//-->
306
 
    </script>
307
 
 
308
 
    <script for="document" event="onkeydown()" language="JScript">
309
 
      <!--
310
 
      if (window.event && window.event.keyCode == 27)
311
 
      window.close();
312
 
      //-->
313
 
    </script>
314
 
  </head>
315
 
 
316
 
  <frameset cols="75%,*" frameborder=2 framespacing=2 border=2 bordercolor=black>
317
 
    <frameset rows="40,*,90" frameborder=2 framespacing=2 border=2 bordercolor=black>
318
 
      <frame src="groupchat_top.html" name="groupchatTop" scrolling="no" />
319
 
        <frame src="groupchat_chat.html" name="groupchatChat" scrolling="no" />
320
 
          <frame src="groupchat_bottom.html" name="groupchatBottom" scrolling="no" />
321
 
    </frameset>
322
 
    <frame src="groupchat_roster.html" name="groupchatRoster" scrolling="no" />
323
 
  </frameset>
324
 
</html>