* fix NULL conditions in room sorters
authorWilfried Göesgens <willi@citadel.org>
Thu, 3 Sep 2009 21:41:07 +0000 (21:41 +0000)
committerWilfried Göesgens <willi@citadel.org>
Thu, 3 Sep 2009 21:41:07 +0000 (21:41 +0000)
* connect the server side virtual "my folders" floor to the js representation

webcit/roomlist.c
webcit/static/roomops.js
webcit/static/wclib.js

index e915616a4c071e4293e0b428c3c92fd91c0f898b..c58e43c41ca9a77b84259bfdce62de990f3f9326 100644 (file)
@@ -240,6 +240,10 @@ int CompareRoomListByFloorRoomPrivFirst(const void *room1, const void *room2)
        folder *r1 = (folder*) GetSearchPayload(room1);
        folder *r2 = (folder*) GetSearchPayload(room2);
   
+       if ((r1->Floor == NULL)  ||
+           (r2->Floor == NULL))
+               return 0;
+               
        /**
         * are we on the same floor? else sort by floor.
         */
@@ -304,6 +308,10 @@ int CompareRoomListByFloorRoomPrivFirstRev(const void *room1, const void *room2)
        folder *r1 = (folder*) GetSearchPayload(room1);
        folder *r2 = (folder*) GetSearchPayload(room2);
   
+       if ((r1->Floor == NULL)  ||
+           (r2->Floor == NULL))
+               return 0;
+               
        /**
         * are we on the same floor? else sort by floor.
         */
@@ -376,6 +384,10 @@ int GroupchangeRoomListByFloorRoomPrivFirst(const void *room1, const void *room2
        folder *r2 = (folder*) room2;
   
 
+       if ((r1->Floor == NULL)  ||
+           (r2->Floor == NULL))
+               return 0;
+               
        if (r1->Floor == r2->Floor)
                return 0;
        else 
index 0f43dbdc8e4bf2373f77f50d74922f992a4a6574..449057f84ab661ee4e7cc95cbdefa6dbb0e10fa0 100644 (file)
@@ -68,7 +68,7 @@ function GetMailboxRooms() {
     var room = rooms[i];
     var floornum = room[RN_FLOOR_NUM];
     var flag = room[RN_ROOM_FLAG];
-    if ((flag & QR_MAILBOX) == QR_MAILBOX) {
+    if (floornum == -1) {
       roomsForFloor[x] = room;
       x++;
     }
index 77b07f5f89a5125bb42949c14b6d444e6d412d7b..66df5b699316d705ae9e36c3a84d16bc614c0577 100644 (file)
@@ -234,32 +234,37 @@ function IconBarRoomList() {
   mailboxLI.appendChild(mailboxUL);
   var mailboxRooms = GetMailboxRooms();
   for(var i=0; i<mailboxRooms.length; i++) {
-    var room = mailboxRooms[i];
-    currentDropTargets.push(addRoomToList(mailboxUL, room, curRoomName));
+         var room = mailboxRooms[i];
+         currentDropTargets.push(addRoomToList(mailboxUL, room, curRoomName));
   }
   if (currentExpanded != null && currentExpanded == _mailbox ) {
-    expandFloor(mailboxSPAN);
+         expandFloor(mailboxSPAN);
   }
   for(var a=0; a<floors.length; a++) {
-    var floor = floors[a];
-    var floornum = floor[0];
-    var name = floor[1];
-    var floorLI = document.createElement("li");
-    ul.appendChild(floorLI);
-    var floorSPAN = document.createElement("span");
-    floorSPAN.appendChild(document.createTextNode(name));
-    $(floorSPAN).observe('click', expandFloorEvent);
-    floorLI.appendChild(floorSPAN);
-    floorLI.className = "floor";
-    var floorUL = document.createElement("ul");
-    floorLI.appendChild(floorUL);
-    var roomsForFloor = GetRoomsByFloorNum(floornum);
-    for(var b=0; b<roomsForFloor.length; b++) {
-      var room = roomsForFloor[b];
-      currentDropTargets.push(addRoomToList(floorUL, room, curRoomName));
-    }
-    if (currentExpanded != null && currentExpanded == name) {
-      expandFloor(floorSPAN);
+         var floor = floors[a];
+         var floornum = floor[0];
+    
+         if (floornum != -1)
+         {
+
+                 var name = floor[1];
+                 var floorLI = document.createElement("li");
+                 ul.appendChild(floorLI);
+                 var floorSPAN = document.createElement("span");
+                 floorSPAN.appendChild(document.createTextNode(name));
+                 $(floorSPAN).observe('click', expandFloorEvent);
+                 floorLI.appendChild(floorSPAN);
+                 floorLI.className = "floor";
+                 var floorUL = document.createElement("ul");
+                 floorLI.appendChild(floorUL);
+                 var roomsForFloor = GetRoomsByFloorNum(floornum);
+                 for(var b=0; b<roomsForFloor.length; b++) {
+                         var room = roomsForFloor[b];
+                         currentDropTargets.push(addRoomToList(floorUL, room, curRoomName));
+                 }
+                 if (currentExpanded != null && currentExpanded == name) {
+                         expandFloor(floorSPAN);
+                 }
     }
   }
 }