extjs-rails 4.1.0.alpha1

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 (517) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +36 -0
  4. data/README.md +29 -0
  5. data/Rakefile +2 -0
  6. data/app/assets/javascripts/extjs-rails/extjs-rails.js +1 -0
  7. data/app/assets/javascripts/extjs-rails/index.js.erb +9 -0
  8. data/app/assets/javascripts/extjs-rails/sdk.jsb3 +2017 -0
  9. data/app/assets/javascripts/extjs-rails/src/AbstractComponent.js +3290 -0
  10. data/app/assets/javascripts/extjs-rails/src/AbstractManager.js +144 -0
  11. data/app/assets/javascripts/extjs-rails/src/AbstractPlugin.js +72 -0
  12. data/app/assets/javascripts/extjs-rails/src/Action.js +276 -0
  13. data/app/assets/javascripts/extjs-rails/src/Ajax.js +99 -0
  14. data/app/assets/javascripts/extjs-rails/src/Component.js +1344 -0
  15. data/app/assets/javascripts/extjs-rails/src/ComponentLoader.js +202 -0
  16. data/app/assets/javascripts/extjs-rails/src/ComponentManager.js +47 -0
  17. data/app/assets/javascripts/extjs-rails/src/ComponentQuery.js +521 -0
  18. data/app/assets/javascripts/extjs-rails/src/Editor.js +494 -0
  19. data/app/assets/javascripts/extjs-rails/src/ElementLoader.js +404 -0
  20. data/app/assets/javascripts/extjs-rails/src/FocusManager.js +712 -0
  21. data/app/assets/javascripts/extjs-rails/src/Img.js +111 -0
  22. data/app/assets/javascripts/extjs-rails/src/Layer.js +543 -0
  23. data/app/assets/javascripts/extjs-rails/src/LoadMask.js +432 -0
  24. data/app/assets/javascripts/extjs-rails/src/ModelManager.js +186 -0
  25. data/app/assets/javascripts/extjs-rails/src/PluginManager.js +110 -0
  26. data/app/assets/javascripts/extjs-rails/src/ProgressBar.js +336 -0
  27. data/app/assets/javascripts/extjs-rails/src/Shadow.js +233 -0
  28. data/app/assets/javascripts/extjs-rails/src/ShadowPool.js +43 -0
  29. data/app/assets/javascripts/extjs-rails/src/Template.js +331 -0
  30. data/app/assets/javascripts/extjs-rails/src/XTemplate.js +365 -0
  31. data/app/assets/javascripts/extjs-rails/src/XTemplateCompiler.js +450 -0
  32. data/app/assets/javascripts/extjs-rails/src/XTemplateParser.js +249 -0
  33. data/app/assets/javascripts/extjs-rails/src/ZIndexManager.js +519 -0
  34. data/app/assets/javascripts/extjs-rails/src/app/Application.js +271 -0
  35. data/app/assets/javascripts/extjs-rails/src/app/Controller.js +458 -0
  36. data/app/assets/javascripts/extjs-rails/src/app/EventBus.js +112 -0
  37. data/app/assets/javascripts/extjs-rails/src/button/Button.js +1483 -0
  38. data/app/assets/javascripts/extjs-rails/src/button/Cycle.js +215 -0
  39. data/app/assets/javascripts/extjs-rails/src/button/Split.js +99 -0
  40. data/app/assets/javascripts/extjs-rails/src/chart/Callout.js +140 -0
  41. data/app/assets/javascripts/extjs-rails/src/chart/Chart.js +966 -0
  42. data/app/assets/javascripts/extjs-rails/src/chart/Highlight.js +172 -0
  43. data/app/assets/javascripts/extjs-rails/src/chart/Label.js +241 -0
  44. data/app/assets/javascripts/extjs-rails/src/chart/Legend.js +474 -0
  45. data/app/assets/javascripts/extjs-rails/src/chart/LegendItem.js +217 -0
  46. data/app/assets/javascripts/extjs-rails/src/chart/Mask.js +230 -0
  47. data/app/assets/javascripts/extjs-rails/src/chart/MaskLayer.js +48 -0
  48. data/app/assets/javascripts/extjs-rails/src/chart/Navigation.js +79 -0
  49. data/app/assets/javascripts/extjs-rails/src/chart/Shape.js +106 -0
  50. data/app/assets/javascripts/extjs-rails/src/chart/Tip.js +98 -0
  51. data/app/assets/javascripts/extjs-rails/src/chart/TipSurface.js +42 -0
  52. data/app/assets/javascripts/extjs-rails/src/chart/axis/Abstract.js +73 -0
  53. data/app/assets/javascripts/extjs-rails/src/chart/axis/Axis.js +961 -0
  54. data/app/assets/javascripts/extjs-rails/src/chart/axis/Category.js +130 -0
  55. data/app/assets/javascripts/extjs-rails/src/chart/axis/Gauge.js +203 -0
  56. data/app/assets/javascripts/extjs-rails/src/chart/axis/Numeric.js +235 -0
  57. data/app/assets/javascripts/extjs-rails/src/chart/axis/Radial.js +204 -0
  58. data/app/assets/javascripts/extjs-rails/src/chart/axis/Time.js +135 -0
  59. data/app/assets/javascripts/extjs-rails/src/chart/series/Area.js +803 -0
  60. data/app/assets/javascripts/extjs-rails/src/chart/series/Bar.js +853 -0
  61. data/app/assets/javascripts/extjs-rails/src/chart/series/Cartesian.js +328 -0
  62. data/app/assets/javascripts/extjs-rails/src/chart/series/Column.js +104 -0
  63. data/app/assets/javascripts/extjs-rails/src/chart/series/Gauge.js +490 -0
  64. data/app/assets/javascripts/extjs-rails/src/chart/series/Line.js +1104 -0
  65. data/app/assets/javascripts/extjs-rails/src/chart/series/Pie.js +1072 -0
  66. data/app/assets/javascripts/extjs-rails/src/chart/series/Radar.js +440 -0
  67. data/app/assets/javascripts/extjs-rails/src/chart/series/Scatter.js +668 -0
  68. data/app/assets/javascripts/extjs-rails/src/chart/series/Series.js +443 -0
  69. data/app/assets/javascripts/extjs-rails/src/chart/theme/Base.js +175 -0
  70. data/app/assets/javascripts/extjs-rails/src/chart/theme/Theme.js +253 -0
  71. data/app/assets/javascripts/extjs-rails/src/container/AbstractContainer.js +1062 -0
  72. data/app/assets/javascripts/extjs-rails/src/container/ButtonGroup.js +143 -0
  73. data/app/assets/javascripts/extjs-rails/src/container/Container.js +212 -0
  74. data/app/assets/javascripts/extjs-rails/src/container/DockingContainer.js +265 -0
  75. data/app/assets/javascripts/extjs-rails/src/container/Viewport.js +184 -0
  76. data/app/assets/javascripts/extjs-rails/src/core/dom/Element.form.js +50 -0
  77. data/app/assets/javascripts/extjs-rails/src/core/dom/Element.static-more.js +159 -0
  78. data/app/assets/javascripts/extjs-rails/src/core/examples/index.html +321 -0
  79. data/app/assets/javascripts/extjs-rails/src/core/examples/index.js +6 -0
  80. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CTO.js +25 -0
  81. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CoolGuy.js +20 -0
  82. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Developer.js +43 -0
  83. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Gun.js +3 -0
  84. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/HumanResource.js +23 -0
  85. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Musician.js +20 -0
  86. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Person.js +50 -0
  87. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanComposeSongs.js +9 -0
  88. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanPlayGuitar.js +9 -0
  89. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanSing.js +18 -0
  90. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/A.js +3 -0
  91. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/B.js +3 -0
  92. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/C.js +3 -0
  93. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/D.js +3 -0
  94. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/E.js +3 -0
  95. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/A.js +3 -0
  96. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/B.js +4 -0
  97. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/C.js +3 -0
  98. data/app/assets/javascripts/extjs-rails/src/core/src/EventManager.js +1167 -0
  99. data/app/assets/javascripts/extjs-rails/src/core/src/EventObject.js +883 -0
  100. data/app/assets/javascripts/extjs-rails/src/core/src/Ext-more.js +1283 -0
  101. data/app/assets/javascripts/extjs-rails/src/core/src/Ext.js +736 -0
  102. data/app/assets/javascripts/extjs-rails/src/core/src/Support.js +662 -0
  103. data/app/assets/javascripts/extjs-rails/src/core/src/class/Base.js +1085 -0
  104. data/app/assets/javascripts/extjs-rails/src/core/src/class/Class.js +676 -0
  105. data/app/assets/javascripts/extjs-rails/src/core/src/class/ClassManager.js +1591 -0
  106. data/app/assets/javascripts/extjs-rails/src/core/src/class/Loader.js +1423 -0
  107. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.alignment.js +173 -0
  108. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.insertion.js +193 -0
  109. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.js +681 -0
  110. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.position.js +356 -0
  111. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.static.js +474 -0
  112. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.style.js +851 -0
  113. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.traversal.js +180 -0
  114. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractHelper.js +291 -0
  115. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractQuery.js +72 -0
  116. data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElement.js +75 -0
  117. data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElementLite.js +436 -0
  118. data/app/assets/javascripts/extjs-rails/src/core/src/dom/DomQuery-aria.js +1049 -0
  119. data/app/assets/javascripts/extjs-rails/src/core/src/env/Browser.js +186 -0
  120. data/app/assets/javascripts/extjs-rails/src/core/src/env/FeatureDetector.js +274 -0
  121. data/app/assets/javascripts/extjs-rails/src/core/src/env/OS.js +141 -0
  122. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Array.js +1205 -0
  123. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Date.js +1463 -0
  124. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Error.js +326 -0
  125. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Function.js +485 -0
  126. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Number.js +175 -0
  127. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Object.js +606 -0
  128. data/app/assets/javascripts/extjs-rails/src/core/src/lang/String.js +333 -0
  129. data/app/assets/javascripts/extjs-rails/src/core/src/misc/JSON.js +236 -0
  130. data/app/assets/javascripts/extjs-rails/src/core/src/perf/Accumulator.js +244 -0
  131. data/app/assets/javascripts/extjs-rails/src/core/src/perf/Monitor.js +197 -0
  132. data/app/assets/javascripts/extjs-rails/src/core/src/util/DelayedTask.js +71 -0
  133. data/app/assets/javascripts/extjs-rails/src/core/src/util/Event.js +215 -0
  134. data/app/assets/javascripts/extjs-rails/src/core/src/util/Format.js +551 -0
  135. data/app/assets/javascripts/extjs-rails/src/core/src/util/TaskManager.js +417 -0
  136. data/app/assets/javascripts/extjs-rails/src/core/src/version/Version.js +364 -0
  137. data/app/assets/javascripts/extjs-rails/src/core/test/unit/README.MD +91 -0
  138. data/app/assets/javascripts/extjs-rails/src/core/test/unit/bootstrap.js +39 -0
  139. data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build-data.js +34 -0
  140. data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build.sh +2 -0
  141. data/app/assets/javascripts/extjs-rails/src/core/test/unit/data.js +27 -0
  142. data/app/assets/javascripts/extjs-rails/src/core/test/unit/index.html +15 -0
  143. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom.html +40 -0
  144. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/extjs-api.js +12 -0
  145. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/platform-api.js +134 -0
  146. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/sanity.js +4 -0
  147. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api-out.js +128 -0
  148. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api.js +89 -0
  149. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/env/Environment.js +357 -0
  150. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/APITest.js +37 -0
  151. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/jsb3.js +14 -0
  152. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/test-setup.js +137 -0
  153. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/EventManager.js +629 -0
  154. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-mess.backup +198 -0
  155. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-more.js +520 -0
  156. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext.js +1550 -0
  157. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Support.js +250 -0
  158. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Base.js +47 -0
  159. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Class.js +561 -0
  160. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/ClassManager.js +555 -0
  161. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/CompositeElementLite.js +409 -0
  162. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/DomHelper.js +444 -0
  163. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.insertion.js +342 -0
  164. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.js +731 -0
  165. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.static.js +201 -0
  166. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.style.js +118 -0
  167. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.traversal.js +336 -0
  168. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Array.js +1229 -0
  169. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Date.js +697 -0
  170. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Error.js +277 -0
  171. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Function.js +536 -0
  172. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Number.js +323 -0
  173. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Object.js +591 -0
  174. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/String.js +451 -0
  175. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/misc/JSON.js +252 -0
  176. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/util/Format.js +521 -0
  177. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/version/Version.js +148 -0
  178. data/app/assets/javascripts/extjs-rails/src/core/test/unit/specs.html +19 -0
  179. data/app/assets/javascripts/extjs-rails/src/data/AbstractStore.js +887 -0
  180. data/app/assets/javascripts/extjs-rails/src/data/ArrayStore.js +74 -0
  181. data/app/assets/javascripts/extjs-rails/src/data/Batch.js +236 -0
  182. data/app/assets/javascripts/extjs-rails/src/data/BufferStore.js +13 -0
  183. data/app/assets/javascripts/extjs-rails/src/data/Connection.js +969 -0
  184. data/app/assets/javascripts/extjs-rails/src/data/DirectStore.js +50 -0
  185. data/app/assets/javascripts/extjs-rails/src/data/Errors.js +52 -0
  186. data/app/assets/javascripts/extjs-rails/src/data/Field.js +341 -0
  187. data/app/assets/javascripts/extjs-rails/src/data/IdGenerator.js +198 -0
  188. data/app/assets/javascripts/extjs-rails/src/data/JsonP.js +253 -0
  189. data/app/assets/javascripts/extjs-rails/src/data/JsonPStore.js +51 -0
  190. data/app/assets/javascripts/extjs-rails/src/data/JsonStore.js +60 -0
  191. data/app/assets/javascripts/extjs-rails/src/data/Model.js +1673 -0
  192. data/app/assets/javascripts/extjs-rails/src/data/NodeInterface.js +1294 -0
  193. data/app/assets/javascripts/extjs-rails/src/data/NodeStore.js +254 -0
  194. data/app/assets/javascripts/extjs-rails/src/data/Operation.js +331 -0
  195. data/app/assets/javascripts/extjs-rails/src/data/Request.js +40 -0
  196. data/app/assets/javascripts/extjs-rails/src/data/ResultSet.js +56 -0
  197. data/app/assets/javascripts/extjs-rails/src/data/SequentialIdGenerator.js +61 -0
  198. data/app/assets/javascripts/extjs-rails/src/data/SortTypes.js +125 -0
  199. data/app/assets/javascripts/extjs-rails/src/data/Store.js +2609 -0
  200. data/app/assets/javascripts/extjs-rails/src/data/StoreManager.js +156 -0
  201. data/app/assets/javascripts/extjs-rails/src/data/Tree.js +290 -0
  202. data/app/assets/javascripts/extjs-rails/src/data/TreeStore.js +655 -0
  203. data/app/assets/javascripts/extjs-rails/src/data/Types.js +190 -0
  204. data/app/assets/javascripts/extjs-rails/src/data/UuidGenerator.js +215 -0
  205. data/app/assets/javascripts/extjs-rails/src/data/XmlStore.js +76 -0
  206. data/app/assets/javascripts/extjs-rails/src/data/association/Association.js +243 -0
  207. data/app/assets/javascripts/extjs-rails/src/data/association/BelongsTo.js +291 -0
  208. data/app/assets/javascripts/extjs-rails/src/data/association/HasMany.js +289 -0
  209. data/app/assets/javascripts/extjs-rails/src/data/association/HasOne.js +304 -0
  210. data/app/assets/javascripts/extjs-rails/src/data/proxy/Ajax.js +282 -0
  211. data/app/assets/javascripts/extjs-rails/src/data/proxy/Client.js +21 -0
  212. data/app/assets/javascripts/extjs-rails/src/data/proxy/Direct.js +181 -0
  213. data/app/assets/javascripts/extjs-rails/src/data/proxy/JsonP.js +313 -0
  214. data/app/assets/javascripts/extjs-rails/src/data/proxy/LocalStorage.js +69 -0
  215. data/app/assets/javascripts/extjs-rails/src/data/proxy/Memory.js +156 -0
  216. data/app/assets/javascripts/extjs-rails/src/data/proxy/Proxy.js +433 -0
  217. data/app/assets/javascripts/extjs-rails/src/data/proxy/Rest.js +173 -0
  218. data/app/assets/javascripts/extjs-rails/src/data/proxy/Server.js +460 -0
  219. data/app/assets/javascripts/extjs-rails/src/data/proxy/SessionStorage.js +39 -0
  220. data/app/assets/javascripts/extjs-rails/src/data/proxy/WebStorage.js +546 -0
  221. data/app/assets/javascripts/extjs-rails/src/data/reader/Array.js +68 -0
  222. data/app/assets/javascripts/extjs-rails/src/data/reader/Json.js +383 -0
  223. data/app/assets/javascripts/extjs-rails/src/data/reader/Reader.js +735 -0
  224. data/app/assets/javascripts/extjs-rails/src/data/reader/Xml.js +292 -0
  225. data/app/assets/javascripts/extjs-rails/src/data/validations.js +149 -0
  226. data/app/assets/javascripts/extjs-rails/src/data/writer/Json.js +81 -0
  227. data/app/assets/javascripts/extjs-rails/src/data/writer/Writer.js +147 -0
  228. data/app/assets/javascripts/extjs-rails/src/data/writer/Xml.js +88 -0
  229. data/app/assets/javascripts/extjs-rails/src/dd/DD.js +300 -0
  230. data/app/assets/javascripts/extjs-rails/src/dd/DDProxy.js +204 -0
  231. data/app/assets/javascripts/extjs-rails/src/dd/DDTarget.js +171 -0
  232. data/app/assets/javascripts/extjs-rails/src/dd/DragDrop.js +1101 -0
  233. data/app/assets/javascripts/extjs-rails/src/dd/DragDropManager.js +1264 -0
  234. data/app/assets/javascripts/extjs-rails/src/dd/DragSource.js +392 -0
  235. data/app/assets/javascripts/extjs-rails/src/dd/DragTracker.js +562 -0
  236. data/app/assets/javascripts/extjs-rails/src/dd/DragZone.js +137 -0
  237. data/app/assets/javascripts/extjs-rails/src/dd/DropTarget.js +118 -0
  238. data/app/assets/javascripts/extjs-rails/src/dd/DropZone.js +254 -0
  239. data/app/assets/javascripts/extjs-rails/src/dd/Registry.js +117 -0
  240. data/app/assets/javascripts/extjs-rails/src/dd/ScrollManager.js +218 -0
  241. data/app/assets/javascripts/extjs-rails/src/dd/StatusProxy.js +179 -0
  242. data/app/assets/javascripts/extjs-rails/src/diag/layout/Context.js +523 -0
  243. data/app/assets/javascripts/extjs-rails/src/diag/layout/ContextItem.js +179 -0
  244. data/app/assets/javascripts/extjs-rails/src/direct/Event.js +35 -0
  245. data/app/assets/javascripts/extjs-rails/src/direct/ExceptionEvent.js +16 -0
  246. data/app/assets/javascripts/extjs-rails/src/direct/JsonProvider.js +82 -0
  247. data/app/assets/javascripts/extjs-rails/src/direct/Manager.js +263 -0
  248. data/app/assets/javascripts/extjs-rails/src/direct/PollingProvider.js +156 -0
  249. data/app/assets/javascripts/extjs-rails/src/direct/Provider.js +96 -0
  250. data/app/assets/javascripts/extjs-rails/src/direct/RemotingEvent.js +24 -0
  251. data/app/assets/javascripts/extjs-rails/src/direct/RemotingMethod.js +100 -0
  252. data/app/assets/javascripts/extjs-rails/src/direct/RemotingProvider.js +510 -0
  253. data/app/assets/javascripts/extjs-rails/src/direct/Transaction.js +41 -0
  254. data/app/assets/javascripts/extjs-rails/src/dom/Element.alignment.js +378 -0
  255. data/app/assets/javascripts/extjs-rails/src/dom/Element.anim.js +962 -0
  256. data/app/assets/javascripts/extjs-rails/src/dom/Element.dd.js +40 -0
  257. data/app/assets/javascripts/extjs-rails/src/dom/Element.fx.js +194 -0
  258. data/app/assets/javascripts/extjs-rails/src/dom/Element.js +1407 -0
  259. data/app/assets/javascripts/extjs-rails/src/dom/Element.position.js +501 -0
  260. data/app/assets/javascripts/extjs-rails/src/dom/Element.scroll.js +214 -0
  261. data/app/assets/javascripts/extjs-rails/src/dom/Element.style.js +792 -0
  262. data/app/assets/javascripts/extjs-rails/src/dom/Element.traversal.js +8 -0
  263. data/app/assets/javascripts/extjs-rails/src/dom/Helper.js +466 -0
  264. data/app/assets/javascripts/extjs-rails/src/dom/Query.js +1067 -0
  265. data/app/assets/javascripts/extjs-rails/src/draw/Color.js +303 -0
  266. data/app/assets/javascripts/extjs-rails/src/draw/Component.js +245 -0
  267. data/app/assets/javascripts/extjs-rails/src/draw/CompositeSprite.js +299 -0
  268. data/app/assets/javascripts/extjs-rails/src/draw/Draw.js +1217 -0
  269. data/app/assets/javascripts/extjs-rails/src/draw/Matrix.js +183 -0
  270. data/app/assets/javascripts/extjs-rails/src/draw/Sprite.js +554 -0
  271. data/app/assets/javascripts/extjs-rails/src/draw/SpriteDD.js +87 -0
  272. data/app/assets/javascripts/extjs-rails/src/draw/Surface.js +1001 -0
  273. data/app/assets/javascripts/extjs-rails/src/draw/Text.js +175 -0
  274. data/app/assets/javascripts/extjs-rails/src/draw/engine/ImageExporter.js +106 -0
  275. data/app/assets/javascripts/extjs-rails/src/draw/engine/Svg.js +734 -0
  276. data/app/assets/javascripts/extjs-rails/src/draw/engine/SvgExporter.js +280 -0
  277. data/app/assets/javascripts/extjs-rails/src/draw/engine/Vml.js +916 -0
  278. data/app/assets/javascripts/extjs-rails/src/flash/Component.js +248 -0
  279. data/app/assets/javascripts/extjs-rails/src/form/Basic.js +1018 -0
  280. data/app/assets/javascripts/extjs-rails/src/form/CheckboxGroup.js +441 -0
  281. data/app/assets/javascripts/extjs-rails/src/form/CheckboxManager.js +26 -0
  282. data/app/assets/javascripts/extjs-rails/src/form/FieldAncestor.js +210 -0
  283. data/app/assets/javascripts/extjs-rails/src/form/FieldContainer.js +290 -0
  284. data/app/assets/javascripts/extjs-rails/src/form/FieldSet.js +506 -0
  285. data/app/assets/javascripts/extjs-rails/src/form/Label.js +110 -0
  286. data/app/assets/javascripts/extjs-rails/src/form/Labelable.js +764 -0
  287. data/app/assets/javascripts/extjs-rails/src/form/Panel.js +335 -0
  288. data/app/assets/javascripts/extjs-rails/src/form/RadioGroup.js +124 -0
  289. data/app/assets/javascripts/extjs-rails/src/form/RadioManager.js +26 -0
  290. data/app/assets/javascripts/extjs-rails/src/form/action/Action.js +307 -0
  291. data/app/assets/javascripts/extjs-rails/src/form/action/DirectLoad.js +107 -0
  292. data/app/assets/javascripts/extjs-rails/src/form/action/DirectSubmit.js +119 -0
  293. data/app/assets/javascripts/extjs-rails/src/form/action/Load.js +120 -0
  294. data/app/assets/javascripts/extjs-rails/src/form/action/StandardSubmit.js +34 -0
  295. data/app/assets/javascripts/extjs-rails/src/form/action/Submit.js +257 -0
  296. data/app/assets/javascripts/extjs-rails/src/form/field/Base.js +813 -0
  297. data/app/assets/javascripts/extjs-rails/src/form/field/Checkbox.js +505 -0
  298. data/app/assets/javascripts/extjs-rails/src/form/field/ComboBox.js +1427 -0
  299. data/app/assets/javascripts/extjs-rails/src/form/field/Date.js +578 -0
  300. data/app/assets/javascripts/extjs-rails/src/form/field/Display.js +155 -0
  301. data/app/assets/javascripts/extjs-rails/src/form/field/Field.js +430 -0
  302. data/app/assets/javascripts/extjs-rails/src/form/field/File.js +265 -0
  303. data/app/assets/javascripts/extjs-rails/src/form/field/Hidden.js +75 -0
  304. data/app/assets/javascripts/extjs-rails/src/form/field/HtmlEditor.js +1439 -0
  305. data/app/assets/javascripts/extjs-rails/src/form/field/Number.js +380 -0
  306. data/app/assets/javascripts/extjs-rails/src/form/field/Picker.js +321 -0
  307. data/app/assets/javascripts/extjs-rails/src/form/field/Radio.js +279 -0
  308. data/app/assets/javascripts/extjs-rails/src/form/field/Spinner.js +321 -0
  309. data/app/assets/javascripts/extjs-rails/src/form/field/Text.js +727 -0
  310. data/app/assets/javascripts/extjs-rails/src/form/field/TextArea.js +228 -0
  311. data/app/assets/javascripts/extjs-rails/src/form/field/Time.js +459 -0
  312. data/app/assets/javascripts/extjs-rails/src/form/field/Trigger.js +469 -0
  313. data/app/assets/javascripts/extjs-rails/src/form/field/VTypes.js +172 -0
  314. data/app/assets/javascripts/extjs-rails/src/fx/Anim.js +472 -0
  315. data/app/assets/javascripts/extjs-rails/src/fx/Animator.js +410 -0
  316. data/app/assets/javascripts/extjs-rails/src/fx/CubicBezier.js +77 -0
  317. data/app/assets/javascripts/extjs-rails/src/fx/Easing.js +136 -0
  318. data/app/assets/javascripts/extjs-rails/src/fx/Manager.js +353 -0
  319. data/app/assets/javascripts/extjs-rails/src/fx/PropertyHandler.js +381 -0
  320. data/app/assets/javascripts/extjs-rails/src/fx/Queue.js +123 -0
  321. data/app/assets/javascripts/extjs-rails/src/fx/target/Component.js +118 -0
  322. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElement.js +46 -0
  323. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElementCSS.js +22 -0
  324. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeSprite.js +34 -0
  325. data/app/assets/javascripts/extjs-rails/src/fx/target/Element.js +83 -0
  326. data/app/assets/javascripts/extjs-rails/src/fx/target/ElementCSS.js +77 -0
  327. data/app/assets/javascripts/extjs-rails/src/fx/target/Sprite.js +128 -0
  328. data/app/assets/javascripts/extjs-rails/src/fx/target/Target.js +36 -0
  329. data/app/assets/javascripts/extjs-rails/src/grid/CellEditor.js +172 -0
  330. data/app/assets/javascripts/extjs-rails/src/grid/ColumnComponentLayout.js +34 -0
  331. data/app/assets/javascripts/extjs-rails/src/grid/ColumnLayout.js +201 -0
  332. data/app/assets/javascripts/extjs-rails/src/grid/Lockable.js +863 -0
  333. data/app/assets/javascripts/extjs-rails/src/grid/LockingView.js +169 -0
  334. data/app/assets/javascripts/extjs-rails/src/grid/PagingScroller.js +539 -0
  335. data/app/assets/javascripts/extjs-rails/src/grid/Panel.js +393 -0
  336. data/app/assets/javascripts/extjs-rails/src/grid/RowEditor.js +731 -0
  337. data/app/assets/javascripts/extjs-rails/src/grid/RowNumberer.js +76 -0
  338. data/app/assets/javascripts/extjs-rails/src/grid/Scroller.js +5 -0
  339. data/app/assets/javascripts/extjs-rails/src/grid/View.js +44 -0
  340. data/app/assets/javascripts/extjs-rails/src/grid/ViewDropZone.js +41 -0
  341. data/app/assets/javascripts/extjs-rails/src/grid/column/Action.js +318 -0
  342. data/app/assets/javascripts/extjs-rails/src/grid/column/Boolean.js +82 -0
  343. data/app/assets/javascripts/extjs-rails/src/grid/column/Column.js +835 -0
  344. data/app/assets/javascripts/extjs-rails/src/grid/column/Date.js +63 -0
  345. data/app/assets/javascripts/extjs-rails/src/grid/column/Number.js +52 -0
  346. data/app/assets/javascripts/extjs-rails/src/grid/column/Template.js +58 -0
  347. data/app/assets/javascripts/extjs-rails/src/grid/feature/AbstractSummary.js +154 -0
  348. data/app/assets/javascripts/extjs-rails/src/grid/feature/Chunking.js +77 -0
  349. data/app/assets/javascripts/extjs-rails/src/grid/feature/Feature.js +158 -0
  350. data/app/assets/javascripts/extjs-rails/src/grid/feature/Grouping.js +822 -0
  351. data/app/assets/javascripts/extjs-rails/src/grid/feature/GroupingSummary.js +243 -0
  352. data/app/assets/javascripts/extjs-rails/src/grid/feature/RowBody.js +116 -0
  353. data/app/assets/javascripts/extjs-rails/src/grid/feature/RowWrap.js +120 -0
  354. data/app/assets/javascripts/extjs-rails/src/grid/feature/Summary.js +167 -0
  355. data/app/assets/javascripts/extjs-rails/src/grid/header/Container.js +965 -0
  356. data/app/assets/javascripts/extjs-rails/src/grid/header/DragZone.js +69 -0
  357. data/app/assets/javascripts/extjs-rails/src/grid/header/DropZone.js +265 -0
  358. data/app/assets/javascripts/extjs-rails/src/grid/plugin/CellEditing.js +453 -0
  359. data/app/assets/javascripts/extjs-rails/src/grid/plugin/DragDrop.js +254 -0
  360. data/app/assets/javascripts/extjs-rails/src/grid/plugin/Editing.js +561 -0
  361. data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderReorderer.js +49 -0
  362. data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderResizer.js +292 -0
  363. data/app/assets/javascripts/extjs-rails/src/grid/plugin/RowEditing.js +339 -0
  364. data/app/assets/javascripts/extjs-rails/src/grid/property/Grid.js +351 -0
  365. data/app/assets/javascripts/extjs-rails/src/grid/property/HeaderContainer.js +109 -0
  366. data/app/assets/javascripts/extjs-rails/src/grid/property/Property.js +36 -0
  367. data/app/assets/javascripts/extjs-rails/src/grid/property/Store.js +141 -0
  368. data/app/assets/javascripts/extjs-rails/src/layout/ClassList.js +90 -0
  369. data/app/assets/javascripts/extjs-rails/src/layout/Context.js +1232 -0
  370. data/app/assets/javascripts/extjs-rails/src/layout/ContextItem.js +1470 -0
  371. data/app/assets/javascripts/extjs-rails/src/layout/Layout.js +761 -0
  372. data/app/assets/javascripts/extjs-rails/src/layout/component/Auto.js +220 -0
  373. data/app/assets/javascripts/extjs-rails/src/layout/component/Body.js +80 -0
  374. data/app/assets/javascripts/extjs-rails/src/layout/component/BoundList.js +95 -0
  375. data/app/assets/javascripts/extjs-rails/src/layout/component/Button.js +261 -0
  376. data/app/assets/javascripts/extjs-rails/src/layout/component/Component.js +427 -0
  377. data/app/assets/javascripts/extjs-rails/src/layout/component/Dock.js +1132 -0
  378. data/app/assets/javascripts/extjs-rails/src/layout/component/Draw.js +79 -0
  379. data/app/assets/javascripts/extjs-rails/src/layout/component/FieldSet.js +62 -0
  380. data/app/assets/javascripts/extjs-rails/src/layout/component/ProgressBar.js +54 -0
  381. data/app/assets/javascripts/extjs-rails/src/layout/component/Tab.js +23 -0
  382. data/app/assets/javascripts/extjs-rails/src/layout/component/field/ComboBox.js +52 -0
  383. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Field.js +372 -0
  384. data/app/assets/javascripts/extjs-rails/src/layout/component/field/FieldContainer.js +48 -0
  385. data/app/assets/javascripts/extjs-rails/src/layout/component/field/HtmlEditor.js +54 -0
  386. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Slider.js +58 -0
  387. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Text.js +75 -0
  388. data/app/assets/javascripts/extjs-rails/src/layout/component/field/TextArea.js +51 -0
  389. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Trigger.js +132 -0
  390. data/app/assets/javascripts/extjs-rails/src/layout/container/Absolute.js +121 -0
  391. data/app/assets/javascripts/extjs-rails/src/layout/container/Accordion.js +308 -0
  392. data/app/assets/javascripts/extjs-rails/src/layout/container/Anchor.js +403 -0
  393. data/app/assets/javascripts/extjs-rails/src/layout/container/Auto.js +70 -0
  394. data/app/assets/javascripts/extjs-rails/src/layout/container/Border-old-js +1079 -0
  395. data/app/assets/javascripts/extjs-rails/src/layout/container/Border.js +816 -0
  396. data/app/assets/javascripts/extjs-rails/src/layout/container/Box.js +929 -0
  397. data/app/assets/javascripts/extjs-rails/src/layout/container/Card.js +361 -0
  398. data/app/assets/javascripts/extjs-rails/src/layout/container/CheckboxGroup.js +376 -0
  399. data/app/assets/javascripts/extjs-rails/src/layout/container/Column.js +234 -0
  400. data/app/assets/javascripts/extjs-rails/src/layout/container/Container.js +961 -0
  401. data/app/assets/javascripts/extjs-rails/src/layout/container/Editor.js +74 -0
  402. data/app/assets/javascripts/extjs-rails/src/layout/container/Fit.js +287 -0
  403. data/app/assets/javascripts/extjs-rails/src/layout/container/Form.js +157 -0
  404. data/app/assets/javascripts/extjs-rails/src/layout/container/HBox.js +134 -0
  405. data/app/assets/javascripts/extjs-rails/src/layout/container/Table.js +412 -0
  406. data/app/assets/javascripts/extjs-rails/src/layout/container/VBox.js +139 -0
  407. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Menu.js +365 -0
  408. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/None.js +83 -0
  409. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Scroller.js +475 -0
  410. data/app/assets/javascripts/extjs-rails/src/menu/CheckItem.js +169 -0
  411. data/app/assets/javascripts/extjs-rails/src/menu/ColorPicker.js +110 -0
  412. data/app/assets/javascripts/extjs-rails/src/menu/DatePicker.js +100 -0
  413. data/app/assets/javascripts/extjs-rails/src/menu/Item.js +553 -0
  414. data/app/assets/javascripts/extjs-rails/src/menu/KeyNav.js +134 -0
  415. data/app/assets/javascripts/extjs-rails/src/menu/Manager.js +219 -0
  416. data/app/assets/javascripts/extjs-rails/src/menu/Menu.js +579 -0
  417. data/app/assets/javascripts/extjs-rails/src/menu/Separator.js +126 -0
  418. data/app/assets/javascripts/extjs-rails/src/panel/AbstractPanel.js +323 -0
  419. data/app/assets/javascripts/extjs-rails/src/panel/DD.js +99 -0
  420. data/app/assets/javascripts/extjs-rails/src/panel/Header.js +518 -0
  421. data/app/assets/javascripts/extjs-rails/src/panel/Panel.js +2150 -0
  422. data/app/assets/javascripts/extjs-rails/src/panel/Proxy.js +131 -0
  423. data/app/assets/javascripts/extjs-rails/src/panel/Table.js +1018 -0
  424. data/app/assets/javascripts/extjs-rails/src/panel/Tool.js +304 -0
  425. data/app/assets/javascripts/extjs-rails/src/picker/Color.js +219 -0
  426. data/app/assets/javascripts/extjs-rails/src/picker/Date.js +1140 -0
  427. data/app/assets/javascripts/extjs-rails/src/picker/Month.js +490 -0
  428. data/app/assets/javascripts/extjs-rails/src/picker/Time.js +165 -0
  429. data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitter.js +22 -0
  430. data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitterTracker.js +210 -0
  431. data/app/assets/javascripts/extjs-rails/src/resizer/Handle.js +29 -0
  432. data/app/assets/javascripts/extjs-rails/src/resizer/ResizeTracker.js +346 -0
  433. data/app/assets/javascripts/extjs-rails/src/resizer/Resizer.js +477 -0
  434. data/app/assets/javascripts/extjs-rails/src/resizer/Splitter.js +242 -0
  435. data/app/assets/javascripts/extjs-rails/src/resizer/SplitterTracker.js +230 -0
  436. data/app/assets/javascripts/extjs-rails/src/selection/CellModel.js +395 -0
  437. data/app/assets/javascripts/extjs-rails/src/selection/CheckboxModel.js +234 -0
  438. data/app/assets/javascripts/extjs-rails/src/selection/DataViewModel.js +160 -0
  439. data/app/assets/javascripts/extjs-rails/src/selection/Model.js +646 -0
  440. data/app/assets/javascripts/extjs-rails/src/selection/RowModel.js +499 -0
  441. data/app/assets/javascripts/extjs-rails/src/selection/TreeModel.js +78 -0
  442. data/app/assets/javascripts/extjs-rails/src/slider/Multi.js +835 -0
  443. data/app/assets/javascripts/extjs-rails/src/slider/Single.js +56 -0
  444. data/app/assets/javascripts/extjs-rails/src/slider/Thumb.js +259 -0
  445. data/app/assets/javascripts/extjs-rails/src/slider/Tip.js +130 -0
  446. data/app/assets/javascripts/extjs-rails/src/state/CookieProvider.js +120 -0
  447. data/app/assets/javascripts/extjs-rails/src/state/LocalStorageProvider.js +72 -0
  448. data/app/assets/javascripts/extjs-rails/src/state/Manager.js +70 -0
  449. data/app/assets/javascripts/extjs-rails/src/state/Provider.js +182 -0
  450. data/app/assets/javascripts/extjs-rails/src/state/Stateful.js +364 -0
  451. data/app/assets/javascripts/extjs-rails/src/tab/Bar.js +258 -0
  452. data/app/assets/javascripts/extjs-rails/src/tab/Panel.js +654 -0
  453. data/app/assets/javascripts/extjs-rails/src/tab/Tab.js +358 -0
  454. data/app/assets/javascripts/extjs-rails/src/tail.js +10 -0
  455. data/app/assets/javascripts/extjs-rails/src/tip/QuickTip.js +335 -0
  456. data/app/assets/javascripts/extjs-rails/src/tip/QuickTipManager.js +239 -0
  457. data/app/assets/javascripts/extjs-rails/src/tip/Tip.js +160 -0
  458. data/app/assets/javascripts/extjs-rails/src/tip/ToolTip.js +691 -0
  459. data/app/assets/javascripts/extjs-rails/src/toolbar/Fill.js +28 -0
  460. data/app/assets/javascripts/extjs-rails/src/toolbar/Item.js +16 -0
  461. data/app/assets/javascripts/extjs-rails/src/toolbar/Paging.js +600 -0
  462. data/app/assets/javascripts/extjs-rails/src/toolbar/Separator.js +23 -0
  463. data/app/assets/javascripts/extjs-rails/src/toolbar/Spacer.js +33 -0
  464. data/app/assets/javascripts/extjs-rails/src/toolbar/TextItem.js +57 -0
  465. data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar-legacy.js +123 -0
  466. data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar.js +447 -0
  467. data/app/assets/javascripts/extjs-rails/src/tree/Column.js +90 -0
  468. data/app/assets/javascripts/extjs-rails/src/tree/Panel.js +505 -0
  469. data/app/assets/javascripts/extjs-rails/src/tree/View.js +658 -0
  470. data/app/assets/javascripts/extjs-rails/src/tree/ViewDragZone.js +49 -0
  471. data/app/assets/javascripts/extjs-rails/src/tree/ViewDropZone.js +287 -0
  472. data/app/assets/javascripts/extjs-rails/src/tree/plugin/TreeViewDragDrop.js +244 -0
  473. data/app/assets/javascripts/extjs-rails/src/util/AbstractMixedCollection.js +772 -0
  474. data/app/assets/javascripts/extjs-rails/src/util/Animate.js +426 -0
  475. data/app/assets/javascripts/extjs-rails/src/util/Bindable.js +102 -0
  476. data/app/assets/javascripts/extjs-rails/src/util/CSS.js +185 -0
  477. data/app/assets/javascripts/extjs-rails/src/util/ClickRepeater.js +238 -0
  478. data/app/assets/javascripts/extjs-rails/src/util/ComponentDragger.js +126 -0
  479. data/app/assets/javascripts/extjs-rails/src/util/Cookies.js +91 -0
  480. data/app/assets/javascripts/extjs-rails/src/util/ElementContainer.js +293 -0
  481. data/app/assets/javascripts/extjs-rails/src/util/Filter.js +159 -0
  482. data/app/assets/javascripts/extjs-rails/src/util/Floating.js +321 -0
  483. data/app/assets/javascripts/extjs-rails/src/util/Grouper.js +26 -0
  484. data/app/assets/javascripts/extjs-rails/src/util/HashMap.js +356 -0
  485. data/app/assets/javascripts/extjs-rails/src/util/History.js +285 -0
  486. data/app/assets/javascripts/extjs-rails/src/util/Inflector.js +297 -0
  487. data/app/assets/javascripts/extjs-rails/src/util/KeyMap.js +427 -0
  488. data/app/assets/javascripts/extjs-rails/src/util/KeyNav.js +239 -0
  489. data/app/assets/javascripts/extjs-rails/src/util/LruCache.js +257 -0
  490. data/app/assets/javascripts/extjs-rails/src/util/Memento.js +131 -0
  491. data/app/assets/javascripts/extjs-rails/src/util/MixedCollection.js +239 -0
  492. data/app/assets/javascripts/extjs-rails/src/util/Observable.js +1003 -0
  493. data/app/assets/javascripts/extjs-rails/src/util/Offset.js +60 -0
  494. data/app/assets/javascripts/extjs-rails/src/util/Point.js +93 -0
  495. data/app/assets/javascripts/extjs-rails/src/util/ProtoElement.js +205 -0
  496. data/app/assets/javascripts/extjs-rails/src/util/Queue.js +76 -0
  497. data/app/assets/javascripts/extjs-rails/src/util/Region.js +388 -0
  498. data/app/assets/javascripts/extjs-rails/src/util/Renderable.js +1079 -0
  499. data/app/assets/javascripts/extjs-rails/src/util/Sortable.js +248 -0
  500. data/app/assets/javascripts/extjs-rails/src/util/Sorter.js +179 -0
  501. data/app/assets/javascripts/extjs-rails/src/util/TextMetrics.js +148 -0
  502. data/app/assets/javascripts/extjs-rails/src/view/AbstractView.js +1103 -0
  503. data/app/assets/javascripts/extjs-rails/src/view/BoundList.js +207 -0
  504. data/app/assets/javascripts/extjs-rails/src/view/BoundListKeyNav.js +92 -0
  505. data/app/assets/javascripts/extjs-rails/src/view/DragZone.js +106 -0
  506. data/app/assets/javascripts/extjs-rails/src/view/DropZone.js +240 -0
  507. data/app/assets/javascripts/extjs-rails/src/view/Table.js +1229 -0
  508. data/app/assets/javascripts/extjs-rails/src/view/TableChunker.js +139 -0
  509. data/app/assets/javascripts/extjs-rails/src/view/View.js +636 -0
  510. data/app/assets/javascripts/extjs-rails/src/window/MessageBox.js +880 -0
  511. data/app/assets/javascripts/extjs-rails/src/window/Window-legacy.js +56 -0
  512. data/app/assets/javascripts/extjs-rails/src/window/Window.js +793 -0
  513. data/extjs-rails.gemspec +24 -0
  514. data/lib/extjs-rails.rb +7 -0
  515. data/lib/extjs-rails/engine.rb +7 -0
  516. data/lib/extjs-rails/version.rb +5 -0
  517. metadata +660 -0
@@ -0,0 +1,880 @@
1
+ /**
2
+ * Utility class for generating different styles of message boxes. The singleton instance, Ext.MessageBox
3
+ * alias `Ext.Msg` can also be used.
4
+ *
5
+ * Note that a MessageBox is asynchronous. Unlike a regular JavaScript `alert` (which will halt
6
+ * browser execution), showing a MessageBox will not cause the code to stop. For this reason, if you have code
7
+ * that should only run *after* some user feedback from the MessageBox, you must use a callback function
8
+ * (see the `function` parameter for {@link #method-show} for more details).
9
+ *
10
+ * Basic alert
11
+ *
12
+ * @example
13
+ * Ext.Msg.alert('Status', 'Changes saved successfully.');
14
+ *
15
+ * Prompt for user data and process the result using a callback
16
+ *
17
+ * @example
18
+ * Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
19
+ * if (btn == 'ok'){
20
+ * // process text value and close...
21
+ * }
22
+ * });
23
+ *
24
+ * Show a dialog using config options
25
+ *
26
+ * @example
27
+ * Ext.Msg.show({
28
+ * title:'Save Changes?',
29
+ * msg: 'You are closing a tab that has unsaved changes. Would you like to save your changes?',
30
+ * buttons: Ext.Msg.YESNOCANCEL,
31
+ * icon: Ext.Msg.QUESTION
32
+ * });
33
+ */
34
+ Ext.define('Ext.window.MessageBox', {
35
+ extend: 'Ext.window.Window',
36
+
37
+ requires: [
38
+ 'Ext.toolbar.Toolbar',
39
+ 'Ext.form.field.Text',
40
+ 'Ext.form.field.TextArea',
41
+ 'Ext.form.field.Display',
42
+ 'Ext.button.Button',
43
+ 'Ext.layout.container.Anchor',
44
+ 'Ext.layout.container.HBox',
45
+ 'Ext.ProgressBar'
46
+ ],
47
+
48
+ alias: 'widget.messagebox',
49
+
50
+ /**
51
+ * @property
52
+ * Button config that displays a single OK button
53
+ */
54
+ OK : 1,
55
+ /**
56
+ * @property
57
+ * Button config that displays a single Yes button
58
+ */
59
+ YES : 2,
60
+ /**
61
+ * @property
62
+ * Button config that displays a single No button
63
+ */
64
+ NO : 4,
65
+ /**
66
+ * @property
67
+ * Button config that displays a single Cancel button
68
+ */
69
+ CANCEL : 8,
70
+ /**
71
+ * @property
72
+ * Button config that displays OK and Cancel buttons
73
+ */
74
+ OKCANCEL : 9,
75
+ /**
76
+ * @property
77
+ * Button config that displays Yes and No buttons
78
+ */
79
+ YESNO : 6,
80
+ /**
81
+ * @property
82
+ * Button config that displays Yes, No and Cancel buttons
83
+ */
84
+ YESNOCANCEL : 14,
85
+ /**
86
+ * @property
87
+ * The CSS class that provides the INFO icon image
88
+ */
89
+ INFO : Ext.baseCSSPrefix + 'message-box-info',
90
+ /**
91
+ * @property
92
+ * The CSS class that provides the WARNING icon image
93
+ */
94
+ WARNING : Ext.baseCSSPrefix + 'message-box-warning',
95
+ /**
96
+ * @property
97
+ * The CSS class that provides the QUESTION icon image
98
+ */
99
+ QUESTION : Ext.baseCSSPrefix + 'message-box-question',
100
+ /**
101
+ * @property
102
+ * The CSS class that provides the ERROR icon image
103
+ */
104
+ ERROR : Ext.baseCSSPrefix + 'message-box-error',
105
+
106
+ // hide it by offsets. Windows are hidden on render by default.
107
+ hideMode: 'offsets',
108
+ closeAction: 'hide',
109
+ resizable: false,
110
+ title: ' ',
111
+
112
+ width: 600,
113
+ height: 500,
114
+ minWidth: 250,
115
+ maxWidth: 600,
116
+ minHeight: 110,
117
+ maxHeight: 500,
118
+ constrain: true,
119
+
120
+ cls: Ext.baseCSSPrefix + 'message-box',
121
+
122
+ layout: {
123
+ type: 'vbox',
124
+ align: 'stretch'
125
+ },
126
+
127
+ /**
128
+ * @property
129
+ * The default height in pixels of the message box's multiline textarea if displayed.
130
+ */
131
+ defaultTextHeight : 75,
132
+ /**
133
+ * @property
134
+ * The minimum width in pixels of the message box if it is a progress-style dialog. This is useful
135
+ * for setting a different minimum width than text-only dialogs may need.
136
+ */
137
+ minProgressWidth : 250,
138
+ /**
139
+ * @property
140
+ * The minimum width in pixels of the message box if it is a prompt dialog. This is useful
141
+ * for setting a different minimum width than text-only dialogs may need.
142
+ */
143
+ minPromptWidth: 250,
144
+ //<locale type="object">
145
+ /**
146
+ * @property
147
+ * An object containing the default button text strings that can be overriden for localized language support.
148
+ * Supported properties are: ok, cancel, yes and no. Generally you should include a locale-specific
149
+ * resource file for handling language support across the framework.
150
+ * Customize the default text like so:
151
+ *
152
+ * Ext.window.MessageBox.buttonText.yes = "oui"; //french
153
+ */
154
+ buttonText: {
155
+ ok: 'OK',
156
+ yes: 'Yes',
157
+ no: 'No',
158
+ cancel: 'Cancel'
159
+ },
160
+ //</locale>
161
+
162
+ buttonIds: [
163
+ 'ok', 'yes', 'no', 'cancel'
164
+ ],
165
+
166
+ //<locale type="object">
167
+ titleText: {
168
+ confirm: 'Confirm',
169
+ prompt: 'Prompt',
170
+ wait: 'Loading...',
171
+ alert: 'Attention'
172
+ },
173
+ //</locale>
174
+
175
+ iconHeight: 35,
176
+
177
+ makeButton: function(btnIdx) {
178
+ var btnId = this.buttonIds[btnIdx];
179
+ return new Ext.button.Button({
180
+ handler: this.btnCallback,
181
+ itemId: btnId,
182
+ scope: this,
183
+ text: this.buttonText[btnId],
184
+ minWidth: 75
185
+ });
186
+ },
187
+
188
+ btnCallback: function(btn) {
189
+ var me = this,
190
+ value,
191
+ field;
192
+
193
+ if (me.cfg.prompt || me.cfg.multiline) {
194
+ if (me.cfg.multiline) {
195
+ field = me.textArea;
196
+ } else {
197
+ field = me.textField;
198
+ }
199
+ value = field.getValue();
200
+ field.reset();
201
+ }
202
+
203
+ // Important not to have focus remain in the hidden Window; Interferes with DnD.
204
+ btn.blur();
205
+ me.hide();
206
+ me.userCallback(btn.itemId, value, me.cfg);
207
+ },
208
+
209
+ hide: function() {
210
+ var me = this;
211
+ me.dd.endDrag();
212
+ me.progressBar.reset();
213
+ me.removeCls(me.cfg.cls);
214
+ me.callParent(arguments);
215
+ },
216
+
217
+ initComponent: function() {
218
+ var me = this,
219
+ baseId = me.id,
220
+ i, button,
221
+ tbLayout;
222
+
223
+ me.title = '&#160;';
224
+
225
+ me.topContainer = new Ext.container.Container({
226
+ layout: 'hbox',
227
+ style: {
228
+ padding: '10px',
229
+ overflow: 'hidden'
230
+ },
231
+ items: [
232
+ me.iconComponent = new Ext.Component({
233
+ cls: me.baseCls + '-icon',
234
+ width: 50,
235
+ height: me.iconHeight
236
+ }),
237
+ me.promptContainer = new Ext.container.Container({
238
+ flex: 1,
239
+ layout: {
240
+ type: 'anchor'
241
+ },
242
+ items: [
243
+ me.msg = new Ext.form.field.Display({
244
+ id: baseId + '-displayfield',
245
+ cls: me.baseCls + '-text'
246
+ }),
247
+ me.textField = new Ext.form.field.Text({
248
+ id: baseId + '-testfield',
249
+ anchor: '100%',
250
+ enableKeyEvents: true,
251
+ listeners: {
252
+ keydown: me.onPromptKey,
253
+ scope: me
254
+ }
255
+ }),
256
+ me.textArea = new Ext.form.field.TextArea({
257
+ id: baseId + '-textarea',
258
+ anchor: '100%',
259
+ height: 75
260
+ })
261
+ ]
262
+ })
263
+ ]
264
+ });
265
+ me.progressBar = new Ext.ProgressBar({
266
+ id: baseId + '-progressbar',
267
+ margins: '0 10 0 10'
268
+ });
269
+
270
+ me.items = [me.topContainer, me.progressBar];
271
+
272
+ // Create the buttons based upon passed bitwise config
273
+ me.msgButtons = [];
274
+ for (i = 0; i < 4; i++) {
275
+ button = me.makeButton(i);
276
+ me.msgButtons[button.itemId] = button;
277
+ me.msgButtons.push(button);
278
+ }
279
+ me.bottomTb = new Ext.toolbar.Toolbar({
280
+ id: baseId + '-toolbar',
281
+ ui: 'footer',
282
+ dock: 'bottom',
283
+ layout: {
284
+ pack: 'center'
285
+ },
286
+ items: [
287
+ me.msgButtons[0],
288
+ me.msgButtons[1],
289
+ me.msgButtons[2],
290
+ me.msgButtons[3]
291
+ ]
292
+ });
293
+ me.dockedItems = [me.bottomTb];
294
+
295
+ // Get control at Toolbar's finishedLayout call and snag the contentWidth to contribute to our auto width calculation
296
+ tbLayout = me.bottomTb.getLayout();
297
+ tbLayout.finishedLayout = Ext.Function.createInterceptor(tbLayout.finishedLayout, function(ownerContext) {
298
+ me.tbWidth = ownerContext.getProp('contentWidth');
299
+ });
300
+ me.on('close', me.onClose, me);
301
+
302
+ me.callParent();
303
+ },
304
+
305
+ onClose: function(){
306
+ var btn = this.header.child('[type=close]');
307
+ // Give a temporary itemId so it can act like the cancel button
308
+ btn.itemId = 'cancel';
309
+ this.btnCallback(btn);
310
+ delete btn.itemId;
311
+ },
312
+
313
+ onPromptKey: function(textField, e) {
314
+ var me = this,
315
+ blur;
316
+
317
+ if (e.keyCode === Ext.EventObject.RETURN || e.keyCode === 10) {
318
+ if (me.msgButtons.ok.isVisible()) {
319
+ blur = true;
320
+ me.msgButtons.ok.handler.call(me, me.msgButtons.ok);
321
+ } else if (me.msgButtons.yes.isVisible()) {
322
+ me.msgButtons.yes.handler.call(me, me.msgButtons.yes);
323
+ blur = true;
324
+ }
325
+
326
+ if (blur) {
327
+ me.textField.blur();
328
+ }
329
+ }
330
+ },
331
+
332
+ reconfigure: function(cfg) {
333
+ var me = this,
334
+ buttons = 0,
335
+ hideToolbar = true,
336
+ initialWidth = me.maxWidth,
337
+ oldButtonText = me.buttonText,
338
+ i;
339
+
340
+ // Restore default buttonText before reconfiguring.
341
+ me.updateButtonText();
342
+
343
+ cfg = cfg || {};
344
+ me.cfg = cfg;
345
+ if (cfg.width) {
346
+ initialWidth = cfg.width;
347
+ }
348
+
349
+ // Default to allowing the Window to take focus.
350
+ delete me.defaultFocus;
351
+
352
+ // clear any old animateTarget
353
+ me.animateTarget = cfg.animateTarget || undefined;
354
+
355
+ // Defaults to modal
356
+ me.modal = cfg.modal !== false;
357
+
358
+ // Show the title
359
+ if (cfg.title) {
360
+ me.setTitle(cfg.title||'&#160;');
361
+ }
362
+
363
+ // Extract button configs
364
+ if (Ext.isObject(cfg.buttons)) {
365
+ me.buttonText = cfg.buttons;
366
+ buttons = 0;
367
+ } else {
368
+ me.buttonText = cfg.buttonText || me.buttonText;
369
+ buttons = Ext.isNumber(cfg.buttons) ? cfg.buttons : 0;
370
+ }
371
+
372
+ // Apply custom-configured buttonText
373
+ // Infer additional buttons from the specified property names in the buttonText object
374
+ buttons = buttons | me.updateButtonText();
375
+
376
+ // Restore buttonText. Next run of reconfigure will restore to prototype's buttonText
377
+ me.buttonText = oldButtonText;
378
+
379
+ // During the on render, or size resetting layouts, and in subsequent hiding and showing, we need to
380
+ // suspend layouts, and flush at the end when the Window's children are at their final visibility.
381
+ Ext.suspendLayouts();
382
+ me.hidden = false;
383
+ if (!me.rendered) {
384
+ me.width = initialWidth;
385
+ me.render(Ext.getBody());
386
+ } else {
387
+ me.setSize(initialWidth, me.maxHeight);
388
+ }
389
+
390
+ // Hide or show the close tool
391
+ me.closable = cfg.closable && !cfg.wait;
392
+ me.header.child('[type=close]').setVisible(cfg.closable !== false);
393
+
394
+ // Hide or show the header
395
+ if (!cfg.title && !me.closable) {
396
+ me.header.hide();
397
+ } else {
398
+ me.header.show();
399
+ }
400
+
401
+ // Default to dynamic drag: drag the window, not a ghost
402
+ me.liveDrag = !cfg.proxyDrag;
403
+
404
+ // wrap the user callback
405
+ me.userCallback = Ext.Function.bind(cfg.callback ||cfg.fn || Ext.emptyFn, cfg.scope || Ext.global);
406
+
407
+ // Hide or show the icon Component
408
+ me.setIcon(cfg.icon);
409
+
410
+ // Hide or show the message area
411
+ if (cfg.msg) {
412
+ me.msg.setValue(cfg.msg);
413
+ me.msg.show();
414
+ } else {
415
+ me.msg.hide();
416
+ }
417
+
418
+ // flush the layout here to pick up
419
+ // height adjustments on the msg field
420
+ Ext.resumeLayouts(true);
421
+ Ext.suspendLayouts();
422
+
423
+ // Hide or show the input field
424
+ if (cfg.prompt || cfg.multiline) {
425
+ me.multiline = cfg.multiline;
426
+ if (cfg.multiline) {
427
+ me.textArea.setValue(cfg.value);
428
+ me.textArea.setHeight(cfg.defaultTextHeight || me.defaultTextHeight);
429
+ me.textArea.show();
430
+ me.textField.hide();
431
+ me.defaultFocus = me.textArea;
432
+ } else {
433
+ me.textField.setValue(cfg.value);
434
+ me.textArea.hide();
435
+ me.textField.show();
436
+ me.defaultFocus = me.textField;
437
+ }
438
+ } else {
439
+ me.textArea.hide();
440
+ me.textField.hide();
441
+ }
442
+
443
+ // Hide or show the progress bar
444
+ if (cfg.progress || cfg.wait) {
445
+ me.progressBar.show();
446
+ me.updateProgress(0, cfg.progressText);
447
+ if(cfg.wait === true){
448
+ me.progressBar.wait(cfg.waitConfig);
449
+ }
450
+ } else {
451
+ me.progressBar.hide();
452
+ }
453
+
454
+ // Hide or show buttons depending on flag value sent.
455
+ for (i = 0; i < 4; i++) {
456
+ if (buttons & Math.pow(2, i)) {
457
+
458
+ // Default to focus on the first visible button if focus not already set
459
+ if (!me.defaultFocus) {
460
+ me.defaultFocus = me.msgButtons[i];
461
+ }
462
+ me.msgButtons[i].show();
463
+ hideToolbar = false;
464
+ } else {
465
+ me.msgButtons[i].hide();
466
+ }
467
+ }
468
+
469
+ // Hide toolbar if no buttons to show
470
+ if (hideToolbar) {
471
+ me.bottomTb.hide();
472
+ } else {
473
+ me.bottomTb.show();
474
+ }
475
+ Ext.resumeLayouts(true);
476
+ },
477
+
478
+ /**
479
+ * @private
480
+ * Set button text according to current buttonText property object
481
+ * @return {Number} The buttons bitwise flag based upon the button IDs specified in the buttonText property.
482
+ */
483
+ updateButtonText: function() {
484
+ var me = this,
485
+ buttonText = me.buttonText,
486
+ buttons = 0,
487
+ btnId,
488
+ btn;
489
+
490
+ for (btnId in buttonText) {
491
+ if (buttonText.hasOwnProperty(btnId)) {
492
+ btn = me.msgButtons[btnId];
493
+ if (btn) {
494
+ if (me.cfg && me.cfg.buttonText) {
495
+ buttons = buttons | Math.pow(2, Ext.Array.indexOf(me.buttonIds, btnId));
496
+ }
497
+ if (btn.text != buttonText[btnId]) {
498
+ btn.setText(buttonText[btnId]);
499
+ }
500
+ }
501
+ }
502
+ }
503
+ return buttons;
504
+ },
505
+
506
+ /**
507
+ * Displays a new message box, or reinitializes an existing message box, based on the config options passed in. All
508
+ * display functions (e.g. prompt, alert, etc.) on MessageBox call this function internally, although those calls
509
+ * are basic shortcuts and do not support all of the config options allowed here.
510
+ *
511
+ * Example usage:
512
+ *
513
+ * Ext.Msg.show({
514
+ * title: 'Address',
515
+ * msg: 'Please enter your address:',
516
+ * width: 300,
517
+ * buttons: Ext.Msg.OKCANCEL,
518
+ * multiline: true,
519
+ * fn: saveAddress,
520
+ * animateTarget: 'addAddressBtn',
521
+ * icon: Ext.window.MessageBox.INFO
522
+ * });
523
+ *
524
+ * @param {Object} config The following config options are supported:
525
+ *
526
+ * @param {String/Ext.dom.Element} config.animateTarget
527
+ * An id or Element from which the message box should animate as it opens and closes.
528
+ *
529
+ * @param {Number} [config.buttons=false]
530
+ * A bitwise button specifier consisting of the sum of any of the following constants:
531
+ *
532
+ * - Ext.window.MessageBox.OK
533
+ * - Ext.window.MessageBox.YES
534
+ * - Ext.window.MessageBox.NO
535
+ * - Ext.window.MessageBox.CANCEL
536
+ *
537
+ * Or false to not show any buttons.
538
+ *
539
+ * This may also be specified as an object hash containing custom button text in the same format as the
540
+ * {@link #buttonText} config. Button IDs present as property names will be made visible.
541
+ *
542
+ * @param {Boolean} config.closable
543
+ * False to hide the top-right close button (defaults to true). Note that progress and wait dialogs will ignore this
544
+ * property and always hide the close button as they can only be closed programmatically.
545
+ *
546
+ * @param {String} config.cls
547
+ * A custom CSS class to apply to the message box's container element
548
+ *
549
+ * @param {Number} [config.defaultTextHeight=75]
550
+ * The default height in pixels of the message box's multiline textarea if displayed.
551
+ *
552
+ * @param {Function} config.fn
553
+ * A callback function which is called when the dialog is dismissed either by clicking on the configured buttons, or
554
+ * on the dialog close button, or by pressing the return button to enter input.
555
+ *
556
+ * Progress and wait dialogs will ignore this option since they do not respond to user actions and can only be
557
+ * closed programmatically, so any required function should be called by the same code after it closes the dialog.
558
+ * Parameters passed:
559
+ *
560
+ * @param {String} config.fn.buttonId The ID of the button pressed, one of:
561
+ *
562
+ * - ok
563
+ * - yes
564
+ * - no
565
+ * - cancel
566
+ *
567
+ * @param {String} config.fn.text Value of the input field if either `prompt` or `multiline` is true
568
+ * @param {Object} config.fn.opt The config object passed to show.
569
+ *
570
+ * @param {Object} config.buttonText
571
+ * An object containing string properties which override the system-supplied button text values just for this
572
+ * invocation. The property names are:
573
+ *
574
+ * - ok
575
+ * - yes
576
+ * - no
577
+ * - cancel
578
+ *
579
+ * @param {Object} config.scope
580
+ * The scope (`this` reference) in which the function will be executed.
581
+ *
582
+ * @param {String} config.icon
583
+ * A CSS class that provides a background image to be used as the body icon for the dialog (e.g.
584
+ * Ext.window.MessageBox.WARNING or 'custom-class') (defaults to '')
585
+ *
586
+ * @param {String} config.iconCls
587
+ * The standard {@link Ext.window.Window#iconCls} to add an optional header icon (defaults to '')
588
+ *
589
+ * @param {Number} config.maxWidth
590
+ * The maximum width in pixels of the message box (defaults to 600)
591
+ *
592
+ * @param {Number} config.minWidth
593
+ * The minimum width in pixels of the message box (defaults to 100)
594
+ *
595
+ * @param {Boolean} config.modal
596
+ * False to allow user interaction with the page while the message box is displayed (defaults to true)
597
+ *
598
+ * @param {String} config.msg
599
+ * A string that will replace the existing message box body text (defaults to the XHTML-compliant non-breaking space
600
+ * character '&#160;')
601
+ *
602
+ * @param {Boolean} config.multiline
603
+ * True to prompt the user to enter multi-line text (defaults to false)
604
+ *
605
+ * @param {Boolean} config.progress
606
+ * True to display a progress bar (defaults to false)
607
+ *
608
+ * @param {String} config.progressText
609
+ * The text to display inside the progress bar if progress = true (defaults to '')
610
+ *
611
+ * @param {Boolean} config.prompt
612
+ * True to prompt the user to enter single-line text (defaults to false)
613
+ *
614
+ * @param {Boolean} config.proxyDrag
615
+ * True to display a lightweight proxy while dragging (defaults to false)
616
+ *
617
+ * @param {String} config.title
618
+ * The title text
619
+ *
620
+ * @param {String} config.value
621
+ * The string value to set into the active textbox element if displayed
622
+ *
623
+ * @param {Boolean} config.wait
624
+ * True to display a progress bar (defaults to false)
625
+ *
626
+ * @param {Object} config.waitConfig
627
+ * A {@link Ext.ProgressBar#wait} config object (applies only if wait = true)
628
+ *
629
+ * @param {Number} config.width
630
+ * The width of the dialog in pixels
631
+ *
632
+ * @return {Ext.window.MessageBox} this
633
+ */
634
+ show: function(cfg) {
635
+ var me = this;
636
+
637
+ me.reconfigure(cfg);
638
+ me.addCls(cfg.cls);
639
+ me.doAutoSize();
640
+
641
+ // Set the flag, so that the parent show method performs the show procedure that we need.
642
+ // ie: animation from animTarget, onShow processing and focusing.
643
+ me.hidden = true;
644
+ me.callParent();
645
+ return me;
646
+ },
647
+
648
+ onShow: function() {
649
+ this.callParent(arguments);
650
+ this.center();
651
+ },
652
+
653
+ doAutoSize: function() {
654
+ var me = this,
655
+ headerVisible = me.header.rendered && me.header.isVisible(),
656
+ footerVisible = me.bottomTb.rendered && me.bottomTb.isVisible(),
657
+ width,
658
+ height;
659
+
660
+ if (!Ext.isDefined(me.frameWidth)) {
661
+ me.frameWidth = me.el.getWidth() - me.body.getWidth();
662
+ }
663
+
664
+ // Allow per-invocation override of minWidth
665
+ me.minWidth = me.cfg.minWidth || Ext.getClass(this).prototype.minWidth;
666
+
667
+ // Width must be max of titleWidth, message+icon width, and total button width
668
+ width = Math.max(
669
+ headerVisible ? me.header.getMinWidth() : 0, // title width
670
+ me.cfg.width || me.msg.getWidth() + me.iconComponent.getWidth() + 25, // msg + icon width + topContainer's layout padding */
671
+ (footerVisible ? me.tbWidth : 0)// total button width
672
+ );
673
+
674
+ height = (headerVisible ? me.header.getHeight() : 0) +
675
+ me.topContainer.getHeight() +
676
+ me.progressBar.getHeight() +
677
+ (footerVisible ? me.bottomTb.getHeight() + me.bottomTb.el.getMargin('tb') : 0);
678
+
679
+ me.setSize(width + me.frameWidth, height + me.frameWidth);
680
+ return me;
681
+ },
682
+
683
+ updateText: function(text) {
684
+ this.msg.setValue(text);
685
+ return this.doAutoSize(true);
686
+ },
687
+
688
+ /**
689
+ * Adds the specified icon to the dialog. By default, the class 'x-messagebox-icon' is applied for default
690
+ * styling, and the class passed in is expected to supply the background image url. Pass in empty string ('')
691
+ * to clear any existing icon. This method must be called before the MessageBox is shown.
692
+ * The following built-in icon classes are supported, but you can also pass in a custom class name:
693
+ *
694
+ * Ext.window.MessageBox.INFO
695
+ * Ext.window.MessageBox.WARNING
696
+ * Ext.window.MessageBox.QUESTION
697
+ * Ext.window.MessageBox.ERROR
698
+ *
699
+ * @param {String} icon A CSS classname specifying the icon's background image url, or empty string to clear the icon
700
+ * @return {Ext.window.MessageBox} this
701
+ */
702
+ setIcon : function(icon) {
703
+ var me = this;
704
+ me.iconComponent.removeCls(me.messageIconCls);
705
+ if (icon) {
706
+ me.iconComponent.show();
707
+ me.iconComponent.addCls(Ext.baseCSSPrefix + 'dlg-icon');
708
+ me.iconComponent.addCls(me.messageIconCls = icon);
709
+ } else {
710
+ me.iconComponent.removeCls(Ext.baseCSSPrefix + 'dlg-icon');
711
+ me.iconComponent.hide();
712
+ }
713
+ return me;
714
+ },
715
+
716
+ /**
717
+ * Updates a progress-style message box's text and progress bar. Only relevant on message boxes
718
+ * initiated via {@link Ext.window.MessageBox#progress} or {@link Ext.window.MessageBox#wait},
719
+ * or by calling {@link Ext.window.MessageBox#method-show} with progress: true.
720
+ *
721
+ * @param {Number} [value=0] Any number between 0 and 1 (e.g., .5)
722
+ * @param {String} [progressText=''] The progress text to display inside the progress bar.
723
+ * @param {String} [msg] The message box's body text is replaced with the specified string (defaults to undefined
724
+ * so that any existing body text will not get overwritten by default unless a new value is passed in)
725
+ * @return {Ext.window.MessageBox} this
726
+ */
727
+ updateProgress : function(value, progressText, msg){
728
+ this.progressBar.updateProgress(value, progressText);
729
+ if (msg){
730
+ this.updateText(msg);
731
+ }
732
+ return this;
733
+ },
734
+
735
+ onEsc: function() {
736
+ if (this.closable !== false) {
737
+ this.callParent(arguments);
738
+ }
739
+ },
740
+
741
+ /**
742
+ * Displays a confirmation message box with Yes and No buttons (comparable to JavaScript's confirm).
743
+ * If a callback function is passed it will be called after the user clicks either button,
744
+ * and the id of the button that was clicked will be passed as the only parameter to the callback
745
+ * (could also be the top-right close button, which will always report as "cancel").
746
+ *
747
+ * @param {String} title The title bar text
748
+ * @param {String} msg The message box body text
749
+ * @param {Function} [fn] The callback function invoked after the message box is closed
750
+ * @param {Object} [scope=window] The scope (`this` reference) in which the callback is executed.
751
+ * @return {Ext.window.MessageBox} this
752
+ */
753
+ confirm: function(cfg, msg, fn, scope) {
754
+ if (Ext.isString(cfg)) {
755
+ cfg = {
756
+ title: cfg,
757
+ icon: this.QUESTION,
758
+ msg: msg,
759
+ buttons: this.YESNO,
760
+ callback: fn,
761
+ scope: scope
762
+ };
763
+ }
764
+ return this.show(cfg);
765
+ },
766
+
767
+ /**
768
+ * Displays a message box with OK and Cancel buttons prompting the user to enter some text (comparable to JavaScript's prompt).
769
+ * The prompt can be a single-line or multi-line textbox. If a callback function is passed it will be called after the user
770
+ * clicks either button, and the id of the button that was clicked (could also be the top-right
771
+ * close button, which will always report as "cancel") and the text that was entered will be passed as the two parameters to the callback.
772
+ *
773
+ * @param {String} title The title bar text
774
+ * @param {String} msg The message box body text
775
+ * @param {Function} [fn] The callback function invoked after the message box is closed
776
+ * @param {Object} [scope=window] The scope (`this` reference) in which the callback is executed.
777
+ * @param {Boolean/Number} [multiline=false] True to create a multiline textbox using the defaultTextHeight
778
+ * property, or the height in pixels to create the textbox/
779
+ * @param {String} [value=''] Default value of the text input element
780
+ * @return {Ext.window.MessageBox} this
781
+ */
782
+ prompt : function(cfg, msg, fn, scope, multiline, value){
783
+ if (Ext.isString(cfg)) {
784
+ cfg = {
785
+ prompt: true,
786
+ title: cfg,
787
+ minWidth: this.minPromptWidth,
788
+ msg: msg,
789
+ buttons: this.OKCANCEL,
790
+ callback: fn,
791
+ scope: scope,
792
+ multiline: multiline,
793
+ value: value
794
+ };
795
+ }
796
+ return this.show(cfg);
797
+ },
798
+
799
+ /**
800
+ * Displays a message box with an infinitely auto-updating progress bar. This can be used to block user
801
+ * interaction while waiting for a long-running process to complete that does not have defined intervals.
802
+ * You are responsible for closing the message box when the process is complete.
803
+ *
804
+ * @param {String} msg The message box body text
805
+ * @param {String} [title] The title bar text
806
+ * @param {Object} [config] A {@link Ext.ProgressBar#wait} config object
807
+ * @return {Ext.window.MessageBox} this
808
+ */
809
+ wait : function(cfg, title, config){
810
+ if (Ext.isString(cfg)) {
811
+ cfg = {
812
+ title : title,
813
+ msg : cfg,
814
+ closable: false,
815
+ wait: true,
816
+ modal: true,
817
+ minWidth: this.minProgressWidth,
818
+ waitConfig: config
819
+ };
820
+ }
821
+ return this.show(cfg);
822
+ },
823
+
824
+ /**
825
+ * Displays a standard read-only message box with an OK button (comparable to the basic JavaScript alert prompt).
826
+ * If a callback function is passed it will be called after the user clicks the button, and the
827
+ * id of the button that was clicked will be passed as the only parameter to the callback
828
+ * (could also be the top-right close button, which will always report as "cancel").
829
+ *
830
+ * @param {String} title The title bar text
831
+ * @param {String} msg The message box body text
832
+ * @param {Function} [fn] The callback function invoked after the message box is closed
833
+ * @param {Object} [scope=window] The scope (<code>this</code> reference) in which the callback is executed.
834
+ * @return {Ext.window.MessageBox} this
835
+ */
836
+ alert: function(cfg, msg, fn, scope) {
837
+ if (Ext.isString(cfg)) {
838
+ cfg = {
839
+ title : cfg,
840
+ msg : msg,
841
+ buttons: this.OK,
842
+ fn: fn,
843
+ scope : scope,
844
+ minWidth: this.minWidth
845
+ };
846
+ }
847
+ return this.show(cfg);
848
+ },
849
+
850
+ /**
851
+ * Displays a message box with a progress bar. This message box has no buttons and is not closeable by
852
+ * the user. You are responsible for updating the progress bar as needed via {@link Ext.window.MessageBox#updateProgress}
853
+ * and closing the message box when the process is complete.
854
+ *
855
+ * @param {String} title The title bar text
856
+ * @param {String} msg The message box body text
857
+ * @param {String} [progressText=''] The text to display inside the progress bar
858
+ * @return {Ext.window.MessageBox} this
859
+ */
860
+ progress : function(cfg, msg, progressText){
861
+ if (Ext.isString(cfg)) {
862
+ cfg = {
863
+ title: cfg,
864
+ msg: msg,
865
+ progress: true,
866
+ progressText: progressText
867
+ };
868
+ }
869
+ return this.show(cfg);
870
+ }
871
+ }, function() {
872
+ /**
873
+ * @class Ext.MessageBox
874
+ * @alternateClassName Ext.Msg
875
+ * @extends Ext.window.MessageBox
876
+ * @singleton
877
+ * Singleton instance of {@link Ext.window.MessageBox}.
878
+ */
879
+ Ext.MessageBox = Ext.Msg = new this();
880
+ });