]>
Commit | Line | Data |
---|---|---|
a740f4b5 AD |
1 | dojo.provide("fox.PrefFilterTree"); |
2 | ||
3 | dojo.require("lib.CheckBoxTree"); | |
a86ba0a6 AD |
4 | dojo.require("dojo.data.ItemFileWriteStore"); |
5 | ||
6 | dojo.declare("fox.PrefFilterStore", dojo.data.ItemFileWriteStore, { | |
7 | ||
8 | _saveEverything: function(saveCompleteCallback, saveFailedCallback, | |
9 | newFileContentString) { | |
10 | ||
11 | dojo.xhrPost({ | |
12 | url: "backend.php", | |
13 | content: {op: "pref-filters", method: "savefilterorder", | |
14 | payload: newFileContentString}, | |
15 | error: saveFailedCallback, | |
16 | load: saveCompleteCallback}); | |
17 | }, | |
18 | ||
19 | }); | |
a740f4b5 AD |
20 | |
21 | dojo.declare("fox.PrefFilterTree", lib.CheckBoxTree, { | |
22 | _createTreeNode: function(args) { | |
23 | var tnode = this.inherited(arguments); | |
24 | ||
25 | var enabled = this.model.store.getValue(args.item, 'enabled'); | |
26 | var param = this.model.store.getValue(args.item, 'param'); | |
50e04efd | 27 | var rules = this.model.store.getValue(args.item, 'rules'); |
a740f4b5 AD |
28 | |
29 | if (param) { | |
30 | param = dojo.doc.createElement('span'); | |
31 | param.className = (enabled != false) ? 'labelParam' : 'labelParam Disabled'; | |
32 | param.innerHTML = args.item.param[0]; | |
33e2d26b | 33 | dojo.place(param, tnode.rowNode, 'first'); |
a740f4b5 AD |
34 | } |
35 | ||
50e04efd AD |
36 | if (rules) { |
37 | param = dojo.doc.createElement('span'); | |
38 | param.className = 'filterRules'; | |
39 | param.innerHTML = rules; | |
40 | dojo.place(param, tnode.rowNode, 'next'); | |
41 | } | |
42 | ||
2f20dd58 AD |
43 | if (this.model.store.getValue(args.item, 'id') != 'root') { |
44 | var img = dojo.doc.createElement('img'); | |
45 | img.src ='images/filter.png'; | |
46 | img.className = 'markedPic'; | |
47 | tnode._filterIconNode = img; | |
48 | dojo.place(tnode._filterIconNode, tnode.labelNode, 'before'); | |
49 | } | |
50 | ||
a740f4b5 AD |
51 | return tnode; |
52 | }, | |
53 | ||
54 | getLabel: function(item) { | |
55 | var label = item.name; | |
56 | ||
57 | var feed = this.model.store.getValue(item, 'feed'); | |
58 | var inverse = this.model.store.getValue(item, 'inverse'); | |
59 | ||
60 | if (feed) | |
ba975b2e | 61 | label += " (" + __("in") + " " + feed + ")"; |
a740f4b5 AD |
62 | |
63 | if (inverse) | |
64 | label += " (" + __("Inverse") + ")"; | |
65 | ||
66 | /* if (item.param) | |
ba975b2e | 67 | label = "<span class=\"labelFixedLength\">" + label + |
a740f4b5 AD |
68 | "</span>" + item.param[0]; */ |
69 | ||
70 | return label; | |
71 | }, | |
38e6aa77 AD |
72 | getIconClass: function (item, opened) { |
73 | return (!item || this.model.mayHaveChildren(item)) ? (opened ? "dijitFolderOpened" : "dijitFolderClosed") : "invisible"; | |
74 | }, | |
a740f4b5 AD |
75 | getLabelClass: function (item, opened) { |
76 | var enabled = this.model.store.getValue(item, 'enabled'); | |
77 | return (enabled != false) ? "dijitTreeLabel labelFixedLength" : "dijitTreeLabel labelFixedLength Disabled"; | |
78 | }, | |
79 | getRowClass: function (item, opened) { | |
ba975b2e | 80 | return (!item.error || item.error == '') ? "dijitTreeRow" : |
a740f4b5 AD |
81 | "dijitTreeRow Error"; |
82 | }, | |
a86ba0a6 AD |
83 | checkItemAcceptance: function(target, source, position) { |
84 | var item = dijit.getEnclosingWidget(target).item; | |
85 | ||
86 | // disable copying items | |
87 | source.copyState = function() { return false; }; | |
88 | ||
89 | return position != 'over'; | |
90 | }, | |
91 | onDndDrop: function() { | |
92 | this.inherited(arguments); | |
93 | this.tree.model.store.save(); | |
94 | }, | |
a740f4b5 AD |
95 | }); |
96 |