]> code.citadel.org Git - citadel.git/blobdiff - webcit/roomops.c
* add first draft of group-change detection
[citadel.git] / webcit / roomops.c
index 2f4b0f1dff9a4104b31e58910321f4b3f3542015..1e20e12a168715079b037d8e906a2b8a824c8e2f 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;
 
@@ -489,7 +489,7 @@ void embed_room_banner(char *got, int navbar_style) {
                if (buf2[0] == '1') while (serv_getln(buf2, sizeof buf2), strcmp(buf2, "000"))
                        file_count++;
                snprintf (with_files, sizeof with_files, 
-                         "; <a href=\"display_room_directory\"> %d %s </a>", 
+                         "; <a href=\"do_template?template=files\"> %d %s </a>", 
                          file_count, 
                          ((file_count>1) || (file_count == 0)  ? _("files") : _("file")));
        }
@@ -509,7 +509,7 @@ void embed_room_banner(char *got, int navbar_style) {
        svcallback("START", offer_start_page); 
  
        do_template("roombanner", NULL);
-       // roombanner contains this for mobile
+       /* roombanner contains this for mobile */
        if (navbar_style != navbar_none && !WC->is_mobile) { 
 
                wprintf("<div id=\"navbar\"><ul>");
@@ -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];
@@ -1938,7 +1938,7 @@ void display_editroom(void)
 
                                wprintf("<td>%s</td>", extract_int(buf, 4) ? _("Yes") : _("No"));
 
-                               wprintf("<td>%ld</td>", extract_long(buf, 5));  // Fetching interval
+                               wprintf("<td>%ld</td>", extract_long(buf, 5));  /* Fetching interval */
                        
                                wprintf("<td class=\"button_link\">");
                                wprintf(" <a href=\"netedit&cmd=remove&tab=feeds&line=pop3client|");
@@ -2810,7 +2810,7 @@ void netedit(void) {
        char cmpb0[SIZ];
        char cmpb1[SIZ];
        int i, num_addrs;
-       // TODO: do line dynamic!
+       /*/ TODO: do line dynamic! */
        if (havebstr("line_pop3host")) {
                strcpy(line, bstr("prefix"));
                strcat(line, bstr("line_pop3host"));
@@ -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;
 }
@@ -3435,8 +3435,8 @@ void list_all_rooms_by_floor(const char *viewpref) {
                floor_mapping[fold[i].floor]=i;
        
        /** refresh the messages index for this room */
-//     serv_puts("GOTO ");
-//     while (serv_getln(buf, sizeof buf), strcmp(buf, "000"));
+/* TODO        serv_puts("GOTO ");
+   while (serv_getln(buf, sizeof buf), strcmp(buf, "000")); */
        /** Now add rooms */
        serv_puts("LKRA");
        serv_getln(buf, sizeof buf);
@@ -3659,6 +3659,7 @@ void tmplput_RoomName(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *
        StrBuf *tmp;
        tmp = NewStrBufPlain(WC->wc_roomname, -1);;
        StrBufAppendTemplate(Target, nArgs, Tokens, Context, ContextType, tmp, 0);
+       FreeStrBuf(&tmp);
 }
 
 void _gotonext(void) { slrp_highest(); gotonext(); }
@@ -3681,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)))
@@ -3691,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)) && 
@@ -3703,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));
@@ -3711,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));
@@ -3719,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));
@@ -3727,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));
@@ -3735,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));
@@ -3743,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));
@@ -3751,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));
@@ -3759,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));
@@ -3767,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));
@@ -3775,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));
@@ -3783,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));
@@ -3791,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));
@@ -3799,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));
@@ -3807,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));
@@ -3815,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));
@@ -3828,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) || 
@@ -3843,13 +3844,13 @@ InitModule_ROOMOPS
        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);
@@ -3864,6 +3865,7 @@ 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);
+       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);