]> git.wh0rd.org - tt-rss.git/blob - PrefFeedTree.js
tweak checkbox image
[tt-rss.git] / PrefFeedTree.js
1 dojo.provide("fox.PrefFeedTree");
2 dojo.provide("fox.PrefFeedStore");
3
4 dojo.require("lib.CheckBoxTree");
5 dojo.require("dojo.data.ItemFileWriteStore");
6
7 dojo.declare("fox.PrefFeedStore", dojo.data.ItemFileWriteStore, {
8
9 _saveEverything: function(saveCompleteCallback, saveFailedCallback,
10 newFileContentString) {
11
12 dojo.xhrPost({
13 url: "backend.php",
14 content: {op: "pref-feeds", subop: "savefeedorder",
15 payload: newFileContentString},
16 error: saveFailedCallback,
17 load: saveCompleteCallback});
18 },
19
20 });
21
22 dojo.declare("fox.PrefFeedTree", lib.CheckBoxTree, {
23 _createTreeNode: function(args) {
24 var tnode = this.inherited(arguments);
25
26 if (args.item.icon)
27 tnode.iconNode.src = args.item.icon[0];
28
29 return tnode;
30 },
31 onDndDrop: function() {
32 this.inherited(arguments);
33 this.tree.model.store.save();
34 },
35 getRowClass: function (item, opened) {
36 return (!item.error || item.error == '') ? "dijitTreeRow" :
37 "dijitTreeRow Error";
38 },
39 getIconClass: function (item, opened) {
40 return (!item || this.model.store.getValue(item, 'type') == 'category') ? (opened ? "dijitFolderOpened" : "dijitFolderClosed") : "feedIcon";
41 },
42 checkItemAcceptance: function(target, source, position) {
43 var item = dijit.getEnclosingWidget(target).item;
44
45 // disable copying items
46 source.copyState = function() { return false; }
47
48 var source_item = false;
49
50 source.forInSelectedItems(function(node) {
51 source_item = node.data.item;
52 });
53
54 if (!source_item || !item) return false;
55
56 var id = String(item.id);
57 var source_id = String(source_item.id);
58
59 var id = this.tree.model.store.getValue(item, 'id');
60 var source_id = source.tree.model.store.getValue(source_item, 'id');
61
62 //console.log(id + " " + position + " " + source_id);
63
64 if (source_id.match("FEED:")) {
65 return ((id.match("CAT:") && position == "over") ||
66 (id.match("FEED:") && position != "over"));
67 } else if (source_id.match("CAT:")) {
68 return ((id.match("CAT:") && position != "over") ||
69 (id.match("root") && position == "over"));
70 }
71 },
72 });
73