lpmp 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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,115 @@
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.Template
9
+ */
10
+ Ext.apply(Ext.Template.prototype, {
11
+ /**
12
+ * Returns an HTML fragment of this template with the specified values applied.
13
+ * @param {Object/Array} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
14
+ * @return {String} The HTML fragment
15
+ * @hide repeat doc
16
+ */
17
+ applyTemplate : function(values){
18
+ var me = this,
19
+ useF = me.disableFormats !== true,
20
+ fm = Ext.util.Format,
21
+ tpl = me;
22
+
23
+ if(me.compiled){
24
+ return me.compiled(values);
25
+ }
26
+ function fn(m, name, format, args){
27
+ if (format && useF) {
28
+ if (format.substr(0, 5) == "this.") {
29
+ return tpl.call(format.substr(5), values[name], values);
30
+ } else {
31
+ if (args) {
32
+ // quoted values are required for strings in compiled templates,
33
+ // but for non compiled we need to strip them
34
+ // quoted reversed for jsmin
35
+ var re = /^\s*['"](.*)["']\s*$/;
36
+ args = args.split(',');
37
+ for(var i = 0, len = args.length; i < len; i++){
38
+ args[i] = args[i].replace(re, "$1");
39
+ }
40
+ args = [values[name]].concat(args);
41
+ } else {
42
+ args = [values[name]];
43
+ }
44
+ return fm[format].apply(fm, args);
45
+ }
46
+ } else {
47
+ return values[name] !== undefined ? values[name] : "";
48
+ }
49
+ }
50
+ return me.html.replace(me.re, fn);
51
+ },
52
+
53
+ /**
54
+ * <tt>true</tt> to disable format functions (defaults to <tt>false</tt>)
55
+ * @type Boolean
56
+ * @property
57
+ */
58
+ disableFormats : false,
59
+
60
+ /**
61
+ * The regular expression used to match template variables
62
+ * @type RegExp
63
+ * @property
64
+ * @hide repeat doc
65
+ */
66
+ re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,
67
+
68
+ /**
69
+ * Compiles the template into an internal function, eliminating the RegEx overhead.
70
+ * @return {Ext.Template} this
71
+ * @hide repeat doc
72
+ */
73
+ compile : function(){
74
+ var me = this,
75
+ fm = Ext.util.Format,
76
+ useF = me.disableFormats !== true,
77
+ sep = Ext.isGecko ? "+" : ",",
78
+ body;
79
+
80
+ function fn(m, name, format, args){
81
+ if(format && useF){
82
+ args = args ? ',' + args : "";
83
+ if(format.substr(0, 5) != "this."){
84
+ format = "fm." + format + '(';
85
+ }else{
86
+ format = 'this.call("'+ format.substr(5) + '", ';
87
+ args = ", values";
88
+ }
89
+ }else{
90
+ args= ''; format = "(values['" + name + "'] == undefined ? '' : ";
91
+ }
92
+ return "'"+ sep + format + "values['" + name + "']" + args + ")"+sep+"'";
93
+ }
94
+
95
+ // branched to use + in gecko and [].join() in others
96
+ if(Ext.isGecko){
97
+ body = "this.compiled = function(values){ return '" +
98
+ me.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn) +
99
+ "';};";
100
+ }else{
101
+ body = ["this.compiled = function(values){ return ['"];
102
+ body.push(me.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn));
103
+ body.push("'].join('');};");
104
+ body = body.join('');
105
+ }
106
+ eval(body);
107
+ return me;
108
+ },
109
+
110
+ // private function used to call members
111
+ call : function(fnName, value, allValues){
112
+ return this[fnName](value, allValues);
113
+ }
114
+ });
115
+ Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate;
@@ -0,0 +1,197 @@
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.CompositeElementLite
9
+ * Flyweight composite class. Reuses the same Ext.Element for element operations.
10
+ <pre><code>
11
+ var els = Ext.select("#some-el div.some-class");
12
+ // or select directly from an existing element
13
+ var el = Ext.get('some-el');
14
+ el.select('div.some-class');
15
+
16
+ els.setWidth(100); // all elements become 100 width
17
+ els.hide(true); // all elements fade out and hide
18
+ // or
19
+ els.setWidth(100).hide(true);
20
+ </code></pre><br><br>
21
+ * <b>NOTE: Although they are not listed, this class supports all of the set/update methods of Ext.Element. All Ext.Element
22
+ * actions will be performed on all the elements in this collection.</b>
23
+ */
24
+ Ext.CompositeElementLite = function(els, root){
25
+ this.elements = [];
26
+ this.add(els, root);
27
+ this.el = new Ext.Element.Flyweight();
28
+ };
29
+
30
+ Ext.CompositeElementLite.prototype = {
31
+ isComposite: true,
32
+ /**
33
+ * Returns the number of elements in this composite
34
+ * @return Number
35
+ */
36
+ getCount : function(){
37
+ return this.elements.length;
38
+ },
39
+ add : function(els){
40
+ if(els){
41
+ if (Ext.isArray(els)) {
42
+ this.elements = this.elements.concat(els);
43
+ } else {
44
+ var yels = this.elements;
45
+ Ext.each(els, function(e) {
46
+ yels.push(e);
47
+ });
48
+ }
49
+ }
50
+ return this;
51
+ },
52
+ invoke : function(fn, args){
53
+ var els = this.elements,
54
+ el = this.el;
55
+ Ext.each(els, function(e) {
56
+ el.dom = e;
57
+ Ext.Element.prototype[fn].apply(el, args);
58
+ });
59
+ return this;
60
+ },
61
+ /**
62
+ * Returns a flyweight Element of the dom element object at the specified index
63
+ * @param {Number} index
64
+ * @return {Ext.Element}
65
+ */
66
+ item : function(index){
67
+ var me = this;
68
+ if(!me.elements[index]){
69
+ return null;
70
+ }
71
+ me.el.dom = me.elements[index];
72
+ return me.el;
73
+ },
74
+
75
+ // fixes scope with flyweight
76
+ addListener : function(eventName, handler, scope, opt){
77
+ Ext.each(this.elements, function(e) {
78
+ Ext.EventManager.on(e, eventName, handler, scope || e, opt);
79
+ });
80
+ return this;
81
+ },
82
+ /**
83
+ * Calls the passed function passing (el, this, index) for each element in this composite. <b>The element
84
+ * passed is the flyweight (shared) Ext.Element instance, so if you require a
85
+ * a reference to the dom node, use el.dom.</b>
86
+ * @param {Function} fn The function to call
87
+ * @param {Object} scope (optional) The <i>this</i> object (defaults to the element)
88
+ * @return {CompositeElement} this
89
+ */
90
+ each : function(fn, scope){
91
+ var me = this,
92
+ el = me.el;
93
+
94
+ Ext.each(me.elements, function(e,i) {
95
+ el.dom = e;
96
+ return fn.call(scope || el, el, me, i);
97
+ });
98
+ return me;
99
+ },
100
+
101
+ /**
102
+ * Find the index of the passed element within the composite collection.
103
+ * @param el {Mixed} The id of an element, or an Ext.Element, or an HtmlElement to find within the composite collection.
104
+ * @return Number The index of the passed Ext.Element in the composite collection, or -1 if not found.
105
+ */
106
+ indexOf : function(el){
107
+ return this.elements.indexOf(Ext.getDom(el));
108
+ },
109
+
110
+ /**
111
+ * Replaces the specified element with the passed element.
112
+ * @param {Mixed} el The id of an element, the Element itself, the index of the element in this composite
113
+ * to replace.
114
+ * @param {Mixed} replacement The id of an element or the Element itself.
115
+ * @param {Boolean} domReplace (Optional) True to remove and replace the element in the document too.
116
+ * @return {CompositeElement} this
117
+ */
118
+ replaceElement : function(el, replacement, domReplace){
119
+ var index = !isNaN(el) ? el : this.indexOf(el),
120
+ d;
121
+ if(index > -1){
122
+ replacement = Ext.getDom(replacement);
123
+ if(domReplace){
124
+ d = this.elements[index];
125
+ d.parentNode.insertBefore(replacement, d);
126
+ Ext.removeNode(d);
127
+ }
128
+ this.elements.splice(index, 1, replacement);
129
+ }
130
+ return this;
131
+ },
132
+
133
+ /**
134
+ * Removes all elements.
135
+ */
136
+ clear : function(){
137
+ this.elements = [];
138
+ }
139
+ };
140
+
141
+ Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener;
142
+
143
+ (function(){
144
+ var fnName,
145
+ ElProto = Ext.Element.prototype,
146
+ CelProto = Ext.CompositeElementLite.prototype;
147
+
148
+ for(fnName in ElProto){
149
+ if(Ext.isFunction(ElProto[fnName])){
150
+ (function(fnName){
151
+ CelProto[fnName] = CelProto[fnName] || function(){
152
+ return this.invoke(fnName, arguments);
153
+ };
154
+ }).call(CelProto, fnName);
155
+
156
+ }
157
+ }
158
+ })();
159
+
160
+ if(Ext.DomQuery){
161
+ Ext.Element.selectorFunction = Ext.DomQuery.select;
162
+ }
163
+
164
+ /**
165
+ * Selects elements based on the passed CSS selector to enable {@link Ext.Element Element} methods
166
+ * to be applied to many related elements in one statement through the returned {@link Ext.CompositeElement CompositeElement} or
167
+ * {@link Ext.CompositeElementLite CompositeElementLite} object.
168
+ * @param {String/Array} selector The CSS selector or an array of elements
169
+ * @param {Boolean} unique (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object) <b>Not supported in core</b>
170
+ * @param {HTMLElement/String} root (optional) The root element of the query or id of the root
171
+ * @return {CompositeElementLite/CompositeElement}
172
+ * @member Ext.Element
173
+ * @method select
174
+ */
175
+ Ext.Element.select = function(selector, unique, root){
176
+ var els;
177
+ if(typeof selector == "string"){
178
+ els = Ext.Element.selectorFunction(selector, root);
179
+ }else if(selector.length !== undefined){
180
+ els = selector;
181
+ }else{
182
+ throw "Invalid selector";
183
+ }
184
+ return new Ext.CompositeElementLite(els);
185
+ };
186
+ /**
187
+ * Selects elements based on the passed CSS selector to enable {@link Ext.Element Element} methods
188
+ * to be applied to many related elements in one statement through the returned {@link Ext.CompositeElement CompositeElement} or
189
+ * {@link Ext.CompositeElementLite CompositeElementLite} object.
190
+ * @param {String/Array} selector The CSS selector or an array of elements
191
+ * @param {Boolean} unique (optional) true to create a unique Ext.Element for each element (defaults to a shared flyweight object)
192
+ * @param {HTMLElement/String} root (optional) The root element of the query or id of the root
193
+ * @return {CompositeElementLite/CompositeElement}
194
+ * @member Ext
195
+ * @method select
196
+ */
197
+ Ext.select = Ext.Element.select;
@@ -0,0 +1,378 @@
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.DomHelper
9
+ * <p>The DomHelper class provides a layer of abstraction from DOM and transparently supports creating
10
+ * elements via DOM or using HTML fragments. It also has the ability to create HTML fragment templates
11
+ * from your DOM building code.</p>
12
+ *
13
+ * <p><b><u>DomHelper element specification object</u></b></p>
14
+ * <p>A specification object is used when creating elements. Attributes of this object
15
+ * are assumed to be element attributes, except for 4 special attributes:
16
+ * <div class="mdetail-params"><ul>
17
+ * <li><b><tt>tag</tt></b> : <div class="sub-desc">The tag name of the element</div></li>
18
+ * <li><b><tt>children</tt></b> : or <tt>cn</tt><div class="sub-desc">An array of the
19
+ * same kind of element definition objects to be created and appended. These can be nested
20
+ * as deep as you want.</div></li>
21
+ * <li><b><tt>cls</tt></b> : <div class="sub-desc">The class attribute of the element.
22
+ * This will end up being either the "class" attribute on a HTML fragment or className
23
+ * for a DOM node, depending on whether DomHelper is using fragments or DOM.</div></li>
24
+ * <li><b><tt>html</tt></b> : <div class="sub-desc">The innerHTML for the element</div></li>
25
+ * </ul></div></p>
26
+ *
27
+ * <p><b><u>Insertion methods</u></b></p>
28
+ * <p>Commonly used insertion methods:
29
+ * <div class="mdetail-params"><ul>
30
+ * <li><b><tt>{@link #append}</tt></b> : <div class="sub-desc"></div></li>
31
+ * <li><b><tt>{@link #insertBefore}</tt></b> : <div class="sub-desc"></div></li>
32
+ * <li><b><tt>{@link #insertAfter}</tt></b> : <div class="sub-desc"></div></li>
33
+ * <li><b><tt>{@link #overwrite}</tt></b> : <div class="sub-desc"></div></li>
34
+ * <li><b><tt>{@link #createTemplate}</tt></b> : <div class="sub-desc"></div></li>
35
+ * <li><b><tt>{@link #insertHtml}</tt></b> : <div class="sub-desc"></div></li>
36
+ * </ul></div></p>
37
+ *
38
+ * <p><b><u>Example</u></b></p>
39
+ * <p>This is an example, where an unordered list with 3 children items is appended to an existing
40
+ * element with id <tt>'my-div'</tt>:<br>
41
+ <pre><code>
42
+ var dh = Ext.DomHelper; // create shorthand alias
43
+ // specification object
44
+ var spec = {
45
+ id: 'my-ul',
46
+ tag: 'ul',
47
+ cls: 'my-list',
48
+ // append children after creating
49
+ children: [ // may also specify 'cn' instead of 'children'
50
+ {tag: 'li', id: 'item0', html: 'List Item 0'},
51
+ {tag: 'li', id: 'item1', html: 'List Item 1'},
52
+ {tag: 'li', id: 'item2', html: 'List Item 2'}
53
+ ]
54
+ };
55
+ var list = dh.append(
56
+ 'my-div', // the context element 'my-div' can either be the id or the actual node
57
+ spec // the specification object
58
+ );
59
+ </code></pre></p>
60
+ * <p>Element creation specification parameters in this class may also be passed as an Array of
61
+ * specification objects. This can be used to insert multiple sibling nodes into an existing
62
+ * container very efficiently. For example, to add more list items to the example above:<pre><code>
63
+ dh.append('my-ul', [
64
+ {tag: 'li', id: 'item3', html: 'List Item 3'},
65
+ {tag: 'li', id: 'item4', html: 'List Item 4'}
66
+ ]);
67
+ * </code></pre></p>
68
+ *
69
+ * <p><b><u>Templating</u></b></p>
70
+ * <p>The real power is in the built-in templating. Instead of creating or appending any elements,
71
+ * <tt>{@link #createTemplate}</tt> returns a Template object which can be used over and over to
72
+ * insert new elements. Revisiting the example above, we could utilize templating this time:
73
+ * <pre><code>
74
+ // create the node
75
+ var list = dh.append('my-div', {tag: 'ul', cls: 'my-list'});
76
+ // get template
77
+ var tpl = dh.createTemplate({tag: 'li', id: 'item{0}', html: 'List Item {0}'});
78
+
79
+ for(var i = 0; i < 5, i++){
80
+ tpl.append(list, [i]); // use template to append to the actual node
81
+ }
82
+ * </code></pre></p>
83
+ * <p>An example using a template:<pre><code>
84
+ var html = '<a id="{0}" href="{1}" class="nav">{2}</a>';
85
+
86
+ var tpl = new Ext.DomHelper.createTemplate(html);
87
+ tpl.append('blog-roll', ['link1', 'http://www.jackslocum.com/', "Jack&#39;s Site"]);
88
+ tpl.append('blog-roll', ['link2', 'http://www.dustindiaz.com/', "Dustin&#39;s Site"]);
89
+ * </code></pre></p>
90
+ *
91
+ * <p>The same example using named parameters:<pre><code>
92
+ var html = '<a id="{id}" href="{url}" class="nav">{text}</a>';
93
+
94
+ var tpl = new Ext.DomHelper.createTemplate(html);
95
+ tpl.append('blog-roll', {
96
+ id: 'link1',
97
+ url: 'http://www.jackslocum.com/',
98
+ text: "Jack&#39;s Site"
99
+ });
100
+ tpl.append('blog-roll', {
101
+ id: 'link2',
102
+ url: 'http://www.dustindiaz.com/',
103
+ text: "Dustin&#39;s Site"
104
+ });
105
+ * </code></pre></p>
106
+ *
107
+ * <p><b><u>Compiling Templates</u></b></p>
108
+ * <p>Templates are applied using regular expressions. The performance is great, but if
109
+ * you are adding a bunch of DOM elements using the same template, you can increase
110
+ * performance even further by {@link Ext.Template#compile "compiling"} the template.
111
+ * The way "{@link Ext.Template#compile compile()}" works is the template is parsed and
112
+ * broken up at the different variable points and a dynamic function is created and eval'ed.
113
+ * The generated function performs string concatenation of these parts and the passed
114
+ * variables instead of using regular expressions.
115
+ * <pre><code>
116
+ var html = '<a id="{id}" href="{url}" class="nav">{text}</a>';
117
+
118
+ var tpl = new Ext.DomHelper.createTemplate(html);
119
+ tpl.compile();
120
+
121
+ //... use template like normal
122
+ * </code></pre></p>
123
+ *
124
+ * <p><b><u>Performance Boost</u></b></p>
125
+ * <p>DomHelper will transparently create HTML fragments when it can. Using HTML fragments instead
126
+ * of DOM can significantly boost performance.</p>
127
+ * <p>Element creation specification parameters may also be strings. If {@link #useDom} is <tt>false</tt>,
128
+ * then the string is used as innerHTML. If {@link #useDom} is <tt>true</tt>, a string specification
129
+ * results in the creation of a text node. Usage:</p>
130
+ * <pre><code>
131
+ Ext.DomHelper.useDom = true; // force it to use DOM; reduces performance
132
+ * </code></pre>
133
+ * @singleton
134
+ */
135
+ Ext.DomHelper = function(){
136
+ var tempTableEl = null,
137
+ emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i,
138
+ tableRe = /^table|tbody|tr|td$/i,
139
+ pub,
140
+ // kill repeat to save bytes
141
+ afterbegin = "afterbegin",
142
+ afterend = "afterend",
143
+ beforebegin = "beforebegin",
144
+ beforeend = "beforeend",
145
+ ts = '<table>',
146
+ te = '</table>',
147
+ tbs = ts+'<tbody>',
148
+ tbe = '</tbody>'+te,
149
+ trs = tbs + '<tr>',
150
+ tre = '</tr>'+tbe;
151
+
152
+ // private
153
+ function doInsert(el, o, returnElement, pos, sibling, append){
154
+ var newNode = pub.insertHtml(pos, Ext.getDom(el), createHtml(o));
155
+ return returnElement ? Ext.get(newNode, true) : newNode;
156
+ }
157
+
158
+ // build as innerHTML where available
159
+ function createHtml(o){
160
+ var b = "",
161
+ attr,
162
+ val,
163
+ key,
164
+ keyVal,
165
+ cn;
166
+
167
+ if(typeof o == 'string'){
168
+ b = o;
169
+ } else if (Ext.isArray(o)) {
170
+ Ext.each(o, function(v) {
171
+ b += createHtml(v);
172
+ });
173
+ } else {
174
+ b += "<" + (o.tag = o.tag || "div");
175
+ Ext.iterate(o, function(attr, val){
176
+ if(!/tag|children|cn|html$/i.test(attr)){
177
+ if (Ext.isObject(val)) {
178
+ b += " " + attr + "='";
179
+ Ext.iterate(val, function(key, keyVal){
180
+ b += key + ":" + keyVal + ";";
181
+ });
182
+ b += "'";
183
+ }else{
184
+ b += " " + ({cls : "class", htmlFor : "for"}[attr] || attr) + "='" + val + "'";
185
+ }
186
+ }
187
+ });
188
+ // Now either just close the tag or try to add children and close the tag.
189
+ if (emptyTags.test(o.tag)) {
190
+ b += "/>";
191
+ } else {
192
+ b += ">";
193
+ if ((cn = o.children || o.cn)) {
194
+ b += createHtml(cn);
195
+ } else if(o.html){
196
+ b += o.html;
197
+ }
198
+ b += "</" + o.tag + ">";
199
+ }
200
+ }
201
+ return b;
202
+ }
203
+
204
+ function ieTable(depth, s, h, e){
205
+ tempTableEl.innerHTML = [s, h, e].join('');
206
+ var i = -1,
207
+ el = tempTableEl;
208
+ while(++i < depth){
209
+ el = el.firstChild;
210
+ }
211
+ return el;
212
+ }
213
+
214
+ /**
215
+ * @ignore
216
+ * Nasty code for IE's broken table implementation
217
+ */
218
+ function insertIntoTable(tag, where, el, html) {
219
+ var node,
220
+ before;
221
+
222
+ tempTableEl = tempTableEl || document.createElement('div');
223
+
224
+ if(tag == 'td' && (where == afterbegin || where == beforeend) ||
225
+ !/td|tr|tbody/i.test(tag) && (where == beforebegin || where == afterend)) {
226
+ return;
227
+ }
228
+ before = where == beforebegin ? el :
229
+ where == afterend ? el.nextSibling :
230
+ where == afterbegin ? el.firstChild : null;
231
+
232
+ if (where == beforebegin || where == afterend) {
233
+ el = el.parentNode;
234
+ }
235
+
236
+ if (tag == 'td' || (tag == "tr" && (where == beforeend || where == afterbegin))) {
237
+ node = ieTable(4, trs, html, tre);
238
+ } else if ((tag == "tbody" && (where == beforeend || where == afterbegin)) ||
239
+ (tag == "tr" && (where == beforebegin || where == afterend))) {
240
+ node = ieTable(3, tbs, html, tbe);
241
+ } else {
242
+ node = ieTable(2, ts, html, te);
243
+ }
244
+ el.insertBefore(node, before);
245
+ return node;
246
+ }
247
+
248
+
249
+ pub = {
250
+ /**
251
+ * Returns the markup for the passed Element(s) config.
252
+ * @param {Object} o The DOM object spec (and children)
253
+ * @return {String}
254
+ */
255
+ markup : function(o){
256
+ return createHtml(o);
257
+ },
258
+
259
+ /**
260
+ * Inserts an HTML fragment into the DOM.
261
+ * @param {String} where Where to insert the html in relation to el - beforeBegin, afterBegin, beforeEnd, afterEnd.
262
+ * @param {HTMLElement} el The context element
263
+ * @param {String} html The HTML fragmenet
264
+ * @return {HTMLElement} The new node
265
+ */
266
+ insertHtml : function(where, el, html){
267
+ var hash = {},
268
+ hashVal,
269
+ setStart,
270
+ range,
271
+ frag,
272
+ rangeEl,
273
+ rs;
274
+
275
+ where = where.toLowerCase();
276
+ // add these here because they are used in both branches of the condition.
277
+ hash[beforebegin] = ['BeforeBegin', 'previousSibling'];
278
+ hash[afterend] = ['AfterEnd', 'nextSibling'];
279
+
280
+ if (el.insertAdjacentHTML) {
281
+ if(tableRe.test(el.tagName) && (rs = insertIntoTable(el.tagName.toLowerCase(), where, el, html))){
282
+ return rs;
283
+ }
284
+ // add these two to the hash.
285
+ hash[afterbegin] = ['AfterBegin', 'firstChild'];
286
+ hash[beforeend] = ['BeforeEnd', 'lastChild'];
287
+ if ((hashVal = hash[where])) {
288
+ el.insertAdjacentHTML(hashVal[0], html);
289
+ return el[hashVal[1]];
290
+ }
291
+ } else {
292
+ range = el.ownerDocument.createRange();
293
+ setStart = "setStart" + (/end/i.test(where) ? "After" : "Before");
294
+ if (hash[where]) {
295
+ range[setStart](el);
296
+ frag = range.createContextualFragment(html);
297
+ el.parentNode.insertBefore(frag, where == beforebegin ? el : el.nextSibling);
298
+ return el[(where == beforebegin ? "previous" : "next") + "Sibling"];
299
+ } else {
300
+ rangeEl = (where == afterbegin ? "first" : "last") + "Child";
301
+ if (el.firstChild) {
302
+ range[setStart](el[rangeEl]);
303
+ frag = range.createContextualFragment(html);
304
+ if(where == afterbegin){
305
+ el.insertBefore(frag, el.firstChild);
306
+ }else{
307
+ el.appendChild(frag);
308
+ }
309
+ } else {
310
+ el.innerHTML = html;
311
+ }
312
+ return el[rangeEl];
313
+ }
314
+ }
315
+ throw 'Illegal insertion point -> "' + where + '"';
316
+ },
317
+
318
+ /**
319
+ * Creates new DOM element(s) and inserts them before el.
320
+ * @param {Mixed} el The context element
321
+ * @param {Object/String} o The DOM object spec (and children) or raw HTML blob
322
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
323
+ * @return {HTMLElement/Ext.Element} The new node
324
+ */
325
+ insertBefore : function(el, o, returnElement){
326
+ return doInsert(el, o, returnElement, beforebegin);
327
+ },
328
+
329
+ /**
330
+ * Creates new DOM element(s) and inserts them after el.
331
+ * @param {Mixed} el The context element
332
+ * @param {Object} o The DOM object spec (and children)
333
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
334
+ * @return {HTMLElement/Ext.Element} The new node
335
+ */
336
+ insertAfter : function(el, o, returnElement){
337
+ return doInsert(el, o, returnElement, afterend, "nextSibling");
338
+ },
339
+
340
+ /**
341
+ * Creates new DOM element(s) and inserts them as the first child of el.
342
+ * @param {Mixed} el The context element
343
+ * @param {Object/String} o The DOM object spec (and children) or raw HTML blob
344
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
345
+ * @return {HTMLElement/Ext.Element} The new node
346
+ */
347
+ insertFirst : function(el, o, returnElement){
348
+ return doInsert(el, o, returnElement, afterbegin, "firstChild");
349
+ },
350
+
351
+ /**
352
+ * Creates new DOM element(s) and appends them to el.
353
+ * @param {Mixed} el The context element
354
+ * @param {Object/String} o The DOM object spec (and children) or raw HTML blob
355
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
356
+ * @return {HTMLElement/Ext.Element} The new node
357
+ */
358
+ append : function(el, o, returnElement){
359
+ return doInsert(el, o, returnElement, beforeend, "", true);
360
+ },
361
+
362
+ /**
363
+ * Creates new DOM element(s) and overwrites the contents of el with them.
364
+ * @param {Mixed} el The context element
365
+ * @param {Object/String} o The DOM object spec (and children) or raw HTML blob
366
+ * @param {Boolean} returnElement (optional) true to return a Ext.Element
367
+ * @return {HTMLElement/Ext.Element} The new node
368
+ */
369
+ overwrite : function(el, o, returnElement){
370
+ el = Ext.getDom(el);
371
+ el.innerHTML = createHtml(o);
372
+ return returnElement ? Ext.get(el.firstChild) : el.firstChild;
373
+ },
374
+
375
+ createHtml : createHtml
376
+ };
377
+ return pub;
378
+ }();