]> git.wh0rd.org - tt-rss.git/blobdiff - js/PrefFilterTree.js
implement filter drag and drop sorting
[tt-rss.git] / js / PrefFilterTree.js
index afa2f445aa06dea1e5958a6d38e3c1a634af830b..3546e30fb2db12ab3f7bacd3c8ad4cb31b95ea21 100644 (file)
@@ -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();
+       },
 });