gridx-rails 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/LICENSE +2 -0
- data/README.md +18 -0
- data/Rakefile +36 -0
- data/app/assets/images/gridx/mobile/themes/iphone/images/ajax-loader.gif +0 -0
- data/app/assets/images/gridx/mobile/themes/iphone/images/arrow.png +0 -0
- data/app/assets/images/gridx/resources/images/checkboxpartial.png +0 -0
- data/app/assets/images/gridx/resources/images/checkboxpartialdisabled.png +0 -0
- data/app/assets/images/gridx/resources/images/claro-grid-header-onepixel.bmp +0 -0
- data/app/assets/images/gridx/resources/images/dndCopy.png +0 -0
- data/app/assets/images/gridx/resources/images/dndMove.png +0 -0
- data/app/assets/images/gridx/resources/images/dndNoCopy.png +0 -0
- data/app/assets/images/gridx/resources/images/dndNoMove.png +0 -0
- data/app/assets/images/gridx/resources/images/gridxCellChanged.png +0 -0
- data/app/assets/images/gridx/resources/images/header.png +0 -0
- data/app/assets/images/gridx/resources/images/header_shadow.png +0 -0
- data/app/assets/images/gridx/resources/images/loadingAnimation.gif +0 -0
- data/app/assets/images/gridx/resources/images/row_back.png +0 -0
- data/app/assets/images/gridx/resources/images/row_back_changed.png +0 -0
- data/app/assets/images/gridx/resources/images/sprite_icons.png +0 -0
- data/app/assets/images/gridx/resources/images/treeExpandImages.png +0 -0
- data/app/assets/images/gridx/resources/images/treeExpand_loading.gif +0 -0
- data/app/assets/javascripts/gridx/Grid.js +224 -0
- data/app/assets/javascripts/gridx/GridCommon.js +52 -0
- data/app/assets/javascripts/gridx/allModules.js +105 -0
- data/app/assets/javascripts/gridx/core/Cell.js +86 -0
- data/app/assets/javascripts/gridx/core/Column.js +183 -0
- data/app/assets/javascripts/gridx/core/Core.js +447 -0
- data/app/assets/javascripts/gridx/core/Row.js +174 -0
- data/app/assets/javascripts/gridx/core/_Module.js +285 -0
- data/app/assets/javascripts/gridx/core/model/Model.js +495 -0
- data/app/assets/javascripts/gridx/core/model/_Extension.js +84 -0
- data/app/assets/javascripts/gridx/core/model/cache/Async.js +469 -0
- data/app/assets/javascripts/gridx/core/model/cache/Sync.js +59 -0
- data/app/assets/javascripts/gridx/core/model/cache/_Cache.js +386 -0
- data/app/assets/javascripts/gridx/core/model/extensions/ClientFilter.js +303 -0
- data/app/assets/javascripts/gridx/core/model/extensions/FormatSort.js +103 -0
- data/app/assets/javascripts/gridx/core/model/extensions/Mark.js +370 -0
- data/app/assets/javascripts/gridx/core/model/extensions/Modify.js +418 -0
- data/app/assets/javascripts/gridx/core/model/extensions/Move.js +429 -0
- data/app/assets/javascripts/gridx/core/model/extensions/Query.js +50 -0
- data/app/assets/javascripts/gridx/core/model/extensions/Sort.js +81 -0
- data/app/assets/javascripts/gridx/core/util.js +13 -0
- data/app/assets/javascripts/gridx/mobile/Grid.js +300 -0
- data/app/assets/javascripts/gridx/mobile/LazyLoad.js +88 -0
- data/app/assets/javascripts/gridx/mobile/PullRefresh.js +117 -0
- data/app/assets/javascripts/gridx/mobile/Sort.js +66 -0
- data/app/assets/javascripts/gridx/mobile/nls/LazyLoad.js +38 -0
- data/app/assets/javascripts/gridx/mobile/nls/PullRefresh.js +39 -0
- data/app/assets/javascripts/gridx/mobile/nls/ar/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/ar/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/ar/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/bg/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/bg/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/bg/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/ca/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/ca/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/ca/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/common.js +37 -0
- data/app/assets/javascripts/gridx/mobile/nls/cs/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/cs/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/cs/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/da/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/da/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/da/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/de/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/de/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/de/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/el/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/el/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/el/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/es/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/es/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/es/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/fi/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/fi/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/fi/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/fr/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/fr/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/fr/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/he/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/he/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/he/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/hr/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/hr/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/hr/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/hu/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/hu/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/hu/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/it/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/it/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/it/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/ja/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/ja/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/ja/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/kk/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/kk/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/kk/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/ko/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/ko/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/ko/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/nb/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/nb/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/nb/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/nl/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/nl/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/nl/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/pl/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/pl/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/pl/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/pt/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/pt/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/pt/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/pt-pt/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/pt-pt/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/pt-pt/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/ro/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/ro/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/ro/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/ru/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/ru/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/ru/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/sk/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/sk/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/sk/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/sl/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/sl/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/sl/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/sv/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/sv/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/sv/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/th/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/th/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/th/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/tr/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/tr/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/tr/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/uk/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/uk/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/uk/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/zh/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/zh/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/zh/common.js +5 -0
- data/app/assets/javascripts/gridx/mobile/nls/zh-tw/LazyLoad.js +6 -0
- data/app/assets/javascripts/gridx/mobile/nls/zh-tw/PullRefresh.js +7 -0
- data/app/assets/javascripts/gridx/mobile/nls/zh-tw/common.js +5 -0
- data/app/assets/javascripts/gridx/modules/AutoScroll.js +100 -0
- data/app/assets/javascripts/gridx/modules/Bar.js +322 -0
- data/app/assets/javascripts/gridx/modules/Body.js +1059 -0
- data/app/assets/javascripts/gridx/modules/CellWidget.js +538 -0
- data/app/assets/javascripts/gridx/modules/ColumnLock.js +254 -0
- data/app/assets/javascripts/gridx/modules/ColumnResizer.js +278 -0
- data/app/assets/javascripts/gridx/modules/ColumnWidth.js +320 -0
- data/app/assets/javascripts/gridx/modules/Dod.js +368 -0
- data/app/assets/javascripts/gridx/modules/Edit.js +1024 -0
- data/app/assets/javascripts/gridx/modules/Filter.js +482 -0
- data/app/assets/javascripts/gridx/modules/Focus.js +439 -0
- data/app/assets/javascripts/gridx/modules/GroupHeader.js +437 -0
- data/app/assets/javascripts/gridx/modules/HLayout.js +139 -0
- data/app/assets/javascripts/gridx/modules/HScroller.js +172 -0
- data/app/assets/javascripts/gridx/modules/Header.js +289 -0
- data/app/assets/javascripts/gridx/modules/HeaderMenu.js +63 -0
- data/app/assets/javascripts/gridx/modules/HeaderRegions.js +201 -0
- data/app/assets/javascripts/gridx/modules/HiddenColumns.js +274 -0
- data/app/assets/javascripts/gridx/modules/IndirectSelect.js +287 -0
- data/app/assets/javascripts/gridx/modules/IndirectSelectColumn.js +277 -0
- data/app/assets/javascripts/gridx/modules/Menu.js +167 -0
- data/app/assets/javascripts/gridx/modules/NavigableCell.js +170 -0
- data/app/assets/javascripts/gridx/modules/NestedSort.js +280 -0
- data/app/assets/javascripts/gridx/modules/PagedBody.js +409 -0
- data/app/assets/javascripts/gridx/modules/Pagination.js +293 -0
- data/app/assets/javascripts/gridx/modules/Persist.js +266 -0
- data/app/assets/javascripts/gridx/modules/Printer.js +49 -0
- data/app/assets/javascripts/gridx/modules/RowHeader.js +412 -0
- data/app/assets/javascripts/gridx/modules/RowLock.js +143 -0
- data/app/assets/javascripts/gridx/modules/SingleSort.js +276 -0
- data/app/assets/javascripts/gridx/modules/SummaryBar.js +33 -0
- data/app/assets/javascripts/gridx/modules/TitleBar.js +51 -0
- data/app/assets/javascripts/gridx/modules/ToolBar.js +55 -0
- data/app/assets/javascripts/gridx/modules/TouchScroll.js +103 -0
- data/app/assets/javascripts/gridx/modules/TouchVScroller.js +89 -0
- data/app/assets/javascripts/gridx/modules/Traverse.js +159 -0
- data/app/assets/javascripts/gridx/modules/Tree.js +646 -0
- data/app/assets/javascripts/gridx/modules/VLayout.js +152 -0
- data/app/assets/javascripts/gridx/modules/VScroller.js +342 -0
- data/app/assets/javascripts/gridx/modules/View.js +540 -0
- data/app/assets/javascripts/gridx/modules/VirtualVScroller.js +445 -0
- data/app/assets/javascripts/gridx/modules/barPlugins/DropDownPager.js +16 -0
- data/app/assets/javascripts/gridx/modules/barPlugins/DropDownSizer.js +16 -0
- data/app/assets/javascripts/gridx/modules/barPlugins/GotoPageButton.js +16 -0
- data/app/assets/javascripts/gridx/modules/barPlugins/LinkPager.js +16 -0
- data/app/assets/javascripts/gridx/modules/barPlugins/LinkSizer.js +16 -0
- data/app/assets/javascripts/gridx/modules/barPlugins/Summary.js +16 -0
- data/app/assets/javascripts/gridx/modules/dnd/Avatar.js +45 -0
- data/app/assets/javascripts/gridx/modules/dnd/Column.js +210 -0
- data/app/assets/javascripts/gridx/modules/dnd/Row.js +286 -0
- data/app/assets/javascripts/gridx/modules/dnd/_Base.js +60 -0
- data/app/assets/javascripts/gridx/modules/dnd/_Dnd.js +371 -0
- data/app/assets/javascripts/gridx/modules/exporter/CSV.js +43 -0
- data/app/assets/javascripts/gridx/modules/exporter/Exporter.js +34 -0
- data/app/assets/javascripts/gridx/modules/exporter/Table.js +42 -0
- data/app/assets/javascripts/gridx/modules/extendedSelect/Cell.js +491 -0
- data/app/assets/javascripts/gridx/modules/extendedSelect/Column.js +290 -0
- data/app/assets/javascripts/gridx/modules/extendedSelect/Row.js +458 -0
- data/app/assets/javascripts/gridx/modules/extendedSelect/_Base.js +244 -0
- data/app/assets/javascripts/gridx/modules/extendedSelect/_RowCellBase.js +35 -0
- data/app/assets/javascripts/gridx/modules/filter/DistinctComboBoxMenu.js +22 -0
- data/app/assets/javascripts/gridx/modules/filter/Filter.js +16 -0
- data/app/assets/javascripts/gridx/modules/filter/FilterBar.js +649 -0
- data/app/assets/javascripts/gridx/modules/filter/FilterConfirmDialog.js +33 -0
- data/app/assets/javascripts/gridx/modules/filter/FilterDialog.js +179 -0
- data/app/assets/javascripts/gridx/modules/filter/FilterPane.js +340 -0
- data/app/assets/javascripts/gridx/modules/filter/FilterTooltip.js +103 -0
- data/app/assets/javascripts/gridx/modules/filter/QuickFilter.js +33 -0
- data/app/assets/javascripts/gridx/modules/move/Column.js +223 -0
- data/app/assets/javascripts/gridx/modules/move/Row.js +154 -0
- data/app/assets/javascripts/gridx/modules/pagination/Pagination.js +16 -0
- data/app/assets/javascripts/gridx/modules/pagination/PaginationBar.js +68 -0
- data/app/assets/javascripts/gridx/modules/pagination/PaginationBarDD.js +40 -0
- data/app/assets/javascripts/gridx/modules/pagination/_PaginationBarBase.js +105 -0
- data/app/assets/javascripts/gridx/modules/select/Cell.js +229 -0
- data/app/assets/javascripts/gridx/modules/select/Column.js +209 -0
- data/app/assets/javascripts/gridx/modules/select/Row.js +302 -0
- data/app/assets/javascripts/gridx/modules/select/_Base.js +99 -0
- data/app/assets/javascripts/gridx/modules/select/_RowCellBase.js +51 -0
- data/app/assets/javascripts/gridx/nls/Body.js +47 -0
- data/app/assets/javascripts/gridx/nls/FilterBar.js +133 -0
- data/app/assets/javascripts/gridx/nls/NestedSort.js +45 -0
- data/app/assets/javascripts/gridx/nls/PaginationBar.js +68 -0
- data/app/assets/javascripts/gridx/nls/QuickFilter.js +40 -0
- data/app/assets/javascripts/gridx/nls/SummaryBar.js +38 -0
- data/app/assets/javascripts/gridx/nls/ar/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/ar/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/ar/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/ar/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/ar/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/ar/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/bg/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/bg/FilterBar.js +88 -0
- data/app/assets/javascripts/gridx/nls/bg/NestedSort.js +12 -0
- data/app/assets/javascripts/gridx/nls/bg/PaginationBar.js +28 -0
- data/app/assets/javascripts/gridx/nls/bg/QuickFilter.js +8 -0
- data/app/assets/javascripts/gridx/nls/bg/SummaryBar.js +6 -0
- data/app/assets/javascripts/gridx/nls/ca/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/ca/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/ca/NestedSort.js +13 -0
- data/app/assets/javascripts/gridx/nls/ca/PaginationBar.js +30 -0
- data/app/assets/javascripts/gridx/nls/ca/QuickFilter.js +9 -0
- data/app/assets/javascripts/gridx/nls/ca/SummaryBar.js +7 -0
- data/app/assets/javascripts/gridx/nls/cs/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/cs/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/cs/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/cs/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/cs/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/cs/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/da/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/da/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/da/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/da/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/da/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/da/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/de/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/de/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/de/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/de/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/de/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/de/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/el/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/el/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/el/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/el/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/el/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/el/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/es/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/es/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/es/NestedSort.js +13 -0
- data/app/assets/javascripts/gridx/nls/es/PaginationBar.js +30 -0
- data/app/assets/javascripts/gridx/nls/es/QuickFilter.js +9 -0
- data/app/assets/javascripts/gridx/nls/es/SummaryBar.js +7 -0
- data/app/assets/javascripts/gridx/nls/fi/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/fi/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/fi/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/fi/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/fi/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/fi/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/fr/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/fr/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/fr/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/fr/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/fr/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/fr/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/he/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/he/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/he/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/he/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/he/QuickFilter.js +6 -0
- data/app/assets/javascripts/gridx/nls/he/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/hr/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/hr/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/hr/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/hr/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/hr/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/hr/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/hu/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/hu/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/hu/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/hu/PaginationBar.js +33 -0
- data/app/assets/javascripts/gridx/nls/hu/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/hu/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/it/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/it/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/it/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/it/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/it/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/it/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/ja/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/ja/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/ja/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/ja/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/ja/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/ja/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/kk/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/kk/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/kk/NestedSort.js +13 -0
- data/app/assets/javascripts/gridx/nls/kk/PaginationBar.js +30 -0
- data/app/assets/javascripts/gridx/nls/kk/QuickFilter.js +9 -0
- data/app/assets/javascripts/gridx/nls/kk/SummaryBar.js +7 -0
- data/app/assets/javascripts/gridx/nls/ko/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/ko/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/ko/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/ko/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/ko/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/ko/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/nb/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/nb/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/nb/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/nb/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/nb/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/nb/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/nl/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/nl/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/nl/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/nl/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/nl/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/nl/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/pl/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/pl/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/pl/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/pl/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/pl/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/pl/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/pt/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/pt/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/pt/NestedSort.js +13 -0
- data/app/assets/javascripts/gridx/nls/pt/PaginationBar.js +30 -0
- data/app/assets/javascripts/gridx/nls/pt/QuickFilter.js +9 -0
- data/app/assets/javascripts/gridx/nls/pt/SummaryBar.js +7 -0
- data/app/assets/javascripts/gridx/nls/pt-br/Body.js +6 -0
- data/app/assets/javascripts/gridx/nls/pt-br/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/pt-br/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/pt-br/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/pt-br/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/pt-br/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/pt-pt/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/pt-pt/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/pt-pt/NestedSort.js +13 -0
- data/app/assets/javascripts/gridx/nls/pt-pt/PaginationBar.js +30 -0
- data/app/assets/javascripts/gridx/nls/pt-pt/QuickFilter.js +9 -0
- data/app/assets/javascripts/gridx/nls/pt-pt/SummaryBar.js +7 -0
- data/app/assets/javascripts/gridx/nls/ro/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/ro/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/ro/NestedSort.js +13 -0
- data/app/assets/javascripts/gridx/nls/ro/PaginationBar.js +30 -0
- data/app/assets/javascripts/gridx/nls/ro/QuickFilter.js +9 -0
- data/app/assets/javascripts/gridx/nls/ro/SummaryBar.js +7 -0
- data/app/assets/javascripts/gridx/nls/ru/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/ru/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/ru/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/ru/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/ru/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/ru/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/sk/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/sk/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/sk/NestedSort.js +13 -0
- data/app/assets/javascripts/gridx/nls/sk/PaginationBar.js +30 -0
- data/app/assets/javascripts/gridx/nls/sk/QuickFilter.js +9 -0
- data/app/assets/javascripts/gridx/nls/sk/SummaryBar.js +7 -0
- data/app/assets/javascripts/gridx/nls/sl/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/sl/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/sl/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/sl/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/sl/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/sl/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/sv/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/sv/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/sv/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/sv/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/sv/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/sv/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/th/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/th/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/th/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/th/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/th/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/th/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/tr/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/tr/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/tr/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/tr/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/tr/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/tr/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/uk/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/uk/FilterBar.js +88 -0
- data/app/assets/javascripts/gridx/nls/uk/NestedSort.js +12 -0
- data/app/assets/javascripts/gridx/nls/uk/PaginationBar.js +28 -0
- data/app/assets/javascripts/gridx/nls/uk/QuickFilter.js +8 -0
- data/app/assets/javascripts/gridx/nls/uk/SummaryBar.js +6 -0
- data/app/assets/javascripts/gridx/nls/zh/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/zh/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/zh/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/zh/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/zh/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/zh/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/nls/zh-tw/Body.js +11 -0
- data/app/assets/javascripts/gridx/nls/zh-tw/FilterBar.js +89 -0
- data/app/assets/javascripts/gridx/nls/zh-tw/NestedSort.js +11 -0
- data/app/assets/javascripts/gridx/nls/zh-tw/PaginationBar.js +34 -0
- data/app/assets/javascripts/gridx/nls/zh-tw/QuickFilter.js +7 -0
- data/app/assets/javascripts/gridx/nls/zh-tw/SummaryBar.js +5 -0
- data/app/assets/javascripts/gridx/support/DropDownPager.js +111 -0
- data/app/assets/javascripts/gridx/support/DropDownSizer.js +112 -0
- data/app/assets/javascripts/gridx/support/GotoPageButton.js +92 -0
- data/app/assets/javascripts/gridx/support/GotoPagePane.js +61 -0
- data/app/assets/javascripts/gridx/support/LinkPager.js +180 -0
- data/app/assets/javascripts/gridx/support/LinkSizer.js +138 -0
- data/app/assets/javascripts/gridx/support/QuickFilter.js +138 -0
- data/app/assets/javascripts/gridx/support/Summary.js +49 -0
- data/app/assets/javascripts/gridx/support/_LinkPageBase.js +92 -0
- data/app/assets/javascripts/gridx/support/exporter/exporter.js +350 -0
- data/app/assets/javascripts/gridx/support/exporter/toCSV.js +75 -0
- data/app/assets/javascripts/gridx/support/exporter/toTable.js +92 -0
- data/app/assets/javascripts/gridx/support/menu/AZFilterMenu.js +57 -0
- data/app/assets/javascripts/gridx/support/menu/NumberFilterMenu.js +87 -0
- data/app/assets/javascripts/gridx/support/menu/_FilterMenuBase.js +83 -0
- data/app/assets/javascripts/gridx/support/printer.js +157 -0
- data/app/assets/javascripts/gridx/templates/FilterBar.html +8 -0
- data/app/assets/javascripts/gridx/templates/FilterConfirmDialog.html +5 -0
- data/app/assets/javascripts/gridx/templates/FilterDialog.html +19 -0
- data/app/assets/javascripts/gridx/templates/FilterPane.html +64 -0
- data/app/assets/javascripts/gridx/templates/GotoPagePane.html +28 -0
- data/app/assets/javascripts/gridx/templates/Grid.html +19 -0
- data/app/assets/javascripts/gridx/templates/LinkPager.html +24 -0
- data/app/assets/javascripts/gridx/templates/PaginationBar.html +60 -0
- data/app/assets/javascripts/gridx/templates/PaginationBarDD.html +23 -0
- data/app/assets/javascripts/gridx/templates/QuickFilter.html +38 -0
- data/app/assets/stylesheets/gridx/mobile/themes/iphone/Grid.css +107 -0
- data/app/assets/stylesheets/gridx/resources/Dod.css +39 -0
- data/app/assets/stylesheets/gridx/resources/Gridx.css +10 -0
- data/app/assets/stylesheets/gridx/resources/Gridx_rtl.css +5 -0
- data/app/assets/stylesheets/gridx/resources/Tree.css +46 -0
- data/app/assets/stylesheets/gridx/resources/Tree_rtl.css +4 -0
- data/app/assets/stylesheets/gridx/resources/bar.css +24 -0
- data/app/assets/stylesheets/gridx/resources/basic.css +482 -0
- data/app/assets/stylesheets/gridx/resources/basic_rtl.css +37 -0
- data/app/assets/stylesheets/gridx/resources/claro/Gridx.css +16 -0
- data/app/assets/stylesheets/gridx/resources/claro/Gridx_rtl.css +7 -0
- data/app/assets/stylesheets/gridx/resources/claro/basic.css +109 -0
- data/app/assets/stylesheets/gridx/resources/claro/basic_rtl.css +21 -0
- data/app/assets/stylesheets/gridx/resources/claro/filter.css +47 -0
- data/app/assets/stylesheets/gridx/resources/claro/lock.css +19 -0
- data/app/assets/stylesheets/gridx/resources/claro/pagination.css +33 -0
- data/app/assets/stylesheets/gridx/resources/claro/select.css +20 -0
- data/app/assets/stylesheets/gridx/resources/dnd.css +108 -0
- data/app/assets/stylesheets/gridx/resources/filter.css +321 -0
- data/app/assets/stylesheets/gridx/resources/filter_rtl.css +38 -0
- data/app/assets/stylesheets/gridx/resources/lock.css +20 -0
- data/app/assets/stylesheets/gridx/resources/pagination.css +142 -0
- data/app/assets/stylesheets/gridx/resources/pagination_rtl.css +54 -0
- data/app/assets/stylesheets/gridx/resources/select.css +39 -0
- data/app/assets/stylesheets/gridx/resources/sort.css +154 -0
- data/app/assets/stylesheets/gridx/resources/sort_rtl.css +51 -0
- data/lib/gridx-rails/engine.rb +8 -0
- data/lib/gridx-rails/version.rb +3 -0
- data/lib/gridx-rails.rb +4 -0
- data/lib/tasks/gridx-rails_tasks.rake +52 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +58 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +78 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/gridx-rails_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- metadata +621 -0
@@ -0,0 +1,445 @@
|
|
1
|
+
define([
|
2
|
+
"dojo/_base/declare",
|
3
|
+
"dojo/_base/lang",
|
4
|
+
"dojo/_base/array",
|
5
|
+
"dojo/_base/sniff",
|
6
|
+
"dojo/_base/event",
|
7
|
+
"dojo/_base/Deferred",
|
8
|
+
"dojo/query",
|
9
|
+
"dojo/keys",
|
10
|
+
"./VScroller",
|
11
|
+
"../core/_Module"
|
12
|
+
], function(declare, lang, array, has, event, Deferred, query, keys, VScroller, _Module){
|
13
|
+
|
14
|
+
/*=====
|
15
|
+
return declare(VScroller, {
|
16
|
+
// summary:
|
17
|
+
// This module implements lazy-rendering when virtically scrolling grid.
|
18
|
+
// description:
|
19
|
+
// This module takes a DOMNode-based way to implement lazy-rendering.
|
20
|
+
// It tries to remove all the DOMNodes that are out of the grid body viewport,
|
21
|
+
// so that the DOMNodes in grid are always limited to a very small number.
|
22
|
+
|
23
|
+
// buffSize: Integer
|
24
|
+
// The count row nodes that should be maintained above/below the grid body viewport.
|
25
|
+
// The total count row nodes consists of the count of rows that are visible, and buffSize * 2.
|
26
|
+
buffSize: 5,
|
27
|
+
|
28
|
+
// lazy: Boolean
|
29
|
+
// If this argument is set to true, the grid will not fetch data during scrolling.
|
30
|
+
// Instead, it'll fetch data after the scrolling process is completed (plus a timeout).
|
31
|
+
// This is useful when a large slow server side data store is used, because frequent
|
32
|
+
// data fetch requests are avoided.
|
33
|
+
lazy: false,
|
34
|
+
|
35
|
+
// lazyTimeout: Number
|
36
|
+
// This is the timeout for the "lazy" argument.
|
37
|
+
lazyTimeout: 50
|
38
|
+
});
|
39
|
+
=====*/
|
40
|
+
|
41
|
+
return declare(VScroller, {
|
42
|
+
constructor: function(grid, args){
|
43
|
+
if(grid.autoHeight){
|
44
|
+
lang.mixin(this, new VScroller(grid, args));
|
45
|
+
}else{
|
46
|
+
this._scrolls = [];
|
47
|
+
}
|
48
|
+
},
|
49
|
+
|
50
|
+
destroy: function(){
|
51
|
+
this.inherited(arguments);
|
52
|
+
//clear all the timeouts, avoid possible errors.
|
53
|
+
clearTimeout(this._lazyScrollHandle);
|
54
|
+
clearTimeout(this._pVirtual);
|
55
|
+
},
|
56
|
+
|
57
|
+
//Public ----------------------------------------------------
|
58
|
+
buffSize: 5,
|
59
|
+
|
60
|
+
lazy: false,
|
61
|
+
|
62
|
+
lazyTimeout: 50,
|
63
|
+
|
64
|
+
scrollToRow: function(rowVisualIndex, toTop){
|
65
|
+
var d = new Deferred(), t = this, s = t._scrolls,
|
66
|
+
f = function(){
|
67
|
+
t._subScrollToRow(rowVisualIndex, d, toTop);
|
68
|
+
};
|
69
|
+
s.push(d);
|
70
|
+
t._lazy = t.arg('lazy');
|
71
|
+
t.lazy = false;
|
72
|
+
if(s.length > 1){
|
73
|
+
s[s.length - 2].then(f);
|
74
|
+
}else{
|
75
|
+
f();
|
76
|
+
}
|
77
|
+
return d;
|
78
|
+
},
|
79
|
+
|
80
|
+
//Private -------------------------------------------------
|
81
|
+
_subScrollToRow: function(rowVisualIndex, defer, toTop){
|
82
|
+
var t = this,
|
83
|
+
dif = 0,
|
84
|
+
rowHeight = t._avgRowHeight,
|
85
|
+
bn = t.grid.bodyNode,
|
86
|
+
dn = t.domNode,
|
87
|
+
bst = bn.scrollTop,
|
88
|
+
dst = dn.scrollTop,
|
89
|
+
bnHeight = bn.clientHeight,
|
90
|
+
node = query('[visualindex="' + rowVisualIndex + '"]', bn)[0],
|
91
|
+
focus = t.grid.focus,
|
92
|
+
finish = function(success){
|
93
|
+
if(success && !node.getAttribute('rowid')){
|
94
|
+
//Row is not loaded yet, so row height might still change.
|
95
|
+
defer.scrollContext = [rowVisualIndex, defer, toTop];
|
96
|
+
}else{
|
97
|
+
t._scrolls.splice(array.indexOf(t._scrolls, defer), 1);
|
98
|
+
//since we've changed the focus row index, re-focus it.
|
99
|
+
if(focus && focus.currentArea() == 'body'){
|
100
|
+
focus.focusArea('body', 1); //1 as true
|
101
|
+
}
|
102
|
+
t.lazy = t._lazy;
|
103
|
+
//wait for the dom nodes to settle down.
|
104
|
+
setTimeout(function(){
|
105
|
+
defer.callback(success);
|
106
|
+
}, 5);
|
107
|
+
}
|
108
|
+
};
|
109
|
+
if(node){
|
110
|
+
var offsetTop = node.offsetTop;
|
111
|
+
if(node.offsetHeight >= bnHeight){
|
112
|
+
//Special check for rows that are higher than grid body.
|
113
|
+
if(offsetTop == bst){
|
114
|
+
finish(true);
|
115
|
+
return;
|
116
|
+
}else{
|
117
|
+
dif = offsetTop - bst;
|
118
|
+
}
|
119
|
+
}else if(offsetTop + node.offsetHeight > bst + bnHeight){
|
120
|
+
dif = offsetTop - bst;
|
121
|
+
if(!toTop){
|
122
|
+
dif += node.offsetHeight - bnHeight;
|
123
|
+
}
|
124
|
+
}else if(offsetTop < bst || (toTop && offsetTop > bst)){
|
125
|
+
dif = offsetTop - bst;
|
126
|
+
}else{
|
127
|
+
finish(true);
|
128
|
+
return;
|
129
|
+
}
|
130
|
+
}else if(bn.childNodes.length){
|
131
|
+
//Find a visible node.
|
132
|
+
var n = bn.firstChild;
|
133
|
+
while(n && n.offsetTop < bst){
|
134
|
+
n = n.nextSibling;
|
135
|
+
}
|
136
|
+
var idx = n && n.getAttribute('visualindex');
|
137
|
+
if(n && rowVisualIndex < idx){
|
138
|
+
dif = (rowVisualIndex - idx) * rowHeight;
|
139
|
+
}else{
|
140
|
+
n = bn.lastChild;
|
141
|
+
while(n && n.offsetTop + n.offsetHeight > bst + bnHeight && n != bn.firstChild){
|
142
|
+
n = n.previousSibling;
|
143
|
+
}
|
144
|
+
idx = n && n.getAttribute('visualindex');
|
145
|
+
if(n && rowVisualIndex > idx){
|
146
|
+
dif = (rowVisualIndex - idx) * rowHeight;
|
147
|
+
}else{
|
148
|
+
finish(false);
|
149
|
+
return;
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}else{
|
153
|
+
finish(false);
|
154
|
+
return;
|
155
|
+
}
|
156
|
+
var istop = dst === 0 && dif < 0,
|
157
|
+
isbottom = dst >= dn.scrollHeight - dn.offsetHeight && dif > 0;
|
158
|
+
if(istop || isbottom){
|
159
|
+
t._doVirtualScroll(1);
|
160
|
+
}else{
|
161
|
+
var oldScrollTop = dn.scrollTop,
|
162
|
+
scrollTop = oldScrollTop + (dif > bn.offsetHeight ? dif / t._ratio : dif);
|
163
|
+
//If scrollTop to too big, the browser will scroll it back to top, so add extra check here.
|
164
|
+
if(scrollTop > dn.scrollHeight){
|
165
|
+
scrollTop = dn.scrollHeight;
|
166
|
+
}
|
167
|
+
dn.scrollTop = scrollTop;
|
168
|
+
//If scrolling has no effect, we are already at the edge and no luck.
|
169
|
+
if(dn.scrollTop == oldScrollTop){
|
170
|
+
finish(false);
|
171
|
+
return;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
if((istop && bn.firstChild.getAttribute('visualindex') == 0) ||
|
175
|
+
(isbottom && bn.lastChild.getAttribute('visualindex') == t.grid.view.visualCount - 1)){
|
176
|
+
finish(false);
|
177
|
+
return;
|
178
|
+
}
|
179
|
+
setTimeout(function(){
|
180
|
+
t._subScrollToRow(rowVisualIndex, defer, toTop);
|
181
|
+
}, 5);
|
182
|
+
},
|
183
|
+
|
184
|
+
_init: function(args){
|
185
|
+
var t = this;
|
186
|
+
t._rowHeight = {};
|
187
|
+
t._syncHeight();
|
188
|
+
t.connect(t.grid, '_onResizeEnd', function(){
|
189
|
+
t._doScroll(0, 1);
|
190
|
+
});
|
191
|
+
t._doScroll(0, 1, 1);
|
192
|
+
},
|
193
|
+
|
194
|
+
_doVirtualScroll: function(forced){
|
195
|
+
var t = this,
|
196
|
+
dn = t.domNode,
|
197
|
+
a = dn.scrollTop,
|
198
|
+
deltaT = a - (t._lastScrollTop || 0),
|
199
|
+
neighborhood = 2;
|
200
|
+
|
201
|
+
if(forced || deltaT){
|
202
|
+
t._lastScrollTop = a;
|
203
|
+
|
204
|
+
var buffSize = t.arg('buffSize'),
|
205
|
+
scrollRange = dn.scrollHeight - dn.offsetHeight,
|
206
|
+
body = t.grid.body,
|
207
|
+
view = t.grid.view,
|
208
|
+
visualStart = 0, //visualStart is always zero
|
209
|
+
visualEnd = visualStart + view.visualCount,
|
210
|
+
bn = t.grid.bodyNode,
|
211
|
+
firstRow = bn.firstChild,
|
212
|
+
firstRowTop = firstRow && firstRow.offsetTop - deltaT,
|
213
|
+
lastRow = bn.lastChild,
|
214
|
+
lastRowBtm = lastRow && lastRow.offsetTop - deltaT + lastRow.offsetHeight,
|
215
|
+
bnTop = bn.scrollTop,
|
216
|
+
bnBtm = bnTop + bn.clientHeight,
|
217
|
+
h = t._avgRowHeight,
|
218
|
+
pageRowCount = Math.ceil(dn.offsetHeight / h) + 2 * buffSize,
|
219
|
+
ratio = t._ratio,
|
220
|
+
nearTop = a <= neighborhood,
|
221
|
+
nearBottom = Math.abs(a - scrollRange) <= neighborhood,
|
222
|
+
start, end, pos, d;
|
223
|
+
if(bnTop == bnBtm && !bnBtm){
|
224
|
+
//The grid is not correctly shown, so we just ignore.
|
225
|
+
return;
|
226
|
+
}
|
227
|
+
if(firstRow && firstRowTop > bnTop && firstRowTop < bnBtm){
|
228
|
+
//Add some rows to the front
|
229
|
+
end = body.renderStart;
|
230
|
+
d = Math.ceil((firstRowTop - bnTop) * ratio / h) + buffSize;
|
231
|
+
start = nearTop ? visualStart : Math.max(end - d, visualStart);
|
232
|
+
pos = "top";
|
233
|
+
}else if(lastRow && lastRowBtm > bnTop && lastRowBtm < bnBtm){
|
234
|
+
//Add some rows to the end
|
235
|
+
start = body.renderStart + body.renderCount;
|
236
|
+
d = Math.ceil((bnBtm - lastRowBtm) * ratio / h) + buffSize;
|
237
|
+
end = nearBottom && a ? visualEnd : Math.min(start + d, visualEnd);
|
238
|
+
pos = "bottom";
|
239
|
+
}else if(!firstRow || firstRowTop > bnBtm || !lastRow || lastRowBtm < bnTop){
|
240
|
+
//Replace all
|
241
|
+
if(a <= scrollRange / 2){
|
242
|
+
start = nearTop ? visualStart : visualStart + Math.max(Math.floor(a * ratio / h) - buffSize, 0);
|
243
|
+
end = Math.min(start + pageRowCount, visualEnd);
|
244
|
+
}else{
|
245
|
+
end = nearBottom ? visualEnd : visualEnd + Math.min(pageRowCount - Math.floor((scrollRange - a) * ratio / h), 0);
|
246
|
+
start = Math.max(end - pageRowCount, visualStart);
|
247
|
+
}
|
248
|
+
pos = "clear";
|
249
|
+
}else if(firstRow){
|
250
|
+
//The body and the scroller bar may be mis-matched, so force to sync here.
|
251
|
+
if(nearTop){
|
252
|
+
var firstRowIndex = body.renderStart;
|
253
|
+
if(firstRowIndex > visualStart){
|
254
|
+
start = visualStart;
|
255
|
+
end = firstRowIndex;
|
256
|
+
pos = "top";
|
257
|
+
}
|
258
|
+
}else if(nearBottom){
|
259
|
+
var lastRowIndex = body.renderStart + body.renderCount - 1;
|
260
|
+
if(lastRowIndex < visualEnd - 1){
|
261
|
+
start = lastRowIndex + 1;
|
262
|
+
end = visualEnd;
|
263
|
+
pos = "bottom";
|
264
|
+
}
|
265
|
+
}
|
266
|
+
}
|
267
|
+
|
268
|
+
if(typeof start == 'number' && typeof end == 'number'){
|
269
|
+
//Only need to render when the range is valid
|
270
|
+
body.renderRows(start, end - start, pos);
|
271
|
+
if(a && start < end){
|
272
|
+
//Scroll the body to hide the newly added top rows.
|
273
|
+
var n = query('[visualindex="' + end + '"]', bn)[0];
|
274
|
+
if(n){
|
275
|
+
deltaT += n.offsetTop;
|
276
|
+
}
|
277
|
+
}
|
278
|
+
}
|
279
|
+
//Ensure the position when user scrolls to end points
|
280
|
+
if(nearTop){
|
281
|
+
bn.scrollTop = 0;
|
282
|
+
}else if(nearBottom || a > scrollRange){
|
283
|
+
//with huge store, a will sometimes be > scrollRange
|
284
|
+
bn.scrollTop = bn.scrollHeight;
|
285
|
+
}else if(pos != "clear"){
|
286
|
+
bn.scrollTop += deltaT;
|
287
|
+
}
|
288
|
+
}
|
289
|
+
t._doVirtual();
|
290
|
+
},
|
291
|
+
|
292
|
+
_doScroll: function(e, forced, noLazy){
|
293
|
+
var t = this;
|
294
|
+
if(!noLazy && t.arg('lazy')){
|
295
|
+
if(t._lazyScrollHandle){
|
296
|
+
clearTimeout(t._lazyScrollHandle);
|
297
|
+
}
|
298
|
+
t._lazyScrollHandle = setTimeout(lang.hitch(t, t._doVirtualScroll, forced), t.arg('lazyTimeout'));
|
299
|
+
}else{
|
300
|
+
t._doVirtualScroll(forced);
|
301
|
+
}
|
302
|
+
},
|
303
|
+
|
304
|
+
_onMouseWheel: function(e){
|
305
|
+
if(this.grid.vScrollerNode.style.display != 'none'){
|
306
|
+
var rolled = typeof e.wheelDelta === "number" ? e.wheelDelta / 3 : (-40 * e.detail);
|
307
|
+
this.domNode.scrollTop -= rolled;
|
308
|
+
event.stop(e);
|
309
|
+
}
|
310
|
+
},
|
311
|
+
|
312
|
+
_onBodyChange: function(){
|
313
|
+
var t = this;
|
314
|
+
t._update();
|
315
|
+
t._doScroll(0, 1);
|
316
|
+
//If some scrollToRow requests are pending, resume them.
|
317
|
+
array.forEach(t._scrolls, function(d){
|
318
|
+
if(d.scrollContext){
|
319
|
+
//delete scrollContext to avoid firing multiple times.
|
320
|
+
var scrollContext = d.scrollContext;
|
321
|
+
delete d.scrollContext;
|
322
|
+
t._subScrollToRow.apply(t, scrollContext);
|
323
|
+
}
|
324
|
+
});
|
325
|
+
},
|
326
|
+
|
327
|
+
_onForcedScroll: function(){
|
328
|
+
this._rowHeight = {};
|
329
|
+
this._doScroll(0, 1);
|
330
|
+
},
|
331
|
+
|
332
|
+
//Private ---------------------------------------------------
|
333
|
+
_avgRowHeight: 24,
|
334
|
+
_rowHeight: null,
|
335
|
+
_ratio: 1,
|
336
|
+
|
337
|
+
_syncHeight: function(){
|
338
|
+
var t = this,
|
339
|
+
h = t._avgRowHeight * t.grid.view.visualCount,
|
340
|
+
maxHeight = 1342177;
|
341
|
+
if(has('ff')){
|
342
|
+
maxHeight = 17895697;
|
343
|
+
}else if(has('webkit')){
|
344
|
+
maxHeight = 134217726;
|
345
|
+
}
|
346
|
+
if(h > maxHeight){
|
347
|
+
t._ratio = h / maxHeight;
|
348
|
+
h = maxHeight;
|
349
|
+
}
|
350
|
+
var dn = t.domNode,
|
351
|
+
//remember the scroll bar position
|
352
|
+
r = dn.scrollTop / dn.scrollHeight;
|
353
|
+
t.stubNode.style.height = h + 'px';
|
354
|
+
//Update last scrolltop, to avoid firing _doVirtualScroll with incorrect delta.
|
355
|
+
if(t._lastScrollTop){
|
356
|
+
t._lastScrollTop = dn.scrollTop = dn.scrollHeight * r;
|
357
|
+
}
|
358
|
+
},
|
359
|
+
|
360
|
+
_doVirtual: function(){
|
361
|
+
var t = this;
|
362
|
+
clearTimeout(t._pVirtual);
|
363
|
+
t._pVirtual = setTimeout(function(){
|
364
|
+
t._updateRowHeight();
|
365
|
+
}, 100);
|
366
|
+
},
|
367
|
+
|
368
|
+
_updateRowHeight: function(mode){
|
369
|
+
//Update average row height and unrender rows
|
370
|
+
var t = this,
|
371
|
+
preCount = 0,
|
372
|
+
postCount = 0,
|
373
|
+
g = t.grid,
|
374
|
+
bd = g.body,
|
375
|
+
bn = g.bodyNode,
|
376
|
+
buff = t.buffSize * t._avgRowHeight,
|
377
|
+
st = bn.scrollTop,
|
378
|
+
top = st - buff,
|
379
|
+
bottom = st + bn.clientHeight + buff,
|
380
|
+
rh = t._rowHeight,
|
381
|
+
ret = 0;
|
382
|
+
|
383
|
+
array.forEach(bn.childNodes, function(n){
|
384
|
+
rh[n.getAttribute('rowid')] = n.offsetHeight;
|
385
|
+
if(n.offsetTop > bottom){
|
386
|
+
++postCount;
|
387
|
+
}else if(n.offsetTop + n.offsetHeight < top){
|
388
|
+
++preCount;
|
389
|
+
}
|
390
|
+
});
|
391
|
+
if(mode != 'post'){
|
392
|
+
bd.unrenderRows(preCount);
|
393
|
+
ret = preCount;
|
394
|
+
}
|
395
|
+
if(mode != 'pre'){
|
396
|
+
bd.unrenderRows(postCount, 'post');
|
397
|
+
ret = postCount;
|
398
|
+
}
|
399
|
+
|
400
|
+
var p, h = 0, c = 0;
|
401
|
+
for(p in rh){
|
402
|
+
h += rh[p];
|
403
|
+
++c;
|
404
|
+
}
|
405
|
+
if(h && c){
|
406
|
+
t._avgRowHeight = h / c;
|
407
|
+
t._syncHeight();
|
408
|
+
}
|
409
|
+
return ret;
|
410
|
+
},
|
411
|
+
|
412
|
+
_onKeyScroll: function(evt){
|
413
|
+
var t = this,
|
414
|
+
bd = t.grid.body,
|
415
|
+
view = t.grid.view,
|
416
|
+
focus = t.grid.focus,
|
417
|
+
sn = t.domNode,
|
418
|
+
st = 'scrollTop',
|
419
|
+
r,
|
420
|
+
fc = '_focusCellRow';
|
421
|
+
if(!focus || focus.currentArea() == 'body'){
|
422
|
+
if(evt.keyCode == keys.HOME && evt.ctrlKey){
|
423
|
+
bd._focusCellCol = 0;
|
424
|
+
bd[fc] = 0;
|
425
|
+
sn[st] = 0;
|
426
|
+
bd._focusCell();
|
427
|
+
}else if(evt.keyCode == keys.END && evt.ctrlKey){
|
428
|
+
bd._focusCellCol = t.grid._columns.length - 1;
|
429
|
+
bd[fc] = view.visualCount - 1;
|
430
|
+
sn[st] = t.stubNode.clientHeight - bd.domNode.offsetHeight;
|
431
|
+
bd._focusCell();
|
432
|
+
}else if(evt.keyCode == keys.PAGE_UP){
|
433
|
+
r = bd[fc] = Math.max(bd.renderStart - bd.renderCount, 0);
|
434
|
+
t.scrollToRow(r);
|
435
|
+
}else if(evt.keyCode == keys.PAGE_DOWN){
|
436
|
+
r = bd[fc] = Math.min(view.visualCount - 1, bd.renderStart + bd.renderCount);
|
437
|
+
t.scrollToRow(r, 1); //1 as true
|
438
|
+
}else{
|
439
|
+
return;
|
440
|
+
}
|
441
|
+
event.stop(evt);
|
442
|
+
}
|
443
|
+
}
|
444
|
+
});
|
445
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
define([
|
2
|
+
/*====='dojo/_base/declare',=====*/
|
3
|
+
"dojo/_base/kernel",
|
4
|
+
"../../support/DropDownPager"
|
5
|
+
], function(/*=====declare, =====*/kernel, widget){
|
6
|
+
kernel.deprecated('DropDownPager is moved from gridx/modules/barPlugins/ to gridx/support/.', 'Please use the new path.', '1.3');
|
7
|
+
|
8
|
+
/*=====
|
9
|
+
return declare([], {
|
10
|
+
// summary:
|
11
|
+
// Moved to gridx/support/DropDownPager. This path is deprecated.
|
12
|
+
});
|
13
|
+
=====*/
|
14
|
+
|
15
|
+
return widget;
|
16
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
define([
|
2
|
+
/*====='dojo/_base/declare',=====*/
|
3
|
+
"dojo/_base/kernel",
|
4
|
+
"../../support/DropDownSizer"
|
5
|
+
], function(/*=====declare, =====*/kernel, Sizer){
|
6
|
+
kernel.deprecated('DropDownSizer is moved from gridx/modules/barPlugins/ to gridx/support/.', 'Please use the new path.', '1.3');
|
7
|
+
|
8
|
+
/*=====
|
9
|
+
return declare([], {
|
10
|
+
// summary:
|
11
|
+
// Moved to gridx/support/DropDownSizer. This path is deprecated.
|
12
|
+
});
|
13
|
+
=====*/
|
14
|
+
|
15
|
+
return Sizer;
|
16
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
define([
|
2
|
+
/*====='dojo/_base/declare',=====*/
|
3
|
+
"dojo/_base/kernel",
|
4
|
+
"../../support/GotoPageButton"
|
5
|
+
], function(/*=====declare, =====*/kernel, widget){
|
6
|
+
kernel.deprecated('GotoPageButton is moved from gridx/modules/barPlugins/ to gridx/support/.', 'Please use the new path.', '1.3');
|
7
|
+
|
8
|
+
/*=====
|
9
|
+
return declare([], {
|
10
|
+
// summary:
|
11
|
+
// Moved to gridx/support/GotoPageButton. This path is deprecated.
|
12
|
+
});
|
13
|
+
=====*/
|
14
|
+
|
15
|
+
return widget;
|
16
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
define([
|
2
|
+
/*====='dojo/_base/declare',=====*/
|
3
|
+
"dojo/_base/kernel",
|
4
|
+
"../../support/LinkPager"
|
5
|
+
], function(/*=====declare, =====*/kernel, widget){
|
6
|
+
kernel.deprecated('LinkPager is moved from gridx/modules/barPlugins/ to gridx/support/.', 'Please use the new path.', '1.3');
|
7
|
+
|
8
|
+
/*=====
|
9
|
+
return declare([], {
|
10
|
+
// summary:
|
11
|
+
// Moved to gridx/support/LinkPager. This path is deprecated.
|
12
|
+
});
|
13
|
+
=====*/
|
14
|
+
|
15
|
+
return widget;
|
16
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
define([
|
2
|
+
/*====='dojo/_base/declare',=====*/
|
3
|
+
"dojo/_base/kernel",
|
4
|
+
"../../support/LinkSizer"
|
5
|
+
], function(/*=====declare, =====*/kernel, widget){
|
6
|
+
kernel.deprecated('LinkSizer is moved from gridx/modules/barPlugins/ to gridx/support/.', 'Please use the new path.', '1.3');
|
7
|
+
|
8
|
+
/*=====
|
9
|
+
return declare([], {
|
10
|
+
// summary:
|
11
|
+
// Moved to gridx/support/LinkSizer. This path is deprecated.
|
12
|
+
});
|
13
|
+
=====*/
|
14
|
+
|
15
|
+
return widget;
|
16
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
define([
|
2
|
+
/*====='dojo/_base/declare',=====*/
|
3
|
+
"dojo/_base/kernel",
|
4
|
+
"../../support/Summary"
|
5
|
+
], function(/*=====declare, =====*/kernel, widget){
|
6
|
+
kernel.deprecated('Summary is moved from gridx/modules/barPlugins/ to gridx/support/.', 'Please use the new path.', '1.3');
|
7
|
+
|
8
|
+
/*=====
|
9
|
+
return declare([], {
|
10
|
+
// summary:
|
11
|
+
// Moved to gridx/support/Summary. This path is deprecated.
|
12
|
+
});
|
13
|
+
=====*/
|
14
|
+
|
15
|
+
return widget;
|
16
|
+
});
|
@@ -0,0 +1,45 @@
|
|
1
|
+
define([
|
2
|
+
"dojo/_base/declare",
|
3
|
+
"dojo/dom-class",
|
4
|
+
"dojo/dom-construct",
|
5
|
+
"dojo/_base/window",
|
6
|
+
"dojo/dnd/Avatar"
|
7
|
+
], function(declare, domClass, domConstruct, win, Avatar){
|
8
|
+
|
9
|
+
/*=====
|
10
|
+
return declare(Avatar, {
|
11
|
+
// summary:
|
12
|
+
// Avatar shown beside mouse during dnd. Inheriting dojo/dnd/Avatar.
|
13
|
+
// This dnd avatar is in a separated file so that it can be (dynamically) overwritten in case of need
|
14
|
+
});
|
15
|
+
=====*/
|
16
|
+
|
17
|
+
return declare(Avatar, {
|
18
|
+
construct: function(manager){
|
19
|
+
var t = this;
|
20
|
+
t.isA11y = domClass.contains(win.body(), "dijit_a11y");
|
21
|
+
|
22
|
+
t.node = domConstruct.toDom(["<table border='0' cellspacing='0' class='gridxDndAvatar' ",
|
23
|
+
"style='position: absolute; z-index: 1999; margin: 0'>",
|
24
|
+
"<tbody><tr style='opacity: 0.9;'>",
|
25
|
+
"<td class='gridxDnDIcon'>",
|
26
|
+
t.isA11y ? "<span id='a11yIcon'>" + (t.manager.copy ? '+' : '<') + "</span>" : '',
|
27
|
+
"</td>",
|
28
|
+
"<td class='gridxDnDItemIcon ", t._getIconClass(), "'></td>",
|
29
|
+
"<td><span class='gridxDnDItemCount'>", t._generateText(), "</span></td>",
|
30
|
+
"</tr></tbody></table>"
|
31
|
+
].join(''));
|
32
|
+
},
|
33
|
+
|
34
|
+
_getIconClass: function(){
|
35
|
+
var info = this.manager._dndInfo;
|
36
|
+
return ['gridxDnDIcon', info.cssName, info.count === 1 ? 'Single' : 'Multi'].join('');
|
37
|
+
},
|
38
|
+
|
39
|
+
_generateText: function(){
|
40
|
+
// summary:
|
41
|
+
// generates a proper text to reflect copying or moving of items
|
42
|
+
return "(" + this.manager._dndInfo.count + ")";
|
43
|
+
}
|
44
|
+
});
|
45
|
+
});
|