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,292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Ed Spencer
|
|
3
|
+
*
|
|
4
|
+
* The XML Reader is used by a Proxy to read a server response that is sent back in XML format. This usually happens as
|
|
5
|
+
* a result of loading a Store - for example we might create something like this:
|
|
6
|
+
*
|
|
7
|
+
* Ext.define('User', {
|
|
8
|
+
* extend: 'Ext.data.Model',
|
|
9
|
+
* fields: ['id', 'name', 'email']
|
|
10
|
+
* });
|
|
11
|
+
*
|
|
12
|
+
* var store = Ext.create('Ext.data.Store', {
|
|
13
|
+
* model: 'User',
|
|
14
|
+
* proxy: {
|
|
15
|
+
* type: 'ajax',
|
|
16
|
+
* url : 'users.xml',
|
|
17
|
+
* reader: {
|
|
18
|
+
* type: 'xml',
|
|
19
|
+
* record: 'user',
|
|
20
|
+
* root: 'users'
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* The example above creates a 'User' model. Models are explained in the {@link Ext.data.Model Model} docs if you're not
|
|
26
|
+
* already familiar with them.
|
|
27
|
+
*
|
|
28
|
+
* We created the simplest type of XML Reader possible by simply telling our {@link Ext.data.Store Store}'s {@link
|
|
29
|
+
* Ext.data.proxy.Proxy Proxy} that we want a XML Reader. The Store automatically passes the configured model to the
|
|
30
|
+
* Store, so it is as if we passed this instead:
|
|
31
|
+
*
|
|
32
|
+
* reader: {
|
|
33
|
+
* type : 'xml',
|
|
34
|
+
* model: 'User',
|
|
35
|
+
* record: 'user',
|
|
36
|
+
* root: 'users'
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* The reader we set up is ready to read data from our server - at the moment it will accept a response like this:
|
|
40
|
+
*
|
|
41
|
+
* <?xml version="1.0" encoding="UTF-8"?>
|
|
42
|
+
* <users>
|
|
43
|
+
* <user>
|
|
44
|
+
* <id>1</id>
|
|
45
|
+
* <name>Ed Spencer</name>
|
|
46
|
+
* <email>ed@sencha.com</email>
|
|
47
|
+
* </user>
|
|
48
|
+
* <user>
|
|
49
|
+
* <id>2</id>
|
|
50
|
+
* <name>Abe Elias</name>
|
|
51
|
+
* <email>abe@sencha.com</email>
|
|
52
|
+
* </user>
|
|
53
|
+
* </users>
|
|
54
|
+
*
|
|
55
|
+
* First off there's {@link #root} option to define the root node `<users>` (there should be only one in a well-formed
|
|
56
|
+
* XML document). Then the XML Reader uses the configured {@link #record} option to pull out the data for each record -
|
|
57
|
+
* in this case we set record to 'user', so each `<user>` above will be converted into a User model.
|
|
58
|
+
*
|
|
59
|
+
* Note that XmlReader doesn't care whether your {@link #root} and {@link #record} elements are nested deep inside a
|
|
60
|
+
* larger structure, so a response like this will still work:
|
|
61
|
+
*
|
|
62
|
+
* <?xml version="1.0" encoding="UTF-8"?>
|
|
63
|
+
* <deeply>
|
|
64
|
+
* <nested>
|
|
65
|
+
* <xml>
|
|
66
|
+
* <users>
|
|
67
|
+
* <user>
|
|
68
|
+
* <id>1</id>
|
|
69
|
+
* <name>Ed Spencer</name>
|
|
70
|
+
* <email>ed@sencha.com</email>
|
|
71
|
+
* </user>
|
|
72
|
+
* <user>
|
|
73
|
+
* <id>2</id>
|
|
74
|
+
* <name>Abe Elias</name>
|
|
75
|
+
* <email>abe@sencha.com</email>
|
|
76
|
+
* </user>
|
|
77
|
+
* </users>
|
|
78
|
+
* </xml>
|
|
79
|
+
* </nested>
|
|
80
|
+
* </deeply>
|
|
81
|
+
*
|
|
82
|
+
* # Response metadata
|
|
83
|
+
*
|
|
84
|
+
* The server can return additional data in its response, such as the {@link #totalProperty total number of records} and
|
|
85
|
+
* the {@link #successProperty success status of the response}. These are typically included in the XML response like
|
|
86
|
+
* this:
|
|
87
|
+
*
|
|
88
|
+
* <?xml version="1.0" encoding="UTF-8"?>
|
|
89
|
+
* <users>
|
|
90
|
+
* <total>100</total>
|
|
91
|
+
* <success>true</success>
|
|
92
|
+
* <user>
|
|
93
|
+
* <id>1</id>
|
|
94
|
+
* <name>Ed Spencer</name>
|
|
95
|
+
* <email>ed@sencha.com</email>
|
|
96
|
+
* </user>
|
|
97
|
+
* <user>
|
|
98
|
+
* <id>2</id>
|
|
99
|
+
* <name>Abe Elias</name>
|
|
100
|
+
* <email>abe@sencha.com</email>
|
|
101
|
+
* </user>
|
|
102
|
+
* </users>
|
|
103
|
+
*
|
|
104
|
+
* If these properties are present in the XML response they can be parsed out by the XmlReader and used by the Store
|
|
105
|
+
* that loaded it. We can set up the names of these properties by specifying a final pair of configuration options:
|
|
106
|
+
*
|
|
107
|
+
* reader: {
|
|
108
|
+
* type: 'xml',
|
|
109
|
+
* root: 'users',
|
|
110
|
+
* totalProperty : 'total',
|
|
111
|
+
* successProperty: 'success'
|
|
112
|
+
* }
|
|
113
|
+
*
|
|
114
|
+
* These final options are not necessary to make the Reader work, but can be useful when the server needs to report an
|
|
115
|
+
* error or if it needs to indicate that there is a lot of data available of which only a subset is currently being
|
|
116
|
+
* returned.
|
|
117
|
+
*
|
|
118
|
+
* # Response format
|
|
119
|
+
*
|
|
120
|
+
* **Note:** in order for the browser to parse a returned XML document, the Content-Type header in the HTTP response
|
|
121
|
+
* must be set to "text/xml" or "application/xml". This is very important - the XmlReader will not work correctly
|
|
122
|
+
* otherwise.
|
|
123
|
+
*/
|
|
124
|
+
Ext.define('Ext.data.reader.Xml', {
|
|
125
|
+
extend: 'Ext.data.reader.Reader',
|
|
126
|
+
alternateClassName: 'Ext.data.XmlReader',
|
|
127
|
+
alias : 'reader.xml',
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* @cfg {String} record (required)
|
|
131
|
+
* The DomQuery path to the repeated element which contains record information.
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @private
|
|
136
|
+
* Creates a function to return some particular key of data from a response. The totalProperty and
|
|
137
|
+
* successProperty are treated as special cases for type casting, everything else is just a simple selector.
|
|
138
|
+
* @param {String} key
|
|
139
|
+
* @return {Function}
|
|
140
|
+
*/
|
|
141
|
+
createAccessor: function(expr) {
|
|
142
|
+
var me = this;
|
|
143
|
+
|
|
144
|
+
if (Ext.isEmpty(expr)) {
|
|
145
|
+
return Ext.emptyFn;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (Ext.isFunction(expr)) {
|
|
149
|
+
return expr;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return function(root) {
|
|
153
|
+
return me.getNodeValue(Ext.DomQuery.selectNode(expr, root));
|
|
154
|
+
};
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
getNodeValue: function(node) {
|
|
158
|
+
if (node && node.firstChild) {
|
|
159
|
+
return node.firstChild.nodeValue;
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
162
|
+
},
|
|
163
|
+
|
|
164
|
+
//inherit docs
|
|
165
|
+
getResponseData: function(response) {
|
|
166
|
+
var xml = response.responseXML,
|
|
167
|
+
error,
|
|
168
|
+
msg;
|
|
169
|
+
|
|
170
|
+
if (!xml) {
|
|
171
|
+
msg = 'XML data not found in the response';
|
|
172
|
+
|
|
173
|
+
error = new Ext.data.ResultSet({
|
|
174
|
+
total : 0,
|
|
175
|
+
count : 0,
|
|
176
|
+
records: [],
|
|
177
|
+
success: false,
|
|
178
|
+
message: msg
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
this.fireEvent('exception', this, response, error);
|
|
182
|
+
|
|
183
|
+
Ext.Logger.warn(msg);
|
|
184
|
+
|
|
185
|
+
return error;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return this.readRecords(xml);
|
|
189
|
+
},
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Normalizes the data object.
|
|
193
|
+
* @param {Object} data The raw data object
|
|
194
|
+
* @return {Object} The documentElement property of the data object if present, or the same object if not.
|
|
195
|
+
*/
|
|
196
|
+
getData: function(data) {
|
|
197
|
+
return data.documentElement || data;
|
|
198
|
+
},
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* @private
|
|
202
|
+
* Given an XML object, returns the Element that represents the root as configured by the Reader's meta data.
|
|
203
|
+
* @param {Object} data The XML data object
|
|
204
|
+
* @return {XMLElement} The root node element
|
|
205
|
+
*/
|
|
206
|
+
getRoot: function(data) {
|
|
207
|
+
var nodeName = data.nodeName,
|
|
208
|
+
root = this.root;
|
|
209
|
+
|
|
210
|
+
if (!root || (nodeName && nodeName == root)) {
|
|
211
|
+
return data;
|
|
212
|
+
} else if (Ext.DomQuery.isXml(data)) {
|
|
213
|
+
// This fix ensures we have XML data
|
|
214
|
+
// Related to TreeStore calling getRoot with the root node, which isn't XML
|
|
215
|
+
// Probably should be resolved in TreeStore at some point
|
|
216
|
+
return Ext.DomQuery.selectNode(root, data);
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* @private
|
|
222
|
+
* We're just preparing the data for the superclass by pulling out the record nodes we want.
|
|
223
|
+
* @param {XMLElement} root The XML root node
|
|
224
|
+
* @return {Ext.data.Model[]} The records
|
|
225
|
+
*/
|
|
226
|
+
extractData: function(root) {
|
|
227
|
+
var recordName = this.record;
|
|
228
|
+
|
|
229
|
+
//<debug>
|
|
230
|
+
if (!recordName) {
|
|
231
|
+
Ext.Error.raise('Record is a required parameter');
|
|
232
|
+
}
|
|
233
|
+
//</debug>
|
|
234
|
+
|
|
235
|
+
if (recordName != root.nodeName) {
|
|
236
|
+
root = Ext.DomQuery.select(recordName, root);
|
|
237
|
+
} else {
|
|
238
|
+
root = [root];
|
|
239
|
+
}
|
|
240
|
+
return this.callParent([root]);
|
|
241
|
+
},
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* @private
|
|
245
|
+
* See Ext.data.reader.Reader's getAssociatedDataRoot docs.
|
|
246
|
+
* @param {Object} data The raw data object
|
|
247
|
+
* @param {String} associationName The name of the association to get data for (uses associationKey if present)
|
|
248
|
+
* @return {XMLElement} The root
|
|
249
|
+
*/
|
|
250
|
+
getAssociatedDataRoot: function(data, associationName) {
|
|
251
|
+
return Ext.DomQuery.select(associationName, data)[0];
|
|
252
|
+
},
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Parses an XML document and returns a ResultSet containing the model instances.
|
|
256
|
+
* @param {Object} doc Parsed XML document
|
|
257
|
+
* @return {Ext.data.ResultSet} The parsed result set
|
|
258
|
+
*/
|
|
259
|
+
readRecords: function(doc) {
|
|
260
|
+
// it's possible that we get passed an array here by associations.
|
|
261
|
+
// Make sure we strip that out (see Ext.data.reader.Reader#readAssociated)
|
|
262
|
+
if (Ext.isArray(doc)) {
|
|
263
|
+
doc = doc[0];
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* @property {Object} xmlData
|
|
268
|
+
* Copy of {@link #rawData}.
|
|
269
|
+
* @deprecated Will be removed in Ext JS 5.0. Use {@link #rawData} instead.
|
|
270
|
+
*/
|
|
271
|
+
this.xmlData = doc;
|
|
272
|
+
return this.callParent([doc]);
|
|
273
|
+
},
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* @private
|
|
277
|
+
* Returns an accessor expression for the passed Field from an XML element using either the Field's mapping, or
|
|
278
|
+
* its ordinal position in the fields collsction as the index.
|
|
279
|
+
* This is used by buildExtractors to create optimized on extractor function which converts raw data into model instances.
|
|
280
|
+
*/
|
|
281
|
+
createFieldAccessExpression: function(field, fieldVarName, dataName) {
|
|
282
|
+
var selector = field.mapping || field.name,
|
|
283
|
+
result;
|
|
284
|
+
|
|
285
|
+
if (typeof selector === 'function') {
|
|
286
|
+
result = fieldVarName + '.mapping(' + dataName + ', this)';
|
|
287
|
+
} else {
|
|
288
|
+
result = 'me.getNodeValue(Ext.DomQuery.selectNode("' + selector + '", ' + dataName + '))';
|
|
289
|
+
}
|
|
290
|
+
return result;
|
|
291
|
+
}
|
|
292
|
+
});
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Ed Spencer
|
|
3
|
+
*
|
|
4
|
+
* This singleton contains a set of validation functions that can be used to validate any type of data. They are most
|
|
5
|
+
* often used in {@link Ext.data.Model Models}, where they are automatically set up and executed.
|
|
6
|
+
*/
|
|
7
|
+
Ext.define('Ext.data.validations', {
|
|
8
|
+
singleton: true,
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @property {String} presenceMessage
|
|
12
|
+
* The default error message used when a presence validation fails.
|
|
13
|
+
*/
|
|
14
|
+
presenceMessage: 'must be present',
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @property {String} lengthMessage
|
|
18
|
+
* The default error message used when a length validation fails.
|
|
19
|
+
*/
|
|
20
|
+
lengthMessage: 'is the wrong length',
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @property {Boolean} formatMessage
|
|
24
|
+
* The default error message used when a format validation fails.
|
|
25
|
+
*/
|
|
26
|
+
formatMessage: 'is the wrong format',
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @property {String} inclusionMessage
|
|
30
|
+
* The default error message used when an inclusion validation fails.
|
|
31
|
+
*/
|
|
32
|
+
inclusionMessage: 'is not included in the list of acceptable values',
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @property {String} exclusionMessage
|
|
36
|
+
* The default error message used when an exclusion validation fails.
|
|
37
|
+
*/
|
|
38
|
+
exclusionMessage: 'is not an acceptable value',
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @property {String} emailMessage
|
|
42
|
+
* The default error message used when an email validation fails
|
|
43
|
+
*/
|
|
44
|
+
emailMessage: 'is not a valid email address',
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @property {RegExp} emailRe
|
|
48
|
+
* The regular expression used to validate email addresses
|
|
49
|
+
*/
|
|
50
|
+
emailRe: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Validates that the given value is present.
|
|
54
|
+
* For example:
|
|
55
|
+
*
|
|
56
|
+
* validations: [{type: 'presence', field: 'age'}]
|
|
57
|
+
*
|
|
58
|
+
* @param {Object} config Config object
|
|
59
|
+
* @param {Object} value The value to validate
|
|
60
|
+
* @return {Boolean} True if validation passed
|
|
61
|
+
*/
|
|
62
|
+
presence: function(config, value) {
|
|
63
|
+
// No configs read, so allow just value to be passed
|
|
64
|
+
if (arguments.length === 1) {
|
|
65
|
+
value = config;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
//we need an additional check for zero here because zero is an acceptable form of present data
|
|
69
|
+
return !!value || value === 0;
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Returns true if the given value is between the configured min and max values.
|
|
74
|
+
* For example:
|
|
75
|
+
*
|
|
76
|
+
* validations: [{type: 'length', field: 'name', min: 2}]
|
|
77
|
+
*
|
|
78
|
+
* @param {Object} config Config object
|
|
79
|
+
* @param {String} value The value to validate
|
|
80
|
+
* @return {Boolean} True if the value passes validation
|
|
81
|
+
*/
|
|
82
|
+
length: function(config, value) {
|
|
83
|
+
if (value === undefined || value === null) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
var length = value.length,
|
|
88
|
+
min = config.min,
|
|
89
|
+
max = config.max;
|
|
90
|
+
|
|
91
|
+
if ((min && length < min) || (max && length > max)) {
|
|
92
|
+
return false;
|
|
93
|
+
} else {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Validates that an email string is in the correct format
|
|
100
|
+
* @param {Object} config Config object
|
|
101
|
+
* @param {String} email The email address
|
|
102
|
+
* @return {Boolean} True if the value passes validation
|
|
103
|
+
*/
|
|
104
|
+
email: function(config, email) {
|
|
105
|
+
return Ext.data.validations.emailRe.test(email);
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Returns true if the given value passes validation against the configured `matcher` regex.
|
|
110
|
+
* For example:
|
|
111
|
+
*
|
|
112
|
+
* validations: [{type: 'format', field: 'username', matcher: /([a-z]+)[0-9]{2,3}/}]
|
|
113
|
+
*
|
|
114
|
+
* @param {Object} config Config object
|
|
115
|
+
* @param {String} value The value to validate
|
|
116
|
+
* @return {Boolean} True if the value passes the format validation
|
|
117
|
+
*/
|
|
118
|
+
format: function(config, value) {
|
|
119
|
+
return !!(config.matcher && config.matcher.test(value));
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Validates that the given value is present in the configured `list`.
|
|
124
|
+
* For example:
|
|
125
|
+
*
|
|
126
|
+
* validations: [{type: 'inclusion', field: 'gender', list: ['Male', 'Female']}]
|
|
127
|
+
*
|
|
128
|
+
* @param {Object} config Config object
|
|
129
|
+
* @param {String} value The value to validate
|
|
130
|
+
* @return {Boolean} True if the value is present in the list
|
|
131
|
+
*/
|
|
132
|
+
inclusion: function(config, value) {
|
|
133
|
+
return config.list && Ext.Array.indexOf(config.list,value) != -1;
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Validates that the given value is present in the configured `list`.
|
|
138
|
+
* For example:
|
|
139
|
+
*
|
|
140
|
+
* validations: [{type: 'exclusion', field: 'username', list: ['Admin', 'Operator']}]
|
|
141
|
+
*
|
|
142
|
+
* @param {Object} config Config object
|
|
143
|
+
* @param {String} value The value to validate
|
|
144
|
+
* @return {Boolean} True if the value is not present in the list
|
|
145
|
+
*/
|
|
146
|
+
exclusion: function(config, value) {
|
|
147
|
+
return config.list && Ext.Array.indexOf(config.list,value) == -1;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class Ext.data.writer.Json
|
|
3
|
+
|
|
4
|
+
This class is used to write {@link Ext.data.Model} data to the server in a JSON format.
|
|
5
|
+
The {@link #allowSingle} configuration can be set to false to force the records to always be
|
|
6
|
+
encoded in an array, even if there is only a single record being sent.
|
|
7
|
+
|
|
8
|
+
* @markdown
|
|
9
|
+
*/
|
|
10
|
+
Ext.define('Ext.data.writer.Json', {
|
|
11
|
+
extend: 'Ext.data.writer.Writer',
|
|
12
|
+
alternateClassName: 'Ext.data.JsonWriter',
|
|
13
|
+
alias: 'writer.json',
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @cfg {String} root The key under which the records in this Writer will be placed. Defaults to <tt>undefined</tt>.
|
|
17
|
+
* Example generated request, using root: 'records':
|
|
18
|
+
<pre><code>
|
|
19
|
+
{'records': [{name: 'my record'}, {name: 'another record'}]}
|
|
20
|
+
</code></pre>
|
|
21
|
+
*/
|
|
22
|
+
root: undefined,
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @cfg {Boolean} encode True to use Ext.encode() on the data before sending. Defaults to <tt>false</tt>.
|
|
26
|
+
* The encode option should only be set to true when a {@link #root} is defined, because the values will be
|
|
27
|
+
* sent as part of the request parameters as opposed to a raw post. The root will be the name of the parameter
|
|
28
|
+
* sent to the server.
|
|
29
|
+
*/
|
|
30
|
+
encode: false,
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @cfg {Boolean} allowSingle False to ensure that records are always wrapped in an array, even if there is only
|
|
34
|
+
* one record being sent. When there is more than one record, they will always be encoded into an array.
|
|
35
|
+
* Defaults to <tt>true</tt>. Example:
|
|
36
|
+
* <pre><code>
|
|
37
|
+
// with allowSingle: true
|
|
38
|
+
"root": {
|
|
39
|
+
"first": "Mark",
|
|
40
|
+
"last": "Corrigan"
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// with allowSingle: false
|
|
44
|
+
"root": [{
|
|
45
|
+
"first": "Mark",
|
|
46
|
+
"last": "Corrigan"
|
|
47
|
+
}]
|
|
48
|
+
* </code></pre>
|
|
49
|
+
*/
|
|
50
|
+
allowSingle: true,
|
|
51
|
+
|
|
52
|
+
//inherit docs
|
|
53
|
+
writeRecords: function(request, data) {
|
|
54
|
+
var root = this.root;
|
|
55
|
+
|
|
56
|
+
if (this.allowSingle && data.length == 1) {
|
|
57
|
+
// convert to single object format
|
|
58
|
+
data = data[0];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (this.encode) {
|
|
62
|
+
if (root) {
|
|
63
|
+
// sending as a param, need to encode
|
|
64
|
+
request.params[root] = Ext.encode(data);
|
|
65
|
+
} else {
|
|
66
|
+
//<debug>
|
|
67
|
+
Ext.Error.raise('Must specify a root when using encode');
|
|
68
|
+
//</debug>
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
// send as jsonData
|
|
72
|
+
request.jsonData = request.jsonData || {};
|
|
73
|
+
if (root) {
|
|
74
|
+
request.jsonData[root] = data;
|
|
75
|
+
} else {
|
|
76
|
+
request.jsonData = data;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return request;
|
|
80
|
+
}
|
|
81
|
+
});
|