lpmp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. data/LICENSE +3 -0
  2. data/README +3 -0
  3. data/Rakefile +45 -0
  4. data/bin/lpmp +107 -0
  5. data/config/help.yaml +1 -0
  6. data/config/hosts.yaml +2 -0
  7. data/config/log.yaml +1 -0
  8. data/config/memcache.yaml +5 -0
  9. data/erb/index.erb +62 -0
  10. data/lib/bg_pull/caichen.rb +199 -0
  11. data/lib/bg_pull/lpmp.rb +45 -0
  12. data/lib/exception.rb +8 -0
  13. data/lib/lpmp.rb +53 -0
  14. data/lib/pull/lpmp.rb +355 -0
  15. data/lib/remote_lmp.rb +129 -0
  16. data/lib/utils.rb +14 -0
  17. data/lib/xq_push/caichen.rb +174 -0
  18. data/lib/xq_push/lpmp.rb +96 -0
  19. data/log/lpmp1st.log +1 -0
  20. data/public/css/ext-portal.css +40 -0
  21. data/public/css/lpmp.css +6 -0
  22. data/public/designer/caichen.epj +1 -0
  23. data/public/designer/hostmonitor.epj +1 -0
  24. data/public/ext-3.0.0/INCLUDE_ORDER.txt +35 -0
  25. data/public/ext-3.0.0/adapter/ext/ext-base-debug.js +3589 -0
  26. data/public/ext-3.0.0/adapter/ext/ext-base.js +7 -0
  27. data/public/ext-3.0.0/adapter/jquery/ext-jquery-adapter-debug.js +2292 -0
  28. data/public/ext-3.0.0/adapter/jquery/ext-jquery-adapter.js +7 -0
  29. data/public/ext-3.0.0/adapter/prototype/ext-prototype-adapter-debug.js +2346 -0
  30. data/public/ext-3.0.0/adapter/prototype/ext-prototype-adapter.js +7 -0
  31. data/public/ext-3.0.0/adapter/yui/ext-yui-adapter-debug.js +2136 -0
  32. data/public/ext-3.0.0/adapter/yui/ext-yui-adapter.js +7 -0
  33. data/public/ext-3.0.0/ext-all-debug.js +65610 -0
  34. data/public/ext-3.0.0/ext-all.js +11 -0
  35. data/public/ext-3.0.0/license.txt +42 -0
  36. data/public/ext-3.0.0/pkgs/cmp-foundation-debug.js +11287 -0
  37. data/public/ext-3.0.0/pkgs/cmp-foundation.js +7 -0
  38. data/public/ext-3.0.0/pkgs/data-foundation-debug.js +3853 -0
  39. data/public/ext-3.0.0/pkgs/data-foundation.js +7 -0
  40. data/public/ext-3.0.0/pkgs/data-grouping-debug.js +139 -0
  41. data/public/ext-3.0.0/pkgs/data-grouping.js +7 -0
  42. data/public/ext-3.0.0/pkgs/data-json-debug.js +582 -0
  43. data/public/ext-3.0.0/pkgs/data-json.js +7 -0
  44. data/public/ext-3.0.0/pkgs/data-list-views-debug.js +1278 -0
  45. data/public/ext-3.0.0/pkgs/data-list-views.js +7 -0
  46. data/public/ext-3.0.0/pkgs/data-xml-debug.js +234 -0
  47. data/public/ext-3.0.0/pkgs/data-xml.js +7 -0
  48. data/public/ext-3.0.0/pkgs/direct-debug.js +1121 -0
  49. data/public/ext-3.0.0/pkgs/direct.js +7 -0
  50. data/public/ext-3.0.0/pkgs/ext-dd-debug.js +4567 -0
  51. data/public/ext-3.0.0/pkgs/ext-dd.js +7 -0
  52. data/public/ext-3.0.0/pkgs/ext-foundation-debug.js +13417 -0
  53. data/public/ext-3.0.0/pkgs/ext-foundation.js +7 -0
  54. data/public/ext-3.0.0/pkgs/pkg-buttons-debug.js +1060 -0
  55. data/public/ext-3.0.0/pkgs/pkg-buttons.js +7 -0
  56. data/public/ext-3.0.0/pkgs/pkg-charts-debug.js +1621 -0
  57. data/public/ext-3.0.0/pkgs/pkg-charts.js +10 -0
  58. data/public/ext-3.0.0/pkgs/pkg-forms-debug.js +7661 -0
  59. data/public/ext-3.0.0/pkgs/pkg-forms.js +7 -0
  60. data/public/ext-3.0.0/pkgs/pkg-grid-editor-debug.js +560 -0
  61. data/public/ext-3.0.0/pkgs/pkg-grid-editor.js +7 -0
  62. data/public/ext-3.0.0/pkgs/pkg-grid-foundation-debug.js +4765 -0
  63. data/public/ext-3.0.0/pkgs/pkg-grid-foundation.js +7 -0
  64. data/public/ext-3.0.0/pkgs/pkg-grid-grouping-debug.js +517 -0
  65. data/public/ext-3.0.0/pkgs/pkg-grid-grouping.js +7 -0
  66. data/public/ext-3.0.0/pkgs/pkg-grid-property-debug.js +370 -0
  67. data/public/ext-3.0.0/pkgs/pkg-grid-property.js +7 -0
  68. data/public/ext-3.0.0/pkgs/pkg-history-debug.js +203 -0
  69. data/public/ext-3.0.0/pkgs/pkg-history.js +7 -0
  70. data/public/ext-3.0.0/pkgs/pkg-menu-debug.js +1628 -0
  71. data/public/ext-3.0.0/pkgs/pkg-menu.js +7 -0
  72. data/public/ext-3.0.0/pkgs/pkg-tabs-debug.js +1100 -0
  73. data/public/ext-3.0.0/pkgs/pkg-tabs.js +7 -0
  74. data/public/ext-3.0.0/pkgs/pkg-tips-debug.js +994 -0
  75. data/public/ext-3.0.0/pkgs/pkg-tips.js +7 -0
  76. data/public/ext-3.0.0/pkgs/pkg-toolbars-debug.js +1374 -0
  77. data/public/ext-3.0.0/pkgs/pkg-toolbars.js +7 -0
  78. data/public/ext-3.0.0/pkgs/pkg-tree-debug.js +4522 -0
  79. data/public/ext-3.0.0/pkgs/pkg-tree.js +7 -0
  80. data/public/ext-3.0.0/pkgs/resizable-debug.js +760 -0
  81. data/public/ext-3.0.0/pkgs/resizable.js +7 -0
  82. data/public/ext-3.0.0/pkgs/state-debug.js +274 -0
  83. data/public/ext-3.0.0/pkgs/state.js +7 -0
  84. data/public/ext-3.0.0/pkgs/window-debug.js +1888 -0
  85. data/public/ext-3.0.0/pkgs/window.js +7 -0
  86. data/public/ext-3.0.0/resources/charts.swf +0 -0
  87. data/public/ext-3.0.0/resources/css/README.txt +3 -0
  88. data/public/ext-3.0.0/resources/css/ext-all-notheme.css +5345 -0
  89. data/public/ext-3.0.0/resources/css/ext-all.css +6990 -0
  90. data/public/ext-3.0.0/resources/css/reset-min.css +7 -0
  91. data/public/ext-3.0.0/resources/css/structure/borders.css +54 -0
  92. data/public/ext-3.0.0/resources/css/structure/box.css +80 -0
  93. data/public/ext-3.0.0/resources/css/structure/button.css +440 -0
  94. data/public/ext-3.0.0/resources/css/structure/combo.css +45 -0
  95. data/public/ext-3.0.0/resources/css/structure/core.css +326 -0
  96. data/public/ext-3.0.0/resources/css/structure/date-picker.css +265 -0
  97. data/public/ext-3.0.0/resources/css/structure/dd.css +61 -0
  98. data/public/ext-3.0.0/resources/css/structure/debug.css +26 -0
  99. data/public/ext-3.0.0/resources/css/structure/dialog.css +62 -0
  100. data/public/ext-3.0.0/resources/css/structure/editor.css +92 -0
  101. data/public/ext-3.0.0/resources/css/structure/form.css +562 -0
  102. data/public/ext-3.0.0/resources/css/structure/grid.css +552 -0
  103. data/public/ext-3.0.0/resources/css/structure/layout.css +296 -0
  104. data/public/ext-3.0.0/resources/css/structure/list-view.css +85 -0
  105. data/public/ext-3.0.0/resources/css/structure/menu.css +205 -0
  106. data/public/ext-3.0.0/resources/css/structure/panel-reset.css +130 -0
  107. data/public/ext-3.0.0/resources/css/structure/panel.css +468 -0
  108. data/public/ext-3.0.0/resources/css/structure/progress.css +42 -0
  109. data/public/ext-3.0.0/resources/css/structure/qtips.css +153 -0
  110. data/public/ext-3.0.0/resources/css/structure/reset.css +7 -0
  111. data/public/ext-3.0.0/resources/css/structure/resizable.css +149 -0
  112. data/public/ext-3.0.0/resources/css/structure/slider.css +103 -0
  113. data/public/ext-3.0.0/resources/css/structure/tabs.css +372 -0
  114. data/public/ext-3.0.0/resources/css/structure/toolbar.css +259 -0
  115. data/public/ext-3.0.0/resources/css/structure/tree.css +203 -0
  116. data/public/ext-3.0.0/resources/css/structure/window.css +222 -0
  117. data/public/ext-3.0.0/resources/css/visual/borders.css +25 -0
  118. data/public/ext-3.0.0/resources/css/visual/box.css +74 -0
  119. data/public/ext-3.0.0/resources/css/visual/button.css +94 -0
  120. data/public/ext-3.0.0/resources/css/visual/combo.css +43 -0
  121. data/public/ext-3.0.0/resources/css/visual/core.css +76 -0
  122. data/public/ext-3.0.0/resources/css/visual/date-picker.css +143 -0
  123. data/public/ext-3.0.0/resources/css/visual/dd.css +29 -0
  124. data/public/ext-3.0.0/resources/css/visual/debug.css +24 -0
  125. data/public/ext-3.0.0/resources/css/visual/dialog.css +34 -0
  126. data/public/ext-3.0.0/resources/css/visual/editor.css +13 -0
  127. data/public/ext-3.0.0/resources/css/visual/form.css +117 -0
  128. data/public/ext-3.0.0/resources/css/visual/grid.css +272 -0
  129. data/public/ext-3.0.0/resources/css/visual/layout.css +53 -0
  130. data/public/ext-3.0.0/resources/css/visual/list-view.css +37 -0
  131. data/public/ext-3.0.0/resources/css/visual/menu.css +82 -0
  132. data/public/ext-3.0.0/resources/css/visual/panel.css +87 -0
  133. data/public/ext-3.0.0/resources/css/visual/progress.css +32 -0
  134. data/public/ext-3.0.0/resources/css/visual/qtips.css +44 -0
  135. data/public/ext-3.0.0/resources/css/visual/resizable.css +43 -0
  136. data/public/ext-3.0.0/resources/css/visual/slider.css +21 -0
  137. data/public/ext-3.0.0/resources/css/visual/tabs.css +119 -0
  138. data/public/ext-3.0.0/resources/css/visual/toolbar.css +103 -0
  139. data/public/ext-3.0.0/resources/css/visual/tree.css +157 -0
  140. data/public/ext-3.0.0/resources/css/visual/window.css +86 -0
  141. data/public/ext-3.0.0/resources/css/xtheme-blue.css +1652 -0
  142. data/public/ext-3.0.0/resources/expressinstall.swf +0 -0
  143. data/public/ext-3.0.0/resources/images/default/box/corners-blue.gif +0 -0
  144. data/public/ext-3.0.0/resources/images/default/box/corners.gif +0 -0
  145. data/public/ext-3.0.0/resources/images/default/box/l-blue.gif +0 -0
  146. data/public/ext-3.0.0/resources/images/default/box/l.gif +0 -0
  147. data/public/ext-3.0.0/resources/images/default/box/r-blue.gif +0 -0
  148. data/public/ext-3.0.0/resources/images/default/box/r.gif +0 -0
  149. data/public/ext-3.0.0/resources/images/default/box/tb-blue.gif +0 -0
  150. data/public/ext-3.0.0/resources/images/default/box/tb.gif +0 -0
  151. data/public/ext-3.0.0/resources/images/default/button/arrow.gif +0 -0
  152. data/public/ext-3.0.0/resources/images/default/button/btn.gif +0 -0
  153. data/public/ext-3.0.0/resources/images/default/button/group-cs.gif +0 -0
  154. data/public/ext-3.0.0/resources/images/default/button/group-lr.gif +0 -0
  155. data/public/ext-3.0.0/resources/images/default/button/group-tb.gif +0 -0
  156. data/public/ext-3.0.0/resources/images/default/button/s-arrow-b-noline.gif +0 -0
  157. data/public/ext-3.0.0/resources/images/default/button/s-arrow-b.gif +0 -0
  158. data/public/ext-3.0.0/resources/images/default/button/s-arrow-bo.gif +0 -0
  159. data/public/ext-3.0.0/resources/images/default/button/s-arrow-noline.gif +0 -0
  160. data/public/ext-3.0.0/resources/images/default/button/s-arrow-o.gif +0 -0
  161. data/public/ext-3.0.0/resources/images/default/button/s-arrow.gif +0 -0
  162. data/public/ext-3.0.0/resources/images/default/dd/drop-add.gif +0 -0
  163. data/public/ext-3.0.0/resources/images/default/dd/drop-no.gif +0 -0
  164. data/public/ext-3.0.0/resources/images/default/dd/drop-yes.gif +0 -0
  165. data/public/ext-3.0.0/resources/images/default/editor/tb-sprite.gif +0 -0
  166. data/public/ext-3.0.0/resources/images/default/form/checkbox.gif +0 -0
  167. data/public/ext-3.0.0/resources/images/default/form/clear-trigger.gif +0 -0
  168. data/public/ext-3.0.0/resources/images/default/form/clear-trigger.psd +0 -0
  169. data/public/ext-3.0.0/resources/images/default/form/date-trigger.gif +0 -0
  170. data/public/ext-3.0.0/resources/images/default/form/date-trigger.psd +0 -0
  171. data/public/ext-3.0.0/resources/images/default/form/error-tip-corners.gif +0 -0
  172. data/public/ext-3.0.0/resources/images/default/form/exclamation.gif +0 -0
  173. data/public/ext-3.0.0/resources/images/default/form/radio.gif +0 -0
  174. data/public/ext-3.0.0/resources/images/default/form/search-trigger.gif +0 -0
  175. data/public/ext-3.0.0/resources/images/default/form/search-trigger.psd +0 -0
  176. data/public/ext-3.0.0/resources/images/default/form/text-bg.gif +0 -0
  177. data/public/ext-3.0.0/resources/images/default/form/trigger-tpl.gif +0 -0
  178. data/public/ext-3.0.0/resources/images/default/form/trigger.gif +0 -0
  179. data/public/ext-3.0.0/resources/images/default/form/trigger.psd +0 -0
  180. data/public/ext-3.0.0/resources/images/default/gradient-bg.gif +0 -0
  181. data/public/ext-3.0.0/resources/images/default/grid/arrow-left-white.gif +0 -0
  182. data/public/ext-3.0.0/resources/images/default/grid/arrow-right-white.gif +0 -0
  183. data/public/ext-3.0.0/resources/images/default/grid/col-move-bottom.gif +0 -0
  184. data/public/ext-3.0.0/resources/images/default/grid/col-move-top.gif +0 -0
  185. data/public/ext-3.0.0/resources/images/default/grid/columns.gif +0 -0
  186. data/public/ext-3.0.0/resources/images/default/grid/dirty.gif +0 -0
  187. data/public/ext-3.0.0/resources/images/default/grid/done.gif +0 -0
  188. data/public/ext-3.0.0/resources/images/default/grid/drop-no.gif +0 -0
  189. data/public/ext-3.0.0/resources/images/default/grid/drop-yes.gif +0 -0
  190. data/public/ext-3.0.0/resources/images/default/grid/footer-bg.gif +0 -0
  191. data/public/ext-3.0.0/resources/images/default/grid/grid-blue-hd.gif +0 -0
  192. data/public/ext-3.0.0/resources/images/default/grid/grid-blue-split.gif +0 -0
  193. data/public/ext-3.0.0/resources/images/default/grid/grid-hrow.gif +0 -0
  194. data/public/ext-3.0.0/resources/images/default/grid/grid-loading.gif +0 -0
  195. data/public/ext-3.0.0/resources/images/default/grid/grid-split.gif +0 -0
  196. data/public/ext-3.0.0/resources/images/default/grid/grid-vista-hd.gif +0 -0
  197. data/public/ext-3.0.0/resources/images/default/grid/grid3-hd-btn.gif +0 -0
  198. data/public/ext-3.0.0/resources/images/default/grid/grid3-hrow-over.gif +0 -0
  199. data/public/ext-3.0.0/resources/images/default/grid/grid3-hrow.gif +0 -0
  200. data/public/ext-3.0.0/resources/images/default/grid/grid3-special-col-bg.gif +0 -0
  201. data/public/ext-3.0.0/resources/images/default/grid/grid3-special-col-sel-bg.gif +0 -0
  202. data/public/ext-3.0.0/resources/images/default/grid/group-by.gif +0 -0
  203. data/public/ext-3.0.0/resources/images/default/grid/group-collapse.gif +0 -0
  204. data/public/ext-3.0.0/resources/images/default/grid/group-expand-sprite.gif +0 -0
  205. data/public/ext-3.0.0/resources/images/default/grid/group-expand.gif +0 -0
  206. data/public/ext-3.0.0/resources/images/default/grid/hd-pop.gif +0 -0
  207. data/public/ext-3.0.0/resources/images/default/grid/hmenu-asc.gif +0 -0
  208. data/public/ext-3.0.0/resources/images/default/grid/hmenu-desc.gif +0 -0
  209. data/public/ext-3.0.0/resources/images/default/grid/hmenu-lock.gif +0 -0
  210. data/public/ext-3.0.0/resources/images/default/grid/hmenu-lock.png +0 -0
  211. data/public/ext-3.0.0/resources/images/default/grid/hmenu-unlock.gif +0 -0
  212. data/public/ext-3.0.0/resources/images/default/grid/hmenu-unlock.png +0 -0
  213. data/public/ext-3.0.0/resources/images/default/grid/invalid_line.gif +0 -0
  214. data/public/ext-3.0.0/resources/images/default/grid/loading.gif +0 -0
  215. data/public/ext-3.0.0/resources/images/default/grid/mso-hd.gif +0 -0
  216. data/public/ext-3.0.0/resources/images/default/grid/nowait.gif +0 -0
  217. data/public/ext-3.0.0/resources/images/default/grid/page-first-disabled.gif +0 -0
  218. data/public/ext-3.0.0/resources/images/default/grid/page-first.gif +0 -0
  219. data/public/ext-3.0.0/resources/images/default/grid/page-last-disabled.gif +0 -0
  220. data/public/ext-3.0.0/resources/images/default/grid/page-last.gif +0 -0
  221. data/public/ext-3.0.0/resources/images/default/grid/page-next-disabled.gif +0 -0
  222. data/public/ext-3.0.0/resources/images/default/grid/page-next.gif +0 -0
  223. data/public/ext-3.0.0/resources/images/default/grid/page-prev-disabled.gif +0 -0
  224. data/public/ext-3.0.0/resources/images/default/grid/page-prev.gif +0 -0
  225. data/public/ext-3.0.0/resources/images/default/grid/pick-button.gif +0 -0
  226. data/public/ext-3.0.0/resources/images/default/grid/refresh.gif +0 -0
  227. data/public/ext-3.0.0/resources/images/default/grid/row-check-sprite.gif +0 -0
  228. data/public/ext-3.0.0/resources/images/default/grid/row-expand-sprite.gif +0 -0
  229. data/public/ext-3.0.0/resources/images/default/grid/row-over.gif +0 -0
  230. data/public/ext-3.0.0/resources/images/default/grid/row-sel.gif +0 -0
  231. data/public/ext-3.0.0/resources/images/default/grid/sort-hd.gif +0 -0
  232. data/public/ext-3.0.0/resources/images/default/grid/sort_asc.gif +0 -0
  233. data/public/ext-3.0.0/resources/images/default/grid/sort_desc.gif +0 -0
  234. data/public/ext-3.0.0/resources/images/default/grid/wait.gif +0 -0
  235. data/public/ext-3.0.0/resources/images/default/layout/collapse.gif +0 -0
  236. data/public/ext-3.0.0/resources/images/default/layout/expand.gif +0 -0
  237. data/public/ext-3.0.0/resources/images/default/layout/gradient-bg.gif +0 -0
  238. data/public/ext-3.0.0/resources/images/default/layout/mini-bottom.gif +0 -0
  239. data/public/ext-3.0.0/resources/images/default/layout/mini-left.gif +0 -0
  240. data/public/ext-3.0.0/resources/images/default/layout/mini-right.gif +0 -0
  241. data/public/ext-3.0.0/resources/images/default/layout/mini-top.gif +0 -0
  242. data/public/ext-3.0.0/resources/images/default/layout/ns-collapse.gif +0 -0
  243. data/public/ext-3.0.0/resources/images/default/layout/ns-expand.gif +0 -0
  244. data/public/ext-3.0.0/resources/images/default/layout/panel-close.gif +0 -0
  245. data/public/ext-3.0.0/resources/images/default/layout/panel-title-bg.gif +0 -0
  246. data/public/ext-3.0.0/resources/images/default/layout/panel-title-light-bg.gif +0 -0
  247. data/public/ext-3.0.0/resources/images/default/layout/stick.gif +0 -0
  248. data/public/ext-3.0.0/resources/images/default/layout/stuck.gif +0 -0
  249. data/public/ext-3.0.0/resources/images/default/layout/tab-close-on.gif +0 -0
  250. data/public/ext-3.0.0/resources/images/default/layout/tab-close.gif +0 -0
  251. data/public/ext-3.0.0/resources/images/default/menu/checked.gif +0 -0
  252. data/public/ext-3.0.0/resources/images/default/menu/group-checked.gif +0 -0
  253. data/public/ext-3.0.0/resources/images/default/menu/item-over.gif +0 -0
  254. data/public/ext-3.0.0/resources/images/default/menu/menu-parent.gif +0 -0
  255. data/public/ext-3.0.0/resources/images/default/menu/menu.gif +0 -0
  256. data/public/ext-3.0.0/resources/images/default/menu/unchecked.gif +0 -0
  257. data/public/ext-3.0.0/resources/images/default/panel/corners-sprite.gif +0 -0
  258. data/public/ext-3.0.0/resources/images/default/panel/left-right.gif +0 -0
  259. data/public/ext-3.0.0/resources/images/default/panel/light-hd.gif +0 -0
  260. data/public/ext-3.0.0/resources/images/default/panel/tool-sprite-tpl.gif +0 -0
  261. data/public/ext-3.0.0/resources/images/default/panel/tool-sprites.gif +0 -0
  262. data/public/ext-3.0.0/resources/images/default/panel/tools-sprites-trans.gif +0 -0
  263. data/public/ext-3.0.0/resources/images/default/panel/top-bottom.gif +0 -0
  264. data/public/ext-3.0.0/resources/images/default/panel/top-bottom.png +0 -0
  265. data/public/ext-3.0.0/resources/images/default/panel/white-corners-sprite.gif +0 -0
  266. data/public/ext-3.0.0/resources/images/default/panel/white-left-right.gif +0 -0
  267. data/public/ext-3.0.0/resources/images/default/panel/white-top-bottom.gif +0 -0
  268. data/public/ext-3.0.0/resources/images/default/progress/progress-bg.gif +0 -0
  269. data/public/ext-3.0.0/resources/images/default/qtip/bg.gif +0 -0
  270. data/public/ext-3.0.0/resources/images/default/qtip/close.gif +0 -0
  271. data/public/ext-3.0.0/resources/images/default/qtip/tip-anchor-sprite.gif +0 -0
  272. data/public/ext-3.0.0/resources/images/default/qtip/tip-sprite.gif +0 -0
  273. data/public/ext-3.0.0/resources/images/default/s.gif +0 -0
  274. data/public/ext-3.0.0/resources/images/default/shadow-c.png +0 -0
  275. data/public/ext-3.0.0/resources/images/default/shadow-lr.png +0 -0
  276. data/public/ext-3.0.0/resources/images/default/shadow.png +0 -0
  277. data/public/ext-3.0.0/resources/images/default/shared/blue-loading.gif +0 -0
  278. data/public/ext-3.0.0/resources/images/default/shared/calendar.gif +0 -0
  279. data/public/ext-3.0.0/resources/images/default/shared/glass-bg.gif +0 -0
  280. data/public/ext-3.0.0/resources/images/default/shared/hd-sprite.gif +0 -0
  281. data/public/ext-3.0.0/resources/images/default/shared/large-loading.gif +0 -0
  282. data/public/ext-3.0.0/resources/images/default/shared/left-btn.gif +0 -0
  283. data/public/ext-3.0.0/resources/images/default/shared/loading-balls.gif +0 -0
  284. data/public/ext-3.0.0/resources/images/default/shared/right-btn.gif +0 -0
  285. data/public/ext-3.0.0/resources/images/default/shared/warning.gif +0 -0
  286. data/public/ext-3.0.0/resources/images/default/sizer/e-handle-dark.gif +0 -0
  287. data/public/ext-3.0.0/resources/images/default/sizer/e-handle.gif +0 -0
  288. data/public/ext-3.0.0/resources/images/default/sizer/ne-handle-dark.gif +0 -0
  289. data/public/ext-3.0.0/resources/images/default/sizer/ne-handle.gif +0 -0
  290. data/public/ext-3.0.0/resources/images/default/sizer/nw-handle-dark.gif +0 -0
  291. data/public/ext-3.0.0/resources/images/default/sizer/nw-handle.gif +0 -0
  292. data/public/ext-3.0.0/resources/images/default/sizer/s-handle-dark.gif +0 -0
  293. data/public/ext-3.0.0/resources/images/default/sizer/s-handle.gif +0 -0
  294. data/public/ext-3.0.0/resources/images/default/sizer/se-handle-dark.gif +0 -0
  295. data/public/ext-3.0.0/resources/images/default/sizer/se-handle.gif +0 -0
  296. data/public/ext-3.0.0/resources/images/default/sizer/square.gif +0 -0
  297. data/public/ext-3.0.0/resources/images/default/sizer/sw-handle-dark.gif +0 -0
  298. data/public/ext-3.0.0/resources/images/default/sizer/sw-handle.gif +0 -0
  299. data/public/ext-3.0.0/resources/images/default/slider/slider-bg.png +0 -0
  300. data/public/ext-3.0.0/resources/images/default/slider/slider-thumb.png +0 -0
  301. data/public/ext-3.0.0/resources/images/default/slider/slider-v-bg.png +0 -0
  302. data/public/ext-3.0.0/resources/images/default/slider/slider-v-thumb.png +0 -0
  303. data/public/ext-3.0.0/resources/images/default/tabs/scroll-left.gif +0 -0
  304. data/public/ext-3.0.0/resources/images/default/tabs/scroll-right.gif +0 -0
  305. data/public/ext-3.0.0/resources/images/default/tabs/scroller-bg.gif +0 -0
  306. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
  307. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
  308. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-left-bg.gif +0 -0
  309. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-right-bg.gif +0 -0
  310. data/public/ext-3.0.0/resources/images/default/tabs/tab-close.gif +0 -0
  311. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-bg.gif +0 -0
  312. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-bg.png +0 -0
  313. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-btm-bg.gif +0 -0
  314. data/public/ext-3.0.0/resources/images/default/tabs/tabs-sprite.gif +0 -0
  315. data/public/ext-3.0.0/resources/images/default/toolbar/bg.gif +0 -0
  316. data/public/ext-3.0.0/resources/images/default/toolbar/btn-arrow-light.gif +0 -0
  317. data/public/ext-3.0.0/resources/images/default/toolbar/btn-arrow.gif +0 -0
  318. data/public/ext-3.0.0/resources/images/default/toolbar/btn-over-bg.gif +0 -0
  319. data/public/ext-3.0.0/resources/images/default/toolbar/gray-bg.gif +0 -0
  320. data/public/ext-3.0.0/resources/images/default/toolbar/more.gif +0 -0
  321. data/public/ext-3.0.0/resources/images/default/toolbar/tb-bg.gif +0 -0
  322. data/public/ext-3.0.0/resources/images/default/toolbar/tb-btn-sprite.gif +0 -0
  323. data/public/ext-3.0.0/resources/images/default/toolbar/tb-xl-btn-sprite.gif +0 -0
  324. data/public/ext-3.0.0/resources/images/default/toolbar/tb-xl-sep.gif +0 -0
  325. data/public/ext-3.0.0/resources/images/default/tree/arrows.gif +0 -0
  326. data/public/ext-3.0.0/resources/images/default/tree/drop-add.gif +0 -0
  327. data/public/ext-3.0.0/resources/images/default/tree/drop-between.gif +0 -0
  328. data/public/ext-3.0.0/resources/images/default/tree/drop-no.gif +0 -0
  329. data/public/ext-3.0.0/resources/images/default/tree/drop-over.gif +0 -0
  330. data/public/ext-3.0.0/resources/images/default/tree/drop-under.gif +0 -0
  331. data/public/ext-3.0.0/resources/images/default/tree/drop-yes.gif +0 -0
  332. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-minus-nl.gif +0 -0
  333. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-minus.gif +0 -0
  334. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-plus-nl.gif +0 -0
  335. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-plus.gif +0 -0
  336. data/public/ext-3.0.0/resources/images/default/tree/elbow-end.gif +0 -0
  337. data/public/ext-3.0.0/resources/images/default/tree/elbow-line.gif +0 -0
  338. data/public/ext-3.0.0/resources/images/default/tree/elbow-minus-nl.gif +0 -0
  339. data/public/ext-3.0.0/resources/images/default/tree/elbow-minus.gif +0 -0
  340. data/public/ext-3.0.0/resources/images/default/tree/elbow-plus-nl.gif +0 -0
  341. data/public/ext-3.0.0/resources/images/default/tree/elbow-plus.gif +0 -0
  342. data/public/ext-3.0.0/resources/images/default/tree/elbow.gif +0 -0
  343. data/public/ext-3.0.0/resources/images/default/tree/folder-open.gif +0 -0
  344. data/public/ext-3.0.0/resources/images/default/tree/folder.gif +0 -0
  345. data/public/ext-3.0.0/resources/images/default/tree/leaf.gif +0 -0
  346. data/public/ext-3.0.0/resources/images/default/tree/loading.gif +0 -0
  347. data/public/ext-3.0.0/resources/images/default/tree/s.gif +0 -0
  348. data/public/ext-3.0.0/resources/images/default/window/icon-error.gif +0 -0
  349. data/public/ext-3.0.0/resources/images/default/window/icon-info.gif +0 -0
  350. data/public/ext-3.0.0/resources/images/default/window/icon-question.gif +0 -0
  351. data/public/ext-3.0.0/resources/images/default/window/icon-warning.gif +0 -0
  352. data/public/ext-3.0.0/resources/images/default/window/left-corners.png +0 -0
  353. data/public/ext-3.0.0/resources/images/default/window/left-corners.psd +0 -0
  354. data/public/ext-3.0.0/resources/images/default/window/left-right.png +0 -0
  355. data/public/ext-3.0.0/resources/images/default/window/left-right.psd +0 -0
  356. data/public/ext-3.0.0/resources/images/default/window/right-corners.png +0 -0
  357. data/public/ext-3.0.0/resources/images/default/window/right-corners.psd +0 -0
  358. data/public/ext-3.0.0/resources/images/default/window/top-bottom.png +0 -0
  359. data/public/ext-3.0.0/resources/images/default/window/top-bottom.psd +0 -0
  360. data/public/ext-3.0.0/resources/images/icon/chart.gif +0 -0
  361. data/public/ext-3.0.0/src/adapter/core/ext-base-ajax.js +371 -0
  362. data/public/ext-3.0.0/src/adapter/core/ext-base-anim-extra.js +301 -0
  363. data/public/ext-3.0.0/src/adapter/core/ext-base-anim.js +477 -0
  364. data/public/ext-3.0.0/src/adapter/core/ext-base-begin.js +18 -0
  365. data/public/ext-3.0.0/src/adapter/core/ext-base-dom.js +157 -0
  366. data/public/ext-3.0.0/src/adapter/core/ext-base-end.js +21 -0
  367. data/public/ext-3.0.0/src/adapter/core/ext-base-event.js +453 -0
  368. data/public/ext-3.0.0/src/adapter/core/ext-base-point.js +17 -0
  369. data/public/ext-3.0.0/src/adapter/core/ext-base-region.js +81 -0
  370. data/public/ext-3.0.0/src/adapter/ext-base-dom-more.js +9 -0
  371. data/public/ext-3.0.0/src/adapter/jquery-bridge.js +546 -0
  372. data/public/ext-3.0.0/src/adapter/prototype-bridge.js +600 -0
  373. data/public/ext-3.0.0/src/adapter/yui-bridge.js +390 -0
  374. data/public/ext-3.0.0/src/core/CompositeElement.js +136 -0
  375. data/public/ext-3.0.0/src/core/CompositeElementLite-more.js +102 -0
  376. data/public/ext-3.0.0/src/core/DomHelper-more.js +179 -0
  377. data/public/ext-3.0.0/src/core/Element-more.js +192 -0
  378. data/public/ext-3.0.0/src/core/Element.alignment.js +370 -0
  379. data/public/ext-3.0.0/src/core/Element.dd.js +46 -0
  380. data/public/ext-3.0.0/src/core/Element.fx-more.js +152 -0
  381. data/public/ext-3.0.0/src/core/Element.insertion-more.js +52 -0
  382. data/public/ext-3.0.0/src/core/Element.keys.js +48 -0
  383. data/public/ext-3.0.0/src/core/Element.legacy.js +42 -0
  384. data/public/ext-3.0.0/src/core/Element.position-more.js +165 -0
  385. data/public/ext-3.0.0/src/core/Element.scroll-more.js +110 -0
  386. data/public/ext-3.0.0/src/core/Element.style-more.js +318 -0
  387. data/public/ext-3.0.0/src/core/Error.js +81 -0
  388. data/public/ext-3.0.0/src/core/EventManager-more.js +334 -0
  389. data/public/ext-3.0.0/src/core/Ext-more.js +669 -0
  390. data/public/ext-3.0.0/src/core/Template-more.js +115 -0
  391. data/public/ext-3.0.0/src/core/core/CompositeElementLite.js +197 -0
  392. data/public/ext-3.0.0/src/core/core/DomHelper.js +378 -0
  393. data/public/ext-3.0.0/src/core/core/DomQuery.js +826 -0
  394. data/public/ext-3.0.0/src/core/core/Element.fx.js +324 -0
  395. data/public/ext-3.0.0/src/core/core/Element.insertion.js +147 -0
  396. data/public/ext-3.0.0/src/core/core/Element.js +945 -0
  397. data/public/ext-3.0.0/src/core/core/Element.position.js +303 -0
  398. data/public/ext-3.0.0/src/core/core/Element.scroll.js +58 -0
  399. data/public/ext-3.0.0/src/core/core/Element.style.js +439 -0
  400. data/public/ext-3.0.0/src/core/core/Element.traversal.js +176 -0
  401. data/public/ext-3.0.0/src/core/core/EventManager.js +623 -0
  402. data/public/ext-3.0.0/src/core/core/Ext.js +922 -0
  403. data/public/ext-3.0.0/src/core/core/Fx.js +1115 -0
  404. data/public/ext-3.0.0/src/core/core/Template.js +185 -0
  405. data/public/ext-3.0.0/src/data/Api.js +210 -0
  406. data/public/ext-3.0.0/src/data/ArrayReader.js +102 -0
  407. data/public/ext-3.0.0/src/data/ArrayStore.js +70 -0
  408. data/public/ext-3.0.0/src/data/DataField.js +249 -0
  409. data/public/ext-3.0.0/src/data/DataProxy.js +427 -0
  410. data/public/ext-3.0.0/src/data/DataReader.js +160 -0
  411. data/public/ext-3.0.0/src/data/DataWriter.js +201 -0
  412. data/public/ext-3.0.0/src/data/DirectProxy.js +141 -0
  413. data/public/ext-3.0.0/src/data/DirectStore.js +52 -0
  414. data/public/ext-3.0.0/src/data/GroupingStore.js +139 -0
  415. data/public/ext-3.0.0/src/data/HttpProxy.js +276 -0
  416. data/public/ext-3.0.0/src/data/JsonReader.js +311 -0
  417. data/public/ext-3.0.0/src/data/JsonStore.js +49 -0
  418. data/public/ext-3.0.0/src/data/JsonWriter.js +77 -0
  419. data/public/ext-3.0.0/src/data/MemoryProxy.js +69 -0
  420. data/public/ext-3.0.0/src/data/Record.js +400 -0
  421. data/public/ext-3.0.0/src/data/ScriptTagProxy.js +279 -0
  422. data/public/ext-3.0.0/src/data/SortTypes.js +91 -0
  423. data/public/ext-3.0.0/src/data/Store.js +1492 -0
  424. data/public/ext-3.0.0/src/data/StoreMgr.js +72 -0
  425. data/public/ext-3.0.0/src/data/Tree.js +785 -0
  426. data/public/ext-3.0.0/src/data/XmlReader.js +128 -0
  427. data/public/ext-3.0.0/src/data/XmlStore.js +75 -0
  428. data/public/ext-3.0.0/src/data/XmlWriter.js +45 -0
  429. data/public/ext-3.0.0/src/data/core/Connection.js +575 -0
  430. data/public/ext-3.0.0/src/dd/DDCore.js +2992 -0
  431. data/public/ext-3.0.0/src/dd/DragSource.js +365 -0
  432. data/public/ext-3.0.0/src/dd/DragTracker.js +217 -0
  433. data/public/ext-3.0.0/src/dd/DragZone.js +133 -0
  434. data/public/ext-3.0.0/src/dd/DropTarget.js +115 -0
  435. data/public/ext-3.0.0/src/dd/DropZone.js +262 -0
  436. data/public/ext-3.0.0/src/dd/Registry.js +127 -0
  437. data/public/ext-3.0.0/src/dd/ScrollManager.js +201 -0
  438. data/public/ext-3.0.0/src/dd/StatusProxy.js +171 -0
  439. data/public/ext-3.0.0/src/debug.js +906 -0
  440. data/public/ext-3.0.0/src/direct/Direct.js +235 -0
  441. data/public/ext-3.0.0/src/direct/Event.js +34 -0
  442. data/public/ext-3.0.0/src/direct/JsonProvider.js +45 -0
  443. data/public/ext-3.0.0/src/direct/PollingProvider.js +151 -0
  444. data/public/ext-3.0.0/src/direct/Provider.js +110 -0
  445. data/public/ext-3.0.0/src/direct/RemotingProvider.js +373 -0
  446. data/public/ext-3.0.0/src/direct/Transaction.js +32 -0
  447. data/public/ext-3.0.0/src/locale/ext-lang-af.js +184 -0
  448. data/public/ext-3.0.0/src/locale/ext-lang-bg.js +278 -0
  449. data/public/ext-3.0.0/src/locale/ext-lang-ca.js +315 -0
  450. data/public/ext-3.0.0/src/locale/ext-lang-cs.js +293 -0
  451. data/public/ext-3.0.0/src/locale/ext-lang-da.js +296 -0
  452. data/public/ext-3.0.0/src/locale/ext-lang-de.js +326 -0
  453. data/public/ext-3.0.0/src/locale/ext-lang-el_GR.js +309 -0
  454. data/public/ext-3.0.0/src/locale/ext-lang-en.js +335 -0
  455. data/public/ext-3.0.0/src/locale/ext-lang-en_GB.js +315 -0
  456. data/public/ext-3.0.0/src/locale/ext-lang-es.js +318 -0
  457. data/public/ext-3.0.0/src/locale/ext-lang-fa.js +272 -0
  458. data/public/ext-3.0.0/src/locale/ext-lang-fi.js +302 -0
  459. data/public/ext-3.0.0/src/locale/ext-lang-fr.js +335 -0
  460. data/public/ext-3.0.0/src/locale/ext-lang-fr_CA.js +218 -0
  461. data/public/ext-3.0.0/src/locale/ext-lang-gr.js +175 -0
  462. data/public/ext-3.0.0/src/locale/ext-lang-he.js +292 -0
  463. data/public/ext-3.0.0/src/locale/ext-lang-hr.js +295 -0
  464. data/public/ext-3.0.0/src/locale/ext-lang-hu.js +296 -0
  465. data/public/ext-3.0.0/src/locale/ext-lang-id.js +302 -0
  466. data/public/ext-3.0.0/src/locale/ext-lang-it.js +295 -0
  467. data/public/ext-3.0.0/src/locale/ext-lang-ja.js +318 -0
  468. data/public/ext-3.0.0/src/locale/ext-lang-ko.js +267 -0
  469. data/public/ext-3.0.0/src/locale/ext-lang-lt.js +333 -0
  470. data/public/ext-3.0.0/src/locale/ext-lang-lv.js +176 -0
  471. data/public/ext-3.0.0/src/locale/ext-lang-mk.js +176 -0
  472. data/public/ext-3.0.0/src/locale/ext-lang-nl.js +323 -0
  473. data/public/ext-3.0.0/src/locale/ext-lang-no_NB.js +294 -0
  474. data/public/ext-3.0.0/src/locale/ext-lang-no_NN.js +294 -0
  475. data/public/ext-3.0.0/src/locale/ext-lang-pl.js +304 -0
  476. data/public/ext-3.0.0/src/locale/ext-lang-pt.js +260 -0
  477. data/public/ext-3.0.0/src/locale/ext-lang-pt_BR.js +302 -0
  478. data/public/ext-3.0.0/src/locale/ext-lang-pt_PT.js +298 -0
  479. data/public/ext-3.0.0/src/locale/ext-lang-ro.js +295 -0
  480. data/public/ext-3.0.0/src/locale/ext-lang-ru.js +319 -0
  481. data/public/ext-3.0.0/src/locale/ext-lang-sk.js +182 -0
  482. data/public/ext-3.0.0/src/locale/ext-lang-sl.js +176 -0
  483. data/public/ext-3.0.0/src/locale/ext-lang-sr.js +179 -0
  484. data/public/ext-3.0.0/src/locale/ext-lang-sr_RS.js +178 -0
  485. data/public/ext-3.0.0/src/locale/ext-lang-sv_SE.js +178 -0
  486. data/public/ext-3.0.0/src/locale/ext-lang-th.js +294 -0
  487. data/public/ext-3.0.0/src/locale/ext-lang-tr.js +306 -0
  488. data/public/ext-3.0.0/src/locale/ext-lang-ukr.js +258 -0
  489. data/public/ext-3.0.0/src/locale/ext-lang-vn.js +181 -0
  490. data/public/ext-3.0.0/src/locale/ext-lang-zh_CN.js +174 -0
  491. data/public/ext-3.0.0/src/locale/ext-lang-zh_TW.js +178 -0
  492. data/public/ext-3.0.0/src/state/CookieProvider.js +91 -0
  493. data/public/ext-3.0.0/src/state/Provider.js +127 -0
  494. data/public/ext-3.0.0/src/state/StateManager.js +69 -0
  495. data/public/ext-3.0.0/src/util/CSS.js +161 -0
  496. data/public/ext-3.0.0/src/util/ClickRepeater.js +200 -0
  497. data/public/ext-3.0.0/src/util/Cookies.js +96 -0
  498. data/public/ext-3.0.0/src/util/Date.js +1317 -0
  499. data/public/ext-3.0.0/src/util/Format.js +356 -0
  500. data/public/ext-3.0.0/src/util/History.js +203 -0
  501. data/public/ext-3.0.0/src/util/KeyMap.js +242 -0
  502. data/public/ext-3.0.0/src/util/KeyNav.js +161 -0
  503. data/public/ext-3.0.0/src/util/MixedCollection.js +576 -0
  504. data/public/ext-3.0.0/src/util/Observable-more.js +178 -0
  505. data/public/ext-3.0.0/src/util/TextMetrics.js +131 -0
  506. data/public/ext-3.0.0/src/util/UpdateManager.js +536 -0
  507. data/public/ext-3.0.0/src/util/XTemplate.js +379 -0
  508. data/public/ext-3.0.0/src/util/core/DelayedTask.js +68 -0
  509. data/public/ext-3.0.0/src/util/core/JSON.js +174 -0
  510. data/public/ext-3.0.0/src/util/core/Observable.js +483 -0
  511. data/public/ext-3.0.0/src/util/core/TaskMgr.js +174 -0
  512. data/public/ext-3.0.0/src/widgets/Action.js +252 -0
  513. data/public/ext-3.0.0/src/widgets/BoxComponent.js +519 -0
  514. data/public/ext-3.0.0/src/widgets/Button.js +762 -0
  515. data/public/ext-3.0.0/src/widgets/ButtonGroup.js +103 -0
  516. data/public/ext-3.0.0/src/widgets/ColorPalette.js +148 -0
  517. data/public/ext-3.0.0/src/widgets/Component.js +1540 -0
  518. data/public/ext-3.0.0/src/widgets/ComponentMgr.js +159 -0
  519. data/public/ext-3.0.0/src/widgets/Container.js +894 -0
  520. data/public/ext-3.0.0/src/widgets/CycleButton.js +188 -0
  521. data/public/ext-3.0.0/src/widgets/DataView.js +749 -0
  522. data/public/ext-3.0.0/src/widgets/DatePicker.js +771 -0
  523. data/public/ext-3.0.0/src/widgets/Editor.js +385 -0
  524. data/public/ext-3.0.0/src/widgets/Layer.js +466 -0
  525. data/public/ext-3.0.0/src/widgets/LoadMask.js +123 -0
  526. data/public/ext-3.0.0/src/widgets/MessageBox.js +626 -0
  527. data/public/ext-3.0.0/src/widgets/PagingToolbar.js +502 -0
  528. data/public/ext-3.0.0/src/widgets/Panel.js +1772 -0
  529. data/public/ext-3.0.0/src/widgets/PanelDD.js +154 -0
  530. data/public/ext-3.0.0/src/widgets/ProgressBar.js +289 -0
  531. data/public/ext-3.0.0/src/widgets/Resizable.js +760 -0
  532. data/public/ext-3.0.0/src/widgets/Shadow.js +192 -0
  533. data/public/ext-3.0.0/src/widgets/Slider.js +426 -0
  534. data/public/ext-3.0.0/src/widgets/SplitBar.js +436 -0
  535. data/public/ext-3.0.0/src/widgets/SplitButton.js +124 -0
  536. data/public/ext-3.0.0/src/widgets/TabPanel.js +1100 -0
  537. data/public/ext-3.0.0/src/widgets/Toolbar.js +781 -0
  538. data/public/ext-3.0.0/src/widgets/Viewport.js +124 -0
  539. data/public/ext-3.0.0/src/widgets/Window.js +941 -0
  540. data/public/ext-3.0.0/src/widgets/WindowManager.js +187 -0
  541. data/public/ext-3.0.0/src/widgets/chart/Chart.js +721 -0
  542. data/public/ext-3.0.0/src/widgets/chart/EventProxy.js +20 -0
  543. data/public/ext-3.0.0/src/widgets/chart/FlashComponent.js +117 -0
  544. data/public/ext-3.0.0/src/widgets/chart/swfobject.js +783 -0
  545. data/public/ext-3.0.0/src/widgets/form/Action.js +626 -0
  546. data/public/ext-3.0.0/src/widgets/form/BasicForm.js +735 -0
  547. data/public/ext-3.0.0/src/widgets/form/Checkbox.js +177 -0
  548. data/public/ext-3.0.0/src/widgets/form/CheckboxGroup.js +419 -0
  549. data/public/ext-3.0.0/src/widgets/form/Combo.js +1232 -0
  550. data/public/ext-3.0.0/src/widgets/form/DateField.js +389 -0
  551. data/public/ext-3.0.0/src/widgets/form/DisplayField.js +98 -0
  552. data/public/ext-3.0.0/src/widgets/form/Field.js +640 -0
  553. data/public/ext-3.0.0/src/widgets/form/FieldSet.js +305 -0
  554. data/public/ext-3.0.0/src/widgets/form/Form.js +335 -0
  555. data/public/ext-3.0.0/src/widgets/form/Hidden.js +39 -0
  556. data/public/ext-3.0.0/src/widgets/form/HtmlEditor.js +1179 -0
  557. data/public/ext-3.0.0/src/widgets/form/Label.js +64 -0
  558. data/public/ext-3.0.0/src/widgets/form/NumberField.js +139 -0
  559. data/public/ext-3.0.0/src/widgets/form/Radio.js +81 -0
  560. data/public/ext-3.0.0/src/widgets/form/RadioGroup.js +116 -0
  561. data/public/ext-3.0.0/src/widgets/form/TextArea.js +117 -0
  562. data/public/ext-3.0.0/src/widgets/form/TextField.js +491 -0
  563. data/public/ext-3.0.0/src/widgets/form/TimeField.js +146 -0
  564. data/public/ext-3.0.0/src/widgets/form/TriggerField.js +328 -0
  565. data/public/ext-3.0.0/src/widgets/form/VTypes.js +135 -0
  566. data/public/ext-3.0.0/src/widgets/grid/AbstractSelectionModel.js +57 -0
  567. data/public/ext-3.0.0/src/widgets/grid/CellSelectionModel.js +262 -0
  568. data/public/ext-3.0.0/src/widgets/grid/CheckboxSelectionModel.js +103 -0
  569. data/public/ext-3.0.0/src/widgets/grid/Column.js +406 -0
  570. data/public/ext-3.0.0/src/widgets/grid/ColumnDD.js +199 -0
  571. data/public/ext-3.0.0/src/widgets/grid/ColumnModel.js +592 -0
  572. data/public/ext-3.0.0/src/widgets/grid/ColumnSplitDD.js +62 -0
  573. data/public/ext-3.0.0/src/widgets/grid/EditorGrid.js +291 -0
  574. data/public/ext-3.0.0/src/widgets/grid/GridDD.js +95 -0
  575. data/public/ext-3.0.0/src/widgets/grid/GridEditor.js +21 -0
  576. data/public/ext-3.0.0/src/widgets/grid/GridPanel.js +952 -0
  577. data/public/ext-3.0.0/src/widgets/grid/GridView.js +1776 -0
  578. data/public/ext-3.0.0/src/widgets/grid/GroupingView.js +517 -0
  579. data/public/ext-3.0.0/src/widgets/grid/PropertyGrid.js +370 -0
  580. data/public/ext-3.0.0/src/widgets/grid/RowNumberer.js +61 -0
  581. data/public/ext-3.0.0/src/widgets/grid/RowSelectionModel.js +530 -0
  582. data/public/ext-3.0.0/src/widgets/layout/AbsoluteLayout.js +82 -0
  583. data/public/ext-3.0.0/src/widgets/layout/AccordionLayout.js +177 -0
  584. data/public/ext-3.0.0/src/widgets/layout/AnchorLayout.js +200 -0
  585. data/public/ext-3.0.0/src/widgets/layout/BorderLayout.js +1108 -0
  586. data/public/ext-3.0.0/src/widgets/layout/BoxLayout.js +417 -0
  587. data/public/ext-3.0.0/src/widgets/layout/CardLayout.js +127 -0
  588. data/public/ext-3.0.0/src/widgets/layout/ColumnLayout.js +130 -0
  589. data/public/ext-3.0.0/src/widgets/layout/ContainerLayout.js +215 -0
  590. data/public/ext-3.0.0/src/widgets/layout/FitLayout.js +48 -0
  591. data/public/ext-3.0.0/src/widgets/layout/FormLayout.js +266 -0
  592. data/public/ext-3.0.0/src/widgets/layout/TableLayout.js +194 -0
  593. data/public/ext-3.0.0/src/widgets/list/ColumnResizer.js +123 -0
  594. data/public/ext-3.0.0/src/widgets/list/ListView.js +357 -0
  595. data/public/ext-3.0.0/src/widgets/list/Sorter.js +70 -0
  596. data/public/ext-3.0.0/src/widgets/menu/BaseItem.js +160 -0
  597. data/public/ext-3.0.0/src/widgets/menu/CheckItem.js +114 -0
  598. data/public/ext-3.0.0/src/widgets/menu/ColorMenu.js +72 -0
  599. data/public/ext-3.0.0/src/widgets/menu/DateMenu.js +90 -0
  600. data/public/ext-3.0.0/src/widgets/menu/Item.js +211 -0
  601. data/public/ext-3.0.0/src/widgets/menu/Menu.js +733 -0
  602. data/public/ext-3.0.0/src/widgets/menu/MenuMgr.js +211 -0
  603. data/public/ext-3.0.0/src/widgets/menu/Separator.js +46 -0
  604. data/public/ext-3.0.0/src/widgets/menu/TextItem.js +46 -0
  605. data/public/ext-3.0.0/src/widgets/tips/QuickTip.js +207 -0
  606. data/public/ext-3.0.0/src/widgets/tips/QuickTips.js +159 -0
  607. data/public/ext-3.0.0/src/widgets/tips/Tip.js +157 -0
  608. data/public/ext-3.0.0/src/widgets/tips/ToolTip.js +492 -0
  609. data/public/ext-3.0.0/src/widgets/tree/AsyncTreeNode.js +114 -0
  610. data/public/ext-3.0.0/src/widgets/tree/TreeDragZone.js +82 -0
  611. data/public/ext-3.0.0/src/widgets/tree/TreeDropZone.js +321 -0
  612. data/public/ext-3.0.0/src/widgets/tree/TreeEditor.js +160 -0
  613. data/public/ext-3.0.0/src/widgets/tree/TreeEventModel.js +169 -0
  614. data/public/ext-3.0.0/src/widgets/tree/TreeFilter.js +114 -0
  615. data/public/ext-3.0.0/src/widgets/tree/TreeLoader.js +342 -0
  616. data/public/ext-3.0.0/src/widgets/tree/TreeNode.js +546 -0
  617. data/public/ext-3.0.0/src/widgets/tree/TreeNodeUI.js +633 -0
  618. data/public/ext-3.0.0/src/widgets/tree/TreePanel.js +918 -0
  619. data/public/ext-3.0.0/src/widgets/tree/TreeSelectionModel.js +315 -0
  620. data/public/ext-3.0.0/src/widgets/tree/TreeSorter.js +106 -0
  621. data/public/js/ext-portal.js +235 -0
  622. data/public/js/global.js +7 -0
  623. data/public/js/outerframe.js +47 -0
  624. data/public/js/portal.js +713 -0
  625. data/public/js/test_chart.js +152 -0
  626. data/test/config.rb +62 -0
  627. data/test/config/hosts.yaml +5 -0
  628. data/test/config/log.yaml +1 -0
  629. data/test/config/memcache.yaml +5 -0
  630. data/test/exception.rb +39 -0
  631. data/test/method_missing.rb +14 -0
  632. data/test/module.rb +39 -0
  633. data/test/remote_lmp.rb +126 -0
  634. data/test/sinatra.rb +29 -0
  635. data/test/sinatra_base.rb +16 -0
  636. metadata +690 -0
@@ -0,0 +1,211 @@
1
+ /*!
2
+ * Ext JS Library 3.0.0
3
+ * Copyright(c) 2006-2009 Ext JS, LLC
4
+ * licensing@extjs.com
5
+ * http://www.extjs.com/license
6
+ */
7
+ /**
8
+ * @class Ext.menu.Item
9
+ * @extends Ext.menu.BaseItem
10
+ * A base class for all menu items that require menu-related functionality (like sub-menus) and are not static
11
+ * display items. Item extends the base functionality of {@link Ext.menu.BaseItem} by adding menu-specific
12
+ * activation and click handling.
13
+ * @constructor
14
+ * Creates a new Item
15
+ * @param {Object} config Configuration options
16
+ * @xtype menuitem
17
+ */
18
+ Ext.menu.Item = function(config){
19
+ Ext.menu.Item.superclass.constructor.call(this, config);
20
+ if(this.menu){
21
+ this.menu = Ext.menu.MenuMgr.get(this.menu);
22
+ }
23
+ };
24
+ Ext.extend(Ext.menu.Item, Ext.menu.BaseItem, {
25
+ /**
26
+ * @property menu
27
+ * @type Ext.menu.Menu
28
+ * The submenu associated with this Item if one was configured.
29
+ */
30
+ /**
31
+ * @cfg {Mixed} menu (optional) Either an instance of {@link Ext.menu.Menu} or the config object for an
32
+ * {@link Ext.menu.Menu} which acts as the submenu when this item is activated.
33
+ */
34
+ /**
35
+ * @cfg {String} icon The path to an icon to display in this item (defaults to Ext.BLANK_IMAGE_URL). If
36
+ * icon is specified {@link #iconCls} should not be.
37
+ */
38
+ /**
39
+ * @cfg {String} iconCls A CSS class that specifies a background image that will be used as the icon for
40
+ * this item (defaults to ''). If iconCls is specified {@link #icon} should not be.
41
+ */
42
+ /**
43
+ * @cfg {String} text The text to display in this item (defaults to '').
44
+ */
45
+ /**
46
+ * @cfg {String} href The href attribute to use for the underlying anchor link (defaults to '#').
47
+ */
48
+ /**
49
+ * @cfg {String} hrefTarget The target attribute to use for the underlying anchor link (defaults to '').
50
+ */
51
+ /**
52
+ * @cfg {String} itemCls The default CSS class to use for menu items (defaults to 'x-menu-item')
53
+ */
54
+ itemCls : 'x-menu-item',
55
+ /**
56
+ * @cfg {Boolean} canActivate True if this item can be visually activated (defaults to true)
57
+ */
58
+ canActivate : true,
59
+ /**
60
+ * @cfg {Number} showDelay Length of time in milliseconds to wait before showing this item (defaults to 200)
61
+ */
62
+ showDelay: 200,
63
+ // doc'd in BaseItem
64
+ hideDelay: 200,
65
+
66
+ // private
67
+ ctype: 'Ext.menu.Item',
68
+
69
+ // private
70
+ onRender : function(container, position){
71
+ if (!this.itemTpl) {
72
+ this.itemTpl = Ext.menu.Item.prototype.itemTpl = new Ext.XTemplate(
73
+ '<a id="{id}" class="{cls}" hidefocus="true" unselectable="on" href="{href}"',
74
+ '<tpl if="hrefTarget">',
75
+ ' target="{hrefTarget}"',
76
+ '</tpl>',
77
+ '>',
78
+ '<img src="{icon}" class="x-menu-item-icon {iconCls}"/>',
79
+ '<span class="x-menu-item-text">{text}</span>',
80
+ '</a>'
81
+ );
82
+ }
83
+ var a = this.getTemplateArgs();
84
+ this.el = position ? this.itemTpl.insertBefore(position, a, true) : this.itemTpl.append(container, a, true);
85
+ this.iconEl = this.el.child('img.x-menu-item-icon');
86
+ this.textEl = this.el.child('.x-menu-item-text');
87
+ Ext.menu.Item.superclass.onRender.call(this, container, position);
88
+ },
89
+
90
+ getTemplateArgs: function() {
91
+ return {
92
+ id: this.id,
93
+ cls: this.itemCls + (this.menu ? ' x-menu-item-arrow' : '') + (this.cls ? ' ' + this.cls : ''),
94
+ href: this.href || '#',
95
+ hrefTarget: this.hrefTarget,
96
+ icon: this.icon || Ext.BLANK_IMAGE_URL,
97
+ iconCls: this.iconCls || '',
98
+ text: this.itemText||this.text||'&#160;'
99
+ };
100
+ },
101
+
102
+ /**
103
+ * Sets the text to display in this menu item
104
+ * @param {String} text The text to display
105
+ */
106
+ setText : function(text){
107
+ this.text = text||'&#160;';
108
+ if(this.rendered){
109
+ this.textEl.update(this.text);
110
+ this.parentMenu.layout.doAutoSize();
111
+ }
112
+ },
113
+
114
+ /**
115
+ * Sets the CSS class to apply to the item's icon element
116
+ * @param {String} cls The CSS class to apply
117
+ */
118
+ setIconClass : function(cls){
119
+ var oldCls = this.iconCls;
120
+ this.iconCls = cls;
121
+ if(this.rendered){
122
+ this.iconEl.replaceClass(oldCls, this.iconCls);
123
+ }
124
+ },
125
+
126
+ //private
127
+ beforeDestroy: function(){
128
+ if (this.menu){
129
+ this.menu.destroy();
130
+ }
131
+ Ext.menu.Item.superclass.beforeDestroy.call(this);
132
+ },
133
+
134
+ // private
135
+ handleClick : function(e){
136
+ if(!this.href){ // if no link defined, stop the event automatically
137
+ e.stopEvent();
138
+ }
139
+ Ext.menu.Item.superclass.handleClick.apply(this, arguments);
140
+ },
141
+
142
+ // private
143
+ activate : function(autoExpand){
144
+ if(Ext.menu.Item.superclass.activate.apply(this, arguments)){
145
+ this.focus();
146
+ if(autoExpand){
147
+ this.expandMenu();
148
+ }
149
+ }
150
+ return true;
151
+ },
152
+
153
+ // private
154
+ shouldDeactivate : function(e){
155
+ if(Ext.menu.Item.superclass.shouldDeactivate.call(this, e)){
156
+ if(this.menu && this.menu.isVisible()){
157
+ return !this.menu.getEl().getRegion().contains(e.getPoint());
158
+ }
159
+ return true;
160
+ }
161
+ return false;
162
+ },
163
+
164
+ // private
165
+ deactivate : function(){
166
+ Ext.menu.Item.superclass.deactivate.apply(this, arguments);
167
+ this.hideMenu();
168
+ },
169
+
170
+ // private
171
+ expandMenu : function(autoActivate){
172
+ if(!this.disabled && this.menu){
173
+ clearTimeout(this.hideTimer);
174
+ delete this.hideTimer;
175
+ if(!this.menu.isVisible() && !this.showTimer){
176
+ this.showTimer = this.deferExpand.defer(this.showDelay, this, [autoActivate]);
177
+ }else if (this.menu.isVisible() && autoActivate){
178
+ this.menu.tryActivate(0, 1);
179
+ }
180
+ }
181
+ },
182
+
183
+ // private
184
+ deferExpand : function(autoActivate){
185
+ delete this.showTimer;
186
+ this.menu.show(this.container, this.parentMenu.subMenuAlign || 'tl-tr?', this.parentMenu);
187
+ if(autoActivate){
188
+ this.menu.tryActivate(0, 1);
189
+ }
190
+ },
191
+
192
+ // private
193
+ hideMenu : function(){
194
+ clearTimeout(this.showTimer);
195
+ delete this.showTimer;
196
+ if(!this.hideTimer && this.menu && this.menu.isVisible()){
197
+ this.hideTimer = this.deferHide.defer(this.hideDelay, this);
198
+ }
199
+ },
200
+
201
+ // private
202
+ deferHide : function(){
203
+ delete this.hideTimer;
204
+ if(this.menu.over){
205
+ this.parentMenu.setActiveItem(this, false);
206
+ }else{
207
+ this.menu.hide();
208
+ }
209
+ }
210
+ });
211
+ Ext.reg('menuitem', Ext.menu.Item);
@@ -0,0 +1,733 @@
1
+ /*!
2
+ * Ext JS Library 3.0.0
3
+ * Copyright(c) 2006-2009 Ext JS, LLC
4
+ * licensing@extjs.com
5
+ * http://www.extjs.com/license
6
+ */
7
+ /**
8
+ * @class Ext.layout.MenuLayout
9
+ * @extends Ext.layout.ContainerLayout
10
+ * <p>Layout manager used by {@link Ext.menu.Menu}. Generally this class should not need to be used directly.</p>
11
+ */
12
+ Ext.layout.MenuLayout = Ext.extend(Ext.layout.ContainerLayout, {
13
+ monitorResize: true,
14
+
15
+ setContainer : function(ct){
16
+ this.monitorResize = !ct.floating;
17
+ Ext.layout.MenuLayout.superclass.setContainer.call(this, ct);
18
+ },
19
+
20
+ renderItem : function(c, position, target){
21
+ if (!this.itemTpl) {
22
+ this.itemTpl = Ext.layout.MenuLayout.prototype.itemTpl = new Ext.XTemplate(
23
+ '<li id="{itemId}" class="{itemCls}">',
24
+ '<tpl if="needsIcon">',
25
+ '<img src="{icon}" class="{iconCls}"/>',
26
+ '</tpl>',
27
+ '</li>'
28
+ );
29
+ }
30
+
31
+ if(c && !c.rendered){
32
+ if(Ext.isNumber(position)){
33
+ position = target.dom.childNodes[position];
34
+ }
35
+ var a = this.getItemArgs(c);
36
+
37
+ // The Component's positionEl is the <li> it is rendered into
38
+ c.render(c.positionEl = position ?
39
+ this.itemTpl.insertBefore(position, a, true) :
40
+ this.itemTpl.append(target, a, true));
41
+
42
+ // Link the containing <li> to the item.
43
+ c.positionEl.menuItemId = c.itemId || c.id;
44
+
45
+ // If rendering a regular Component, and it needs an icon,
46
+ // move the Component rightwards.
47
+ if (!a.isMenuItem && a.needsIcon) {
48
+ c.positionEl.addClass('x-menu-list-item-indent');
49
+ }
50
+ }else if(c && !this.isValidParent(c, target)){
51
+ if(Ext.isNumber(position)){
52
+ position = target.dom.childNodes[position];
53
+ }
54
+ target.dom.insertBefore(c.getActionEl().dom, position || null);
55
+ }
56
+ },
57
+
58
+ getItemArgs: function(c) {
59
+ var isMenuItem = c instanceof Ext.menu.Item;
60
+ return {
61
+ isMenuItem: isMenuItem,
62
+ needsIcon: !isMenuItem && (c.icon || c.iconCls),
63
+ icon: c.icon || Ext.BLANK_IMAGE_URL,
64
+ iconCls: 'x-menu-item-icon ' + (c.iconCls || ''),
65
+ itemId: 'x-menu-el-' + c.id,
66
+ itemCls: 'x-menu-list-item ' + (this.extraCls || '')
67
+ };
68
+ },
69
+
70
+ // Valid if the Component is in a <li> which is part of our target <ul>
71
+ isValidParent: function(c, target) {
72
+ return c.el.up('li.x-menu-list-item', 5).dom.parentNode === (target.dom || target);
73
+ },
74
+
75
+ onLayout : function(ct, target){
76
+ this.renderAll(ct, target);
77
+ this.doAutoSize();
78
+ },
79
+
80
+ doAutoSize : function(){
81
+ var ct = this.container, w = ct.width;
82
+ if(ct.floating){
83
+ if(w){
84
+ ct.setWidth(w);
85
+ }else if(Ext.isIE){
86
+ ct.setWidth(Ext.isStrict && (Ext.isIE7 || Ext.isIE8) ? 'auto' : ct.minWidth);
87
+ var el = ct.getEl(), t = el.dom.offsetWidth; // force recalc
88
+ ct.setWidth(ct.getLayoutTarget().getWidth() + el.getFrameWidth('lr'));
89
+ }
90
+ }
91
+ }
92
+ });
93
+ Ext.Container.LAYOUTS['menu'] = Ext.layout.MenuLayout;
94
+
95
+ /**
96
+ * @class Ext.menu.Menu
97
+ * @extends Ext.Container
98
+ * <p>A menu object. This is the container to which you may add menu items. Menu can also serve as a base class
99
+ * when you want a specialized menu based off of another component (like {@link Ext.menu.DateMenu} for example).</p>
100
+ * <p>Menus may contain either {@link Ext.menu.Item menu items}, or general {@link Ext.Component Component}s.</p>
101
+ * <p>To make a contained general {@link Ext.Component Component} line up with other {@link Ext.menu.Item menu items}
102
+ * specify <tt>iconCls: 'no-icon'</tt>. This reserves a space for an icon, and indents the Component in line
103
+ * with the other menu items. See {@link Ext.form.ComboBox}.{@link Ext.form.ComboBox#getListParent getListParent}
104
+ * for an example.</p>
105
+ * <p>By default, Menus are absolutely positioned, floating Components. By configuring a Menu with
106
+ * <b><tt>{@link #floating}:false</tt></b>, a Menu may be used as child of a Container.</p>
107
+ *
108
+ * @xtype menu
109
+ */
110
+ Ext.menu.Menu = Ext.extend(Ext.Container, {
111
+ /**
112
+ * @cfg {Object} defaults
113
+ * A config object that will be applied to all items added to this container either via the {@link #items}
114
+ * config or via the {@link #add} method. The defaults config can contain any number of
115
+ * name/value property pairs to be added to each item, and should be valid for the types of items
116
+ * being added to the menu.
117
+ */
118
+ /**
119
+ * @cfg {Mixed} items
120
+ * An array of items to be added to this menu. Menus may contain either {@link Ext.menu.Item menu items},
121
+ * or general {@link Ext.Component Component}s.
122
+ */
123
+ /**
124
+ * @cfg {Number} minWidth The minimum width of the menu in pixels (defaults to 120)
125
+ */
126
+ minWidth : 120,
127
+ /**
128
+ * @cfg {Boolean/String} shadow True or "sides" for the default effect, "frame" for 4-way shadow, and "drop"
129
+ * for bottom-right shadow (defaults to "sides")
130
+ */
131
+ shadow : "sides",
132
+ /**
133
+ * @cfg {String} subMenuAlign The {@link Ext.Element#alignTo} anchor position value to use for submenus of
134
+ * this menu (defaults to "tl-tr?")
135
+ */
136
+ subMenuAlign : "tl-tr?",
137
+ /**
138
+ * @cfg {String} defaultAlign The default {@link Ext.Element#alignTo} anchor position value for this menu
139
+ * relative to its element of origin (defaults to "tl-bl?")
140
+ */
141
+ defaultAlign : "tl-bl?",
142
+ /**
143
+ * @cfg {Boolean} allowOtherMenus True to allow multiple menus to be displayed at the same time (defaults to false)
144
+ */
145
+ allowOtherMenus : false,
146
+ /**
147
+ * @cfg {Boolean} ignoreParentClicks True to ignore clicks on any item in this menu that is a parent item (displays
148
+ * a submenu) so that the submenu is not dismissed when clicking the parent item (defaults to false).
149
+ */
150
+ ignoreParentClicks : false,
151
+ /**
152
+ * @cfg {Boolean} enableScrolling True to allow the menu container to have scroller controls if the menu is too long (defaults to true).
153
+ */
154
+ enableScrolling: true,
155
+ /**
156
+ * @cfg {Number} maxHeight The maximum height of the menu. Only applies when enableScrolling is set to True (defaults to null).
157
+ */
158
+ maxHeight: null,
159
+ /**
160
+ * @cfg {Number} scrollIncrement The amount to scroll the menu. Only applies when enableScrolling is set to True (defaults to 24).
161
+ */
162
+ scrollIncrement: 24,
163
+ /**
164
+ * @cfg {Boolean} showSeparator True to show the icon separator. (defaults to true).
165
+ */
166
+ showSeparator: true,
167
+ /**
168
+ * @cfg {Array} defaultOffsets An array specifying the [x, y] offset in pixels by which to
169
+ * change the default Menu popup position after aligning according to the {@link #defaultAlign}
170
+ * configuration. Defaults to <tt>[0, 0]</tt>.
171
+ */
172
+ defaultOffsets : [0, 0],
173
+
174
+
175
+ /**
176
+ * @cfg {Boolean} floating
177
+ * May be specified as false to create a Menu which may be used as a child item of another Container
178
+ * instead of a free-floating {@link Ext.Layer Layer}. (defaults to true).
179
+ */
180
+ floating: true, // Render as a Layer by default
181
+
182
+ // private
183
+ hidden: true,
184
+ layout: 'menu',
185
+ hideMode: 'offsets', // Important for laying out Components
186
+ scrollerHeight: 8,
187
+ autoLayout: true, // Provided for backwards compat
188
+ defaultType: 'menuitem',
189
+
190
+ initComponent: function(){
191
+ if(Ext.isArray(this.initialConfig)){
192
+ Ext.apply(this, {items:this.initialConfig});
193
+ }
194
+ this.addEvents(
195
+ /**
196
+ * @event click
197
+ * Fires when this menu is clicked (or when the enter key is pressed while it is active)
198
+ * @param {Ext.menu.Menu} this
199
+ * @param {Ext.menu.Item} menuItem The menu item that was clicked
200
+ * @param {Ext.EventObject} e
201
+ */
202
+ 'click',
203
+ /**
204
+ * @event mouseover
205
+ * Fires when the mouse is hovering over this menu
206
+ * @param {Ext.menu.Menu} this
207
+ * @param {Ext.EventObject} e
208
+ * @param {Ext.menu.Item} menuItem The menu item that was clicked
209
+ */
210
+ 'mouseover',
211
+ /**
212
+ * @event mouseout
213
+ * Fires when the mouse exits this menu
214
+ * @param {Ext.menu.Menu} this
215
+ * @param {Ext.EventObject} e
216
+ * @param {Ext.menu.Item} menuItem The menu item that was clicked
217
+ */
218
+ 'mouseout',
219
+ /**
220
+ * @event itemclick
221
+ * Fires when a menu item contained in this menu is clicked
222
+ * @param {Ext.menu.BaseItem} baseItem The BaseItem that was clicked
223
+ * @param {Ext.EventObject} e
224
+ */
225
+ 'itemclick'
226
+ );
227
+ Ext.menu.MenuMgr.register(this);
228
+ if(this.floating){
229
+ Ext.EventManager.onWindowResize(this.hide, this);
230
+ }else{
231
+ if(this.initialConfig.hidden !== false){
232
+ this.hidden = false;
233
+ }
234
+ this.internalDefaults = {hideOnClick: false};
235
+ }
236
+ Ext.menu.Menu.superclass.initComponent.call(this);
237
+ if(this.autoLayout){
238
+ this.on({
239
+ add: this.doLayout,
240
+ remove: this.doLayout,
241
+ scope: this
242
+ });
243
+ }
244
+ },
245
+
246
+ //private
247
+ getLayoutTarget : function() {
248
+ return this.ul;
249
+ },
250
+
251
+ // private
252
+ onRender : function(ct, position){
253
+ if(!ct){
254
+ ct = Ext.getBody();
255
+ }
256
+
257
+ var dh = {
258
+ id: this.getId(),
259
+ cls: 'x-menu ' + ((this.floating) ? 'x-menu-floating x-layer ' : '') + (this.cls || '') + (this.plain ? ' x-menu-plain' : '') + (this.showSeparator ? '' : ' x-menu-nosep'),
260
+ style: this.style,
261
+ cn: [
262
+ {tag: 'a', cls: 'x-menu-focus', href: '#', onclick: 'return false;', tabIndex: '-1'},
263
+ {tag: 'ul', cls: 'x-menu-list'}
264
+ ]
265
+ };
266
+ if(this.floating){
267
+ this.el = new Ext.Layer({
268
+ shadow: this.shadow,
269
+ dh: dh,
270
+ constrain: false,
271
+ parentEl: ct,
272
+ zindex:15000
273
+ });
274
+ }else{
275
+ this.el = ct.createChild(dh);
276
+ }
277
+ Ext.menu.Menu.superclass.onRender.call(this, ct, position);
278
+
279
+ if(!this.keyNav){
280
+ this.keyNav = new Ext.menu.MenuNav(this);
281
+ }
282
+ // generic focus element
283
+ this.focusEl = this.el.child('a.x-menu-focus');
284
+ this.ul = this.el.child('ul.x-menu-list');
285
+ this.mon(this.ul, {
286
+ scope: this,
287
+ click: this.onClick,
288
+ mouseover: this.onMouseOver,
289
+ mouseout: this.onMouseOut
290
+ });
291
+ if(this.enableScrolling){
292
+ this.mon(this.el, {
293
+ scope: this,
294
+ delegate: '.x-menu-scroller',
295
+ click: this.onScroll,
296
+ mouseover: this.deactivateActive
297
+ });
298
+ }
299
+ },
300
+
301
+ // private
302
+ findTargetItem : function(e){
303
+ var t = e.getTarget(".x-menu-list-item", this.ul, true);
304
+ if(t && t.menuItemId){
305
+ return this.items.get(t.menuItemId);
306
+ }
307
+ },
308
+
309
+ // private
310
+ onClick : function(e){
311
+ var t = this.findTargetItem(e);
312
+ if(t){
313
+ if(t.isFormField){
314
+ this.setActiveItem(t);
315
+ }else{
316
+ if(t.menu && this.ignoreParentClicks){
317
+ t.expandMenu();
318
+ e.preventDefault();
319
+ }else if(t.onClick){
320
+ t.onClick(e);
321
+ this.fireEvent("click", this, t, e);
322
+ }
323
+ }
324
+ }
325
+ },
326
+
327
+ // private
328
+ setActiveItem : function(item, autoExpand){
329
+ if(item != this.activeItem){
330
+ this.deactivateActive();
331
+ if((this.activeItem = item).isFormField){
332
+ item.focus();
333
+ }else{
334
+ item.activate(autoExpand);
335
+ }
336
+ }else if(autoExpand){
337
+ item.expandMenu();
338
+ }
339
+ },
340
+
341
+ deactivateActive: function(){
342
+ var a = this.activeItem;
343
+ if(a){
344
+ if(a.isFormField){
345
+ //Fields cannot deactivate, but Combos must collapse
346
+ if(a.collapse){
347
+ a.collapse();
348
+ }
349
+ }else{
350
+ a.deactivate();
351
+ }
352
+ delete this.activeItem;
353
+ }
354
+ },
355
+
356
+ // private
357
+ tryActivate : function(start, step){
358
+ var items = this.items;
359
+ for(var i = start, len = items.length; i >= 0 && i < len; i+= step){
360
+ var item = items.get(i);
361
+ if(!item.disabled && (item.canActivate || item.isFormField)){
362
+ this.setActiveItem(item, false);
363
+ return item;
364
+ }
365
+ }
366
+ return false;
367
+ },
368
+
369
+ // private
370
+ onMouseOver : function(e){
371
+ var t = this.findTargetItem(e);
372
+ if(t){
373
+ if(t.canActivate && !t.disabled){
374
+ this.setActiveItem(t, true);
375
+ }
376
+ }
377
+ this.over = true;
378
+ this.fireEvent("mouseover", this, e, t);
379
+ },
380
+
381
+ // private
382
+ onMouseOut : function(e){
383
+ var t = this.findTargetItem(e);
384
+ if(t){
385
+ if(t == this.activeItem && t.shouldDeactivate && t.shouldDeactivate(e)){
386
+ this.activeItem.deactivate();
387
+ delete this.activeItem;
388
+ }
389
+ }
390
+ this.over = false;
391
+ this.fireEvent("mouseout", this, e, t);
392
+ },
393
+
394
+ // private
395
+ onScroll: function(e, t){
396
+ if(e){
397
+ e.stopEvent();
398
+ }
399
+ var ul = this.ul.dom, top = Ext.fly(t).is('.x-menu-scroller-top');
400
+ ul.scrollTop += this.scrollIncrement * (top ? -1 : 1);
401
+ if(top ? ul.scrollTop <= 0 : ul.scrollTop + this.activeMax >= ul.scrollHeight){
402
+ this.onScrollerOut(null, t);
403
+ }
404
+ },
405
+
406
+ // private
407
+ onScrollerIn: function(e, t){
408
+ var ul = this.ul.dom, top = Ext.fly(t).is('.x-menu-scroller-top');
409
+ if(top ? ul.scrollTop > 0 : ul.scrollTop + this.activeMax < ul.scrollHeight){
410
+ Ext.fly(t).addClass(['x-menu-item-active', 'x-menu-scroller-active']);
411
+ }
412
+ },
413
+
414
+ // private
415
+ onScrollerOut: function(e, t){
416
+ Ext.fly(t).removeClass(['x-menu-item-active', 'x-menu-scroller-active']);
417
+ },
418
+
419
+ /**
420
+ * Displays this menu relative to another element
421
+ * @param {Mixed} element The element to align to
422
+ * @param {String} position (optional) The {@link Ext.Element#alignTo} anchor position to use in aligning to
423
+ * the element (defaults to this.defaultAlign)
424
+ * @param {Ext.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined)
425
+ */
426
+ show : function(el, pos, parentMenu){
427
+ if(this.floating){
428
+ this.parentMenu = parentMenu;
429
+ if(!this.el){
430
+ this.render();
431
+ this.doLayout(false, true);
432
+ }
433
+ if(this.fireEvent('beforeshow', this) !== false){
434
+ this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign, this.defaultOffsets), parentMenu, false);
435
+ }
436
+ }else{
437
+ Ext.menu.Menu.superclass.show.call(this);
438
+ }
439
+ },
440
+
441
+ /**
442
+ * Displays this menu at a specific xy position
443
+ * @param {Array} xyPosition Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based)
444
+ * @param {Ext.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined)
445
+ */
446
+ showAt : function(xy, parentMenu, /* private: */_e){
447
+ this.parentMenu = parentMenu;
448
+ if(!this.el){
449
+ this.render();
450
+ }
451
+ this.el.setXY(xy);
452
+ if(this.enableScrolling){
453
+ this.constrainScroll(xy[1]);
454
+ }
455
+ this.el.show();
456
+ Ext.menu.Menu.superclass.onShow.call(this);
457
+ if(Ext.isIE){
458
+ this.layout.doAutoSize();
459
+ if(!Ext.isIE8){
460
+ this.el.repaint();
461
+ }
462
+ }
463
+ this.hidden = false;
464
+ this.focus();
465
+ this.fireEvent("show", this);
466
+ },
467
+
468
+ constrainScroll: function(y){
469
+ var max, full = this.ul.setHeight('auto').getHeight();
470
+ if(this.floating){
471
+ max = this.maxHeight ? this.maxHeight : Ext.fly(this.el.dom.parentNode).getViewSize().height - y;
472
+ }else{
473
+ max = this.getHeight();
474
+ }
475
+ if(full > max && max > 0){
476
+ this.activeMax = max - this.scrollerHeight * 2 - this.el.getFrameWidth('tb') - Ext.num(this.el.shadowOffset, 0);
477
+ this.ul.setHeight(this.activeMax);
478
+ this.createScrollers();
479
+ this.el.select('.x-menu-scroller').setDisplayed('');
480
+ }else{
481
+ this.ul.setHeight(full);
482
+ this.el.select('.x-menu-scroller').setDisplayed('none');
483
+ }
484
+ this.ul.dom.scrollTop = 0;
485
+ },
486
+
487
+ createScrollers: function(){
488
+ if(!this.scroller){
489
+ this.scroller = {
490
+ pos: 0,
491
+ top: this.el.insertFirst({
492
+ tag: 'div',
493
+ cls: 'x-menu-scroller x-menu-scroller-top',
494
+ html: '&#160;'
495
+ }),
496
+ bottom: this.el.createChild({
497
+ tag: 'div',
498
+ cls: 'x-menu-scroller x-menu-scroller-bottom',
499
+ html: '&#160;'
500
+ })
501
+ };
502
+ this.scroller.top.hover(this.onScrollerIn, this.onScrollerOut, this);
503
+ this.scroller.topRepeater = new Ext.util.ClickRepeater(this.scroller.top, {
504
+ listeners: {
505
+ click: this.onScroll.createDelegate(this, [null, this.scroller.top], false)
506
+ }
507
+ });
508
+ this.scroller.bottom.hover(this.onScrollerIn, this.onScrollerOut, this);
509
+ this.scroller.bottomRepeater = new Ext.util.ClickRepeater(this.scroller.bottom, {
510
+ listeners: {
511
+ click: this.onScroll.createDelegate(this, [null, this.scroller.bottom], false)
512
+ }
513
+ });
514
+ }
515
+ },
516
+
517
+ onLayout: function(){
518
+ if(this.isVisible()){
519
+ if(this.enableScrolling){
520
+ this.constrainScroll(this.el.getTop());
521
+ }
522
+ if(this.floating){
523
+ this.el.sync();
524
+ }
525
+ }
526
+ },
527
+
528
+ focus : function(){
529
+ if(!this.hidden){
530
+ this.doFocus.defer(50, this);
531
+ }
532
+ },
533
+
534
+ doFocus : function(){
535
+ if(!this.hidden){
536
+ this.focusEl.focus();
537
+ }
538
+ },
539
+
540
+ /**
541
+ * Hides this menu and optionally all parent menus
542
+ * @param {Boolean} deep (optional) True to hide all parent menus recursively, if any (defaults to false)
543
+ */
544
+ hide : function(deep){
545
+ this.deepHide = deep;
546
+ Ext.menu.Menu.superclass.hide.call(this);
547
+ delete this.deepHide;
548
+ },
549
+
550
+ // private
551
+ onHide: function(){
552
+ Ext.menu.Menu.superclass.onHide.call(this);
553
+ this.deactivateActive();
554
+ if(this.el && this.floating){
555
+ this.el.hide();
556
+ }
557
+ if(this.deepHide === true && this.parentMenu){
558
+ this.parentMenu.hide(true);
559
+ }
560
+ },
561
+
562
+ // private
563
+ lookupComponent: function(c){
564
+ if(Ext.isString(c)){
565
+ c = (c == 'separator' || c == '-') ? new Ext.menu.Separator() : new Ext.menu.TextItem(c);
566
+ this.applyDefaults(c);
567
+ }else{
568
+ if(Ext.isObject(c)){
569
+ c = this.getMenuItem(c);
570
+ }else if(c.tagName || c.el){ // element. Wrap it.
571
+ c = new Ext.BoxComponent({
572
+ el: c
573
+ });
574
+ }
575
+ }
576
+ return c;
577
+ },
578
+
579
+ applyDefaults : function(c){
580
+ if(!Ext.isString(c)){
581
+ c = Ext.menu.Menu.superclass.applyDefaults.call(this, c);
582
+ var d = this.internalDefaults;
583
+ if(d){
584
+ if(c.events){
585
+ Ext.applyIf(c.initialConfig, d);
586
+ Ext.apply(c, d);
587
+ }else{
588
+ Ext.applyIf(c, d);
589
+ }
590
+ }
591
+ }
592
+ return c;
593
+ },
594
+
595
+ // private
596
+ getMenuItem: function(config){
597
+ if(!config.isXType){
598
+ if(!config.xtype && Ext.isBoolean(config.checked)){
599
+ return new Ext.menu.CheckItem(config)
600
+ }
601
+ return Ext.create(config, this.defaultType);
602
+ }
603
+ return config;
604
+ },
605
+
606
+ /**
607
+ * Adds a separator bar to the menu
608
+ * @return {Ext.menu.Item} The menu item that was added
609
+ */
610
+ addSeparator : function(){
611
+ return this.add(new Ext.menu.Separator());
612
+ },
613
+
614
+ /**
615
+ * Adds an {@link Ext.Element} object to the menu
616
+ * @param {Mixed} el The element or DOM node to add, or its id
617
+ * @return {Ext.menu.Item} The menu item that was added
618
+ */
619
+ addElement : function(el){
620
+ return this.add(new Ext.menu.BaseItem(el));
621
+ },
622
+
623
+ /**
624
+ * Adds an existing object based on {@link Ext.menu.BaseItem} to the menu
625
+ * @param {Ext.menu.Item} item The menu item to add
626
+ * @return {Ext.menu.Item} The menu item that was added
627
+ */
628
+ addItem : function(item){
629
+ return this.add(item);
630
+ },
631
+
632
+ /**
633
+ * Creates a new {@link Ext.menu.Item} based an the supplied config object and adds it to the menu
634
+ * @param {Object} config A MenuItem config object
635
+ * @return {Ext.menu.Item} The menu item that was added
636
+ */
637
+ addMenuItem : function(config){
638
+ return this.add(this.getMenuItem(config));
639
+ },
640
+
641
+ /**
642
+ * Creates a new {@link Ext.menu.TextItem} with the supplied text and adds it to the menu
643
+ * @param {String} text The text to display in the menu item
644
+ * @return {Ext.menu.Item} The menu item that was added
645
+ */
646
+ addText : function(text){
647
+ return this.add(new Ext.menu.TextItem(text));
648
+ },
649
+
650
+ //private
651
+ onDestroy : function(){
652
+ Ext.menu.Menu.superclass.onDestroy.call(this);
653
+ Ext.menu.MenuMgr.unregister(this);
654
+ Ext.EventManager.removeResizeListener(this.hide, this);
655
+ if(this.keyNav) {
656
+ this.keyNav.disable();
657
+ }
658
+ var s = this.scroller;
659
+ if(s){
660
+ Ext.destroy(s.topRepeater, s.bottomRepeater, s.top, s.bottom);
661
+ }
662
+ }
663
+ });
664
+
665
+ Ext.reg('menu', Ext.menu.Menu);
666
+
667
+ // MenuNav is a private utility class used internally by the Menu
668
+ Ext.menu.MenuNav = Ext.extend(Ext.KeyNav, function(){
669
+ function up(e, m){
670
+ if(!m.tryActivate(m.items.indexOf(m.activeItem)-1, -1)){
671
+ m.tryActivate(m.items.length-1, -1);
672
+ }
673
+ }
674
+ function down(e, m){
675
+ if(!m.tryActivate(m.items.indexOf(m.activeItem)+1, 1)){
676
+ m.tryActivate(0, 1);
677
+ }
678
+ }
679
+ return {
680
+ constructor: function(menu){
681
+ Ext.menu.MenuNav.superclass.constructor.call(this, menu.el);
682
+ this.scope = this.menu = menu;
683
+ },
684
+
685
+ doRelay : function(e, h){
686
+ var k = e.getKey();
687
+ // Keystrokes within a form Field (e.g.: down in a Combo) do not navigate. Allow only TAB
688
+ if (this.menu.activeItem && this.menu.activeItem.isFormField && k != e.TAB) {
689
+ return false;
690
+ }
691
+ if(!this.menu.activeItem && e.isNavKeyPress() && k != e.SPACE && k != e.RETURN){
692
+ this.menu.tryActivate(0, 1);
693
+ return false;
694
+ }
695
+ return h.call(this.scope || this, e, this.menu);
696
+ },
697
+
698
+ tab: function(e, m) {
699
+ e.stopEvent();
700
+ if (e.shiftKey) {
701
+ up(e, m);
702
+ } else {
703
+ down(e, m);
704
+ }
705
+ },
706
+
707
+ up : up,
708
+
709
+ down : down,
710
+
711
+ right : function(e, m){
712
+ if(m.activeItem){
713
+ m.activeItem.expandMenu(true);
714
+ }
715
+ },
716
+
717
+ left : function(e, m){
718
+ m.hide();
719
+ if(m.parentMenu && m.parentMenu.activeItem){
720
+ m.parentMenu.activeItem.activate();
721
+ }
722
+ },
723
+
724
+ enter : function(e, m){
725
+ if(m.activeItem){
726
+ e.stopPropagation();
727
+ m.activeItem.onClick(e);
728
+ m.fireEvent("click", this, m.activeItem);
729
+ return true;
730
+ }
731
+ }
732
+ };
733
+ }());