PrefFilterTree.js 2.5 KB

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