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

---
 skins/default/functions.js |    3 ++-
 program/js/app.js          |   18 +++++++++++++++---
 2 files changed, 17 insertions(+), 4 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)
diff --git a/skins/default/functions.js b/skins/default/functions.js
index 0b94c68..c1dd8c2 100644
--- a/skins/default/functions.js
+++ b/skins/default/functions.js
@@ -347,7 +347,8 @@
     rcmail.env.contentframe = null;
     rcmail.show_contentframe(false);
   }
-  rcmail.http_post('save-pref', '_name=preview_pane&_value='+(elem.checked?1:0));
+
+  rcmail.command('save-pref', {name: 'preview_pane', value: (elem.checked?1:0)});
 },
 
 /* Message composing */

--
Gitblit v1.9.1