Finalize vcard editing:
[citadel.git] / webcit / tabs.c
index c9d1e60a8acf803432a8c3a8a45d956d82ae7c93..90dac77b0be8c8e7e5e614e2f57163510adc649d 100644 (file)
@@ -1,7 +1,3 @@
-/*
- * $Id$
- *
- */
 #include <stdarg.h>
 #define SHOW_ME_VAPPEND_PRINTF
 #include "webcit.h"
@@ -13,38 +9,38 @@ void tabbed_dialog(int num_tabs, char *tabnames[]) {
        int i;
 
        StrBufAppendPrintf(WC->trailing_javascript,
-               "var previously_selected_tab = '0';                                             "
-               "function tabsel(which_tab) {                                                   "
-               "       if (which_tab == previously_selected_tab) {                             "
-               "               return;                                                         "
-               "       }                                                                       "
-               "       $('tabdiv'+previously_selected_tab).style.display = 'none';             "
-               "       $('tabdiv'+which_tab).style.display = 'block';                          "
-               "       $('tabtd'+previously_selected_tab).className = 'tab_cell_edit';         "
-               "       $('tabtd'+which_tab).className = 'tab_cell_label';                      "
-               "       previously_selected_tab = which_tab;                                    "
-               "}                                                                              "
+               "var previously_selected_tab = '0';                                             \n"
+               "function tabsel(which_tab) {                                                   \n"
+               "       if (which_tab == previously_selected_tab) {                             \n"
+               "               return;                                                         \n"
+               "       }                                                                       \n"
+               "       $('tabdiv'+previously_selected_tab).style.display = 'none';             \n"
+               "       $('tabdiv'+which_tab).style.display = 'block';                          \n"
+               "       $('tabtd'+previously_selected_tab).className = 'tab_cell_edit';         \n"
+               "       $('tabtd'+which_tab).className = 'tab_cell_label';                      \n"
+               "       previously_selected_tab = which_tab;                                    \n"
+               "}                                                                              \n"
        );
 
-       wprintf("<table id=\"TheTabs\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"
+       wc_printf("<table id=\"TheTabs\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"
                "<tr align=\"center\" style=\"cursor:pointer\"><td>&nbsp;</td>"
        );
 
        for (i=0; i<num_tabs; ++i) {
-               wprintf("<td id=\"tabtd%d\" class=\"%s\" "
+               wc_printf("<td id=\"tabtd%d\" class=\"%s\" "
                        "onClick='tabsel(\"%d\");'"
                        ">",
                        i,
                        ( (i==0) ? "tab_cell_label" : "tab_cell_edit" ),
                        i
                        );
-               wprintf("%s", tabnames[i]);
-               wprintf("</td>");
+               wc_printf("%s", tabnames[i]);
+               wc_printf("</td>");
 
-               wprintf("<td>&nbsp;</td>\n");
+               wc_printf("<td>&nbsp;</td>\n");
        }
 
-       wprintf("</tr></table>\n");
+       wc_printf("</tr></table>\n");
 }
 
 /*
@@ -57,13 +53,13 @@ void tabbed_dialog(int num_tabs, char *tabnames[]) {
 void begin_tab(int tabnum, int num_tabs) {
 
        if (tabnum == num_tabs) {
-               wprintf("<!-- begin tab-common epilogue -->\n");
-               wprintf("<div class=\"tabcontent_submit\">");
+               wc_printf("<!-- begin tab-common epilogue -->\n");
+               wc_printf("<div class=\"tabcontent_submit\">");
        }
 
        else {
-               wprintf("<!-- begin tab %d of %d -->\n", tabnum, num_tabs);
-               wprintf("<div id=\"tabdiv%d\" style=\"display:%s\" class=\"tabcontent\" >",
+               wc_printf("<!-- begin tab %d of %d -->\n", tabnum, num_tabs);
+               wc_printf("<div id=\"tabdiv%d\" style=\"display:%s\" class=\"tabcontent\" >",
                        tabnum,
                        ( (tabnum == 0) ? "block" : "none" )
                );
@@ -79,20 +75,13 @@ void begin_tab(int tabnum, int num_tabs) {
 void end_tab(int tabnum, int num_tabs) {
 
        if (tabnum == num_tabs) {
-               wprintf("</div> <!-- end of 'tabcontent_submit' div -->\n");
-               wprintf("<!-- end tab-common epilogue -->\n");
+               wc_printf("</div> <!-- end of 'tabcontent_submit' div -->\n");
+               wc_printf("<!-- end tab-common epilogue -->\n");
        }
 
        else {
-               wprintf("</div>\n");
-               wprintf("<!-- end tab %d of %d -->\n", tabnum, num_tabs);
-       
-               if (tabnum == num_tabs-1) {
-                       wprintf("<script type=\"text/javascript\">"
-                               " Nifty(\"table#TheTabs td\", \"small transparent top\");"
-                               "</script>"
-                       );
-               }
+               wc_printf("</div>\n");
+               wc_printf("<!-- end tab %d of %d -->\n", tabnum, num_tabs);
        }
 }
 
@@ -158,22 +147,31 @@ void StrTabbedDialog(StrBuf *Target, int num_tabs, StrBuf *tabnames[]) {
  * num_tabs:    total number oftabs to be printed
  *
  */
-void StrBeginTab(StrBuf *Target, int tabnum, int num_tabs) {
+void StrBeginTab(StrBuf *Target, int tabnum, int num_tabs, StrBuf **Names) {
 
        if (tabnum == num_tabs) {
                StrBufAppendBufPlain(
                        Target, 
-                       HKEY(
-                               "<!-- begin tab-common epilogue -->\n"
-                               "<div class=\"tabcontent_submit\">"), 0);
+                       HKEY("<!-- begin tab-common epilogue ["), 0);
+               StrEscAppend(Target, Names[tabnum], NULL, 0, 2);
+               StrBufAppendBufPlain(
+                       Target, 
+                       HKEY("] -->\n<div class=\"tabcontent_submit\">"), 0);
        }
 
        else {
+               StrBufAppendBufPlain(
+                       Target, 
+                       HKEY("<!-- begin tab "), 0);
+               StrBufAppendPrintf(
+                       Target,  "%d of %d [",
+                       tabnum, num_tabs);
+               
+               StrEscAppend(Target, Names[tabnum], NULL, 0, 2);
+
                StrBufAppendPrintf(
                        Target, 
-                       "<!-- begin tab %d of %d -->\n"
-                       "<div id=\"tabdiv%d\" style=\"display:%s\" class=\"tabcontent\" >",
-                       tabnum, num_tabs, 
+                       "] -->\n<div id=\"tabdiv%d\" style=\"display:%s\" class=\"tabcontent\" >",
                        tabnum,
                        ( (tabnum == 0) ? "block" : "none" )
                        );
@@ -200,16 +198,12 @@ void StrEndTab(StrBuf *Target, int tabnum, int num_tabs) {
                StrBufAppendPrintf(
                        Target, 
                        "</div>\n",
-                       "<!-- end tab %d of %d -->\n", tabnum, num_tabs);
-       
-               if (tabnum == num_tabs-1) {
-                       StrBufAppendBufPlain(
-                               Target, 
-                               HKEY(
-                                       "<script type=\"text/javascript\">"
-                                       " Nifty(\"table#TheTabs td\", \"small transparent top\");"
-                                       "</script>"), 0);
-               }
+                       "<!-- end tab %d of %d -->\n", tabnum, num_tabs
+               );
+       }
+       if (havebstr("last_tabsel"))
+       {
+               StrBufAppendPrintf(Target, "<script type=\"text/javascript\">tabsel(%s);</script>", BSTR("last_tabsel"));
        }
 }