From 614c642a4ba8b050ecb26d25d349077f6192aa8d Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 17 Sep 2010 05:14:13 -0400
Subject: [PATCH] - Fix list_cols is not updated after column dragging (#1486999) - Improved save-pref action and moved to separate file in utils task directory - Improved http_post/http_request to support first argument in form 'task/action'

---
 program/js/app.js |   26 +++++++++++++++++++++-----
 1 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 52bf4f6..c08ba34 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1288,7 +1288,7 @@
       }
     }
 
-    this.http_post('save-pref', '_name=collapsed_folders&_value='+urlencode(this.env.collapsed_folders));
+    this.http_post('utils/save-pref', '_name=collapsed_folders&_value='+urlencode(this.env.collapsed_folders));
     this.set_unread_count_display(id, false);
   };
 
@@ -1459,7 +1459,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 });
+    this.http_post('utils/save-pref', { '_name':'list_cols', '_value':this.env.coltypes, '_session':'list_attrib/columns' });
   };
 
   this.check_droptarget = function(id)
@@ -4894,8 +4894,17 @@
   // send a http request to the server
   this.http_request = function(action, querystring, lock)
   {
+    var url = this.env.comm_path;
+
+    // overwrite task name
+    if (action.match(/([a-z]+)\/([a-z-_]+)/)) {
+      action = RegExp.$2;
+      url = url.replace(/\_task=[a-z]+/, '_task='+RegExp.$1);
+    }
+
     // trigger plugin hook
     var result = this.triggerEvent('request'+action, querystring);
+
     if (typeof result != 'undefined') {
       // abort if one the handlers returned false
       if (result === false)
@@ -4904,8 +4913,7 @@
         querystring = result;
     }
 
-    querystring += (querystring ? '&' : '') + '_remote=1';
-    var url = this.env.comm_path + '&_action=' + action + '&' + querystring;
+    url += '&_remote=1&_action=' + action + (querystring ? '&' : '') + querystring;
 
     // send request
     console.log('HTTP GET: ' + url);
@@ -4915,7 +4923,15 @@
   // send a http POST request to the server
   this.http_post = function(action, postdata, lock)
   {
-    var url = this.env.comm_path+'&_action=' + action;
+    var url = this.env.comm_path;
+
+    // overwrite task name
+    if (action.match(/([a-z]+)\/([a-z-_]+)/)) {
+      action = RegExp.$2;
+      url = url.replace(/\_task=[a-z]+/, '_task='+RegExp.$1);
+    }
+
+    url += '&_action=' + action;
 
     if (postdata && typeof(postdata) == 'object') {
       postdata._remote = 1;

--
Gitblit v1.9.1