summaryrefslogtreecommitdiff
path: root/js/PrefFilterTree.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-03-31 17:15:23 +0400
committerAndrew Dolgov <[email protected]>2013-03-31 17:15:23 +0400
commita86ba0a67a83547e83335a619b1c2b5bf3355093 (patch)
tree506548ee7c29760aa45d617a5d3642fac62ac2af /js/PrefFilterTree.js
parentda46d21e888f428fbd51b139d6807652da364838 (diff)
implement filter drag and drop sorting
Diffstat (limited to 'js/PrefFilterTree.js')
-rw-r--r--js/PrefFilterTree.js28
1 files changed, 28 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();
+ },
});