]> code.citadel.org Git - citadel.git/commitdiff
messages.c: added "delete message" functionality
authorArt Cancro <ajc@citadel.org>
Mon, 14 Dec 1998 00:16:31 +0000 (00:16 +0000)
committerArt Cancro <ajc@citadel.org>
Mon, 14 Dec 1998 00:16:31 +0000 (00:16 +0000)
webcit/ChangeLog
webcit/child.h
webcit/messages.c
webcit/roomops.c
webcit/webcit.c

index a50432d5ce7ce33774d21137bf56ee72ee099183..74379fbd299bf96598a6381aaf4b6edea0275a3c 100644 (file)
@@ -5,6 +5,7 @@ Sun Dec 13 13:35:12 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
          against broken HTTP connections.
        * Added a housekeeping thread to periodically remove dead sessions
          and kill idle sessions.
+       * messages.c: added "delete message" functionality
 
 Fri Dec 11 21:14:36 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
        * Brought over message reading and entry functions from old WebCit
index d4b5c85cc63287247cf9e4aa4072733ff2fdad07..93481dece3d68ec8e99da02a1b5e281522f0bbbb 100644 (file)
@@ -44,3 +44,5 @@ void readloop(char *oper);
 void text_to_server(char *ptr);
 void display_enter(void);
 void post_message(void);
+void confirm_delete_msg(void);
+void delete_msg(void);
index 7237d86c766781d5c860941a03151a339a28c9e6..3fe11b41489a9b83e0bb617ba7f87003a5245535 100644 (file)
@@ -137,13 +137,13 @@ char *oper; {
 
                wprintf("<A HREF=\"/confirm_move_msg");
                wprintf("&msgid=%ld", msgnum);
-               wprintf("&referer=%s\">Move</A>", oper);
+               wprintf("\">Move</A>");
 
                wprintf("&nbsp;&nbsp;");
 
                wprintf("<A HREF=\"/confirm_delete_msg");
                wprintf("&msgid=%ld", msgnum);
-               wprintf("&referer=%s\">Del</A>", oper);
+               wprintf("\">Del</A>");
 
                wprintf("</B></FONT></TD>");
                }
@@ -377,3 +377,74 @@ void display_enter(void) {
 DONE:  wprintf("</BODY></HTML>\n");
        wDumpContent();
        }
+
+
+
+
+
+
+
+
+
+
+
+/*
+ * Confirm deletion of a message
+ */
+void confirm_delete_msg(void) {
+       long msgid;
+
+       msgid = atol(bstr("msgid"));
+       
+       printf("HTTP/1.0 200 OK\n");
+       output_headers();
+        wprintf("<HTML>");
+        wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+
+       wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
+       wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
+       wprintf("<B>Confirm deletion of message</B>\n");
+       wprintf("</FONT></TD></TR></TABLE>\n");
+
+       wprintf("<CENTER>");
+
+       wprintf("Are you sure you want to delete this message? <BR>\n");
+
+       wprintf("<FORM METHOD=\"POST\" ACTION=\"/delete_msg\">\n");
+       wprintf("<INPUT TYPE=\"hidden\" NAME=\"msgid\" VALUE=\"%s\">\n",
+               bstr("msgid"));
+       wprintf("<INPUT TYPE=\"submit\" NAME=\"yesno\" VALUE=\"Yes\">");
+       wprintf("<INPUT TYPE=\"submit\" NAME=\"yesno\" VALUE=\"No\">");
+       wprintf("</FORM></CENTER>\n");
+
+       wprintf("</CENTER>\n");
+       wprintf("</BODY></HTML>\n");
+       wDumpContent();
+       }
+
+
+
+void delete_msg(void) {
+       long msgid;
+       char buf[256];
+
+       msgid = atol(bstr("msgid"));
+
+       printf("HTTP/1.0 200 OK\n");
+       output_headers();
+        wprintf("<HTML>");
+        wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+
+       if (!strcasecmp(bstr("yesno"), "Yes")) {
+               sprintf(buf, "DELE %ld", msgid);
+               serv_puts(buf);
+               serv_gets(buf);
+               wprintf("<EM>%s</EM><BR>\n", &buf[4]);
+               }
+       else {
+               wprintf("<EM>Message not deleted.</EM><BR>\n");
+               }
+
+       wprintf("</BODY></HTML>\n");
+       wDumpContent();
+       }
index 72126a580d55cdef009b4ff87f9fd07876ddd4b0..99ebee7248d1cfb85a639b3bd716879a163104cb 100644 (file)
@@ -265,9 +265,11 @@ void gotoroom(char *gname, int display_name)
        /* highest_msg_read = extract_int(&buf[4],6);
        maxmsgnum = extract_int(&buf[4],5);
        is_mail = (char) extract_int(&buf[4],7); */
-       is_room_aide = (char) extract_int(&buf[4],8);
        ls = extract_long(&buf[4],6);
 
+       if (is_aide) is_room_aide = is_aide;
+       else is_room_aide = (char) extract_int(&buf[4],8);
+
        strcpy(wc_roomname, wc_roomname);
        wDumpContent();
        }
index f828791adf730da2b01346e63f5e53fecd0a6e40..bedb70db679caaa42ff10042435a65384b19960d 100644 (file)
@@ -579,6 +579,14 @@ fclose(fp);
                post_message();
                }
 
+       else if (!strcasecmp(action, "confirm_delete_msg")) {
+               confirm_delete_msg();
+               }
+
+       else if (!strcasecmp(action, "delete_msg")) {
+               delete_msg();
+               }
+
        /* When all else fails... */
        else {
                printf("HTTP/1.0 200 OK\n");