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,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
+ }();