From a86ba0a67a83547e83335a619b1c2b5bf3355093 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 31 Mar 2013 17:15:23 +0400 Subject: implement filter drag and drop sorting --- js/PrefFilterTree.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'js/PrefFilterTree.js') 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(); + }, }); -- cgit v1.2.3