Readloop remove special cases
[citadel.git] / webcit / blogview_renderer.c
index 83a8359882bc309437dcb55d0fb50e9c1e2762f4..70fa908ae97b9e787a0c554a1cac6cba6e3d2e55 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "webcit.h"
 #include "webserver.h"
-#include "groupdav.h"
+#include "dav.h"
 
 
 /*
@@ -69,7 +69,7 @@ void blogpost_render(struct blogpost *bp, int with_comments)
                for (i=1; i<bp->num_msgs; ++i) {
                        read_message(WC->WBuf, HKEY("view_blog_comment"), bp->msgs[i], NULL, &Mime);
                }
-               do_template("blog_comment_box");
+               do_template("view_blog_comment_box");
        }
 
        else {
@@ -104,7 +104,9 @@ int blogview_GetParamsGetServerCall(SharedMessageStatus *Stat,
                                   void **ViewSpecific, 
                                   long oper, 
                                   char *cmd, 
-                                  long len)
+                                   long len,
+                                   char *filter,
+                                   long flen)
 {
        HashList *BLOG = NewHash(1, NULL);
        *ViewSpecific = BLOG;
@@ -214,6 +216,9 @@ int blogview_LoadMsgFromServer(SharedMessageStatus *Stat,
                }
                bp->msgs[bp->num_msgs++] = Msg->msgnum;
        }
+       else {
+               syslog(LOG_DEBUG, "** comment %ld is unparented", Msg->msgnum);
+       }
 
        return 200;
 }
@@ -279,11 +284,11 @@ int blogview_render(SharedMessageStatus *Stat, void **ViewSpecific, long oper)
         * which they point are still owned by the hash list.
         */
        if (num_blogposts > 0) {
+               int start_here = 0;
                /* Sort newest-to-oldest */
                qsort(blogposts, num_blogposts, sizeof(void *), blogview_sortfunc);
 
                /* allow the user to select a starting point in the list */
-               int start_here = 0;
                for (i=0; i<num_blogposts; ++i) {
                        if (blogposts[i]->top_level_id == firstp) {
                                start_here = i;
@@ -294,7 +299,23 @@ int blogview_render(SharedMessageStatus *Stat, void **ViewSpecific, long oper)
 
                /* Now go through the list and render what we've got */
                for (i=start_here; i<num_blogposts; ++i) {
-                       blogpost_render(blogposts[i], with_comments);
+                       if ((i > 0) && (i == start_here)) {
+                               int j = i - maxp;
+                               if (j < 0) j = 0;
+                               wc_printf("<div class=\"newer_blog_posts\"><a href=\"readfwd?go=");
+                               urlescputs(ChrPtr(WC->CurRoom.name));
+                               wc_printf("?firstp=%d?maxp=%d\">", blogposts[j]->top_level_id, maxp);
+                               wc_printf("%s →</a></div>\n", _("Newer posts"));
+                       }
+                       if (i < (start_here + maxp)) {
+                               blogpost_render(blogposts[i], with_comments);
+                       }
+                       else if (i == (start_here + maxp)) {
+                               wc_printf("<div class=\"older_blog_posts\"><a href=\"readfwd?go=");
+                               urlescputs(ChrPtr(WC->CurRoom.name));
+                               wc_printf("?firstp=%d?maxp=%d\">", blogposts[i]->top_level_id, maxp);
+                               wc_printf("← %s</a></div>\n", _("Older posts"));
+                       }
                }
 
                /* Done.  We are only freeing the array of pointers; the data itself
@@ -326,6 +347,7 @@ InitModule_BLOGVIEWRENDERERS
                VIEW_BLOG,
                blogview_GetParamsGetServerCall,
                NULL,
+               NULL,
                NULL, 
                blogview_LoadMsgFromServer,
                blogview_render,