-function GenericTreeRoomList(roomlist) {
- var currentExpanded = ctdlLocalPrefs.readPref("rooms_expanded");
- var curRoomName = "";
- if (document.getElementById("rmname")) {
- curRoomName = getTextContent(document.getElementById("rmname"));
- }
- currentDropTargets = new Array();
- var iconbar = document.getElementById("iconbar");
- var ul = document.createElement("ul");
- roomlist.appendChild(ul);
- // Add mailbox, because they are special
- var mailboxLI = document.createElement("li");
- ul.appendChild(mailboxLI);
- var mailboxSPAN = document.createElement("span");
- var _mailbox = getTextContent(document.getElementById("mbox_template"));
- mailboxSPAN.appendChild(document.createTextNode(_mailbox));
- $(mailboxSPAN).observe('click', expandFloorEvent);
- mailboxLI.appendChild(mailboxSPAN);
- mailboxLI.className = "floor";
- var mailboxUL = document.createElement("ul");
- mailboxLI.appendChild(mailboxUL);
- var mailboxRooms = GetMailboxRooms();
- for(var i=0; i<mailboxRooms.length; i++) {
- var room = mailboxRooms[i];
- currentDropTargets.push(addRoomToList(mailboxUL, room, curRoomName));
- }
- if (currentExpanded != null && currentExpanded == _mailbox ) {
- expandFloor(mailboxSPAN);
- }
- for(var a=0; a<floors.length; a++) {
- 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);
- }
- }
- }
-}
-function IconBarRoomList() {
- roomlist = document.getElementById("roomlist");
- GenericTreeRoomList(roomlist);
-}
-function KNRoomsRoomList() {
- roomlist = document.getElementById("roomlist_knrooms");
- GenericTreeRoomList(roomlist);
-}
-
-function addRoomToList(floorUL,room, roomToEmphasize) {
- var roomName = room[RN_ROOM_NAME];
- var flag = room[RN_ROOM_FLAG];
- var curView = room[RN_CUR_VIEW];
- var view = room[RN_DEF_VIEW];
- var raflags = room[RN_RAFLAGS];
- var isMailBox = ((flag & QR_MAILBOX) == QR_MAILBOX);
- var hasNewMsgs = ((raflags & UA_HASNEWMSGS) == UA_HASNEWMSGS);
- var roomLI = document.createElement("li");
- var roomA = document.createElement("a");
- roomA.setAttribute("href","dotgoto?room="+encodeURIComponent(roomName));
- roomA.appendChild(document.createTextNode(roomName));
- roomLI.appendChild(roomA);
- floorUL.appendChild(roomLI);
- var className = "room ";
- if (view == VIEW_MAILBOX) {
- className += "room-private"
- } else if (view == VIEW_ADDRESSBOOK) {
- className += "room-addr";
- } else if (view == VIEW_CALENDAR || view == VIEW_CALBRIEF) {
- className += "room-cal";
- } else if (view == VIEW_TASKS) {
- className += "room-tasks";
- } else if (view == VIEW_NOTES) {
- className += "room-notes";
- } else {
- className += "room-chat";
- }
- if (hasNewMsgs) {
- className += " room-newmsgs";
- }
- if (roomName == roomToEmphasize) {
- className += " room-emphasized";
- }
- roomLI.setAttribute("class", className);
- roomA.dropTarget = true;
- roomA.dropHandler = roomListDropHandler;
- return roomLI;
-}
-
-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;
- if (msgIds.length > 800) {
- var mvCommand = "g_cmd=MOVE%20" + msgIds + "|"+encodeURIComponent(room)+"|0";
- new Ajax.Request("ajax_servcmd", {
- parameters: mvCommand,
- method: 'post',
- });
- msgIds = "";
- }
-
- }
- var mvCommand = "g_cmd=MOVE%20" + msgIds + "|"+encodeURIComponent(room)+"|0";
- new Ajax.Request('ajax_servcmd', {
- method: 'post',
- parameters: mvCommand,
- onComplete: deleteAllMarkedRows()});
- }
-}
-function expandFloorEvent(event) {
- expandFloor(event.target);
-}
-function expandFloor(target) {
- if (target.nodeName.toLowerCase() != "span") {
- return; // ignore clicks on child UL
- }
- ctdlLocalPrefs.setPref("rooms_expanded", target.firstChild.nodeValue);
- var parentUL = target.parentNode;
- if (currentlyExpandedFloor != null) {
- currentlyExpandedFloor.className = currentlyExpandedFloor.className.replace("floor-expanded","");
- }
- parentUL.className = parentUL.className + " floor-expanded";
- currentlyExpandedFloor = parentUL;
-}