From 9b6c82fdc8e0f74a1ca0f838e710c944c5526f65 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 16 May 2011 09:19:46 -0400
Subject: [PATCH] - Add extended command for saving prefs

---
 program/js/app.js |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index b0ccf35..3f103de 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -161,7 +161,7 @@
     }
 
     // enable general commands
-    this.enable_command('logout', 'mail', 'addressbook', 'settings', true);
+    this.enable_command('logout', 'mail', 'addressbook', 'settings', 'save-pref', true);
 
     if (this.env.permaurl)
       this.enable_command('permaurl', true);
@@ -1168,6 +1168,18 @@
     return (this.env.framed && parent.rcmail && parent.rcmail != this && parent.rcmail.command);
   };
 
+  this.save_pref = function(prop)
+  {
+    var request = {'_name': prop.name, '_value': urlencode(prop.value)};
+
+    if (prop.session)
+      request['_session'] = urlencode(prop.session);
+    if (prop.env)
+      this.env[prop.env] = prop.value;
+
+    this.http_post('save-pref', request);
+  };
+
 
   /*********************************************************/
   /*********        event handling methods         *********/
@@ -1360,7 +1372,7 @@
       }
     }
 
-    this.http_post('save-pref', '_name=collapsed_folders&_value='+urlencode(this.env.collapsed_folders));
+    this.command('save-pref', { name: collapsed_folders, value: this.env.collapsed_folders });
     this.set_unread_count_display(id, false);
   };
 
@@ -1534,7 +1546,7 @@
     if ((found = $.inArray('subject', this.env.coltypes)) >= 0)
       this.set_env('subject_col', found);
 
-    this.http_post('save-pref', { '_name':'list_cols', '_value':this.env.coltypes, '_session':'list_attrib/columns' });
+    this.command('save-pref', { name: 'list_cols', value: this.env.coltypes, session: 'list_attrib/columns' });
   };
 
   this.check_droptarget = function(id)

--
Gitblit v1.9.1