e91b386fea6fdae23058a8202bec79268e3fd5e4
[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 var RN_RAFLAGS = 8;
24
25 var QR_PRIVATE = 4;
26 var QR_MAILBOX = 16384;
27
28 var UA_KNOWN = 2;
29 var UA_GOTOALLOWED = 4;
30 var UA_HASNEWMSGS = 8;
31 var UA_ZAPPED = 16;
32
33 var VIEW_BBS = 0;
34 var VIEW_MAILBOX = 1;
35 var VIEW_ADDRESSBOOK = 2;
36 var VIEW_CALENDAR = 3;
37 var VIEW_TASKS = 4;
38 var VIEW_NOTES = 5;
39 var VIEW_WIKI = 6;
40 var VIEW_CALBRIEF = 7;
41 var VIEW_JOURNAL = 8;
42
43 function FillRooms(callback) {
44   var roomFlr = new Ajax.Request("json_roomflr?SortBy=byfloorroom?SortOrder=1", {method: 'get', onSuccess: function(transport) { ProcessRoomFlr(transport); callback.call(); }});
45 }
46 function ProcessRoomFlr(transport) {
47   var data = eval('('+transport.responseText+')');
48   floors = data["floors"];
49   rooms = data["rooms"];
50 }
51 function GetRoomsByFloorNum(flnum) {
52   var roomsForFloor = new Array();
53   var x=0;
54   for(var i=0; i<rooms.length; i++) {
55     var room = rooms[i];
56     var floornum = room[RN_FLOOR_NUM];
57     var flag = room[RN_ROOM_FLAG];
58     if (flnum == floornum && ((flag & QR_MAILBOX) != QR_MAILBOX)) {
59       roomsForFloor[x] = room;
60       x++;
61     }
62   }
63   return roomsForFloor;
64 }
65 function GetMailboxRooms() {
66   var roomsForFloor = new Array();
67   var x=0;
68   for(var i=0; i<rooms.length; i++) {
69     var room = rooms[i];
70     var floornum = room[RN_FLOOR_NUM];
71     var flag = room[RN_ROOM_FLAG];
72     if (floornum == -1) {
73       roomsForFloor[x] = room;
74       x++;
75     }
76   }
77   return roomsForFloor;
78 }
79
80 /*
81  * function to delete a comment from a blog post
82  */
83 function DeleteBlogComment(msgnum) {
84         cmd = encodeURI("g_cmd=DELE " + msgnum);
85         new Ajax.Request("ajax_servcmd", { 
86                 parameters: cmd,
87                 method: 'post',
88                 onSuccess: function(transport) {
89                 Effect.BlindUp('blog_comment_' + msgnum);
90                 }
91         });
92 }