* move room listing related stuff into its own file
[citadel.git] / webcit / roomops.c
index 2018ab4310334384f1d7f34c616e1523f238afff..f6347c660fc165d6fef89d0260ff975c3065c6d0 100644 (file)
@@ -3538,227 +3538,6 @@ void set_room_policy(void) {
        display_editroom();
 }
 
-void DeleteFloor(void *vFloor)
-{
-       floor *Floor;
-       Floor = (floor*) vFloor;
-       FreeStrBuf(&Floor->Name);
-       free(Floor);
-}
-
-HashList *GetFloorListHash(StrBuf *Target, WCTemplputParams *TP) {
-       const char *Err;
-       StrBuf *Buf;
-       HashList *floors;
-       floor *Floor;
-       const char *Pos;
-       wcsession *WCC = WC;
-
-       if (WCC->Floors != NULL)
-               return WCC->Floors;
-       WCC->Floors = floors = NewHash(1, NULL);
-       Buf = NewStrBuf();
-       serv_puts("LFLR"); /* get floors */
-       StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err); /* '100', we hope */
-       if (GetServerStatus(Buf, NULL) == 1) 
-       {
-               while(StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err), strcmp(ChrPtr(Buf), "000")) 
-               {
-                       
-                       Pos = NULL;
-
-                       Floor = malloc(sizeof(floor));
-                       Floor->ID = StrBufExtractNext_long(Buf, &Pos, '|');
-                       Floor->Name = NewStrBufPlain(NULL, StrLength(Buf));
-                       StrBufExtract_NextToken(Floor->Name, Buf, &Pos, '|');
-                       Floor->NRooms = StrBufExtractNext_long(Buf, &Pos, '|');
-
-                       Put(floors, IKEY(Floor->ID), Floor, DeleteFloor);
-               }
-       }
-       FreeStrBuf(&Buf);
-       return floors;
-}
-
-void tmplput_FLOOR_ID(StrBuf *Target, WCTemplputParams *TP) 
-{
-       floor *Floor = (floor *)(TP->Context);
-
-       StrBufAppendPrintf(Target, "%d", Floor->ID);
-}
-
-void tmplput_FLOOR_NAME(StrBuf *Target, WCTemplputParams *TP) 
-{
-       floor *Floor = (floor *)(TP->Context);
-
-       StrBufAppendTemplate(Target, TP, Floor->Name, 0);
-}
-
-void tmplput_FLOOR_NROOMS(StrBuf *Target, WCTemplputParams *TP) 
-{
-       floor *Floor = (floor *)(TP->Context);
-
-       StrBufAppendPrintf(Target, "%d", Floor->NRooms);
-}
-HashList *GetRoomListHashLKRA(StrBuf *Target, WCTemplputParams *TP) 
-{
-       serv_puts("LKRA");
-       return GetRoomListHash(Target, TP);
-}
-
-void DeleteFolder(void *vFolder)
-{
-       folder *room;
-       room = (folder*) vFolder;
-
-       FreeStrBuf(&room->name);
-       FreeStrBuf(&room->ACL);
-
-       //// FreeStrBuf(&room->room);
-
-       free(room);
-}
-
-
-HashList *GetRoomListHash(StrBuf *Target, WCTemplputParams *TP) 
-{
-       /* TODO: Check context */
-       HashList *rooms;
-       folder *room;
-       StrBuf *Buf;
-       wcsession *WCC = WC;
-       const char *Pos;
-       const char *Err;
-       void *vFloor;
-
-       Buf = NewStrBuf();
-       rooms = NewHash(1, NULL);
-       StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err);
-       if (GetServerStatus(Buf, NULL) == 1) 
-       {
-               while(StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err), 
-                     strcmp(ChrPtr(Buf), "000")) 
-               {
-
-                       Pos = NULL;
-                       room = (folder*) malloc (sizeof(folder));
-                       memset(room, 0, sizeof(folder));
-
-                       room->name = NewStrBufPlain(NULL, StrLength(Buf));
-                       StrBufExtract_NextToken(room->name, Buf, &Pos, '|');
-
-                       room->QRFlags = StrBufExtractNext_long(Buf, &Pos, '|');
-                       room->floorid = StrBufExtractNext_long(Buf, &Pos, '|');
-
-                       room->listorder = StrBufExtractNext_long(Buf, &Pos, '|');
-
-                       room->ACL = NewStrBufPlain(NULL, StrLength(Buf));
-                       StrBufExtract_NextToken(room->ACL, Buf, &Pos, '|');
-
-                       room->view = StrBufExtractNext_long(Buf, &Pos, '|');
-                       room->defview = StrBufExtractNext_long(Buf, &Pos, '|');
-                       room->lastchange = StrBufExtractNext_long(Buf, &Pos, '|');
-
-
-                       GetHash(WCC->Floors, IKEY(room->floorid), &vFloor);
-                       room->Floor = (const floor*) vFloor;
-                       Put(rooms, SKEY(room->name), room, DeleteFolder);
-               }
-       }
-       SortByHashKey(rooms, 1);
-       /*SortByPayload(rooms, SortRoomsByListOrder);  */
-       FreeStrBuf(&Buf);
-       return rooms;
-}
-
-/** Unused function that orders rooms by the listorder flag */
-int SortRoomsByListOrder(const void *room1, const void *room2) 
-{
-       folder *r1 = (folder*) room1;
-       folder *r2 = (folder*) room2;
-  
-       if (r1->listorder == r2->listorder) return 0;
-       if (r1->listorder > r2->listorder) return 1;
-       return -1;
-}
-
-int SortRoomsByFloorAndName(const void *room1, const void *room2) 
-{
-       folder *r1 = (folder*) room1;
-       folder *r2 = (folder*) room2;
-  
-       if (r1->Floor != r2->Floor)
-               return strcmp(ChrPtr(r1->Floor->Name), 
-                             ChrPtr(r2->Floor->Name));
-       return strcmp (ChrPtr(r1->name), 
-                      ChrPtr(r2->name));
-}
-
-
-
-void tmplput_ROOM_NAME(StrBuf *Target, WCTemplputParams *TP) 
-{
-       folder *Folder = (folder *)(TP->Context);
-
-       StrBufAppendTemplate(Target, TP, Folder->name, 0);
-}
-
-void tmplput_ROOM_ACL(StrBuf *Target, WCTemplputParams *TP) 
-{
-       folder *Folder = (folder *)(TP->Context);
-
-       StrBufAppendTemplate(Target, TP, Folder->ACL, 0);
-}
-
-
-void tmplput_ROOM_QRFLAGS(StrBuf *Target, WCTemplputParams *TP) 
-{
-       folder *Folder = (folder *)(TP->Context);
-       StrBufAppendPrintf(Target, "%d", Folder->QRFlags);
-}
-
-
-
-void tmplput_ROOM_FLOORID(StrBuf *Target, WCTemplputParams *TP) 
-{
-       folder *Folder = (folder *)(TP->Context);
-       StrBufAppendPrintf(Target, "%d", Folder->floorid);
-}
-
-void tmplput_ROOM_LISTORDER(StrBuf *Target, WCTemplputParams *TP) 
-{
-       folder *Folder = (folder *)(TP->Context);
-       StrBufAppendPrintf(Target, "%d", Folder->listorder);
-}
-void tmplput_ROOM_VIEW(StrBuf *Target, WCTemplputParams *TP) 
-{
-       folder *Folder = (folder *)(TP->Context);
-       StrBufAppendPrintf(Target, "%d", Folder->view);
-}
-void tmplput_ROOM_DEFVIEW(StrBuf *Target, WCTemplputParams *TP) 
-{
-       folder *Folder = (folder *)(TP->Context);
-       StrBufAppendPrintf(Target, "%d", Folder->defview);
-}
-void tmplput_ROOM_LASTCHANGE(StrBuf *Target, WCTemplputParams *TP) 
-{
-       folder *Folder = (folder *)(TP->Context);
-       StrBufAppendPrintf(Target, "%d", Folder->lastchange);
-}
-
-void jsonRoomFlr(void) 
-{
-       /* Send as our own (application/json) content type */
-       hprintf("HTTP/1.1 200 OK\r\n");
-       hprintf("Content-type: application/json; charset=utf-8\r\n");
-       hprintf("Server: %s / %s\r\n", PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software));
-       hprintf("Connection: close\r\n");
-       hprintf("Pragma: no-cache\r\nCache-Control: no-store\r\nExpires:-1\r\n");
-       begin_burst();
-       DoTemplate(HKEY("json_roomflr"),NULL,&NoCtx);
-       end_burst(); 
-}
-
 void tmplput_RoomName(StrBuf *Target, WCTemplputParams *TP)
 {
        StrBufAppendTemplate(Target, TP, WC->wc_roomname, 0);
@@ -4004,7 +3783,6 @@ InitModule_ROOMOPS
        WebcitAddUrlHandler(HKEY("set_floordiv_expanded"), set_floordiv_expanded, NEED_URL|AJAX);
        WebcitAddUrlHandler(HKEY("changeview"), change_view, 0);
        WebcitAddUrlHandler(HKEY("toggle_self_service"), toggle_self_service, 0);
-       WebcitAddUrlHandler(HKEY("json_roomflr"), jsonRoomFlr, 0);
        RegisterNamespace("ROOMBANNER", 0, 1, tmplput_roombanner, 0);
 
        RegisterConditional(HKEY("COND:ROOM:TYPE_IS"), 0, ConditionalIsRoomtype, CTX_NONE);
@@ -4030,26 +3808,10 @@ InitModule_ROOMOPS
        RegisterNamespace("ROOM:UNGOTO", 0, 0, tmplput_ungoto, 0);
        RegisterIterator("FLOORS", 0, NULL, GetFloorListHash, NULL, NULL, CTX_FLOORS, CTX_NONE, IT_NOFLAG);
 
-       RegisterNamespace("FLOOR:ID", 0, 0, tmplput_FLOOR_ID, CTX_FLOORS);
-       RegisterNamespace("FLOOR:NAME", 0, 1, tmplput_FLOOR_NAME, CTX_FLOORS);
-       RegisterNamespace("FLOOR:NROOMS", 0, 0, tmplput_FLOOR_NROOMS, CTX_FLOORS);
-
 
-
-       RegisterIterator("LKRA", 0, NULL, GetRoomListHashLKRA, NULL, DeleteHash, CTX_ROOMS, CTX_NONE, IT_NOFLAG);
-
-       RegisterNamespace("ROOM:INFO:FLOORID", 0, 1, tmplput_ROOM_FLOORID, CTX_ROOMS);
-       RegisterNamespace("ROOM:INFO:NAME", 0, 1, tmplput_ROOM_NAME, CTX_ROOMS);
-       RegisterNamespace("ROOM:INFO:ACL", 0, 1, tmplput_ROOM_ACL, CTX_ROOMS);
-       RegisterNamespace("ROOM:INFO:QRFLAGS", 0, 1, tmplput_ROOM_QRFLAGS, CTX_ROOMS);
-       RegisterNamespace("ROOM:INFO:LISTORDER", 0, 1, tmplput_ROOM_LISTORDER, CTX_ROOMS);
-       RegisterNamespace("ROOM:INFO:VIEW", 0, 1, tmplput_ROOM_VIEW, CTX_ROOMS);
-       RegisterNamespace("ROOM:INFO:DEFVIEW", 0, 1, tmplput_ROOM_DEFVIEW, CTX_ROOMS);
-       RegisterNamespace("ROOM:INFO:LASTCHANGE", 0, 1, tmplput_ROOM_LASTCHANGE, CTX_ROOMS);
 }
 
 
-
 void 
 SessionDestroyModule_ROOMOPS
 (wcsession *sess)