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,156 @@
1
+ /**
2
+ * @class Ext.direct.PollingProvider
3
+ *
4
+ * <p>Provides for repetitive polling of the server at distinct {@link #interval intervals}.
5
+ * The initial request for data originates from the client, and then is responded to by the
6
+ * server.</p>
7
+ *
8
+ * <p>All configurations for the PollingProvider should be generated by the server-side
9
+ * API portion of the Ext.Direct stack.</p>
10
+ *
11
+ * <p>An instance of PollingProvider may be created directly via the new keyword or by simply
12
+ * specifying <tt>type = 'polling'</tt>. For example:</p>
13
+ * <pre><code>
14
+ var pollA = new Ext.direct.PollingProvider({
15
+ type:'polling',
16
+ url: 'php/pollA.php',
17
+ });
18
+ Ext.direct.Manager.addProvider(pollA);
19
+ pollA.disconnect();
20
+
21
+ Ext.direct.Manager.addProvider(
22
+ {
23
+ type:'polling',
24
+ url: 'php/pollB.php',
25
+ id: 'pollB-provider'
26
+ }
27
+ );
28
+ var pollB = Ext.direct.Manager.getProvider('pollB-provider');
29
+ * </code></pre>
30
+ */
31
+ Ext.define('Ext.direct.PollingProvider', {
32
+
33
+ /* Begin Definitions */
34
+
35
+ extend: 'Ext.direct.JsonProvider',
36
+
37
+ alias: 'direct.pollingprovider',
38
+
39
+ uses: ['Ext.direct.ExceptionEvent'],
40
+
41
+ requires: ['Ext.Ajax', 'Ext.util.DelayedTask'],
42
+
43
+ /* End Definitions */
44
+
45
+ /**
46
+ * @cfg {Number} interval
47
+ * How often to poll the server-side in milliseconds. Defaults to every 3 seconds.
48
+ */
49
+ interval: 3000,
50
+
51
+ /**
52
+ * @cfg {Object} baseParams
53
+ * An object containing properties which are to be sent as parameters on every polling request
54
+ */
55
+
56
+ /**
57
+ * @cfg {String/Function} url
58
+ * The url which the PollingProvider should contact with each request. This can also be
59
+ * an imported Ext.Direct method which will accept the baseParams as its only argument.
60
+ */
61
+
62
+ // private
63
+ constructor : function(config){
64
+ this.callParent(arguments);
65
+ this.addEvents(
66
+ /**
67
+ * @event beforepoll
68
+ * Fired immediately before a poll takes place, an event handler can return false
69
+ * in order to cancel the poll.
70
+ * @param {Ext.direct.PollingProvider} this
71
+ */
72
+ 'beforepoll',
73
+ /**
74
+ * @event poll
75
+ * This event has not yet been implemented.
76
+ * @param {Ext.direct.PollingProvider} this
77
+ */
78
+ 'poll'
79
+ );
80
+ },
81
+
82
+ // inherited
83
+ isConnected: function(){
84
+ return !!this.pollTask;
85
+ },
86
+
87
+ /**
88
+ * Connect to the server-side and begin the polling process. To handle each
89
+ * response subscribe to the data event.
90
+ */
91
+ connect: function(){
92
+ var me = this, url = me.url;
93
+
94
+ if (url && !me.pollTask) {
95
+ me.pollTask = Ext.TaskManager.start({
96
+ run: function(){
97
+ if (me.fireEvent('beforepoll', me) !== false) {
98
+ if (Ext.isFunction(url)) {
99
+ url(me.baseParams);
100
+ } else {
101
+ Ext.Ajax.request({
102
+ url: url,
103
+ callback: me.onData,
104
+ scope: me,
105
+ params: me.baseParams
106
+ });
107
+ }
108
+ }
109
+ },
110
+ interval: me.interval,
111
+ scope: me
112
+ });
113
+ me.fireEvent('connect', me);
114
+ } else if (!url) {
115
+ //<debug>
116
+ Ext.Error.raise('Error initializing PollingProvider, no url configured.');
117
+ //</debug>
118
+ }
119
+ },
120
+
121
+ /**
122
+ * Disconnect from the server-side and stop the polling process. The disconnect
123
+ * event will be fired on a successful disconnect.
124
+ */
125
+ disconnect: function(){
126
+ var me = this;
127
+
128
+ if (me.pollTask) {
129
+ Ext.TaskManager.stop(me.pollTask);
130
+ delete me.pollTask;
131
+ me.fireEvent('disconnect', me);
132
+ }
133
+ },
134
+
135
+ // private
136
+ onData: function(opt, success, response){
137
+ var me = this,
138
+ i = 0,
139
+ len,
140
+ events;
141
+
142
+ if (success) {
143
+ events = me.createEvents(response);
144
+ for (len = events.length; i < len; ++i) {
145
+ me.fireEvent('data', me, events[i]);
146
+ }
147
+ } else {
148
+ me.fireEvent('data', me, new Ext.direct.ExceptionEvent({
149
+ data: null,
150
+ code: Ext.direct.Manager.self.exceptions.TRANSPORT,
151
+ message: 'Unable to connect to the server.',
152
+ xhr: response
153
+ }));
154
+ }
155
+ }
156
+ });
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Ext.direct.Provider is an abstract class meant to be extended.
3
+ *
4
+ * For example Ext JS implements the following subclasses:
5
+ *
6
+ * Provider
7
+ * |
8
+ * +---{@link Ext.direct.JsonProvider JsonProvider}
9
+ * |
10
+ * +---{@link Ext.direct.PollingProvider PollingProvider}
11
+ * |
12
+ * +---{@link Ext.direct.RemotingProvider RemotingProvider}
13
+ *
14
+ * @abstract
15
+ */
16
+ Ext.define('Ext.direct.Provider', {
17
+
18
+ /* Begin Definitions */
19
+
20
+ alias: 'direct.provider',
21
+
22
+ mixins: {
23
+ observable: 'Ext.util.Observable'
24
+ },
25
+
26
+ /* End Definitions */
27
+
28
+ /**
29
+ * @cfg {String} id
30
+ * The unique id of the provider (defaults to an {@link Ext#id auto-assigned id}).
31
+ * You should assign an id if you need to be able to access the provider later and you do
32
+ * not have an object reference available, for example:
33
+ *
34
+ * Ext.direct.Manager.addProvider({
35
+ * type: 'polling',
36
+ * url: 'php/poll.php',
37
+ * id: 'poll-provider'
38
+ * });
39
+ * var p = {@link Ext.direct.Manager}.{@link Ext.direct.Manager#getProvider getProvider}('poll-provider');
40
+ * p.disconnect();
41
+ *
42
+ */
43
+
44
+ constructor : function(config){
45
+ var me = this;
46
+
47
+ Ext.apply(me, config);
48
+ me.addEvents(
49
+ /**
50
+ * @event connect
51
+ * Fires when the Provider connects to the server-side
52
+ * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}.
53
+ */
54
+ 'connect',
55
+ /**
56
+ * @event disconnect
57
+ * Fires when the Provider disconnects from the server-side
58
+ * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}.
59
+ */
60
+ 'disconnect',
61
+ /**
62
+ * @event data
63
+ * Fires when the Provider receives data from the server-side
64
+ * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}.
65
+ * @param {Ext.direct.Event} e The Ext.direct.Event type that occurred.
66
+ */
67
+ 'data',
68
+ /**
69
+ * @event exception
70
+ * Fires when the Provider receives an exception from the server-side
71
+ */
72
+ 'exception'
73
+ );
74
+ me.mixins.observable.constructor.call(me, config);
75
+ },
76
+
77
+ /**
78
+ * Returns whether or not the server-side is currently connected.
79
+ * Abstract method for subclasses to implement.
80
+ */
81
+ isConnected: function(){
82
+ return false;
83
+ },
84
+
85
+ /**
86
+ * Abstract methods for subclasses to implement.
87
+ * @method
88
+ */
89
+ connect: Ext.emptyFn,
90
+
91
+ /**
92
+ * Abstract methods for subclasses to implement.
93
+ * @method
94
+ */
95
+ disconnect: Ext.emptyFn
96
+ });
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @class Ext.direct.RemotingEvent
3
+ * An event that is fired when data is received from a
4
+ * {@link Ext.direct.RemotingProvider}. Contains a method to the
5
+ * related transaction for the direct request, see {@link #getTransaction}
6
+ */
7
+ Ext.define('Ext.direct.RemotingEvent', {
8
+
9
+ /* Begin Definitions */
10
+
11
+ extend: 'Ext.direct.Event',
12
+
13
+ alias: 'direct.rpc',
14
+
15
+ /* End Definitions */
16
+
17
+ /**
18
+ * Get the transaction associated with this event.
19
+ * @return {Ext.direct.Transaction} The transaction
20
+ */
21
+ getTransaction: function(){
22
+ return this.transaction || Ext.direct.Manager.getTransaction(this.tid);
23
+ }
24
+ });
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Small utility class used internally to represent a Direct method.
3
+ * @private
4
+ */
5
+ Ext.define('Ext.direct.RemotingMethod', {
6
+
7
+ constructor: function(config){
8
+ var me = this,
9
+ params = Ext.isDefined(config.params) ? config.params : config.len,
10
+ name, pLen, p, param;
11
+
12
+ me.name = config.name;
13
+ me.formHandler = config.formHandler;
14
+ if (Ext.isNumber(params)) {
15
+ // given only the number of parameters
16
+ me.len = params;
17
+ me.ordered = true;
18
+ } else {
19
+ /*
20
+ * Given an array of either
21
+ * a) String
22
+ * b) Objects with a name property. We may want to encode extra info in here later
23
+ */
24
+ me.params = [];
25
+ pLen = params.length;
26
+ for (p = 0; p < pLen; p++) {
27
+ param = params[p];
28
+ name = Ext.isObject(param) ? param.name : param;
29
+ me.params.push(name);
30
+ }
31
+ }
32
+ },
33
+
34
+ getArgs: function(params, paramOrder, paramsAsHash){
35
+ var args = [],
36
+ i,
37
+ len;
38
+
39
+ if (this.ordered) {
40
+ if (this.len > 0) {
41
+ // If a paramOrder was specified, add the params into the argument list in that order.
42
+ if (paramOrder) {
43
+ for (i = 0, len = paramOrder.length; i < len; i++) {
44
+ args.push(params[paramOrder[i]]);
45
+ }
46
+ } else if (paramsAsHash) {
47
+ // If paramsAsHash was specified, add all the params as a single object argument.
48
+ args.push(params);
49
+ }
50
+ }
51
+ } else {
52
+ args.push(params);
53
+ }
54
+
55
+ return args;
56
+ },
57
+
58
+ /**
59
+ * Takes the arguments for the Direct function and splits the arguments
60
+ * from the scope and the callback.
61
+ * @param {Array} args The arguments passed to the direct call
62
+ * @return {Object} An object with 3 properties, args, callback & scope.
63
+ */
64
+ getCallData: function(args){
65
+ var me = this,
66
+ data = null,
67
+ len = me.len,
68
+ params = me.params,
69
+ callback,
70
+ scope,
71
+ name;
72
+
73
+ if (me.ordered) {
74
+ callback = args[len];
75
+ scope = args[len + 1];
76
+ if (len !== 0) {
77
+ data = args.slice(0, len);
78
+ }
79
+ } else {
80
+ data = Ext.apply({}, args[0]);
81
+ callback = args[1];
82
+ scope = args[2];
83
+
84
+ // filter out any non-existent properties
85
+ for (name in data) {
86
+ if (data.hasOwnProperty(name)) {
87
+ if (!Ext.Array.contains(params, name)) {
88
+ delete data[name];
89
+ }
90
+ }
91
+ }
92
+ }
93
+
94
+ return {
95
+ data: data,
96
+ callback: callback,
97
+ scope: scope
98
+ };
99
+ }
100
+ });
@@ -0,0 +1,510 @@
1
+ /**
2
+ * @class Ext.direct.RemotingProvider
3
+ *
4
+ * <p>The {@link Ext.direct.RemotingProvider RemotingProvider} exposes access to
5
+ * server side methods on the client (a remote procedure call (RPC) type of
6
+ * connection where the client can initiate a procedure on the server).</p>
7
+ *
8
+ * <p>This allows for code to be organized in a fashion that is maintainable,
9
+ * while providing a clear path between client and server, something that is
10
+ * not always apparent when using URLs.</p>
11
+ *
12
+ * <p>To accomplish this the server-side needs to describe what classes and methods
13
+ * are available on the client-side. This configuration will typically be
14
+ * outputted by the server-side Ext.Direct stack when the API description is built.</p>
15
+ */
16
+ Ext.define('Ext.direct.RemotingProvider', {
17
+
18
+ /* Begin Definitions */
19
+
20
+ alias: 'direct.remotingprovider',
21
+
22
+ extend: 'Ext.direct.JsonProvider',
23
+
24
+ requires: [
25
+ 'Ext.util.MixedCollection',
26
+ 'Ext.util.DelayedTask',
27
+ 'Ext.direct.Transaction',
28
+ 'Ext.direct.RemotingMethod'
29
+ ],
30
+
31
+ /* End Definitions */
32
+
33
+ /**
34
+ * @cfg {Object} actions
35
+ * Object literal defining the server side actions and methods. For example, if
36
+ * the Provider is configured with:
37
+ * <pre><code>
38
+ "actions":{ // each property within the 'actions' object represents a server side Class
39
+ "TestAction":[ // array of methods within each server side Class to be
40
+ { // stubbed out on client
41
+ "name":"doEcho",
42
+ "len":1
43
+ },{
44
+ "name":"multiply",// name of method
45
+ "len":2 // The number of parameters that will be used to create an
46
+ // array of data to send to the server side function.
47
+ // Ensure the server sends back a Number, not a String.
48
+ },{
49
+ "name":"doForm",
50
+ "formHandler":true, // direct the client to use specialized form handling method
51
+ "len":1
52
+ }]
53
+ }
54
+ * </code></pre>
55
+ * <p>Note that a Store is not required, a server method can be called at any time.
56
+ * In the following example a <b>client side</b> handler is used to call the
57
+ * server side method "multiply" in the server-side "TestAction" Class:</p>
58
+ * <pre><code>
59
+ TestAction.multiply(
60
+ 2, 4, // pass two arguments to server, so specify len=2
61
+ // callback function after the server is called
62
+ // result: the result returned by the server
63
+ // e: Ext.direct.RemotingEvent object
64
+ function(result, e){
65
+ var t = e.getTransaction();
66
+ var action = t.action; // server side Class called
67
+ var method = t.method; // server side method called
68
+ if(e.status){
69
+ var answer = Ext.encode(result); // 8
70
+
71
+ }else{
72
+ var msg = e.message; // failure message
73
+ }
74
+ }
75
+ );
76
+ * </code></pre>
77
+ * In the example above, the server side "multiply" function will be passed two
78
+ * arguments (2 and 4). The "multiply" method should return the value 8 which will be
79
+ * available as the <tt>result</tt> in the example above.
80
+ */
81
+
82
+ /**
83
+ * @cfg {String/Object} namespace
84
+ * Namespace for the Remoting Provider (defaults to the browser global scope of <i>window</i>).
85
+ * Explicitly specify the namespace Object, or specify a String to have a
86
+ * {@link Ext#namespace namespace created} implicitly.
87
+ */
88
+
89
+ /**
90
+ * @cfg {String} url
91
+ * <b>Required</b>. The url to connect to the {@link Ext.direct.Manager} server-side router.
92
+ */
93
+
94
+ /**
95
+ * @cfg {String} enableUrlEncode
96
+ * Specify which param will hold the arguments for the method.
97
+ * Defaults to <tt>'data'</tt>.
98
+ */
99
+
100
+ /**
101
+ * @cfg {Number/Boolean} enableBuffer
102
+ * <p><tt>true</tt> or <tt>false</tt> to enable or disable combining of method
103
+ * calls. If a number is specified this is the amount of time in milliseconds
104
+ * to wait before sending a batched request.</p>
105
+ * <br><p>Calls which are received within the specified timeframe will be
106
+ * concatenated together and sent in a single request, optimizing the
107
+ * application by reducing the amount of round trips that have to be made
108
+ * to the server.</p>
109
+ */
110
+ enableBuffer: 10,
111
+
112
+ /**
113
+ * @cfg {Number} maxRetries
114
+ * Number of times to re-attempt delivery on failure of a call.
115
+ */
116
+ maxRetries: 1,
117
+
118
+ /**
119
+ * @cfg {Number} timeout
120
+ * The timeout to use for each request.
121
+ */
122
+ timeout: undefined,
123
+
124
+ constructor : function(config){
125
+ var me = this;
126
+ me.callParent(arguments);
127
+ me.addEvents(
128
+ /**
129
+ * @event beforecall
130
+ * Fires immediately before the client-side sends off the RPC call.
131
+ * By returning false from an event handler you can prevent the call from
132
+ * executing.
133
+ * @param {Ext.direct.RemotingProvider} provider
134
+ * @param {Ext.direct.Transaction} transaction
135
+ * @param {Object} meta The meta data
136
+ */
137
+ 'beforecall',
138
+ /**
139
+ * @event call
140
+ * Fires immediately after the request to the server-side is sent. This does
141
+ * NOT fire after the response has come back from the call.
142
+ * @param {Ext.direct.RemotingProvider} provider
143
+ * @param {Ext.direct.Transaction} transaction
144
+ * @param {Object} meta The meta data
145
+ */
146
+ 'call'
147
+ );
148
+ me.namespace = (Ext.isString(me.namespace)) ? Ext.ns(me.namespace) : me.namespace || window;
149
+ me.transactions = new Ext.util.MixedCollection();
150
+ me.callBuffer = [];
151
+ },
152
+
153
+ /**
154
+ * Initialize the API
155
+ * @private
156
+ */
157
+ initAPI : function(){
158
+ var actions = this.actions,
159
+ namespace = this.namespace,
160
+ action,
161
+ cls,
162
+ methods,
163
+ i,
164
+ len,
165
+ method;
166
+
167
+ for (action in actions) {
168
+ if (actions.hasOwnProperty(action)) {
169
+ cls = namespace[action];
170
+ if (!cls) {
171
+ cls = namespace[action] = {};
172
+ }
173
+ methods = actions[action];
174
+
175
+ for (i = 0, len = methods.length; i < len; ++i) {
176
+ method = new Ext.direct.RemotingMethod(methods[i]);
177
+ cls[method.name] = this.createHandler(action, method);
178
+ }
179
+ }
180
+ }
181
+ },
182
+
183
+ /**
184
+ * Create a handler function for a direct call.
185
+ * @private
186
+ * @param {String} action The action the call is for
187
+ * @param {Object} method The details of the method
188
+ * @return {Function} A JS function that will kick off the call
189
+ */
190
+ createHandler : function(action, method){
191
+ var me = this,
192
+ handler;
193
+
194
+ if (!method.formHandler) {
195
+ handler = function(){
196
+ me.configureRequest(action, method, Array.prototype.slice.call(arguments, 0));
197
+ };
198
+ } else {
199
+ handler = function(form, callback, scope){
200
+ me.configureFormRequest(action, method, form, callback, scope);
201
+ };
202
+ }
203
+ handler.directCfg = {
204
+ action: action,
205
+ method: method
206
+ };
207
+ return handler;
208
+ },
209
+
210
+ // inherit docs
211
+ isConnected: function(){
212
+ return !!this.connected;
213
+ },
214
+
215
+ // inherit docs
216
+ connect: function(){
217
+ var me = this;
218
+
219
+ if (me.url) {
220
+ me.initAPI();
221
+ me.connected = true;
222
+ me.fireEvent('connect', me);
223
+ } else if(!me.url) {
224
+ //<debug>
225
+ Ext.Error.raise('Error initializing RemotingProvider, no url configured.');
226
+ //</debug>
227
+ }
228
+ },
229
+
230
+ // inherit docs
231
+ disconnect: function(){
232
+ var me = this;
233
+
234
+ if (me.connected) {
235
+ me.connected = false;
236
+ me.fireEvent('disconnect', me);
237
+ }
238
+ },
239
+
240
+ /**
241
+ * Run any callbacks related to the transaction.
242
+ * @private
243
+ * @param {Ext.direct.Transaction} transaction The transaction
244
+ * @param {Ext.direct.Event} event The event
245
+ */
246
+ runCallback: function(transaction, event){
247
+ var success = !!event.status,
248
+ funcName = success ? 'success' : 'failure',
249
+ callback,
250
+ result;
251
+
252
+ if (transaction && transaction.callback) {
253
+ callback = transaction.callback;
254
+ result = Ext.isDefined(event.result) ? event.result : event.data;
255
+
256
+ if (Ext.isFunction(callback)) {
257
+ callback(result, event, success);
258
+ } else {
259
+ Ext.callback(callback[funcName], callback.scope, [result, event, success]);
260
+ Ext.callback(callback.callback, callback.scope, [result, event, success]);
261
+ }
262
+ }
263
+ },
264
+
265
+ /**
266
+ * React to the ajax request being completed
267
+ * @private
268
+ */
269
+ onData: function(options, success, response){
270
+ var me = this,
271
+ i = 0,
272
+ len,
273
+ events,
274
+ event,
275
+ transaction,
276
+ transactions;
277
+
278
+ if (success) {
279
+ events = me.createEvents(response);
280
+ for (len = events.length; i < len; ++i) {
281
+ event = events[i];
282
+ transaction = me.getTransaction(event);
283
+ me.fireEvent('data', me, event);
284
+ if (transaction) {
285
+ me.runCallback(transaction, event, true);
286
+ Ext.direct.Manager.removeTransaction(transaction);
287
+ }
288
+ }
289
+ } else {
290
+ transactions = [].concat(options.transaction);
291
+ for (len = transactions.length; i < len; ++i) {
292
+ transaction = me.getTransaction(transactions[i]);
293
+ if (transaction && transaction.retryCount < me.maxRetries) {
294
+ transaction.retry();
295
+ } else {
296
+ event = new Ext.direct.ExceptionEvent({
297
+ data: null,
298
+ transaction: transaction,
299
+ code: Ext.direct.Manager.self.exceptions.TRANSPORT,
300
+ message: 'Unable to connect to the server.',
301
+ xhr: response
302
+ });
303
+ me.fireEvent('data', me, event);
304
+ if (transaction) {
305
+ me.runCallback(transaction, event, false);
306
+ Ext.direct.Manager.removeTransaction(transaction);
307
+ }
308
+ }
309
+ }
310
+ }
311
+ },
312
+
313
+ /**
314
+ * Get transaction from XHR options
315
+ * @private
316
+ * @param {Object} options The options sent to the Ajax request
317
+ * @return {Ext.direct.Transaction} The transaction, null if not found
318
+ */
319
+ getTransaction: function(options){
320
+ return options && options.tid ? Ext.direct.Manager.getTransaction(options.tid) : null;
321
+ },
322
+
323
+ /**
324
+ * Configure a direct request
325
+ * @private
326
+ * @param {String} action The action being executed
327
+ * @param {Object} method The being executed
328
+ */
329
+ configureRequest: function(action, method, args){
330
+ var me = this,
331
+ callData = method.getCallData(args),
332
+ data = callData.data,
333
+ callback = callData.callback,
334
+ scope = callData.scope,
335
+ transaction;
336
+
337
+ transaction = new Ext.direct.Transaction({
338
+ provider: me,
339
+ args: args,
340
+ action: action,
341
+ method: method.name,
342
+ data: data,
343
+ callback: scope && Ext.isFunction(callback) ? Ext.Function.bind(callback, scope) : callback
344
+ });
345
+
346
+ if (me.fireEvent('beforecall', me, transaction, method) !== false) {
347
+ Ext.direct.Manager.addTransaction(transaction);
348
+ me.queueTransaction(transaction);
349
+ me.fireEvent('call', me, transaction, method);
350
+ }
351
+ },
352
+
353
+ /**
354
+ * Gets the Ajax call info for a transaction
355
+ * @private
356
+ * @param {Ext.direct.Transaction} transaction The transaction
357
+ * @return {Object} The call params
358
+ */
359
+ getCallData: function(transaction){
360
+ return {
361
+ action: transaction.action,
362
+ method: transaction.method,
363
+ data: transaction.data,
364
+ type: 'rpc',
365
+ tid: transaction.id
366
+ };
367
+ },
368
+
369
+ /**
370
+ * Sends a request to the server
371
+ * @private
372
+ * @param {Object/Array} data The data to send
373
+ */
374
+ sendRequest : function(data){
375
+ var me = this,
376
+ request = {
377
+ url: me.url,
378
+ callback: me.onData,
379
+ scope: me,
380
+ transaction: data,
381
+ timeout: me.timeout
382
+ }, callData,
383
+ enableUrlEncode = me.enableUrlEncode,
384
+ i = 0,
385
+ len,
386
+ params;
387
+
388
+
389
+ if (Ext.isArray(data)) {
390
+ callData = [];
391
+ for (len = data.length; i < len; ++i) {
392
+ callData.push(me.getCallData(data[i]));
393
+ }
394
+ } else {
395
+ callData = me.getCallData(data);
396
+ }
397
+
398
+ if (enableUrlEncode) {
399
+ params = {};
400
+ params[Ext.isString(enableUrlEncode) ? enableUrlEncode : 'data'] = Ext.encode(callData);
401
+ request.params = params;
402
+ } else {
403
+ request.jsonData = callData;
404
+ }
405
+ Ext.Ajax.request(request);
406
+ },
407
+
408
+ /**
409
+ * Add a new transaction to the queue
410
+ * @private
411
+ * @param {Ext.direct.Transaction} transaction The transaction
412
+ */
413
+ queueTransaction: function(transaction){
414
+ var me = this,
415
+ enableBuffer = me.enableBuffer;
416
+
417
+ if (transaction.form) {
418
+ me.sendFormRequest(transaction);
419
+ return;
420
+ }
421
+
422
+ me.callBuffer.push(transaction);
423
+ if (enableBuffer) {
424
+ if (!me.callTask) {
425
+ me.callTask = new Ext.util.DelayedTask(me.combineAndSend, me);
426
+ }
427
+ me.callTask.delay(Ext.isNumber(enableBuffer) ? enableBuffer : 10);
428
+ } else {
429
+ me.combineAndSend();
430
+ }
431
+ },
432
+
433
+ /**
434
+ * Combine any buffered requests and send them off
435
+ * @private
436
+ */
437
+ combineAndSend : function(){
438
+ var buffer = this.callBuffer,
439
+ len = buffer.length;
440
+
441
+ if (len > 0) {
442
+ this.sendRequest(len == 1 ? buffer[0] : buffer);
443
+ this.callBuffer = [];
444
+ }
445
+ },
446
+
447
+ /**
448
+ * Configure a form submission request
449
+ * @private
450
+ * @param {String} action The action being executed
451
+ * @param {Object} method The method being executed
452
+ * @param {HTMLElement} form The form being submitted
453
+ * @param {Function} callback (optional) A callback to run after the form submits
454
+ * @param {Object} scope (optional) A scope to execute the callback in
455
+ */
456
+ configureFormRequest : function(action, method, form, callback, scope){
457
+ var me = this,
458
+ transaction = new Ext.direct.Transaction({
459
+ provider: me,
460
+ action: action,
461
+ method: method.name,
462
+ args: [form, callback, scope],
463
+ callback: scope && Ext.isFunction(callback) ? Ext.Function.bind(callback, scope) : callback,
464
+ isForm: true
465
+ }),
466
+ isUpload,
467
+ params;
468
+
469
+ if (me.fireEvent('beforecall', me, transaction, method) !== false) {
470
+ Ext.direct.Manager.addTransaction(transaction);
471
+ isUpload = String(form.getAttribute("enctype")).toLowerCase() == 'multipart/form-data';
472
+
473
+ params = {
474
+ extTID: transaction.id,
475
+ extAction: action,
476
+ extMethod: method.name,
477
+ extType: 'rpc',
478
+ extUpload: String(isUpload)
479
+ };
480
+
481
+ // change made from typeof callback check to callback.params
482
+ // to support addl param passing in DirectSubmit EAC 6/2
483
+ Ext.apply(transaction, {
484
+ form: Ext.getDom(form),
485
+ isUpload: isUpload,
486
+ params: callback && Ext.isObject(callback.params) ? Ext.apply(params, callback.params) : params
487
+ });
488
+ me.fireEvent('call', me, transaction, method);
489
+ me.sendFormRequest(transaction);
490
+ }
491
+ },
492
+
493
+ /**
494
+ * Sends a form request
495
+ * @private
496
+ * @param {Ext.direct.Transaction} transaction The transaction to send
497
+ */
498
+ sendFormRequest: function(transaction){
499
+ Ext.Ajax.request({
500
+ url: this.url,
501
+ params: transaction.params,
502
+ callback: this.onData,
503
+ scope: this,
504
+ form: transaction.form,
505
+ isUpload: transaction.isUpload,
506
+ transaction: transaction
507
+ });
508
+ }
509
+
510
+ });