~ubuntu-branches/ubuntu/lucid/jwchat/lucid

« back to all changes in this revision

Viewing changes to groupchat.html.es

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2008-08-24 15:02:53 UTC
  • mfrom: (3.1.4 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080824150253-h0z39rzjmo4lc1k5
Tags: 1.0beta3-3
* Clean up README.Debian. (Closes: #481320)
* Add brazilian debconf messages translation. (Closes: #481522)
* Add swedish debconf messages translation. (Closes: #494887)
* Add italian debconf messages translation. (Closes: #495780)
* Add russian debconf messages translation. (Closes: #495573)
* Add finnish debconf messages translation. (Closes: #496227)

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
    <script src="config.js"></script>
14
14
    <script src="statusLed.js"></script>
15
15
    <script src="xmlextras.js"></script>
16
 
    <script src="JSJaCPacket.js"></script>
 
16
    <script src="jsjac.js"></script>
17
17
    <script src="roster.js"></script>
18
18
    <script language="JavaScript1.2">
19
19
<!--
23
23
function putMsgHTML(msg,mtime,user,usercolor,err) {
24
24
  var msgHTML = '';
25
25
  
26
 
  msg = msgFormat(msg);
27
 
 
28
26
  msgHTML += "<div><span class=time>["+mtime+"] </span>";    
29
27
  
30
28
  if (msg.match(/^\/me /)) {
31
 
    msg = msg.replace(/^\/me /,"<span style=\"color:green;font-weight:bold;\" class=msgnick title='@ "+mtime+"'>*&nbsp;"+user+"</span> ");
 
29
    msg = msgFormat(msg);
 
30
    msg = msg.replace(/^\/me /,"<span style=\"color:green;font-weight:bold;\" class=msgnick title='@ "+mtime+"'>*&nbsp;"+htmlEnc(user)+"</span> ");
32
31
  } else if (user != group) {
33
 
    msgHTML += "<span style=\"color:"+usercolor+";\" class=msgnick title='@ "+mtime+"'>&lt;" + user + "&gt;</span>";
 
32
    msg = msgFormat(msg);
 
33
    msgHTML += "<span style=\"color:"+usercolor+";\" class=msgnick title='@ "+mtime+"'>&lt;" + htmlEnc(user) + "&gt;</span>&nbsp;";
34
34
  }
35
35
 
36
36
  if (user == group) {/* channel status messages */
37
 
                if (err)
38
 
                        msgHTML += "<span style=\"font-weight:bold;color:red;\">"+msg+"</span>";
39
 
                else
40
 
                        msgHTML += "<span style=\"font-weight:bold;\">"+msg+"</span>";
 
37
    if (err)
 
38
      msgHTML += "<span style=\"font-weight:bold;color:red;\">"+msg+"</span>";
 
39
    else
 
40
      msgHTML += "<span style=\"font-weight:bold;\">"+msg+"</span>";
41
41
  } else {
42
 
                if (user != nick && meRegExp.test(msg) && !notHREFMeRegExp.test(msg))
43
 
                        msgHTML += "&nbsp;" + msg.replace(meRegExp,"<span class='highlighted'>$1</span>");
44
 
                else 
45
 
                        msgHTML += "&nbsp;" + msg;
46
 
        }
47
 
 
48
 
        msgHTML += "</div>";
49
 
 
50
 
        var scroll_bottom = false;
51
 
        if (cFrame.body.scrollTop+cFrame.body.clientHeight >= cFrame.body.scrollHeight)
52
 
                scroll_bottom = true;
 
42
    if (user != nick && meRegExp.test(msg) && !notHREFMeRegExp.test(msg))
 
43
      msgHTML += "&nbsp;" + msg.replace(meRegExp,"<span class='highlighted'>$1</span>");
 
44
    else 
 
45
      msgHTML +=  msg;
 
46
  }
 
47
 
 
48
  msgHTML += "</div>";
 
49
 
 
50
  var scroll_bottom = false;
 
51
  if (cFrame.body.scrollTop+cFrame.body.clientHeight >= cFrame.body.scrollHeight)
 
52
    scroll_bottom = true;
53
53
                                
54
54
  cFrame.body.innerHTML += msgHTML;
55
55
 
56
 
        if (scroll_bottom)
57
 
                                frames.groupchatChat.groupchatIChat.scrollTo(0,cFrame.body.scrollHeight);
 
56
  if (scroll_bottom)
 
57
    frames.groupchatChat.groupchatIChat.scrollTo(0,cFrame.body.scrollHeight);
58
58
}
59
59
 
60
60
function popMsgs() {
70
70
    } else
71
71
      msg = user.chatmsgs.shift();
72
72
 
73
 
                var from = msg.getFrom();
 
73
    var from = msg.getFrom();
74
74
    if (msg.getFrom().indexOf('/') != -1)
75
75
      from = msg.getFrom().substring(msg.getFrom().indexOf('/')+1);
76
76
 
77
 
                /* get date */
78
 
                var timestamp;
79
 
                if (msg.jwcTimestamp)
80
 
                        timestamp = msg.jwcTimestamp;
81
 
                else
82
 
                        timestamp = new Date();
 
77
    /* get date */
 
78
    var timestamp;
 
79
    if (msg.jwcTimestamp)
 
80
      timestamp = msg.jwcTimestamp;
 
81
    else
 
82
      timestamp = new Date();
83
83
 
84
 
                var mtime = '';
85
 
                if (new Date() - timestamp > 24*3600*1000)
86
 
                        mtime += timestamp.toLocaleDateString() + " ";
 
84
    var mtime = '';
 
85
    if (new Date() - timestamp > 24*3600*1000)
 
86
      mtime += timestamp.toLocaleDateString() + " ";
87
87
                
88
 
                mtime += timestamp.toLocaleTimeString();
 
88
    mtime += timestamp.toLocaleTimeString();
89
89
    
90
90
    /* look for a subject */
91
91
    if (msg.getSubject()) { // set topic
92
92
      user.roster.subject = msg.getSubject();
93
93
      frames.groupchatTop.document.forms[0].elements['subject'].value = msg.getSubject();
94
 
                        putMsgHTML("/me ha cambiado el tema a: "+msg.getSubject(), mtime, from);
95
 
                        return;
 
94
      putMsgHTML("/me ha cambiado el tema a: "+msg.getSubject(), mtime, from);
 
95
      return;
96
96
    }
97
97
 
98
98
    if(!msg.getBody() || msg.getBody() == '')
99
 
                                return;
 
99
      return;
100
100
        
101
101
    /* calculate color */
102
102
    var charSum = 0;
106
106
    putMsgHTML(msg.getBody(),mtime,from,colors[charSum%(colors.length)]);
107
107
  }
108
108
 
109
 
        /* disabled: it's annoying */
110
 
        //  if (srcW.focusWindows) frames.groupchatBottom.document.forms[0].msgbox.focus();
 
109
  /* disabled: it's annoying */
 
110
  //  if (srcW.focusWindows) frames.groupchatBottom.document.forms[0].msgbox.focus();
111
111
}
112
112
 
113
113
function displayTimestamp() {
122
122
}
123
123
 
124
124
function updateMe() {
125
 
 
126
 
        frames.groupchatTop.document.forms[0].subject.disabled = (roster.me.role == 'none');
127
 
        frames.groupchatBottom.document.forms[0].submit.disabled = (roster.me.role == 'none');
128
 
 
129
 
        if (roster.me.affiliation == 'owner')
130
 
                frames.groupchatBottom.document.getElementById('config_chan_button').style.display = '';
131
 
        else
132
 
                frames.groupchatBottom.document.getElementById('config_chan_button').style.display = 'none';
133
 
 
134
 
        if (roster.me.role == 'none') {// seems we left
135
 
                cFrame.body.innerHTML += "<span style='color:red';>"+"Desconectado."+"</span><br>";
136
 
                frames.groupchatChat.groupchatIChat.scrollTo(0,cFrame.body.scrollHeight);
137
 
        }
138
 
 
139
 
        if (frames.groupchatRoster.updateMe)
140
 
                frames.groupchatRoster.updateMe();
 
125
  frames.groupchatTop.document.forms[0].subject.disabled = (roster.me.role == 'none');
 
126
  frames.groupchatBottom.document.forms[0].submit.disabled = (roster.me.role == 'none');
 
127
 
 
128
  if (roster.me.affiliation == 'owner')
 
129
    frames.groupchatBottom.document.getElementById('config_chan_button').style.display = '';
 
130
  else
 
131
    frames.groupchatBottom.document.getElementById('config_chan_button').style.display = 'none';
 
132
 
 
133
  if (roster.me.role == 'none') {// seems we left
 
134
    cFrame.body.innerHTML += "<span style='color:red';>"+"Desconectado."+"</span><br>";
 
135
    frames.groupchatChat.groupchatIChat.scrollTo(0,cFrame.body.scrollHeight);
 
136
  }
 
137
 
 
138
  if (frames.groupchatRoster.updateMe)
 
139
    frames.groupchatRoster.updateMe();
141
140
}
142
141
 
143
142
function changeUserStat(jid,stat,val,confirm,reason) {
144
143
  var user = roster.getUserByJID(jid);
145
 
        var iq = new JSJaCIQ();
146
 
        iq.setType('set');
147
 
        iq.setTo(group);
148
 
 
149
 
        var query = iq.setQuery('http://jabber.org/protocol/muc#admin');
150
 
        var item = query.appendChild(iq.getDoc().createElement('item'));
151
 
        item.setAttribute('nick',user.name);
152
 
 
153
 
        item.setAttribute(stat,val);
 
144
  var iq = new JSJaCIQ();
 
145
  iq.setType('set');
 
146
  iq.setTo(group);
 
147
 
 
148
  var query = iq.setQuery('http://jabber.org/protocol/muc#admin');
 
149
  var item = query.appendChild(iq.getDoc().createElement('item'));
 
150
  item.setAttribute('nick',user.name);
 
151
 
 
152
  item.setAttribute(stat,val);
154
153
        
155
154
  if (reason || (confirm && (reason = prompt("Reason","")) != ''))
156
 
                item.appendChild(iq.getDoc().createElement('reason')).appendChild(iq.getDoc().createTextNode(reason));
 
155
    item.appendChild(iq.getDoc().createElement('reason')).appendChild(iq.getDoc().createTextNode(reason));
157
156
 
158
 
        me = this;
159
 
        srcW.con.send(iq,me.handleError);
 
157
  me = this;
 
158
  srcW.con.send(iq,me.handleError);
160
159
}
161
160
 
162
161
function handleError(iq) {
163
 
        // handle error
164
 
        if (iq && iq.getType() == 'error') {
165
 
                srcW.Debug.log(iq.getDoc().xml,1);
166
 
                var error = iq.getNode().getElementsByTagName('error').item(0);
167
 
                if (error) {
168
 
                        var msg = '';
169
 
                        for (var i=0; i<error.childNodes.length; i++) {
170
 
                                switch (error.childNodes.item(i).nodeName) {
171
 
                                case 'not-allowed':
172
 
                                        putMsgHTML("No permitido",new Date(),group,null,true);
173
 
                                        break;
174
 
                                case 'forbidden':
175
 
                                        putMsgHTML("Prohibido",new Date(),group,null,true);
176
 
                                        break;
177
 
                                case 'item-not-found':
178
 
                                        putMsgHTML("No encontrado",new Date(),group,null,true);
179
 
                                        break;
180
 
                                default:
181
 
                                        putMsgHTML(error.childNodes.item(i).nodeName,new Date(),group,null,true);
182
 
                                        break;
183
 
                                }
184
 
                        }
185
 
                }
186
 
        }
 
162
  // handle error
 
163
  if (iq && iq.getType() == 'error') {
 
164
    srcW.Debug.log(iq.getDoc().xml,1);
 
165
    var error = iq.getNode().getElementsByTagName('error').item(0);
 
166
    if (error) {
 
167
      var msg = '';
 
168
      for (var i=0; i<error.childNodes.length; i++) {
 
169
        switch (error.childNodes.item(i).nodeName) {
 
170
        case 'not-allowed':
 
171
          putMsgHTML("No permitido",new Date(),group,null,true);
 
172
          break;
 
173
        case 'forbidden':
 
174
          putMsgHTML("Prohibido",new Date(),group,null,true);
 
175
          break;
 
176
        case 'item-not-found':
 
177
          putMsgHTML("No encontrado",new Date(),group,null,true);
 
178
          break;
 
179
        default:
 
180
          putMsgHTML(error.childNodes.item(i).nodeName,new Date(),group,null,true);
 
181
          break;
 
182
        }
 
183
      }
 
184
    }
 
185
  }
187
186
}
188
187
 
189
188
function changeRole(jid,role,confirm,reason) {
196
195
 
197
196
var configW
198
197
function openConfig() {
199
 
        if (!configW || configW.closed)
200
 
                configW = open("groupchatconfig.html","gccW"+makeWindowName(jid),"width=480,height=380,resizable=yes,scrollbars=yes");
201
 
                configW.focus();
202
 
        return false;
 
198
  if (!configW || configW.closed)
 
199
    configW = open("groupchatconfig.html","gccW"+makeWindowName(jid),"width=480,height=380,resizable=yes,scrollbars=yes");
 
200
  configW.focus();
 
201
  return false;
203
202
}
204
203
 
205
204
function cleanUp() {
206
 
        if (configW && !configW.closed)
207
 
                configW.close();
 
205
  if (configW && !configW.closed)
 
206
    configW.close();
208
207
}
209
208
 
210
209
function part() {
211
 
        cleanUp();
 
210
  cleanUp();
212
211
 
213
212
  if (srcW.con) {
214
 
                var presence = new JSJaCPresence();
215
 
                presence.setType('unavailable');
216
 
                presence.setTo(group);
217
 
                srcW.con.syncSend(presence);
218
 
        }
 
213
    var presence = new JSJaCPresence();
 
214
    presence.setType('unavailable');
 
215
    presence.setTo(group);
 
216
    srcW.con.send(presence);
 
217
  }
219
218
 
220
219
  if (!user.messages.length && !user.chatmsgs.length && srcW && srcW.roster) {
221
220
    srcW.roster.removeUser(user);
232
231
  srcW = opener;
233
232
 
234
233
  jid = passedArgs['jid'];
235
 
        group = jid;
236
 
 
237
 
        if (typeof(passedArgs['nick']) != 'undefined')
238
 
                nick = passedArgs['nick'];
239
 
        if(typeof(nick) == 'undefined' || nick == '')
240
 
                nick = srcW.roster.nick; // guess a nick
241
 
 
242
 
        meRegExp = new RegExp("\\b("+nick+")\\b","i");
243
 
        notHREFMeRegExp = new RegExp("href=\"\\S*\\b"+nick+"\\b\\S*\"","i");
244
 
 
245
 
        if (passedArgs['pass'] != 'undefined')
246
 
                pass = passedArgs['pass'];
 
234
  group = jid;
 
235
 
 
236
  if (typeof(passedArgs['nick']) != 'undefined')
 
237
    nick = passedArgs['nick'];
 
238
  if(typeof(nick) == 'undefined' || nick == '')
 
239
    nick = srcW.roster.nick; // guess a nick
 
240
 
 
241
  meRegExp = new RegExp("\\b("+nick+")\\b","i");
 
242
  notHREFMeRegExp = new RegExp("href=\"\\S*\\b"+nick+"\\b\\S*\"","i");
 
243
 
 
244
  if (passedArgs['pass'] != 'undefined')
 
245
    pass = passedArgs['pass'];
247
246
 
248
247
  srcW.Debug.log("groupchat room: "+jid+", nick: "+nick + ", pass: "+pass ,2);
249
248
  
250
 
        // send presence
251
 
        var aPresence = new JSJaCPresence();
252
 
        aPresence.setTo(group+'/'+nick);
253
 
 
254
 
        var x = aPresence.getDoc().createElement('x');
255
 
        x.setAttribute('xmlns','http://jabber.org/protocol/muc');
256
 
        if (typeof(pass) != 'undefined' && pass != '')
257
 
                x.appendChild(aPresence.getDoc().createElement('password')).appendChild(aPresence.getDoc().createTextNode(pass));
258
 
 
259
 
        aPresence.getNode().appendChild(x);
260
 
 
261
 
        if (srcW.onlstat != 'available' && srcW.onlstat != 'invisible')
262
 
                aPresence.setShow(srcW.onlstat);
263
 
 
264
 
        if (srcW.onlmsg != '')
265
 
                aPresence.setStatus(srcW.onlmsg);
266
 
 
267
 
        srcW.Debug.log("sending muc presence:\n"+aPresence.getDoc().xml,3);
268
 
 
269
 
        srcW.con.send(aPresence);
 
249
  // send presence
 
250
  var aPresence = new JSJaCPresence();
 
251
  aPresence.setTo(group+'/'+nick);
 
252
 
 
253
  var x = aPresence.getDoc().createElement('x');
 
254
  x.setAttribute('xmlns','http://jabber.org/protocol/muc');
 
255
  if (typeof(pass) != 'undefined' && pass != '')
 
256
    x.appendChild(aPresence.getDoc().createElement('password')).appendChild(aPresence.getDoc().createTextNode(pass));
 
257
 
 
258
  aPresence.getNode().appendChild(x);
 
259
 
 
260
  if (srcW.onlstat != 'available' && srcW.onlstat != 'invisible')
 
261
    aPresence.setShow(srcW.onlstat);
 
262
 
 
263
  if (srcW.onlmsg != '')
 
264
    aPresence.setStatus(srcW.onlmsg);
 
265
 
 
266
  srcW.Debug.log("sending muc presence:\n"+aPresence.getDoc().xml,3);
 
267
 
 
268
  srcW.con.send(aPresence);
270
269
  
271
270
  cFrame = frames.groupchatChat.groupchatIChat.document;
272
271
 
283
282
  roster = user.roster;
284
283
  //        user.roster.print();
285
284
  
286
 
        //  document.title += " - " + group;
 
285
  //  document.title += " - " + group;
287
286
  document.title = group+'/'+nick;
288
287
 
289
288
  popMsgs();
309
308
 
310
309
    <script for="document" event="onkeydown()" language="JScript">
311
310
      <!--
312
 
      if (window.event.keyCode == 27)
 
311
      if (window.event && window.event.keyCode == 27)
313
312
      window.close();
314
313
      //-->
315
314
    </script>
316
315
  </head>
317
316
 
318
 
                <frameset cols="75%,*" frameborder=2 framespacing=2 border=2 bordercolor=black>
319
 
                        <frameset rows="40,*,90" frameborder=2 framespacing=2 border=2 bordercolor=black>
320
 
                                <frame src="groupchat_top.html" name="groupchatTop" scrolling="no" />
321
 
                                <frame src="groupchat_chat.html" name="groupchatChat" scrolling="no" />
322
 
                                <frame src="groupchat_bottom.html" name="groupchatBottom" scrolling="no" />
323
 
      </frameset>
324
 
      <frame src="groupchat_roster.html" name="groupchatRoster" scrolling="no" />
 
317
  <frameset cols="75%,*" frameborder=2 framespacing=2 border=2 bordercolor=black>
 
318
    <frameset rows="40,*,90" frameborder=2 framespacing=2 border=2 bordercolor=black>
 
319
      <frame src="groupchat_top.html" name="groupchatTop" scrolling="no" />
 
320
        <frame src="groupchat_chat.html" name="groupchatChat" scrolling="no" />
 
321
          <frame src="groupchat_bottom.html" name="groupchatBottom" scrolling="no" />
325
322
    </frameset>
 
323
    <frame src="groupchat_roster.html" name="groupchatRoster" scrolling="no" />
 
324
  </frameset>
326
325
</html>