1
0

demo.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. window.addEvent('domready',function(){
  2. tree = new Mif.Tree({
  3. container: $('tree_container'),
  4. forest: true,
  5. initialize: function(){
  6. new Mif.Tree.KeyNav(this);
  7. new Mif.Tree.Drag(this, {
  8. onDrag: function(){
  9. //inject book inside book not allowed;
  10. if(this.target && this.target.type == 'book' && this.current.type == 'book' && this.where == 'inside'){
  11. this.where = 'notAllowed';
  12. }
  13. $('destination').innerHTML = this.target ? this.target.name : '';
  14. $('where').innerHTML = this.where;
  15. },
  16. onStart: function(){
  17. $('source').innerHTML = this.current.name;
  18. },
  19. onComplete: function(){
  20. $('destination').innerHTML = '';
  21. $('where').innerHTML = '';
  22. $('source').innerHTML = '';
  23. }
  24. });
  25. },
  26. types: {
  27. folder: {
  28. openIcon: 'mif-tree-open-icon',
  29. closeIcon: 'mif-tree-close-icon'
  30. },
  31. loader: {
  32. openIcon: 'mif-tree-loader-open-icon',
  33. closeIcon: 'mif-tree-loader-close-icon',
  34. dropDenied: ['inside','after']
  35. },
  36. disabled: {
  37. openIcon: 'mif-tree-open-icon',
  38. closeIcon: 'mif-tree-close-icon',
  39. dragDisabled: true,
  40. cls: 'disabled'
  41. },
  42. book: {
  43. openIcon: 'mif-tree-book-icon',
  44. closeIcon: 'mif-tree-book-icon',
  45. loadable: true
  46. },
  47. bin: {
  48. openIcon: 'mif-tree-bin-open-icon',
  49. closeIcon: 'mif-tree-bin-close-icon'
  50. }
  51. },
  52. dfltType: 'folder',
  53. height: 18,
  54. onCopy: function(from, to, where, copy){
  55. if(from.getParent() == copy.getParent()){
  56. copy.set({
  57. property: {
  58. name: 'copy ' + from.name
  59. }
  60. });
  61. }
  62. }
  63. });
  64. //tree.initSortable();
  65. tree.load({
  66. url: '../assets/files/forest.json'
  67. });
  68. tree.loadOptions = function(node){
  69. // if node name 'empty' load from url 'empty.json'
  70. if(node.name == 'empty'){
  71. return {
  72. url: '../assets/files/empty.json'
  73. };
  74. }
  75. return {
  76. url: '../assets/files/mediumTree.json'
  77. };
  78. };
  79. tree2 = new Mif.Tree({
  80. container: $('tree_container2'),
  81. initialize: function(){
  82. new Mif.Tree.KeyNav(this);
  83. new Mif.Tree.Drag(this, {
  84. onDrag: function(){
  85. $('destination').innerHTML = this.target ? this.target.name : '';
  86. $('where').innerHTML = this.where;
  87. },
  88. onStart: function(){
  89. $('source').innerHTML = this.current.name;
  90. },
  91. onComplete: function(){
  92. $('destination').innerHTML = '';
  93. $('where').innerHTML = '';
  94. $('source').innerHTML = '';
  95. }
  96. });
  97. },
  98. types: {
  99. folder: {
  100. openIcon: 'mif-tree-open-icon',
  101. closeIcon: 'mif-tree-close-icon'
  102. },
  103. loader: {
  104. openIcon: 'mif-tree-loader-open-icon',
  105. closeIcon: 'mif-tree-loader-close-icon',
  106. dropDenied: ['inside','after']
  107. },
  108. disabled: {
  109. openIcon: 'mif-tree-open-icon',
  110. closeIcon: 'mif-tree-close-icon',
  111. dragDisbled: true,
  112. cls: 'disabled'
  113. },
  114. book: {
  115. openIcon: 'mif-tree-book-icon',
  116. closeIcon: 'mif-tree-book-icon',
  117. loadable: true
  118. },
  119. bin: {
  120. openIcon: 'mif-tree-bin-open-icon',
  121. closeIcon: 'mif-tree-bin-close-icon'
  122. }
  123. },
  124. dfltType: 'folder',
  125. height: 18,
  126. onCopy: function(from, to, where, copy){
  127. if(from.getParent() == copy.getParent()){
  128. copy.set({
  129. property: {
  130. name: 'copy ' + from.name
  131. }
  132. });
  133. }
  134. }
  135. });
  136. var json = [
  137. {
  138. "property": {
  139. "name": "root"
  140. },
  141. "children": [
  142. {
  143. "property": {
  144. "name": "node1"
  145. }
  146. },
  147. {
  148. "property": {
  149. "name": "node2"
  150. },
  151. "children":[
  152. {
  153. "property": {
  154. "name": "node2.1"
  155. }
  156. },
  157. {
  158. "property": {
  159. "name": "node2.2"
  160. }
  161. }
  162. ]
  163. },
  164. {
  165. "property": {
  166. "name": "node4"
  167. }
  168. },
  169. {
  170. "property": {
  171. "name": "node3"
  172. }
  173. }
  174. ]
  175. }
  176. ];
  177. tree2.load({
  178. json: json
  179. });
  180. });