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.
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE +36 -0
- data/README.md +29 -0
- data/Rakefile +2 -0
- data/app/assets/javascripts/extjs-rails/extjs-rails.js +1 -0
- data/app/assets/javascripts/extjs-rails/index.js.erb +9 -0
- data/app/assets/javascripts/extjs-rails/sdk.jsb3 +2017 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractComponent.js +3290 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractManager.js +144 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractPlugin.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/Action.js +276 -0
- data/app/assets/javascripts/extjs-rails/src/Ajax.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/Component.js +1344 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentLoader.js +202 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentManager.js +47 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentQuery.js +521 -0
- data/app/assets/javascripts/extjs-rails/src/Editor.js +494 -0
- data/app/assets/javascripts/extjs-rails/src/ElementLoader.js +404 -0
- data/app/assets/javascripts/extjs-rails/src/FocusManager.js +712 -0
- data/app/assets/javascripts/extjs-rails/src/Img.js +111 -0
- data/app/assets/javascripts/extjs-rails/src/Layer.js +543 -0
- data/app/assets/javascripts/extjs-rails/src/LoadMask.js +432 -0
- data/app/assets/javascripts/extjs-rails/src/ModelManager.js +186 -0
- data/app/assets/javascripts/extjs-rails/src/PluginManager.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/ProgressBar.js +336 -0
- data/app/assets/javascripts/extjs-rails/src/Shadow.js +233 -0
- data/app/assets/javascripts/extjs-rails/src/ShadowPool.js +43 -0
- data/app/assets/javascripts/extjs-rails/src/Template.js +331 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplate.js +365 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplateCompiler.js +450 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplateParser.js +249 -0
- data/app/assets/javascripts/extjs-rails/src/ZIndexManager.js +519 -0
- data/app/assets/javascripts/extjs-rails/src/app/Application.js +271 -0
- data/app/assets/javascripts/extjs-rails/src/app/Controller.js +458 -0
- data/app/assets/javascripts/extjs-rails/src/app/EventBus.js +112 -0
- data/app/assets/javascripts/extjs-rails/src/button/Button.js +1483 -0
- data/app/assets/javascripts/extjs-rails/src/button/Cycle.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/button/Split.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Callout.js +140 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Chart.js +966 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Highlight.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Label.js +241 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Legend.js +474 -0
- data/app/assets/javascripts/extjs-rails/src/chart/LegendItem.js +217 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Mask.js +230 -0
- data/app/assets/javascripts/extjs-rails/src/chart/MaskLayer.js +48 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Navigation.js +79 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Shape.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Tip.js +98 -0
- data/app/assets/javascripts/extjs-rails/src/chart/TipSurface.js +42 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Abstract.js +73 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Axis.js +961 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Category.js +130 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Gauge.js +203 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Numeric.js +235 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Radial.js +204 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Time.js +135 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Area.js +803 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Bar.js +853 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Cartesian.js +328 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Column.js +104 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Gauge.js +490 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Line.js +1104 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Pie.js +1072 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Radar.js +440 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Scatter.js +668 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Series.js +443 -0
- data/app/assets/javascripts/extjs-rails/src/chart/theme/Base.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/chart/theme/Theme.js +253 -0
- data/app/assets/javascripts/extjs-rails/src/container/AbstractContainer.js +1062 -0
- data/app/assets/javascripts/extjs-rails/src/container/ButtonGroup.js +143 -0
- data/app/assets/javascripts/extjs-rails/src/container/Container.js +212 -0
- data/app/assets/javascripts/extjs-rails/src/container/DockingContainer.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/container/Viewport.js +184 -0
- data/app/assets/javascripts/extjs-rails/src/core/dom/Element.form.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/core/dom/Element.static-more.js +159 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/index.html +321 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/index.js +6 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CTO.js +25 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CoolGuy.js +20 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Developer.js +43 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Gun.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/HumanResource.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Musician.js +20 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Person.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanComposeSongs.js +9 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanPlayGuitar.js +9 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanSing.js +18 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/A.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/B.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/C.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/D.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/E.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/A.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/B.js +4 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/C.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/EventManager.js +1167 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/EventObject.js +883 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Ext-more.js +1283 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Ext.js +736 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Support.js +662 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Base.js +1085 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Class.js +676 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/ClassManager.js +1591 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Loader.js +1423 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.alignment.js +173 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.insertion.js +193 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.js +681 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.position.js +356 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.static.js +474 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.style.js +851 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.traversal.js +180 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractHelper.js +291 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractQuery.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElement.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElementLite.js +436 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/DomQuery-aria.js +1049 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/Browser.js +186 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/FeatureDetector.js +274 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/OS.js +141 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Array.js +1205 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Date.js +1463 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Error.js +326 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Function.js +485 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Number.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Object.js +606 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/String.js +333 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/misc/JSON.js +236 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/perf/Accumulator.js +244 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/perf/Monitor.js +197 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/DelayedTask.js +71 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/Event.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/Format.js +551 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/TaskManager.js +417 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/version/Version.js +364 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/README.MD +91 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/bootstrap.js +39 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build-data.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build.sh +2 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/data.js +27 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/index.html +15 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom.html +40 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/extjs-api.js +12 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/platform-api.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/sanity.js +4 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api-out.js +128 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api.js +89 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/env/Environment.js +357 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/APITest.js +37 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/jsb3.js +14 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/test-setup.js +137 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/EventManager.js +629 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-mess.backup +198 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-more.js +520 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext.js +1550 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Support.js +250 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Base.js +47 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Class.js +561 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/ClassManager.js +555 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/CompositeElementLite.js +409 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/DomHelper.js +444 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.insertion.js +342 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.js +731 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.static.js +201 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.style.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.traversal.js +336 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Array.js +1229 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Date.js +697 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Error.js +277 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Function.js +536 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Number.js +323 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Object.js +591 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/String.js +451 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/misc/JSON.js +252 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/util/Format.js +521 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/version/Version.js +148 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/specs.html +19 -0
- data/app/assets/javascripts/extjs-rails/src/data/AbstractStore.js +887 -0
- data/app/assets/javascripts/extjs-rails/src/data/ArrayStore.js +74 -0
- data/app/assets/javascripts/extjs-rails/src/data/Batch.js +236 -0
- data/app/assets/javascripts/extjs-rails/src/data/BufferStore.js +13 -0
- data/app/assets/javascripts/extjs-rails/src/data/Connection.js +969 -0
- data/app/assets/javascripts/extjs-rails/src/data/DirectStore.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/data/Errors.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/data/Field.js +341 -0
- data/app/assets/javascripts/extjs-rails/src/data/IdGenerator.js +198 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonP.js +253 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonPStore.js +51 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonStore.js +60 -0
- data/app/assets/javascripts/extjs-rails/src/data/Model.js +1673 -0
- data/app/assets/javascripts/extjs-rails/src/data/NodeInterface.js +1294 -0
- data/app/assets/javascripts/extjs-rails/src/data/NodeStore.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/data/Operation.js +331 -0
- data/app/assets/javascripts/extjs-rails/src/data/Request.js +40 -0
- data/app/assets/javascripts/extjs-rails/src/data/ResultSet.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/data/SequentialIdGenerator.js +61 -0
- data/app/assets/javascripts/extjs-rails/src/data/SortTypes.js +125 -0
- data/app/assets/javascripts/extjs-rails/src/data/Store.js +2609 -0
- data/app/assets/javascripts/extjs-rails/src/data/StoreManager.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/data/Tree.js +290 -0
- data/app/assets/javascripts/extjs-rails/src/data/TreeStore.js +655 -0
- data/app/assets/javascripts/extjs-rails/src/data/Types.js +190 -0
- data/app/assets/javascripts/extjs-rails/src/data/UuidGenerator.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/data/XmlStore.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/Association.js +243 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/BelongsTo.js +291 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/HasMany.js +289 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/HasOne.js +304 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Ajax.js +282 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Client.js +21 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Direct.js +181 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/JsonP.js +313 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/LocalStorage.js +69 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Memory.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Proxy.js +433 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Rest.js +173 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Server.js +460 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/SessionStorage.js +39 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/WebStorage.js +546 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Array.js +68 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Json.js +383 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Reader.js +735 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Xml.js +292 -0
- data/app/assets/javascripts/extjs-rails/src/data/validations.js +149 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Json.js +81 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Writer.js +147 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Xml.js +88 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DD.js +300 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DDProxy.js +204 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DDTarget.js +171 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragDrop.js +1101 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragDropManager.js +1264 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragSource.js +392 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragTracker.js +562 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragZone.js +137 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DropTarget.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DropZone.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/dd/Registry.js +117 -0
- data/app/assets/javascripts/extjs-rails/src/dd/ScrollManager.js +218 -0
- data/app/assets/javascripts/extjs-rails/src/dd/StatusProxy.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/diag/layout/Context.js +523 -0
- data/app/assets/javascripts/extjs-rails/src/diag/layout/ContextItem.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Event.js +35 -0
- data/app/assets/javascripts/extjs-rails/src/direct/ExceptionEvent.js +16 -0
- data/app/assets/javascripts/extjs-rails/src/direct/JsonProvider.js +82 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Manager.js +263 -0
- data/app/assets/javascripts/extjs-rails/src/direct/PollingProvider.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Provider.js +96 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingEvent.js +24 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingMethod.js +100 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingProvider.js +510 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Transaction.js +41 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.alignment.js +378 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.anim.js +962 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.dd.js +40 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.fx.js +194 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.js +1407 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.position.js +501 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.scroll.js +214 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.style.js +792 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.traversal.js +8 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Helper.js +466 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Query.js +1067 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Color.js +303 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Component.js +245 -0
- data/app/assets/javascripts/extjs-rails/src/draw/CompositeSprite.js +299 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Draw.js +1217 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Matrix.js +183 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Sprite.js +554 -0
- data/app/assets/javascripts/extjs-rails/src/draw/SpriteDD.js +87 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Surface.js +1001 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Text.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/ImageExporter.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/Svg.js +734 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/SvgExporter.js +280 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/Vml.js +916 -0
- data/app/assets/javascripts/extjs-rails/src/flash/Component.js +248 -0
- data/app/assets/javascripts/extjs-rails/src/form/Basic.js +1018 -0
- data/app/assets/javascripts/extjs-rails/src/form/CheckboxGroup.js +441 -0
- data/app/assets/javascripts/extjs-rails/src/form/CheckboxManager.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldAncestor.js +210 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldContainer.js +290 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldSet.js +506 -0
- data/app/assets/javascripts/extjs-rails/src/form/Label.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/form/Labelable.js +764 -0
- data/app/assets/javascripts/extjs-rails/src/form/Panel.js +335 -0
- data/app/assets/javascripts/extjs-rails/src/form/RadioGroup.js +124 -0
- data/app/assets/javascripts/extjs-rails/src/form/RadioManager.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Action.js +307 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/DirectLoad.js +107 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/DirectSubmit.js +119 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Load.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/StandardSubmit.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Submit.js +257 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Base.js +813 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Checkbox.js +505 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/ComboBox.js +1427 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Date.js +578 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Display.js +155 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Field.js +430 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/File.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Hidden.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/HtmlEditor.js +1439 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Number.js +380 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Picker.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Radio.js +279 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Spinner.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Text.js +727 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/TextArea.js +228 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Time.js +459 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Trigger.js +469 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/VTypes.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Anim.js +472 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Animator.js +410 -0
- data/app/assets/javascripts/extjs-rails/src/fx/CubicBezier.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Easing.js +136 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Manager.js +353 -0
- data/app/assets/javascripts/extjs-rails/src/fx/PropertyHandler.js +381 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Queue.js +123 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Component.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElement.js +46 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElementCSS.js +22 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeSprite.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Element.js +83 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/ElementCSS.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Sprite.js +128 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Target.js +36 -0
- data/app/assets/javascripts/extjs-rails/src/grid/CellEditor.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ColumnComponentLayout.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ColumnLayout.js +201 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Lockable.js +863 -0
- data/app/assets/javascripts/extjs-rails/src/grid/LockingView.js +169 -0
- data/app/assets/javascripts/extjs-rails/src/grid/PagingScroller.js +539 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Panel.js +393 -0
- data/app/assets/javascripts/extjs-rails/src/grid/RowEditor.js +731 -0
- data/app/assets/javascripts/extjs-rails/src/grid/RowNumberer.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Scroller.js +5 -0
- data/app/assets/javascripts/extjs-rails/src/grid/View.js +44 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ViewDropZone.js +41 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Action.js +318 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Boolean.js +82 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Column.js +835 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Date.js +63 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Number.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Template.js +58 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/AbstractSummary.js +154 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Chunking.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Feature.js +158 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Grouping.js +822 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/GroupingSummary.js +243 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/RowBody.js +116 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/RowWrap.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Summary.js +167 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/Container.js +965 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/DragZone.js +69 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/DropZone.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/CellEditing.js +453 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/DragDrop.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/Editing.js +561 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderReorderer.js +49 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderResizer.js +292 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/RowEditing.js +339 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Grid.js +351 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/HeaderContainer.js +109 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Property.js +36 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Store.js +141 -0
- data/app/assets/javascripts/extjs-rails/src/layout/ClassList.js +90 -0
- data/app/assets/javascripts/extjs-rails/src/layout/Context.js +1232 -0
- data/app/assets/javascripts/extjs-rails/src/layout/ContextItem.js +1470 -0
- data/app/assets/javascripts/extjs-rails/src/layout/Layout.js +761 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Auto.js +220 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Body.js +80 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/BoundList.js +95 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Button.js +261 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Component.js +427 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Dock.js +1132 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Draw.js +79 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/FieldSet.js +62 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/ProgressBar.js +54 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Tab.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/ComboBox.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Field.js +372 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/FieldContainer.js +48 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/HtmlEditor.js +54 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Slider.js +58 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Text.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/TextArea.js +51 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Trigger.js +132 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Absolute.js +121 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Accordion.js +308 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Anchor.js +403 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Auto.js +70 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Border-old-js +1079 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Border.js +816 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Box.js +929 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Card.js +361 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/CheckboxGroup.js +376 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Column.js +234 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Container.js +961 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Editor.js +74 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Fit.js +287 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Form.js +157 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/HBox.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Table.js +412 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/VBox.js +139 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Menu.js +365 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/None.js +83 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Scroller.js +475 -0
- data/app/assets/javascripts/extjs-rails/src/menu/CheckItem.js +169 -0
- data/app/assets/javascripts/extjs-rails/src/menu/ColorPicker.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/menu/DatePicker.js +100 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Item.js +553 -0
- data/app/assets/javascripts/extjs-rails/src/menu/KeyNav.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Manager.js +219 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Menu.js +579 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Separator.js +126 -0
- data/app/assets/javascripts/extjs-rails/src/panel/AbstractPanel.js +323 -0
- data/app/assets/javascripts/extjs-rails/src/panel/DD.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Header.js +518 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Panel.js +2150 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Proxy.js +131 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Table.js +1018 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Tool.js +304 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Color.js +219 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Date.js +1140 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Month.js +490 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Time.js +165 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitter.js +22 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitterTracker.js +210 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Handle.js +29 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/ResizeTracker.js +346 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Resizer.js +477 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Splitter.js +242 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/SplitterTracker.js +230 -0
- data/app/assets/javascripts/extjs-rails/src/selection/CellModel.js +395 -0
- data/app/assets/javascripts/extjs-rails/src/selection/CheckboxModel.js +234 -0
- data/app/assets/javascripts/extjs-rails/src/selection/DataViewModel.js +160 -0
- data/app/assets/javascripts/extjs-rails/src/selection/Model.js +646 -0
- data/app/assets/javascripts/extjs-rails/src/selection/RowModel.js +499 -0
- data/app/assets/javascripts/extjs-rails/src/selection/TreeModel.js +78 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Multi.js +835 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Single.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Thumb.js +259 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Tip.js +130 -0
- data/app/assets/javascripts/extjs-rails/src/state/CookieProvider.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/state/LocalStorageProvider.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/state/Manager.js +70 -0
- data/app/assets/javascripts/extjs-rails/src/state/Provider.js +182 -0
- data/app/assets/javascripts/extjs-rails/src/state/Stateful.js +364 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Bar.js +258 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Panel.js +654 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Tab.js +358 -0
- data/app/assets/javascripts/extjs-rails/src/tail.js +10 -0
- data/app/assets/javascripts/extjs-rails/src/tip/QuickTip.js +335 -0
- data/app/assets/javascripts/extjs-rails/src/tip/QuickTipManager.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/tip/Tip.js +160 -0
- data/app/assets/javascripts/extjs-rails/src/tip/ToolTip.js +691 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Fill.js +28 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Item.js +16 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Paging.js +600 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Separator.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Spacer.js +33 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/TextItem.js +57 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar-legacy.js +123 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar.js +447 -0
- data/app/assets/javascripts/extjs-rails/src/tree/Column.js +90 -0
- data/app/assets/javascripts/extjs-rails/src/tree/Panel.js +505 -0
- data/app/assets/javascripts/extjs-rails/src/tree/View.js +658 -0
- data/app/assets/javascripts/extjs-rails/src/tree/ViewDragZone.js +49 -0
- data/app/assets/javascripts/extjs-rails/src/tree/ViewDropZone.js +287 -0
- data/app/assets/javascripts/extjs-rails/src/tree/plugin/TreeViewDragDrop.js +244 -0
- data/app/assets/javascripts/extjs-rails/src/util/AbstractMixedCollection.js +772 -0
- data/app/assets/javascripts/extjs-rails/src/util/Animate.js +426 -0
- data/app/assets/javascripts/extjs-rails/src/util/Bindable.js +102 -0
- data/app/assets/javascripts/extjs-rails/src/util/CSS.js +185 -0
- data/app/assets/javascripts/extjs-rails/src/util/ClickRepeater.js +238 -0
- data/app/assets/javascripts/extjs-rails/src/util/ComponentDragger.js +126 -0
- data/app/assets/javascripts/extjs-rails/src/util/Cookies.js +91 -0
- data/app/assets/javascripts/extjs-rails/src/util/ElementContainer.js +293 -0
- data/app/assets/javascripts/extjs-rails/src/util/Filter.js +159 -0
- data/app/assets/javascripts/extjs-rails/src/util/Floating.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/util/Grouper.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/util/HashMap.js +356 -0
- data/app/assets/javascripts/extjs-rails/src/util/History.js +285 -0
- data/app/assets/javascripts/extjs-rails/src/util/Inflector.js +297 -0
- data/app/assets/javascripts/extjs-rails/src/util/KeyMap.js +427 -0
- data/app/assets/javascripts/extjs-rails/src/util/KeyNav.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/util/LruCache.js +257 -0
- data/app/assets/javascripts/extjs-rails/src/util/Memento.js +131 -0
- data/app/assets/javascripts/extjs-rails/src/util/MixedCollection.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/util/Observable.js +1003 -0
- data/app/assets/javascripts/extjs-rails/src/util/Offset.js +60 -0
- data/app/assets/javascripts/extjs-rails/src/util/Point.js +93 -0
- data/app/assets/javascripts/extjs-rails/src/util/ProtoElement.js +205 -0
- data/app/assets/javascripts/extjs-rails/src/util/Queue.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/util/Region.js +388 -0
- data/app/assets/javascripts/extjs-rails/src/util/Renderable.js +1079 -0
- data/app/assets/javascripts/extjs-rails/src/util/Sortable.js +248 -0
- data/app/assets/javascripts/extjs-rails/src/util/Sorter.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/util/TextMetrics.js +148 -0
- data/app/assets/javascripts/extjs-rails/src/view/AbstractView.js +1103 -0
- data/app/assets/javascripts/extjs-rails/src/view/BoundList.js +207 -0
- data/app/assets/javascripts/extjs-rails/src/view/BoundListKeyNav.js +92 -0
- data/app/assets/javascripts/extjs-rails/src/view/DragZone.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/view/DropZone.js +240 -0
- data/app/assets/javascripts/extjs-rails/src/view/Table.js +1229 -0
- data/app/assets/javascripts/extjs-rails/src/view/TableChunker.js +139 -0
- data/app/assets/javascripts/extjs-rails/src/view/View.js +636 -0
- data/app/assets/javascripts/extjs-rails/src/window/MessageBox.js +880 -0
- data/app/assets/javascripts/extjs-rails/src/window/Window-legacy.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/window/Window.js +793 -0
- data/extjs-rails.gemspec +24 -0
- data/lib/extjs-rails.rb +7 -0
- data/lib/extjs-rails/engine.rb +7 -0
- data/lib/extjs-rails/version.rb +5 -0
- 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
|
+
});
|