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,39 @@
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.form.Hidden
9
+ * @extends Ext.form.Field
10
+ * A basic hidden field for storing hidden values in forms that need to be passed in the form submit.
11
+ * @constructor
12
+ * Create a new Hidden field.
13
+ * @param {Object} config Configuration options
14
+ * @xtype hidden
15
+ */
16
+ Ext.form.Hidden = Ext.extend(Ext.form.Field, {
17
+ // private
18
+ inputType : 'hidden',
19
+
20
+ // private
21
+ onRender : function(){
22
+ Ext.form.Hidden.superclass.onRender.apply(this, arguments);
23
+ },
24
+
25
+ // private
26
+ initEvents : function(){
27
+ this.originalValue = this.getValue();
28
+ },
29
+
30
+ // These are all private overrides
31
+ setSize : Ext.emptyFn,
32
+ setWidth : Ext.emptyFn,
33
+ setHeight : Ext.emptyFn,
34
+ setPosition : Ext.emptyFn,
35
+ setPagePosition : Ext.emptyFn,
36
+ markInvalid : Ext.emptyFn,
37
+ clearInvalid : Ext.emptyFn
38
+ });
39
+ Ext.reg('hidden', Ext.form.Hidden);
@@ -0,0 +1,1179 @@
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.form.HtmlEditor
9
+ * @extends Ext.form.Field
10
+ * Provides a lightweight HTML Editor component. Some toolbar features are not supported by Safari and will be
11
+ * automatically hidden when needed. These are noted in the config options where appropriate.
12
+ * <br><br>The editor's toolbar buttons have tooltips defined in the {@link #buttonTips} property, but they are not
13
+ * enabled by default unless the global {@link Ext.QuickTips} singleton is {@link Ext.QuickTips#init initialized}.
14
+ * <br><br><b>Note: The focus/blur and validation marking functionality inherited from Ext.form.Field is NOT
15
+ * supported by this editor.</b>
16
+ * <br><br>An Editor is a sensitive component that can't be used in all spots standard fields can be used. Putting an Editor within
17
+ * any element that has display set to 'none' can cause problems in Safari and Firefox due to their default iframe reloading bugs.
18
+ * <br><br>Example usage:
19
+ * <pre><code>
20
+ // Simple example rendered with default options:
21
+ Ext.QuickTips.init(); // enable tooltips
22
+ new Ext.form.HtmlEditor({
23
+ renderTo: Ext.getBody(),
24
+ width: 800,
25
+ height: 300
26
+ });
27
+
28
+ // Passed via xtype into a container and with custom options:
29
+ Ext.QuickTips.init(); // enable tooltips
30
+ new Ext.Panel({
31
+ title: 'HTML Editor',
32
+ renderTo: Ext.getBody(),
33
+ width: 600,
34
+ height: 300,
35
+ frame: true,
36
+ layout: 'fit',
37
+ items: {
38
+ xtype: 'htmleditor',
39
+ enableColors: false,
40
+ enableAlignments: false
41
+ }
42
+ });
43
+ </code></pre>
44
+ * @constructor
45
+ * Create a new HtmlEditor
46
+ * @param {Object} config
47
+ * @xtype htmleditor
48
+ */
49
+
50
+ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, {
51
+ /**
52
+ * @cfg {Boolean} enableFormat Enable the bold, italic and underline buttons (defaults to true)
53
+ */
54
+ enableFormat : true,
55
+ /**
56
+ * @cfg {Boolean} enableFontSize Enable the increase/decrease font size buttons (defaults to true)
57
+ */
58
+ enableFontSize : true,
59
+ /**
60
+ * @cfg {Boolean} enableColors Enable the fore/highlight color buttons (defaults to true)
61
+ */
62
+ enableColors : true,
63
+ /**
64
+ * @cfg {Boolean} enableAlignments Enable the left, center, right alignment buttons (defaults to true)
65
+ */
66
+ enableAlignments : true,
67
+ /**
68
+ * @cfg {Boolean} enableLists Enable the bullet and numbered list buttons. Not available in Safari. (defaults to true)
69
+ */
70
+ enableLists : true,
71
+ /**
72
+ * @cfg {Boolean} enableSourceEdit Enable the switch to source edit button. Not available in Safari. (defaults to true)
73
+ */
74
+ enableSourceEdit : true,
75
+ /**
76
+ * @cfg {Boolean} enableLinks Enable the create link button. Not available in Safari. (defaults to true)
77
+ */
78
+ enableLinks : true,
79
+ /**
80
+ * @cfg {Boolean} enableFont Enable font selection. Not available in Safari. (defaults to true)
81
+ */
82
+ enableFont : true,
83
+ /**
84
+ * @cfg {String} createLinkText The default text for the create link prompt
85
+ */
86
+ createLinkText : 'Please enter the URL for the link:',
87
+ /**
88
+ * @cfg {String} defaultLinkValue The default value for the create link prompt (defaults to http:/ /)
89
+ */
90
+ defaultLinkValue : 'http:/'+'/',
91
+ /**
92
+ * @cfg {Array} fontFamilies An array of available font families
93
+ */
94
+ fontFamilies : [
95
+ 'Arial',
96
+ 'Courier New',
97
+ 'Tahoma',
98
+ 'Times New Roman',
99
+ 'Verdana'
100
+ ],
101
+ defaultFont: 'tahoma',
102
+ /**
103
+ * @cfg {String} defaultValue A default value to be put into the editor to resolve focus issues (defaults to &#8203; (Zero-width space), &nbsp; (Non-breaking space) in Opera and IE6).
104
+ */
105
+ defaultValue: (Ext.isOpera || Ext.isIE6) ? '&nbsp;' : '&#8203;',
106
+
107
+ // private properties
108
+ actionMode: 'wrap',
109
+ validationEvent : false,
110
+ deferHeight: true,
111
+ initialized : false,
112
+ activated : false,
113
+ sourceEditMode : false,
114
+ onFocus : Ext.emptyFn,
115
+ iframePad:3,
116
+ hideMode:'offsets',
117
+ defaultAutoCreate : {
118
+ tag: "textarea",
119
+ style:"width:500px;height:300px;",
120
+ autocomplete: "off"
121
+ },
122
+
123
+ // private
124
+ initComponent : function(){
125
+ this.addEvents(
126
+ /**
127
+ * @event initialize
128
+ * Fires when the editor is fully initialized (including the iframe)
129
+ * @param {HtmlEditor} this
130
+ */
131
+ 'initialize',
132
+ /**
133
+ * @event activate
134
+ * Fires when the editor is first receives the focus. Any insertion must wait
135
+ * until after this event.
136
+ * @param {HtmlEditor} this
137
+ */
138
+ 'activate',
139
+ /**
140
+ * @event beforesync
141
+ * Fires before the textarea is updated with content from the editor iframe. Return false
142
+ * to cancel the sync.
143
+ * @param {HtmlEditor} this
144
+ * @param {String} html
145
+ */
146
+ 'beforesync',
147
+ /**
148
+ * @event beforepush
149
+ * Fires before the iframe editor is updated with content from the textarea. Return false
150
+ * to cancel the push.
151
+ * @param {HtmlEditor} this
152
+ * @param {String} html
153
+ */
154
+ 'beforepush',
155
+ /**
156
+ * @event sync
157
+ * Fires when the textarea is updated with content from the editor iframe.
158
+ * @param {HtmlEditor} this
159
+ * @param {String} html
160
+ */
161
+ 'sync',
162
+ /**
163
+ * @event push
164
+ * Fires when the iframe editor is updated with content from the textarea.
165
+ * @param {HtmlEditor} this
166
+ * @param {String} html
167
+ */
168
+ 'push',
169
+ /**
170
+ * @event editmodechange
171
+ * Fires when the editor switches edit modes
172
+ * @param {HtmlEditor} this
173
+ * @param {Boolean} sourceEdit True if source edit, false if standard editing.
174
+ */
175
+ 'editmodechange'
176
+ )
177
+ },
178
+
179
+ // private
180
+ createFontOptions : function(){
181
+ var buf = [], fs = this.fontFamilies, ff, lc;
182
+ for(var i = 0, len = fs.length; i< len; i++){
183
+ ff = fs[i];
184
+ lc = ff.toLowerCase();
185
+ buf.push(
186
+ '<option value="',lc,'" style="font-family:',ff,';"',
187
+ (this.defaultFont == lc ? ' selected="true">' : '>'),
188
+ ff,
189
+ '</option>'
190
+ );
191
+ }
192
+ return buf.join('');
193
+ },
194
+
195
+ /*
196
+ * Protected method that will not generally be called directly. It
197
+ * is called when the editor creates its toolbar. Override this method if you need to
198
+ * add custom toolbar buttons.
199
+ * @param {HtmlEditor} editor
200
+ */
201
+ createToolbar : function(editor){
202
+
203
+ var tipsEnabled = Ext.QuickTips && Ext.QuickTips.isEnabled();
204
+
205
+ function btn(id, toggle, handler){
206
+ return {
207
+ itemId : id,
208
+ cls : 'x-btn-icon',
209
+ iconCls: 'x-edit-'+id,
210
+ enableToggle:toggle !== false,
211
+ scope: editor,
212
+ handler:handler||editor.relayBtnCmd,
213
+ clickEvent:'mousedown',
214
+ tooltip: tipsEnabled ? editor.buttonTips[id] || undefined : undefined,
215
+ overflowText: editor.buttonTips[id].title || undefined,
216
+ tabIndex:-1
217
+ };
218
+ }
219
+
220
+ // build the toolbar
221
+ var tb = new Ext.Toolbar({
222
+ renderTo:this.wrap.dom.firstChild
223
+ });
224
+
225
+ // stop form submits
226
+ this.mon(tb.el, 'click', function(e){
227
+ e.preventDefault();
228
+ });
229
+
230
+ if(this.enableFont && !Ext.isSafari2){
231
+ this.fontSelect = tb.el.createChild({
232
+ tag:'select',
233
+ cls:'x-font-select',
234
+ html: this.createFontOptions()
235
+ });
236
+ this.mon(this.fontSelect, 'change', function(){
237
+ var font = this.fontSelect.dom.value;
238
+ this.relayCmd('fontname', font);
239
+ this.deferFocus();
240
+ }, this);
241
+
242
+ tb.add(
243
+ this.fontSelect.dom,
244
+ '-'
245
+ );
246
+ }
247
+
248
+ if(this.enableFormat){
249
+ tb.add(
250
+ btn('bold'),
251
+ btn('italic'),
252
+ btn('underline')
253
+ );
254
+ }
255
+
256
+ if(this.enableFontSize){
257
+ tb.add(
258
+ '-',
259
+ btn('increasefontsize', false, this.adjustFont),
260
+ btn('decreasefontsize', false, this.adjustFont)
261
+ );
262
+ }
263
+
264
+ if(this.enableColors){
265
+ tb.add(
266
+ '-', {
267
+ itemId:'forecolor',
268
+ cls:'x-btn-icon',
269
+ iconCls: 'x-edit-forecolor',
270
+ clickEvent:'mousedown',
271
+ tooltip: tipsEnabled ? editor.buttonTips.forecolor || undefined : undefined,
272
+ tabIndex:-1,
273
+ menu : new Ext.menu.ColorMenu({
274
+ allowReselect: true,
275
+ focus: Ext.emptyFn,
276
+ value:'000000',
277
+ plain:true,
278
+ listeners: {
279
+ scope: this,
280
+ select: function(cp, color){
281
+ this.execCmd('forecolor', Ext.isWebKit || Ext.isIE ? '#'+color : color);
282
+ this.deferFocus();
283
+ }
284
+ },
285
+ clickEvent:'mousedown'
286
+ })
287
+ }, {
288
+ itemId:'backcolor',
289
+ cls:'x-btn-icon',
290
+ iconCls: 'x-edit-backcolor',
291
+ clickEvent:'mousedown',
292
+ tooltip: tipsEnabled ? editor.buttonTips.backcolor || undefined : undefined,
293
+ tabIndex:-1,
294
+ menu : new Ext.menu.ColorMenu({
295
+ focus: Ext.emptyFn,
296
+ value:'FFFFFF',
297
+ plain:true,
298
+ allowReselect: true,
299
+ listeners: {
300
+ scope: this,
301
+ select: function(cp, color){
302
+ if(Ext.isGecko){
303
+ this.execCmd('useCSS', false);
304
+ this.execCmd('hilitecolor', color);
305
+ this.execCmd('useCSS', true);
306
+ this.deferFocus();
307
+ }else{
308
+ this.execCmd(Ext.isOpera ? 'hilitecolor' : 'backcolor', Ext.isWebKit || Ext.isIE ? '#'+color : color);
309
+ this.deferFocus();
310
+ }
311
+ }
312
+ },
313
+ clickEvent:'mousedown'
314
+ })
315
+ }
316
+ );
317
+ }
318
+
319
+ if(this.enableAlignments){
320
+ tb.add(
321
+ '-',
322
+ btn('justifyleft'),
323
+ btn('justifycenter'),
324
+ btn('justifyright')
325
+ );
326
+ }
327
+
328
+ if(!Ext.isSafari2){
329
+ if(this.enableLinks){
330
+ tb.add(
331
+ '-',
332
+ btn('createlink', false, this.createLink)
333
+ );
334
+ }
335
+
336
+ if(this.enableLists){
337
+ tb.add(
338
+ '-',
339
+ btn('insertorderedlist'),
340
+ btn('insertunorderedlist')
341
+ );
342
+ }
343
+ if(this.enableSourceEdit){
344
+ tb.add(
345
+ '-',
346
+ btn('sourceedit', true, function(btn){
347
+ this.toggleSourceEdit(!this.sourceEditMode);
348
+ })
349
+ );
350
+ }
351
+ }
352
+
353
+ this.tb = tb;
354
+ },
355
+
356
+ /**
357
+ * Protected method that will not generally be called directly. It
358
+ * is called when the editor initializes the iframe with HTML contents. Override this method if you
359
+ * want to change the initialization markup of the iframe (e.g. to add stylesheets).
360
+ */
361
+ getDocMarkup : function(){
362
+ return '<html><head><style type="text/css">body{border:0;margin:0;padding:3px;height:98%;cursor:text;}</style></head><body></body></html>';
363
+ },
364
+
365
+ // private
366
+ getEditorBody : function(){
367
+ return this.doc.body || this.doc.documentElement;
368
+ },
369
+
370
+ // private
371
+ getDoc : function(){
372
+ return Ext.isIE ? this.getWin().document : (this.iframe.contentDocument || this.getWin().document);
373
+ },
374
+
375
+ // private
376
+ getWin : function(){
377
+ return Ext.isIE ? this.iframe.contentWindow : window.frames[this.iframe.name];
378
+ },
379
+
380
+ // private
381
+ onRender : function(ct, position){
382
+ Ext.form.HtmlEditor.superclass.onRender.call(this, ct, position);
383
+ this.el.dom.style.border = '0 none';
384
+ this.el.dom.setAttribute('tabIndex', -1);
385
+ this.el.addClass('x-hidden');
386
+ if(Ext.isIE){ // fix IE 1px bogus margin
387
+ this.el.applyStyles('margin-top:-1px;margin-bottom:-1px;')
388
+ }
389
+ this.wrap = this.el.wrap({
390
+ cls:'x-html-editor-wrap', cn:{cls:'x-html-editor-tb'}
391
+ });
392
+
393
+ this.createToolbar(this);
394
+
395
+ this.disableItems(true);
396
+ // is this needed?
397
+ // this.tb.doLayout();
398
+
399
+ this.createIFrame();
400
+
401
+ if(!this.width){
402
+ var sz = this.el.getSize();
403
+ this.setSize(sz.width, this.height || sz.height);
404
+ }
405
+ },
406
+
407
+ createIFrame: function(){
408
+ var iframe = document.createElement('iframe');
409
+ iframe.name = Ext.id();
410
+ iframe.frameBorder = '0';
411
+ iframe.src = Ext.isIE ? Ext.SSL_SECURE_URL : "javascript:;";
412
+ this.wrap.dom.appendChild(iframe);
413
+
414
+ this.iframe = iframe;
415
+
416
+ this.monitorTask = Ext.TaskMgr.start({
417
+ run: this.checkDesignMode,
418
+ scope: this,
419
+ interval:100
420
+ });
421
+ },
422
+
423
+ initFrame : function(){
424
+ Ext.TaskMgr.stop(this.monitorTask);
425
+ this.doc = this.getDoc();
426
+ this.win = this.getWin();
427
+
428
+ this.doc.open();
429
+ this.doc.write(this.getDocMarkup());
430
+ this.doc.close();
431
+
432
+ var task = { // must defer to wait for browser to be ready
433
+ run : function(){
434
+ if(this.doc.body || this.doc.readyState == 'complete'){
435
+ Ext.TaskMgr.stop(task);
436
+ this.doc.designMode="on";
437
+ this.initEditor.defer(10, this);
438
+ }
439
+ },
440
+ interval : 10,
441
+ duration:10000,
442
+ scope: this
443
+ };
444
+ Ext.TaskMgr.start(task);
445
+ },
446
+
447
+
448
+ checkDesignMode : function(){
449
+ if(this.wrap && this.wrap.dom.offsetWidth){
450
+ var doc = this.getDoc();
451
+ if(!doc){
452
+ return;
453
+ }
454
+ if(!doc.editorInitialized || String(doc.designMode).toLowerCase() != 'on'){
455
+ this.initFrame();
456
+ }
457
+ }
458
+ },
459
+
460
+ disableItems: function(disabled){
461
+ if(this.fontSelect){
462
+ this.fontSelect.dom.disabled = disabled;
463
+ }
464
+ this.tb.items.each(function(item){
465
+ if(item.itemId != 'sourceedit'){
466
+ item.setDisabled(disabled);
467
+ }
468
+ });
469
+ },
470
+
471
+ // private
472
+ onResize : function(w, h){
473
+ Ext.form.HtmlEditor.superclass.onResize.apply(this, arguments);
474
+ if(this.el && this.iframe){
475
+ if(typeof w == 'number'){
476
+ var aw = w - this.wrap.getFrameWidth('lr');
477
+ this.el.setWidth(this.adjustWidth('textarea', aw));
478
+ this.tb.setWidth(aw);
479
+ this.iframe.style.width = Math.max(aw, 0) + 'px';
480
+ }
481
+ if(typeof h == 'number'){
482
+ var ah = h - this.wrap.getFrameWidth('tb') - this.tb.el.getHeight();
483
+ this.el.setHeight(this.adjustWidth('textarea', ah));
484
+ this.iframe.style.height = Math.max(ah, 0) + 'px';
485
+ if(this.doc){
486
+ this.getEditorBody().style.height = Math.max((ah - (this.iframePad*2)), 0) + 'px';
487
+ }
488
+ }
489
+ }
490
+ },
491
+
492
+ /**
493
+ * Toggles the editor between standard and source edit mode.
494
+ * @param {Boolean} sourceEdit (optional) True for source edit, false for standard
495
+ */
496
+ toggleSourceEdit : function(sourceEditMode){
497
+ if(sourceEditMode === undefined){
498
+ sourceEditMode = !this.sourceEditMode;
499
+ }
500
+ this.sourceEditMode = sourceEditMode === true;
501
+ var btn = this.tb.items.get('sourceedit');
502
+ if(btn.pressed !== this.sourceEditMode){
503
+ btn.toggle(this.sourceEditMode);
504
+ if(!btn.xtbHidden){
505
+ return;
506
+ }
507
+ }
508
+ if(this.sourceEditMode){
509
+ this.disableItems(true);
510
+ this.syncValue();
511
+ this.iframe.className = 'x-hidden';
512
+ this.el.removeClass('x-hidden');
513
+ this.el.dom.removeAttribute('tabIndex');
514
+ this.el.focus();
515
+ }else{
516
+ if(this.initialized){
517
+ this.disableItems(false);
518
+ }
519
+ this.pushValue();
520
+ this.iframe.className = '';
521
+ this.el.addClass('x-hidden');
522
+ this.el.dom.setAttribute('tabIndex', -1);
523
+ this.deferFocus();
524
+ }
525
+ var lastSize = this.lastSize;
526
+ if(lastSize){
527
+ delete this.lastSize;
528
+ this.setSize(lastSize);
529
+ }
530
+ this.fireEvent('editmodechange', this, this.sourceEditMode);
531
+ },
532
+
533
+ // private used internally
534
+ createLink : function(){
535
+ var url = prompt(this.createLinkText, this.defaultLinkValue);
536
+ if(url && url != 'http:/'+'/'){
537
+ this.relayCmd('createlink', url);
538
+ }
539
+ },
540
+
541
+ // private (for BoxComponent)
542
+ adjustSize : Ext.BoxComponent.prototype.adjustSize,
543
+
544
+ // private (for BoxComponent)
545
+ getResizeEl : function(){
546
+ return this.wrap;
547
+ },
548
+
549
+ // private (for BoxComponent)
550
+ getPositionEl : function(){
551
+ return this.wrap;
552
+ },
553
+
554
+ // private
555
+ initEvents : function(){
556
+ this.originalValue = this.getValue();
557
+ },
558
+
559
+ /**
560
+ * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
561
+ * @method
562
+ */
563
+ markInvalid : Ext.emptyFn,
564
+
565
+ /**
566
+ * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
567
+ * @method
568
+ */
569
+ clearInvalid : Ext.emptyFn,
570
+
571
+ // docs inherit from Field
572
+ setValue : function(v){
573
+ Ext.form.HtmlEditor.superclass.setValue.call(this, v);
574
+ this.pushValue();
575
+ return this;
576
+ },
577
+
578
+ /**
579
+ * Protected method that will not generally be called directly. If you need/want
580
+ * custom HTML cleanup, this is the method you should override.
581
+ * @param {String} html The HTML to be cleaned
582
+ * @return {String} The cleaned HTML
583
+ */
584
+ cleanHtml : function(html){
585
+ html = String(html);
586
+ if(html.length > 5){
587
+ if(Ext.isWebKit){ // strip safari nonsense
588
+ html = html.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi, '');
589
+ }
590
+ }
591
+ if(html == this.defaultValue){
592
+ html = '';
593
+ }
594
+ return html;
595
+ },
596
+
597
+ /**
598
+ * Protected method that will not generally be called directly. Syncs the contents
599
+ * of the editor iframe with the textarea.
600
+ */
601
+ syncValue : function(){
602
+ if(this.initialized){
603
+ var bd = this.getEditorBody();
604
+ var html = bd.innerHTML;
605
+ if(Ext.isWebKit){
606
+ var bs = bd.getAttribute('style'); // Safari puts text-align styles on the body element!
607
+ var m = bs.match(/text-align:(.*?);/i);
608
+ if(m && m[1]){
609
+ html = '<div style="'+m[0]+'">' + html + '</div>';
610
+ }
611
+ }
612
+ html = this.cleanHtml(html);
613
+ if(this.fireEvent('beforesync', this, html) !== false){
614
+ this.el.dom.value = html;
615
+ this.fireEvent('sync', this, html);
616
+ }
617
+ }
618
+ },
619
+
620
+ //docs inherit from Field
621
+ getValue : function() {
622
+ this[this.sourceEditMode ? 'pushValue' : 'syncValue']();
623
+ return Ext.form.HtmlEditor.superclass.getValue.call(this);
624
+ },
625
+
626
+ /**
627
+ * Protected method that will not generally be called directly. Pushes the value of the textarea
628
+ * into the iframe editor.
629
+ */
630
+ pushValue : function(){
631
+ if(this.initialized){
632
+ var v = this.el.dom.value;
633
+ if(!this.activated && v.length < 1){
634
+ v = this.defaultValue;
635
+ }
636
+ if(this.fireEvent('beforepush', this, v) !== false){
637
+ this.getEditorBody().innerHTML = v;
638
+ if(Ext.isGecko){
639
+ // Gecko hack, see: https://bugzilla.mozilla.org/show_bug.cgi?id=232791#c8
640
+ var d = this.doc,
641
+ mode = d.designMode.toLowerCase();
642
+
643
+ d.designMode = mode.toggle('on', 'off');
644
+ d.designMode = mode;
645
+ }
646
+ this.fireEvent('push', this, v);
647
+ }
648
+ }
649
+ },
650
+
651
+ // private
652
+ deferFocus : function(){
653
+ this.focus.defer(10, this);
654
+ },
655
+
656
+ // docs inherit from Field
657
+ focus : function(){
658
+ if(this.win && !this.sourceEditMode){
659
+ this.win.focus();
660
+ }else{
661
+ this.el.focus();
662
+ }
663
+ },
664
+
665
+ // private
666
+ initEditor : function(){
667
+ //Destroying the component during/before initEditor can cause issues.
668
+ try{
669
+ var dbody = this.getEditorBody();
670
+ var ss = this.el.getStyles('font-size', 'font-family', 'background-image', 'background-repeat');
671
+ ss['background-attachment'] = 'fixed'; // w3c
672
+ dbody.bgProperties = 'fixed'; // ie
673
+
674
+ Ext.DomHelper.applyStyles(dbody, ss);
675
+
676
+ if(this.doc){
677
+ try{
678
+ Ext.EventManager.removeAll(this.doc);
679
+ }catch(e){}
680
+ }
681
+
682
+ this.doc = this.getDoc();
683
+
684
+ Ext.EventManager.on(this.doc, {
685
+ 'mousedown': this.onEditorEvent,
686
+ 'dblclick': this.onEditorEvent,
687
+ 'click': this.onEditorEvent,
688
+ 'keyup': this.onEditorEvent,
689
+ buffer:100,
690
+ scope: this
691
+ });
692
+
693
+ if(Ext.isGecko){
694
+ Ext.EventManager.on(this.doc, 'keypress', this.applyCommand, this);
695
+ }
696
+ if(Ext.isIE || Ext.isWebKit || Ext.isOpera){
697
+ Ext.EventManager.on(this.doc, 'keydown', this.fixKeys, this);
698
+ }
699
+ this.initialized = true;
700
+ this.fireEvent('initialize', this);
701
+ this.doc.editorInitialized = true;
702
+ this.pushValue();
703
+ }catch(e){}
704
+ },
705
+
706
+ // private
707
+ onDestroy : function(){
708
+ if(this.monitorTask){
709
+ Ext.TaskMgr.stop(this.monitorTask);
710
+ }
711
+ if(this.rendered){
712
+ Ext.destroy(this.tb);
713
+ if(this.wrap){
714
+ this.wrap.dom.innerHTML = '';
715
+ this.wrap.remove();
716
+ }
717
+ }
718
+ if(this.el){
719
+ this.el.removeAllListeners();
720
+ this.el.remove();
721
+ }
722
+
723
+ if(this.doc){
724
+ try{
725
+ Ext.EventManager.removeAll(this.doc);
726
+ for (var prop in this.doc){
727
+ delete this.doc[prop];
728
+ }
729
+ }catch(e){}
730
+ }
731
+ this.purgeListeners();
732
+ },
733
+
734
+ // private
735
+ onFirstFocus : function(){
736
+ this.activated = true;
737
+ this.disableItems(false);
738
+ if(Ext.isGecko){ // prevent silly gecko errors
739
+ this.win.focus();
740
+ var s = this.win.getSelection();
741
+ if(!s.focusNode || s.focusNode.nodeType != 3){
742
+ var r = s.getRangeAt(0);
743
+ r.selectNodeContents(this.getEditorBody());
744
+ r.collapse(true);
745
+ this.deferFocus();
746
+ }
747
+ try{
748
+ this.execCmd('useCSS', true);
749
+ this.execCmd('styleWithCSS', false);
750
+ }catch(e){}
751
+ }
752
+ this.fireEvent('activate', this);
753
+ },
754
+
755
+ // private
756
+ adjustFont: function(btn){
757
+ var adjust = btn.itemId == 'increasefontsize' ? 1 : -1;
758
+
759
+ var v = parseInt(this.doc.queryCommandValue('FontSize') || 2, 10);
760
+ if((Ext.isSafari && !Ext.isSafari2) || Ext.isChrome || Ext.isAir){
761
+ // Safari 3 values
762
+ // 1 = 10px, 2 = 13px, 3 = 16px, 4 = 18px, 5 = 24px, 6 = 32px
763
+ if(v <= 10){
764
+ v = 1 + adjust;
765
+ }else if(v <= 13){
766
+ v = 2 + adjust;
767
+ }else if(v <= 16){
768
+ v = 3 + adjust;
769
+ }else if(v <= 18){
770
+ v = 4 + adjust;
771
+ }else if(v <= 24){
772
+ v = 5 + adjust;
773
+ }else {
774
+ v = 6 + adjust;
775
+ }
776
+ v = v.constrain(1, 6);
777
+ }else{
778
+ if(Ext.isSafari){ // safari
779
+ adjust *= 2;
780
+ }
781
+ v = Math.max(1, v+adjust) + (Ext.isSafari ? 'px' : 0);
782
+ }
783
+ this.execCmd('FontSize', v);
784
+ },
785
+
786
+ // private
787
+ onEditorEvent : function(e){
788
+ this.updateToolbar();
789
+ },
790
+
791
+
792
+ /**
793
+ * Protected method that will not generally be called directly. It triggers
794
+ * a toolbar update by reading the markup state of the current selection in the editor.
795
+ */
796
+ updateToolbar: function(){
797
+
798
+ if(!this.activated){
799
+ this.onFirstFocus();
800
+ return;
801
+ }
802
+
803
+ var btns = this.tb.items.map, doc = this.doc;
804
+
805
+ if(this.enableFont && !Ext.isSafari2){
806
+ var name = (this.doc.queryCommandValue('FontName')||this.defaultFont).toLowerCase();
807
+ if(name != this.fontSelect.dom.value){
808
+ this.fontSelect.dom.value = name;
809
+ }
810
+ }
811
+ if(this.enableFormat){
812
+ btns.bold.toggle(doc.queryCommandState('bold'));
813
+ btns.italic.toggle(doc.queryCommandState('italic'));
814
+ btns.underline.toggle(doc.queryCommandState('underline'));
815
+ }
816
+ if(this.enableAlignments){
817
+ btns.justifyleft.toggle(doc.queryCommandState('justifyleft'));
818
+ btns.justifycenter.toggle(doc.queryCommandState('justifycenter'));
819
+ btns.justifyright.toggle(doc.queryCommandState('justifyright'));
820
+ }
821
+ if(!Ext.isSafari2 && this.enableLists){
822
+ btns.insertorderedlist.toggle(doc.queryCommandState('insertorderedlist'));
823
+ btns.insertunorderedlist.toggle(doc.queryCommandState('insertunorderedlist'));
824
+ }
825
+
826
+ Ext.menu.MenuMgr.hideAll();
827
+
828
+ this.syncValue();
829
+ },
830
+
831
+ // private
832
+ relayBtnCmd : function(btn){
833
+ this.relayCmd(btn.itemId);
834
+ },
835
+
836
+ /**
837
+ * Executes a Midas editor command on the editor document and performs necessary focus and
838
+ * toolbar updates. <b>This should only be called after the editor is initialized.</b>
839
+ * @param {String} cmd The Midas command
840
+ * @param {String/Boolean} value (optional) The value to pass to the command (defaults to null)
841
+ */
842
+ relayCmd : function(cmd, value){
843
+ (function(){
844
+ this.focus();
845
+ this.execCmd(cmd, value);
846
+ this.updateToolbar();
847
+ }).defer(10, this);
848
+ },
849
+
850
+ /**
851
+ * Executes a Midas editor command directly on the editor document.
852
+ * For visual commands, you should use {@link #relayCmd} instead.
853
+ * <b>This should only be called after the editor is initialized.</b>
854
+ * @param {String} cmd The Midas command
855
+ * @param {String/Boolean} value (optional) The value to pass to the command (defaults to null)
856
+ */
857
+ execCmd : function(cmd, value){
858
+ this.doc.execCommand(cmd, false, value === undefined ? null : value);
859
+ this.syncValue();
860
+ },
861
+
862
+ // private
863
+ applyCommand : function(e){
864
+ if(e.ctrlKey){
865
+ var c = e.getCharCode(), cmd;
866
+ if(c > 0){
867
+ c = String.fromCharCode(c);
868
+ switch(c){
869
+ case 'b':
870
+ cmd = 'bold';
871
+ break;
872
+ case 'i':
873
+ cmd = 'italic';
874
+ break;
875
+ case 'u':
876
+ cmd = 'underline';
877
+ break;
878
+ }
879
+ if(cmd){
880
+ this.win.focus();
881
+ this.execCmd(cmd);
882
+ this.deferFocus();
883
+ e.preventDefault();
884
+ }
885
+ }
886
+ }
887
+ },
888
+
889
+ /**
890
+ * Inserts the passed text at the current cursor position. Note: the editor must be initialized and activated
891
+ * to insert text.
892
+ * @param {String} text
893
+ */
894
+ insertAtCursor : function(text){
895
+ if(!this.activated){
896
+ return;
897
+ }
898
+ if(Ext.isIE){
899
+ this.win.focus();
900
+ var r = this.doc.selection.createRange();
901
+ if(r){
902
+ r.collapse(true);
903
+ r.pasteHTML(text);
904
+ this.syncValue();
905
+ this.deferFocus();
906
+ }
907
+ }else if(Ext.isGecko || Ext.isOpera){
908
+ this.win.focus();
909
+ this.execCmd('InsertHTML', text);
910
+ this.deferFocus();
911
+ }else if(Ext.isWebKit){
912
+ this.execCmd('InsertText', text);
913
+ this.deferFocus();
914
+ }
915
+ },
916
+
917
+ // private
918
+ fixKeys : function(){ // load time branching for fastest keydown performance
919
+ if(Ext.isIE){
920
+ return function(e){
921
+ var k = e.getKey(), r;
922
+ if(k == e.TAB){
923
+ e.stopEvent();
924
+ r = this.doc.selection.createRange();
925
+ if(r){
926
+ r.collapse(true);
927
+ r.pasteHTML('&nbsp;&nbsp;&nbsp;&nbsp;');
928
+ this.deferFocus();
929
+ }
930
+ }else if(k == e.ENTER){
931
+ r = this.doc.selection.createRange();
932
+ if(r){
933
+ var target = r.parentElement();
934
+ if(!target || target.tagName.toLowerCase() != 'li'){
935
+ e.stopEvent();
936
+ r.pasteHTML('<br />');
937
+ r.collapse(false);
938
+ r.select();
939
+ }
940
+ }
941
+ }
942
+ };
943
+ }else if(Ext.isOpera){
944
+ return function(e){
945
+ var k = e.getKey();
946
+ if(k == e.TAB){
947
+ e.stopEvent();
948
+ this.win.focus();
949
+ this.execCmd('InsertHTML','&nbsp;&nbsp;&nbsp;&nbsp;');
950
+ this.deferFocus();
951
+ }
952
+ };
953
+ }else if(Ext.isWebKit){
954
+ return function(e){
955
+ var k = e.getKey();
956
+ if(k == e.TAB){
957
+ e.stopEvent();
958
+ this.execCmd('InsertText','\t');
959
+ this.deferFocus();
960
+ }
961
+ };
962
+ }
963
+ }(),
964
+
965
+ /**
966
+ * Returns the editor's toolbar. <b>This is only available after the editor has been rendered.</b>
967
+ * @return {Ext.Toolbar}
968
+ */
969
+ getToolbar : function(){
970
+ return this.tb;
971
+ },
972
+
973
+ /**
974
+ * Object collection of toolbar tooltips for the buttons in the editor. The key
975
+ * is the command id associated with that button and the value is a valid QuickTips object.
976
+ * For example:
977
+ <pre><code>
978
+ {
979
+ bold : {
980
+ title: 'Bold (Ctrl+B)',
981
+ text: 'Make the selected text bold.',
982
+ cls: 'x-html-editor-tip'
983
+ },
984
+ italic : {
985
+ title: 'Italic (Ctrl+I)',
986
+ text: 'Make the selected text italic.',
987
+ cls: 'x-html-editor-tip'
988
+ },
989
+ ...
990
+ </code></pre>
991
+ * @type Object
992
+ */
993
+ buttonTips : {
994
+ bold : {
995
+ title: 'Bold (Ctrl+B)',
996
+ text: 'Make the selected text bold.',
997
+ cls: 'x-html-editor-tip'
998
+ },
999
+ italic : {
1000
+ title: 'Italic (Ctrl+I)',
1001
+ text: 'Make the selected text italic.',
1002
+ cls: 'x-html-editor-tip'
1003
+ },
1004
+ underline : {
1005
+ title: 'Underline (Ctrl+U)',
1006
+ text: 'Underline the selected text.',
1007
+ cls: 'x-html-editor-tip'
1008
+ },
1009
+ increasefontsize : {
1010
+ title: 'Grow Text',
1011
+ text: 'Increase the font size.',
1012
+ cls: 'x-html-editor-tip'
1013
+ },
1014
+ decreasefontsize : {
1015
+ title: 'Shrink Text',
1016
+ text: 'Decrease the font size.',
1017
+ cls: 'x-html-editor-tip'
1018
+ },
1019
+ backcolor : {
1020
+ title: 'Text Highlight Color',
1021
+ text: 'Change the background color of the selected text.',
1022
+ cls: 'x-html-editor-tip'
1023
+ },
1024
+ forecolor : {
1025
+ title: 'Font Color',
1026
+ text: 'Change the color of the selected text.',
1027
+ cls: 'x-html-editor-tip'
1028
+ },
1029
+ justifyleft : {
1030
+ title: 'Align Text Left',
1031
+ text: 'Align text to the left.',
1032
+ cls: 'x-html-editor-tip'
1033
+ },
1034
+ justifycenter : {
1035
+ title: 'Center Text',
1036
+ text: 'Center text in the editor.',
1037
+ cls: 'x-html-editor-tip'
1038
+ },
1039
+ justifyright : {
1040
+ title: 'Align Text Right',
1041
+ text: 'Align text to the right.',
1042
+ cls: 'x-html-editor-tip'
1043
+ },
1044
+ insertunorderedlist : {
1045
+ title: 'Bullet List',
1046
+ text: 'Start a bulleted list.',
1047
+ cls: 'x-html-editor-tip'
1048
+ },
1049
+ insertorderedlist : {
1050
+ title: 'Numbered List',
1051
+ text: 'Start a numbered list.',
1052
+ cls: 'x-html-editor-tip'
1053
+ },
1054
+ createlink : {
1055
+ title: 'Hyperlink',
1056
+ text: 'Make the selected text a hyperlink.',
1057
+ cls: 'x-html-editor-tip'
1058
+ },
1059
+ sourceedit : {
1060
+ title: 'Source Edit',
1061
+ text: 'Switch to source editing mode.',
1062
+ cls: 'x-html-editor-tip'
1063
+ }
1064
+ }
1065
+
1066
+ // hide stuff that is not compatible
1067
+ /**
1068
+ * @event blur
1069
+ * @hide
1070
+ */
1071
+ /**
1072
+ * @event change
1073
+ * @hide
1074
+ */
1075
+ /**
1076
+ * @event focus
1077
+ * @hide
1078
+ */
1079
+ /**
1080
+ * @event specialkey
1081
+ * @hide
1082
+ */
1083
+ /**
1084
+ * @cfg {String} fieldClass @hide
1085
+ */
1086
+ /**
1087
+ * @cfg {String} focusClass @hide
1088
+ */
1089
+ /**
1090
+ * @cfg {String} autoCreate @hide
1091
+ */
1092
+ /**
1093
+ * @cfg {String} inputType @hide
1094
+ */
1095
+ /**
1096
+ * @cfg {String} invalidClass @hide
1097
+ */
1098
+ /**
1099
+ * @cfg {String} invalidText @hide
1100
+ */
1101
+ /**
1102
+ * @cfg {String} msgFx @hide
1103
+ */
1104
+ /**
1105
+ * @cfg {String} validateOnBlur @hide
1106
+ */
1107
+ /**
1108
+ * @cfg {Boolean} allowDomMove @hide
1109
+ */
1110
+ /**
1111
+ * @cfg {String} applyTo @hide
1112
+ */
1113
+ /**
1114
+ * @cfg {String} autoHeight @hide
1115
+ */
1116
+ /**
1117
+ * @cfg {String} autoWidth @hide
1118
+ */
1119
+ /**
1120
+ * @cfg {String} cls @hide
1121
+ */
1122
+ /**
1123
+ * @cfg {String} disabled @hide
1124
+ */
1125
+ /**
1126
+ * @cfg {String} disabledClass @hide
1127
+ */
1128
+ /**
1129
+ * @cfg {String} msgTarget @hide
1130
+ */
1131
+ /**
1132
+ * @cfg {String} readOnly @hide
1133
+ */
1134
+ /**
1135
+ * @cfg {String} style @hide
1136
+ */
1137
+ /**
1138
+ * @cfg {String} validationDelay @hide
1139
+ */
1140
+ /**
1141
+ * @cfg {String} validationEvent @hide
1142
+ */
1143
+ /**
1144
+ * @cfg {String} tabIndex @hide
1145
+ */
1146
+ /**
1147
+ * @property disabled
1148
+ * @hide
1149
+ */
1150
+ /**
1151
+ * @method applyToMarkup
1152
+ * @hide
1153
+ */
1154
+ /**
1155
+ * @method disable
1156
+ * @hide
1157
+ */
1158
+ /**
1159
+ * @method enable
1160
+ * @hide
1161
+ */
1162
+ /**
1163
+ * @method validate
1164
+ * @hide
1165
+ */
1166
+ /**
1167
+ * @event valid
1168
+ * @hide
1169
+ */
1170
+ /**
1171
+ * @method setDisabled
1172
+ * @hide
1173
+ */
1174
+ /**
1175
+ * @cfg keys
1176
+ * @hide
1177
+ */
1178
+ });
1179
+ Ext.reg('htmleditor', Ext.form.HtmlEditor);