diff options
author | Andrew Dolgov <[email protected]> | 2013-03-31 17:15:23 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-03-31 17:15:23 +0400 |
commit | a86ba0a67a83547e83335a619b1c2b5bf3355093 (patch) | |
tree | 506548ee7c29760aa45d617a5d3642fac62ac2af /js | |
parent | da46d21e888f428fbd51b139d6807652da364838 (diff) |
implement filter drag and drop sorting
Diffstat (limited to 'js')
-rw-r--r-- | js/PrefFilterTree.js | 28 | ||||
-rw-r--r-- | js/prefs.js | 18 |
2 files changed, 46 insertions, 0 deletions
diff --git a/js/PrefFilterTree.js b/js/PrefFilterTree.js index afa2f445a..3546e30fb 100644 --- a/js/PrefFilterTree.js +++ b/js/PrefFilterTree.js @@ -1,6 +1,22 @@ dojo.provide("fox.PrefFilterTree"); dojo.require("lib.CheckBoxTree"); +dojo.require("dojo.data.ItemFileWriteStore"); + +dojo.declare("fox.PrefFilterStore", dojo.data.ItemFileWriteStore, { + + _saveEverything: function(saveCompleteCallback, saveFailedCallback, + newFileContentString) { + + dojo.xhrPost({ + url: "backend.php", + content: {op: "pref-filters", method: "savefilterorder", + payload: newFileContentString}, + error: saveFailedCallback, + load: saveCompleteCallback}); + }, + +}); dojo.declare("fox.PrefFilterTree", lib.CheckBoxTree, { _createTreeNode: function(args) { @@ -48,5 +64,17 @@ dojo.declare("fox.PrefFilterTree", lib.CheckBoxTree, { return (!item.error || item.error == '') ? "dijitTreeRow" : "dijitTreeRow Error"; }, + checkItemAcceptance: function(target, source, position) { + var item = dijit.getEnclosingWidget(target).item; + + // disable copying items + source.copyState = function() { return false; }; + + return position != 'over'; + }, + onDndDrop: function() { + this.inherited(arguments); + this.tree.model.store.save(); + }, }); diff --git a/js/prefs.js b/js/prefs.js index 7d12e4202..cc2246374 100644 --- a/js/prefs.js +++ b/js/prefs.js @@ -1563,6 +1563,24 @@ function clearArticleAccessKeys() { return false; } + +function resetFilterOrder() { + try { + notify_progress("Loading, please wait..."); + + new Ajax.Request("backend.php", { + parameters: "?op=pref-filters&method=filtersortreset", + onComplete: function(transport) { + updateFilterList(); + } }); + + + } catch (e) { + exception_error("resetFilterOrder"); + } +} + + function resetFeedOrder() { try { notify_progress("Loading, please wait..."); |