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,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Ed Spencer
|
|
3
|
+
*
|
|
4
|
+
* The JsonP proxy is useful when you need to load data from a domain other than the one your application is running on. If
|
|
5
|
+
* your application is running on http://domainA.com it cannot use {@link Ext.data.proxy.Ajax Ajax} to load its data
|
|
6
|
+
* from http://domainB.com because cross-domain ajax requests are prohibited by the browser.
|
|
7
|
+
*
|
|
8
|
+
* We can get around this using a JsonP proxy. JsonP proxy injects a `<script>` tag into the DOM whenever an AJAX request
|
|
9
|
+
* would usually be made. Let's say we want to load data from http://domainB.com/users - the script tag that would be
|
|
10
|
+
* injected might look like this:
|
|
11
|
+
*
|
|
12
|
+
* <script src="http://domainB.com/users?callback=someCallback"></script>
|
|
13
|
+
*
|
|
14
|
+
* When we inject the tag above, the browser makes a request to that url and includes the response as if it was any
|
|
15
|
+
* other type of JavaScript include. By passing a callback in the url above, we're telling domainB's server that we want
|
|
16
|
+
* to be notified when the result comes in and that it should call our callback function with the data it sends back. So
|
|
17
|
+
* long as the server formats the response to look like this, everything will work:
|
|
18
|
+
*
|
|
19
|
+
* someCallback({
|
|
20
|
+
* users: [
|
|
21
|
+
* {
|
|
22
|
+
* id: 1,
|
|
23
|
+
* name: "Ed Spencer",
|
|
24
|
+
* email: "ed@sencha.com"
|
|
25
|
+
* }
|
|
26
|
+
* ]
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* As soon as the script finishes loading, the 'someCallback' function that we passed in the url is called with the JSON
|
|
30
|
+
* object that the server returned.
|
|
31
|
+
*
|
|
32
|
+
* JsonP proxy takes care of all of this automatically. It formats the url you pass, adding the callback parameter
|
|
33
|
+
* automatically. It even creates a temporary callback function, waits for it to be called and then puts the data into
|
|
34
|
+
* the Proxy making it look just like you loaded it through a normal {@link Ext.data.proxy.Ajax AjaxProxy}. Here's how
|
|
35
|
+
* we might set that up:
|
|
36
|
+
*
|
|
37
|
+
* Ext.define('User', {
|
|
38
|
+
* extend: 'Ext.data.Model',
|
|
39
|
+
* fields: ['id', 'name', 'email']
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* var store = Ext.create('Ext.data.Store', {
|
|
43
|
+
* model: 'User',
|
|
44
|
+
* proxy: {
|
|
45
|
+
* type: 'jsonp',
|
|
46
|
+
* url : 'http://domainB.com/users'
|
|
47
|
+
* }
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* store.load();
|
|
51
|
+
*
|
|
52
|
+
* That's all we need to do - JsonP proxy takes care of the rest. In this case the Proxy will have injected a script tag
|
|
53
|
+
* like this:
|
|
54
|
+
*
|
|
55
|
+
* <script src="http://domainB.com/users?callback=callback1"></script>
|
|
56
|
+
*
|
|
57
|
+
* # Customization
|
|
58
|
+
*
|
|
59
|
+
* This script tag can be customized using the {@link #callbackKey} configuration. For example:
|
|
60
|
+
*
|
|
61
|
+
* var store = Ext.create('Ext.data.Store', {
|
|
62
|
+
* model: 'User',
|
|
63
|
+
* proxy: {
|
|
64
|
+
* type: 'jsonp',
|
|
65
|
+
* url : 'http://domainB.com/users',
|
|
66
|
+
* callbackKey: 'theCallbackFunction'
|
|
67
|
+
* }
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* store.load();
|
|
71
|
+
*
|
|
72
|
+
* Would inject a script tag like this:
|
|
73
|
+
*
|
|
74
|
+
* <script src="http://domainB.com/users?theCallbackFunction=callback1"></script>
|
|
75
|
+
*
|
|
76
|
+
* # Implementing on the server side
|
|
77
|
+
*
|
|
78
|
+
* The remote server side needs to be configured to return data in this format. Here are suggestions for how you might
|
|
79
|
+
* achieve this using Java, PHP and ASP.net:
|
|
80
|
+
*
|
|
81
|
+
* Java:
|
|
82
|
+
*
|
|
83
|
+
* boolean jsonP = false;
|
|
84
|
+
* String cb = request.getParameter("callback");
|
|
85
|
+
* if (cb != null) {
|
|
86
|
+
* jsonP = true;
|
|
87
|
+
* response.setContentType("text/javascript");
|
|
88
|
+
* } else {
|
|
89
|
+
* response.setContentType("application/x-json");
|
|
90
|
+
* }
|
|
91
|
+
* Writer out = response.getWriter();
|
|
92
|
+
* if (jsonP) {
|
|
93
|
+
* out.write(cb + "(");
|
|
94
|
+
* }
|
|
95
|
+
* out.print(dataBlock.toJsonString());
|
|
96
|
+
* if (jsonP) {
|
|
97
|
+
* out.write(");");
|
|
98
|
+
* }
|
|
99
|
+
*
|
|
100
|
+
* PHP:
|
|
101
|
+
*
|
|
102
|
+
* $callback = $_REQUEST['callback'];
|
|
103
|
+
*
|
|
104
|
+
* // Create the output object.
|
|
105
|
+
* $output = array('a' => 'Apple', 'b' => 'Banana');
|
|
106
|
+
*
|
|
107
|
+
* //start output
|
|
108
|
+
* if ($callback) {
|
|
109
|
+
* header('Content-Type: text/javascript');
|
|
110
|
+
* echo $callback . '(' . json_encode($output) . ');';
|
|
111
|
+
* } else {
|
|
112
|
+
* header('Content-Type: application/x-json');
|
|
113
|
+
* echo json_encode($output);
|
|
114
|
+
* }
|
|
115
|
+
*
|
|
116
|
+
* ASP.net:
|
|
117
|
+
*
|
|
118
|
+
* String jsonString = "{success: true}";
|
|
119
|
+
* String cb = Request.Params.Get("callback");
|
|
120
|
+
* String responseString = "";
|
|
121
|
+
* if (!String.IsNullOrEmpty(cb)) {
|
|
122
|
+
* responseString = cb + "(" + jsonString + ")";
|
|
123
|
+
* } else {
|
|
124
|
+
* responseString = jsonString;
|
|
125
|
+
* }
|
|
126
|
+
* Response.Write(responseString);
|
|
127
|
+
*/
|
|
128
|
+
Ext.define('Ext.data.proxy.JsonP', {
|
|
129
|
+
extend: 'Ext.data.proxy.Server',
|
|
130
|
+
alternateClassName: 'Ext.data.ScriptTagProxy',
|
|
131
|
+
alias: ['proxy.jsonp', 'proxy.scripttag'],
|
|
132
|
+
requires: ['Ext.data.JsonP'],
|
|
133
|
+
|
|
134
|
+
defaultWriterType: 'base',
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* @cfg {String} callbackKey
|
|
138
|
+
* See {@link Ext.data.JsonP#callbackKey}.
|
|
139
|
+
*/
|
|
140
|
+
callbackKey : 'callback',
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* @cfg {String} recordParam
|
|
144
|
+
* The param name to use when passing records to the server (e.g. 'records=someEncodedRecordString'). Defaults to
|
|
145
|
+
* 'records'
|
|
146
|
+
*/
|
|
147
|
+
recordParam: 'records',
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* @cfg {Boolean} autoAppendParams
|
|
151
|
+
* True to automatically append the request's params to the generated url. Defaults to true
|
|
152
|
+
*/
|
|
153
|
+
autoAppendParams: true,
|
|
154
|
+
|
|
155
|
+
constructor: function(){
|
|
156
|
+
this.addEvents(
|
|
157
|
+
/**
|
|
158
|
+
* @event
|
|
159
|
+
* Fires when the server returns an exception
|
|
160
|
+
* @param {Ext.data.proxy.Proxy} this
|
|
161
|
+
* @param {Ext.data.Request} request The request that was sent
|
|
162
|
+
* @param {Ext.data.Operation} operation The operation that triggered the request
|
|
163
|
+
*/
|
|
164
|
+
'exception'
|
|
165
|
+
);
|
|
166
|
+
this.callParent(arguments);
|
|
167
|
+
},
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* @private
|
|
171
|
+
* Performs the read request to the remote domain. JsonP proxy does not actually create an Ajax request,
|
|
172
|
+
* instead we write out a <script> tag based on the configuration of the internal Ext.data.Request object
|
|
173
|
+
* @param {Ext.data.Operation} operation The {@link Ext.data.Operation Operation} object to execute
|
|
174
|
+
* @param {Function} callback A callback function to execute when the Operation has been completed
|
|
175
|
+
* @param {Object} scope The scope to execute the callback in
|
|
176
|
+
*/
|
|
177
|
+
doRequest: function(operation, callback, scope) {
|
|
178
|
+
//generate the unique IDs for this request
|
|
179
|
+
var me = this,
|
|
180
|
+
writer = me.getWriter(),
|
|
181
|
+
request = me.buildRequest(operation),
|
|
182
|
+
params = request.params;
|
|
183
|
+
|
|
184
|
+
if (operation.allowWrite()) {
|
|
185
|
+
request = writer.write(request);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// apply JsonP proxy-specific attributes to the Request
|
|
189
|
+
Ext.apply(request, {
|
|
190
|
+
callbackKey: me.callbackKey,
|
|
191
|
+
timeout: me.timeout,
|
|
192
|
+
scope: me,
|
|
193
|
+
disableCaching: false, // handled by the proxy
|
|
194
|
+
callback: me.createRequestCallback(request, operation, callback, scope)
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
// prevent doubling up
|
|
198
|
+
if (me.autoAppendParams) {
|
|
199
|
+
request.params = {};
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
request.jsonp = Ext.data.JsonP.request(request);
|
|
203
|
+
// restore on the request
|
|
204
|
+
request.params = params;
|
|
205
|
+
operation.setStarted();
|
|
206
|
+
me.lastRequest = request;
|
|
207
|
+
|
|
208
|
+
return request;
|
|
209
|
+
},
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* @private
|
|
213
|
+
* Creates and returns the function that is called when the request has completed. The returned function
|
|
214
|
+
* should accept a Response object, which contains the response to be read by the configured Reader.
|
|
215
|
+
* The third argument is the callback that should be called after the request has been completed and the Reader has decoded
|
|
216
|
+
* the response. This callback will typically be the callback passed by a store, e.g. in proxy.read(operation, theCallback, scope)
|
|
217
|
+
* theCallback refers to the callback argument received by this function.
|
|
218
|
+
* See {@link #doRequest} for details.
|
|
219
|
+
* @param {Ext.data.Request} request The Request object
|
|
220
|
+
* @param {Ext.data.Operation} operation The Operation being executed
|
|
221
|
+
* @param {Function} callback The callback function to be called when the request completes. This is usually the callback
|
|
222
|
+
* passed to doRequest
|
|
223
|
+
* @param {Object} scope The scope in which to execute the callback function
|
|
224
|
+
* @return {Function} The callback function
|
|
225
|
+
*/
|
|
226
|
+
createRequestCallback: function(request, operation, callback, scope) {
|
|
227
|
+
var me = this;
|
|
228
|
+
|
|
229
|
+
return function(success, response, errorType) {
|
|
230
|
+
delete me.lastRequest;
|
|
231
|
+
me.processResponse(success, operation, request, response, callback, scope);
|
|
232
|
+
};
|
|
233
|
+
},
|
|
234
|
+
|
|
235
|
+
// inherit docs
|
|
236
|
+
setException: function(operation, response) {
|
|
237
|
+
operation.setException(operation.request.jsonp.errorType);
|
|
238
|
+
},
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Generates a url based on a given Ext.data.Request object. Adds the params and callback function name to the url
|
|
243
|
+
* @param {Ext.data.Request} request The request object
|
|
244
|
+
* @return {String} The url
|
|
245
|
+
*/
|
|
246
|
+
buildUrl: function(request) {
|
|
247
|
+
var me = this,
|
|
248
|
+
url = me.callParent(arguments),
|
|
249
|
+
params = Ext.apply({}, request.params),
|
|
250
|
+
filters = params.filters,
|
|
251
|
+
records,
|
|
252
|
+
filter, i;
|
|
253
|
+
|
|
254
|
+
delete params.filters;
|
|
255
|
+
|
|
256
|
+
if (me.autoAppendParams) {
|
|
257
|
+
url = Ext.urlAppend(url, Ext.Object.toQueryString(params));
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (filters && filters.length) {
|
|
261
|
+
for (i = 0; i < filters.length; i++) {
|
|
262
|
+
filter = filters[i];
|
|
263
|
+
|
|
264
|
+
if (filter.value) {
|
|
265
|
+
url = Ext.urlAppend(url, filter.property + "=" + filter.value);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
//if there are any records present, append them to the url also
|
|
271
|
+
records = request.records;
|
|
272
|
+
|
|
273
|
+
if (Ext.isArray(records) && records.length > 0) {
|
|
274
|
+
url = Ext.urlAppend(url, Ext.String.format("{0}={1}", me.recordParam, me.encodeRecords(records)));
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
return url;
|
|
278
|
+
},
|
|
279
|
+
|
|
280
|
+
//inherit docs
|
|
281
|
+
destroy: function() {
|
|
282
|
+
this.abort();
|
|
283
|
+
this.callParent(arguments);
|
|
284
|
+
},
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Aborts the current server request if one is currently running
|
|
288
|
+
*/
|
|
289
|
+
abort: function() {
|
|
290
|
+
var lastRequest = this.lastRequest;
|
|
291
|
+
if (lastRequest) {
|
|
292
|
+
Ext.data.JsonP.abort(lastRequest.jsonp);
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Encodes an array of records into a string suitable to be appended to the script src url. This is broken out into
|
|
298
|
+
* its own function so that it can be easily overridden.
|
|
299
|
+
* @param {Ext.data.Model[]} records The records array
|
|
300
|
+
* @return {String} The encoded records string
|
|
301
|
+
*/
|
|
302
|
+
encodeRecords: function(records) {
|
|
303
|
+
var encoded = "",
|
|
304
|
+
i = 0,
|
|
305
|
+
len = records.length;
|
|
306
|
+
|
|
307
|
+
for (; i < len; i++) {
|
|
308
|
+
encoded += Ext.Object.toQueryString(records[i].getData());
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
return encoded;
|
|
312
|
+
}
|
|
313
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Ed Spencer
|
|
3
|
+
*
|
|
4
|
+
* The LocalStorageProxy uses the new HTML5 localStorage API to save {@link Ext.data.Model Model} data locally on the
|
|
5
|
+
* client browser. HTML5 localStorage is a key-value store (e.g. cannot save complex objects like JSON), so
|
|
6
|
+
* LocalStorageProxy automatically serializes and deserializes data when saving and retrieving it.
|
|
7
|
+
*
|
|
8
|
+
* localStorage is extremely useful for saving user-specific information without needing to build server-side
|
|
9
|
+
* infrastructure to support it. Let's imagine we're writing a Twitter search application and want to save the user's
|
|
10
|
+
* searches locally so they can easily perform a saved search again later. We'd start by creating a Search model:
|
|
11
|
+
*
|
|
12
|
+
* Ext.define('Search', {
|
|
13
|
+
* fields: ['id', 'query'],
|
|
14
|
+
* extend: 'Ext.data.Model',
|
|
15
|
+
* proxy: {
|
|
16
|
+
* type: 'localstorage',
|
|
17
|
+
* id : 'twitter-Searches'
|
|
18
|
+
* }
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* Our Search model contains just two fields - id and query - plus a Proxy definition. The only configuration we need to
|
|
22
|
+
* pass to the LocalStorage proxy is an {@link #id}. This is important as it separates the Model data in this Proxy from
|
|
23
|
+
* all others. The localStorage API puts all data into a single shared namespace, so by setting an id we enable
|
|
24
|
+
* LocalStorageProxy to manage the saved Search data.
|
|
25
|
+
*
|
|
26
|
+
* Saving our data into localStorage is easy and would usually be done with a {@link Ext.data.Store Store}:
|
|
27
|
+
*
|
|
28
|
+
* //our Store automatically picks up the LocalStorageProxy defined on the Search model
|
|
29
|
+
* var store = Ext.create('Ext.data.Store', {
|
|
30
|
+
* model: "Search"
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* //loads any existing Search data from localStorage
|
|
34
|
+
* store.load();
|
|
35
|
+
*
|
|
36
|
+
* //now add some Searches
|
|
37
|
+
* store.add({query: 'Sencha Touch'});
|
|
38
|
+
* store.add({query: 'Ext JS'});
|
|
39
|
+
*
|
|
40
|
+
* //finally, save our Search data to localStorage
|
|
41
|
+
* store.sync();
|
|
42
|
+
*
|
|
43
|
+
* The LocalStorageProxy automatically gives our new Searches an id when we call store.sync(). It encodes the Model data
|
|
44
|
+
* and places it into localStorage. We can also save directly to localStorage, bypassing the Store altogether:
|
|
45
|
+
*
|
|
46
|
+
* var search = Ext.create('Search', {query: 'Sencha Animator'});
|
|
47
|
+
*
|
|
48
|
+
* //uses the configured LocalStorageProxy to save the new Search to localStorage
|
|
49
|
+
* search.save();
|
|
50
|
+
*
|
|
51
|
+
* # Limitations
|
|
52
|
+
*
|
|
53
|
+
* If this proxy is used in a browser where local storage is not supported, the constructor will throw an error. A local
|
|
54
|
+
* storage proxy requires a unique ID which is used as a key in which all record data are stored in the local storage
|
|
55
|
+
* object.
|
|
56
|
+
*
|
|
57
|
+
* It's important to supply this unique ID as it cannot be reliably determined otherwise. If no id is provided but the
|
|
58
|
+
* attached store has a storeId, the storeId will be used. If neither option is presented the proxy will throw an error.
|
|
59
|
+
*/
|
|
60
|
+
Ext.define('Ext.data.proxy.LocalStorage', {
|
|
61
|
+
extend: 'Ext.data.proxy.WebStorage',
|
|
62
|
+
alias: 'proxy.localstorage',
|
|
63
|
+
alternateClassName: 'Ext.data.LocalStorageProxy',
|
|
64
|
+
|
|
65
|
+
//inherit docs
|
|
66
|
+
getStorageObject: function() {
|
|
67
|
+
return window.localStorage;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Ed Spencer
|
|
3
|
+
*
|
|
4
|
+
* In-memory proxy. This proxy simply uses a local variable for data storage/retrieval, so its contents are lost on
|
|
5
|
+
* every page refresh.
|
|
6
|
+
*
|
|
7
|
+
* Usually this Proxy isn't used directly, serving instead as a helper to a {@link Ext.data.Store Store} where a reader
|
|
8
|
+
* is required to load data. For example, say we have a Store for a User model and have some inline data we want to
|
|
9
|
+
* load, but this data isn't in quite the right format: we can use a MemoryProxy with a JsonReader to read it into our
|
|
10
|
+
* Store:
|
|
11
|
+
*
|
|
12
|
+
* //this is the model we will be using in the store
|
|
13
|
+
* Ext.define('User', {
|
|
14
|
+
* extend: 'Ext.data.Model',
|
|
15
|
+
* fields: [
|
|
16
|
+
* {name: 'id', type: 'int'},
|
|
17
|
+
* {name: 'name', type: 'string'},
|
|
18
|
+
* {name: 'phone', type: 'string', mapping: 'phoneNumber'}
|
|
19
|
+
* ]
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* //this data does not line up to our model fields - the phone field is called phoneNumber
|
|
23
|
+
* var data = {
|
|
24
|
+
* users: [
|
|
25
|
+
* {
|
|
26
|
+
* id: 1,
|
|
27
|
+
* name: 'Ed Spencer',
|
|
28
|
+
* phoneNumber: '555 1234'
|
|
29
|
+
* },
|
|
30
|
+
* {
|
|
31
|
+
* id: 2,
|
|
32
|
+
* name: 'Abe Elias',
|
|
33
|
+
* phoneNumber: '666 1234'
|
|
34
|
+
* }
|
|
35
|
+
* ]
|
|
36
|
+
* };
|
|
37
|
+
*
|
|
38
|
+
* //note how we set the 'root' in the reader to match the data structure above
|
|
39
|
+
* var store = Ext.create('Ext.data.Store', {
|
|
40
|
+
* autoLoad: true,
|
|
41
|
+
* model: 'User',
|
|
42
|
+
* data : data,
|
|
43
|
+
* proxy: {
|
|
44
|
+
* type: 'memory',
|
|
45
|
+
* reader: {
|
|
46
|
+
* type: 'json',
|
|
47
|
+
* root: 'users'
|
|
48
|
+
* }
|
|
49
|
+
* }
|
|
50
|
+
* });
|
|
51
|
+
*/
|
|
52
|
+
Ext.define('Ext.data.proxy.Memory', {
|
|
53
|
+
extend: 'Ext.data.proxy.Client',
|
|
54
|
+
alias: 'proxy.memory',
|
|
55
|
+
alternateClassName: 'Ext.data.MemoryProxy',
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @cfg {Object} data
|
|
59
|
+
* Optional data to pass to configured Reader.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
constructor: function(config) {
|
|
63
|
+
this.callParent([config]);
|
|
64
|
+
|
|
65
|
+
//ensures that the reader has been instantiated properly
|
|
66
|
+
this.setReader(this.reader);
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @private
|
|
71
|
+
* Fake processing function to commit the records, set the current operation
|
|
72
|
+
* to successful and call the callback if provided. This function is shared
|
|
73
|
+
* by the create, update and destroy methods to perform the bare minimum
|
|
74
|
+
* processing required for the proxy to register a result from the action.
|
|
75
|
+
*/
|
|
76
|
+
updateOperation: function(operation, callback, scope) {
|
|
77
|
+
var i = 0,
|
|
78
|
+
recs = operation.getRecords(),
|
|
79
|
+
len = recs.length;
|
|
80
|
+
|
|
81
|
+
for (i; i < len; i++) {
|
|
82
|
+
recs[i].commit();
|
|
83
|
+
}
|
|
84
|
+
operation.setCompleted();
|
|
85
|
+
operation.setSuccessful();
|
|
86
|
+
|
|
87
|
+
Ext.callback(callback, scope || this, [operation]);
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Currently this is a hard-coded method that simply commits any records and sets the operation to successful,
|
|
92
|
+
* then calls the callback function, if provided. It is essentially mocking a server call in memory, but since
|
|
93
|
+
* there is no real back end in this case there's not much else to do. This method can be easily overridden to
|
|
94
|
+
* implement more complex logic if needed.
|
|
95
|
+
* @param {Ext.data.Operation} operation The Operation to perform
|
|
96
|
+
* @param {Function} callback Callback function to be called when the Operation has completed (whether
|
|
97
|
+
* successful or not)
|
|
98
|
+
* @param {Object} scope Scope to execute the callback function in
|
|
99
|
+
* @method
|
|
100
|
+
*/
|
|
101
|
+
create: function() {
|
|
102
|
+
this.updateOperation.apply(this, arguments);
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Currently this is a hard-coded method that simply commits any records and sets the operation to successful,
|
|
107
|
+
* then calls the callback function, if provided. It is essentially mocking a server call in memory, but since
|
|
108
|
+
* there is no real back end in this case there's not much else to do. This method can be easily overridden to
|
|
109
|
+
* implement more complex logic if needed.
|
|
110
|
+
* @param {Ext.data.Operation} operation The Operation to perform
|
|
111
|
+
* @param {Function} callback Callback function to be called when the Operation has completed (whether
|
|
112
|
+
* successful or not)
|
|
113
|
+
* @param {Object} scope Scope to execute the callback function in
|
|
114
|
+
* @method
|
|
115
|
+
*/
|
|
116
|
+
update: function() {
|
|
117
|
+
this.updateOperation.apply(this, arguments);
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Currently this is a hard-coded method that simply commits any records and sets the operation to successful,
|
|
122
|
+
* then calls the callback function, if provided. It is essentially mocking a server call in memory, but since
|
|
123
|
+
* there is no real back end in this case there's not much else to do. This method can be easily overridden to
|
|
124
|
+
* implement more complex logic if needed.
|
|
125
|
+
* @param {Ext.data.Operation} operation The Operation to perform
|
|
126
|
+
* @param {Function} callback Callback function to be called when the Operation has completed (whether
|
|
127
|
+
* successful or not)
|
|
128
|
+
* @param {Object} scope Scope to execute the callback function in
|
|
129
|
+
* @method
|
|
130
|
+
*/
|
|
131
|
+
destroy: function() {
|
|
132
|
+
this.updateOperation.apply(this, arguments);
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Reads data from the configured {@link #data} object. Uses the Proxy's {@link #reader}, if present.
|
|
137
|
+
* @param {Ext.data.Operation} operation The read Operation
|
|
138
|
+
* @param {Function} callback The callback to call when reading has completed
|
|
139
|
+
* @param {Object} scope The scope to call the callback function in
|
|
140
|
+
*/
|
|
141
|
+
read: function(operation, callback, scope) {
|
|
142
|
+
var me = this,
|
|
143
|
+
reader = me.getReader(),
|
|
144
|
+
result = reader.read(me.data);
|
|
145
|
+
|
|
146
|
+
Ext.apply(operation, {
|
|
147
|
+
resultSet: result
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
operation.setCompleted();
|
|
151
|
+
operation.setSuccessful();
|
|
152
|
+
Ext.callback(callback, scope || me, [operation]);
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
clear: Ext.emptyFn
|
|
156
|
+
});
|