Room links in iconbar roomlist now properly escaped with encodeURIcomponent()
[citadel.git] / webcit / static / wclib.js
index 22ae75d6cc67a20127ddc1907ecb8bd61ec993ee..e8c0c4ee72c2aa1cd2df3f9e8132c02c284d9552 100644 (file)
@@ -176,6 +176,7 @@ function setupIconBar() {
        /* WARNING: VILE, SLEAZY HACK.  We determine the state of the box based on the image loaded. */
        if ( $('expand_roomlist').src.substring($('expand_roomlist').src.length - 12) == "collapse.gif" ) {
                $('roomlist').style.display = 'block';
+               $('roomlist').innerHTML = '';
                FillRooms(IconBarRoomList);
        }
        else {
@@ -269,7 +270,7 @@ function addRoomToList(floorUL,room, roomToEmphasize) {
   var hasNewMsgs = ((raflags & UA_HASNEWMSGS) == UA_HASNEWMSGS);
   var roomLI = document.createElement("li");
   var roomA = document.createElement("a");
-  roomA.setAttribute("href","dotgoto?room="+roomName);
+  roomA.setAttribute("href","dotgoto?room="+encodeURIComponent(roomName));
   roomA.appendChild(document.createTextNode(roomName));
   roomLI.appendChild(roomA);
   floorUL.appendChild(roomLI);
@@ -301,17 +302,26 @@ function addRoomToList(floorUL,room, roomToEmphasize) {
 
 function roomListDropHandler(target, dropped) {
   if (dropped.getAttribute("citadel:msgid")) {
-    var room = getTextContent(target);
-    var msgIds = "";
-    for(msgId in currentlyMarkedRows) { //defined in summaryview.js
-      msgIds += ","+msgId;
-    }
-    var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0");
-    new Ajax.Request('ajax_servcmd', {
-      method: 'post',
+      var room = getTextContent(target);
+      var msgIds = "";
+      for(msgId in currentlyMarkedRows) { //defined in summaryview.js
+         msgIds += ","+msgId;
+         if (msgIds.length > 800) {
+             var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0");
+             new Ajax.Request("ajax_servcmd", {
+                 parameters: mvCommand,
+                 method: 'post',
+             });
+             msgIds = "";
+         }
+
+      }
+      var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0");
+      new Ajax.Request('ajax_servcmd', {
+         method: 'post',
          parameters: mvCommand,
          onComplete: deleteAllMarkedRows()});
-    } 
+  }
 }
 function expandFloorEvent(event) {
   expandFloor(event.target);
@@ -859,6 +869,7 @@ function ConfirmLogoff() {
                'do_template?template=confirmlogoff',
                {
                        method: 'get',
+                       evalScripts: true,
                        onSuccess: function(cl_success) {
                                toggleModal(1);
                        }
@@ -879,13 +890,14 @@ function toggle_roomlist()
        /* WARNING: VILE, SLEAZY HACK.  We determine the state of the box based on the image loaded. */
        if ( $('expand_roomlist').src.substring($('expand_roomlist').src.length - 12) == "collapse.gif" ) {
                $('roomlist').style.display = 'none';
-               $('expand_roomlist').src = 'static/expand.gif';
+               $('expand_roomlist').src = 'static/webcit_icons/expand.gif';
                wstate=0;
        }
 
        else {
                $('roomlist').style.display = 'block';
-               $('expand_roomlist').src = 'static/collapse.gif';
+               $('expand_roomlist').src = 'static/webcit_icons/collapse.gif';
+               $('roomlist').innerHTML = '';
                FillRooms(IconBarRoomList);
                wstate=1;
        }
@@ -903,13 +915,13 @@ function toggle_wholist()
        /* WARNING: VILE, SLEAZY HACK.  We determine the state of the box based on the image loaded. */
        if ( $('expand_wholist').src.substring($('expand_wholist').src.length - 12) == "collapse.gif" ) {
                $('online_users').style.display = 'none';
-               $('expand_wholist').src = 'static/expand.gif';
+               $('expand_wholist').src = 'static/webcit_icons/expand.gif';
                wstate=0;
        }
 
        else {
                $('online_users').style.display = 'block';
-               $('expand_wholist').src = 'static/collapse.gif';
+               $('expand_wholist').src = 'static/webcit_icons/collapse.gif';
                activate_iconbar_wholist_populat0r();
                wstate=1;
        }