forgeos_core 1.9.1
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/LICENSE +2 -0
- data/README.textile +42 -0
- data/app/assets/images/forgeos/admin/background-page-right-sidebar.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/background-header.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/background-menu.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/background-right-sidebar.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/background.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/big-content-header-bg.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/blue-button.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/bottom-menu.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/brown-select.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/content-background.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/drag-and-drop.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/filter-select.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/gray-glossy-select.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/gray-select.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/green-select.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/left-bubble-tool-tip.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/menu-on-background.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/sidebar-background.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/slider-button-background.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds/submenu.png +0 -0
- data/app/assets/images/forgeos/admin/backgrounds-verti.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/add-product.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/box.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/bubble-quantity.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/delete-icon.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/folder.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/new-block.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/new-folder.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/new-menu.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/new-page.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/new-product.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/new-widget.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons/resize.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons-24-24-hori.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons-24-24-verti.png +0 -0
- data/app/assets/images/forgeos/admin/big-icons-27-27-verti.png +0 -0
- data/app/assets/images/forgeos/admin/big-red-wine-bottle.png +0 -0
- data/app/assets/images/forgeos/admin/borders/drag-and-drop.png +0 -0
- data/app/assets/images/forgeos/admin/borders/heading-separator.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-action-button.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-blue-button.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-brown-select.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-filter-select.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-gray-glossy-slider.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-gray-select.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-green-select.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-sub-menu-on.png +0 -0
- data/app/assets/images/forgeos/admin/borders/left-submenu-off.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-action-button.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-blue-button.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-brown-select.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-filter-select.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-gray-glossy-button.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-gray-select.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-green-select.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-submenu-off.png +0 -0
- data/app/assets/images/forgeos/admin/borders/right-submenu-on.png +0 -0
- data/app/assets/images/forgeos/admin/borders/separator-menu-left-on.png +0 -0
- data/app/assets/images/forgeos/admin/borders/separator-menu-right-on.png +0 -0
- data/app/assets/images/forgeos/admin/borders/separator-menu.png +0 -0
- data/app/assets/images/forgeos/admin/borders/specialOffers_black_arrow.png +0 -0
- data/app/assets/images/forgeos/admin/borders/specialOffers_white_arrow.png +0 -0
- data/app/assets/images/forgeos/admin/borders-verti.png +0 -0
- data/app/assets/images/forgeos/admin/bouteille-vin.png +0 -0
- data/app/assets/images/forgeos/admin/favicon.gif +0 -0
- data/app/assets/images/forgeos/admin/left-arrow.png +0 -0
- data/app/assets/images/forgeos/admin/left-select.png +0 -0
- data/app/assets/images/forgeos/admin/no-image.png +0 -0
- data/app/assets/images/forgeos/admin/no-image_50x50.png +0 -0
- data/app/assets/images/forgeos/admin/right-arrow.png +0 -0
- data/app/assets/images/forgeos/admin/right-select.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-brown-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-brown-right-off.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-brown-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-gray-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-gray-right-off.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-gray-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-green-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-green-right-off.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-green-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-purple-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-purple-right-off.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-purple-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-red-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-red-right-off.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-red-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-white-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-white-right-off.png +0 -0
- data/app/assets/images/forgeos/admin/selects/big-white-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/glossy-gray-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/glossy-gray-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/left-select.png +0 -0
- data/app/assets/images/forgeos/admin/selects/new-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/new-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/product-select-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/product-select-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/right-select.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-brown-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-brown-right-on.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-brown-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-gray-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-gray-right-on.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-gray-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-green-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-green-right-on.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-green-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-purple-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-purple-right-on.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-purple-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-red-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-red-right-on.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-red-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-white-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-white-right-on.png +0 -0
- data/app/assets/images/forgeos/admin/selects/small-white-right.png +0 -0
- data/app/assets/images/forgeos/admin/selects/unpublished-left.png +0 -0
- data/app/assets/images/forgeos/admin/selects/unpublished-right.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/all-blocks.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/audio.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/audio_plus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/big-blue-plus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/big-red-right-off.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/big-red-right.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/blue-check.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/blue-eye.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/blue-left-arrow.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/blue-minus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/blue-pages.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/blue-pen.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/blue-plus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/blue-recycle-bin.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/bottom-arrow.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/box.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/brown-minus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/brown-plus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/bubble.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/cadna.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/cancel.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/checked-checked.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/checked-unchecked.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/dark-blue-minus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/dark-blue-plus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/dark-blue-recycle-bin.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/drak-blue-minus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/eye-off.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/eye.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/left-arrow.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/magnifying-glass.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/menu-icon.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/page.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/pages.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/right-arrow.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/right-blue-arrow.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/select-separator.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/small-blue-plus.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/webpulser-planet.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/white-arrow.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons/widget.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons-16-16-hori.png +0 -0
- data/app/assets/images/forgeos/admin/small-icons-16-16-verti.png +0 -0
- data/app/assets/images/forgeos/flashes/audio-player.swf +0 -0
- data/app/assets/images/forgeos/flashes/expressInstall.swf +0 -0
- data/app/assets/images/forgeos/flashes/flowplayer-3.1.5.swf +0 -0
- data/app/assets/images/forgeos/flashes/flowplayer.controls-3.1.5.swf +0 -0
- data/app/assets/images/forgeos/flashes/open-flash-chart-bar-clicking.swf +0 -0
- data/app/assets/images/forgeos/flashes/open-flash-chart.swf +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_diagonals-thick_55_eee7e7_40x40.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_diagonals-thick_55_eee7e7_40x40_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_dots-small_65_a6a6a6_2x2.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_dots-small_65_a6a6a6_2x2_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_flat_0_333333_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_flat_0_333333_40x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_flat_65_ffffff_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_flat_65_ffffff_40x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_flat_75_ffffff_40x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_glass_55_fbf8ee_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_glass_55_fbf8ee_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_highlight-hard_100_eeeeee_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_highlight-hard_100_eeeeee_1x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_highlight-hard_100_f6f6f6_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_highlight-hard_100_f6f6f6_1x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_highlight-soft_15_cc0000_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-bg_highlight-soft_15_cc0000_1x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-icons_004276_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-icons_004276_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-icons_cc0000_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-icons_cc0000_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/blitzer/ui-icons_ffffff_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_diagonals-thick_15_0b3e6f_40x40.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_diagonals-thick_15_0b3e6f_40x40_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_dots-medium_30_0b58a2_4x4.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_dots-medium_30_0b58a2_4x4_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_dots-small_20_333333_2x2.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_dots-small_20_333333_2x2_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_dots-small_30_a32d00_2x2.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_dots-small_30_a32d00_2x2_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_dots-small_40_00498f_2x2.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_dots-small_40_00498f_2x2_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_flat_0_aaaaaa_40x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_flat_40_292929_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_flat_40_292929_40x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_gloss-wave_20_111111_500x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-bg_gloss-wave_20_111111_500x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-icons_00498f_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-icons_00498f_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-icons_98d2fb_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-icons_98d2fb_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-icons_9ccdfc_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-icons_9ccdfc_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/dot-luv/ui-icons_ffffff_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_flat_0_aaaaaa_40x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_flat_75_ffffff_40x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_55_fbf9ee_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_65_ffffff_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_75_dadada_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_75_e6e6e6_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_glass_95_fef1ec_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-bg_highlight-soft_75_cccccc_1x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_222222_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_2e83ff_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_454545_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_888888_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_888888_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/forgeos/ui-icons_cd0a0a_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_flat_75_aaaaaa_40x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_glass_100_f5f0e5_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_glass_100_f5f0e5_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_glass_25_cb842e_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_glass_25_cb842e_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_glass_70_ede4d4_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_glass_70_ede4d4_1x400_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_highlight-hard_100_f4f0ec_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_highlight-hard_100_f4f0ec_1x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_highlight-hard_65_fee4bd_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_highlight-hard_65_fee4bd_1x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_highlight-hard_75_f5f5b5_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_highlight-hard_75_f5f5b5_1x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_inset-soft_100_f4f0ec_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-bg_inset-soft_100_f4f0ec_1x100_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_c47a23_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_c47a23_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_cb672b_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_cb672b_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_f08000_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_f08000_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_f35f07_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_f35f07_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_ff7519_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_ff7519_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/humanity/ui-icons_ffffff_256x240_1.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-icons_217bc0_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-icons_469bdd_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-icons_6da8d5_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-icons_d8e7f3_256x240.png +0 -0
- data/app/assets/images/forgeos/jquery-ui/themes/redmond/ui-icons_f9bd01_256x240.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/doc.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/doc_1.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/media.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/media_1.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/pdf.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/pdf_1.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/picture.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/picture_1.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/video.png +0 -0
- data/app/assets/images/forgeos/medias/128x128/video_1.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/doc.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/doc_1.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/media.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/media_1.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/pdf.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/pdf_1.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/picture.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/picture_1.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/video.png +0 -0
- data/app/assets/images/forgeos/medias/50x50/video_1.png +0 -0
- data/app/assets/images/forgeos/spinner.gif +0 -0
- data/app/assets/images/forgeos/tinyMCE/align-left.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/align-left_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/align-right.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/align-right_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/bold.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/bold_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/center.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/center_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/html-tag.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/html-tag_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/italic.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/italic_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/justify.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/justify_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/line-throught.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/line-throught_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/tab-to-left.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/tab-to-left_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/tab-to-right.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/tab-to-right_1.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/underline.png +0 -0
- data/app/assets/images/forgeos/tinyMCE/underline_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/cancel.png +0 -0
- data/app/assets/images/forgeos/uploadify/cancel_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-audio_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-audio_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-audio_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-audio_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-file_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-file_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-file_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-file_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-pdf_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-pdf_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-pdf_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-pdf_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-picture_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-picture_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-picture_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-picture_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-video_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-video_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-video_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/choose-video_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-audio_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-audio_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-audio_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-audio_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-button_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-button_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-button_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-button_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-doc_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-doc_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-doc_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-doc_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-media_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-media_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-media_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-media_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-pdf_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-pdf_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-pdf_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-pdf_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-picture_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-picture_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-picture_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-picture_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-video_en.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-video_en_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-video_fr.png +0 -0
- data/app/assets/images/forgeos/uploadify/upload-video_fr_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/uploader.swf +0 -0
- data/app/assets/images/forgeos/uploadify/uploader_1.swf +0 -0
- data/app/assets/images/forgeos/uploadify/uploadify-image.png +0 -0
- data/app/assets/images/forgeos/uploadify/uploadify-image_1.png +0 -0
- data/app/assets/images/forgeos/uploadify/uploadify.allglyphs.swf +0 -0
- data/app/assets/images/forgeos/uploadify/uploadify.allglyphs_1.swf +0 -0
- data/app/assets/images/forgeos/uploadify/uploadify.swf +0 -0
- data/app/assets/images/forgeos/uploadify/uploadify_1.swf +0 -0
- data/app/assets/javascripts/forgeos/admin/customselects.js +130 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/commons.js +76 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/custom-selects.js +32 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/dataTable.js +320 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/inputs.js +20 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/notifications.js +23 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/overlay.js +34 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/right-sidebar.js +58 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/rights.js +47 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/search-button.js +35 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/tinyMCE.js +32 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/trees.js +429 -0
- data/app/assets/javascripts/forgeos/admin/functions/forgeos_core/visual.js +12 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/attachments.js +13 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/clicks.js +22 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/custom-select.js +8 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/header.js +5 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/import.js +25 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/inputs.js +130 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/left-sidebar.js +146 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/overlays.js +260 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/right-sidebar.js +60 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/rights.js +105 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/settings.js +15 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/tabs.js +23 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/tinyMce.js +5 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/trees.js +59 -0
- data/app/assets/javascripts/forgeos/admin/inits/forgeos_core/visual.js +144 -0
- data/app/assets/javascripts/forgeos/admin/jquery-cookie-plugin.js +96 -0
- data/app/assets/javascripts/forgeos/audio-player.js +1 -0
- data/app/assets/javascripts/forgeos/flowplayer-3.1.4.min.js +24 -0
- data/app/assets/javascripts/forgeos/jquery-ui.js +298 -0
- data/app/assets/javascripts/forgeos/jquery.cookies.min.js +95 -0
- data/app/assets/javascripts/forgeos/jquery.dataSlides.js +4417 -0
- data/app/assets/javascripts/forgeos/jquery.dataTables.min.js +542 -0
- data/app/assets/javascripts/forgeos/jquery.droppy.js +61 -0
- data/app/assets/javascripts/forgeos/jquery.js +19 -0
- data/app/assets/javascripts/forgeos/jquery.uploadify.js +26 -0
- data/app/assets/javascripts/forgeos/jstree/jquery.tree.js +2061 -0
- data/app/assets/javascripts/forgeos/jstree/plugins/jquery.tree.contextmenu.js +129 -0
- data/app/assets/javascripts/forgeos/jstree/plugins/jquery.tree.cookie.js +70 -0
- data/app/assets/javascripts/forgeos/swfobject.js +4 -0
- data/app/assets/javascripts/forgeos/tiny_mce/jquery.tinymce.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ar.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/az.js +155 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/be.js +155 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/bg.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/bn.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/br.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/bs.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ca.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ch.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/cs.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/cy.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/da.js +155 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/de.js +155 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/dv.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/el.js +158 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/en.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/es.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/et.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/fa.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/fi.js +155 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/fr.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/gl.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/gu.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/he.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/hr.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/hu.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ia.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/id.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ii.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/is.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/it.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ja.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ko.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/lt.js +172 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/lv.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/mk.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ml.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/mn.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ms.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/nb.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/nl.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/nn.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/no.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/pl.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/pt.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ro.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/ru.js +155 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/sc.js +162 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/se.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/si.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/sk.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/sl.js +155 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/sq.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/sr.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/sv.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/th.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/tr.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/tt.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/tw.js +162 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/uk.js +157 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/vi.js +154 -0
- data/app/assets/javascripts/forgeos/tiny_mce/langs/zh.js +162 -0
- data/app/assets/javascripts/forgeos/tiny_mce/license.txt +504 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/css/advhr.css +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/editor_plugin_src.js +54 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/js/rule.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ar_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/az_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/be_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/bg_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/bn_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/br_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/bs_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ca_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ch_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/cs_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/cy_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/da_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/de_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/dv_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/el_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/en_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/es_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/et_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/fa_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/fi_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/fr_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/gl_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/gu_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/he_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/hr_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/hu_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ia_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/id_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ii_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/is_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/it_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ja_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ko_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/lt_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/lv_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/mk_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ml_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/mn_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ms_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/nb_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/nl_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/nn_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/no_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/pl_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/pt_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ro_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/ru_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/sc_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/se_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/si_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/sk_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/sl_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/sq_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/sr_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/sv_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/th_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/tr_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/tt_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/tw_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/uk_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/vi_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/langs/zh_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advhr/rule.htm +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/css/advimage.css +13 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/editor_plugin_src.js +47 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/image.htm +237 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/js/image.js +443 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ar_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/az_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/be_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/bg_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/bn_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/br_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/bs_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ca_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ch_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/cs_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/cy_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/da_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/de_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/dv_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/el_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/en_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/es_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/et_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/fa_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/fi_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/fr_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/gl_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/gu_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/he_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/hr_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/hu_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ia_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/id_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ii_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/is_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/it_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ja_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ko_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/lt_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/lv_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/mk_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ml_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/mn_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ms_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/nb_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/nl_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/nn_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/no_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/pl_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/pt_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ro_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/ru_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/sc_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/se_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/si_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/sk_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/sl_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/sq_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/sr_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/sv_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/th_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/tr_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/tt_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/tw_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/uk_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/vi_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advimage/langs/zh_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/css/advlink.css +8 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/editor_plugin_src.js +58 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/js/advlink.js +528 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ar_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/az_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/be_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/bg_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/bn_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/br_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/bs_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ca_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ch_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/cs_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/cy_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/da_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/de_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/dv_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/el_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/en_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/es_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/et_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/fa_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/fi_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/fr_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/gl_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/gu_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/he_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/hr_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/hu_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ia_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/id_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ii_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/is_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/it_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ja_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ko_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/lt_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/lv_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/mk_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ml_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/mn_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ms_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/nb_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/nl_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/nn_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/no_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/pl_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/pt_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ro_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/ru_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/sc_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/se_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/si_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/sk_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/sl_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/sq_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/sr_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/sv_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/th_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/tr_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/tt_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/tw_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/uk_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/vi_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/langs/zh_dlg.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/advlink/link.htm +338 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/autoresize/editor_plugin_src.js +114 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/autosave/editor_plugin_src.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/bbcode/editor_plugin_src.js +117 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/compat2x/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/compat2x/editor_plugin_src.js +616 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/contextmenu/editor_plugin_src.js +95 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/curblyadvimage/css/advimage.css +84 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/curblyadvimage/editor_plugin.js +49 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/curblyadvimage/editor_plugin_src.js +48 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/curblyadvimage/image.htm +273 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/curblyadvimage/img/sample.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/curblyadvimage/js/functions.js +511 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/curblyadvimage/langs/en_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/curblyadvimage/langs/fr_dlg.js +43 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/directionality/editor_plugin_src.js +79 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/editor_plugin_src.js +40 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/emotions.htm +40 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/js/emotions.js +22 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ar_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/az_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/be_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/bg_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/bn_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/br_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/bs_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ca_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ch_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/cs_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/cy_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/da_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/de_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/dv_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/el_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/en_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/es_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/et_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/fa_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/fi_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/fr_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/gl_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/gu_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/he_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/hr_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/hu_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ia_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/id_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ii_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/is_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/it_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ja_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ko_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/lt_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/lv_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/mk_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ml_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/mn_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ms_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/nb_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/nl_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/nn_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/no_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/pl_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/pt_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ro_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/ru_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/sc_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/se_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/si_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/sk_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/sl_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/sq_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/sr_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/sv_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/th_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/tr_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/tt_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/tw_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/uk_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/vi_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/emotions/langs/zh_dlg.js +20 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/example/dialog.htm +27 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/example/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/example/editor_plugin_src.js +81 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/example/img/example.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/example/js/dialog.js +19 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/example/langs/en.js +3 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/css/fullpage.css +182 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/editor_plugin_src.js +146 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/fullpage.htm +576 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/js/fullpage.js +461 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ar_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/az_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/be_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/bg_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/bn_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/br_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/bs_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ca_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ch_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/cs_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/cy_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/da_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/de_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/dv_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/el_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/en_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/es_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/et_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/fa_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/fi_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/fr_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/gl_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/gu_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/he_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/hr_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/hu_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ia_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/id_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ii_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/is_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/it_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ja_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ko_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/lt_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/lv_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/mk_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ml_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/mn_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ms_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/nb_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/nl_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/nn_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/no_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/pl_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/pt_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ro_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/ru_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/sc_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/se_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/si_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/sk_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/sl_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/sq_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/sr_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/sv_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/th_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/tr_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/tt_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/tw_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/uk_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/vi_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullpage/langs/zh_dlg.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullscreen/editor_plugin_src.js +145 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/iespell/editor_plugin_src.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +632 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +80 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/layer/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/layer/editor_plugin_src.js +209 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/css/content.css +6 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/css/media.css +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/editor_plugin_src.js +405 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/img/flash.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/img/flv_player.swf +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/img/quicktime.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/img/realmedia.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/img/shockwave.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/img/trans.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/img/windowsmedia.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/js/embed.js +73 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/js/media.js +630 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ar_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/az_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/be_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/bg_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/bn_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/br_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/bs_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ca_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ch_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/cs_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/cy_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/da_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/de_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/dv_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/el_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/en_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/es_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/et_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/fa_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/fi_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/fr_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/gl_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/gu_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/he_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/hr_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/hu_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ia_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/id_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ii_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/is_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/it_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ja_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ko_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/lt_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/lv_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/mk_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ml_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/mn_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ms_dlg.js +102 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/nb_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/nl_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/nn_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/no_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/pl_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/pt_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ro_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/ru_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/sc_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/se_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/si_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/sk_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/sl_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/sq_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/sr_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/sv_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/th_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/tr_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/tt_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/tw_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/uk_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/vi_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/langs/zh_dlg.js +103 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/media/media.htm +822 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +50 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/noneditable/editor_plugin_src.js +87 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/pagebreak/css/content.css +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/pagebreak/editor_plugin_src.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/pagebreak/img/pagebreak.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/editor_plugin_src.js +512 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/js/pastetext.js +36 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/js/pasteword.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ar_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/az_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/be_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/bg_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/bn_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/br_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/bs_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ca_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ch_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/cs_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/cy_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/da_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/de_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/dv_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/el_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/es_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/et_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/fa_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/fi_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/fr_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/gl_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/gu_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/he_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/hr_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/hu_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ia_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/id_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ii_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/is_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/it_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ja_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ko_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/lt_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/lv_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/mk_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ml_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/mn_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ms_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/nb_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/nl_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/nn_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/no_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/pl_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/pt_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ro_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/ru_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/sc_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/se_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/si_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/sk_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/sl_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/sq_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/sr_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/sv_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/th_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/tr_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/tt_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/tw_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/uk_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/vi_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/langs/zh_dlg.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/pastetext.htm +33 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/paste/pasteword.htm +27 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/preview/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/preview/editor_plugin_src.js +50 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/preview/example.html +28 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/preview/preview.html +17 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/print/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/print/editor_plugin_src.js +31 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/safari/blank.htm +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/safari/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/safari/editor_plugin_src.js +438 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/save/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/save/editor_plugin_src.js +98 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/editor_plugin_src.js +54 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/js/searchreplace.js +126 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ar_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/az_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/be_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/bg_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/bn_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/br_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/bs_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ca_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ch_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/cs_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/cy_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/da_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/de_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/dv_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/el_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/en_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/es_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/et_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/fa_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/fi_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/fr_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/gl_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/gu_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/he_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/hr_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/hu_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ia_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/id_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ii_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/is_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/it_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ja_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ko_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/lt_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/lv_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/mk_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ml_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/mn_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ms_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/nb_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/nl_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/nn_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/no_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/pl_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/pt_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ro_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/ru_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/sc_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/se_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/si_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/sk_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/sl_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/sq_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/sr_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/sv_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/th_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/tr_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/tt_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/tw_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/uk_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/vi_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/langs/zh_dlg.js +16 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/searchreplace/searchreplace.htm +104 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/spellchecker/editor_plugin_src.js +338 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/css/props.css +13 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/editor_plugin_src.js +52 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/js/props.js +641 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ar_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/az_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/be_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/bg_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/bn_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/br_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/bs_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ca_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ch_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/cs_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/cy_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/da_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/de_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/dv_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/el_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/en_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/es_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/et_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/fa_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/fi_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/fr_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/gl_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/gu_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/he_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/hr_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/hu_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ia_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/id_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ii_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/is_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/it_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ja_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ko_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/lt_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/lv_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/mk_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ml_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/mn_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ms_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/nb_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/nl_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/nn_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/no_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/pl_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/pt_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ro_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/ru_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/sc_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/se_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/si_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/sk_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/sl_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/sq_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/sr_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/sv_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/th_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/tr_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/tt_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/tw_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/uk_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/vi_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/langs/zh_dlg.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/style/props.htm +730 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/tabfocus/editor_plugin_src.js +109 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/cell.htm +183 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/css/cell.css +17 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/css/row.css +25 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/css/table.css +13 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/editor_plugin_src.js +1160 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/js/cell.js +269 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/js/merge_cells.js +29 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/js/row.js +212 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/js/table.js +440 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ar_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/az_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/be_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/bg_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/bn_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/br_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/bs_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ca_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ch_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/cs_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/cy_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/da_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/de_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/dv_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/el_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/en_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/es_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/et_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/fa_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/fi_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/fr_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/gl_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/gu_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/he_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/hr_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/hu_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ia_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/id_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ii_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/is_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/it_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ja_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ko_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/lt_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/lv_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/mk_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ml_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/mn_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ms_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/nb_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/nl_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/nn_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/no_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/pl_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/pt_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ro_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/ru_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/sc_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/se_dlg.js +73 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/si_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/sk_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/sl_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/sq_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/sr_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/sv_dlg.js +73 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/th_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/tr_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/tt_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/tw_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/uk_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/vi_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/langs/zh_dlg.js +74 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/merge_cells.htm +37 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/row.htm +160 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/table/table.htm +192 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/blank.htm +12 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/css/template.css +23 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/editor_plugin_src.js +156 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/js/template.js +106 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ar_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/az_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/be_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/bg_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/bn_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/br_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/bs_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ca_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ch_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/cs_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/cy_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/da_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/de_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/dv_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/el_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/en_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/es_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/et_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/fa_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/fi_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/fr_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/gl_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/gu_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/he_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/hr_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/hu_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ia_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/id_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ii_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/is_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/it_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ja_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ko_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/lt_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/lv_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/mk_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ml_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/mn_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ms_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/nb_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/nl_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/nn_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/no_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/pl_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/pt_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ro_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/ru_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/sc_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/se_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/si_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/sk_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/sl_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/sq_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/sr_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/sv_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/th_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/tr_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/tt_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/tw_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/uk_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/vi_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/langs/zh_dlg.js +15 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/template/template.htm +38 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/visualchars/editor_plugin_src.js +73 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/wordcount/editor_plugin_src.js +95 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/abbr.htm +148 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/acronym.htm +148 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/attributes.htm +153 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/cite.htm +148 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/del.htm +169 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +136 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/ins.htm +169 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/js/abbr.js +25 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/js/acronym.js +25 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/js/attributes.js +123 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/js/cite.js +25 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/js/del.js +60 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/js/element_common.js +231 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/js/ins.js +59 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ar_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/az_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/be_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/bg_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/bn_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/br_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/bs_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ca_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ch_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/cs_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/cy_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/da_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/de_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/dv_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/el_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/es_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/et_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/fa_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/fi_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/fr_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/gl_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/gu_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/he_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/hr_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/hu_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ia_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/id_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ii_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/is_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/it_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ja_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ko_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/lt_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/lv_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/mk_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ml_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/mn_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ms_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/nb_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/nl_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/nn_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/no_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/pl_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/pt_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ro_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/ru_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/sc_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/se_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/si_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/sk_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/sl_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/sq_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/sr_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/sv_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/th_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/tr_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/tt_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/tw_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/uk_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/vi_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/plugins/xhtmlxtras/langs/zh_dlg.js +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/about.htm +56 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/anchor.htm +31 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/charmap.htm +53 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/color_picker.htm +75 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/editor_template_src.js +1153 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/image.htm +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/js/about.js +72 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/js/anchor.js +37 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/js/charmap.js +325 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/js/color_picker.js +253 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/js/image.js +245 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/js/link.js +156 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/js/source_editor.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ar.js +64 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ar_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/az.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/az_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/be.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/be_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/bg.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/bg_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/bn.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/bn_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/br.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/br_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/bs.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/bs_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ca.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ca_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ch.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ch_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/cs.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/cs_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/cy.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/cy_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/da.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/da_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/de.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/de_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/dv.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/dv_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/el.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/el_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/en.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/en_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/es.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/es_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/et.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/et_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/fa.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/fa_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/fi.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/fi_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/fr.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/fr_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/gl.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/gl_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/gu.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/gu_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/he.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/he_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/hr.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/hr_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/hu.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/hu_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ia.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ia_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/id.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/id_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ii.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ii_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/is.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/is_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/it.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/it_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ja.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ja_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ko.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ko_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/lt.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/lt_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/lv.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/lv_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/mk.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/mk_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ml.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ml_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/mn.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/mn_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ms.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ms_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/nb.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/nb_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/nl.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/nl_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/nn.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/nn_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/no.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/no_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/pl.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/pl_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/pt.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/pt_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ro.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ro_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ru.js +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/ru_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sc.js +64 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sc_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/se.js +60 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/se_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/si.js +61 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/si_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sk.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sk_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sl.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sl_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sq.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sq_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sr.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sr_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sv.js +60 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/sv_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/th.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/th_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/tr.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/tr_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/tt.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/tt_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/tw.js +64 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/tw_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/uk.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/uk_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/vi.js +62 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/vi_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/zh.js +64 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/langs/zh_dlg.js +51 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/link.htm +63 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/content.css +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/dialog.css +116 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/default/ui.css +214 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/content.css +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/dialog.css +116 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/align-left.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/align-right.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/background.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/bold.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/buttons.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/center.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/glossy-gray-left.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/glossy-gray-right.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/html-tag.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/italic.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/items.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/justify.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/line-throught.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/menu_arrow.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/menu_check.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/progress.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/separator.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/tab-to-left.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/tab-to-right.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/tabs.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/tinymce.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/img/underline.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/forgeos/ui.css +244 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/o2k7/content.css +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/o2k7/dialog.css +115 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/o2k7/ui.css +215 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/advanced/source_editor.htm +31 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/editor_template.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/editor_template_src.js +85 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ar.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/az.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/be.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/bg.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/bn.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/br.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/bs.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ca.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ch.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/cs.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/cy.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/da.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/de.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/dv.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/el.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/en.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/es.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/et.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/fa.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/fi.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/fr.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/gl.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/gu.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/he.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/hr.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/hu.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ia.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/id.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ii.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/is.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/it.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ja.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ko.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/lt.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/lv.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/mk.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ml.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/mn.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ms.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/nb.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/nl.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/nn.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/no.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/pl.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/pt.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ro.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/ru.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/sc.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/se.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/si.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/sk.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/sl.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/sq.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/sr.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/sv.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/th.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/tr.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/tt.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/tw.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/uk.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/vi.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/langs/zh.js +11 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/skins/default/content.css +25 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/skins/default/ui.css +32 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/app/assets/javascripts/forgeos/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
- data/app/assets/javascripts/forgeos/tiny_mce/tiny_mce.js +1 -0
- data/app/assets/javascripts/forgeos/tiny_mce/tiny_mce_popup.js +5 -0
- data/app/assets/javascripts/forgeos/tiny_mce/tiny_mce_src.js +12332 -0
- data/app/assets/javascripts/forgeos/tiny_mce/utils/editable_selects.js +69 -0
- data/app/assets/javascripts/forgeos/tiny_mce/utils/form_utils.js +199 -0
- data/app/assets/javascripts/forgeos/tiny_mce/utils/mctabs.js +76 -0
- data/app/assets/javascripts/forgeos/tiny_mce/utils/validate.js +219 -0
- data/app/assets/stylesheets/forgeos/960.css.sass +435 -0
- data/app/assets/stylesheets/forgeos/admin/base.css.sass +1 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_all.css.sass +21 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_attachments.css.sass +37 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_colours.css.sass +35 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_common.css.sass +27 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_content.css.sass +60 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_customer.css.sass +72 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_dashboard.css.sass +169 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_datatable.css.sass +260 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_dropdowns.css.sass +314 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_generals.css.sass +427 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_icons.css.sass +404 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_lightbox.css.sass +147 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_menu.css.sass +70 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_notifications.css.sass +33 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_payment.css.sass +20 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_rightSidebar.css.sass +168 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_roles.css.sass +7 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_search.css.sass +50 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_settings.css.sass +43 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_sidebar.css.sass +53 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_statistics.css.sass +67 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_uploadify.css.sass +19 -0
- data/app/assets/stylesheets/forgeos/admin/forgeos_core/_visuals.css.sass +115 -0
- data/app/assets/stylesheets/forgeos/admin/ie-sucks.css +21 -0
- data/app/assets/stylesheets/forgeos/admin/iepngfix.htc +68 -0
- data/app/assets/stylesheets/forgeos/admin/login.css.sass +96 -0
- data/app/assets/stylesheets/forgeos/dataTables/demo_page.css +81 -0
- data/app/assets/stylesheets/forgeos/dataTables/demo_table.css +415 -0
- data/app/assets/stylesheets/forgeos/jquery-ui/themes/blitzer.css +404 -0
- data/app/assets/stylesheets/forgeos/jquery-ui/themes/dot-luv.css +404 -0
- data/app/assets/stylesheets/forgeos/jquery-ui/themes/forgeos.css.sass +2717 -0
- data/app/assets/stylesheets/forgeos/jquery-ui/themes/humanity.css +404 -0
- data/app/assets/stylesheets/forgeos/jquery-ui/themes/redmond.css +404 -0
- data/app/assets/stylesheets/forgeos/jquery-ui/themes/smoothness.css +404 -0
- data/app/assets/stylesheets/forgeos/jquery-ui/themes/start.css +404 -0
- data/app/assets/stylesheets/forgeos/jquery-ui/themes/swanky-purse.css +404 -0
- data/app/assets/stylesheets/forgeos/jquery.selectbox.css +75 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/bubble-quantity-products.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/check-checked.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/check-unchecked.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/context.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/create.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/dark-blue-minus.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/dark-blue-plus.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/dot.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/f.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/fminus.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/fminus_rtl.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/folder.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/fplus.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/fplus_rtl.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/lastli.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/lastli_rtl.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/li.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/remove.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/rename.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/style.css.sass +166 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/association_categories/throbber.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/brown-minus.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/brown-plus.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/bubble-quantity-elements.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/context.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/create.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/dot.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/f.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/fminus.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/fminus_rtl.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/fplus.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/fplus_rtl.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/images.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/lastli.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/lastli_rtl.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/li.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/remove.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/rename.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/style.css +106 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/style.css.sass +126 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/categories/throbber.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/marker.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/marker_rtl.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/plus.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/remove.gif +0 -0
- data/app/assets/stylesheets/forgeos/jstree/themes/remove.png +0 -0
- data/app/assets/stylesheets/forgeos/jstree/tree_component.css.sass +204 -0
- data/app/controllers/admin/accounts_controller.rb +50 -0
- data/app/controllers/admin/administrators_controller.rb +95 -0
- data/app/controllers/admin/attachments_controller.rb +195 -0
- data/app/controllers/admin/base_controller.rb +55 -0
- data/app/controllers/admin/cachings_controller.rb +60 -0
- data/app/controllers/admin/categories_controller.rb +152 -0
- data/app/controllers/admin/dashboard_controller.rb +10 -0
- data/app/controllers/admin/import_controller.rb +102 -0
- data/app/controllers/admin/person_sessions_controller.rb +48 -0
- data/app/controllers/admin/rights_controller.rb +106 -0
- data/app/controllers/admin/roles_controller.rb +118 -0
- data/app/controllers/admin/settings_controller.rb +33 -0
- data/app/controllers/admin/statistics_controller.rb +114 -0
- data/app/controllers/admin/tags_controller.rb +16 -0
- data/app/controllers/admin/users_controller.rb +201 -0
- data/app/controllers/forgeos/application_controller.rb +85 -0
- data/app/controllers/person_sessions_controller.rb +22 -0
- data/app/controllers/search_controller.rb +14 -0
- data/app/controllers/statistics_collector_controller.rb +17 -0
- data/app/helpers/admin/attachment_helper.rb +56 -0
- data/app/helpers/admin/base_helper.rb +164 -0
- data/app/helpers/forgeos/application_helper.rb +114 -0
- data/app/models/address.rb +21 -0
- data/app/models/admin_category.rb +7 -0
- data/app/models/administrator.rb +17 -0
- data/app/models/attachment.rb +44 -0
- data/app/models/attachment_category.rb +7 -0
- data/app/models/attachment_link.rb +4 -0
- data/app/models/audio.rb +4 -0
- data/app/models/audio_category.rb +2 -0
- data/app/models/avatar.rb +4 -0
- data/app/models/category.rb +44 -0
- data/app/models/country.rb +2 -0
- data/app/models/doc.rb +4 -0
- data/app/models/doc_category.rb +2 -0
- data/app/models/geo_zone.rb +13 -0
- data/app/models/import_set.rb +4 -0
- data/app/models/media.rb +4 -0
- data/app/models/media_category.rb +2 -0
- data/app/models/meta_info.rb +4 -0
- data/app/models/page_viewed_counter.rb +2 -0
- data/app/models/pdf.rb +4 -0
- data/app/models/pdf_category.rb +2 -0
- data/app/models/person.rb +68 -0
- data/app/models/person_session.rb +3 -0
- data/app/models/picture.rb +4 -0
- data/app/models/picture_category.rb +2 -0
- data/app/models/right.rb +14 -0
- data/app/models/right_category.rb +4 -0
- data/app/models/role.rb +16 -0
- data/app/models/role_category.rb +3 -0
- data/app/models/rule.rb +30 -0
- data/app/models/search_keyword.rb +3 -0
- data/app/models/search_keyword_counter.rb +2 -0
- data/app/models/setting.rb +25 -0
- data/app/models/statistic_counter.rb +21 -0
- data/app/models/user.rb +12 -0
- data/app/models/user_category.rb +3 -0
- data/app/models/user_notifier.rb +10 -0
- data/app/models/video.rb +4 -0
- data/app/models/video_category.rb +2 -0
- data/app/models/visitor_counter.rb +2 -0
- data/app/views/admin/accounts/_form.html.haml +33 -0
- data/app/views/admin/accounts/edit.html.haml +1 -0
- data/app/views/admin/accounts/show.html.haml +24 -0
- data/app/views/admin/administrators/_form.html.haml +34 -0
- data/app/views/admin/administrators/_form_rights.html.haml +9 -0
- data/app/views/admin/administrators/_tabs.html.haml +6 -0
- data/app/views/admin/administrators/edit.html.haml +2 -0
- data/app/views/admin/administrators/index.html.haml +12 -0
- data/app/views/admin/administrators/index.json.erb +36 -0
- data/app/views/admin/administrators/new.html.haml +2 -0
- data/app/views/admin/administrators/show.html.haml +24 -0
- data/app/views/admin/administrators/update_rights.html.haml +1 -0
- data/app/views/admin/attachments/_attachments_popup.html.haml +47 -0
- data/app/views/admin/attachments/_audio.html.haml +45 -0
- data/app/views/admin/attachments/_doc.html.haml +35 -0
- data/app/views/admin/attachments/_form.html.haml +95 -0
- data/app/views/admin/attachments/_list_associated_elements.html.haml +12 -0
- data/app/views/admin/attachments/_media.html.haml +35 -0
- data/app/views/admin/attachments/_pdf.html.haml +35 -0
- data/app/views/admin/attachments/_picture.html.haml +66 -0
- data/app/views/admin/attachments/_table_thumbnail.html.haml +6 -0
- data/app/views/admin/attachments/_tabs.html.haml +7 -0
- data/app/views/admin/attachments/_tiny_mce_list.html.haml +22 -0
- data/app/views/admin/attachments/_video.html.haml +44 -0
- data/app/views/admin/attachments/edit.html.haml +1 -0
- data/app/views/admin/attachments/index.html.haml +15 -0
- data/app/views/admin/attachments/index.json.erb +30 -0
- data/app/views/admin/attachments/new.html.haml +3 -0
- data/app/views/admin/attachments/show.html.haml +24 -0
- data/app/views/admin/cachings/_tabs.html.haml +6 -0
- data/app/views/admin/cachings/index.html.haml +14 -0
- data/app/views/admin/categories/_associated_elements.html.haml +22 -0
- data/app/views/admin/categories/_list.html.haml +15 -0
- data/app/views/admin/categories/index.json.erb +15 -0
- data/app/views/admin/import/_map_fields.html.haml +38 -0
- data/app/views/admin/import/_tabs.html.haml +5 -0
- data/app/views/admin/import/create.html.haml +3 -0
- data/app/views/admin/import/index.html.haml +29 -0
- data/app/views/admin/person_sessions/_new_form.html.haml +24 -0
- data/app/views/admin/person_sessions/destroy.html.haml +21 -0
- data/app/views/admin/person_sessions/new.html.haml +1 -0
- data/app/views/admin/person_sessions/reset_password.html.haml +15 -0
- data/app/views/admin/rights/_form.html.haml +22 -0
- data/app/views/admin/rights/_tabs.html.haml +5 -0
- data/app/views/admin/rights/edit.html.haml +3 -0
- data/app/views/admin/rights/index.html.haml +13 -0
- data/app/views/admin/rights/index.json.erb +28 -0
- data/app/views/admin/rights/new.html.haml +3 -0
- data/app/views/admin/rights/show.html.haml +16 -0
- data/app/views/admin/roles/_form.html.haml +57 -0
- data/app/views/admin/roles/_form_rights.html.haml +8 -0
- data/app/views/admin/roles/_tabs.html.haml +5 -0
- data/app/views/admin/roles/edit.html.haml +1 -0
- data/app/views/admin/roles/index.html.haml +13 -0
- data/app/views/admin/roles/index.json.erb +34 -0
- data/app/views/admin/roles/new.html.haml +1 -0
- data/app/views/admin/roles/show.html.haml +49 -0
- data/app/views/admin/settings/_backup.html.haml +0 -0
- data/app/views/admin/settings/_display.html.haml +7 -0
- data/app/views/admin/settings/_general.html.haml +37 -0
- data/app/views/admin/settings/_mailer.html.haml +40 -0
- data/app/views/admin/settings/_tabs.html.haml +9 -0
- data/app/views/admin/settings/edit.html.haml +18 -0
- data/app/views/admin/sidebars/_attachments_popups.html.haml +101 -0
- data/app/views/admin/sidebars/_left_sidebar.html.haml +29 -0
- data/app/views/admin/users/_fieldset_account_informations.html.haml +19 -0
- data/app/views/admin/users/_form.html.haml +58 -0
- data/app/views/admin/users/_tabs.html.haml +0 -0
- data/app/views/admin/users/edit.html.haml +2 -0
- data/app/views/admin/users/index.html.haml +12 -0
- data/app/views/admin/users/index.json.erb +40 -0
- data/app/views/admin/users/new.html.haml +2 -0
- data/app/views/admin/users/show.html.haml +36 -0
- data/app/views/admin/visual/_visual_popup.html.haml +170 -0
- data/app/views/admin/visual/_visuals_popup.html.haml +83 -0
- data/app/views/layouts/admin.html.haml +40 -0
- data/app/views/layouts/admin_login.html.haml +19 -0
- data/app/views/person_sessions/_new_form.html.haml +9 -0
- data/app/views/person_sessions/new.html.haml +1 -0
- data/app/views/user_notifier/reset_password.html.haml +5 -0
- data/config/initializers/load_settings.rb +7 -0
- data/config/locales/activerecord/en.yml +17 -0
- data/config/locales/activerecord/fr.yml +44 -0
- data/config/locales/admin/account/en.yml +4 -0
- data/config/locales/admin/account/fr.yml +4 -0
- data/config/locales/admin/address/en.yml +10 -0
- data/config/locales/admin/address/fr.yml +10 -0
- data/config/locales/admin/admin/en.yml +32 -0
- data/config/locales/admin/admin/fr.yml +32 -0
- data/config/locales/admin/import/en.yml +24 -0
- data/config/locales/admin/import/fr.yml +23 -0
- data/config/locales/admin/right/en.yml +20 -0
- data/config/locales/admin/right/fr.yml +20 -0
- data/config/locales/admin/role/en.yml +21 -0
- data/config/locales/admin/role/fr.yml +21 -0
- data/config/locales/admin/session/en.yml +3 -0
- data/config/locales/admin/session/fr.yml +3 -0
- data/config/locales/admin/statistics/en.yml +20 -0
- data/config/locales/admin/statistics/fr.yml +20 -0
- data/config/locales/common/en.yml +350 -0
- data/config/locales/common/fr.yml +351 -0
- data/config/locales/date/en.yml +19 -0
- data/config/locales/date/fr.yml +22 -0
- data/config/locales/datetime/fr.yml +44 -0
- data/config/locales/en.rb +19 -0
- data/config/locales/fr.rb +11 -0
- data/config/locales/lang/en.yml +9 -0
- data/config/locales/lang/fr.yml +9 -0
- data/config/locales/number/fr.yml +30 -0
- data/config/locales/time/en.yml +18 -0
- data/config/locales/time/fr.yml +14 -0
- data/config/routes.rb +77 -0
- data/db/fixtures/geo_zones.yml +1582 -0
- data/db/fixtures/people.yml +11 -0
- data/db/fixtures/settings.yml +71 -0
- data/db/migrate/20091009134412_create_addresses.rb +18 -0
- data/db/migrate/20091009134419_create_attachments.rb +22 -0
- data/db/migrate/20091009134426_create_attachments_elements.rb +13 -0
- data/db/migrate/20091009134547_create_categories.rb +14 -0
- data/db/migrate/20091009134554_create_categories_elements.rb +11 -0
- data/db/migrate/20091009134602_create_comments.rb +18 -0
- data/db/migrate/20091009134638_create_geo_zones.rb +17 -0
- data/db/migrate/20091009134645_create_meta_infos.rb +14 -0
- data/db/migrate/20091009134743_create_people.rb +31 -0
- data/db/migrate/20091009134828_create_rights.rb +13 -0
- data/db/migrate/20091009134836_create_rights_roles.rb +12 -0
- data/db/migrate/20091009134843_create_roles.rb +14 -0
- data/db/migrate/20091009134850_create_rules.rb +22 -0
- data/db/migrate/20091009134858_create_search_keywords.rb +12 -0
- data/db/migrate/20091009134919_create_statistic_counters.rb +15 -0
- data/db/migrate/20091009134933_create_tags.rb +26 -0
- data/db/migrate/20091030163643_create_settings.rb +20 -0
- data/db/migrate/20091103220541_migrate_from_restful_authentication_to_authlogic.rb +47 -0
- data/db/migrate/20091106163507_add_element_type_to_attachments_elements.rb +17 -0
- data/db/migrate/20091208113464_create_meta_info_translations.rb +9 -0
- data/db/migrate/20091208113465_create_category_translations.rb +9 -0
- data/db/migrate/20091208170261_remove_translations_to_meta_info.rb +10 -0
- data/db/migrate/20091208170262_remove_translations_to_categories.rb +8 -0
- data/db/migrate/20100413133941_add_index_on_categories.rb +13 -0
- data/db/migrate/20100514181312_create_import_sets.rb +15 -0
- data/db/migrate/20100520122617_add_delta_to_person.rb +10 -0
- data/db/migrate/20100611161407_add_position_to_categories_elements.rb +9 -0
- data/db/migrate/20101111121533_add_position_to_categoriesx.rb +9 -0
- data/db/migrate/20101125115041_add_description_and_alt_to_attachments.rb +11 -0
- data/db/migrate/20110310144114_add_perishable_token_to_people.rb +10 -0
- data/db/migrate/20110628082353_add_attachments_to_settings.rb +9 -0
- data/lib/extensions/form_helper_extensions.rb +8 -0
- data/lib/extensions/i18n_fallbacks_config.rb +8 -0
- data/lib/extensions.rb +2 -0
- data/lib/flash_session_cookie_middleware.rb +20 -0
- data/lib/forgeos/core/engine.rb +9 -0
- data/lib/forgeos/core.rb +12 -0
- data/lib/forgeos/statistics.rb +11 -0
- data/lib/forgeos.rb +89 -0
- data/lib/forgeos_core.rb +1 -0
- data/lib/map_fields.rb +187 -0
- data/lib/sortable_attachments.rb +42 -0
- data/lib/sphinx_globalize.rb +23 -0
- data/lib/tasks/attachments_migration.rake +24 -0
- data/lib/tasks/fixtures.rake +64 -0
- data/lib/tasks/generate.rake +60 -0
- data/lib/tasks/install.rake +9 -0
- data/lib/tasks/translations.rake +15 -0
- data/lib/tasks/update_thumbnails.rake +50 -0
- data/lib/technoweenie/attachment_fu/backends/ftp_backend.rb +259 -0
- data/lib/tiny_mce_link_renderer.rb +10 -0
- data/recipes/db.rb +28 -0
- data/recipes/deploy.rb +39 -0
- metadata +2080 -0
@@ -0,0 +1,4417 @@
|
|
1
|
+
/*
|
2
|
+
* File: jquery.dataSlides.js
|
3
|
+
* Version: 1.5.2
|
4
|
+
* CVS: $Id$
|
5
|
+
* Description: Paginate, search and sort HTML tables
|
6
|
+
* Author: Allan Jardine (www.sprymedia.co.uk)
|
7
|
+
* Created: 28/3/2008
|
8
|
+
* Modified: $Date$ by $Author$
|
9
|
+
* Language: Javascript
|
10
|
+
* License: GPL v2 or BSD 3 point style
|
11
|
+
* Project: Mtaala
|
12
|
+
* Contact: allan.jardine@sprymedia.co.uk
|
13
|
+
*
|
14
|
+
* Copyright 2008-2009 Allan Jardine, all rights reserved.
|
15
|
+
*
|
16
|
+
* This source file is free software, under either the GPL v2 license or a
|
17
|
+
* BSD style license, as supplied with this software.
|
18
|
+
*
|
19
|
+
* This source file is distributed in the hope that it will be useful, but
|
20
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
21
|
+
* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
|
22
|
+
*
|
23
|
+
* For details pleease refer to: http://www.dataSlides.net
|
24
|
+
*/
|
25
|
+
|
26
|
+
/*
|
27
|
+
* When considering jsLint, we need to allow eval() as it it is used for reading cookies and
|
28
|
+
* building the dynamic multi-column sort functions.
|
29
|
+
*/
|
30
|
+
/*jslint evil: true, undef: true, browser: true */
|
31
|
+
/*globals $, jQuery,_fnReadCookie,_fnProcessingDisplay,_fnDraw,_fnSort,_fnReDraw,_fnDetectType,_fnSortingClasses,_fnSettingsFromNode,_fnBuildSearchArray,_fnCalculateEnd,_fnFeatureHtmlProcessing,_fnFeatureHtmlPaginate,_fnFeatureHtmlInfo,_fnFeatureHtmlFilter,_fnFilter,_fnSaveState,_fnFilterColumn,_fnEscapeRegex,_fnFilterComplete,_fnFeatureHtmlLength,_fnGetDataMaster,_fnVisibleToColumnIndex,_fnDrawHead,_fnAddData,_fnGetTrNodes,_fnColumnIndexToVisible,_fnCreateCookie,_fnAddOptionsHtml,_fnMap,_fnClearTable,_fnDataToSearch,_fnReOrderIndex,_fnFilterCustom,_fnVisbleColumns,_fnAjaxUpdate,_fnAjaxUpdateDraw,_fnColumnOrdering,fnGetMaxLenString*/
|
32
|
+
|
33
|
+
(function($) {
|
34
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
35
|
+
* dataSlides variables
|
36
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
37
|
+
|
38
|
+
/*
|
39
|
+
* Variable: dataSlideSettings
|
40
|
+
* Purpose: Store the settings for each dataSlides instance
|
41
|
+
* Scope: jQuery.fn
|
42
|
+
*/
|
43
|
+
$.fn.dataSlideSettings = [];
|
44
|
+
|
45
|
+
/*
|
46
|
+
* Variable: dataSlideExt
|
47
|
+
* Purpose: Container for customisable parts of dataSlides
|
48
|
+
* Scope: jQuery.fn
|
49
|
+
*/
|
50
|
+
$.fn.dataSlideExt = {};
|
51
|
+
var _oExt = $.fn.dataSlideExt; /* Short reference for fast internal lookup */
|
52
|
+
|
53
|
+
|
54
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
55
|
+
* dataSlides extensible objects
|
56
|
+
*
|
57
|
+
* The _oExt object is used to provide an area where user dfined plugins can be
|
58
|
+
* added to dataSlides. The following properties of the object are used:
|
59
|
+
* oApi - Plug-in API functions
|
60
|
+
* aTypes - Auto-detection of types
|
61
|
+
* oSort - Sorting functions used by dataSlides (based on the type)
|
62
|
+
* oPagination - Pagination functions for different input styles
|
63
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
64
|
+
|
65
|
+
/*
|
66
|
+
* Variable: sVersion
|
67
|
+
* Purpose: Version string for plug-ins to check compatibility
|
68
|
+
* Scope: jQuery.fn.dataSlideExt
|
69
|
+
*/
|
70
|
+
_oExt.sVersion = "1.5.2";
|
71
|
+
|
72
|
+
/*
|
73
|
+
* Variable: iApiIndex
|
74
|
+
* Purpose: Index for what 'this' index API functions should use
|
75
|
+
* Scope: jQuery.fn.dataSlideExt
|
76
|
+
*/
|
77
|
+
_oExt.iApiIndex = 0;
|
78
|
+
|
79
|
+
/*
|
80
|
+
* Variable: oApi
|
81
|
+
* Purpose: Container for plugin API functions
|
82
|
+
* Scope: jQuery.fn.dataSlideExt
|
83
|
+
*/
|
84
|
+
_oExt.oApi = { };
|
85
|
+
|
86
|
+
/*
|
87
|
+
* Variable: aFiltering
|
88
|
+
* Purpose: Container for plugin filtering functions
|
89
|
+
* Scope: jQuery.fn.dataSlideExt
|
90
|
+
*/
|
91
|
+
_oExt.afnFiltering = [ ];
|
92
|
+
|
93
|
+
/*
|
94
|
+
* Variable: aoFeatures
|
95
|
+
* Purpose: Container for plugin function functions
|
96
|
+
* Scope: jQuery.fn.dataSlideExt
|
97
|
+
* Notes: Array of objects with the following parameters:
|
98
|
+
* fnInit: Function for initialisation of Feature. Takes oSettings and returns node
|
99
|
+
* cFeature: Character that will be matched in sDom - case sensitive
|
100
|
+
* sFeature: Feature name - just for completeness :-)
|
101
|
+
*/
|
102
|
+
_oExt.aoFeatures = [ ];
|
103
|
+
|
104
|
+
/*
|
105
|
+
* Variable: ofnSearch
|
106
|
+
* Purpose: Container for custom filtering functions
|
107
|
+
* Scope: jQuery.fn.dataSlideExt
|
108
|
+
* Notes: This is an object (the name should match the type) for custom filtering function,
|
109
|
+
* which can be used for live DOM checking or formatted text filtering
|
110
|
+
*/
|
111
|
+
_oExt.ofnSearch = { };
|
112
|
+
|
113
|
+
/*
|
114
|
+
* Variable: oStdClasses
|
115
|
+
* Purpose: Storage for the various classes that dataSlides uses
|
116
|
+
* Scope: jQuery.fn.dataSlideExt
|
117
|
+
*/
|
118
|
+
_oExt.oStdClasses = {
|
119
|
+
/* Two buttons buttons */
|
120
|
+
"sPagePrevEnabled": "paginate_enabled_previous",
|
121
|
+
"sPagePrevDisabled": "paginate_disabled_previous",
|
122
|
+
"sPageNextEnabled": "paginate_enabled_next",
|
123
|
+
"sPageNextDisabled": "paginate_disabled_next",
|
124
|
+
"sPageJUINext": "",
|
125
|
+
"sPageJUIPrev": "",
|
126
|
+
|
127
|
+
/* Full numbers paging buttons */
|
128
|
+
"sPageButton": "paginate_button",
|
129
|
+
"sPageButtonActive": "paginate_active",
|
130
|
+
"sPageButtonStaticActive": "paginate_button",
|
131
|
+
"sPageFirst": "first",
|
132
|
+
"sPagePrevious": "previous",
|
133
|
+
"sPageNext": "next",
|
134
|
+
"sPageLast": "last",
|
135
|
+
|
136
|
+
/* Stripping classes */
|
137
|
+
"sStripOdd": "odd",
|
138
|
+
"sStripEven": "even",
|
139
|
+
|
140
|
+
/* Empty row */
|
141
|
+
"sRowEmpty": "dataSlides_empty",
|
142
|
+
|
143
|
+
/* Features */
|
144
|
+
"sWrapper": "dataSlides_wrapper",
|
145
|
+
"sFilter": "dataSlides_filter",
|
146
|
+
"sInfo": "dataSlides_info",
|
147
|
+
"sPaging": "dataSlides_paginate paging_", /* Note that the type is postfixed */
|
148
|
+
"sLength": "dataSlides_length",
|
149
|
+
"sProcessing": "dataSlides_processing",
|
150
|
+
|
151
|
+
/* Sorting */
|
152
|
+
"sSortAsc": "sorting_asc",
|
153
|
+
"sSortDesc": "sorting_desc",
|
154
|
+
"sSortable": "sorting",
|
155
|
+
"sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */
|
156
|
+
"sSortJUIAsc": "",
|
157
|
+
"sSortJUIDesc": "",
|
158
|
+
"sSortJUI": ""
|
159
|
+
};
|
160
|
+
|
161
|
+
/*
|
162
|
+
* Variable: oJUIClasses
|
163
|
+
* Purpose: Storage for the various classes that dataSlides uses - jQuery UI suitable
|
164
|
+
* Scope: jQuery.fn.dataSlideExt
|
165
|
+
*/
|
166
|
+
_oExt.oJUIClasses = {
|
167
|
+
/* Two buttons buttons */
|
168
|
+
"sPagePrevEnabled": "fg-button ui-state-default ui-corner-left",
|
169
|
+
"sPagePrevDisabled": "fg-button ui-state-default ui-corner-left ui-state-disabled",
|
170
|
+
"sPageNextEnabled": "fg-button ui-state-default ui-corner-right",
|
171
|
+
"sPageNextDisabled": "fg-button ui-state-default ui-corner-right ui-state-disabled",
|
172
|
+
"sPageJUINext": "ui-icon ui-icon-circle-arrow-e",
|
173
|
+
"sPageJUIPrev": "ui-icon ui-icon-circle-arrow-w",
|
174
|
+
|
175
|
+
/* Full numbers paging buttons */
|
176
|
+
"sPageButton": "fg-button ui-state-default",
|
177
|
+
"sPageButtonActive": "fg-button ui-state-default ui-state-disabled",
|
178
|
+
"sPageButtonStaticActive": "fg-button ui-state-default ui-state-disabled",
|
179
|
+
"sPageFirst": "first ui-corner-tl ui-corner-bl",
|
180
|
+
"sPagePrevious": "previous",
|
181
|
+
"sPageNext": "next",
|
182
|
+
"sPageLast": "last ui-corner-tr ui-corner-br",
|
183
|
+
|
184
|
+
/* Stripping classes */
|
185
|
+
"sStripOdd": "odd",
|
186
|
+
"sStripEven": "even",
|
187
|
+
|
188
|
+
/* Empty row */
|
189
|
+
"sRowEmpty": "dataSlides_empty",
|
190
|
+
|
191
|
+
/* Features */
|
192
|
+
"sWrapper": "dataSlides_wrapper",
|
193
|
+
"sFilter": "dataSlides_filter",
|
194
|
+
"sInfo": "dataSlides_info",
|
195
|
+
"sPaging": "dataSlides_paginate fg-buttonset fg-buttonset-multi paging_", /* Note that the type is postfixed */
|
196
|
+
"sLength": "dataSlides_length",
|
197
|
+
"sProcessing": "dataSlides_processing",
|
198
|
+
|
199
|
+
/* Sorting */
|
200
|
+
"sSortAsc": "ui-state-default",
|
201
|
+
"sSortDesc": "ui-state-default",
|
202
|
+
"sSortable": "ui-state-default",
|
203
|
+
"sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */
|
204
|
+
"sSortJUIAsc": "css_right ui-icon ui-icon-triangle-1-n",
|
205
|
+
"sSortJUIDesc": "css_right ui-icon ui-icon-triangle-1-s",
|
206
|
+
"sSortJUI": "css_right ui-icon ui-icon-triangle-2-n-s"
|
207
|
+
};
|
208
|
+
|
209
|
+
/*
|
210
|
+
* Variable: oPagination
|
211
|
+
* Purpose: Container for the various type of pagination that dataSlides supports
|
212
|
+
* Scope: jQuery.fn.dataSlideExt
|
213
|
+
*/
|
214
|
+
_oExt.oPagination = {
|
215
|
+
/*
|
216
|
+
* Variable: two_button
|
217
|
+
* Purpose: Standard two button (forward/back) pagination
|
218
|
+
* Scope: jQuery.fn.dataSlideExt.oPagination
|
219
|
+
*/
|
220
|
+
"two_button": {
|
221
|
+
/*
|
222
|
+
* Function: oPagination.two_button.fnInit
|
223
|
+
* Purpose: Initalise dom elements required for pagination with forward/back buttons only
|
224
|
+
* Returns: -
|
225
|
+
* Inputs: object:oSettings - dataSlides settings object
|
226
|
+
* function:fnCallbackDraw - draw function which must be called on update
|
227
|
+
*/
|
228
|
+
"fnInit": function ( oSettings, fnCallbackDraw )
|
229
|
+
{
|
230
|
+
var nPaging = oSettings.anFeatures.p;
|
231
|
+
|
232
|
+
/* Store the next and previous elements in the oSettings object as they can be very
|
233
|
+
* usful for automation - particularly testing
|
234
|
+
*/
|
235
|
+
if ( !oSettings.bJUI )
|
236
|
+
{
|
237
|
+
oSettings.nPrevious = document.createElement( 'div' );
|
238
|
+
oSettings.nNext = document.createElement( 'div' );
|
239
|
+
}
|
240
|
+
else
|
241
|
+
{
|
242
|
+
oSettings.nPrevious = document.createElement( 'a' );
|
243
|
+
oSettings.nNext = document.createElement( 'a' );
|
244
|
+
|
245
|
+
var nNextInner = document.createElement('span');
|
246
|
+
nNextInner.className = oSettings.oClasses.sPageJUINext;
|
247
|
+
oSettings.nNext.appendChild( nNextInner );
|
248
|
+
|
249
|
+
var nPreviousInner = document.createElement('span');
|
250
|
+
nPreviousInner.className = oSettings.oClasses.sPageJUIPrev;
|
251
|
+
oSettings.nPrevious.appendChild( nPreviousInner );
|
252
|
+
}
|
253
|
+
|
254
|
+
if ( oSettings.sTableId !== '' )
|
255
|
+
{
|
256
|
+
nPaging.setAttribute( 'id', oSettings.sTableId+'_paginate' );
|
257
|
+
oSettings.nPrevious.setAttribute( 'id', oSettings.sTableId+'_previous' );
|
258
|
+
oSettings.nNext.setAttribute( 'id', oSettings.sTableId+'_next' );
|
259
|
+
}
|
260
|
+
|
261
|
+
oSettings.nPrevious.className = oSettings.oClasses.sPagePrevDisabled;
|
262
|
+
oSettings.nNext.className = oSettings.oClasses.sPageNextDisabled;
|
263
|
+
|
264
|
+
oSettings.nPrevious.title = oSettings.oLanguage.oPaginate.sPrevious;
|
265
|
+
oSettings.nNext.title = oSettings.oLanguage.oPaginate.sNext;
|
266
|
+
|
267
|
+
nPaging.appendChild( oSettings.nPrevious );
|
268
|
+
nPaging.appendChild( oSettings.nNext );
|
269
|
+
$(nPaging).insertAfter( oSettings.nTable );
|
270
|
+
|
271
|
+
$(oSettings.nPrevious).click( function() {
|
272
|
+
oSettings._iDisplayStart -= oSettings._iDisplayLength;
|
273
|
+
|
274
|
+
/* Correct for underrun */
|
275
|
+
if ( oSettings._iDisplayStart < 0 )
|
276
|
+
{
|
277
|
+
oSettings._iDisplayStart = 0;
|
278
|
+
}
|
279
|
+
|
280
|
+
fnCallbackDraw( oSettings );
|
281
|
+
} );
|
282
|
+
|
283
|
+
$(oSettings.nNext).click( function() {
|
284
|
+
/* Make sure we are not over running the display array */
|
285
|
+
if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() )
|
286
|
+
{
|
287
|
+
oSettings._iDisplayStart += oSettings._iDisplayLength;
|
288
|
+
}
|
289
|
+
|
290
|
+
fnCallbackDraw( oSettings );
|
291
|
+
} );
|
292
|
+
|
293
|
+
/* Take the brutal approach to cancelling text selection */
|
294
|
+
$(oSettings.nPrevious).bind( 'selectstart', function () { return false; } );
|
295
|
+
$(oSettings.nNext).bind( 'selectstart', function () { return false; } );
|
296
|
+
},
|
297
|
+
|
298
|
+
/*
|
299
|
+
* Function: oPagination.two_button.fnUpdate
|
300
|
+
* Purpose: Update the two button pagination at the end of the draw
|
301
|
+
* Returns: -
|
302
|
+
* Inputs: object:oSettings - dataSlides settings object
|
303
|
+
* function:fnCallbackDraw - draw function which must be called on update
|
304
|
+
*/
|
305
|
+
"fnUpdate": function ( oSettings, fnCallbackDraw )
|
306
|
+
{
|
307
|
+
if ( !oSettings.anFeatures.p )
|
308
|
+
{
|
309
|
+
return;
|
310
|
+
}
|
311
|
+
|
312
|
+
oSettings.nPrevious.className =
|
313
|
+
( oSettings._iDisplayStart === 0 ) ?
|
314
|
+
oSettings.oClasses.sPagePrevDisabled : oSettings.oClasses.sPagePrevEnabled;
|
315
|
+
|
316
|
+
oSettings.nNext.className =
|
317
|
+
( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ?
|
318
|
+
oSettings.oClasses.sPageNextDisabled : oSettings.oClasses.sPageNextEnabled;
|
319
|
+
}
|
320
|
+
},
|
321
|
+
|
322
|
+
|
323
|
+
/*
|
324
|
+
* Variable: iFullNumbersShowPages
|
325
|
+
* Purpose: Change the number of pages which can be seen
|
326
|
+
* Scope: jQuery.fn.dataSlideExt.oPagination
|
327
|
+
*/
|
328
|
+
"iFullNumbersShowPages": 5,
|
329
|
+
|
330
|
+
/*
|
331
|
+
* Variable: full_numbers
|
332
|
+
* Purpose: Full numbers pagination
|
333
|
+
* Scope: jQuery.fn.dataSlideExt.oPagination
|
334
|
+
*/
|
335
|
+
"full_numbers": {
|
336
|
+
/*
|
337
|
+
* Function: oPagination.full_numbers.fnInit
|
338
|
+
* Purpose: Initalise dom elements required for pagination with a list of the pages
|
339
|
+
* Returns: -
|
340
|
+
* Inputs: object:oSettings - dataSlides settings object
|
341
|
+
* function:fnCallbackDraw - draw function which must be called on update
|
342
|
+
*/
|
343
|
+
"fnInit": function ( oSettings, fnCallbackDraw )
|
344
|
+
{
|
345
|
+
var nPaging = oSettings.anFeatures.p;
|
346
|
+
var nFirst = document.createElement( 'span' );
|
347
|
+
var nPrevious = document.createElement( 'span' );
|
348
|
+
var nList = document.createElement( 'span' );
|
349
|
+
var nNext = document.createElement( 'span' );
|
350
|
+
var nLast = document.createElement( 'span' );
|
351
|
+
|
352
|
+
nFirst.innerHTML = oSettings.oLanguage.oPaginate.sFirst;
|
353
|
+
nPrevious.innerHTML = oSettings.oLanguage.oPaginate.sPrevious;
|
354
|
+
nNext.innerHTML = oSettings.oLanguage.oPaginate.sNext;
|
355
|
+
nLast.innerHTML = oSettings.oLanguage.oPaginate.sLast;
|
356
|
+
|
357
|
+
var oClasses = oSettings.oClasses;
|
358
|
+
nFirst.className = oClasses.sPageButton+" "+oClasses.sPageFirst;
|
359
|
+
nPrevious.className = oClasses.sPageButton+" "+oClasses.sPagePrevious;
|
360
|
+
nNext.className= oClasses.sPageButton+" "+oClasses.sPageNext;
|
361
|
+
nLast.className = oClasses.sPageButton+" "+oClasses.sPageLast;
|
362
|
+
|
363
|
+
if ( oSettings.sTableId !== '' )
|
364
|
+
{
|
365
|
+
nPaging.setAttribute( 'id', oSettings.sTableId+'_paginate' );
|
366
|
+
nFirst.setAttribute( 'id', oSettings.sTableId+'_first' );
|
367
|
+
nPrevious.setAttribute( 'id', oSettings.sTableId+'_previous' );
|
368
|
+
nNext.setAttribute( 'id', oSettings.sTableId+'_next' );
|
369
|
+
nLast.setAttribute( 'id', oSettings.sTableId+'_last' );
|
370
|
+
}
|
371
|
+
|
372
|
+
nPaging.appendChild( nFirst );
|
373
|
+
nPaging.appendChild( nPrevious );
|
374
|
+
nPaging.appendChild( nList );
|
375
|
+
nPaging.appendChild( nNext );
|
376
|
+
nPaging.appendChild( nLast );
|
377
|
+
|
378
|
+
$(nFirst).click( function () {
|
379
|
+
oSettings._iDisplayStart = 0;
|
380
|
+
fnCallbackDraw( oSettings );
|
381
|
+
} );
|
382
|
+
|
383
|
+
$(nPrevious).click( function() {
|
384
|
+
oSettings._iDisplayStart -= oSettings._iDisplayLength;
|
385
|
+
|
386
|
+
/* Correct for underrun */
|
387
|
+
if ( oSettings._iDisplayStart < 0 )
|
388
|
+
{
|
389
|
+
oSettings._iDisplayStart = 0;
|
390
|
+
}
|
391
|
+
|
392
|
+
fnCallbackDraw( oSettings );
|
393
|
+
} );
|
394
|
+
|
395
|
+
$(nNext).click( function() {
|
396
|
+
/* Make sure we are not over running the display array */
|
397
|
+
if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() )
|
398
|
+
{
|
399
|
+
oSettings._iDisplayStart += oSettings._iDisplayLength;
|
400
|
+
}
|
401
|
+
|
402
|
+
fnCallbackDraw( oSettings );
|
403
|
+
} );
|
404
|
+
|
405
|
+
$(nLast).click( function() {
|
406
|
+
var iPages = parseInt( (oSettings.fnRecordsDisplay()-1) / oSettings._iDisplayLength, 10 ) + 1;
|
407
|
+
oSettings._iDisplayStart = (iPages-1) * oSettings._iDisplayLength;
|
408
|
+
|
409
|
+
fnCallbackDraw( oSettings );
|
410
|
+
} );
|
411
|
+
|
412
|
+
/* Take the brutal approach to cancelling text selection */
|
413
|
+
$('span', nPaging).bind( 'mousedown', function () { return false; } );
|
414
|
+
$('span', nPaging).bind( 'selectstart', function () { return false; } );
|
415
|
+
|
416
|
+
oSettings.nPaginateList = nList;
|
417
|
+
},
|
418
|
+
|
419
|
+
/*
|
420
|
+
* Function: oPagination.full_numbers.fnUpdate
|
421
|
+
* Purpose: Update the list of page buttons shows
|
422
|
+
* Returns: -
|
423
|
+
* Inputs: object:oSettings - dataSlides settings object
|
424
|
+
* function:fnCallbackDraw - draw function which must be called on update
|
425
|
+
*/
|
426
|
+
"fnUpdate": function ( oSettings, fnCallbackDraw )
|
427
|
+
{
|
428
|
+
if ( !oSettings.anFeatures.p )
|
429
|
+
{
|
430
|
+
return;
|
431
|
+
}
|
432
|
+
|
433
|
+
var iPageCount = jQuery.fn.dataSlideExt.oPagination.iFullNumbersShowPages;
|
434
|
+
var iPageCountHalf = Math.floor(iPageCount / 2);
|
435
|
+
var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength);
|
436
|
+
var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;
|
437
|
+
var sList = "";
|
438
|
+
var iStartButton;
|
439
|
+
var iEndButton;
|
440
|
+
var oClasses = oSettings.oClasses;
|
441
|
+
|
442
|
+
if (iPages < iPageCount)
|
443
|
+
{
|
444
|
+
iStartButton = 1;
|
445
|
+
iEndButton = iPages;
|
446
|
+
}
|
447
|
+
else
|
448
|
+
{
|
449
|
+
if (iCurrentPage <= iPageCountHalf)
|
450
|
+
{
|
451
|
+
iStartButton = 1;
|
452
|
+
iEndButton = iPageCount;
|
453
|
+
}
|
454
|
+
else
|
455
|
+
{
|
456
|
+
if (iCurrentPage >= (iPages - iPageCountHalf))
|
457
|
+
{
|
458
|
+
iStartButton = iPages - iPageCount + 1;
|
459
|
+
iEndButton = iPages;
|
460
|
+
}
|
461
|
+
else
|
462
|
+
{
|
463
|
+
iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1;
|
464
|
+
iEndButton = iStartButton + iPageCount - 1;
|
465
|
+
}
|
466
|
+
}
|
467
|
+
}
|
468
|
+
|
469
|
+
for ( var i=iStartButton ; i<=iEndButton ; i++ )
|
470
|
+
{
|
471
|
+
if ( iCurrentPage != i )
|
472
|
+
{
|
473
|
+
sList += '<span class="'+oClasses.sPageButton+'">'+i+'</span>';
|
474
|
+
}
|
475
|
+
else
|
476
|
+
{
|
477
|
+
sList += '<span class="'+oClasses.sPageButtonActive+'">'+i+'</span>';
|
478
|
+
}
|
479
|
+
}
|
480
|
+
|
481
|
+
oSettings.nPaginateList.innerHTML = sList;
|
482
|
+
|
483
|
+
/* Take the brutal approach to cancelling text selection */
|
484
|
+
$('span', oSettings.nPaginateList).bind( 'mousedown', function () { return false; } );
|
485
|
+
$('span', oSettings.nPaginateList).bind( 'selectstart', function () { return false; } );
|
486
|
+
|
487
|
+
$('span', oSettings.nPaginateList).click( function() {
|
488
|
+
var iTarget = (this.innerHTML * 1) - 1;
|
489
|
+
oSettings._iDisplayStart = iTarget * oSettings._iDisplayLength;
|
490
|
+
|
491
|
+
fnCallbackDraw( oSettings );
|
492
|
+
return false;
|
493
|
+
} );
|
494
|
+
|
495
|
+
/* Update the 'premanent botton's classes */
|
496
|
+
var nButtons = $('span', oSettings.anFeatures.p);
|
497
|
+
var nStatic = [ nButtons[0], nButtons[1], nButtons[nButtons.length-2], nButtons[nButtons.length-1] ];
|
498
|
+
$(nStatic).removeClass( oClasses.sPageButton+" "+oClasses.sPageButtonActive );
|
499
|
+
if ( iCurrentPage == 1 )
|
500
|
+
{
|
501
|
+
nStatic[0].className += " "+oClasses.sPageButtonStaticActive;
|
502
|
+
nStatic[1].className += " "+oClasses.sPageButtonStaticActive;
|
503
|
+
}
|
504
|
+
else
|
505
|
+
{
|
506
|
+
nStatic[0].className += " "+oClasses.sPageButton;
|
507
|
+
nStatic[1].className += " "+oClasses.sPageButton;
|
508
|
+
}
|
509
|
+
|
510
|
+
if ( iCurrentPage == iPages )
|
511
|
+
{
|
512
|
+
nStatic[2].className += " "+oClasses.sPageButtonStaticActive;
|
513
|
+
nStatic[3].className += " "+oClasses.sPageButtonStaticActive;
|
514
|
+
}
|
515
|
+
else
|
516
|
+
{
|
517
|
+
nStatic[2].className += " "+oClasses.sPageButton;
|
518
|
+
nStatic[3].className += " "+oClasses.sPageButton;
|
519
|
+
}
|
520
|
+
}
|
521
|
+
}
|
522
|
+
};
|
523
|
+
|
524
|
+
/*
|
525
|
+
* Variable: oSort
|
526
|
+
* Purpose: Wrapper for the sorting functions that can be used in dataSlides
|
527
|
+
* Scope: jQuery.fn.dataSlideExt
|
528
|
+
* Notes: The functions provided in this object are basically standard javascript sort
|
529
|
+
* functions - they expect two inputs which they then compare and then return a priority
|
530
|
+
* result. For each sort method added, two functions need to be defined, an ascending sort and
|
531
|
+
* a descending sort.
|
532
|
+
*/
|
533
|
+
_oExt.oSort = {
|
534
|
+
/*
|
535
|
+
* text sorting
|
536
|
+
*/
|
537
|
+
"string-asc": function ( a, b )
|
538
|
+
{
|
539
|
+
var x = a.toLowerCase();
|
540
|
+
var y = b.toLowerCase();
|
541
|
+
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
|
542
|
+
},
|
543
|
+
|
544
|
+
"string-desc": function ( a, b )
|
545
|
+
{
|
546
|
+
var x = a.toLowerCase();
|
547
|
+
var y = b.toLowerCase();
|
548
|
+
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
|
549
|
+
},
|
550
|
+
|
551
|
+
|
552
|
+
/*
|
553
|
+
* html sorting (ignore html tags)
|
554
|
+
*/
|
555
|
+
"html-asc": function ( a, b )
|
556
|
+
{
|
557
|
+
var x = a.replace( /<.*?>/g, "" ).toLowerCase();
|
558
|
+
var y = b.replace( /<.*?>/g, "" ).toLowerCase();
|
559
|
+
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
|
560
|
+
},
|
561
|
+
|
562
|
+
"html-desc": function ( a, b )
|
563
|
+
{
|
564
|
+
var x = a.replace( /<.*?>/g, "" ).toLowerCase();
|
565
|
+
var y = b.replace( /<.*?>/g, "" ).toLowerCase();
|
566
|
+
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
|
567
|
+
},
|
568
|
+
|
569
|
+
|
570
|
+
/*
|
571
|
+
* date sorting
|
572
|
+
*/
|
573
|
+
"date-asc": function ( a, b )
|
574
|
+
{
|
575
|
+
var x = Date.parse( a );
|
576
|
+
var y = Date.parse( b );
|
577
|
+
|
578
|
+
if ( isNaN( x ) )
|
579
|
+
{
|
580
|
+
x = Date.parse( "01/01/1970 00:00:00" );
|
581
|
+
}
|
582
|
+
if ( isNaN( y ) )
|
583
|
+
{
|
584
|
+
y = Date.parse( "01/01/1970 00:00:00" );
|
585
|
+
}
|
586
|
+
|
587
|
+
return x - y;
|
588
|
+
},
|
589
|
+
|
590
|
+
"date-desc": function ( a, b )
|
591
|
+
{
|
592
|
+
var x = Date.parse( a );
|
593
|
+
var y = Date.parse( b );
|
594
|
+
|
595
|
+
if ( isNaN( x ) )
|
596
|
+
{
|
597
|
+
x = Date.parse( "01/01/1970 00:00:00" );
|
598
|
+
}
|
599
|
+
if ( isNaN( y ) )
|
600
|
+
{
|
601
|
+
y = Date.parse( "01/01/1970 00:00:00" );
|
602
|
+
}
|
603
|
+
|
604
|
+
return y - x;
|
605
|
+
},
|
606
|
+
|
607
|
+
|
608
|
+
/*
|
609
|
+
* numerical sorting
|
610
|
+
*/
|
611
|
+
"numeric-asc": function ( a, b )
|
612
|
+
{
|
613
|
+
var x = a == "-" ? 0 : a;
|
614
|
+
var y = b == "-" ? 0 : b;
|
615
|
+
return x - y;
|
616
|
+
},
|
617
|
+
|
618
|
+
"numeric-desc": function ( a, b )
|
619
|
+
{
|
620
|
+
var x = a == "-" ? 0 : a;
|
621
|
+
var y = b == "-" ? 0 : b;
|
622
|
+
return y - x;
|
623
|
+
}
|
624
|
+
};
|
625
|
+
|
626
|
+
|
627
|
+
/*
|
628
|
+
* Variable: aTypes
|
629
|
+
* Purpose: Container for the various type of type detection that dataSlides supports
|
630
|
+
* Scope: jQuery.fn.dataSlideExt
|
631
|
+
* Notes: The functions in this array are expected to parse a string to see if it is a data
|
632
|
+
* type that it recognises. If so then the function should return the name of the type (a
|
633
|
+
* corresponding sort function should be defined!), if the type is not recognised then the
|
634
|
+
* function should return null such that the parser and move on to check the next type.
|
635
|
+
* Note that ordering is important in this array - the functions are processed linearly,
|
636
|
+
* starting at index 0.
|
637
|
+
*/
|
638
|
+
_oExt.aTypes = [
|
639
|
+
/*
|
640
|
+
* Function: -
|
641
|
+
* Purpose: Check to see if a string is numeric
|
642
|
+
* Returns: string:'numeric' or null
|
643
|
+
* Inputs: string:sText - string to check
|
644
|
+
*/
|
645
|
+
function ( sData )
|
646
|
+
{
|
647
|
+
/* Snaity check that we are dealing with a string or quick return for a number */
|
648
|
+
if ( typeof sData == 'number' )
|
649
|
+
{
|
650
|
+
return 'numeric';
|
651
|
+
}
|
652
|
+
else if ( typeof sData.charAt != 'function' )
|
653
|
+
{
|
654
|
+
return null;
|
655
|
+
}
|
656
|
+
|
657
|
+
var sValidFirstChars = "0123456789-";
|
658
|
+
var sValidChars = "0123456789.";
|
659
|
+
var Char;
|
660
|
+
var bDecimal = false;
|
661
|
+
|
662
|
+
/* Check for a valid first char (no period and allow negatives) */
|
663
|
+
Char = sData.charAt(0);
|
664
|
+
if (sValidFirstChars.indexOf(Char) == -1)
|
665
|
+
{
|
666
|
+
return null;
|
667
|
+
}
|
668
|
+
|
669
|
+
/* Check all the other characters are valid */
|
670
|
+
for ( var i=1 ; i<sData.length ; i++ )
|
671
|
+
{
|
672
|
+
Char = sData.charAt(i);
|
673
|
+
if (sValidChars.indexOf(Char) == -1)
|
674
|
+
{
|
675
|
+
return null;
|
676
|
+
}
|
677
|
+
|
678
|
+
/* Only allowed one decimal place... */
|
679
|
+
if ( Char == "." )
|
680
|
+
{
|
681
|
+
if ( bDecimal )
|
682
|
+
{
|
683
|
+
return null;
|
684
|
+
}
|
685
|
+
bDecimal = true;
|
686
|
+
}
|
687
|
+
}
|
688
|
+
|
689
|
+
return 'numeric';
|
690
|
+
},
|
691
|
+
|
692
|
+
/*
|
693
|
+
* Function: -
|
694
|
+
* Purpose: Check to see if a string is actually a formatted date
|
695
|
+
* Returns: string:'date' or null
|
696
|
+
* Inputs: string:sText - string to check
|
697
|
+
*/
|
698
|
+
function ( sData )
|
699
|
+
{
|
700
|
+
var iParse = Date.parse(sData);
|
701
|
+
if ( iParse !== null && !isNaN(iParse) )
|
702
|
+
{
|
703
|
+
return 'date';
|
704
|
+
}
|
705
|
+
return null;
|
706
|
+
}
|
707
|
+
];
|
708
|
+
|
709
|
+
|
710
|
+
/*
|
711
|
+
* Variable: _oExternConfig
|
712
|
+
* Purpose: Store information for dataSlides to access globally about other instances
|
713
|
+
* Scope: jQuery.fn.dataSlideExt
|
714
|
+
*/
|
715
|
+
_oExt._oExternConfig = {
|
716
|
+
/* int:iNextUnique - next unique number for an instance */
|
717
|
+
"iNextUnique": 0
|
718
|
+
};
|
719
|
+
|
720
|
+
|
721
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
722
|
+
* dataSlides prototype
|
723
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
724
|
+
|
725
|
+
/*
|
726
|
+
* Function: dataSlide
|
727
|
+
* Purpose: dataSlides information
|
728
|
+
* Returns: -
|
729
|
+
* Inputs: object:oInit - initalisation options for the table
|
730
|
+
*/
|
731
|
+
$.fn.dataSlide = function( oInit )
|
732
|
+
{
|
733
|
+
/*
|
734
|
+
* Variable: _aoSettings
|
735
|
+
* Purpose: Easy reference to data table settings
|
736
|
+
* Scope: jQuery.dataSlide
|
737
|
+
*/
|
738
|
+
var _aoSettings = $.fn.dataSlideSettings;
|
739
|
+
|
740
|
+
/*
|
741
|
+
* Function: classSettings
|
742
|
+
* Purpose: Settings container function for all 'class' properties which are required
|
743
|
+
* by dataSlides
|
744
|
+
* Returns: -
|
745
|
+
* Inputs: -
|
746
|
+
*/
|
747
|
+
function classSettings ()
|
748
|
+
{
|
749
|
+
this.fnRecordsTotal = function ()
|
750
|
+
{
|
751
|
+
if ( this.oFeatures.bServerSide ) {
|
752
|
+
return this._iRecordsTotal;
|
753
|
+
} else {
|
754
|
+
return this.aiDisplayMaster.length;
|
755
|
+
}
|
756
|
+
};
|
757
|
+
|
758
|
+
this.fnRecordsDisplay = function ()
|
759
|
+
{
|
760
|
+
if ( this.oFeatures.bServerSide ) {
|
761
|
+
return this._iRecordsDisplay;
|
762
|
+
} else {
|
763
|
+
return this.aiDisplay.length;
|
764
|
+
}
|
765
|
+
};
|
766
|
+
|
767
|
+
this.fnDisplayEnd = function ()
|
768
|
+
{
|
769
|
+
if ( this.oFeatures.bServerSide ) {
|
770
|
+
return this._iDisplayStart + this.aiDisplay.length;
|
771
|
+
} else {
|
772
|
+
return this._iDisplayEnd;
|
773
|
+
}
|
774
|
+
};
|
775
|
+
|
776
|
+
/*
|
777
|
+
* Variable: sInstance
|
778
|
+
* Purpose: Unique idendifier for each instance of the dataSlides object
|
779
|
+
* Scope: jQuery.dataSlide.classSettings
|
780
|
+
*/
|
781
|
+
this.sInstance = null;
|
782
|
+
|
783
|
+
/*
|
784
|
+
* Variable: oFeatures
|
785
|
+
* Purpose: Indicate the enablement of key dataSlide features
|
786
|
+
* Scope: jQuery.dataSlide.classSettings
|
787
|
+
*/
|
788
|
+
this.oFeatures = {
|
789
|
+
"bPaginate": true,
|
790
|
+
"bLengthChange": true,
|
791
|
+
"bFilter": true,
|
792
|
+
"bSort": true,
|
793
|
+
"bInfo": true,
|
794
|
+
"bAutoWidth": true,
|
795
|
+
"bProcessing": false,
|
796
|
+
"bSortClasses": true,
|
797
|
+
"bStateSave": false,
|
798
|
+
"bServerSide": false
|
799
|
+
};
|
800
|
+
|
801
|
+
/*
|
802
|
+
* Variable: anFeatures
|
803
|
+
* Purpose: Array referencing the nodes which are used for the features
|
804
|
+
* Scope: jQuery.dataSlide.classSettings
|
805
|
+
* Notes: The parameters of this object match what is allowed by sDom - i.e.
|
806
|
+
* 'l' - Length changing
|
807
|
+
* 'f' - Filtering input
|
808
|
+
* 't' - The table!
|
809
|
+
* 'i' - Information
|
810
|
+
* 'p' - Pagination
|
811
|
+
* 'r' - pRocessing
|
812
|
+
*/
|
813
|
+
this.anFeatures = [];
|
814
|
+
|
815
|
+
/*
|
816
|
+
* Variable: oLanguage
|
817
|
+
* Purpose: Store the language strings used by dataSlides
|
818
|
+
* Scope: jQuery.dataSlide.classSettings
|
819
|
+
* Notes: The words in the format _VAR_ are variables which are dynamically replaced
|
820
|
+
* by javascript
|
821
|
+
*/
|
822
|
+
this.oLanguage = {
|
823
|
+
"sProcessing": "Processing...",
|
824
|
+
"sLengthMenu": "Show _MENU_ entries",
|
825
|
+
"sZeroRecords": "No matching records found",
|
826
|
+
"sInfo": "Showing _START_ to _END_ of _TOTAL_ entries",
|
827
|
+
"sInfoEmpty": "Showing 0 to 0 of 0 entries",
|
828
|
+
"sInfoFiltered": "(filtered from _MAX_ total entries)",
|
829
|
+
"sInfoPostFix": "",
|
830
|
+
"sSearch": "Search:",
|
831
|
+
"sUrl": "",
|
832
|
+
"oPaginate": {
|
833
|
+
"sFirst": "First",
|
834
|
+
"sPrevious": "Previous",
|
835
|
+
"sNext": "Next",
|
836
|
+
"sLast": "Last"
|
837
|
+
}
|
838
|
+
};
|
839
|
+
|
840
|
+
/*
|
841
|
+
* Variable: aoData
|
842
|
+
* Purpose: Store data information
|
843
|
+
* Scope: jQuery.dataSlide.classSettings
|
844
|
+
* Notes: This is an array of objects with the following parameters:
|
845
|
+
* int: _iId - internal id for tracking
|
846
|
+
* array: _aData - internal data - used for sorting / filtering etc
|
847
|
+
* node: nTr - display node
|
848
|
+
* array node: _anHidden - hidden TD nodes
|
849
|
+
*/
|
850
|
+
this.aoData = [];
|
851
|
+
|
852
|
+
/*
|
853
|
+
* Variable: aiDisplay
|
854
|
+
* Purpose: Array of indexes which are in the current display (after filtering etc)
|
855
|
+
* Scope: jQuery.dataSlide.classSettings
|
856
|
+
*/
|
857
|
+
this.aiDisplay = [];
|
858
|
+
|
859
|
+
/*
|
860
|
+
* Variable: aiDisplayMaster
|
861
|
+
* Purpose: Array of indexes for display - no filtering
|
862
|
+
* Scope: jQuery.dataSlide.classSettings
|
863
|
+
*/
|
864
|
+
this.aiDisplayMaster = [];
|
865
|
+
|
866
|
+
/*
|
867
|
+
* Variable: aoColumns
|
868
|
+
* Purpose: Store information about each column that is in use
|
869
|
+
* Scope: jQuery.dataSlide.classSettings
|
870
|
+
*/
|
871
|
+
this.aoColumns = [];
|
872
|
+
/*
|
873
|
+
* Variable: iNextId
|
874
|
+
* Purpose: Store the next unique id to be used for a new row
|
875
|
+
* Scope: jQuery.dataSlide.classSettings
|
876
|
+
*/
|
877
|
+
this.iNextId = 0;
|
878
|
+
|
879
|
+
/*
|
880
|
+
* Variable: asDataSearch
|
881
|
+
* Purpose: Search data array for regular expression searching
|
882
|
+
* Scope: jQuery.dataSlide.classSettings
|
883
|
+
*/
|
884
|
+
this.asDataSearch = [];
|
885
|
+
|
886
|
+
/*
|
887
|
+
* Variable: oPreviousSearch
|
888
|
+
* Purpose: Store the previous search incase we want to force a re-search
|
889
|
+
* or compare the old search to a new one
|
890
|
+
* Scope: jQuery.dataSlide.classSettings
|
891
|
+
*/
|
892
|
+
this.oPreviousSearch = {
|
893
|
+
"sSearch": "",
|
894
|
+
"bEscapeRegex": true
|
895
|
+
};
|
896
|
+
|
897
|
+
/*
|
898
|
+
* Variable: aoPreSearchCols
|
899
|
+
* Purpose: Store the previous search for each column
|
900
|
+
* Scope: jQuery.dataSlide.classSettings
|
901
|
+
*/
|
902
|
+
this.aoPreSearchCols = [];
|
903
|
+
|
904
|
+
/*
|
905
|
+
* Variable: aaSorting
|
906
|
+
* Purpose: Sorting information
|
907
|
+
* Scope: jQuery.dataSlide.classSettings
|
908
|
+
*/
|
909
|
+
this.aaSorting = [ [0, 'asc'] ];
|
910
|
+
|
911
|
+
/*
|
912
|
+
* Variable: aaSortingFixed
|
913
|
+
* Purpose: Sorting information that is always applied
|
914
|
+
* Scope: jQuery.dataSlide.classSettings
|
915
|
+
*/
|
916
|
+
this.aaSortingFixed = null;
|
917
|
+
|
918
|
+
/*
|
919
|
+
* Variable: asStripClasses
|
920
|
+
* Purpose: Classes to use for the striping of a table
|
921
|
+
* Scope: jQuery.dataSlide.classSettings
|
922
|
+
*/
|
923
|
+
this.asStripClasses = [];
|
924
|
+
|
925
|
+
/*
|
926
|
+
* Variable: fnRowCallback
|
927
|
+
* Purpose: Call this function every time a row is inserted (draw)
|
928
|
+
* Scope: jQuery.dataSlide.classSettings
|
929
|
+
*/
|
930
|
+
this.fnRowCallback = null;
|
931
|
+
|
932
|
+
/*
|
933
|
+
* Variable: fnHeaderCallback
|
934
|
+
* Purpose: Callback function for the header on each draw
|
935
|
+
* Scope: jQuery.dataSlide.classSettings
|
936
|
+
*/
|
937
|
+
this.fnHeaderCallback = null;
|
938
|
+
|
939
|
+
/*
|
940
|
+
* Variable: fnFooterCallback
|
941
|
+
* Purpose: Callback function for the footer on each draw
|
942
|
+
* Scope: jQuery.dataSlide.classSettings
|
943
|
+
*/
|
944
|
+
this.fnFooterCallback = null;
|
945
|
+
|
946
|
+
/*
|
947
|
+
* Variable: fnDrawCallback
|
948
|
+
* Purpose: Callback function for the whole table on each draw
|
949
|
+
* Scope: jQuery.dataSlide.classSettings
|
950
|
+
*/
|
951
|
+
this.fnDrawCallback = null;
|
952
|
+
|
953
|
+
/*
|
954
|
+
* Variable: fnInitComplete
|
955
|
+
* Purpose: Callback function for when the table has been initalised
|
956
|
+
* Scope: jQuery.dataSlide.classSettings
|
957
|
+
*/
|
958
|
+
this.fnInitComplete = null;
|
959
|
+
|
960
|
+
/*
|
961
|
+
* Variable: sTableId
|
962
|
+
* Purpose: Cache the table ID for quick access
|
963
|
+
* Scope: jQuery.dataSlide.classSettings
|
964
|
+
*/
|
965
|
+
this.sTableId = "";
|
966
|
+
|
967
|
+
/*
|
968
|
+
* Variable: nTable
|
969
|
+
* Purpose: Cache the table node for quick access
|
970
|
+
* Scope: jQuery.dataSlide.classSettings
|
971
|
+
*/
|
972
|
+
this.nTable = null;
|
973
|
+
|
974
|
+
/*
|
975
|
+
* Variable: iDefaultSortIndex
|
976
|
+
* Purpose: Sorting index which will be used by default
|
977
|
+
* Scope: jQuery.dataSlide.classSettings
|
978
|
+
*/
|
979
|
+
this.iDefaultSortIndex = 0;
|
980
|
+
|
981
|
+
/*
|
982
|
+
* Variable: bInitialised
|
983
|
+
* Purpose: Indicate if all required information has been read in
|
984
|
+
* Scope: jQuery.dataSlide.classSettings
|
985
|
+
*/
|
986
|
+
this.bInitialised = false;
|
987
|
+
|
988
|
+
/*
|
989
|
+
* Variable: aoOpenRows
|
990
|
+
* Purpose: Information about open rows
|
991
|
+
* Scope: jQuery.dataSlide.classSettings
|
992
|
+
* Notes: Has the parameters 'nTr' and 'nParent'
|
993
|
+
*/
|
994
|
+
this.aoOpenRows = [];
|
995
|
+
|
996
|
+
/*
|
997
|
+
* Variable: sDomPositioning
|
998
|
+
* Purpose: Dictate the positioning that the created elements will take
|
999
|
+
* Scope: jQuery.dataSlide.classSettings
|
1000
|
+
* Notes: The following syntax is expected:
|
1001
|
+
* 'l' - Length changing
|
1002
|
+
* 'f' - Filtering input
|
1003
|
+
* 't' - The table!
|
1004
|
+
* 'i' - Information
|
1005
|
+
* 'p' - Pagination
|
1006
|
+
* 'r' - pRocessing
|
1007
|
+
* '<' and '>' - div elements
|
1008
|
+
* '<"class" and '>' - div with a class
|
1009
|
+
* Examples: '<"wrapper"flipt>', '<lf<t>ip>'
|
1010
|
+
*/
|
1011
|
+
this.sDomPositioning = 'lfrtip';
|
1012
|
+
|
1013
|
+
/*
|
1014
|
+
* Variable: sPaginationType
|
1015
|
+
* Purpose: Note which type of sorting should be used
|
1016
|
+
* Scope: jQuery.dataSlide.classSettings
|
1017
|
+
*/
|
1018
|
+
this.sPaginationType = "two_button";
|
1019
|
+
|
1020
|
+
/*
|
1021
|
+
* Variable: iCookieDuration
|
1022
|
+
* Purpose: The cookie duration (for bStateSave) in seconds - default 2 hours
|
1023
|
+
* Scope: jQuery.dataSlide.classSettings
|
1024
|
+
*/
|
1025
|
+
this.iCookieDuration = 60 * 60 * 2;
|
1026
|
+
|
1027
|
+
/*
|
1028
|
+
* Variable: sAjaxSource
|
1029
|
+
* Purpose: Source url for AJAX data for the table
|
1030
|
+
* Scope: jQuery.dataSlide.classSettings
|
1031
|
+
*/
|
1032
|
+
this.sAjaxSource = null;
|
1033
|
+
|
1034
|
+
/*
|
1035
|
+
* Variable: bAjaxDataGet
|
1036
|
+
* Purpose: Note if draw should be blocked while getting data
|
1037
|
+
* Scope: jQuery.dataSlide.classSettings
|
1038
|
+
*/
|
1039
|
+
this.bAjaxDataGet = true;
|
1040
|
+
|
1041
|
+
/*
|
1042
|
+
* Variable: fnServerData
|
1043
|
+
* Purpose: Function to get the server-side data - can be overruled by the developer
|
1044
|
+
* Scope: jQuery.dataSlide.classSettings
|
1045
|
+
*/
|
1046
|
+
this.fnServerData = $.getJSON;
|
1047
|
+
|
1048
|
+
/*
|
1049
|
+
* Variable: iServerDraw
|
1050
|
+
* Purpose: Counter and tracker for server-side processing draws
|
1051
|
+
* Scope: jQuery.dataSlide.classSettings
|
1052
|
+
*/
|
1053
|
+
this.iServerDraw = 0;
|
1054
|
+
|
1055
|
+
/*
|
1056
|
+
* Variable: _iDisplayLength, _iDisplayStart, _iDisplayEnd
|
1057
|
+
* Purpose: Display length variables
|
1058
|
+
* Scope: jQuery.dataSlide.classSettings
|
1059
|
+
* Notes: These variable must NOT be used externally to get the data length. Rather, use
|
1060
|
+
* the fnRecordsTotal() (etc) functions.
|
1061
|
+
*/
|
1062
|
+
this._iDisplayLength = 10;
|
1063
|
+
this._iDisplayStart = 0;
|
1064
|
+
this._iDisplayEnd = 10;
|
1065
|
+
|
1066
|
+
/*
|
1067
|
+
* Variable: _iRecordsTotal, _iRecordsDisplay
|
1068
|
+
* Purpose: Display length variables used for server side processing
|
1069
|
+
* Scope: jQuery.dataSlide.classSettings
|
1070
|
+
* Notes: These variable must NOT be used externally to get the data length. Rather, use
|
1071
|
+
* the fnRecordsTotal() (etc) functions.
|
1072
|
+
*/
|
1073
|
+
this._iRecordsTotal = 0;
|
1074
|
+
this._iRecordsDisplay = 0;
|
1075
|
+
|
1076
|
+
/*
|
1077
|
+
* Variable: bJUI
|
1078
|
+
* Purpose: Should we add the markup needed for jQuery UI theming?
|
1079
|
+
* Scope: jQuery.dataSlide.classSettings
|
1080
|
+
*/
|
1081
|
+
this.bJUI = false;
|
1082
|
+
|
1083
|
+
/*
|
1084
|
+
* Variable: bJUI
|
1085
|
+
* Purpose: Should we add the markup needed for jQuery UI theming?
|
1086
|
+
* Scope: jQuery.dataSlide.classSettings
|
1087
|
+
*/
|
1088
|
+
this.oClasses = _oExt.oStdClasses;
|
1089
|
+
}
|
1090
|
+
|
1091
|
+
/*
|
1092
|
+
* Variable: oApi
|
1093
|
+
* Purpose: Container for publicly exposed 'private' functions
|
1094
|
+
* Scope: jQuery.dataSlide
|
1095
|
+
*/
|
1096
|
+
this.oApi = {};
|
1097
|
+
|
1098
|
+
|
1099
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
1100
|
+
* API functions
|
1101
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
1102
|
+
|
1103
|
+
/*
|
1104
|
+
* Function: fnDraw
|
1105
|
+
* Purpose: Redraw the table
|
1106
|
+
* Returns: -
|
1107
|
+
* Inputs: -
|
1108
|
+
*/
|
1109
|
+
this.fnDraw = function()
|
1110
|
+
{
|
1111
|
+
_fnReDraw( _fnSettingsFromNode( this[_oExt.iApiIndex] ) );
|
1112
|
+
};
|
1113
|
+
|
1114
|
+
/*
|
1115
|
+
* Function: fnFilter
|
1116
|
+
* Purpose: Filter the input based on data
|
1117
|
+
* Returns: -
|
1118
|
+
* Inputs: string:sInput - string to filter the table on
|
1119
|
+
* int:iColumn - optional - column to limit filtering to
|
1120
|
+
* bool:bEscapeRegex - optional - escape regex characters or not - default true
|
1121
|
+
*/
|
1122
|
+
this.fnFilter = function( sInput, iColumn, bEscapeRegex )
|
1123
|
+
{
|
1124
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1125
|
+
|
1126
|
+
if ( typeof bEscapeRegex == 'undefined' )
|
1127
|
+
{
|
1128
|
+
bEscapeRegex = true;
|
1129
|
+
}
|
1130
|
+
|
1131
|
+
if ( typeof iColumn == "undefined" || iColumn === null )
|
1132
|
+
{
|
1133
|
+
/* Global filter */
|
1134
|
+
_fnFilterComplete( oSettings, {"sSearch":sInput, "bEscapeRegex": bEscapeRegex}, 1 );
|
1135
|
+
}
|
1136
|
+
else
|
1137
|
+
{
|
1138
|
+
/* Single column filter */
|
1139
|
+
oSettings.aoPreSearchCols[ iColumn ].sSearch = sInput;
|
1140
|
+
oSettings.aoPreSearchCols[ iColumn ].bEscapeRegex = bEscapeRegex;
|
1141
|
+
_fnFilterComplete( oSettings, oSettings.oPreviousSearch, 1 );
|
1142
|
+
}
|
1143
|
+
};
|
1144
|
+
|
1145
|
+
/*
|
1146
|
+
* Function: fnSettings
|
1147
|
+
* Purpose: Get the settings for a particular table for extern. manipulation
|
1148
|
+
* Returns: -
|
1149
|
+
* Inputs: -
|
1150
|
+
*/
|
1151
|
+
this.fnSettings = function( nNode )
|
1152
|
+
{
|
1153
|
+
return _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1154
|
+
};
|
1155
|
+
|
1156
|
+
/*
|
1157
|
+
* Function: fnSort
|
1158
|
+
* Purpose: Sort the table by a particular row
|
1159
|
+
* Returns: -
|
1160
|
+
* Inputs: int:iCol - the data index to sort on. Note that this will
|
1161
|
+
* not match the 'display index' if you have hidden data entries
|
1162
|
+
*/
|
1163
|
+
this.fnSort = function( aaSort )
|
1164
|
+
{
|
1165
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1166
|
+
oSettings.aaSorting = aaSort;
|
1167
|
+
_fnSort( oSettings );
|
1168
|
+
};
|
1169
|
+
|
1170
|
+
/*
|
1171
|
+
* Function: fnAddData
|
1172
|
+
* Purpose: Add new row(s) into the table
|
1173
|
+
* Returns: array int: array of indexes (aoData) which have been added (zero length on error)
|
1174
|
+
* Inputs: array:mData - the data to be added. The length must match
|
1175
|
+
* the original data from the DOM
|
1176
|
+
* or
|
1177
|
+
* array array:mData - 2D array of data to be added
|
1178
|
+
* bool:bRedraw - redraw the table or not - default true
|
1179
|
+
* Notes: Warning - the refilter here will cause the table to redraw
|
1180
|
+
* starting at zero
|
1181
|
+
* Notes: Thanks to Yekimov Denis for contributing the basis for this function!
|
1182
|
+
*/
|
1183
|
+
this.fnAddData = function( mData, bRedraw )
|
1184
|
+
{
|
1185
|
+
var aiReturn = [];
|
1186
|
+
var iTest;
|
1187
|
+
if ( typeof bRedraw == 'undefined' )
|
1188
|
+
{
|
1189
|
+
bRedraw = true;
|
1190
|
+
}
|
1191
|
+
|
1192
|
+
/* Find settings from table node */
|
1193
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1194
|
+
|
1195
|
+
/* Check if we want to add multiple rows or not */
|
1196
|
+
if ( typeof mData[0] == "object" )
|
1197
|
+
{
|
1198
|
+
for ( var i=0 ; i<mData.length ; i++ )
|
1199
|
+
{
|
1200
|
+
iTest = _fnAddData( oSettings, mData[i] );
|
1201
|
+
if ( iTest == -1 )
|
1202
|
+
{
|
1203
|
+
return aiReturn;
|
1204
|
+
}
|
1205
|
+
aiReturn.push( iTest );
|
1206
|
+
}
|
1207
|
+
}
|
1208
|
+
else
|
1209
|
+
{
|
1210
|
+
iTest = _fnAddData( oSettings, mData );
|
1211
|
+
if ( iTest == -1 )
|
1212
|
+
{
|
1213
|
+
return aiReturn;
|
1214
|
+
}
|
1215
|
+
aiReturn.push( iTest );
|
1216
|
+
}
|
1217
|
+
|
1218
|
+
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
|
1219
|
+
|
1220
|
+
/* Rebuild the search */
|
1221
|
+
_fnBuildSearchArray( oSettings, 1 );
|
1222
|
+
|
1223
|
+
if ( bRedraw )
|
1224
|
+
{
|
1225
|
+
_fnReDraw( oSettings );
|
1226
|
+
}
|
1227
|
+
return aiReturn;
|
1228
|
+
};
|
1229
|
+
|
1230
|
+
/*
|
1231
|
+
* Function: fnDeleteRow
|
1232
|
+
* Purpose: Remove a row for the table
|
1233
|
+
* Returns: array:aReturn - the row that was deleted
|
1234
|
+
* Inputs: int:iIndex - index of aoData to be deleted
|
1235
|
+
* function:fnCallBack - callback function - default null
|
1236
|
+
* bool:bNullRow - remove the row information from aoData by setting the value to
|
1237
|
+
* null - default false
|
1238
|
+
* Notes: This function requires a little explanation - we don't actually delete the data
|
1239
|
+
* from aoData - rather we remove it's references from aiDisplayMastr and aiDisplay. This
|
1240
|
+
* in effect prevnts dataSlides from drawing it (hence deleting it) - it could be restored
|
1241
|
+
* if you really wanted. The reason for this is that actually removing the aoData object
|
1242
|
+
* would mess up all the subsequent indexes in the display arrays (they could be ajusted -
|
1243
|
+
* but this appears to do what is required).
|
1244
|
+
*/
|
1245
|
+
this.fnDeleteRow = function( iAODataIndex, fnCallBack, bNullRow )
|
1246
|
+
{
|
1247
|
+
/* Find settings from table node */
|
1248
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1249
|
+
var i;
|
1250
|
+
|
1251
|
+
/* Delete from the display master */
|
1252
|
+
for ( i=0 ; i<oSettings.aiDisplayMaster.length ; i++ )
|
1253
|
+
{
|
1254
|
+
if ( oSettings.aiDisplayMaster[i] == iAODataIndex )
|
1255
|
+
{
|
1256
|
+
oSettings.aiDisplayMaster.splice( i, 1 );
|
1257
|
+
break;
|
1258
|
+
}
|
1259
|
+
}
|
1260
|
+
|
1261
|
+
/* Delete from the current display index */
|
1262
|
+
for ( i=0 ; i<oSettings.aiDisplay.length ; i++ )
|
1263
|
+
{
|
1264
|
+
if ( oSettings.aiDisplay[i] == iAODataIndex )
|
1265
|
+
{
|
1266
|
+
oSettings.aiDisplay.splice( i, 1 );
|
1267
|
+
break;
|
1268
|
+
}
|
1269
|
+
}
|
1270
|
+
|
1271
|
+
/* Rebuild the search */
|
1272
|
+
_fnBuildSearchArray( oSettings, 1 );
|
1273
|
+
|
1274
|
+
/* If there is a user callback function - call it */
|
1275
|
+
if ( typeof fnCallBack == "function" )
|
1276
|
+
{
|
1277
|
+
fnCallBack.call( this );
|
1278
|
+
}
|
1279
|
+
|
1280
|
+
/* Check for an 'overflow' they case for dislaying the table */
|
1281
|
+
if ( oSettings._iDisplayStart >= oSettings.aiDisplay.length )
|
1282
|
+
{
|
1283
|
+
oSettings._iDisplayStart -= oSettings._iDisplayLength;
|
1284
|
+
if ( oSettings._iDisplayStart < 0 )
|
1285
|
+
{
|
1286
|
+
oSettings._iDisplayStart = 0;
|
1287
|
+
}
|
1288
|
+
}
|
1289
|
+
|
1290
|
+
_fnCalculateEnd( oSettings );
|
1291
|
+
_fnDraw( oSettings );
|
1292
|
+
|
1293
|
+
/* Return the data array from this row */
|
1294
|
+
var aData = oSettings.aoData[iAODataIndex]._aData.slice();
|
1295
|
+
|
1296
|
+
if ( typeof bNullRow != "undefined" && bNullRow === true )
|
1297
|
+
{
|
1298
|
+
oSettings.aoData[iAODataIndex] = null;
|
1299
|
+
}
|
1300
|
+
|
1301
|
+
return aData;
|
1302
|
+
};
|
1303
|
+
|
1304
|
+
/*
|
1305
|
+
* Function: fnClearTable
|
1306
|
+
* Purpose: Quickly and simply clear a table
|
1307
|
+
* Returns: -
|
1308
|
+
* Inputs: bool:bRedraw - redraw the table or not - default true
|
1309
|
+
* Notes: Thanks to Yekimov Denis for contributing the basis for this function!
|
1310
|
+
*/
|
1311
|
+
this.fnClearTable = function( bRedraw )
|
1312
|
+
{
|
1313
|
+
/* Find settings from table node */
|
1314
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1315
|
+
_fnClearTable( oSettings );
|
1316
|
+
|
1317
|
+
if ( typeof bRedraw == 'undefined' || bRedraw )
|
1318
|
+
{
|
1319
|
+
_fnDraw( oSettings );
|
1320
|
+
}
|
1321
|
+
};
|
1322
|
+
|
1323
|
+
/*
|
1324
|
+
* Function: fnOpen
|
1325
|
+
* Purpose: Open a display row (append a row after the row in question)
|
1326
|
+
* Returns: -
|
1327
|
+
* Inputs: node:nTr - the table row to 'open'
|
1328
|
+
* string:sHtml - the HTML to put into the row
|
1329
|
+
* string:sClass - class to give the new cell
|
1330
|
+
*/
|
1331
|
+
this.fnOpen = function( nTr, sHtml, sClass )
|
1332
|
+
{
|
1333
|
+
/* Find settings from table node */
|
1334
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1335
|
+
|
1336
|
+
/* the old open one if there is one */
|
1337
|
+
this.fnClose( nTr );
|
1338
|
+
|
1339
|
+
|
1340
|
+
var nNewRow = document.createElement("div");
|
1341
|
+
$(nNewRow).addClass('tr');
|
1342
|
+
var nNewCell = document.createElement("div");
|
1343
|
+
nNewRow.appendChild( nNewCell );
|
1344
|
+
nNewCell.className = sClass;
|
1345
|
+
$(nNewCell).addClass('td')
|
1346
|
+
nNewCell.colSpan = _fnVisbleColumns( oSettings );
|
1347
|
+
nNewCell.innerHTML = sHtml;
|
1348
|
+
|
1349
|
+
$(nNewRow).insertAfter(nTr);
|
1350
|
+
|
1351
|
+
/* No point in storing the row if using server-side processing since the nParent will be
|
1352
|
+
* nuked on a re-draw anyway
|
1353
|
+
*/
|
1354
|
+
if ( !oSettings.oFeatures.bServerSide )
|
1355
|
+
{
|
1356
|
+
oSettings.aoOpenRows.push( {
|
1357
|
+
"nTr": nNewRow,
|
1358
|
+
"nParent": nTr
|
1359
|
+
} );
|
1360
|
+
}
|
1361
|
+
};
|
1362
|
+
|
1363
|
+
/*
|
1364
|
+
* Function: fnClose
|
1365
|
+
* Purpose: Close a display row
|
1366
|
+
* Returns: int: 0 (success) or 1 (failed)
|
1367
|
+
* Inputs: node:nTr - the table row to 'close'
|
1368
|
+
*/
|
1369
|
+
this.fnClose = function( nTr )
|
1370
|
+
{
|
1371
|
+
/* Find settings from table node */
|
1372
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1373
|
+
|
1374
|
+
for ( var i=0 ; i<oSettings.aoOpenRows.length ; i++ )
|
1375
|
+
{
|
1376
|
+
if ( oSettings.aoOpenRows[i].nParent == nTr )
|
1377
|
+
{
|
1378
|
+
var nTrParent = oSettings.aoOpenRows[i].nTr.parentNode;
|
1379
|
+
if ( nTrParent )
|
1380
|
+
{
|
1381
|
+
/* Remove it if it is currently on display */
|
1382
|
+
nTrParent.removeChild( oSettings.aoOpenRows[i].nTr );
|
1383
|
+
}
|
1384
|
+
oSettings.aoOpenRows.splice( i, 1 );
|
1385
|
+
return 0;
|
1386
|
+
}
|
1387
|
+
}
|
1388
|
+
return 1;
|
1389
|
+
};
|
1390
|
+
|
1391
|
+
/*
|
1392
|
+
* Function: fnGetData
|
1393
|
+
* Purpose: Return an array with the data which is used to make up the table
|
1394
|
+
* Returns: array array string: 2d data array ([row][column]) or array string: 1d data array
|
1395
|
+
* or
|
1396
|
+
* array string (if iRow specified)
|
1397
|
+
* Inputs: int:iRow - optional - if present then the array returned will be the data for
|
1398
|
+
* the row with the index 'iRow'
|
1399
|
+
*/
|
1400
|
+
this.fnGetData = function( iRow )
|
1401
|
+
{
|
1402
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1403
|
+
|
1404
|
+
if ( typeof iRow != 'undefined' )
|
1405
|
+
{
|
1406
|
+
return oSettings.aoData[iRow]._aData;
|
1407
|
+
}
|
1408
|
+
return _fnGetDataMaster( oSettings );
|
1409
|
+
};
|
1410
|
+
|
1411
|
+
/*
|
1412
|
+
* Function: fnGetNodes
|
1413
|
+
* Purpose: Return an array with the TR nodes used for drawing the table
|
1414
|
+
* Returns: array node: TR elements
|
1415
|
+
* or
|
1416
|
+
* node (if iRow specified)
|
1417
|
+
* Inputs: int:iRow - optional - if present then the array returned will be the node for
|
1418
|
+
* the row with the index 'iRow'
|
1419
|
+
*/
|
1420
|
+
this.fnGetNodes = function( iRow )
|
1421
|
+
{
|
1422
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1423
|
+
|
1424
|
+
if ( typeof iRow != 'undefined' )
|
1425
|
+
{
|
1426
|
+
return oSettings.aoData[iRow].nTr;
|
1427
|
+
}
|
1428
|
+
return _fnGetTrNodes( oSettings );
|
1429
|
+
};
|
1430
|
+
|
1431
|
+
/*
|
1432
|
+
* Function: fnGetPosition
|
1433
|
+
* Purpose: Get the array indexes of a particular cell from it's DOM element
|
1434
|
+
* Returns: int: - row index, or array[ int, int ]: - row index and column index
|
1435
|
+
* Inputs: node:nNode - this can either be a TR or a TD in the table, the return is
|
1436
|
+
* dependent on this input
|
1437
|
+
*/
|
1438
|
+
this.fnGetPosition = function( nNode )
|
1439
|
+
{
|
1440
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1441
|
+
var i;
|
1442
|
+
|
1443
|
+
if ( $(nNode).hasClass('tr') )
|
1444
|
+
{
|
1445
|
+
for ( i=0 ; i<oSettings.aoData.length ; i++ )
|
1446
|
+
{
|
1447
|
+
if ( oSettings.aoData[i] !== null && oSettings.aoData[i].nTr == nNode )
|
1448
|
+
{
|
1449
|
+
return i;
|
1450
|
+
}
|
1451
|
+
}
|
1452
|
+
}
|
1453
|
+
else if ( $(nNode).hasClass('td') )
|
1454
|
+
{
|
1455
|
+
for ( i=0 ; i<oSettings.aoData.length ; i++ )
|
1456
|
+
{
|
1457
|
+
var iCorrector = 0;
|
1458
|
+
for ( var j=0 ; j<oSettings.aoColumns.length ; j++ )
|
1459
|
+
{
|
1460
|
+
if ( oSettings.aoColumns[j].bVisible )
|
1461
|
+
{
|
1462
|
+
//$('>td', oSettings.aoData[i].nTr)[j-iCorrector] == nNode )
|
1463
|
+
if ( oSettings.aoData[i] !== null &&
|
1464
|
+
oSettings.aoData[i].nTr.children('.td')[j-iCorrector] == nNode )
|
1465
|
+
{
|
1466
|
+
return [ i, j-iCorrector, j ];
|
1467
|
+
}
|
1468
|
+
}
|
1469
|
+
else
|
1470
|
+
{
|
1471
|
+
iCorrector++;
|
1472
|
+
}
|
1473
|
+
}
|
1474
|
+
}
|
1475
|
+
}
|
1476
|
+
return null;
|
1477
|
+
};
|
1478
|
+
|
1479
|
+
/*
|
1480
|
+
* Function: fnUpdate
|
1481
|
+
* Purpose: Update a table cell or row
|
1482
|
+
* Returns: int: 0 okay, 1 error
|
1483
|
+
* Inputs: array string 'or' string:mData - data to update the cell/row with
|
1484
|
+
* int:iRow - the row (from aoData) to update
|
1485
|
+
* int:iColumn - the column to update
|
1486
|
+
* bool:bRedraw - redraw the table or not - default true
|
1487
|
+
*/
|
1488
|
+
this.fnUpdate = function( mData, iRow, iColumn, bRedraw )
|
1489
|
+
{
|
1490
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1491
|
+
var iVisibleColumn;
|
1492
|
+
var sDisplay;
|
1493
|
+
if ( typeof bRedraw == 'undefined' )
|
1494
|
+
{
|
1495
|
+
bRedraw = true;
|
1496
|
+
}
|
1497
|
+
|
1498
|
+
if ( typeof mData != 'object' )
|
1499
|
+
{
|
1500
|
+
sDisplay = mData;
|
1501
|
+
oSettings.aoData[iRow]._aData[iColumn] = sDisplay;
|
1502
|
+
|
1503
|
+
if ( oSettings.aoColumns[iColumn].fnRender !== null )
|
1504
|
+
{
|
1505
|
+
sDisplay = oSettings.aoColumns[iColumn].fnRender( {
|
1506
|
+
"iDataRow": iRow,
|
1507
|
+
"iDataColumn": iColumn,
|
1508
|
+
"aData": oSettings.aoData[iRow]._aData
|
1509
|
+
} );
|
1510
|
+
|
1511
|
+
if ( oSettings.aoColumns[iColumn].bUseRendered )
|
1512
|
+
{
|
1513
|
+
oSettings.aoData[iRow]._aData[iColumn] = sDisplay;
|
1514
|
+
}
|
1515
|
+
}
|
1516
|
+
|
1517
|
+
iVisibleColumn = _fnColumnIndexToVisible( oSettings, iColumn );
|
1518
|
+
if ( iVisibleColumn !== null )
|
1519
|
+
{
|
1520
|
+
oSettings.aoData[iRow].nTr.children('.td')[iVisibleColumn].innerHTML =
|
1521
|
+
sDisplay;
|
1522
|
+
}
|
1523
|
+
}
|
1524
|
+
else
|
1525
|
+
{
|
1526
|
+
if ( mData.length != oSettings.aoColumns.length )
|
1527
|
+
{
|
1528
|
+
alert( 'Warning: An array passed to fnUpdate must have the same number of columns as '+
|
1529
|
+
'the table in question - in this case '+oSettings.aoColumns.length );
|
1530
|
+
return 1;
|
1531
|
+
}
|
1532
|
+
|
1533
|
+
for ( var i=0 ; i<mData.length ; i++ )
|
1534
|
+
{
|
1535
|
+
sDisplay = mData[i];
|
1536
|
+
oSettings.aoData[iRow]._aData[i] = sDisplay;
|
1537
|
+
|
1538
|
+
if ( oSettings.aoColumns[i].fnRender !== null )
|
1539
|
+
{
|
1540
|
+
sDisplay = oSettings.aoColumns[i].fnRender( {
|
1541
|
+
"iDataRow": iRow,
|
1542
|
+
"iDataColumn": i,
|
1543
|
+
"aData": oSettings.aoData[iRow]._aData
|
1544
|
+
} );
|
1545
|
+
|
1546
|
+
if ( oSettings.aoColumns[i].bUseRendered )
|
1547
|
+
{
|
1548
|
+
oSettings.aoData[iRow]._aData[i] = sDisplay;
|
1549
|
+
}
|
1550
|
+
}
|
1551
|
+
|
1552
|
+
iVisibleColumn = _fnColumnIndexToVisible( oSettings, i );
|
1553
|
+
if ( iVisibleColumn !== null )
|
1554
|
+
{
|
1555
|
+
oSettings.aoData[iRow].nTr.children('.td')[iVisibleColumn].innerHTML =
|
1556
|
+
sDisplay;
|
1557
|
+
}
|
1558
|
+
}
|
1559
|
+
}
|
1560
|
+
|
1561
|
+
/* Update the search array */
|
1562
|
+
_fnBuildSearchArray( oSettings, 1 );
|
1563
|
+
|
1564
|
+
/* Redraw the table */
|
1565
|
+
if ( bRedraw )
|
1566
|
+
{
|
1567
|
+
_fnReDraw( oSettings );
|
1568
|
+
}
|
1569
|
+
return 0;
|
1570
|
+
};
|
1571
|
+
|
1572
|
+
|
1573
|
+
/*
|
1574
|
+
* Function: fnShowColoumn
|
1575
|
+
* Purpose: Show a particular column
|
1576
|
+
* Returns: -
|
1577
|
+
* Inputs: int:iCol - the column whose display should be changed
|
1578
|
+
* bool:bShow - show (true) or hide (false) the column
|
1579
|
+
*/
|
1580
|
+
this.fnSetColumnVis = function ( iCol, bShow )
|
1581
|
+
{
|
1582
|
+
var oSettings = _fnSettingsFromNode( this[_oExt.iApiIndex] );
|
1583
|
+
var i, iLen;
|
1584
|
+
var iColumns = oSettings.aoColumns.length;
|
1585
|
+
var nTd;
|
1586
|
+
|
1587
|
+
/* No point in doing anything if we are requesting what is already true */
|
1588
|
+
if ( oSettings.aoColumns[iCol].bVisible == bShow )
|
1589
|
+
{
|
1590
|
+
return;
|
1591
|
+
}
|
1592
|
+
|
1593
|
+
var nTrHead = $('.thead .tr', oSettings.nTable)[0];
|
1594
|
+
var nTrFoot = $('.tfoot .tr', oSettings.nTable)[0];
|
1595
|
+
var anTheadTh = [];
|
1596
|
+
var anTfootTh = [];
|
1597
|
+
for ( i=0 ; i<iColumns ; i++ )
|
1598
|
+
{
|
1599
|
+
anTheadTh.push( oSettings.aoColumns[i].nTh );
|
1600
|
+
anTfootTh.push( oSettings.aoColumns[i].nTf );
|
1601
|
+
}
|
1602
|
+
|
1603
|
+
/* Show the column */
|
1604
|
+
if ( bShow )
|
1605
|
+
{
|
1606
|
+
var iInsert = 0;
|
1607
|
+
for ( i=0 ; i<iCol ; i++ )
|
1608
|
+
{
|
1609
|
+
if ( oSettings.aoColumns[i].bVisible )
|
1610
|
+
{
|
1611
|
+
iInsert++;
|
1612
|
+
}
|
1613
|
+
}
|
1614
|
+
|
1615
|
+
/* Need to decide if we should use appendChild or insertBefore */
|
1616
|
+
if ( iInsert >= _fnVisbleColumns( oSettings ) )
|
1617
|
+
{
|
1618
|
+
nTrHead.appendChild( anTheadTh[iCol] );
|
1619
|
+
if ( nTrFoot )
|
1620
|
+
{
|
1621
|
+
nTrFoot.appendChild( anTfootTh[iCol] );
|
1622
|
+
}
|
1623
|
+
|
1624
|
+
for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
|
1625
|
+
{
|
1626
|
+
nTd = oSettings.aoData[i]._anHidden[iCol];
|
1627
|
+
oSettings.aoData[i].nTr.appendChild( nTd );
|
1628
|
+
}
|
1629
|
+
}
|
1630
|
+
else
|
1631
|
+
{
|
1632
|
+
/* Which coloumn should we be inserting before? */
|
1633
|
+
var iBefore;
|
1634
|
+
for ( i=iCol ; i<iColumns ; i++ )
|
1635
|
+
{
|
1636
|
+
iBefore = _fnColumnIndexToVisible( oSettings, i );
|
1637
|
+
if ( iBefore !== null )
|
1638
|
+
{
|
1639
|
+
break;
|
1640
|
+
}
|
1641
|
+
}
|
1642
|
+
|
1643
|
+
nTrHead.insertBefore( anTheadTh[iCol], $(nTrHead).children('.th')[iBefore] );
|
1644
|
+
if ( nTrFoot )
|
1645
|
+
{
|
1646
|
+
nTrFoot.insertBefore( anTfootTh[iCol], $(nTrFoot).children('.th')[iBefore] );
|
1647
|
+
}
|
1648
|
+
|
1649
|
+
for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
|
1650
|
+
{
|
1651
|
+
nTd = oSettings.aoData[i]._anHidden[iCol];
|
1652
|
+
oSettings.aoData[i].nTr.insertBefore( nTd, oSettings.aoData[i].nTr.children('.td')[iBefore] );
|
1653
|
+
}
|
1654
|
+
}
|
1655
|
+
|
1656
|
+
oSettings.aoColumns[iCol].bVisible = true;
|
1657
|
+
}
|
1658
|
+
else
|
1659
|
+
{
|
1660
|
+
/* Remove a column from display */
|
1661
|
+
nTrHead.removeChild( anTheadTh[iCol] );
|
1662
|
+
if ( nTrFoot )
|
1663
|
+
{
|
1664
|
+
nTrFoot.removeChild( anTfootTh[iCol] );
|
1665
|
+
}
|
1666
|
+
|
1667
|
+
var iVisCol = _fnColumnIndexToVisible(oSettings, iCol);
|
1668
|
+
for ( i=0, iLen=oSettings.aoData.length ; i<iLen ; i++ )
|
1669
|
+
{
|
1670
|
+
nTd = oSettings.aoData[i].nTr.children('.td')[ iVisCol ];
|
1671
|
+
oSettings.aoData[i]._anHidden[iCol] = nTd;
|
1672
|
+
nTd.parentNode.removeChild( nTd );
|
1673
|
+
}
|
1674
|
+
|
1675
|
+
oSettings.aoColumns[iCol].bVisible = false;
|
1676
|
+
}
|
1677
|
+
|
1678
|
+
/* If there are any 'open' rows, then we need to alter the colspan for this col change */
|
1679
|
+
for ( i=0, iLen=oSettings.aoOpenRows.length ; i<iLen ; i++ )
|
1680
|
+
{
|
1681
|
+
oSettings.aoOpenRows[i].nTr.colSpan = _fnVisbleColumns( oSettings );
|
1682
|
+
}
|
1683
|
+
|
1684
|
+
/* Since there is no redraw done here, we need to save the state manually */
|
1685
|
+
_fnSaveState( oSettings );
|
1686
|
+
};
|
1687
|
+
|
1688
|
+
|
1689
|
+
/*
|
1690
|
+
* Plugin API functions
|
1691
|
+
*
|
1692
|
+
* This call will add the functions which are defined in _oExt.oApi to the
|
1693
|
+
* dataSlides object, providing a rather nice way to allow plug-in API functions. Note that
|
1694
|
+
* this is done here, so that API function can actually override the built in API functions if
|
1695
|
+
* required for a particular purpose.
|
1696
|
+
*/
|
1697
|
+
|
1698
|
+
/*
|
1699
|
+
* Function: _fnExternApiFunc
|
1700
|
+
* Purpose: Create a wrapper function for exporting an internal func to an external API func
|
1701
|
+
* Returns: function: - wrapped function
|
1702
|
+
* Inputs: string:sFunc - API function name
|
1703
|
+
*/
|
1704
|
+
function _fnExternApiFunc (sFunc)
|
1705
|
+
{
|
1706
|
+
return function() {
|
1707
|
+
var aArgs = [_fnSettingsFromNode(this[_oExt.iApiIndex])].concat(
|
1708
|
+
Array.prototype.slice.call(arguments) );
|
1709
|
+
return _oExt.oApi[sFunc].apply( this, aArgs );
|
1710
|
+
};
|
1711
|
+
}
|
1712
|
+
|
1713
|
+
for ( var sFunc in _oExt.oApi )
|
1714
|
+
{
|
1715
|
+
if ( sFunc )
|
1716
|
+
{
|
1717
|
+
/*
|
1718
|
+
* Function: anon
|
1719
|
+
* Purpose: Wrap the plug-in API functions in order to provide the settings as 1st arg
|
1720
|
+
* and execute in this scope
|
1721
|
+
* Returns: -
|
1722
|
+
* Inputs: -
|
1723
|
+
*/
|
1724
|
+
this[sFunc] = _fnExternApiFunc(sFunc);
|
1725
|
+
}
|
1726
|
+
}
|
1727
|
+
|
1728
|
+
|
1729
|
+
|
1730
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
1731
|
+
* Local functions
|
1732
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
1733
|
+
|
1734
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
1735
|
+
* Initalisation
|
1736
|
+
*/
|
1737
|
+
|
1738
|
+
/*
|
1739
|
+
* Function: _fnInitalise
|
1740
|
+
* Purpose: Draw the table for the first time, adding all required features
|
1741
|
+
* Returns: -
|
1742
|
+
* Inputs: object:oSettings - dataSlides settings object
|
1743
|
+
*/
|
1744
|
+
function _fnInitalise ( oSettings )
|
1745
|
+
{
|
1746
|
+
/* Ensure that the table data is fully initialised */
|
1747
|
+
if ( oSettings.bInitialised === false )
|
1748
|
+
{
|
1749
|
+
setTimeout( function(){ _fnInitalise( oSettings ); }, 200 );
|
1750
|
+
return;
|
1751
|
+
}
|
1752
|
+
|
1753
|
+
/* Show the display HTML options */
|
1754
|
+
_fnAddOptionsHtml( oSettings );
|
1755
|
+
|
1756
|
+
/* Draw the headers for the table */
|
1757
|
+
_fnDrawHead( oSettings );
|
1758
|
+
|
1759
|
+
/* If there is default sorting required - let's do it. The sort function
|
1760
|
+
* will do the drawing for us. Otherwise we draw the table
|
1761
|
+
*/
|
1762
|
+
if ( oSettings.oFeatures.bSort )
|
1763
|
+
{
|
1764
|
+
_fnSort( oSettings, false );
|
1765
|
+
/*
|
1766
|
+
* Add the sorting classes to the header and the body (if needed).
|
1767
|
+
* Reason for doing it here after the first draw is to stop classes being applied to the
|
1768
|
+
* 'static' table.
|
1769
|
+
*/
|
1770
|
+
_fnSortingClasses( oSettings );
|
1771
|
+
}
|
1772
|
+
else
|
1773
|
+
{
|
1774
|
+
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
|
1775
|
+
_fnCalculateEnd( oSettings );
|
1776
|
+
_fnDraw( oSettings );
|
1777
|
+
}
|
1778
|
+
|
1779
|
+
/* if there is an ajax source */
|
1780
|
+
if ( oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide )
|
1781
|
+
{
|
1782
|
+
_fnProcessingDisplay( oSettings, true );
|
1783
|
+
|
1784
|
+
$.getJSON( oSettings.sAjaxSource, null, function(json) {
|
1785
|
+
|
1786
|
+
/* Got the data - add it to the table */
|
1787
|
+
for ( var i=0 ; i<json.aaData.length ; i++ )
|
1788
|
+
{
|
1789
|
+
_fnAddData( oSettings, json.aaData[i] );
|
1790
|
+
}
|
1791
|
+
|
1792
|
+
/* Reset the init display for cookie saving. We've already done a filter, and
|
1793
|
+
* therefore cleared it before. So we need to make it appear 'fresh'
|
1794
|
+
*/
|
1795
|
+
oSettings.iInitDisplayStart = oSettings._iDisplayStart;
|
1796
|
+
|
1797
|
+
if ( oSettings.oFeatures.bSort )
|
1798
|
+
{
|
1799
|
+
_fnSort( oSettings );
|
1800
|
+
}
|
1801
|
+
else
|
1802
|
+
{
|
1803
|
+
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
|
1804
|
+
_fnCalculateEnd( oSettings );
|
1805
|
+
_fnDraw( oSettings );
|
1806
|
+
}
|
1807
|
+
_fnProcessingDisplay( oSettings, false );
|
1808
|
+
|
1809
|
+
/* Run the init callback if there is one */
|
1810
|
+
if ( typeof oSettings.fnInitComplete == 'function' )
|
1811
|
+
{
|
1812
|
+
oSettings.fnInitComplete( oSettings, json );
|
1813
|
+
}
|
1814
|
+
} );
|
1815
|
+
return;
|
1816
|
+
}
|
1817
|
+
|
1818
|
+
/* Run the init callback if there is one */
|
1819
|
+
if ( typeof oSettings.fnInitComplete == 'function' )
|
1820
|
+
{
|
1821
|
+
oSettings.fnInitComplete( oSettings );
|
1822
|
+
}
|
1823
|
+
_fnProcessingDisplay( oSettings, false );
|
1824
|
+
}
|
1825
|
+
|
1826
|
+
/*
|
1827
|
+
* Function: _fnLanguageProcess
|
1828
|
+
* Purpose: Copy language variables from remote object to a local one
|
1829
|
+
* Returns: -
|
1830
|
+
* Inputs: object:oSettings - dataSlides settings object
|
1831
|
+
* object:oLanguage - Language information
|
1832
|
+
* bool:bInit - init once complete
|
1833
|
+
*/
|
1834
|
+
function _fnLanguageProcess( oSettings, oLanguage, bInit )
|
1835
|
+
{
|
1836
|
+
_fnMap( oSettings.oLanguage, oLanguage, 'sProcessing' );
|
1837
|
+
_fnMap( oSettings.oLanguage, oLanguage, 'sLengthMenu' );
|
1838
|
+
_fnMap( oSettings.oLanguage, oLanguage, 'sZeroRecords' );
|
1839
|
+
_fnMap( oSettings.oLanguage, oLanguage, 'sInfo' );
|
1840
|
+
_fnMap( oSettings.oLanguage, oLanguage, 'sInfoEmpty' );
|
1841
|
+
_fnMap( oSettings.oLanguage, oLanguage, 'sInfoFiltered' );
|
1842
|
+
_fnMap( oSettings.oLanguage, oLanguage, 'sInfoPostFix' );
|
1843
|
+
_fnMap( oSettings.oLanguage, oLanguage, 'sSearch' );
|
1844
|
+
|
1845
|
+
if ( typeof oLanguage.oPaginate != 'undefined' )
|
1846
|
+
{
|
1847
|
+
_fnMap( oSettings.oLanguage.oPaginate, oLanguage.oPaginate, 'sFirst' );
|
1848
|
+
_fnMap( oSettings.oLanguage.oPaginate, oLanguage.oPaginate, 'sPrevious' );
|
1849
|
+
_fnMap( oSettings.oLanguage.oPaginate, oLanguage.oPaginate, 'sNext' );
|
1850
|
+
_fnMap( oSettings.oLanguage.oPaginate, oLanguage.oPaginate, 'sLast' );
|
1851
|
+
}
|
1852
|
+
|
1853
|
+
if ( bInit )
|
1854
|
+
{
|
1855
|
+
_fnInitalise( oSettings );
|
1856
|
+
}
|
1857
|
+
}
|
1858
|
+
|
1859
|
+
/*
|
1860
|
+
* Function: _fnAddColumn
|
1861
|
+
* Purpose: Add a column to the list used for the table
|
1862
|
+
* Returns: -
|
1863
|
+
* Inputs: object:oSettings - dataSlides settings object
|
1864
|
+
* object:oOptions - object with sType, bVisible and bSearchable
|
1865
|
+
* node:nTh - the th element for this column
|
1866
|
+
* Notes: All options in enter column can be over-ridden by the user
|
1867
|
+
* initialisation of dataSlides
|
1868
|
+
*/
|
1869
|
+
function _fnAddColumn( oSettings, oOptions, nTh )
|
1870
|
+
{
|
1871
|
+
oSettings.aoColumns[ oSettings.aoColumns.length++ ] = {
|
1872
|
+
"sType": null,
|
1873
|
+
"_bAutoType": true,
|
1874
|
+
"bVisible": true,
|
1875
|
+
"bSearchable": true,
|
1876
|
+
"bSortable": true,
|
1877
|
+
"sTitle": nTh ? nTh.innerHTML : '',
|
1878
|
+
"sName": '',
|
1879
|
+
"sWidth": null,
|
1880
|
+
"sClass": null,
|
1881
|
+
"fnRender": null,
|
1882
|
+
"bUseRendered": true,
|
1883
|
+
"iDataSort": oSettings.aoColumns.length-1,
|
1884
|
+
"nTh": nTh ? nTh : document.createElement('div'),
|
1885
|
+
"nTf": null
|
1886
|
+
};
|
1887
|
+
|
1888
|
+
/* User specified column options */
|
1889
|
+
var iLength = oSettings.aoColumns.length-1;
|
1890
|
+
if ( typeof oOptions != 'undefined' && oOptions !== null )
|
1891
|
+
{
|
1892
|
+
var oCol = oSettings.aoColumns[ iLength ];
|
1893
|
+
|
1894
|
+
if ( typeof oOptions.sType != 'undefined' )
|
1895
|
+
{
|
1896
|
+
oCol.sType = oOptions.sType;
|
1897
|
+
oCol._bAutoType = false;
|
1898
|
+
}
|
1899
|
+
|
1900
|
+
_fnMap( oCol, oOptions, "bVisible" );
|
1901
|
+
_fnMap( oCol, oOptions, "bSearchable" );
|
1902
|
+
_fnMap( oCol, oOptions, "bSortable" );
|
1903
|
+
_fnMap( oCol, oOptions, "sTitle" );
|
1904
|
+
_fnMap( oCol, oOptions, "sName" );
|
1905
|
+
_fnMap( oCol, oOptions, "sWidth" );
|
1906
|
+
_fnMap( oCol, oOptions, "sClass" );
|
1907
|
+
_fnMap( oCol, oOptions, "fnRender" );
|
1908
|
+
_fnMap( oCol, oOptions, "bUseRendered" );
|
1909
|
+
_fnMap( oCol, oOptions, "iDataSort" );
|
1910
|
+
}
|
1911
|
+
|
1912
|
+
/* Add a column specific filter */
|
1913
|
+
if ( typeof oSettings.aoPreSearchCols[ iLength ] == 'undefined' ||
|
1914
|
+
oSettings.aoPreSearchCols[ iLength ] === null )
|
1915
|
+
{
|
1916
|
+
oSettings.aoPreSearchCols[ iLength ] = {
|
1917
|
+
"sSearch": "",
|
1918
|
+
"bEscapeRegex": true
|
1919
|
+
};
|
1920
|
+
}
|
1921
|
+
else if ( typeof oSettings.aoPreSearchCols[ iLength ].bEscapeRegex == 'undefined' )
|
1922
|
+
{
|
1923
|
+
/* Don't require that the user must specify bEscapeRegex */
|
1924
|
+
oSettings.aoPreSearchCols[ iLength ].bEscapeRegex = true;
|
1925
|
+
}
|
1926
|
+
}
|
1927
|
+
|
1928
|
+
/*
|
1929
|
+
* Function: _fnAddData
|
1930
|
+
* Purpose: Add a data array to the table, creating DOM node etc
|
1931
|
+
* Returns: int: - >=0 if successful (index of new aoData entry), -1 if failed
|
1932
|
+
* Inputs: object:oSettings - dataSlides settings object
|
1933
|
+
* array:aData - data array to be added
|
1934
|
+
*/
|
1935
|
+
function _fnAddData ( oSettings, aData )
|
1936
|
+
{
|
1937
|
+
/* Sanity check the length of the new array */
|
1938
|
+
if ( aData.length != oSettings.aoColumns.length )
|
1939
|
+
{
|
1940
|
+
alert( "Warning - added data does not match known number of columns" );
|
1941
|
+
return -1;
|
1942
|
+
}
|
1943
|
+
|
1944
|
+
/* Create the object for storing information about this new row */
|
1945
|
+
var iThisIndex = oSettings.aoData.length;
|
1946
|
+
var newTr = document.createElement('div');
|
1947
|
+
$(newTr).addClass('tr');
|
1948
|
+
oSettings.aoData.push( {
|
1949
|
+
"_iId": oSettings.iNextId++,
|
1950
|
+
"_aData": aData.slice(),
|
1951
|
+
"nTr": newTr,
|
1952
|
+
"_anHidden": []
|
1953
|
+
} );
|
1954
|
+
|
1955
|
+
/* Create the cells */
|
1956
|
+
var nTd;
|
1957
|
+
for ( var i=0 ; i<aData.length ; i++ )
|
1958
|
+
{
|
1959
|
+
nTd = document.createElement('div');
|
1960
|
+
$(nTd).addClass('td');
|
1961
|
+
if ( typeof oSettings.aoColumns[i].fnRender == 'function' )
|
1962
|
+
{
|
1963
|
+
var sRendered = oSettings.aoColumns[i].fnRender( {
|
1964
|
+
"iDataRow": iThisIndex,
|
1965
|
+
"iDataColumn": i,
|
1966
|
+
"aData": aData
|
1967
|
+
} );
|
1968
|
+
nTd.innerHTML = sRendered;
|
1969
|
+
if ( oSettings.aoColumns[i].bUseRendered )
|
1970
|
+
{
|
1971
|
+
/* Use the rendered data for filtering/sorting */
|
1972
|
+
oSettings.aoData[iThisIndex]._aData[i] = sRendered;
|
1973
|
+
}
|
1974
|
+
}
|
1975
|
+
else
|
1976
|
+
{
|
1977
|
+
nTd.innerHTML = aData[i];
|
1978
|
+
}
|
1979
|
+
|
1980
|
+
if ( oSettings.aoColumns[i].sClass !== null )
|
1981
|
+
{
|
1982
|
+
nTd.className = oSettings.aoColumns[i].sClass;
|
1983
|
+
}
|
1984
|
+
|
1985
|
+
/* See if we should auto-detect the column type */
|
1986
|
+
if ( oSettings.aoColumns[i]._bAutoType && oSettings.aoColumns[i].sType != 'string' )
|
1987
|
+
{
|
1988
|
+
/* Attempt to auto detect the type - same as _fnGatherData() */
|
1989
|
+
if ( oSettings.aoColumns[i].sType === null )
|
1990
|
+
{
|
1991
|
+
oSettings.aoColumns[i].sType = _fnDetectType( aData[i] );
|
1992
|
+
}
|
1993
|
+
else if ( oSettings.aoColumns[i].sType == "date" ||
|
1994
|
+
oSettings.aoColumns[i].sType == "numeric" )
|
1995
|
+
{
|
1996
|
+
oSettings.aoColumns[i].sType = _fnDetectType( aData[i] );
|
1997
|
+
}
|
1998
|
+
}
|
1999
|
+
|
2000
|
+
if ( oSettings.aoColumns[i].bVisible )
|
2001
|
+
{
|
2002
|
+
oSettings.aoData[iThisIndex].nTr.appendChild( nTd );
|
2003
|
+
}
|
2004
|
+
else
|
2005
|
+
{
|
2006
|
+
oSettings.aoData[iThisIndex]._anHidden[i] = nTd;
|
2007
|
+
}
|
2008
|
+
}
|
2009
|
+
|
2010
|
+
/* Add to the display array */
|
2011
|
+
oSettings.aiDisplayMaster.push( iThisIndex );
|
2012
|
+
return iThisIndex;
|
2013
|
+
}
|
2014
|
+
|
2015
|
+
/*
|
2016
|
+
* Function: _fnGatherData
|
2017
|
+
* Purpose: Read in the data from the target table
|
2018
|
+
* Returns: -
|
2019
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2020
|
+
*/
|
2021
|
+
function _fnGatherData( oSettings )
|
2022
|
+
{
|
2023
|
+
var iLoop;
|
2024
|
+
var i, j;
|
2025
|
+
|
2026
|
+
/*
|
2027
|
+
* Process by row first
|
2028
|
+
* Add the data object for the whole table - storing the tr node. Note - no point in getting
|
2029
|
+
* DOM based data if we are going to go and replace it with Ajax source data.
|
2030
|
+
*/
|
2031
|
+
if ( oSettings.sAjaxSource === null )
|
2032
|
+
{
|
2033
|
+
$('.tbody:eq(0)>.tr', oSettings.nTable).each( function() {
|
2034
|
+
var iThisIndex = oSettings.aoData.length;
|
2035
|
+
oSettings.aoData.push( {
|
2036
|
+
"_iId": oSettings.iNextId++,
|
2037
|
+
"_aData": [],
|
2038
|
+
"nTr": this,
|
2039
|
+
"_anHidden": []
|
2040
|
+
} );
|
2041
|
+
|
2042
|
+
oSettings.aiDisplayMaster.push( iThisIndex );
|
2043
|
+
|
2044
|
+
/* Add the data for this column */
|
2045
|
+
var aLocalData = oSettings.aoData[iThisIndex]._aData;
|
2046
|
+
$('.td', this).each( function( i ) {
|
2047
|
+
aLocalData[i] = this.innerHTML;
|
2048
|
+
} );
|
2049
|
+
} );
|
2050
|
+
}
|
2051
|
+
|
2052
|
+
/*
|
2053
|
+
* Now process by column
|
2054
|
+
*/
|
2055
|
+
var iCorrector = 0;
|
2056
|
+
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
|
2057
|
+
{
|
2058
|
+
/* Get the title of the column - unless there is a user set one */
|
2059
|
+
if ( oSettings.aoColumns[i].sTitle === null )
|
2060
|
+
{
|
2061
|
+
oSettings.aoColumns[i].sTitle = oSettings.aoColumns[i].nTh.innerHTML;
|
2062
|
+
}
|
2063
|
+
|
2064
|
+
var bAutoType = oSettings.aoColumns[i]._bAutoType;
|
2065
|
+
var bRender = typeof oSettings.aoColumns[i].fnRender == 'function';
|
2066
|
+
var bClass = oSettings.aoColumns[i].sClass !== null;
|
2067
|
+
var bVisible = oSettings.aoColumns[i].bVisible;
|
2068
|
+
|
2069
|
+
/* A single loop to rule them all (and be more efficient) */
|
2070
|
+
if ( bAutoType || bRender || bClass || !bVisible )
|
2071
|
+
{
|
2072
|
+
iLoop = oSettings.aoData.length;
|
2073
|
+
for ( j=0 ; j<iLoop ; j++ )
|
2074
|
+
{
|
2075
|
+
var nCellNode = oSettings.aoData[j].nTr.children('.td')[ i-iCorrector ];
|
2076
|
+
|
2077
|
+
if ( bAutoType )
|
2078
|
+
{
|
2079
|
+
if ( oSettings.aoColumns[i].sType === null )
|
2080
|
+
{
|
2081
|
+
oSettings.aoColumns[i].sType = _fnDetectType( oSettings.aoData[j]._aData[i] );
|
2082
|
+
}
|
2083
|
+
else if ( oSettings.aoColumns[i].sType == "date" ||
|
2084
|
+
oSettings.aoColumns[i].sType == "numeric" )
|
2085
|
+
{
|
2086
|
+
/* If type is date or numeric - ensure that all collected data
|
2087
|
+
* in the column is of the same type
|
2088
|
+
*/
|
2089
|
+
oSettings.aoColumns[i].sType = _fnDetectType( oSettings.aoData[j]._aData[i] );
|
2090
|
+
}
|
2091
|
+
/* The else would be 'type = string' we don't want to do anything
|
2092
|
+
* if that is the case
|
2093
|
+
*/
|
2094
|
+
}
|
2095
|
+
|
2096
|
+
if ( bRender )
|
2097
|
+
{
|
2098
|
+
var sRendered = oSettings.aoColumns[i].fnRender( {
|
2099
|
+
"iDataRow": j,
|
2100
|
+
"iDataColumn": i,
|
2101
|
+
"aData": oSettings.aoData[j]._aData
|
2102
|
+
} );
|
2103
|
+
nCellNode.innerHTML = sRendered;
|
2104
|
+
if ( oSettings.aoColumns[i].bUseRendered )
|
2105
|
+
{
|
2106
|
+
/* Use the rendered data for filtering/sorting */
|
2107
|
+
oSettings.aoData[j]._aData[i] = sRendered;
|
2108
|
+
}
|
2109
|
+
}
|
2110
|
+
|
2111
|
+
if ( bClass )
|
2112
|
+
{
|
2113
|
+
nCellNode.className += ' '+oSettings.aoColumns[i].sClass;
|
2114
|
+
}
|
2115
|
+
|
2116
|
+
if ( !bVisible )
|
2117
|
+
{
|
2118
|
+
oSettings.aoData[j]._anHidden[i] = nCellNode;
|
2119
|
+
nCellNode.parentNode.removeChild( nCellNode );
|
2120
|
+
}
|
2121
|
+
}
|
2122
|
+
|
2123
|
+
/* Keep an index corrector for the next loop */
|
2124
|
+
if ( !bVisible )
|
2125
|
+
{
|
2126
|
+
iCorrector++;
|
2127
|
+
}
|
2128
|
+
}
|
2129
|
+
}
|
2130
|
+
}
|
2131
|
+
|
2132
|
+
|
2133
|
+
|
2134
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
2135
|
+
* Drawing functions
|
2136
|
+
*/
|
2137
|
+
|
2138
|
+
/*
|
2139
|
+
* Function: _fnDrawHead
|
2140
|
+
* Purpose: Create the HTML header for the table
|
2141
|
+
* Returns: -
|
2142
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2143
|
+
*/
|
2144
|
+
function _fnDrawHead( oSettings )
|
2145
|
+
{
|
2146
|
+
var i, nTh, iLen;
|
2147
|
+
var iThs = $('.thead');
|
2148
|
+
var iCorrector = 0;
|
2149
|
+
|
2150
|
+
/* If there is a header in place - then use it - otherwise it's going to get nuked... */
|
2151
|
+
if ( iThs !== 0 )
|
2152
|
+
{
|
2153
|
+
/* We've got a thead from the DOM, so remove hidden columns and apply width to vis cols */
|
2154
|
+
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
2155
|
+
{
|
2156
|
+
//oSettings.aoColumns[i].nTh = nThs[i];
|
2157
|
+
nTh = oSettings.aoColumns[i].nTh;
|
2158
|
+
|
2159
|
+
if ( oSettings.aoColumns[i].bVisible )
|
2160
|
+
{
|
2161
|
+
/* Set width */
|
2162
|
+
if ( oSettings.aoColumns[i].sWidth !== null )
|
2163
|
+
{
|
2164
|
+
nTh.style.width = oSettings.aoColumns[i].sWidth;
|
2165
|
+
}
|
2166
|
+
|
2167
|
+
/* Set the title of the column if it is user defined (not what was auto detected) */
|
2168
|
+
if ( oSettings.aoColumns[i].sTitle != nTh.innerHTML )
|
2169
|
+
{
|
2170
|
+
nTh.innerHTML = oSettings.aoColumns[i].sTitle;
|
2171
|
+
}
|
2172
|
+
}
|
2173
|
+
else
|
2174
|
+
{
|
2175
|
+
//nTh.parentNode.removeChild( nTh );
|
2176
|
+
iCorrector++;
|
2177
|
+
}
|
2178
|
+
}
|
2179
|
+
}
|
2180
|
+
else
|
2181
|
+
{
|
2182
|
+
var nTr = document.createElement( "tr" );
|
2183
|
+
|
2184
|
+
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
2185
|
+
{
|
2186
|
+
if ( oSettings.aoColumns[i].bVisible )
|
2187
|
+
{
|
2188
|
+
nTh = oSettings.aoColumns[i].nTh;
|
2189
|
+
|
2190
|
+
if ( oSettings.aoColumns[i].sClass !== null )
|
2191
|
+
{
|
2192
|
+
nTh.className = oSettings.aoColumns[i].sClass;
|
2193
|
+
}
|
2194
|
+
|
2195
|
+
if ( oSettings.aoColumns[i].sWidth !== null )
|
2196
|
+
{
|
2197
|
+
nTh.style.width = oSettings.aoColumns[i].sWidth;
|
2198
|
+
}
|
2199
|
+
|
2200
|
+
nTh.innerHTML = oSettings.aoColumns[i].sTitle;
|
2201
|
+
nTr.appendChild( nTh );
|
2202
|
+
}
|
2203
|
+
}
|
2204
|
+
$('thead', oSettings.nTable).html( '' )[0].appendChild( nTr );
|
2205
|
+
|
2206
|
+
/* We don't have a header in the DOM - so we are going to have to create one */
|
2207
|
+
}
|
2208
|
+
|
2209
|
+
/* Add the extra markup needed by jQuery UI's themes */
|
2210
|
+
if ( oSettings.bJUI )
|
2211
|
+
{
|
2212
|
+
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
2213
|
+
{
|
2214
|
+
var nSpan = document.createElement('span');
|
2215
|
+
oSettings.aoColumns[i].nTh.appendChild( nSpan );
|
2216
|
+
}
|
2217
|
+
}
|
2218
|
+
|
2219
|
+
/* Add sort listener */
|
2220
|
+
if ( oSettings.oFeatures.bSort )
|
2221
|
+
{
|
2222
|
+
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
|
2223
|
+
{
|
2224
|
+
if ( oSettings.aoColumns[i].bSortable === false )
|
2225
|
+
{
|
2226
|
+
continue;
|
2227
|
+
}
|
2228
|
+
|
2229
|
+
$(oSettings.aoColumns[i].nTh).click( function (e) {
|
2230
|
+
var iDataIndex;
|
2231
|
+
/* Find which column we are sorting on - can't use index() due to colspan etc */
|
2232
|
+
for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
|
2233
|
+
{
|
2234
|
+
if ( oSettings.aoColumns[i].nTh == this )
|
2235
|
+
{
|
2236
|
+
iDataIndex = i;
|
2237
|
+
break;
|
2238
|
+
}
|
2239
|
+
}
|
2240
|
+
|
2241
|
+
/* If the column is not sortable - don't to anything */
|
2242
|
+
if ( oSettings.aoColumns[iDataIndex].bSortable === false )
|
2243
|
+
{
|
2244
|
+
return;
|
2245
|
+
}
|
2246
|
+
|
2247
|
+
/*
|
2248
|
+
* This is a little bit odd I admit... I declare a temporary function inside the scope of
|
2249
|
+
* _fnDrawHead and the click handler in order that the code presented here can be used
|
2250
|
+
* twice - once for when bProcessing is enabled, and another time for when it is
|
2251
|
+
* disabled, as we need to perform slightly different actions.
|
2252
|
+
* Basically the issue here is that the Javascript engine in modern browsers don't
|
2253
|
+
* appear to allow the rendering engine to update the display while it is still excuting
|
2254
|
+
* it's thread (well - it does but only after long intervals). This means that the
|
2255
|
+
* 'processing' display doesn't appear for a table sort. To break the js thread up a bit
|
2256
|
+
* I force an execution break by using setTimeout - but this breaks the expected
|
2257
|
+
* thread continuation for the end-developer's point of view (their code would execute
|
2258
|
+
* too early), so we on;y do it when we absolutely have to.
|
2259
|
+
*/
|
2260
|
+
var fnInnerSorting = function () {
|
2261
|
+
if ( e.shiftKey )
|
2262
|
+
{
|
2263
|
+
/* If the shift key is pressed then we are multipe column sorting */
|
2264
|
+
var bFound = false;
|
2265
|
+
for ( var i=0 ; i<oSettings.aaSorting.length ; i++ )
|
2266
|
+
{
|
2267
|
+
if ( oSettings.aaSorting[i][0] == iDataIndex )
|
2268
|
+
{
|
2269
|
+
if ( oSettings.aaSorting[i][1] == "asc" )
|
2270
|
+
{
|
2271
|
+
oSettings.aaSorting[i][1] = "desc";
|
2272
|
+
}
|
2273
|
+
else
|
2274
|
+
{
|
2275
|
+
oSettings.aaSorting.splice( i, 1 );
|
2276
|
+
}
|
2277
|
+
bFound = true;
|
2278
|
+
break;
|
2279
|
+
}
|
2280
|
+
}
|
2281
|
+
|
2282
|
+
if ( bFound === false )
|
2283
|
+
{
|
2284
|
+
oSettings.aaSorting.push( [ iDataIndex, "asc" ] );
|
2285
|
+
}
|
2286
|
+
}
|
2287
|
+
else
|
2288
|
+
{
|
2289
|
+
/* If no shift key then single column sort */
|
2290
|
+
if ( oSettings.aaSorting.length == 1 && oSettings.aaSorting[0][0] == iDataIndex )
|
2291
|
+
{
|
2292
|
+
oSettings.aaSorting[0][1] = oSettings.aaSorting[0][1]=="asc" ? "desc" : "asc";
|
2293
|
+
}
|
2294
|
+
else
|
2295
|
+
{
|
2296
|
+
oSettings.aaSorting.splice( 0, oSettings.aaSorting.length );
|
2297
|
+
oSettings.aaSorting.push( [ iDataIndex, "asc" ] );
|
2298
|
+
}
|
2299
|
+
}
|
2300
|
+
|
2301
|
+
/* Run the sort */
|
2302
|
+
_fnSort( oSettings );
|
2303
|
+
}; /* /fnInnerSorting */
|
2304
|
+
|
2305
|
+
if ( !oSettings.oFeatures.bProcessing )
|
2306
|
+
{
|
2307
|
+
fnInnerSorting();
|
2308
|
+
}
|
2309
|
+
else
|
2310
|
+
{
|
2311
|
+
_fnProcessingDisplay( oSettings, true );
|
2312
|
+
setTimeout( function() {
|
2313
|
+
fnInnerSorting();
|
2314
|
+
if ( !oSettings.oFeatures.bServerSide )
|
2315
|
+
{
|
2316
|
+
_fnProcessingDisplay( oSettings, false );
|
2317
|
+
}
|
2318
|
+
}, 0 );
|
2319
|
+
}
|
2320
|
+
} ); /* /click */
|
2321
|
+
} /* For each column */
|
2322
|
+
|
2323
|
+
/* Take the brutal approach to cancelling text selection due to the shift key */
|
2324
|
+
$('.thead .th', oSettings.nTable).mousedown( function (e) {
|
2325
|
+
if ( e.shiftKey )
|
2326
|
+
{
|
2327
|
+
this.onselectstart = function() { return false; };
|
2328
|
+
return false;
|
2329
|
+
}
|
2330
|
+
} );
|
2331
|
+
} /* /if feature sort */
|
2332
|
+
|
2333
|
+
/* Set an absolute width for the table such that pagination doesn't
|
2334
|
+
* cause the table to resize
|
2335
|
+
*/
|
2336
|
+
if ( oSettings.oFeatures.bAutoWidth )
|
2337
|
+
{
|
2338
|
+
oSettings.nTable.style.width = oSettings.nTable.offsetWidth+"px";
|
2339
|
+
}
|
2340
|
+
|
2341
|
+
/* Cache the footer elements */
|
2342
|
+
var nTfoot = oSettings.nTable.getElementsByTagName('tfoot');
|
2343
|
+
if ( nTfoot.length !== 0 )
|
2344
|
+
{
|
2345
|
+
iCorrector = 0;
|
2346
|
+
var nTfs = $(nTfoot[0]).children('.th');
|
2347
|
+
for ( i=0, iLen=nTfs.length ; i<iLen ; i++ )
|
2348
|
+
{
|
2349
|
+
oSettings.aoColumns[i].nTf = nTfs[i-iCorrector];
|
2350
|
+
if ( !oSettings.aoColumns[i].bVisible )
|
2351
|
+
{
|
2352
|
+
nTfs[i-iCorrector].parentNode.removeChild( nTfs[i-iCorrector] );
|
2353
|
+
iCorrector++;
|
2354
|
+
}
|
2355
|
+
}
|
2356
|
+
}
|
2357
|
+
}
|
2358
|
+
|
2359
|
+
/*
|
2360
|
+
* Function: _fnDraw
|
2361
|
+
* Purpose: Insert the required TR nodes into the table for display
|
2362
|
+
* Returns: -
|
2363
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2364
|
+
*/
|
2365
|
+
function _fnDraw( oSettings )
|
2366
|
+
{
|
2367
|
+
var i;
|
2368
|
+
var anRows = [];
|
2369
|
+
var iRowCount = 0;
|
2370
|
+
var bRowError = false;
|
2371
|
+
var iStrips = oSettings.asStripClasses.length;
|
2372
|
+
var iOpenRows = oSettings.aoOpenRows.length;
|
2373
|
+
|
2374
|
+
/* If we are dealing with Ajax - do it here */
|
2375
|
+
if ( oSettings.oFeatures.bServerSide &&
|
2376
|
+
!_fnAjaxUpdate( oSettings ) )
|
2377
|
+
{
|
2378
|
+
return;
|
2379
|
+
}
|
2380
|
+
|
2381
|
+
if ( oSettings.aiDisplay.length !== 0 )
|
2382
|
+
{
|
2383
|
+
var iStart = oSettings._iDisplayStart;
|
2384
|
+
var iEnd = oSettings._iDisplayEnd;
|
2385
|
+
|
2386
|
+
if ( oSettings.oFeatures.bServerSide )
|
2387
|
+
{
|
2388
|
+
iStart = 0;
|
2389
|
+
iEnd = oSettings.aoData.length;
|
2390
|
+
}
|
2391
|
+
|
2392
|
+
for ( var j=iStart ; j<iEnd ; j++ )
|
2393
|
+
{
|
2394
|
+
var nRow = oSettings.aoData[ oSettings.aiDisplay[j] ].nTr;
|
2395
|
+
|
2396
|
+
/* Remove any old stripping classes and then add the new one */
|
2397
|
+
if ( iStrips !== 0 )
|
2398
|
+
{
|
2399
|
+
$(nRow).removeClass( oSettings.asStripClasses.join(' ') );
|
2400
|
+
$(nRow).addClass( oSettings.asStripClasses[ iRowCount % iStrips ] );
|
2401
|
+
}
|
2402
|
+
|
2403
|
+
/* Custom row callback function - might want to manipule the row */
|
2404
|
+
if ( typeof oSettings.fnRowCallback == "function" )
|
2405
|
+
{
|
2406
|
+
nRow = oSettings.fnRowCallback( nRow,
|
2407
|
+
oSettings.aoData[ oSettings.aiDisplay[j] ]._aData, iRowCount, j );
|
2408
|
+
if ( !nRow && !bRowError )
|
2409
|
+
{
|
2410
|
+
alert( "Error: A node was not returned by fnRowCallback" );
|
2411
|
+
bRowError = true;
|
2412
|
+
}
|
2413
|
+
}
|
2414
|
+
|
2415
|
+
anRows.push( nRow );
|
2416
|
+
iRowCount++;
|
2417
|
+
|
2418
|
+
/* If there is an open row - and it is attached to this parent - attach it on redraw */
|
2419
|
+
if ( iOpenRows !== 0 )
|
2420
|
+
{
|
2421
|
+
for ( var k=0 ; k<iOpenRows ; k++ )
|
2422
|
+
{
|
2423
|
+
if ( nRow == oSettings.aoOpenRows[k].nParent )
|
2424
|
+
{
|
2425
|
+
anRows.push( oSettings.aoOpenRows[k].nTr );
|
2426
|
+
}
|
2427
|
+
}
|
2428
|
+
}
|
2429
|
+
}
|
2430
|
+
}
|
2431
|
+
else
|
2432
|
+
{
|
2433
|
+
/* Table is empty - create a row with an empty message in it */
|
2434
|
+
anRows[ 0 ] = document.createElement( 'div' );
|
2435
|
+
$(anRows[ 0 ]).addClass('tr');
|
2436
|
+
|
2437
|
+
var nTd = document.createElement( 'div' );
|
2438
|
+
$(nTd).addClass('td');
|
2439
|
+
nTd.className = oSettings.oClasses.sRowEmpty;
|
2440
|
+
nTd.innerHTML = oSettings.oLanguage.sZeroRecords;
|
2441
|
+
|
2442
|
+
anRows[ iRowCount ].appendChild( nTd );
|
2443
|
+
}
|
2444
|
+
|
2445
|
+
/* Callback the header and footer custom funcation if there is one */
|
2446
|
+
if ( typeof oSettings.fnHeaderCallback == 'function' )
|
2447
|
+
{
|
2448
|
+
oSettings.fnHeaderCallback( $('.thead .tr', oSettings.nTable)[0],
|
2449
|
+
_fnGetDataMaster( oSettings ), oSettings._iDisplayStart, oSettings.fnDisplayEnd(),
|
2450
|
+
oSettings.aiDisplay );
|
2451
|
+
}
|
2452
|
+
|
2453
|
+
if ( typeof oSettings.fnFooterCallback == 'function' )
|
2454
|
+
{
|
2455
|
+
oSettings.fnFooterCallback( $('.tfoot .tr', oSettings.nTable)[0],
|
2456
|
+
_fnGetDataMaster( oSettings ), oSettings._iDisplayStart, oSettings.fnDisplayEnd(),
|
2457
|
+
oSettings.aiDisplay );
|
2458
|
+
}
|
2459
|
+
|
2460
|
+
/*
|
2461
|
+
* Need to remove any old row from the display - note we can't just empty the tbody using
|
2462
|
+
* .html('') since this will unbind the jQuery event handlers (even although the node still
|
2463
|
+
* exists!) - note the initially odd ':eq(0)>tr' expression. This basically ensures that we
|
2464
|
+
* only get tr elements of the tbody that the data table has been initialised on. If there
|
2465
|
+
* are nested tables then we don't want to remove those elements.
|
2466
|
+
*/
|
2467
|
+
var nTrs = $('.tbody:eq(0)>.tr', oSettings.nTable);
|
2468
|
+
for ( i=0 ; i<nTrs.length ; i++ )
|
2469
|
+
{
|
2470
|
+
nTrs[i].parentNode.removeChild( nTrs[i] );
|
2471
|
+
}
|
2472
|
+
|
2473
|
+
/* Put the draw table into the dom */
|
2474
|
+
var nBody = $('.tbody:eq(0)', oSettings.nTable);
|
2475
|
+
if ( nBody[0] )
|
2476
|
+
{
|
2477
|
+
for ( i=0 ; i<anRows.length ; i++ )
|
2478
|
+
{
|
2479
|
+
nBody[0].appendChild( anRows[i] );
|
2480
|
+
}
|
2481
|
+
}
|
2482
|
+
|
2483
|
+
/* Update the pagination display buttons */
|
2484
|
+
if ( oSettings.oFeatures.bPaginate )
|
2485
|
+
{
|
2486
|
+
_oExt.oPagination[ oSettings.sPaginationType ].fnUpdate( oSettings, function( oSettings ) {
|
2487
|
+
_fnCalculateEnd( oSettings );
|
2488
|
+
_fnDraw( oSettings );
|
2489
|
+
} );
|
2490
|
+
}
|
2491
|
+
|
2492
|
+
/* Show information about the table */
|
2493
|
+
if ( oSettings.oFeatures.bInfo && oSettings.anFeatures.i )
|
2494
|
+
{
|
2495
|
+
/* Update the information */
|
2496
|
+
if ( oSettings.fnRecordsDisplay() === 0 &&
|
2497
|
+
oSettings.fnRecordsDisplay() == oSettings.fnRecordsTotal() )
|
2498
|
+
{
|
2499
|
+
oSettings.anFeatures.i.innerHTML =
|
2500
|
+
oSettings.oLanguage.sInfoEmpty+ oSettings.oLanguage.sInfoPostFix;
|
2501
|
+
}
|
2502
|
+
else if ( oSettings.fnRecordsDisplay() === 0 )
|
2503
|
+
{
|
2504
|
+
oSettings.anFeatures.i.innerHTML = oSettings.oLanguage.sInfoEmpty +' '+
|
2505
|
+
oSettings.oLanguage.sInfoFiltered.replace('_MAX_',
|
2506
|
+
oSettings.fnRecordsTotal())+ oSettings.oLanguage.sInfoPostFix;
|
2507
|
+
}
|
2508
|
+
else if ( oSettings.fnRecordsDisplay() == oSettings.fnRecordsTotal() )
|
2509
|
+
{
|
2510
|
+
oSettings.anFeatures.i.innerHTML =
|
2511
|
+
oSettings.oLanguage.sInfo.
|
2512
|
+
replace('_START_',oSettings._iDisplayStart+1).
|
2513
|
+
replace('_END_',oSettings.fnDisplayEnd()).
|
2514
|
+
replace('_TOTAL_',oSettings.fnRecordsDisplay())+
|
2515
|
+
oSettings.oLanguage.sInfoPostFix;
|
2516
|
+
}
|
2517
|
+
else
|
2518
|
+
{
|
2519
|
+
oSettings.anFeatures.i.innerHTML =
|
2520
|
+
oSettings.oLanguage.sInfo.
|
2521
|
+
replace('_START_',oSettings._iDisplayStart+1).
|
2522
|
+
replace('_END_',oSettings.fnDisplayEnd()).
|
2523
|
+
replace('_TOTAL_',oSettings.fnRecordsDisplay()) +' '+
|
2524
|
+
oSettings.oLanguage.sInfoFiltered.replace('_MAX_', oSettings.fnRecordsTotal())+
|
2525
|
+
oSettings.oLanguage.sInfoPostFix;
|
2526
|
+
}
|
2527
|
+
}
|
2528
|
+
|
2529
|
+
/* Alter the sorting classes to take account of the changes */
|
2530
|
+
if ( oSettings.oFeatures.bServerSide && oSettings.oFeatures.bSort )
|
2531
|
+
{
|
2532
|
+
_fnSortingClasses( oSettings );
|
2533
|
+
}
|
2534
|
+
|
2535
|
+
/* Save the table state on each draw */
|
2536
|
+
_fnSaveState( oSettings );
|
2537
|
+
|
2538
|
+
/* Drawing is finished - call the callback if there is one */
|
2539
|
+
if ( typeof oSettings.fnDrawCallback == 'function' )
|
2540
|
+
{
|
2541
|
+
oSettings.fnDrawCallback( oSettings );
|
2542
|
+
}
|
2543
|
+
}
|
2544
|
+
|
2545
|
+
/*
|
2546
|
+
* Function: _fnReDraw
|
2547
|
+
* Purpose: Redraw the table - taking account of the various features which are enabled
|
2548
|
+
* Returns: -
|
2549
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2550
|
+
*/
|
2551
|
+
function _fnReDraw( oSettings )
|
2552
|
+
{
|
2553
|
+
if ( oSettings.oFeatures.bSort )
|
2554
|
+
{
|
2555
|
+
/* Sorting will refilter and draw for us */
|
2556
|
+
_fnSort( oSettings, oSettings.oPreviousSearch );
|
2557
|
+
}
|
2558
|
+
else if ( oSettings.oFeatures.bFilter )
|
2559
|
+
{
|
2560
|
+
/* Filtering will redraw for us */
|
2561
|
+
_fnFilterComplete( oSettings, oSettings.oPreviousSearch );
|
2562
|
+
}
|
2563
|
+
else
|
2564
|
+
{
|
2565
|
+
_fnCalculateEnd( oSettings );
|
2566
|
+
_fnDraw( oSettings );
|
2567
|
+
}
|
2568
|
+
}
|
2569
|
+
|
2570
|
+
/*
|
2571
|
+
* Function: _fnAjaxUpdate
|
2572
|
+
* Purpose: Update the table using an Ajax call
|
2573
|
+
* Returns: bool: block the table drawing or not
|
2574
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2575
|
+
*/
|
2576
|
+
function _fnAjaxUpdate( oSettings )
|
2577
|
+
{
|
2578
|
+
if ( oSettings.bAjaxDataGet )
|
2579
|
+
{
|
2580
|
+
_fnProcessingDisplay( oSettings, true );
|
2581
|
+
var iColumns = oSettings.aoColumns.length;
|
2582
|
+
var aoData = [];
|
2583
|
+
var i;
|
2584
|
+
|
2585
|
+
/* Paging and general */
|
2586
|
+
oSettings.iServerDraw++;
|
2587
|
+
aoData.push( { "name": "sEcho", "value": oSettings.iServerDraw } );
|
2588
|
+
aoData.push( { "name": "iColumns", "value": iColumns } );
|
2589
|
+
aoData.push( { "name": "sColumns", "value": _fnColumnOrdering(oSettings) } );
|
2590
|
+
aoData.push( { "name": "iDisplayStart", "value": oSettings._iDisplayStart } );
|
2591
|
+
aoData.push( { "name": "iDisplayLength", "value": oSettings.oFeatures.bPaginate !== false ?
|
2592
|
+
oSettings._iDisplayLength : -1 } );
|
2593
|
+
|
2594
|
+
/* Filtering */
|
2595
|
+
if ( oSettings.oFeatures.bFilter !== false )
|
2596
|
+
{
|
2597
|
+
aoData.push( { "name": "sSearch", "value": oSettings.oPreviousSearch.sSearch } );
|
2598
|
+
aoData.push( { "name": "bEscapeRegex", "value": oSettings.oPreviousSearch.bEscapeRegex } );
|
2599
|
+
for ( i=0 ; i<iColumns ; i++ )
|
2600
|
+
{
|
2601
|
+
//aoData.push( { "name": "sSearch_"+i, "value": oSettings.aoPreSearchCols[i].sSearch } );
|
2602
|
+
//aoData.push( { "name": "bEscapeRegex_"+i, "value": oSettings.aoPreSearchCols[i].bEscapeRegex } );
|
2603
|
+
}
|
2604
|
+
}
|
2605
|
+
|
2606
|
+
/* Sorting */
|
2607
|
+
if ( oSettings.oFeatures.bSort !== false )
|
2608
|
+
{
|
2609
|
+
var iFixed = oSettings.aaSortingFixed !== null ? oSettings.aaSortingFixed.length : 0;
|
2610
|
+
var iUser = oSettings.aaSorting.length;
|
2611
|
+
aoData.push( { "name": "iSortingCols", "value": iFixed+iUser } );
|
2612
|
+
for ( i=0 ; i<iFixed ; i++ )
|
2613
|
+
{
|
2614
|
+
aoData.push( { "name": "iSortCol_"+i, "value": oSettings.aaSortingFixed[i][0] } );
|
2615
|
+
aoData.push( { "name": "iSortDir_"+i, "value": oSettings.aaSortingFixed[i][1] } );
|
2616
|
+
}
|
2617
|
+
|
2618
|
+
for ( i=0 ; i<iUser ; i++ )
|
2619
|
+
{
|
2620
|
+
aoData.push( { "name": "iSortCol_"+(i+iFixed), "value": oSettings.aaSorting[i][0] } );
|
2621
|
+
aoData.push( { "name": "iSortDir_"+(i+iFixed), "value": oSettings.aaSorting[i][1] } );
|
2622
|
+
}
|
2623
|
+
}
|
2624
|
+
|
2625
|
+
oSettings.fnServerData( oSettings.sAjaxSource, aoData, function(json) {
|
2626
|
+
_fnAjaxUpdateDraw( oSettings, json );
|
2627
|
+
} );
|
2628
|
+
return false;
|
2629
|
+
}
|
2630
|
+
else
|
2631
|
+
{
|
2632
|
+
return true;
|
2633
|
+
}
|
2634
|
+
}
|
2635
|
+
|
2636
|
+
/*
|
2637
|
+
* Function: _fnAjaxUpdateDraw
|
2638
|
+
* Purpose: Data the data from the server (nuking the old) and redraw the table
|
2639
|
+
* Returns: -
|
2640
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2641
|
+
* object:json - json data return from the server.
|
2642
|
+
* The following must be defined:
|
2643
|
+
* iTotalRecords, iTotalDisplayRecords, aaData
|
2644
|
+
* The following may be defined:
|
2645
|
+
* sColumns
|
2646
|
+
*/
|
2647
|
+
function _fnAjaxUpdateDraw ( oSettings, json )
|
2648
|
+
{
|
2649
|
+
if ( typeof json.sEcho != 'undefined' )
|
2650
|
+
{
|
2651
|
+
/* Protect against old returns over-writing a new one. Possible when you get
|
2652
|
+
* very fast interaction, and later queires are completed much faster
|
2653
|
+
*/
|
2654
|
+
if ( json.sEcho*1 < oSettings.iServerDraw )
|
2655
|
+
{
|
2656
|
+
return;
|
2657
|
+
}
|
2658
|
+
else
|
2659
|
+
{
|
2660
|
+
oSettings.iServerDraw = json.sEcho * 1;
|
2661
|
+
}
|
2662
|
+
}
|
2663
|
+
|
2664
|
+
_fnClearTable( oSettings );
|
2665
|
+
oSettings._iRecordsTotal = json.iTotalRecords;
|
2666
|
+
oSettings._iRecordsDisplay = json.iTotalDisplayRecords;
|
2667
|
+
|
2668
|
+
/* Determine if reordering is required */
|
2669
|
+
var sOrdering = _fnColumnOrdering(oSettings);
|
2670
|
+
var bReOrder = (json.sColumns != 'undefined' && sOrdering !== "" && json.sColumns != sOrdering );
|
2671
|
+
if ( bReOrder )
|
2672
|
+
{
|
2673
|
+
var aiIndex = _fnReOrderIndex( oSettings, json.sColumns );
|
2674
|
+
}
|
2675
|
+
|
2676
|
+
for ( var i=0, iLen=json.aaData.length ; i<iLen ; i++ )
|
2677
|
+
{
|
2678
|
+
if ( bReOrder )
|
2679
|
+
{
|
2680
|
+
/* If we need to re-order, then create a new array with the correct order and add it */
|
2681
|
+
var aData = [];
|
2682
|
+
for ( var j=0, jLen=oSettings.aoColumns.length ; j<jLen ; j++ )
|
2683
|
+
{
|
2684
|
+
aData.push( json.aaData[i][ aiIndex[j] ] );
|
2685
|
+
}
|
2686
|
+
_fnAddData( oSettings, aData );
|
2687
|
+
}
|
2688
|
+
else
|
2689
|
+
{
|
2690
|
+
/* No re-order required, sever got it "right" - just straight add */
|
2691
|
+
_fnAddData( oSettings, json.aaData[i] );
|
2692
|
+
}
|
2693
|
+
}
|
2694
|
+
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
|
2695
|
+
|
2696
|
+
oSettings.bAjaxDataGet = false;
|
2697
|
+
_fnDraw( oSettings );
|
2698
|
+
oSettings.bAjaxDataGet = true;
|
2699
|
+
_fnProcessingDisplay( oSettings, false );
|
2700
|
+
}
|
2701
|
+
|
2702
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
2703
|
+
* Options (features) HTML
|
2704
|
+
*/
|
2705
|
+
|
2706
|
+
/*
|
2707
|
+
* Function: _fnAddOptionsHtml
|
2708
|
+
* Purpose: Add the options to the page HTML for the table
|
2709
|
+
* Returns: -
|
2710
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2711
|
+
*/
|
2712
|
+
function _fnAddOptionsHtml ( oSettings )
|
2713
|
+
{
|
2714
|
+
/*
|
2715
|
+
* Create a temporary, empty, div which we can later on replace with what we have generated
|
2716
|
+
* we do it this way to rendering the 'options' html offline - speed :-)
|
2717
|
+
*/
|
2718
|
+
var nHolding = document.createElement( 'div' );
|
2719
|
+
oSettings.nTable.parentNode.insertBefore( nHolding, oSettings.nTable );
|
2720
|
+
|
2721
|
+
/*
|
2722
|
+
* All dataSlides are wrapped in a div - this is not currently optional - backwards
|
2723
|
+
* compatability. It can be removed if you don't want it.
|
2724
|
+
*/
|
2725
|
+
var nWrapper = document.createElement( 'div' );
|
2726
|
+
nWrapper.className = oSettings.oClasses.sWrapper;
|
2727
|
+
if ( oSettings.sTableId !== '' )
|
2728
|
+
{
|
2729
|
+
nWrapper.setAttribute( 'id', oSettings.sTableId+'_wrapper' );
|
2730
|
+
}
|
2731
|
+
|
2732
|
+
/* Track where we want to insert the option */
|
2733
|
+
var nInsertNode = nWrapper;
|
2734
|
+
|
2735
|
+
/* IE don't treat strings as arrays */
|
2736
|
+
var sDom = oSettings.sDomPositioning.split('');
|
2737
|
+
|
2738
|
+
/* Loop over the user set positioning and place the elements as needed */
|
2739
|
+
var nTmp;
|
2740
|
+
for ( var i=0 ; i<sDom.length ; i++ )
|
2741
|
+
{
|
2742
|
+
var cOption = sDom[i];
|
2743
|
+
|
2744
|
+
if ( cOption == '<' )
|
2745
|
+
{
|
2746
|
+
/* New container div */
|
2747
|
+
var nNewNode = document.createElement( 'div' );
|
2748
|
+
|
2749
|
+
/* Check to see if we should append a class name to the container */
|
2750
|
+
var cNext = sDom[i+1];
|
2751
|
+
if ( cNext == "'" || cNext == '"' )
|
2752
|
+
{
|
2753
|
+
var sClass = "";
|
2754
|
+
var j = 2;
|
2755
|
+
while ( sDom[i+j] != cNext )
|
2756
|
+
{
|
2757
|
+
sClass += sDom[i+j];
|
2758
|
+
j++;
|
2759
|
+
}
|
2760
|
+
nNewNode.className = sClass;
|
2761
|
+
i += j; /* Move along the position array */
|
2762
|
+
}
|
2763
|
+
|
2764
|
+
nInsertNode.appendChild( nNewNode );
|
2765
|
+
nInsertNode = nNewNode;
|
2766
|
+
}
|
2767
|
+
else if ( cOption == '>' )
|
2768
|
+
{
|
2769
|
+
/* End container div */
|
2770
|
+
nInsertNode = nInsertNode.parentNode;
|
2771
|
+
}
|
2772
|
+
else if ( cOption == 'l' && oSettings.oFeatures.bPaginate && oSettings.oFeatures.bLengthChange )
|
2773
|
+
{
|
2774
|
+
/* Length */
|
2775
|
+
nTmp = _fnFeatureHtmlLength( oSettings );
|
2776
|
+
oSettings.anFeatures[cOption] = nTmp;
|
2777
|
+
nInsertNode.appendChild( nTmp );
|
2778
|
+
}
|
2779
|
+
else if ( cOption == 'f' && oSettings.oFeatures.bFilter )
|
2780
|
+
{
|
2781
|
+
/* Filter */
|
2782
|
+
nTmp = _fnFeatureHtmlFilter( oSettings );
|
2783
|
+
oSettings.anFeatures[cOption] = nTmp;
|
2784
|
+
nInsertNode.appendChild( nTmp );
|
2785
|
+
}
|
2786
|
+
else if ( cOption == 'r' && oSettings.oFeatures.bProcessing )
|
2787
|
+
{
|
2788
|
+
/* pRocessing */
|
2789
|
+
nTmp = _fnFeatureHtmlProcessing( oSettings );
|
2790
|
+
oSettings.anFeatures[cOption] = nTmp;
|
2791
|
+
nInsertNode.appendChild( nTmp );
|
2792
|
+
}
|
2793
|
+
else if ( cOption == 't' )
|
2794
|
+
{
|
2795
|
+
/* Table */
|
2796
|
+
oSettings.anFeatures[cOption] = oSettings.nTable;
|
2797
|
+
nInsertNode.appendChild( oSettings.nTable );
|
2798
|
+
}
|
2799
|
+
else if ( cOption == 'i' && oSettings.oFeatures.bInfo )
|
2800
|
+
{
|
2801
|
+
/* Info */
|
2802
|
+
nTmp = _fnFeatureHtmlInfo( oSettings );
|
2803
|
+
oSettings.anFeatures[cOption] = nTmp;
|
2804
|
+
nInsertNode.appendChild( nTmp );
|
2805
|
+
}
|
2806
|
+
else if ( cOption == 'p' && oSettings.oFeatures.bPaginate )
|
2807
|
+
{
|
2808
|
+
/* Pagination */
|
2809
|
+
nTmp = _fnFeatureHtmlPaginate( oSettings );
|
2810
|
+
oSettings.anFeatures[cOption] = nTmp;
|
2811
|
+
nInsertNode.appendChild( nTmp );
|
2812
|
+
}
|
2813
|
+
else if ( _oExt.aoFeatures.length !== 0 )
|
2814
|
+
{
|
2815
|
+
var aoFeatures = _oExt.aoFeatures;
|
2816
|
+
for ( var k=0, kLen=aoFeatures.length ; k<kLen ; k++ )
|
2817
|
+
{
|
2818
|
+
if ( cOption == aoFeatures[k].cFeature )
|
2819
|
+
{
|
2820
|
+
nTmp = aoFeatures[k].fnInit( oSettings );
|
2821
|
+
oSettings.anFeatures[cOption] = nTmp;
|
2822
|
+
nInsertNode.appendChild( nTmp );
|
2823
|
+
break;
|
2824
|
+
}
|
2825
|
+
}
|
2826
|
+
}
|
2827
|
+
}
|
2828
|
+
|
2829
|
+
/* Built our DOM structure - replace the holding div with what we want */
|
2830
|
+
nHolding.parentNode.replaceChild( nWrapper, nHolding );
|
2831
|
+
}
|
2832
|
+
|
2833
|
+
/*
|
2834
|
+
* Function: _fnFeatureHtmlFilter
|
2835
|
+
* Purpose: Generate the node required for filtering text
|
2836
|
+
* Returns: node
|
2837
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2838
|
+
*/
|
2839
|
+
function _fnFeatureHtmlFilter ( oSettings )
|
2840
|
+
{
|
2841
|
+
var nFilter = document.createElement( 'div' );
|
2842
|
+
if ( oSettings.sTableId !== '' )
|
2843
|
+
{
|
2844
|
+
nFilter.setAttribute( 'id', oSettings.sTableId+'_filter' );
|
2845
|
+
}
|
2846
|
+
nFilter.className = oSettings.oClasses.sFilter;
|
2847
|
+
var sSpace = oSettings.oLanguage.sSearch==="" ? "" : " ";
|
2848
|
+
nFilter.innerHTML = oSettings.oLanguage.sSearch+sSpace+'<input type="text" />';
|
2849
|
+
|
2850
|
+
var jqFilter = $("input", nFilter);
|
2851
|
+
jqFilter.val( oSettings.oPreviousSearch.sSearch.replace('"','"') );
|
2852
|
+
jqFilter.keyup( function(e) {
|
2853
|
+
_fnFilterComplete( oSettings, {
|
2854
|
+
"sSearch": this.value,
|
2855
|
+
"bEscapeRegex": oSettings.oPreviousSearch.bEscapeRegex
|
2856
|
+
} );
|
2857
|
+
|
2858
|
+
/* Prevent default */
|
2859
|
+
return false;
|
2860
|
+
} );
|
2861
|
+
|
2862
|
+
return nFilter;
|
2863
|
+
}
|
2864
|
+
|
2865
|
+
/*
|
2866
|
+
* Function: _fnFeatureHtmlInfo
|
2867
|
+
* Purpose: Generate the node required for the info display
|
2868
|
+
* Returns: node
|
2869
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2870
|
+
*/
|
2871
|
+
function _fnFeatureHtmlInfo ( oSettings )
|
2872
|
+
{
|
2873
|
+
var nInfo = document.createElement( 'div' );
|
2874
|
+
if ( oSettings.sTableId !== '' )
|
2875
|
+
{
|
2876
|
+
nInfo.setAttribute( 'id', oSettings.sTableId+'_info' );
|
2877
|
+
}
|
2878
|
+
nInfo.className = oSettings.oClasses.sInfo;
|
2879
|
+
return nInfo;
|
2880
|
+
}
|
2881
|
+
|
2882
|
+
/*
|
2883
|
+
* Function: _fnFeatureHtmlPaginate
|
2884
|
+
* Purpose: Generate the node required for default pagination
|
2885
|
+
* Returns: node
|
2886
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2887
|
+
*/
|
2888
|
+
function _fnFeatureHtmlPaginate ( oSettings )
|
2889
|
+
{
|
2890
|
+
var nPaginate = document.createElement( 'div' );
|
2891
|
+
nPaginate.className = oSettings.oClasses.sPaging+oSettings.sPaginationType;
|
2892
|
+
oSettings.anFeatures.p = nPaginate; /* Need this stored in order to call paging plug-ins */
|
2893
|
+
|
2894
|
+
_oExt.oPagination[ oSettings.sPaginationType ].fnInit( oSettings, function( oSettings ) {
|
2895
|
+
_fnCalculateEnd( oSettings );
|
2896
|
+
_fnDraw( oSettings );
|
2897
|
+
} );
|
2898
|
+
return nPaginate;
|
2899
|
+
}
|
2900
|
+
|
2901
|
+
/*
|
2902
|
+
* Function: _fnFeatureHtmlLength
|
2903
|
+
* Purpose: Generate the node required for user display length changing
|
2904
|
+
* Returns: node
|
2905
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2906
|
+
*/
|
2907
|
+
function _fnFeatureHtmlLength ( oSettings )
|
2908
|
+
{
|
2909
|
+
/* This can be overruled by not using the _MENU_ var/macro in the language variable */
|
2910
|
+
var sName = (oSettings.sTableId === "") ? "" : 'name="'+oSettings.sTableId+'_length"';
|
2911
|
+
var sStdMenu =
|
2912
|
+
'<select size="1" '+sName+'>'+
|
2913
|
+
'<option value="10">10</option>'+
|
2914
|
+
'<option value="25">25</option>'+
|
2915
|
+
'<option value="50">50</option>'+
|
2916
|
+
'<option value="100">100</option>'+
|
2917
|
+
'</select>';
|
2918
|
+
|
2919
|
+
var nLength = document.createElement( 'div' );
|
2920
|
+
if ( oSettings.sTableId !== '' )
|
2921
|
+
{
|
2922
|
+
nLength.setAttribute( 'id', oSettings.sTableId+'_length' );
|
2923
|
+
}
|
2924
|
+
nLength.className = oSettings.oClasses.sLength;
|
2925
|
+
nLength.innerHTML = oSettings.oLanguage.sLengthMenu.replace( '_MENU_', sStdMenu );
|
2926
|
+
|
2927
|
+
/*
|
2928
|
+
* Set the length to the current display length - thanks to Andrea Pavlovic for this fix,
|
2929
|
+
* and Stefan Skopnik for fixing the fix!
|
2930
|
+
*/
|
2931
|
+
$('select option[value="'+oSettings._iDisplayLength+'"]',nLength).attr("selected",true);
|
2932
|
+
|
2933
|
+
$('select', nLength).change( function(e) {
|
2934
|
+
oSettings._iDisplayLength = parseInt($(this).val(), 10);
|
2935
|
+
|
2936
|
+
_fnCalculateEnd( oSettings );
|
2937
|
+
|
2938
|
+
/* If we have space to show extra rows (backing up from the end point - then do so */
|
2939
|
+
if ( oSettings._iDisplayEnd == oSettings.aiDisplay.length )
|
2940
|
+
{
|
2941
|
+
oSettings._iDisplayStart = oSettings._iDisplayEnd - oSettings._iDisplayLength;
|
2942
|
+
if ( oSettings._iDisplayStart < 0 )
|
2943
|
+
{
|
2944
|
+
oSettings._iDisplayStart = 0;
|
2945
|
+
}
|
2946
|
+
}
|
2947
|
+
|
2948
|
+
if ( oSettings._iDisplayLength == -1 )
|
2949
|
+
{
|
2950
|
+
oSettings._iDisplayStart = 0;
|
2951
|
+
}
|
2952
|
+
|
2953
|
+
_fnDraw( oSettings );
|
2954
|
+
} );
|
2955
|
+
|
2956
|
+
return nLength;
|
2957
|
+
}
|
2958
|
+
|
2959
|
+
/*
|
2960
|
+
* Function: _fnFeatureHtmlProcessing
|
2961
|
+
* Purpose: Generate the node required for the processing node
|
2962
|
+
* Returns: node
|
2963
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2964
|
+
*/
|
2965
|
+
function _fnFeatureHtmlProcessing ( oSettings )
|
2966
|
+
{
|
2967
|
+
var nProcessing = document.createElement( 'div' );
|
2968
|
+
|
2969
|
+
if ( oSettings.sTableId !== '' )
|
2970
|
+
{
|
2971
|
+
nProcessing.setAttribute( 'id', oSettings.sTableId+'_processing' );
|
2972
|
+
}
|
2973
|
+
nProcessing.innerHTML = oSettings.oLanguage.sProcessing;
|
2974
|
+
nProcessing.className = oSettings.oClasses.sProcessing;
|
2975
|
+
oSettings.nTable.parentNode.insertBefore( nProcessing, oSettings.nTable );
|
2976
|
+
|
2977
|
+
return nProcessing;
|
2978
|
+
}
|
2979
|
+
|
2980
|
+
/*
|
2981
|
+
* Function: _fnProcessingDisplay
|
2982
|
+
* Purpose: Display or hide the processing indicator
|
2983
|
+
* Returns: -
|
2984
|
+
* Inputs: object:oSettings - dataSlides settings object
|
2985
|
+
* bool:
|
2986
|
+
* true - show the processing indicator
|
2987
|
+
* false - don't show
|
2988
|
+
*/
|
2989
|
+
function _fnProcessingDisplay ( oSettings, bShow )
|
2990
|
+
{
|
2991
|
+
if ( oSettings.oFeatures.bProcessing )
|
2992
|
+
{
|
2993
|
+
oSettings.anFeatures.r.style.visibility = bShow ? "visible" : "hidden";
|
2994
|
+
}
|
2995
|
+
}
|
2996
|
+
|
2997
|
+
|
2998
|
+
|
2999
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
3000
|
+
* Filtering
|
3001
|
+
*/
|
3002
|
+
|
3003
|
+
/*
|
3004
|
+
* Function: _fnFilterComplete
|
3005
|
+
* Purpose: Filter the table using both the global filter and column based filtering
|
3006
|
+
* Returns: -
|
3007
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3008
|
+
* object:oSearch: search information
|
3009
|
+
* int:iForce - optional - force a research of the master array (1) or not (undefined or 0)
|
3010
|
+
*/
|
3011
|
+
function _fnFilterComplete ( oSettings, oInput, iForce )
|
3012
|
+
{
|
3013
|
+
/* Filter on everything */
|
3014
|
+
_fnFilter( oSettings, oInput.sSearch, iForce, oInput.bEscapeRegex );
|
3015
|
+
|
3016
|
+
/* Now do the individual column filter */
|
3017
|
+
for ( var i=0 ; i<oSettings.aoPreSearchCols.length ; i++ )
|
3018
|
+
{
|
3019
|
+
_fnFilterColumn( oSettings, oSettings.aoPreSearchCols[i].sSearch, i,
|
3020
|
+
oSettings.aoPreSearchCols[i].bEscapeRegex );
|
3021
|
+
}
|
3022
|
+
|
3023
|
+
/* Custom filtering */
|
3024
|
+
if ( _oExt.afnFiltering.length !== 0 )
|
3025
|
+
{
|
3026
|
+
_fnFilterCustom( oSettings );
|
3027
|
+
}
|
3028
|
+
|
3029
|
+
/* Redraw the table */
|
3030
|
+
if ( typeof oSettings.iInitDisplayStart != 'undefined' && oSettings.iInitDisplayStart != -1 )
|
3031
|
+
{
|
3032
|
+
oSettings._iDisplayStart = oSettings.iInitDisplayStart;
|
3033
|
+
oSettings.iInitDisplayStart = -1;
|
3034
|
+
}
|
3035
|
+
else
|
3036
|
+
{
|
3037
|
+
oSettings._iDisplayStart = 0;
|
3038
|
+
}
|
3039
|
+
_fnCalculateEnd( oSettings );
|
3040
|
+
_fnDraw( oSettings );
|
3041
|
+
|
3042
|
+
/* Rebuild search array 'offline' */
|
3043
|
+
_fnBuildSearchArray( oSettings, 0 );
|
3044
|
+
}
|
3045
|
+
|
3046
|
+
/*
|
3047
|
+
* Function: _fnFilterCustom
|
3048
|
+
* Purpose: Apply custom filtering functions
|
3049
|
+
* Returns: -
|
3050
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3051
|
+
*/
|
3052
|
+
function _fnFilterCustom( oSettings )
|
3053
|
+
{
|
3054
|
+
var afnFilters = _oExt.afnFiltering;
|
3055
|
+
for ( var i=0, iLen=afnFilters.length ; i<iLen ; i++ )
|
3056
|
+
{
|
3057
|
+
var iCorrector = 0;
|
3058
|
+
for ( var j=0, jLen=oSettings.aiDisplay.length ; j<jLen ; j++ )
|
3059
|
+
{
|
3060
|
+
var iDisIndex = oSettings.aiDisplay[j-iCorrector];
|
3061
|
+
|
3062
|
+
/* Check if we should use this row based on the filtering function */
|
3063
|
+
if ( !afnFilters[i]( oSettings, oSettings.aoData[iDisIndex]._aData, iDisIndex ) )
|
3064
|
+
{
|
3065
|
+
oSettings.aiDisplay.splice( j-iCorrector, 1 );
|
3066
|
+
iCorrector++;
|
3067
|
+
}
|
3068
|
+
}
|
3069
|
+
}
|
3070
|
+
}
|
3071
|
+
|
3072
|
+
/*
|
3073
|
+
* Function: _fnFilterColumn
|
3074
|
+
* Purpose: Filter the table on a per-column basis
|
3075
|
+
* Returns: -
|
3076
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3077
|
+
* string:sInput - string to filter on
|
3078
|
+
* int:iColumn - column to filter
|
3079
|
+
* bool:bEscapeRegex - escape regex or not
|
3080
|
+
*/
|
3081
|
+
function _fnFilterColumn ( oSettings, sInput, iColumn, bEscapeRegex )
|
3082
|
+
{
|
3083
|
+
if ( sInput === "" )
|
3084
|
+
{
|
3085
|
+
return;
|
3086
|
+
}
|
3087
|
+
|
3088
|
+
var iIndexCorrector = 0;
|
3089
|
+
var sRegexMatch = bEscapeRegex ? _fnEscapeRegex( sInput ) : sInput;
|
3090
|
+
var rpSearch = new RegExp( sRegexMatch, "i" );
|
3091
|
+
|
3092
|
+
for ( var i=oSettings.aiDisplay.length-1 ; i>=0 ; i-- )
|
3093
|
+
{
|
3094
|
+
var sData = _fnDataToSearch( oSettings.aoData[ oSettings.aiDisplay[i] ]._aData[iColumn],
|
3095
|
+
oSettings.aoColumns[iColumn].sType );
|
3096
|
+
if ( ! rpSearch.test( sData ) )
|
3097
|
+
{
|
3098
|
+
oSettings.aiDisplay.splice( i, 1 );
|
3099
|
+
iIndexCorrector++;
|
3100
|
+
}
|
3101
|
+
}
|
3102
|
+
}
|
3103
|
+
|
3104
|
+
/*
|
3105
|
+
* Function: _fnFilter
|
3106
|
+
* Purpose: Filter the data table based on user input and draw the table
|
3107
|
+
* Returns: -
|
3108
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3109
|
+
* string:sInput - string to filter on
|
3110
|
+
* int:iForce - optional - force a research of the master array (1) or not (undefined or 0)
|
3111
|
+
* bool:bEscapeRegex - escape regex or not
|
3112
|
+
*/
|
3113
|
+
function _fnFilter( oSettings, sInput, iForce, bEscapeRegex )
|
3114
|
+
{
|
3115
|
+
var i;
|
3116
|
+
|
3117
|
+
/* Check if we are forcing or not - optional parameter */
|
3118
|
+
if ( typeof iForce == 'undefined' || iForce === null )
|
3119
|
+
{
|
3120
|
+
iForce = 0;
|
3121
|
+
}
|
3122
|
+
|
3123
|
+
/* Need to take account of custom filtering functions always */
|
3124
|
+
if ( _oExt.afnFiltering.length !== 0 )
|
3125
|
+
{
|
3126
|
+
iForce = 1;
|
3127
|
+
}
|
3128
|
+
|
3129
|
+
/* Generate the regular expression to use. Something along the lines of:
|
3130
|
+
* ^(?=.*?\bone\b)(?=.*?\btwo\b)(?=.*?\bthree\b).*$
|
3131
|
+
*/
|
3132
|
+
var asSearch = bEscapeRegex ?
|
3133
|
+
_fnEscapeRegex( sInput ).split( ' ' ) :
|
3134
|
+
sInput.split( ' ' );
|
3135
|
+
var sRegExpString = '^(?=.*?'+asSearch.join( ')(?=.*?' )+').*$';
|
3136
|
+
var rpSearch = new RegExp( sRegExpString, "i" ); /* case insensitive */
|
3137
|
+
|
3138
|
+
/*
|
3139
|
+
* If the input is blank - we want the full data set
|
3140
|
+
*/
|
3141
|
+
if ( sInput.length <= 0 )
|
3142
|
+
{
|
3143
|
+
oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length);
|
3144
|
+
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
|
3145
|
+
}
|
3146
|
+
else
|
3147
|
+
{
|
3148
|
+
/*
|
3149
|
+
* We are starting a new search or the new search string is smaller
|
3150
|
+
* then the old one (i.e. delete). Search from the master array
|
3151
|
+
*/
|
3152
|
+
if ( oSettings.aiDisplay.length == oSettings.aiDisplayMaster.length ||
|
3153
|
+
oSettings.oPreviousSearch.sSearch.length > sInput.length || iForce == 1 ||
|
3154
|
+
sInput.indexOf(oSettings.oPreviousSearch.sSearch) !== 0 )
|
3155
|
+
{
|
3156
|
+
/* Nuke the old display array - we are going to rebuild it */
|
3157
|
+
oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length);
|
3158
|
+
|
3159
|
+
/* Force a rebuild of the search array */
|
3160
|
+
_fnBuildSearchArray( oSettings, 1 );
|
3161
|
+
|
3162
|
+
/* Search through all records to populate the search array
|
3163
|
+
* The the oSettings.aiDisplayMaster and asDataSearch arrays have 1 to 1
|
3164
|
+
* mapping
|
3165
|
+
*/
|
3166
|
+
for ( i=0 ; i<oSettings.aiDisplayMaster.length ; i++ )
|
3167
|
+
{
|
3168
|
+
if ( rpSearch.test(oSettings.asDataSearch[i]) )
|
3169
|
+
{
|
3170
|
+
oSettings.aiDisplay.push( oSettings.aiDisplayMaster[i] );
|
3171
|
+
}
|
3172
|
+
}
|
3173
|
+
}
|
3174
|
+
else
|
3175
|
+
{
|
3176
|
+
/* Using old search array - refine it - do it this way for speed
|
3177
|
+
* Don't have to search the whole master array again
|
3178
|
+
*/
|
3179
|
+
var iIndexCorrector = 0;
|
3180
|
+
|
3181
|
+
/* Search the current results */
|
3182
|
+
for ( i=0 ; i<oSettings.asDataSearch.length ; i++ )
|
3183
|
+
{
|
3184
|
+
if ( ! rpSearch.test(oSettings.asDataSearch[i]) )
|
3185
|
+
{
|
3186
|
+
oSettings.aiDisplay.splice( i-iIndexCorrector, 1 );
|
3187
|
+
iIndexCorrector++;
|
3188
|
+
}
|
3189
|
+
}
|
3190
|
+
}
|
3191
|
+
}
|
3192
|
+
oSettings.oPreviousSearch.sSearch = sInput;
|
3193
|
+
oSettings.oPreviousSearch.bEscapeRegex = bEscapeRegex;
|
3194
|
+
}
|
3195
|
+
|
3196
|
+
|
3197
|
+
|
3198
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
3199
|
+
* Sorting
|
3200
|
+
*/
|
3201
|
+
|
3202
|
+
/*
|
3203
|
+
* Function: _fnSort
|
3204
|
+
* Purpose: Change the order of the table
|
3205
|
+
* Returns: -
|
3206
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3207
|
+
* bool:bApplyClasses - optional - should we apply classes or not
|
3208
|
+
* Notes: We always sort the master array and then apply a filter again
|
3209
|
+
* if it is needed. This probably isn't optimal - but atm I can't think
|
3210
|
+
* of any other way which is (each has disadvantages)
|
3211
|
+
*/
|
3212
|
+
function _fnSort ( oSettings, bApplyClasses )
|
3213
|
+
{
|
3214
|
+
/*
|
3215
|
+
* Funny one this - we want to sort aiDisplayMaster - but according to aoData[]._aData
|
3216
|
+
*
|
3217
|
+
* function _fnSortText ( a, b )
|
3218
|
+
* {
|
3219
|
+
* var iTest;
|
3220
|
+
* var oSort = _oExt.oSort;
|
3221
|
+
*
|
3222
|
+
* iTest = oSort['string-asc']( aoData[ a ]._aData[ COL ], aoData[ b ]._aData[ COL ] );
|
3223
|
+
* if ( iTest === 0 )
|
3224
|
+
* ...
|
3225
|
+
* }
|
3226
|
+
*/
|
3227
|
+
|
3228
|
+
/* Here is what we are looking to achieve here (custom sort functions add complication...)
|
3229
|
+
* function _fnSortText ( a, b )
|
3230
|
+
* {
|
3231
|
+
* var iTest;
|
3232
|
+
* var oSort = _oExt.oSort;
|
3233
|
+
* iTest = oSort['string-asc']( a[0], b[0] );
|
3234
|
+
* if ( iTest === 0 )
|
3235
|
+
* iTest = oSort['string-asc']( a[1], b[1] );
|
3236
|
+
* if ( iTest === 0 )
|
3237
|
+
* iTest = oSort['string-asc']( a[2], b[2] );
|
3238
|
+
*
|
3239
|
+
* return iTest;
|
3240
|
+
* }
|
3241
|
+
*/
|
3242
|
+
var aaSort = [];
|
3243
|
+
var oSort = _oExt.oSort;
|
3244
|
+
var aoData = oSettings.aoData;
|
3245
|
+
var iDataSort;
|
3246
|
+
var iDataType;
|
3247
|
+
var i;
|
3248
|
+
|
3249
|
+
if ( oSettings.aaSorting.length !== 0 || oSettings.aaSortingFixed !== null )
|
3250
|
+
{
|
3251
|
+
if ( oSettings.aaSortingFixed !== null )
|
3252
|
+
{
|
3253
|
+
aaSort = oSettings.aaSortingFixed.concat( oSettings.aaSorting );
|
3254
|
+
}
|
3255
|
+
else
|
3256
|
+
{
|
3257
|
+
aaSort = oSettings.aaSorting.slice();
|
3258
|
+
}
|
3259
|
+
|
3260
|
+
if ( !window.runtime )
|
3261
|
+
{
|
3262
|
+
var fnLocalSorting;
|
3263
|
+
var sDynamicSort = "fnLocalSorting = function(a,b){"+
|
3264
|
+
"var iTest;";
|
3265
|
+
|
3266
|
+
for ( i=0 ; i<aaSort.length-1 ; i++ )
|
3267
|
+
{
|
3268
|
+
iDataSort = oSettings.aoColumns[ aaSort[i][0] ].iDataSort;
|
3269
|
+
iDataType = oSettings.aoColumns[ iDataSort ].sType;
|
3270
|
+
sDynamicSort += "iTest = oSort['"+iDataType+"-"+aaSort[i][1]+"']"+
|
3271
|
+
"( aoData[a]._aData["+iDataSort+"], aoData[b]._aData["+iDataSort+"] ); if ( iTest === 0 )";
|
3272
|
+
}
|
3273
|
+
|
3274
|
+
iDataSort = oSettings.aoColumns[ aaSort[aaSort.length-1][0] ].iDataSort;
|
3275
|
+
iDataType = oSettings.aoColumns[ iDataSort ].sType;
|
3276
|
+
sDynamicSort += "iTest = oSort['"+iDataType+"-"+aaSort[aaSort.length-1][1]+"']"+
|
3277
|
+
"( aoData[a]._aData["+iDataSort+"], aoData[b]._aData["+iDataSort+"] ); return iTest;}";
|
3278
|
+
|
3279
|
+
/* The eval has to be done to a variable for IE */
|
3280
|
+
eval( sDynamicSort );
|
3281
|
+
oSettings.aiDisplayMaster.sort( fnLocalSorting );
|
3282
|
+
}
|
3283
|
+
else
|
3284
|
+
{
|
3285
|
+
/*
|
3286
|
+
* Support for Adobe AIR - AIR doesn't allow eval with a function
|
3287
|
+
* Note that for reasonable sized data sets this method is around 1.5 times slower than
|
3288
|
+
* the eval above (hence why it is not used all the time). Oddly enough, it is ever so
|
3289
|
+
* slightly faster for very small sets (presumably the eval has overhead).
|
3290
|
+
* Single column (1083 records) - eval: 32mS AIR: 38mS
|
3291
|
+
* Two columns (1083 records) - eval: 55mS AIR: 66mS
|
3292
|
+
*/
|
3293
|
+
|
3294
|
+
/* Build a cached array so the sort doesn't have to process this stuff on every call */
|
3295
|
+
var aAirSort = [];
|
3296
|
+
var iLen = aaSort.length;
|
3297
|
+
for ( i=0 ; i<iLen ; i++ )
|
3298
|
+
{
|
3299
|
+
iDataSort = oSettings.aoColumns[ aaSort[i][0] ].iDataSort;
|
3300
|
+
aAirSort.push( [
|
3301
|
+
iDataSort,
|
3302
|
+
oSettings.aoColumns[ iDataSort ].sType+'-'+aaSort[i][1]
|
3303
|
+
] );
|
3304
|
+
}
|
3305
|
+
|
3306
|
+
oSettings.aiDisplayMaster.sort( function (a,b) {
|
3307
|
+
var iTest;
|
3308
|
+
for ( var i=0 ; i<iLen ; i++ )
|
3309
|
+
{
|
3310
|
+
iTest = oSort[ aAirSort[i][1] ]( aoData[a]._aData[aAirSort[i][0]], aoData[b]._aData[aAirSort[i][0]] );
|
3311
|
+
if ( iTest !== 0 )
|
3312
|
+
{
|
3313
|
+
return iTest;
|
3314
|
+
}
|
3315
|
+
}
|
3316
|
+
return 0;
|
3317
|
+
} );
|
3318
|
+
}
|
3319
|
+
}
|
3320
|
+
|
3321
|
+
/* Alter the sorting classes to take account of the changes */
|
3322
|
+
if ( typeof bApplyClasses == 'undefined' || bApplyClasses )
|
3323
|
+
{
|
3324
|
+
_fnSortingClasses( oSettings );
|
3325
|
+
}
|
3326
|
+
|
3327
|
+
/* Copy the master data into the draw array and re-draw */
|
3328
|
+
if ( oSettings.oFeatures.bFilter )
|
3329
|
+
{
|
3330
|
+
/* _fnFilter() will redraw the table for us */
|
3331
|
+
_fnFilterComplete( oSettings, oSettings.oPreviousSearch, 1 );
|
3332
|
+
}
|
3333
|
+
else
|
3334
|
+
{
|
3335
|
+
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
|
3336
|
+
oSettings._iDisplayStart = 0; /* reset display back to page 0 */
|
3337
|
+
_fnCalculateEnd( oSettings );
|
3338
|
+
_fnDraw( oSettings );
|
3339
|
+
}
|
3340
|
+
}
|
3341
|
+
|
3342
|
+
/*
|
3343
|
+
* Function: _fnSortingClasses
|
3344
|
+
* Purpose: Set the sortting classes on the header
|
3345
|
+
* Returns: -
|
3346
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3347
|
+
*/
|
3348
|
+
function _fnSortingClasses( oSettings )
|
3349
|
+
{
|
3350
|
+
var i, j, iFound;
|
3351
|
+
var aaSort, sClass;
|
3352
|
+
var iColumns = oSettings.aoColumns.length;
|
3353
|
+
var oClasses = oSettings.oClasses;
|
3354
|
+
|
3355
|
+
for ( i=0 ; i<iColumns ; i++ )
|
3356
|
+
{
|
3357
|
+
$(oSettings.aoColumns[i].nTh).removeClass( oClasses.sSortAsc +" "+ oClasses.sSortDesc +
|
3358
|
+
" "+ oClasses.sSortable );
|
3359
|
+
}
|
3360
|
+
|
3361
|
+
if ( oSettings.aaSortingFixed !== null )
|
3362
|
+
{
|
3363
|
+
aaSort = oSettings.aaSortingFixed.concat( oSettings.aaSorting );
|
3364
|
+
}
|
3365
|
+
else
|
3366
|
+
{
|
3367
|
+
aaSort = oSettings.aaSorting.slice();
|
3368
|
+
}
|
3369
|
+
|
3370
|
+
/* Apply the required classes to the header */
|
3371
|
+
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
|
3372
|
+
{
|
3373
|
+
if ( oSettings.aoColumns[i].bSortable && oSettings.aoColumns[i].bVisible )
|
3374
|
+
{
|
3375
|
+
sClass = oClasses.sSortable;
|
3376
|
+
iFound = -1;
|
3377
|
+
for ( j=0 ; j<aaSort.length ; j++ )
|
3378
|
+
{
|
3379
|
+
if ( aaSort[j][0] == i )
|
3380
|
+
{
|
3381
|
+
sClass = ( aaSort[j][1] == "asc" ) ?
|
3382
|
+
oClasses.sSortAsc : oClasses.sSortDesc;
|
3383
|
+
iFound = j;
|
3384
|
+
break;
|
3385
|
+
}
|
3386
|
+
}
|
3387
|
+
$(oSettings.aoColumns[i].nTh).addClass( sClass );
|
3388
|
+
|
3389
|
+
if ( oSettings.bJUI )
|
3390
|
+
{
|
3391
|
+
/* jQuery UI uses extra markup */
|
3392
|
+
var jqSpan = $("span", oSettings.aoColumns[i].nTh);
|
3393
|
+
jqSpan.removeClass(oClasses.sSortJUIAsc +" "+ oClasses.sSortJUIDesc +" "+
|
3394
|
+
oClasses.sSortJUI);
|
3395
|
+
|
3396
|
+
var sSpanClass;
|
3397
|
+
if ( iFound == -1 )
|
3398
|
+
{
|
3399
|
+
sSpanClass = oClasses.sSortJUI;
|
3400
|
+
}
|
3401
|
+
else if ( aaSort[iFound][1] == "asc" )
|
3402
|
+
{
|
3403
|
+
sSpanClass = oClasses.sSortJUIAsc;
|
3404
|
+
}
|
3405
|
+
else
|
3406
|
+
{
|
3407
|
+
sSpanClass = oClasses.sSortJUIDesc;
|
3408
|
+
}
|
3409
|
+
|
3410
|
+
jqSpan.addClass( sSpanClass );
|
3411
|
+
}
|
3412
|
+
}
|
3413
|
+
}
|
3414
|
+
|
3415
|
+
/*
|
3416
|
+
* Apply the required classes to the table body
|
3417
|
+
* Note that this is given as a feature switch since it can significantly slow down a sort
|
3418
|
+
* on large data sets (adding and removing of classes is always slow at the best of times..)
|
3419
|
+
*/
|
3420
|
+
if ( oSettings.oFeatures.bSortClasses )
|
3421
|
+
{
|
3422
|
+
var nTrs = _fnGetTrNodes( oSettings );
|
3423
|
+
sClass = oClasses.sSortColumn;
|
3424
|
+
$('td', nTrs).removeClass( sClass+"1 "+sClass+"2 "+sClass+"3" );
|
3425
|
+
|
3426
|
+
var iClass = 1;
|
3427
|
+
for ( i=0 ; i<aaSort.length ; i++ )
|
3428
|
+
{
|
3429
|
+
var iVis = _fnColumnIndexToVisible(oSettings, aaSort[i][0]);
|
3430
|
+
if ( iVis !== null )
|
3431
|
+
{
|
3432
|
+
/* Limit the number of classes to three */
|
3433
|
+
if ( iClass <= 2 )
|
3434
|
+
{
|
3435
|
+
$('td:eq('+iVis+')', nTrs).addClass( sClass+iClass );
|
3436
|
+
}
|
3437
|
+
else
|
3438
|
+
{
|
3439
|
+
$('td:eq('+iVis+')', nTrs).addClass( sClass+'3' );
|
3440
|
+
}
|
3441
|
+
iClass++;
|
3442
|
+
}
|
3443
|
+
}
|
3444
|
+
}
|
3445
|
+
}
|
3446
|
+
|
3447
|
+
/*
|
3448
|
+
* Function: _fnVisibleToColumnIndex
|
3449
|
+
* Purpose: Covert the index of a visible column to the index in the data array (take account
|
3450
|
+
* of hidden columns)
|
3451
|
+
* Returns: int:i - the data index
|
3452
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3453
|
+
*/
|
3454
|
+
function _fnVisibleToColumnIndex( oSettings, iMatch )
|
3455
|
+
{
|
3456
|
+
var iColumn = -1;
|
3457
|
+
|
3458
|
+
for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
|
3459
|
+
{
|
3460
|
+
if ( oSettings.aoColumns[i].bVisible === true )
|
3461
|
+
{
|
3462
|
+
iColumn++;
|
3463
|
+
}
|
3464
|
+
|
3465
|
+
if ( iColumn == iMatch )
|
3466
|
+
{
|
3467
|
+
return i;
|
3468
|
+
}
|
3469
|
+
}
|
3470
|
+
|
3471
|
+
return null;
|
3472
|
+
}
|
3473
|
+
|
3474
|
+
/*
|
3475
|
+
* Function: _fnColumnIndexToVisible
|
3476
|
+
* Purpose: Covert the index of an index in the data array and convert it to the visible
|
3477
|
+
* column index (take account of hidden columns)
|
3478
|
+
* Returns: int:i - the data index
|
3479
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3480
|
+
*/
|
3481
|
+
function _fnColumnIndexToVisible( oSettings, iMatch )
|
3482
|
+
{
|
3483
|
+
var iVisible = -1;
|
3484
|
+
for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
|
3485
|
+
{
|
3486
|
+
if ( oSettings.aoColumns[i].bVisible === true )
|
3487
|
+
{
|
3488
|
+
iVisible++;
|
3489
|
+
}
|
3490
|
+
|
3491
|
+
if ( i == iMatch )
|
3492
|
+
{
|
3493
|
+
return oSettings.aoColumns[i].bVisible === true ? iVisible : null;
|
3494
|
+
}
|
3495
|
+
}
|
3496
|
+
|
3497
|
+
return null;
|
3498
|
+
}
|
3499
|
+
|
3500
|
+
/*
|
3501
|
+
* Function: _fnVisbleColumns
|
3502
|
+
* Purpose: Get the number of visible columns
|
3503
|
+
* Returns: int:i - the number of visible columns
|
3504
|
+
* Inputs: object:oS - dataSlides settings object
|
3505
|
+
*/
|
3506
|
+
function _fnVisbleColumns( oS )
|
3507
|
+
{
|
3508
|
+
var iVis = 0;
|
3509
|
+
for ( var i=0 ; i<oS.aoColumns.length ; i++ )
|
3510
|
+
{
|
3511
|
+
if ( oS.aoColumns[i].bVisible === true )
|
3512
|
+
{
|
3513
|
+
iVis++;
|
3514
|
+
}
|
3515
|
+
}
|
3516
|
+
return iVis;
|
3517
|
+
}
|
3518
|
+
|
3519
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
3520
|
+
* Support functions
|
3521
|
+
*/
|
3522
|
+
|
3523
|
+
/*
|
3524
|
+
* Function: _fnBuildSearchArray
|
3525
|
+
* Purpose: Create an array which can be quickly search through
|
3526
|
+
* Returns: -
|
3527
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3528
|
+
* int:iMaster - use the master data array - optional
|
3529
|
+
*/
|
3530
|
+
function _fnBuildSearchArray ( oSettings, iMaster )
|
3531
|
+
{
|
3532
|
+
/* Clear out the old data */
|
3533
|
+
oSettings.asDataSearch.splice( 0, oSettings.asDataSearch.length );
|
3534
|
+
|
3535
|
+
var aArray = (typeof iMaster != 'undefined' && iMaster == 1) ?
|
3536
|
+
oSettings.aiDisplayMaster : oSettings.aiDisplay;
|
3537
|
+
|
3538
|
+
for ( var i=0, iLen=aArray.length ; i<iLen ; i++ )
|
3539
|
+
{
|
3540
|
+
oSettings.asDataSearch[i] = '';
|
3541
|
+
for ( var j=0, jLen=oSettings.aoColumns.length ; j<jLen ; j++ )
|
3542
|
+
{
|
3543
|
+
if ( oSettings.aoColumns[j].bSearchable )
|
3544
|
+
{
|
3545
|
+
var sData = oSettings.aoData[ aArray[i] ]._aData[j];
|
3546
|
+
oSettings.asDataSearch[i] += _fnDataToSearch( sData, oSettings.aoColumns[j].sType )+' ';
|
3547
|
+
}
|
3548
|
+
}
|
3549
|
+
}
|
3550
|
+
}
|
3551
|
+
|
3552
|
+
/*
|
3553
|
+
* Function: _fnDataToSearch
|
3554
|
+
* Purpose: Convert raw data into something that the user can search on
|
3555
|
+
* Returns: string: - search string
|
3556
|
+
* Inputs: string:sData - data to be modified
|
3557
|
+
* string:sType - data type
|
3558
|
+
*/
|
3559
|
+
function _fnDataToSearch ( sData, sType )
|
3560
|
+
{
|
3561
|
+
|
3562
|
+
if ( typeof _oExt.ofnSearch[sType] == "function" )
|
3563
|
+
{
|
3564
|
+
return _oExt.ofnSearch[sType]( sData );
|
3565
|
+
}
|
3566
|
+
else if ( sType == "html" )
|
3567
|
+
{
|
3568
|
+
return sData.replace(/\n/g," ").replace( /<.*?>/g, "" );
|
3569
|
+
}
|
3570
|
+
else if ( typeof sData == "string" )
|
3571
|
+
{
|
3572
|
+
return sData.replace(/\n/g," ");
|
3573
|
+
}
|
3574
|
+
return sData;
|
3575
|
+
}
|
3576
|
+
|
3577
|
+
/*
|
3578
|
+
* Function: _fnCalculateEnd
|
3579
|
+
* Purpose: Rcalculate the end point based on the start point
|
3580
|
+
* Returns: -
|
3581
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3582
|
+
*/
|
3583
|
+
function _fnCalculateEnd( oSettings )
|
3584
|
+
{
|
3585
|
+
if ( oSettings.oFeatures.bPaginate === false )
|
3586
|
+
{
|
3587
|
+
oSettings._iDisplayEnd = oSettings.aiDisplay.length;
|
3588
|
+
}
|
3589
|
+
else
|
3590
|
+
{
|
3591
|
+
/* Set the end point of the display - based on how many elements there are
|
3592
|
+
* still to display
|
3593
|
+
*/
|
3594
|
+
if ( oSettings._iDisplayStart + oSettings._iDisplayLength > oSettings.aiDisplay.length ||
|
3595
|
+
oSettings._iDisplayLength == -1 )
|
3596
|
+
{
|
3597
|
+
oSettings._iDisplayEnd = oSettings.aiDisplay.length;
|
3598
|
+
}
|
3599
|
+
else
|
3600
|
+
{
|
3601
|
+
oSettings._iDisplayEnd = oSettings._iDisplayStart + oSettings._iDisplayLength;
|
3602
|
+
}
|
3603
|
+
}
|
3604
|
+
}
|
3605
|
+
|
3606
|
+
/*
|
3607
|
+
* Function: _fnConvertToWidth
|
3608
|
+
* Purpose: Convert a CSS unit width to pixels (e.g. 2em)
|
3609
|
+
* Returns: int:iWidth - width in pixels
|
3610
|
+
* Inputs: string:sWidth - width to be converted
|
3611
|
+
* node:nParent - parent to get the with for (required for
|
3612
|
+
* relative widths) - optional
|
3613
|
+
*/
|
3614
|
+
function _fnConvertToWidth ( sWidth, nParent )
|
3615
|
+
{
|
3616
|
+
if ( !sWidth || sWidth === null || sWidth === '' )
|
3617
|
+
{
|
3618
|
+
return 0;
|
3619
|
+
}
|
3620
|
+
|
3621
|
+
if ( typeof nParent == "undefined" )
|
3622
|
+
{
|
3623
|
+
nParent = document.getElementsByTagName('body')[0];
|
3624
|
+
}
|
3625
|
+
|
3626
|
+
var iWidth;
|
3627
|
+
var nTmp = document.createElement( "div" );
|
3628
|
+
nTmp.style.width = sWidth;
|
3629
|
+
|
3630
|
+
nParent.appendChild( nTmp );
|
3631
|
+
iWidth = nTmp.offsetWidth;
|
3632
|
+
nParent.removeChild( nTmp );
|
3633
|
+
|
3634
|
+
return ( iWidth );
|
3635
|
+
}
|
3636
|
+
|
3637
|
+
/*
|
3638
|
+
* Function: _fnCalculateColumnWidths
|
3639
|
+
* Purpose: Calculate the width of columns for the table
|
3640
|
+
* Returns: -
|
3641
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3642
|
+
*/
|
3643
|
+
function _fnCalculateColumnWidths ( oSettings ){
|
3644
|
+
}
|
3645
|
+
|
3646
|
+
/*
|
3647
|
+
* Function: fnGetMaxLenString
|
3648
|
+
* Purpose: Get the maximum strlen for each data column
|
3649
|
+
* Returns: string: - max strlens for each column
|
3650
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3651
|
+
* int:iCol - column of interest
|
3652
|
+
*/
|
3653
|
+
function fnGetMaxLenString( oSettings, iCol )
|
3654
|
+
{
|
3655
|
+
var iMax = 0;
|
3656
|
+
var iMaxIndex = -1;
|
3657
|
+
|
3658
|
+
for ( var i=0 ; i<oSettings.aoData.length ; i++ )
|
3659
|
+
{
|
3660
|
+
if ( oSettings.aoData[i]._aData[iCol].length > iMax )
|
3661
|
+
{
|
3662
|
+
iMax = oSettings.aoData[i]._aData[iCol].length;
|
3663
|
+
iMaxIndex = i;
|
3664
|
+
}
|
3665
|
+
}
|
3666
|
+
|
3667
|
+
if ( iMaxIndex >= 0 )
|
3668
|
+
{
|
3669
|
+
return oSettings.aoData[iMaxIndex]._aData[iCol];
|
3670
|
+
}
|
3671
|
+
return '';
|
3672
|
+
}
|
3673
|
+
|
3674
|
+
/*
|
3675
|
+
* Function: _fnArrayCmp
|
3676
|
+
* Purpose: Compare two arrays
|
3677
|
+
* Returns: 0 if match, 1 if length is different, 2 if no match
|
3678
|
+
* Inputs: array:aArray1 - first array
|
3679
|
+
* array:aArray2 - second array
|
3680
|
+
*/
|
3681
|
+
function _fnArrayCmp( aArray1, aArray2 )
|
3682
|
+
{
|
3683
|
+
if ( aArray1.length != aArray2.length )
|
3684
|
+
{
|
3685
|
+
return 1;
|
3686
|
+
}
|
3687
|
+
|
3688
|
+
for ( var i=0 ; i<aArray1.length ; i++ )
|
3689
|
+
{
|
3690
|
+
if ( aArray1[i] != aArray2[i] )
|
3691
|
+
{
|
3692
|
+
return 2;
|
3693
|
+
}
|
3694
|
+
}
|
3695
|
+
|
3696
|
+
return 0;
|
3697
|
+
}
|
3698
|
+
|
3699
|
+
/*
|
3700
|
+
* Function: _fnDetectType
|
3701
|
+
* Purpose: Get the sort type based on an input string
|
3702
|
+
* Returns: string: - type (defaults to 'string' if no type can be detected)
|
3703
|
+
* Inputs: string:sData - data we wish to know the type of
|
3704
|
+
* Notes: This function makes use of the dataSlides plugin objct _oExt
|
3705
|
+
* (.aTypes) such that new types can easily be added.
|
3706
|
+
*/
|
3707
|
+
function _fnDetectType( sData )
|
3708
|
+
{
|
3709
|
+
var aTypes = _oExt.aTypes;
|
3710
|
+
var iLen = aTypes.length;
|
3711
|
+
|
3712
|
+
for ( var i=0 ; i<iLen ; i++ )
|
3713
|
+
{
|
3714
|
+
var sType = aTypes[i]( sData );
|
3715
|
+
if ( sType !== null )
|
3716
|
+
{
|
3717
|
+
return sType;
|
3718
|
+
}
|
3719
|
+
}
|
3720
|
+
|
3721
|
+
return 'string';
|
3722
|
+
}
|
3723
|
+
|
3724
|
+
/*
|
3725
|
+
* Function: _fnSettingsFromNode
|
3726
|
+
* Purpose: Return the settings object for a particular table
|
3727
|
+
* Returns: object: Settings object - or null if not found
|
3728
|
+
* Inputs: node:nTable - table we are using as a dataSlide
|
3729
|
+
*/
|
3730
|
+
function _fnSettingsFromNode ( nTable )
|
3731
|
+
{
|
3732
|
+
for ( var i=0 ; i<_aoSettings.length ; i++ )
|
3733
|
+
{
|
3734
|
+
if ( _aoSettings[i].nTable == nTable )
|
3735
|
+
{
|
3736
|
+
return _aoSettings[i];
|
3737
|
+
}
|
3738
|
+
}
|
3739
|
+
|
3740
|
+
return null;
|
3741
|
+
}
|
3742
|
+
|
3743
|
+
/*
|
3744
|
+
* Function: _fnGetDataMaster
|
3745
|
+
* Purpose: Return an array with the full table data
|
3746
|
+
* Returns: array array:aData - Master data array
|
3747
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3748
|
+
*/
|
3749
|
+
function _fnGetDataMaster ( oSettings )
|
3750
|
+
{
|
3751
|
+
var aData = [];
|
3752
|
+
var iLen = oSettings.aoData.length;
|
3753
|
+
for ( var i=0 ; i<iLen; i++ )
|
3754
|
+
{
|
3755
|
+
if ( oSettings.aoData[i] === null )
|
3756
|
+
{
|
3757
|
+
aData.push( null );
|
3758
|
+
}
|
3759
|
+
else
|
3760
|
+
{
|
3761
|
+
aData.push( oSettings.aoData[i]._aData );
|
3762
|
+
}
|
3763
|
+
}
|
3764
|
+
return aData;
|
3765
|
+
}
|
3766
|
+
|
3767
|
+
/*
|
3768
|
+
* Function: _fnGetTrNodes
|
3769
|
+
* Purpose: Return an array with the TR nodes for the table
|
3770
|
+
* Returns: array array:aData - TR array
|
3771
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3772
|
+
*/
|
3773
|
+
function _fnGetTrNodes ( oSettings )
|
3774
|
+
{
|
3775
|
+
var aNodes = [];
|
3776
|
+
var iLen = oSettings.aoData.length;
|
3777
|
+
for ( var i=0 ; i<iLen ; i++ )
|
3778
|
+
{
|
3779
|
+
if ( oSettings.aoData[i] === null )
|
3780
|
+
{
|
3781
|
+
aNodes.push( null );
|
3782
|
+
}
|
3783
|
+
else
|
3784
|
+
{
|
3785
|
+
aNodes.push( oSettings.aoData[i].nTr );
|
3786
|
+
}
|
3787
|
+
}
|
3788
|
+
return aNodes;
|
3789
|
+
}
|
3790
|
+
|
3791
|
+
/*
|
3792
|
+
* Function: _fnEscapeRegex
|
3793
|
+
* Purpose: scape a string stuch that it can be used in a regular expression
|
3794
|
+
* Returns: string: - escaped string
|
3795
|
+
* Inputs: string:sVal - string to escape
|
3796
|
+
*/
|
3797
|
+
function _fnEscapeRegex ( sVal )
|
3798
|
+
{
|
3799
|
+
var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^' ];
|
3800
|
+
var reReplace = new RegExp( '(\\' + acEscape.join('|\\') + ')', 'g' );
|
3801
|
+
return sVal.replace(reReplace, '\\$1');
|
3802
|
+
}
|
3803
|
+
|
3804
|
+
/*
|
3805
|
+
* Function: _fnReOrderIndex
|
3806
|
+
* Purpose: Figure out how to reorder a display list
|
3807
|
+
* Returns: array int:aiReturn - index list for reordering
|
3808
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3809
|
+
*/
|
3810
|
+
function _fnReOrderIndex ( oSettings, sColumns )
|
3811
|
+
{
|
3812
|
+
var aColumns = sColumns.split(',');
|
3813
|
+
var aiReturn = [];
|
3814
|
+
|
3815
|
+
for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
3816
|
+
{
|
3817
|
+
for ( var j=0 ; j<iLen ; j++ )
|
3818
|
+
{
|
3819
|
+
if ( oSettings.aoColumns[i].sName == aColumns[j] )
|
3820
|
+
{
|
3821
|
+
aiReturn.push( j );
|
3822
|
+
break;
|
3823
|
+
}
|
3824
|
+
}
|
3825
|
+
}
|
3826
|
+
|
3827
|
+
return aiReturn;
|
3828
|
+
}
|
3829
|
+
|
3830
|
+
/*
|
3831
|
+
* Function: _fnColumnOrdering
|
3832
|
+
* Purpose: Get the column ordering that dataSlides expects
|
3833
|
+
* Returns: string: - comma separated list of names
|
3834
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3835
|
+
*/
|
3836
|
+
function _fnColumnOrdering ( oSettings )
|
3837
|
+
{
|
3838
|
+
var sNames = '';
|
3839
|
+
for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
3840
|
+
{
|
3841
|
+
sNames += oSettings.aoColumns[i].sName+',';
|
3842
|
+
}
|
3843
|
+
if ( sNames.length == iLen )
|
3844
|
+
{
|
3845
|
+
return "";
|
3846
|
+
}
|
3847
|
+
return sNames.slice(0, -1);
|
3848
|
+
}
|
3849
|
+
|
3850
|
+
/*
|
3851
|
+
* Function: _fnClearTable
|
3852
|
+
* Purpose: Nuke the table
|
3853
|
+
* Returns: -
|
3854
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3855
|
+
*/
|
3856
|
+
function _fnClearTable( oSettings )
|
3857
|
+
{
|
3858
|
+
oSettings.aoData.length = 0;
|
3859
|
+
oSettings.aiDisplayMaster.length = 0;
|
3860
|
+
oSettings.aiDisplay.length = 0;
|
3861
|
+
_fnCalculateEnd( oSettings );
|
3862
|
+
}
|
3863
|
+
|
3864
|
+
/*
|
3865
|
+
* Function: _fnSaveState
|
3866
|
+
* Purpose: Save the state of a table in a cookie such that the page can be reloaded
|
3867
|
+
* Returns: -
|
3868
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3869
|
+
*/
|
3870
|
+
function _fnSaveState ( oSettings )
|
3871
|
+
{
|
3872
|
+
if ( !oSettings.oFeatures.bStateSave )
|
3873
|
+
{
|
3874
|
+
return;
|
3875
|
+
}
|
3876
|
+
|
3877
|
+
/* Store the interesting variables */
|
3878
|
+
var i;
|
3879
|
+
var sValue = "{";
|
3880
|
+
sValue += '"iStart": '+oSettings._iDisplayStart+',';
|
3881
|
+
sValue += '"iEnd": '+oSettings._iDisplayEnd+',';
|
3882
|
+
sValue += '"iLength": '+oSettings._iDisplayLength+',';
|
3883
|
+
sValue += '"sFilter": "'+oSettings.oPreviousSearch.sSearch.replace('"','\\"')+'",';
|
3884
|
+
sValue += '"sFilterEsc": '+oSettings.oPreviousSearch.bEscapeRegex+',';
|
3885
|
+
|
3886
|
+
sValue += '"aaSorting": [ ';
|
3887
|
+
for ( i=0 ; i<oSettings.aaSorting.length ; i++ )
|
3888
|
+
{
|
3889
|
+
sValue += "["+oSettings.aaSorting[i][0]+",'"+oSettings.aaSorting[i][1]+"'],";
|
3890
|
+
}
|
3891
|
+
sValue = sValue.substring(0, sValue.length-1);
|
3892
|
+
sValue += "],";
|
3893
|
+
|
3894
|
+
sValue += '"aaSearchCols": [ ';
|
3895
|
+
for ( i=0 ; i<oSettings.aoPreSearchCols.length ; i++ )
|
3896
|
+
{
|
3897
|
+
sValue += "['"+oSettings.aoPreSearchCols[i].sSearch.replace("'","\'")+
|
3898
|
+
"',"+oSettings.aoPreSearchCols[i].bEscapeRegex+"],";
|
3899
|
+
}
|
3900
|
+
sValue = sValue.substring(0, sValue.length-1);
|
3901
|
+
sValue += "],";
|
3902
|
+
|
3903
|
+
sValue += '"abVisCols": [ ';
|
3904
|
+
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
|
3905
|
+
{
|
3906
|
+
sValue += oSettings.aoColumns[i].bVisible+",";
|
3907
|
+
}
|
3908
|
+
sValue = sValue.substring(0, sValue.length-1);
|
3909
|
+
sValue += "]";
|
3910
|
+
|
3911
|
+
sValue += "}";
|
3912
|
+
_fnCreateCookie( "SpryMedia_dataSlides_"+oSettings.sInstance, sValue,
|
3913
|
+
oSettings.iCookieDuration );
|
3914
|
+
}
|
3915
|
+
|
3916
|
+
/*
|
3917
|
+
* Function: _fnLoadState
|
3918
|
+
* Purpose: Attempt to load a saved table state from a cookie
|
3919
|
+
* Returns: -
|
3920
|
+
* Inputs: object:oSettings - dataSlides settings object
|
3921
|
+
* object:oInit - dataSlides init object so we can override settings
|
3922
|
+
*/
|
3923
|
+
function _fnLoadState ( oSettings, oInit )
|
3924
|
+
{
|
3925
|
+
if ( !oSettings.oFeatures.bStateSave )
|
3926
|
+
{
|
3927
|
+
return;
|
3928
|
+
}
|
3929
|
+
|
3930
|
+
var oData;
|
3931
|
+
var sData = _fnReadCookie( "SpryMedia_dataSlides_"+oSettings.sInstance );
|
3932
|
+
if ( sData !== null && sData !== '' )
|
3933
|
+
{
|
3934
|
+
/* Try/catch the JSON eval - if it is bad then we ignore it */
|
3935
|
+
try
|
3936
|
+
{
|
3937
|
+
/* Use the JSON library for safety - if it is available */
|
3938
|
+
if ( typeof JSON == 'object' && typeof JSON.parse == 'function' )
|
3939
|
+
{
|
3940
|
+
/* DT 1.4.0 used single quotes for a string - JSON.parse doesn't allow this and throws
|
3941
|
+
* an error. So for now we can do this. This can be removed in future it is just to
|
3942
|
+
* allow the tranfrer to 1.4.1+ to occur
|
3943
|
+
*/
|
3944
|
+
oData = JSON.parse( sData.replace(/'/g, '"') );
|
3945
|
+
}
|
3946
|
+
else
|
3947
|
+
{
|
3948
|
+
oData = eval( '('+sData+')' );
|
3949
|
+
}
|
3950
|
+
}
|
3951
|
+
catch( e )
|
3952
|
+
{
|
3953
|
+
return;
|
3954
|
+
}
|
3955
|
+
|
3956
|
+
/* Restore key features */
|
3957
|
+
oSettings._iDisplayStart = oData.iStart;
|
3958
|
+
oSettings.iInitDisplayStart = oData.iStart;
|
3959
|
+
oSettings._iDisplayEnd = oData.iEnd;
|
3960
|
+
oSettings._iDisplayLength = oData.iLength;
|
3961
|
+
oSettings.oPreviousSearch.sSearch = oData.sFilter;
|
3962
|
+
oSettings.aaSorting = oData.aaSorting.slice();
|
3963
|
+
|
3964
|
+
/* Search filtering - global reference added in 1.4.1 */
|
3965
|
+
if ( typeof oData.sFilterEsc != 'undefined' )
|
3966
|
+
{
|
3967
|
+
oSettings.oPreviousSearch.bEscapeRegex = oData.sFilterEsc;
|
3968
|
+
}
|
3969
|
+
|
3970
|
+
/* Column filtering - added in 1.5.0 beta 6 */
|
3971
|
+
if ( typeof oData.aaSearchCols != 'undefined' )
|
3972
|
+
{
|
3973
|
+
for ( var i=0 ; i<oData.aaSearchCols.length ; i++ )
|
3974
|
+
{
|
3975
|
+
oSettings.aoPreSearchCols[i] = {
|
3976
|
+
"sSearch": oData.aaSearchCols[i][0],
|
3977
|
+
"bEscapeRegex": oData.aaSearchCols[i][1]
|
3978
|
+
};
|
3979
|
+
}
|
3980
|
+
}
|
3981
|
+
|
3982
|
+
/* Column visibility state - added in 1.5.0 beta 10 */
|
3983
|
+
if ( typeof oData.abVisCols != 'undefined' )
|
3984
|
+
{
|
3985
|
+
/* We need to override the settings in oInit for this */
|
3986
|
+
if ( typeof oInit.aoColumns == 'undefined' )
|
3987
|
+
{
|
3988
|
+
oInit.aoColumns = [];
|
3989
|
+
}
|
3990
|
+
|
3991
|
+
for ( i=0 ; i<oData.abVisCols.length ; i++ )
|
3992
|
+
{
|
3993
|
+
if ( typeof oInit.aoColumns[i] == 'undefined' || oInit.aoColumns[i] === null )
|
3994
|
+
{
|
3995
|
+
oInit.aoColumns[i] = {};
|
3996
|
+
}
|
3997
|
+
|
3998
|
+
oInit.aoColumns[i].bVisible = oData.abVisCols[i];
|
3999
|
+
}
|
4000
|
+
}
|
4001
|
+
}
|
4002
|
+
}
|
4003
|
+
|
4004
|
+
/*
|
4005
|
+
* Function: _fnCreateCookie
|
4006
|
+
* Purpose: Create a new cookie with a value to store the state of a table
|
4007
|
+
* Returns: -
|
4008
|
+
* Inputs: string:sName - name of the cookie to create
|
4009
|
+
* string:sValue - the value the cookie should take
|
4010
|
+
* int:iSecs - duration of the cookie
|
4011
|
+
*/
|
4012
|
+
function _fnCreateCookie ( sName, sValue, iSecs )
|
4013
|
+
{
|
4014
|
+
var date = new Date();
|
4015
|
+
date.setTime( date.getTime()+(iSecs*1000) );
|
4016
|
+
|
4017
|
+
/*
|
4018
|
+
* Shocking but true - it would appear IE has major issues with having the path being
|
4019
|
+
* set to anything but root. We need the cookie to be available based on the path, so we
|
4020
|
+
* have to append the pathname to the cookie name. Appalling.
|
4021
|
+
*/
|
4022
|
+
sName += '_'+window.location.pathname.replace(/[\/:]/g,"").toLowerCase();
|
4023
|
+
|
4024
|
+
document.cookie = sName+"="+sValue+"; expires="+date.toGMTString()+"; path=/";
|
4025
|
+
}
|
4026
|
+
|
4027
|
+
/*
|
4028
|
+
* Function: _fnReadCookie
|
4029
|
+
* Purpose: Read an old cookie to get a cookie with an old table state
|
4030
|
+
* Returns: string: - contents of the cookie - or null if no cookie with that name found
|
4031
|
+
* Inputs: string:sName - name of the cookie to read
|
4032
|
+
*/
|
4033
|
+
function _fnReadCookie ( sName )
|
4034
|
+
{
|
4035
|
+
var sNameEQ = sName +'_'+ window.location.pathname.replace(/[\/:]/g,"").toLowerCase() + "=";
|
4036
|
+
var sCookieContents = document.cookie.split(';');
|
4037
|
+
|
4038
|
+
for( var i=0 ; i<sCookieContents.length ; i++ )
|
4039
|
+
{
|
4040
|
+
var c = sCookieContents[i];
|
4041
|
+
|
4042
|
+
while (c.charAt(0)==' ')
|
4043
|
+
{
|
4044
|
+
c = c.substring(1,c.length);
|
4045
|
+
}
|
4046
|
+
|
4047
|
+
if (c.indexOf(sNameEQ) === 0)
|
4048
|
+
{
|
4049
|
+
return c.substring(sNameEQ.length,c.length);
|
4050
|
+
}
|
4051
|
+
}
|
4052
|
+
return null;
|
4053
|
+
}
|
4054
|
+
|
4055
|
+
/*
|
4056
|
+
* Function: _fnGetUniqueThs
|
4057
|
+
* Purpose: Get an array of unique th elements, one for each column
|
4058
|
+
* Returns: array node:aReturn - list of unique ths
|
4059
|
+
* Inputs: node:nThead - The thead element for the table
|
4060
|
+
*/
|
4061
|
+
function _fnGetUniqueThs ( nThead )
|
4062
|
+
{
|
4063
|
+
var nTrs = $(nThead).children('.tr');
|
4064
|
+
|
4065
|
+
/* Nice simple case */
|
4066
|
+
if ( nTrs.length == 1 )
|
4067
|
+
{
|
4068
|
+
return $(nTrs).children('.th');
|
4069
|
+
}
|
4070
|
+
|
4071
|
+
/* Otherwise we need to figure out the layout array to get the nodes */
|
4072
|
+
var aLayout = [], aReturn = [];
|
4073
|
+
var ROWSPAN = 2, COLSPAN = 3, TDELEM = 4;
|
4074
|
+
var i, j, k, iLen, jLen, iColumnShifted;
|
4075
|
+
var fnShiftCol = function ( a, i, j ) {
|
4076
|
+
while ( typeof a[i][j] != 'undefined' ) {
|
4077
|
+
j++;
|
4078
|
+
}
|
4079
|
+
return j;
|
4080
|
+
};
|
4081
|
+
var fnAddRow = function ( i ) {
|
4082
|
+
if ( typeof aLayout[i] == 'undefined' ) {
|
4083
|
+
aLayout[i] = [];
|
4084
|
+
}
|
4085
|
+
};
|
4086
|
+
|
4087
|
+
/* Calculate a layout array */
|
4088
|
+
for ( i=0, iLen=nTrs.length ; i<iLen ; i++ )
|
4089
|
+
{
|
4090
|
+
fnAddRow( i );
|
4091
|
+
var iColumn = 0;
|
4092
|
+
var nTds = [];
|
4093
|
+
|
4094
|
+
for ( j=0, jLen=nTrs[i].childNodes.length ; j<jLen ; j++ )
|
4095
|
+
{
|
4096
|
+
if ( nTrs[i].childNodes[j].nodeName == "DIV")
|
4097
|
+
{
|
4098
|
+
nTds.push( nTrs[i].childNodes[j] );
|
4099
|
+
}
|
4100
|
+
}
|
4101
|
+
|
4102
|
+
for ( j=0, jLen=nTds.length ; j<jLen ; j++ )
|
4103
|
+
{
|
4104
|
+
var iColspan = nTds[j].getAttribute('colspan') * 1;
|
4105
|
+
var iRowspan = nTds[j].getAttribute('rowspan') * 1;
|
4106
|
+
|
4107
|
+
if ( !iColspan || iColspan===0 || iColspan===1 )
|
4108
|
+
{
|
4109
|
+
iColumnShifted = fnShiftCol( aLayout, i, iColumn );
|
4110
|
+
aLayout[i][iColumnShifted] = (nTds[j].nodeName=="DIV") ? TDELEM : nTds[j];
|
4111
|
+
if ( iRowspan || iRowspan===0 || iRowspan===1 )
|
4112
|
+
{
|
4113
|
+
for ( k=1 ; k<iRowspan ; k++ )
|
4114
|
+
{
|
4115
|
+
fnAddRow( i+k );
|
4116
|
+
aLayout[i+k][iColumnShifted] = ROWSPAN;
|
4117
|
+
}
|
4118
|
+
}
|
4119
|
+
iColumn++;
|
4120
|
+
}
|
4121
|
+
else
|
4122
|
+
{
|
4123
|
+
iColumnShifted = fnShiftCol( aLayout, i, iColumn );
|
4124
|
+
for ( k=0 ; k<iColspan ; k++ )
|
4125
|
+
{
|
4126
|
+
aLayout[i][iColumnShifted+k] = COLSPAN;
|
4127
|
+
}
|
4128
|
+
iColumn += iColspan;
|
4129
|
+
}
|
4130
|
+
}
|
4131
|
+
}
|
4132
|
+
|
4133
|
+
/* Convert the layout array into a node array
|
4134
|
+
* Note the use of aLayout[0] in the outloop, we want the outer loop to occur the same
|
4135
|
+
* number of times as there are columns. Unusual having nested loops this way around
|
4136
|
+
* but is what we need here.
|
4137
|
+
*/
|
4138
|
+
for ( i=0, iLen=aLayout[0].length ; i<iLen ; i++ )
|
4139
|
+
{
|
4140
|
+
for ( j=0, jLen=aLayout.length ; j<jLen ; j++ )
|
4141
|
+
{
|
4142
|
+
if ( typeof aLayout[j][i] == 'object' )
|
4143
|
+
{
|
4144
|
+
aReturn.push( aLayout[j][i] );
|
4145
|
+
}
|
4146
|
+
}
|
4147
|
+
}
|
4148
|
+
|
4149
|
+
return aReturn;
|
4150
|
+
}
|
4151
|
+
|
4152
|
+
/*
|
4153
|
+
* Function: _fnMap
|
4154
|
+
* Purpose: See if a property is defined on one object, if so assign it to the other object
|
4155
|
+
* Returns: - (done by reference)
|
4156
|
+
* Inputs: object:oRet - target object
|
4157
|
+
* object:oSrc - source object
|
4158
|
+
* string:sName - property
|
4159
|
+
* string:sMappedName - name to map too - optional, sName used if not given
|
4160
|
+
*/
|
4161
|
+
function _fnMap( oRet, oSrc, sName, sMappedName )
|
4162
|
+
{
|
4163
|
+
if ( typeof sMappedName == 'undefined' )
|
4164
|
+
{
|
4165
|
+
sMappedName = sName;
|
4166
|
+
}
|
4167
|
+
if ( typeof oSrc[sName] != 'undefined' )
|
4168
|
+
{
|
4169
|
+
oRet[sMappedName] = oSrc[sName];
|
4170
|
+
}
|
4171
|
+
}
|
4172
|
+
|
4173
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
4174
|
+
* API
|
4175
|
+
*
|
4176
|
+
* I'm not overly happy with this solution - I'd much rather that there was a way of getting
|
4177
|
+
* a list of all the private functions and do what we need to dynamically - but that doesn't
|
4178
|
+
* appear to be possible. Bonkers. A better solution would be to provide a 'bind' type object
|
4179
|
+
* To do - bind type method in DTs 1.6.
|
4180
|
+
*/
|
4181
|
+
this.oApi._fnInitalise = _fnInitalise;
|
4182
|
+
this.oApi._fnLanguageProcess = _fnLanguageProcess;
|
4183
|
+
this.oApi._fnAddColumn = _fnAddColumn;
|
4184
|
+
this.oApi._fnAddData = _fnAddData;
|
4185
|
+
this.oApi._fnGatherData = _fnGatherData;
|
4186
|
+
this.oApi._fnDrawHead = _fnDrawHead;
|
4187
|
+
this.oApi._fnDraw = _fnDraw;
|
4188
|
+
this.oApi._fnAjaxUpdate = _fnAjaxUpdate;
|
4189
|
+
this.oApi._fnAddOptionsHtml = _fnAddOptionsHtml;
|
4190
|
+
this.oApi._fnFeatureHtmlFilter = _fnFeatureHtmlFilter;
|
4191
|
+
this.oApi._fnFeatureHtmlInfo = _fnFeatureHtmlInfo;
|
4192
|
+
this.oApi._fnFeatureHtmlPaginate = _fnFeatureHtmlPaginate;
|
4193
|
+
this.oApi._fnFeatureHtmlLength = _fnFeatureHtmlLength;
|
4194
|
+
this.oApi._fnFeatureHtmlProcessing = _fnFeatureHtmlProcessing;
|
4195
|
+
this.oApi._fnProcessingDisplay = _fnProcessingDisplay;
|
4196
|
+
this.oApi._fnFilterComplete = _fnFilterComplete;
|
4197
|
+
this.oApi._fnFilterColumn = _fnFilterColumn;
|
4198
|
+
this.oApi._fnFilter = _fnFilter;
|
4199
|
+
this.oApi._fnSortingClasses = _fnSortingClasses;
|
4200
|
+
this.oApi._fnVisibleToColumnIndex = _fnVisibleToColumnIndex;
|
4201
|
+
this.oApi._fnColumnIndexToVisible = _fnColumnIndexToVisible;
|
4202
|
+
this.oApi._fnVisbleColumns = _fnVisbleColumns;
|
4203
|
+
this.oApi._fnBuildSearchArray = _fnBuildSearchArray;
|
4204
|
+
this.oApi._fnDataToSearch = _fnDataToSearch;
|
4205
|
+
this.oApi._fnCalculateEnd = _fnCalculateEnd;
|
4206
|
+
this.oApi._fnConvertToWidth = _fnConvertToWidth;
|
4207
|
+
this.oApi._fnCalculateColumnWidths = _fnCalculateColumnWidths;
|
4208
|
+
this.oApi._fnArrayCmp = _fnArrayCmp;
|
4209
|
+
this.oApi._fnDetectType = _fnDetectType;
|
4210
|
+
this.oApi._fnGetDataMaster = _fnGetDataMaster;
|
4211
|
+
this.oApi._fnGetTrNodes = _fnGetTrNodes;
|
4212
|
+
this.oApi._fnEscapeRegex = _fnEscapeRegex;
|
4213
|
+
this.oApi._fnReOrderIndex = _fnReOrderIndex;
|
4214
|
+
this.oApi._fnColumnOrdering = _fnColumnOrdering;
|
4215
|
+
this.oApi._fnClearTable = _fnClearTable;
|
4216
|
+
this.oApi._fnSaveState = _fnSaveState;
|
4217
|
+
this.oApi._fnLoadState = _fnLoadState;
|
4218
|
+
this.oApi._fnCreateCookie = _fnCreateCookie;
|
4219
|
+
this.oApi._fnReadCookie = _fnReadCookie;
|
4220
|
+
this.oApi._fnGetUniqueThs = _fnGetUniqueThs;
|
4221
|
+
|
4222
|
+
/* Want to be able to reference "this" inside the this.each function */
|
4223
|
+
var _that = this;
|
4224
|
+
|
4225
|
+
|
4226
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
4227
|
+
* Constructor
|
4228
|
+
*/
|
4229
|
+
return this.each(function()
|
4230
|
+
{
|
4231
|
+
/* Make a complete and independent copy of the settings object */
|
4232
|
+
var oSettings = new classSettings();
|
4233
|
+
_aoSettings.push( oSettings );
|
4234
|
+
|
4235
|
+
var i=0, iLen;
|
4236
|
+
var bInitHandedOff = false;
|
4237
|
+
var bUsePassedData = false;
|
4238
|
+
|
4239
|
+
/* Set the id */
|
4240
|
+
var sId = this.getAttribute( 'id' );
|
4241
|
+
if ( sId !== null )
|
4242
|
+
{
|
4243
|
+
oSettings.sTableId = sId;
|
4244
|
+
oSettings.sInstance = sId;
|
4245
|
+
}
|
4246
|
+
else
|
4247
|
+
{
|
4248
|
+
oSettings.sInstance = _oExt._oExternConfig.iNextUnique ++;
|
4249
|
+
}
|
4250
|
+
|
4251
|
+
/* Set the table node */
|
4252
|
+
oSettings.nTable = this;
|
4253
|
+
|
4254
|
+
/* Bind the API functions to the settings, so we can perform actions whenever oSettings is
|
4255
|
+
* available
|
4256
|
+
*/
|
4257
|
+
oSettings.oApi = _that.oApi;
|
4258
|
+
|
4259
|
+
/* Store the features that we have available */
|
4260
|
+
if ( typeof oInit != 'undefined' && oInit !== null )
|
4261
|
+
{
|
4262
|
+
_fnMap( oSettings.oFeatures, oInit, "bPaginate" );
|
4263
|
+
_fnMap( oSettings.oFeatures, oInit, "bLengthChange" );
|
4264
|
+
_fnMap( oSettings.oFeatures, oInit, "bFilter" );
|
4265
|
+
_fnMap( oSettings.oFeatures, oInit, "bSort" );
|
4266
|
+
_fnMap( oSettings.oFeatures, oInit, "bInfo" );
|
4267
|
+
_fnMap( oSettings.oFeatures, oInit, "bProcessing" );
|
4268
|
+
_fnMap( oSettings.oFeatures, oInit, "bAutoWidth" );
|
4269
|
+
_fnMap( oSettings.oFeatures, oInit, "bSortClasses" );
|
4270
|
+
_fnMap( oSettings.oFeatures, oInit, "bServerSide" );
|
4271
|
+
_fnMap( oSettings, oInit, "asStripClasses" );
|
4272
|
+
_fnMap( oSettings, oInit, "fnRowCallback" );
|
4273
|
+
_fnMap( oSettings, oInit, "fnHeaderCallback" );
|
4274
|
+
_fnMap( oSettings, oInit, "fnFooterCallback" );
|
4275
|
+
_fnMap( oSettings, oInit, "fnDrawCallback" );
|
4276
|
+
_fnMap( oSettings, oInit, "fnInitComplete" );
|
4277
|
+
_fnMap( oSettings, oInit, "fnServerData" );
|
4278
|
+
_fnMap( oSettings, oInit, "aaSorting" );
|
4279
|
+
_fnMap( oSettings, oInit, "aaSortingFixed" );
|
4280
|
+
_fnMap( oSettings, oInit, "sPaginationType" );
|
4281
|
+
_fnMap( oSettings, oInit, "sAjaxSource" );
|
4282
|
+
_fnMap( oSettings, oInit, "sDom", "sDomPositioning" );
|
4283
|
+
_fnMap( oSettings, oInit, "oSearch", "oPreviousSearch" );
|
4284
|
+
_fnMap( oSettings, oInit, "aoSearchCols", "aoPreSearchCols" );
|
4285
|
+
_fnMap( oSettings, oInit, "iDisplayLength", "_iDisplayLength" );
|
4286
|
+
_fnMap( oSettings, oInit, "bJQueryUI", "bJUI" );
|
4287
|
+
|
4288
|
+
if ( typeof oInit.bJQueryUI != 'undefined' )
|
4289
|
+
{
|
4290
|
+
/* Use the JUI classes object for display. You could clone the oStdClasses object if
|
4291
|
+
* you want to have multiple tables with multiple independent classes
|
4292
|
+
*/
|
4293
|
+
oSettings.oClasses = _oExt.oJUIClasses;
|
4294
|
+
|
4295
|
+
if ( typeof oInit.sDom == 'undefined' )
|
4296
|
+
{
|
4297
|
+
/* Set the DOM to use a layout suitable for jQuery UI's theming */
|
4298
|
+
oSettings.sDomPositioning =
|
4299
|
+
'<"fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"lfr>'+
|
4300
|
+
't'+
|
4301
|
+
'<"fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"ip>';
|
4302
|
+
}
|
4303
|
+
}
|
4304
|
+
|
4305
|
+
if ( typeof oInit.iDisplayStart != 'undefined' &&
|
4306
|
+
typeof oSettings.iInitDisplayStart == 'undefined' ) {
|
4307
|
+
/* Display start point, taking into account the save saving */
|
4308
|
+
oSettings.iInitDisplayStart = oInit.iDisplayStart;
|
4309
|
+
oSettings._iDisplayStart = oInit.iDisplayStart;
|
4310
|
+
}
|
4311
|
+
|
4312
|
+
/* Must be done after everything which can be overridden by a cookie! */
|
4313
|
+
if ( typeof oInit.bStateSave != 'undefined' )
|
4314
|
+
{
|
4315
|
+
oSettings.oFeatures.bStateSave = oInit.bStateSave;
|
4316
|
+
_fnLoadState( oSettings, oInit );
|
4317
|
+
}
|
4318
|
+
|
4319
|
+
if ( typeof oInit.aaData != 'undefined' ) {
|
4320
|
+
bUsePassedData = true;
|
4321
|
+
}
|
4322
|
+
|
4323
|
+
/* Backwards compatability */
|
4324
|
+
/* aoColumns / aoData - remove at some point... */
|
4325
|
+
if ( typeof oInit != 'undefined' && typeof oInit.aoData != 'undefined' )
|
4326
|
+
{
|
4327
|
+
oInit.aoColumns = oInit.aoData;
|
4328
|
+
}
|
4329
|
+
|
4330
|
+
/* Language definitions */
|
4331
|
+
if ( typeof oInit.oLanguage != 'undefined' )
|
4332
|
+
{
|
4333
|
+
if ( typeof oInit.oLanguage.sUrl != 'undefined' && oInit.oLanguage.sUrl !== "" )
|
4334
|
+
{
|
4335
|
+
/* Get the language definitions from a file */
|
4336
|
+
oSettings.oLanguage.sUrl = oInit.oLanguage.sUrl;
|
4337
|
+
$.getJSON( oSettings.oLanguage.sUrl, null, function( json ) {
|
4338
|
+
_fnLanguageProcess( oSettings, json, true ); } );
|
4339
|
+
bInitHandedOff = true;
|
4340
|
+
}
|
4341
|
+
else
|
4342
|
+
{
|
4343
|
+
_fnLanguageProcess( oSettings, oInit.oLanguage, false );
|
4344
|
+
}
|
4345
|
+
}
|
4346
|
+
/* Warning: The _fnLanguageProcess function is async to the remainder of this function due
|
4347
|
+
* to the XHR. We use _bInitialised in _fnLanguageProcess() to check this the processing
|
4348
|
+
* below is complete. The reason for spliting it like this is optimisation - we can fire
|
4349
|
+
* off the XHR (if needed) and then continue processing the data.
|
4350
|
+
*/
|
4351
|
+
}
|
4352
|
+
|
4353
|
+
/* Add the strip classes now that we know which classes to apply - unless overruled */
|
4354
|
+
if ( typeof oInit == 'undefined' || typeof oInit.asStripClasses == 'undefined' )
|
4355
|
+
{
|
4356
|
+
oSettings.asStripClasses.push( oSettings.oClasses.sStripOdd );
|
4357
|
+
oSettings.asStripClasses.push( oSettings.oClasses.sStripEven );
|
4358
|
+
}
|
4359
|
+
|
4360
|
+
/* See if we should load columns automatically or use defined ones - a bit messy this... */
|
4361
|
+
var nThead = $('.thead',this);
|
4362
|
+
var nThs = nThead.length===0 ? null : _fnGetUniqueThs( nThead[0] );
|
4363
|
+
var bUseCols = typeof oInit != 'undefined' && typeof oInit.aoColumns != 'undefined';
|
4364
|
+
for ( i=0, iLen=bUseCols ? oInit.aoColumns.length : nThs.length ; i<iLen ; i++ )
|
4365
|
+
{
|
4366
|
+
var col = bUseCols ? oInit.aoColumns[i] : null;
|
4367
|
+
var n = nThs ? nThs[i] : null;
|
4368
|
+
_fnAddColumn( oSettings, col, n );
|
4369
|
+
}
|
4370
|
+
|
4371
|
+
/* Sanity check that there is a thead and tfoot. If not let's just create them */
|
4372
|
+
if ( $(this).children('.thead').length === 0 )
|
4373
|
+
{
|
4374
|
+
$(this).append('<div class="thead"></div>');
|
4375
|
+
}
|
4376
|
+
|
4377
|
+
if ( $(this).children('.tbody').length === 0 )
|
4378
|
+
{
|
4379
|
+
$(this).append('<div class="tbody"></div>');
|
4380
|
+
}
|
4381
|
+
|
4382
|
+
/* Check if there is data passing into the constructor */
|
4383
|
+
if ( bUsePassedData )
|
4384
|
+
{
|
4385
|
+
for ( i=0 ; i<oInit.aaData.length ; i++ )
|
4386
|
+
{
|
4387
|
+
_fnAddData( oSettings, oInit.aaData[ i ] );
|
4388
|
+
}
|
4389
|
+
}
|
4390
|
+
else
|
4391
|
+
{
|
4392
|
+
/* Grab the data from the page */
|
4393
|
+
_fnGatherData( oSettings );
|
4394
|
+
}
|
4395
|
+
|
4396
|
+
/* Copy the data index array */
|
4397
|
+
oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
|
4398
|
+
|
4399
|
+
/* Calculate sizes for columns */
|
4400
|
+
if ( oSettings.oFeatures.bAutoWidth )
|
4401
|
+
{
|
4402
|
+
_fnCalculateColumnWidths( oSettings );
|
4403
|
+
}
|
4404
|
+
|
4405
|
+
/* Initialisation complete - table can be drawn */
|
4406
|
+
oSettings.bInitialised = true;
|
4407
|
+
|
4408
|
+
/* Check if we need to initialise the table (it might not have been handed off to the
|
4409
|
+
* language processor)
|
4410
|
+
*/
|
4411
|
+
if ( bInitHandedOff === false )
|
4412
|
+
{
|
4413
|
+
_fnInitalise( oSettings );
|
4414
|
+
}
|
4415
|
+
});
|
4416
|
+
};
|
4417
|
+
})(jQuery);
|