* Deleting a message from the Trash folder now actually deletes it instead
authorArt Cancro <ajc@citadel.org>
Fri, 9 Dec 2005 19:41:03 +0000 (19:41 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 9 Dec 2005 19:41:03 +0000 (19:41 +0000)
  of trying to move it to the Trash.  Requires Citadel server 6.63.

webcit/ChangeLog
webcit/messages.c
webcit/roomops.c
webcit/static/wclib.js
webcit/webcit.h

index 56dcd36ccba840d6218a9e0ef7176a9dd787c4d6..7d00b88e20cb7ff8ca1780786c4e7f441ce78573 100644 (file)
@@ -1,5 +1,9 @@
 $Id$
 
+Fri Dec  9 14:40:21 EST 2005 ajc
+* Deleting a message from the Trash folder now actually deletes it instead
+  of trying to move it to the Trash.  Requires Citadel server 6.63.
+
 Fri Dec  9 13:45:31 EST 2005 ajc
 * Slightly more intelligent language detection.
 
index 6fb26541e9c73e2e7a2f3f1e78b21a5dd6ecd16a..f91bb406a6323aeb7b5f93854e53576d84dc6f17 100644 (file)
@@ -2709,10 +2709,6 @@ DONE:    wDumpContent(1);
 
 
 
-
-
-
-
 void delete_msg(void)
 {
        long msgid;
@@ -2722,7 +2718,13 @@ void delete_msg(void)
 
        output_headers(1, 1, 1, 0, 0, 0);
 
-       serv_printf("MOVE %ld|_TRASH_|0", msgid);
+       if (WC->wc_is_trash) {  /* Delete from Trash is a real delete */
+               serv_printf("DELE %ld", msgid); 
+       }
+       else {                  /* Otherwise move it to Trash */
+               serv_printf("MOVE %ld|_TRASH_|0", msgid);
+       }
+
        serv_getln(buf, sizeof buf);
        wprintf("<EM>%s</EM><br />\n", &buf[4]);
 
index 29687f105a75fd153507c846a7d71d090a7605af..81ac71a8849700a8d1ecd10e750a9914abbb2d91 100644 (file)
@@ -341,6 +341,13 @@ void embed_room_banner(char *got, int navbar_style) {
                got = fakegot;
        }
 
+       /* The browser needs some information for its own use */
+       wprintf("<script type=\"text/javascript\">      \n"
+               "       room_is_trash = %d;             \n"
+               "</script>\n",
+               WC->wc_is_trash
+       );
+
        /* If the user happens to select the "make this my start page" link,
         * we want it to remember the URL as a "/dotskip" one instead of
         * a "skip" or "gotonext" or something like that.
@@ -587,6 +594,7 @@ int gotoroom(char *gname)
        WC->wc_floor = extract_int(&buf[4], 10);
        WC->wc_view = extract_int(&buf[4], 11);
        WC->wc_default_view = extract_int(&buf[4], 12);
+       WC->wc_is_trash = extract_int(&buf[4], 13);
 
        if (WC->is_aide)
                WC->is_room_aide = WC->is_aide;
index e04cc13955ceb91322b920d393d1ceef12e7fb30..8eedfcde19ca5a1167992cc7ad64d924031deb73 100644 (file)
@@ -7,6 +7,7 @@
 
 
 var browserType;
+var room_is_trash = 0;
 
 if (document.layers) {browserType = "nn4"}
 if (document.all) {browserType = "ie"}
@@ -162,13 +163,24 @@ function CtdlDeleteSelectedMessages(evt) {
                return false;
        }
        for (i=0; i<CtdlNumMsgsSelected; ++i) {
-               new Ajax.Request(
-                       'ajax_servcmd', {
-                               method: 'post',
-                               parameters: 'g_cmd=MOVE ' + CtdlMsgsSelected[i] + '|_TRASH_|0',
-                               onComplete: CtdlClearDeletedMsg(CtdlMsgsSelected[i])
-                       }
-               );
+               if (parseInt(room_is_trash) > 0) {
+                       new Ajax.Request(
+                               'ajax_servcmd', {
+                                       method: 'post',
+                                       parameters: 'g_cmd=DELE ' + CtdlMsgsSelected[i],
+                                       onComplete: CtdlClearDeletedMsg(CtdlMsgsSelected[i])
+                               }
+                       );
+               }
+               else {
+                       new Ajax.Request(
+                               'ajax_servcmd', {
+                                       method: 'post',
+                                       parameters: 'g_cmd=MOVE ' + CtdlMsgsSelected[i] + '|_TRASH_|0',
+                                       onComplete: CtdlClearDeletedMsg(CtdlMsgsSelected[i])
+                               }
+                       );
+               }
        }
        CtdlNumMsgsSelected = 0;
 
index d61fef65aa8986e6bcc49cdab7dd5e5c93de27fd..d7a3f403abe3d1a87b3123950b5f3b4924dbb86d 100644 (file)
 #define DEVELOPER_ID           0
 #define CLIENT_ID              4
 #define CLIENT_VERSION         640             /* This version of WebCit */
-#define MINIMUM_CIT_VERSION    661             /* min required Citadel ver. */
+#define MINIMUM_CIT_VERSION    663             /* min required Citadel ver. */
 #define DEFAULT_HOST           "localhost"     /* Default Citadel server */
 #define DEFAULT_PORT           "504"
 #define LB                     (1)             /* Internal escape chars */
@@ -321,6 +321,7 @@ struct wcsession {
        unsigned room_flags;
        int wc_view;
        int wc_default_view;
+       int wc_is_trash;
        int wc_floor;
        char ugname[128];
        long uglsn;