* fix NULL conditions in room sorters
[citadel.git] / webcit / static / roomops.js
1 /*
2  * Copyright 1998 - 2009 The Citadel Team
3  * Licensed under the GPL V3
4  */
5
6 // ROOM list vars:
7 var rooms = null;
8
9 // FLOOR list
10 var floors = null;
11
12 var roomsForFloors = new Array();
13 /* STRUCT KEYS */
14 /* LKRN etc. */
15 var RN_ROOM_NAME = 0;
16 var RN_ROOM_FLAG = 1;
17 var RN_FLOOR_NUM = 2;
18 var RN_LIST_ORDER = 3;
19 var RN_ACCESS_CONTROL = 4;
20 var RN_CUR_VIEW = 5;
21 var RN_DEF_VIEW = 6;
22 var RN_LAST_CHANGE = 7;
23
24 var QR_PRIVATE = 4;
25 var QR_MAILBOX = 16384;
26
27 var UA_KNOWN = 2;
28 var UA_GOTOALLOWED = 4;
29 var UA_HASNEWMSGS = 8;
30 var UA_ZAPPED = 16;
31
32 var VIEW_BBS = 0;
33 var VIEW_MAILBOX = 1;
34 var VIEW_ADDRESSBOOK = 2;
35 var VIEW_CALENDAR = 3;
36 var VIEW_TASKS = 4;
37 var VIEW_NOTES = 5;
38 var VIEW_WIKI = 6;
39 var VIEW_CALBRIEF = 7;
40 var VIEW_JOURNAL = 8;
41
42 function FillRooms(callback) {
43   var roomFlr = new Ajax.Request("json_roomflr", {method: 'get', onSuccess: function(transport) { ProcessRoomFlr(transport); callback.call(); }});
44 }
45 function ProcessRoomFlr(transport) {
46   var data = eval('('+transport.responseText+')');
47   floors = data["floors"];
48   rooms = data["rooms"];
49 }
50 function GetRoomsByFloorNum(flnum) {
51   var roomsForFloor = new Array();
52   var x=0;
53   for(var i=0; i<rooms.length; i++) {
54     var room = rooms[i];
55     var floornum = room[RN_FLOOR_NUM];
56     var flag = room[RN_ROOM_FLAG];
57     if (flnum == floornum && ((flag & QR_MAILBOX) != QR_MAILBOX)) {
58       roomsForFloor[x] = room;
59       x++;
60     }
61   }
62   return roomsForFloor;
63 }
64 function GetMailboxRooms() {
65   var roomsForFloor = new Array();
66   var x=0;
67   for(var i=0; i<rooms.length; i++) {
68     var room = rooms[i];
69     var floornum = room[RN_FLOOR_NUM];
70     var flag = room[RN_ROOM_FLAG];
71     if (floornum == -1) {
72       roomsForFloor[x] = room;
73       x++;
74     }
75   }
76   return roomsForFloor;
77 }