Some changes to view vs. default view behavior.
authorArt Cancro <ajc@citadel.org>
Tue, 7 Feb 2006 17:03:41 +0000 (17:03 +0000)
committerArt Cancro <ajc@citadel.org>
Tue, 7 Feb 2006 17:03:41 +0000 (17:03 +0000)
This is to support the new Calendar List view without destroying the server behavior
for Calendar rooms.

webcit/messages.c
webcit/roomops.c
webcit/summary.c

index ec3e13ff9580a051e0a54e8150a9faa68a3ad9de..b8b5bea665b59834f8dc01aa822d285f22e5e1b1 100644 (file)
@@ -2078,18 +2078,17 @@ void readloop(char *oper)
 
        is_singlecard = atoi(bstr("is_singlecard"));
 
-       if ((WC->wc_view == VIEW_CALENDAR) ||
-               (WC->wc_view == VIEW_CALBRIEF)){                /**< calendar */
+       if (WC->wc_default_view == VIEW_CALENDAR) {             /**< calendar */
                is_calendar = 1;
                strcpy(cmd, "MSGS ALL");
                maxmsgs = 32767;
        }
-       if (WC->wc_view == VIEW_TASKS) {                /**< tasks */
+       if (WC->wc_default_view == VIEW_TASKS) {                /**< tasks */
                is_tasks = 1;
                strcpy(cmd, "MSGS ALL");
                maxmsgs = 32767;
        }
-       if (WC->wc_view == VIEW_NOTES) {                /**< notes */
+       if (WC->wc_default_view == VIEW_NOTES) {                /**< notes */
                is_notes = 1;
                strcpy(cmd, "MSGS ALL");
                maxmsgs = 32767;
@@ -2672,18 +2671,17 @@ void display_enter(void)
         * Are we perhaps in an address book view?  If so, then an "enter
         * message" command really means "add new entry."
         */
-       if (WC->wc_view == VIEW_ADDRESSBOOK) {
+       if (WC->wc_default_view == VIEW_ADDRESSBOOK) {
                do_edit_vcard(-1, "", "");
                return;
        }
 
 #ifdef WEBCIT_WITH_CALENDAR_SERVICE
        /**
-        * Are we perhaps in a calendar view?  If so, then an "enter
+        * Are we perhaps in a calendar room?  If so, then an "enter
         * message" command really means "add new calendar item."
         */
-       if ((WC->wc_view == VIEW_CALENDAR) ||
-               (WC->wc_view == VIEW_CALBRIEF)){
+       if (WC->wc_default_view == VIEW_CALENDAR) {
                display_edit_event();
                return;
        }
@@ -2692,7 +2690,7 @@ void display_enter(void)
         * Are we perhaps in a tasks view?  If so, then an "enter
         * message" command really means "add new task."
         */
-       if (WC->wc_view == VIEW_TASKS) {
+       if (WC->wc_default_view == VIEW_TASKS) {
                display_edit_task();
                return;
        }
index 23bb57d2eafa22d0b734e8ddb115e5c83ff65da7..382339e43e6da6f4a31d7c3e7b94d4ef6aa318ee 100644 (file)
@@ -26,6 +26,26 @@ void initialize_viewdefs(void) {
        viewdefs[7] = _("Calendar List");
 }
 
+/**
+ * \brief      Determine which views are allowed as the default for creating a new room.
+ *
+ * \param      which_view      The view ID being queried.
+ */
+int is_view_allowed_as_default(int which_view)
+{
+       switch(which_view) {
+               case VIEW_BBS:          return(1);
+               case VIEW_MAILBOX:      return(1);
+               case VIEW_ADDRESSBOOK:  return(1);
+               case VIEW_CALENDAR:     return(1);
+               case VIEW_TASKS:        return(1);
+               case VIEW_NOTES:        return(1);
+               case VIEW_WIKI:         return(0);      /**< because it isn't finished yet */
+               case VIEW_CALBRIEF:     return(0);
+               default:                return(0);      /**< should never get here */
+       }
+}
+
 
 /**
  * \brief load the list of floors
@@ -273,7 +293,7 @@ void embed_room_graphic(void) {
                        "\">"
                );
        }
-       else if (WC->wc_view == VIEW_CALENDAR) {
+       else if ( (WC->wc_view == VIEW_CALENDAR) || (WC->wc_view == VIEW_CALBRIEF) ) {
                wprintf("<img height=48 width=48 src=\""
                        "static/calarea_48x.gif"
                        "\">"
@@ -331,10 +351,10 @@ void embed_view_o_matic(void) {
                 */
                if (
                        (i == WC->wc_view)
-                       ||      (i == WC->wc_default_view) /**< default */
-                       ||      ( (i == 0) && (WC->wc_default_view == 1) ) /**< mail or bulletin */
-                       ||      ( (i == 1) && (WC->wc_default_view == 0) ) /**< mail or bulletin */
-                       ||  ( (i == 7) && (WC->wc_default_view == 3) ) /**< calendar */
+                       ||      (i == WC->wc_default_view)                      /**< default */
+                       ||      ( (i == 0) && (WC->wc_default_view == 1) )      /**< mail or bulletin */
+                       ||      ( (i == 1) && (WC->wc_default_view == 0) )      /**< mail or bulletin */
+                       ||      ( (i == 7) && (WC->wc_default_view == 3) )      /**< calendar */
                ) {
 
                        wprintf("<OPTION %s VALUE=\"changeview?view=%d\">",
@@ -454,6 +474,17 @@ void embed_room_banner(char *got, int navbar_style) {
                                                "</span></a></td>\n", _("Month view")
                                        );
                                        break;
+                               case VIEW_CALBRIEF:
+                                       wprintf(
+                                               "<td>"
+                                               "<a href=\"readfwd?calview=month\">"
+                                               "<img align=\"middle\" src=\"static/monthview2_24x.gif\" "
+                                               "border=\"0\">"
+                                               "<span class=\"navbar_link\">"
+                                               "%s"
+                                               "</span></a></td>\n", _("Calendar list")
+                                       );
+                                       break;
                                case VIEW_TASKS:
                                        wprintf(
                                                "<td>"
@@ -524,6 +555,7 @@ void embed_room_banner(char *got, int navbar_style) {
                                        );
                                        break;
                                case VIEW_CALENDAR:
+                               case VIEW_CALBRIEF:
                                        wprintf(
                                                "<td><a href=\"display_enter\">"
                                                "<img align=\"middle\" src=\"static/addevent_24x.gif\" "
@@ -1936,10 +1968,12 @@ void display_entroom(void)
                "       }                                               "
                "\">\n");
        for (i=0; i<(sizeof viewdefs / sizeof (char *)); ++i) {
-               wprintf("<OPTION %s VALUE=\"%d\">",
-                       ((i == 0) ? "SELECTED" : ""), i );
-               escputs(viewdefs[i]);
-               wprintf("</OPTION>\n");
+               if (is_view_allowed_as_default(i)) {
+                       wprintf("<OPTION %s VALUE=\"%d\">",
+                               ((i == 0) ? "SELECTED" : ""), i );
+                       escputs(viewdefs[i]);
+                       wprintf("</OPTION>\n");
+               }
        }
        wprintf("</SELECT>\n");
 
@@ -2474,6 +2508,9 @@ void do_folder_view(struct folder *fold, int max_folders, int num_floors) {
                else if (fold[i].view == VIEW_CALENDAR) {
                        wprintf("'static/calarea_16x.gif'");
                }
+               else if (fold[i].view == VIEW_CALBRIEF) {
+                       wprintf("'static/calarea_16x.gif'");
+               }
                else if (fold[i].view == VIEW_TASKS) {
                        wprintf("'static/taskmanag_16x.gif'");
                }
@@ -2681,6 +2718,9 @@ void do_iconbar_view(struct folder *fold, int max_folders, int num_floors) {
                        else if (fold[i].view == VIEW_CALENDAR) {
                                icon = "calarea_16x.gif" ;
                        }
+                       else if (fold[i].view == VIEW_CALBRIEF) {
+                               icon = "calarea_16x.gif" ;
+                       }
                        else if (fold[i].view == VIEW_TASKS) {
                                icon = "taskmanag_16x.gif" ;
                        }
index 1146f51540d3148ebb9fa384cbc80a58fabcb5a8..77f6cd5027ac12d225833ea00e934b943d2c2ec4 100644 (file)
@@ -179,7 +179,7 @@ void calendar_section(void) {
        do_template("beginbox");
 #ifdef WEBCIT_WITH_CALENDAR_SERVICE
        gotoroom("_CALENDAR_");
-       if (WC->wc_view != VIEW_CALENDAR) {
+       if ( (WC->wc_view != VIEW_CALENDAR) && (WC->wc_view != VIEW_CALBRIEF) ) {
                num_msgs = 0;
        }
        else {