]> code.citadel.org Git - citadel.git/blobdiff - webcit/roomops.c
* fix dropdown
[citadel.git] / webcit / roomops.c
index 93a6bfa5235bb010b07d05fe7849c02ae0739aa0..958c25d6e282bbd8a2e37463b00abb7e97981560 100644 (file)
@@ -79,7 +79,7 @@ void load_floorlist(void)
 /*
  * Free a session's march list
  */
-void free_march_list(struct wcsession *wcf)
+void free_march_list(wcsession *wcf)
 {
        struct march *mptr;
 
@@ -276,7 +276,7 @@ void zapped_list(void)
 /**
  * \brief read this room's info file (set v to 1 for verbose mode)
  */
-void readinfo(StrBuf *Target, int nArgs, WCTemplateToken *Token, void *Context, int ContextType)
+void readinfo(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType)
 {
        char buf[256];
        char briefinfo[128];
@@ -325,7 +325,7 @@ void readinfo(StrBuf *Target, int nArgs, WCTemplateToken *Token, void *Context,
  * keep the browser from using a cached icon from 
  * another room.
  */
-void embed_room_graphic(StrBuf *Target, int nArgs, WCTemplateToken *Token, void *Context, int ContextType) {
+void embed_room_graphic(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType) {
        char buf[SIZ];
 
        serv_puts("OIMG _roompic_");
@@ -381,7 +381,7 @@ void embed_room_graphic(StrBuf *Target, int nArgs, WCTemplateToken *Token, void
 /**
  * \brief Display the current view and offer an option to change it
  */
-void embed_view_o_matic(StrBuf *Target, int nArgs, WCTemplateToken *Token, void *Context, int ContextType) {
+void embed_view_o_matic(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType) {
        int i;
 
        wprintf("<form name=\"viewomatic\" action=\"changeview\">\n");
@@ -422,7 +422,7 @@ void embed_view_o_matic(StrBuf *Target, int nArgs, WCTemplateToken *Token, void
 /**
  * \brief Display a search box
  */
-void embed_search_o_matic(StrBuf *Target, int nArgs, WCTemplateToken *Token, void *Context, int ContextType) {
+void embed_search_o_matic(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType) {
        wprintf("<form name=\"searchomatic\" action=\"do_search\">\n");
        wprintf("<div style=\"display: inline;\"><input type=\"hidden\" name=\"nonce\" value=\"%d\">\n", WC->nonce);
        wprintf("<label for=\"search_name\">");
@@ -927,7 +927,7 @@ void gotonext(void)
  */
 void smart_goto(char *next_room) {
        gotoroom(next_room);
-       readloop("readnew");
+       readloop(readnew);
 }
 
 
@@ -1114,7 +1114,7 @@ void display_editroom(void)
        char node[256];
        char remote_room[128];
        char recp[1024];
-       char er_name[128];
+       char er_name[128] = "";
        char er_password[10];
        char er_dirname[15];
        char er_roomaide[26];
@@ -3197,11 +3197,11 @@ void do_rooms_view(struct folder *fold, int max_folders, int num_floors) {
  * \param which_floordiv name of the floordiv???
  */
 void set_floordiv_expanded(void) {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        StrBuf *FloorDiv;
        
        FloorDiv = NewStrBuf();
-       StrBufAppendBuf(FloorDiv, WCC->UrlFragment1, 0);
+       StrBufAppendBuf(FloorDiv, WCC->UrlFragment2, 0);
        set_preference("floordiv_expanded", FloorDiv, 1);
        WCC->floordiv_expanded = FloorDiv;
 }
@@ -3656,7 +3656,10 @@ void set_room_policy(void) {
 
 void tmplput_RoomName(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       StrEscAppend(Target, NULL, WC->wc_roomname, 1, 1);
+       StrBuf *tmp;
+       tmp = NewStrBufPlain(WC->wc_roomname, -1);;
+       StrBufAppendTemplate(Target, nArgs, Tokens, Context, ContextType, tmp, 0);
+       FreeStrBuf(&tmp);
 }
 
 void _gotonext(void) { slrp_highest(); gotonext(); }
@@ -3679,7 +3682,7 @@ void tmplput_roombanner(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void
 
 void tmplput_ungoto(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
 
        if ((WCC!=NULL) && 
            (!IsEmptyStr(WCC->ugname)))
@@ -3689,7 +3692,7 @@ void tmplput_ungoto(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Co
 
 int ConditionalHaveUngoto(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) && 
                (!IsEmptyStr(WCC->ugname)) && 
@@ -3701,7 +3704,7 @@ int ConditionalHaveUngoto(WCTemplateToken *Tokens, void *Context, int ContextTyp
 
 int ConditionalRoomHas_QR_PERMANENT(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_PERMANENT) != 0));
@@ -3709,7 +3712,7 @@ int ConditionalRoomHas_QR_PERMANENT(WCTemplateToken *Tokens, void *Context, int
 
 int ConditionalRoomHas_QR_INUSE(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_INUSE) != 0));
@@ -3717,7 +3720,7 @@ int ConditionalRoomHas_QR_INUSE(WCTemplateToken *Tokens, void *Context, int Cont
 
 int ConditionalRoomHas_QR_PRIVATE(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_PRIVATE) != 0));
@@ -3725,7 +3728,7 @@ int ConditionalRoomHas_QR_PRIVATE(WCTemplateToken *Tokens, void *Context, int Co
 
 int ConditionalRoomHas_QR_PASSWORDED(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_PASSWORDED) != 0));
@@ -3733,7 +3736,7 @@ int ConditionalRoomHas_QR_PASSWORDED(WCTemplateToken *Tokens, void *Context, int
 
 int ConditionalRoomHas_QR_GUESSNAME(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_GUESSNAME) != 0));
@@ -3741,7 +3744,7 @@ int ConditionalRoomHas_QR_GUESSNAME(WCTemplateToken *Tokens, void *Context, int
 
 int ConditionalRoomHas_QR_DIRECTORY(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_DIRECTORY) != 0));
@@ -3749,7 +3752,7 @@ int ConditionalRoomHas_QR_DIRECTORY(WCTemplateToken *Tokens, void *Context, int
 
 int ConditionalRoomHas_QR_UPLOAD(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_UPLOAD) != 0));
@@ -3757,7 +3760,7 @@ int ConditionalRoomHas_QR_UPLOAD(WCTemplateToken *Tokens, void *Context, int Con
 
 int ConditionalRoomHas_QR_DOWNLOAD(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_DOWNLOAD) != 0));
@@ -3765,7 +3768,7 @@ int ConditionalRoomHas_QR_DOWNLOAD(WCTemplateToken *Tokens, void *Context, int C
 
 int ConditionalRoomHas_QR_VISDIR(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_VISDIR) != 0));
@@ -3773,7 +3776,7 @@ int ConditionalRoomHas_QR_VISDIR(WCTemplateToken *Tokens, void *Context, int Con
 
 int ConditionalRoomHas_QR_ANONONLY(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_ANONONLY) != 0));
@@ -3781,7 +3784,7 @@ int ConditionalRoomHas_QR_ANONONLY(WCTemplateToken *Tokens, void *Context, int C
 
 int ConditionalRoomHas_QR_ANONOPT(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_ANONOPT) != 0));
@@ -3789,7 +3792,7 @@ int ConditionalRoomHas_QR_ANONOPT(WCTemplateToken *Tokens, void *Context, int Co
 
 int ConditionalRoomHas_QR_NETWORK(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_NETWORK) != 0));
@@ -3797,7 +3800,7 @@ int ConditionalRoomHas_QR_NETWORK(WCTemplateToken *Tokens, void *Context, int Co
 
 int ConditionalRoomHas_QR_PREFONLY(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_PREFONLY) != 0));
@@ -3805,7 +3808,7 @@ int ConditionalRoomHas_QR_PREFONLY(WCTemplateToken *Tokens, void *Context, int C
 
 int ConditionalRoomHas_QR_READONLY(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_READONLY) != 0));
@@ -3813,7 +3816,7 @@ int ConditionalRoomHas_QR_READONLY(WCTemplateToken *Tokens, void *Context, int C
 
 int ConditionalRoomHas_QR_MAILBOX(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        
        return ((WCC!=NULL) &&
                ((WCC->room_flags & QR_MAILBOX) != 0));
@@ -3826,7 +3829,7 @@ int ConditionalRoomHas_QR_MAILBOX(WCTemplateToken *Tokens, void *Context, int Co
 
 int ConditionalHaveRoomeditRights(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
 
        return ( (WCC!= NULL) && 
                 ((WCC->axlevel >= 6) || 
@@ -3838,16 +3841,16 @@ void
 InitModule_ROOMOPS
 (void)
 {
-       RegisterNamespace("ROOMNAME", 0, 0, tmplput_RoomName, 0);
+       RegisterNamespace("ROOMNAME", 0, 1, tmplput_RoomName, 0);
 
        WebcitAddUrlHandler(HKEY("knrooms"), knrooms, 0);
-       WebcitAddUrlHandler(HKEY("gotonext"), _gotonext, 0);
-       WebcitAddUrlHandler(HKEY("skip"), gotonext, 0);
-       WebcitAddUrlHandler(HKEY("ungoto"), ungoto, 0);
-       WebcitAddUrlHandler(HKEY("dotgoto"), dotgoto, 0);
-       WebcitAddUrlHandler(HKEY("dotskip"), dotskip, 0);
+       WebcitAddUrlHandler(HKEY("gotonext"), _gotonext, NEED_URL);
+       WebcitAddUrlHandler(HKEY("skip"), gotonext, NEED_URL);
+       WebcitAddUrlHandler(HKEY("ungoto"), ungoto, NEED_URL);
+       WebcitAddUrlHandler(HKEY("dotgoto"), dotgoto, NEED_URL);
+       WebcitAddUrlHandler(HKEY("dotskip"), dotskip, NEED_URL);
        WebcitAddUrlHandler(HKEY("display_private"), _display_private, 0);
-       WebcitAddUrlHandler(HKEY("goto_private"), goto_private, 0);
+       WebcitAddUrlHandler(HKEY("goto_private"), goto_private, NEED_URL);
        WebcitAddUrlHandler(HKEY("zapped_list"), zapped_list, 0);
        WebcitAddUrlHandler(HKEY("display_zap"), display_zap, 0);
        WebcitAddUrlHandler(HKEY("zap"), zap, 0);
@@ -3862,7 +3865,8 @@ InitModule_ROOMOPS
        WebcitAddUrlHandler(HKEY("set_room_policy"), set_room_policy, 0);
        WebcitAddUrlHandler(HKEY("set_floordiv_expanded"), set_floordiv_expanded, NEED_URL|AJAX);
        WebcitAddUrlHandler(HKEY("changeview"), change_view, 0);
-       RegisterNamespace("ROOMBANNER", 0, 0, tmplput_roombanner, 0);
+       WebcitAddUrlHandler(HKEY("toggle_self_service"), toggle_self_service, 0);
+       RegisterNamespace("ROOMBANNER", 0, 1, tmplput_roombanner, 0);
 
        RegisterConditional(HKEY("COND:ROOM:FLAGS:QR_PERMANENT"), 0, ConditionalRoomHas_QR_PERMANENT, CTX_NONE);
        RegisterConditional(HKEY("COND:ROOM:FLAGS:QR_INUSE"), 0, ConditionalRoomHas_QR_INUSE, CTX_NONE);