* fix_scrollbar_bug is now a class instead of an id. Fixes validator warnings.
[citadel.git] / webcit / floors.c
1 /*
2  * $Id$
3  *
4  * Administrative screens for floor maintenance
5  *
6  */
7
8
9 #include "webcit.h"
10 #include "webserver.h"
11
12
13
14
15 /*
16  * Display floor configuration.  If prepend_html is not NULL, its contents
17  * will be displayed at the top of the screen.
18  */
19 void display_floorconfig(char *prepend_html)
20 {
21         char buf[SIZ];
22
23         int floornum;
24         char floorname[SIZ];
25         int refcount;
26
27         output_headers(1, 1, 2, 0, 0, 0);
28         wprintf("<div id=\"banner\">\n"
29                 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
30                 "<SPAN CLASS=\"titlebar\">");
31         wprintf(_("Add/change/delete floors"));
32         wprintf("</SPAN>"
33                 "</TD></TR></TABLE>\n"
34                 "</div>\n<div id=\"content\">\n"
35         );
36                                                                                                                              
37         if (prepend_html != NULL) {
38                 wprintf("<br /><b><i>");
39                 client_write(prepend_html, strlen(prepend_html));
40                 wprintf("</i></b><br /><br />\n");
41         }
42
43         serv_printf("LFLR");
44         serv_getln(buf, sizeof buf);
45         if (buf[0] != '1') {
46                 wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#770000\"><TR><TD>");
47                 wprintf("<SPAN CLASS=\"titlebar\">");
48                 wprintf(_("Error"));
49                 wprintf("</SPAN>\n");
50                 wprintf("</TD></TR></TABLE>\n");
51                 wprintf("%s<br />\n", &buf[4]);
52                 wDumpContent(1);
53                 return;
54         }
55
56         wprintf("<div class=\"fix_scrollbar_bug\">"
57                 "<TABLE BORDER=1 WIDTH=100%% bgcolor=\"#ffffff\">\n"
58                 "<TR><TH>");
59         wprintf(_("Floor number"));
60         wprintf("</TH><TH>");
61         wprintf(_("Floor name"));
62         wprintf("</TH><TH>");
63         wprintf(_("Number of rooms"));
64         wprintf("</TH></TR>\n");
65
66         while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
67                 floornum = extract_int(buf, 0);
68                 extract_token(floorname, buf, 1, '|', sizeof floorname);
69                 refcount = extract_int(buf, 2);
70
71                 wprintf("<TR><TD><TABLE border=0><TR><TD>%d", floornum);
72                 if (refcount == 0) {
73                         wprintf("</TD><TD>"
74                                 "<a href=\"delete_floor?floornum=%d\">"
75                                 "<FONT SIZE=-1>", floornum);
76                         wprintf(_("(delete floor)"));
77                         wprintf("</A></FONT><br />");
78                 }
79                 wprintf("<FONT SIZE=-1>"
80                         "<a href=\"display_editfloorpic&"
81                         "which_floor=%d\">", floornum);
82                 wprintf(_("(edit graphic)"));
83                 wprintf("</A></TD></TR></TABLE>");
84                 wprintf("</TD>");
85
86                 wprintf("<TD>"
87                         "<FORM METHOD=\"POST\" action=\"rename_floor\">"
88                         "<INPUT TYPE=\"hidden\" NAME=\"floornum\" "
89                         "VALUE=\"%d\">"
90                         "<INPUT TYPE=\"text\" NAME=\"floorname\" "
91                         "VALUE=\"%s\" MAXLENGTH=\"250\">\n",
92                         floornum, floorname);
93                 wprintf("<INPUT TYPE=\"SUBMIT\" NAME=\"sc\" "
94                         "VALUE=\"%s\">"
95                         "</FORM></TD>", _("Change name"));
96
97                 wprintf("<TD>%d</TD></TR>\n", refcount);
98         }
99
100         wprintf("<TR><TD>&nbsp;</TD>"
101                 "<TD><FORM METHOD=\"POST\" action=\"create_floor\">"
102                 "<INPUT TYPE=\"text\" NAME=\"floorname\" "
103                 "MAXLENGTH=\"250\">\n"
104                 "<INPUT TYPE=\"SUBMIT\" NAME=\"sc\" "
105                 "VALUE=\"%s\">"
106                 "</FORM></TD>"
107                 "<TD>&nbsp;</TD></TR>\n", _("Create new floor"));
108
109         wprintf("</table></div>\n");
110         wDumpContent(1);
111 }
112
113
114
115 void delete_floor(void) {
116         int floornum;
117         char buf[SIZ];
118         char message[SIZ];
119
120         floornum = atoi(bstr("floornum"));
121
122         serv_printf("KFLR %d|1", floornum);
123         serv_getln(buf, sizeof buf);
124
125         if (buf[0] == '2') {
126                 sprintf(message, _("Floor has been deleted."));
127         }
128         else {
129                 sprintf(message, "%s", &buf[4]);
130         }
131
132         display_floorconfig(message);
133 }
134
135
136 void create_floor(void) {
137         char buf[SIZ];
138         char message[SIZ];
139         char floorname[SIZ];
140
141         strcpy(floorname, bstr("floorname"));
142
143         serv_printf("CFLR %s|1", floorname);
144         serv_getln(buf, sizeof buf);
145
146         if (buf[0] == '2') {
147                 sprintf(message, _("New floor has been created."));
148         } else {
149                 sprintf(message, "%s", &buf[4]);
150         }
151
152         display_floorconfig(message);
153 }
154
155
156 void rename_floor(void) {
157         int floornum;
158         char buf[SIZ];
159         char message[SIZ];
160         char floorname[SIZ];
161
162         floornum = atoi(bstr("floornum"));
163         strcpy(floorname, bstr("floorname"));
164
165         serv_printf("EFLR %d|%s", floornum, floorname);
166         serv_getln(buf, sizeof buf);
167
168         sprintf(message, "%s", &buf[4]);
169
170         display_floorconfig(message);
171 }
172
173