]> code.citadel.org Git - citadel.git/blobdiff - webcit/graphics.c
Begin removing the decimal point from our version number (901 instead of 9.01)
[citadel.git] / webcit / graphics.c
index ee8e80bd682fc3b17fbffcfefcbb490eff01792c..863242f810bb84609043e749e404ce18515462b0 100644 (file)
@@ -1,27 +1,52 @@
 /*
  * Handles HTTP upload of graphics files into the system.
  *
- * Copyright (c) 1996-2011 by the citadel.org team
+ * Copyright (c) 1996-2012 by the citadel.org team
  *
  * This program is open source software.  You can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
+ * modify it under the terms of the GNU General Public License, version 3.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
 #include "webcit.h"
 
 extern void output_static(const char* What);
 
+
+// upload your photo
+void editpic(void)
+{
+       if (havebstr("cancel_button")) {
+               AppendImportantMessage(_("Graphics upload has been cancelled."), -1);
+               display_main_menu();
+               return;
+       }
+
+       if (WC->upload_length == 0) {
+               AppendImportantMessage(_("You didn't upload a file."), -1);
+               display_main_menu();
+               return;
+       }
+       
+       serv_printf("ULUI %ld|%s", (long)WC->upload_length, GuessMimeType(ChrPtr(WC->upload), WC->upload_length));
+       StrBuf *Line = NewStrBuf();
+       StrBuf_ServGetln(Line);
+       if (GetServerStatusMsg(Line, NULL, 0, 0) == 7) {
+               serv_write(ChrPtr(WC->upload), WC->upload_length);
+               display_success(ChrPtr(Line) + 4);
+       }
+       else {
+               AppendImportantMessage((ChrPtr(Line) + 4), -1);
+               display_main_menu();
+       }
+       FreeStrBuf(&Line);
+}
+
+
 void display_graphics_upload(char *filename)
 {
        StrBuf *Line;
@@ -47,7 +72,6 @@ void do_graphics_upload(char *filename)
        StrBuf *Line;
        const char *MimeType;
        wcsession *WCC = WC;
-       char buf[SIZ];
        int bytes_remaining;
        int pos = 0;
        int thisblock;
@@ -78,18 +102,18 @@ void do_graphics_upload(char *filename)
        while (bytes_remaining) {
                thisblock = ((bytes_remaining > 4096) ? 4096 : bytes_remaining);
                serv_printf("WRIT %d", thisblock);
-       StrBuf_ServGetln(Line);
-       if (GetServerStatusMsg(Line, NULL, 1, 7) != 7) {
+               StrBuf_ServGetln(Line);
+               if (GetServerStatusMsg(Line, NULL, 1, 7) != 7) {
                        serv_puts("UCLS 0");
                        StrBuf_ServGetln(Line);
                        display_main_menu();
                        FreeStrBuf(&Line);
                        return;
                }
-               thisblock = extract_int(&buf[4], 0);
+               thisblock = extract_int(ChrPtr(Line) +4, 0);
                serv_write(&ChrPtr(WCC->upload)[pos], thisblock);
-               pos = pos + thisblock;
-               bytes_remaining = bytes_remaining - thisblock;
+               pos += thisblock;
+               bytes_remaining -= thisblock;
        }
 
        serv_puts("UCLS 1");
@@ -104,7 +128,6 @@ void do_graphics_upload(char *filename)
 
 
 void edithellopic(void)    { do_graphics_upload("hello"); }
-void editpic(void)         { do_graphics_upload("_userpic_"); }
 void editgoodbuyepic(void) { do_graphics_upload("UIMG 1|%s|goodbuye"); }
 
 /* The users photo display / upload facility */
@@ -138,17 +161,6 @@ void display_editgoodbyepic(void) {
        display_graphics_upload("editgoodbuyepic");
 }
 
-void display_editfloorpic(void) {
-       StrBuf *PicAction;
-
-       PicAction = NewStrBuf();
-       StrBufPrintf(PicAction, "_floorpic_|%s", bstr("which_floor"));
-       putbstr("__WHICHPIC", PicAction);
-       putbstr("__PICDESC", NewStrBufPlain(_("the icon for this floor"), -1));
-       putbstr("__UPLURL", NewStrBufPlain(HKEY("editfloorpic")));
-       display_graphics_upload("editfloorpic");
-}
-
 void editroompic(void) {
        char buf[SIZ];
        snprintf(buf, SIZ, "_roompic_|%s",
@@ -156,13 +168,6 @@ void editroompic(void) {
        do_graphics_upload(buf);
 }
 
-void editfloorpic(void){
-       char buf[SIZ];
-       snprintf(buf, SIZ, "_floorpic_|%s",
-                bstr("which_floor"));
-       do_graphics_upload(buf);
-}
-
 void 
 InitModule_GRAPHICS
 (void)
@@ -175,6 +180,4 @@ InitModule_GRAPHICS
        WebcitAddUrlHandler(HKEY("edithellopic"), "", 0, edithellopic, 0);
        WebcitAddUrlHandler(HKEY("display_editgoodbuye"), "", 0, display_editgoodbyepic, 0);
        WebcitAddUrlHandler(HKEY("editgoodbuyepic"), "", 0, editgoodbuyepic, 0);
-       WebcitAddUrlHandler(HKEY("display_editfloorpic"), "", 0, display_editfloorpic, 0);
-       WebcitAddUrlHandler(HKEY("editfloorpic"), "", 0, editfloorpic, 0);
 }