├── .bowerrc
├── .gitignore
├── .travis.yml
├── README.md
├── app.js
├── app
├── __tests__
│ ├── FilterablePageableTable.js
│ ├── PageableTable.js
│ └── Table.js
├── bower_components
│ ├── bootstrap
│ │ ├── .bower.json
│ │ ├── Gruntfile.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── dist
│ │ │ ├── css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ └── bootstrap.min.css
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ └── js
│ │ │ │ ├── bootstrap.js
│ │ │ │ └── bootstrap.min.js
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ └── glyphicons-halflings-regular.woff
│ │ ├── grunt
│ │ │ ├── bs-glyphicons-data-generator.js
│ │ │ ├── bs-lessdoc-parser.js
│ │ │ ├── bs-raw-files-generator.js
│ │ │ └── sauce_browsers.yml
│ │ ├── js
│ │ │ ├── affix.js
│ │ │ ├── alert.js
│ │ │ ├── button.js
│ │ │ ├── carousel.js
│ │ │ ├── collapse.js
│ │ │ ├── dropdown.js
│ │ │ ├── modal.js
│ │ │ ├── popover.js
│ │ │ ├── scrollspy.js
│ │ │ ├── tab.js
│ │ │ ├── tooltip.js
│ │ │ └── transition.js
│ │ ├── less
│ │ │ ├── alerts.less
│ │ │ ├── badges.less
│ │ │ ├── bootstrap.less
│ │ │ ├── breadcrumbs.less
│ │ │ ├── button-groups.less
│ │ │ ├── buttons.less
│ │ │ ├── carousel.less
│ │ │ ├── close.less
│ │ │ ├── code.less
│ │ │ ├── component-animations.less
│ │ │ ├── dropdowns.less
│ │ │ ├── forms.less
│ │ │ ├── glyphicons.less
│ │ │ ├── grid.less
│ │ │ ├── input-groups.less
│ │ │ ├── jumbotron.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── media.less
│ │ │ ├── mixins.less
│ │ │ ├── mixins
│ │ │ │ ├── alerts.less
│ │ │ │ ├── background-variant.less
│ │ │ │ ├── border-radius.less
│ │ │ │ ├── buttons.less
│ │ │ │ ├── center-block.less
│ │ │ │ ├── clearfix.less
│ │ │ │ ├── forms.less
│ │ │ │ ├── gradients.less
│ │ │ │ ├── grid-framework.less
│ │ │ │ ├── grid.less
│ │ │ │ ├── hide-text.less
│ │ │ │ ├── image.less
│ │ │ │ ├── labels.less
│ │ │ │ ├── list-group.less
│ │ │ │ ├── nav-divider.less
│ │ │ │ ├── nav-vertical-align.less
│ │ │ │ ├── opacity.less
│ │ │ │ ├── pagination.less
│ │ │ │ ├── panels.less
│ │ │ │ ├── progress-bar.less
│ │ │ │ ├── reset-filter.less
│ │ │ │ ├── resize.less
│ │ │ │ ├── responsive-visibility.less
│ │ │ │ ├── size.less
│ │ │ │ ├── tab-focus.less
│ │ │ │ ├── table-row.less
│ │ │ │ ├── text-emphasis.less
│ │ │ │ ├── text-overflow.less
│ │ │ │ └── vendor-prefixes.less
│ │ │ ├── modals.less
│ │ │ ├── navbar.less
│ │ │ ├── navs.less
│ │ │ ├── normalize.less
│ │ │ ├── pager.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── popovers.less
│ │ │ ├── print.less
│ │ │ ├── progress-bars.less
│ │ │ ├── responsive-embed.less
│ │ │ ├── responsive-utilities.less
│ │ │ ├── scaffolding.less
│ │ │ ├── tables.less
│ │ │ ├── theme.less
│ │ │ ├── thumbnails.less
│ │ │ ├── tooltip.less
│ │ │ ├── type.less
│ │ │ ├── utilities.less
│ │ │ ├── variables.less
│ │ │ └── wells.less
│ │ └── package.json
│ ├── datatables
│ │ ├── .bower.json
│ │ ├── .datatables-commit-sync
│ │ ├── .gitignore
│ │ ├── Contributing.md
│ │ ├── Readme.md
│ │ ├── bower.json
│ │ ├── composer.json
│ │ ├── dataTables.jquery.json
│ │ ├── examples
│ │ │ ├── advanced_init
│ │ │ │ ├── column_render.html
│ │ │ │ ├── complex_header.html
│ │ │ │ ├── defaults.html
│ │ │ │ ├── dom_multiple_elements.html
│ │ │ │ ├── dom_toolbar.html
│ │ │ │ ├── dt_events.html
│ │ │ │ ├── events_live.html
│ │ │ │ ├── footer_callback.html
│ │ │ │ ├── html5-data-attributes.html
│ │ │ │ ├── index.html
│ │ │ │ ├── language_file.html
│ │ │ │ ├── length_menu.html
│ │ │ │ ├── row_callback.html
│ │ │ │ ├── row_grouping.html
│ │ │ │ └── sort_direction_control.html
│ │ │ ├── ajax
│ │ │ │ ├── custom_data_flat.html
│ │ │ │ ├── custom_data_property.html
│ │ │ │ ├── data
│ │ │ │ │ ├── arrays.txt
│ │ │ │ │ ├── arrays_custom_prop.txt
│ │ │ │ │ ├── arrays_subobjects.txt
│ │ │ │ │ ├── objects.txt
│ │ │ │ │ ├── objects_deep.txt
│ │ │ │ │ ├── objects_root_array.txt
│ │ │ │ │ ├── objects_subarrays.txt
│ │ │ │ │ └── orthogonal.txt
│ │ │ │ ├── deep.html
│ │ │ │ ├── defer_render.html
│ │ │ │ ├── index.html
│ │ │ │ ├── null_data_source.html
│ │ │ │ ├── objects.html
│ │ │ │ ├── objects_subarrays.html
│ │ │ │ ├── orthogonal-data.html
│ │ │ │ └── simple.html
│ │ │ ├── api
│ │ │ │ ├── add_row.html
│ │ │ │ ├── api_in_init.html
│ │ │ │ ├── counter_columns.html
│ │ │ │ ├── form.html
│ │ │ │ ├── highlight.html
│ │ │ │ ├── index.html
│ │ │ │ ├── multi_filter.html
│ │ │ │ ├── multi_filter_select.html
│ │ │ │ ├── regex.html
│ │ │ │ ├── row_details.html
│ │ │ │ ├── select_row.html
│ │ │ │ ├── select_single_row.html
│ │ │ │ ├── show_hide.html
│ │ │ │ └── tabs_and_scrolling.html
│ │ │ ├── basic_init
│ │ │ │ ├── alt_pagination.html
│ │ │ │ ├── comma-decimal.html
│ │ │ │ ├── complex_header.html
│ │ │ │ ├── dom.html
│ │ │ │ ├── filter_only.html
│ │ │ │ ├── flexible_width.html
│ │ │ │ ├── hidden_columns.html
│ │ │ │ ├── index.html
│ │ │ │ ├── language.html
│ │ │ │ ├── multi_col_sort.html
│ │ │ │ ├── multiple_tables.html
│ │ │ │ ├── scroll_x.html
│ │ │ │ ├── scroll_xy.html
│ │ │ │ ├── scroll_y.html
│ │ │ │ ├── scroll_y_theme.html
│ │ │ │ ├── state_save.html
│ │ │ │ ├── table_sorting.html
│ │ │ │ └── zero_configuration.html
│ │ │ ├── data_sources
│ │ │ │ ├── ajax.html
│ │ │ │ ├── dom.html
│ │ │ │ ├── index.html
│ │ │ │ ├── js_array.html
│ │ │ │ └── server_side.html
│ │ │ ├── index.html
│ │ │ ├── plug-ins
│ │ │ │ ├── api.html
│ │ │ │ ├── dom_sort.html
│ │ │ │ ├── index.html
│ │ │ │ ├── range_filtering.html
│ │ │ │ ├── sorting_auto.html
│ │ │ │ └── sorting_manual.html
│ │ │ ├── resources
│ │ │ │ ├── bootstrap
│ │ │ │ │ ├── 3
│ │ │ │ │ │ ├── dataTables.bootstrap.css
│ │ │ │ │ │ ├── dataTables.bootstrap.js
│ │ │ │ │ │ └── index.html
│ │ │ │ │ └── images
│ │ │ │ │ │ ├── sort_asc.png
│ │ │ │ │ │ ├── sort_asc_disabled.png
│ │ │ │ │ │ ├── sort_both.png
│ │ │ │ │ │ ├── sort_desc.png
│ │ │ │ │ │ └── sort_desc_disabled.png
│ │ │ │ ├── de_DE.txt
│ │ │ │ ├── demo.css
│ │ │ │ ├── demo.js
│ │ │ │ ├── details_close.png
│ │ │ │ ├── details_open.png
│ │ │ │ ├── examples.php
│ │ │ │ ├── font
│ │ │ │ │ ├── raleway_thin-webfont.eot
│ │ │ │ │ ├── raleway_thin-webfont.ttf
│ │ │ │ │ └── raleway_thin-webfont.woff
│ │ │ │ ├── foundation
│ │ │ │ │ ├── dataTables.foundation.css
│ │ │ │ │ ├── dataTables.foundation.js
│ │ │ │ │ └── images
│ │ │ │ │ │ ├── sort_asc.png
│ │ │ │ │ │ ├── sort_asc_disabled.png
│ │ │ │ │ │ ├── sort_both.png
│ │ │ │ │ │ ├── sort_desc.png
│ │ │ │ │ │ └── sort_desc_disabled.png
│ │ │ │ ├── jqueryui
│ │ │ │ │ ├── dataTables.jqueryui.css
│ │ │ │ │ ├── dataTables.jqueryui.js
│ │ │ │ │ ├── dataTables.jqueryui.scss
│ │ │ │ │ └── index.html
│ │ │ │ └── syntax
│ │ │ │ │ ├── Syntax Highlighter license
│ │ │ │ │ ├── shCore.css
│ │ │ │ │ └── shCore.js
│ │ │ ├── server_side
│ │ │ │ ├── custom_vars.html
│ │ │ │ ├── defer_loading.html
│ │ │ │ ├── ids.html
│ │ │ │ ├── index.html
│ │ │ │ ├── jsonp.html
│ │ │ │ ├── object_data.html
│ │ │ │ ├── pipeline.html
│ │ │ │ ├── post.html
│ │ │ │ ├── row_details.html
│ │ │ │ ├── scripts
│ │ │ │ │ ├── ids-arrays.php
│ │ │ │ │ ├── ids-objects.php
│ │ │ │ │ ├── jsonp.php
│ │ │ │ │ ├── mysql.sql
│ │ │ │ │ ├── objects.php
│ │ │ │ │ ├── post.php
│ │ │ │ │ ├── postgres.sql
│ │ │ │ │ ├── server_processing.php
│ │ │ │ │ ├── sqlite.sql
│ │ │ │ │ ├── sqlserver.sql
│ │ │ │ │ └── ssp.class.php
│ │ │ │ ├── select_rows.html
│ │ │ │ └── simple.html
│ │ │ └── styling
│ │ │ │ ├── bootstrap.html
│ │ │ │ ├── cell-border.html
│ │ │ │ ├── compact.html
│ │ │ │ ├── display.html
│ │ │ │ ├── foundation.html
│ │ │ │ ├── hover.html
│ │ │ │ ├── index.html
│ │ │ │ ├── jqueryUI.html
│ │ │ │ ├── no-classes.html
│ │ │ │ ├── order-column.html
│ │ │ │ ├── row-border.html
│ │ │ │ └── stripe.html
│ │ ├── license.txt
│ │ ├── media
│ │ │ ├── css
│ │ │ │ ├── jquery.dataTables.css
│ │ │ │ ├── jquery.dataTables.min.css
│ │ │ │ └── jquery.dataTables_themeroller.css
│ │ │ ├── images
│ │ │ │ ├── Sorting icons.psd
│ │ │ │ ├── back_disabled.png
│ │ │ │ ├── back_enabled.png
│ │ │ │ ├── back_enabled_hover.png
│ │ │ │ ├── favicon.ico
│ │ │ │ ├── forward_disabled.png
│ │ │ │ ├── forward_enabled.png
│ │ │ │ ├── forward_enabled_hover.png
│ │ │ │ ├── sort_asc.png
│ │ │ │ ├── sort_asc_disabled.png
│ │ │ │ ├── sort_both.png
│ │ │ │ ├── sort_desc.png
│ │ │ │ └── sort_desc_disabled.png
│ │ │ ├── js
│ │ │ │ ├── jquery.dataTables.js
│ │ │ │ ├── jquery.dataTables.min.js
│ │ │ │ └── jquery.js
│ │ │ └── unit_testing
│ │ │ │ ├── controller.js
│ │ │ │ ├── controller.php
│ │ │ │ ├── data_sources
│ │ │ │ ├── arrays.php
│ │ │ │ ├── method.php
│ │ │ │ ├── objects.php
│ │ │ │ └── param.php
│ │ │ │ ├── index.html
│ │ │ │ ├── performance
│ │ │ │ ├── draw.html
│ │ │ │ ├── large.php
│ │ │ │ ├── page.html
│ │ │ │ └── sort.html
│ │ │ │ ├── templates
│ │ │ │ ├── -complex_header.php
│ │ │ │ ├── 2512.php
│ │ │ │ ├── 6776.php
│ │ │ │ ├── complex_header_2.php
│ │ │ │ ├── deferred_table.php
│ │ │ │ ├── dom_data.php
│ │ │ │ ├── dom_data_th.php
│ │ │ │ ├── dom_data_two_headers.php
│ │ │ │ ├── dymanic_table.php
│ │ │ │ ├── empty_table.php
│ │ │ │ ├── html_table.php
│ │ │ │ ├── js_data.php
│ │ │ │ ├── js_data_mixed_types.php
│ │ │ │ └── two_tables.php
│ │ │ │ ├── tests
│ │ │ │ └── 6776-scrolling-table-grows.js
│ │ │ │ ├── tests_onhold
│ │ │ │ ├── 1_dom
│ │ │ │ │ ├── -complex_header.js
│ │ │ │ │ ├── -iDraw.js
│ │ │ │ │ ├── 2512.js
│ │ │ │ │ ├── 2530-2.js
│ │ │ │ │ ├── 2530.js
│ │ │ │ │ ├── 2569.js
│ │ │ │ │ ├── 2600.js
│ │ │ │ │ ├── 2608.js
│ │ │ │ │ ├── 2635.js
│ │ │ │ │ ├── 2746-stable-sort.js
│ │ │ │ │ ├── 2799.js
│ │ │ │ │ ├── 2840-restore-table-width.js
│ │ │ │ │ ├── 2914-state-save-sort.js
│ │ │ │ │ ├── 5396-fnUpdate-arrays-mData.js
│ │ │ │ │ ├── 5396-fnUpdate-arrays.js
│ │ │ │ │ ├── 5508-xscroll-zero-content.js
│ │ │ │ │ ├── 6776-scrolling-table-grows.js
│ │ │ │ │ ├── _getDataFunctions.js
│ │ │ │ │ ├── _setDataFunctions.js
│ │ │ │ │ ├── _zero_config.js
│ │ │ │ │ ├── aaSorting.js
│ │ │ │ │ ├── aaSortingFixed.js
│ │ │ │ │ ├── aoColumns.bSearchable.js
│ │ │ │ │ ├── aoColumns.bSortable.js
│ │ │ │ │ ├── aoColumns.bUseRendered.js
│ │ │ │ │ ├── aoColumns.bVisible.js
│ │ │ │ │ ├── aoColumns.bVisible2.js
│ │ │ │ │ ├── aoColumns.fnRender.js
│ │ │ │ │ ├── aoColumns.iDataSort.js
│ │ │ │ │ ├── aoColumns.sClass.js
│ │ │ │ │ ├── aoColumns.sName.js
│ │ │ │ │ ├── aoColumns.sTitle.js
│ │ │ │ │ ├── aoColumns.sWidth.js
│ │ │ │ │ ├── aoSearchCols.js
│ │ │ │ │ ├── asStripClasses.js
│ │ │ │ │ ├── bAutoWidth.js
│ │ │ │ │ ├── bFilter.js
│ │ │ │ │ ├── bInfiniteScroll.js
│ │ │ │ │ ├── bInfo.js
│ │ │ │ │ ├── bJQueryUI.js
│ │ │ │ │ ├── bLengthChange.js
│ │ │ │ │ ├── bPaginate.js
│ │ │ │ │ ├── bProcessing.js
│ │ │ │ │ ├── bServerSide.js
│ │ │ │ │ ├── bSort.js
│ │ │ │ │ ├── bSortCellsTop.js
│ │ │ │ │ ├── bSortClasses.js
│ │ │ │ │ ├── fnCookieCallback.js
│ │ │ │ │ ├── fnCreatedCell.js
│ │ │ │ │ ├── fnCreatedRow.js
│ │ │ │ │ ├── fnDeleteRow.js
│ │ │ │ │ ├── fnDrawCallback.js
│ │ │ │ │ ├── fnFilter.js
│ │ │ │ │ ├── fnFooterCallback.js
│ │ │ │ │ ├── fnHeaderCallback.js
│ │ │ │ │ ├── fnInfoCallback.js
│ │ │ │ │ ├── fnInitComplete.js
│ │ │ │ │ ├── fnRowCallback.js
│ │ │ │ │ ├── fnSetColumnVis.js
│ │ │ │ │ ├── fnSetColumnVis2.js
│ │ │ │ │ ├── gh-151.js
│ │ │ │ │ ├── gh125 - stripe stripping.js
│ │ │ │ │ ├── html-autodetect-sort.js
│ │ │ │ │ ├── iDisplayLength.js
│ │ │ │ │ ├── oLanguage.oPaginate.js
│ │ │ │ │ ├── oLanguage.sInfo.js
│ │ │ │ │ ├── oLanguage.sInfoEmpty.js
│ │ │ │ │ ├── oLanguage.sInfoPostFix.js
│ │ │ │ │ ├── oLanguage.sLengthMenu.js
│ │ │ │ │ ├── oLanguage.sProcessing.js
│ │ │ │ │ ├── oLanguage.sSearch.js
│ │ │ │ │ ├── oLanguage.sUrl.js
│ │ │ │ │ ├── oLanguage.sZeroRecords.js
│ │ │ │ │ ├── oSearch.js
│ │ │ │ │ ├── sAjaxSource.js
│ │ │ │ │ ├── sDom.js
│ │ │ │ │ ├── sPaginationType.js
│ │ │ │ │ ├── sScrollXY.js
│ │ │ │ │ └── th_in_body.js
│ │ │ │ ├── 2_js
│ │ │ │ │ ├── 39-nested-null.js
│ │ │ │ │ ├── 6872-default-content-missing-props.js
│ │ │ │ │ ├── 8549--string-sorting-nonstrings.js
│ │ │ │ │ ├── _zero_config.js
│ │ │ │ │ ├── aaSorting.js
│ │ │ │ │ ├── aaSortingFixed.js
│ │ │ │ │ ├── aoColumns.bSearchable.js
│ │ │ │ │ ├── aoColumns.bSortable.js
│ │ │ │ │ ├── aoColumns.bUseRendered.js
│ │ │ │ │ ├── aoColumns.bVisible.js
│ │ │ │ │ ├── aoColumns.fnRender.js
│ │ │ │ │ ├── aoColumns.iDataSort.js
│ │ │ │ │ ├── aoColumns.sClass.js
│ │ │ │ │ ├── aoColumns.sName.js
│ │ │ │ │ ├── aoColumns.sTitle.js
│ │ │ │ │ ├── aoColumns.sWidth.js
│ │ │ │ │ ├── aoSearchCols.js
│ │ │ │ │ ├── asStripClasses.js
│ │ │ │ │ ├── bAutoWidth.js
│ │ │ │ │ ├── bFilter.js
│ │ │ │ │ ├── bInfo.js
│ │ │ │ │ ├── bLengthChange.js
│ │ │ │ │ ├── bPaginate.js
│ │ │ │ │ ├── bProcessing.js
│ │ │ │ │ ├── bServerSide.js
│ │ │ │ │ ├── bSort.js
│ │ │ │ │ ├── bSortClasses.js
│ │ │ │ │ ├── fnCreatedCell.js
│ │ │ │ │ ├── fnCreatedRow.js
│ │ │ │ │ ├── fnDrawCallback.js
│ │ │ │ │ ├── fnFooterCallback.js
│ │ │ │ │ ├── fnHeaderCallback.js
│ │ │ │ │ ├── fnInitComplete.js
│ │ │ │ │ ├── fnRowCallback.js
│ │ │ │ │ ├── iDisplayLength.js
│ │ │ │ │ ├── js_data_mixed_types.js
│ │ │ │ │ ├── oLanguage.oPaginate.js
│ │ │ │ │ ├── oLanguage.sInfo.js
│ │ │ │ │ ├── oLanguage.sInfoEmpty.js
│ │ │ │ │ ├── oLanguage.sInfoPostFix.js
│ │ │ │ │ ├── oLanguage.sLengthMenu.js
│ │ │ │ │ ├── oLanguage.sProcessing.js
│ │ │ │ │ ├── oLanguage.sSearch.js
│ │ │ │ │ ├── oLanguage.sUrl.js
│ │ │ │ │ ├── oLanguage.sZeroRecords.js
│ │ │ │ │ ├── oSearch.js
│ │ │ │ │ ├── sAjaxSource.js
│ │ │ │ │ ├── sDom.js
│ │ │ │ │ └── sPaginationType.js
│ │ │ │ ├── 3_ajax
│ │ │ │ │ ├── _zero_config.js
│ │ │ │ │ ├── aaSorting.js
│ │ │ │ │ ├── aaSortingFixed.js
│ │ │ │ │ ├── ajax.js
│ │ │ │ │ ├── aoColumns.bSearchable.js
│ │ │ │ │ ├── aoColumns.bSortable.js
│ │ │ │ │ ├── aoColumns.bUseRendered.js
│ │ │ │ │ ├── aoColumns.bVisible.js
│ │ │ │ │ ├── aoColumns.fnRender.js
│ │ │ │ │ ├── aoColumns.iDataSort.js
│ │ │ │ │ ├── aoColumns.sClass.js
│ │ │ │ │ ├── aoColumns.sName.js
│ │ │ │ │ ├── aoColumns.sTitle.js
│ │ │ │ │ ├── aoColumns.sWidth.js
│ │ │ │ │ ├── aoSearchCols.js
│ │ │ │ │ ├── asStripClasses.js
│ │ │ │ │ ├── bAutoWidth.js
│ │ │ │ │ ├── bFilter.js
│ │ │ │ │ ├── bInfo.js
│ │ │ │ │ ├── bLengthChange.js
│ │ │ │ │ ├── bPaginate.js
│ │ │ │ │ ├── bProcessing.js
│ │ │ │ │ ├── bServerSide.js
│ │ │ │ │ ├── bSort.js
│ │ │ │ │ ├── bSortClasses.js
│ │ │ │ │ ├── fnCreatedCell.js
│ │ │ │ │ ├── fnCreatedRow.js
│ │ │ │ │ ├── fnDrawCallback.js
│ │ │ │ │ ├── fnHeaderCallback.js
│ │ │ │ │ ├── fnInitComplete.js
│ │ │ │ │ ├── fnRowCallback.js
│ │ │ │ │ ├── fnServerData.js
│ │ │ │ │ ├── fnServerParams.js
│ │ │ │ │ ├── iDisplayLength.js
│ │ │ │ │ ├── oLanguage.oPaginate.js
│ │ │ │ │ ├── oLanguage.sInfo.js
│ │ │ │ │ ├── oLanguage.sInfoEmpty.js
│ │ │ │ │ ├── oLanguage.sInfoPostFix.js
│ │ │ │ │ ├── oLanguage.sLengthMenu.js
│ │ │ │ │ ├── oLanguage.sLoadingRecords.js
│ │ │ │ │ ├── oLanguage.sProcessing.js
│ │ │ │ │ ├── oLanguage.sSearch.js
│ │ │ │ │ ├── oLanguage.sUrl.js
│ │ │ │ │ ├── oLanguage.sZeroRecords.js
│ │ │ │ │ ├── oSearch.js
│ │ │ │ │ ├── sAjaxDataProp.js
│ │ │ │ │ ├── sAjaxDataProp2.js
│ │ │ │ │ ├── sAjaxSource.js
│ │ │ │ │ ├── sDom.js
│ │ │ │ │ ├── sPaginationType.js
│ │ │ │ │ └── sServerMethod.js
│ │ │ │ ├── 4_server-side
│ │ │ │ │ ├── -iDraw.js
│ │ │ │ │ ├── 2440.js
│ │ │ │ │ ├── 2569.js
│ │ │ │ │ ├── 2600.js
│ │ │ │ │ ├── _zero_config.js
│ │ │ │ │ ├── aaSorting.js
│ │ │ │ │ ├── aaSortingFixed.js
│ │ │ │ │ ├── ajax.js
│ │ │ │ │ ├── aoColumns.bSearchable.js
│ │ │ │ │ ├── aoColumns.bSortable.js
│ │ │ │ │ ├── aoColumns.bUseRendered.js
│ │ │ │ │ ├── aoColumns.bVisible.js
│ │ │ │ │ ├── aoColumns.fnRender.js
│ │ │ │ │ ├── aoColumns.sClass.js
│ │ │ │ │ ├── aoColumns.sName.js
│ │ │ │ │ ├── aoColumns.sTitle.js
│ │ │ │ │ ├── aoColumns.sWidth.js
│ │ │ │ │ ├── aoSearchCols.js
│ │ │ │ │ ├── asStripClasses.js
│ │ │ │ │ ├── bAutoWidth.js
│ │ │ │ │ ├── bFilter.js
│ │ │ │ │ ├── bInfiniteScroll.js
│ │ │ │ │ ├── bInfo.js
│ │ │ │ │ ├── bLengthChange.js
│ │ │ │ │ ├── bPaginate.js
│ │ │ │ │ ├── bProcessing.js
│ │ │ │ │ ├── bServerSide.js
│ │ │ │ │ ├── bSort.js
│ │ │ │ │ ├── bSortClasses.js
│ │ │ │ │ ├── fnCreatedCell.js
│ │ │ │ │ ├── fnCreatedRow.js
│ │ │ │ │ ├── fnDrawCallback.js
│ │ │ │ │ ├── fnHeaderCallback.js
│ │ │ │ │ ├── fnInitComplete.js
│ │ │ │ │ ├── fnRowCallback.js
│ │ │ │ │ ├── fnServerData.js
│ │ │ │ │ ├── fnServerParams.js
│ │ │ │ │ ├── iDeferLoading.js
│ │ │ │ │ ├── iDisplayLength.js
│ │ │ │ │ ├── oLanguage.oPaginate.js
│ │ │ │ │ ├── oLanguage.sInfo.js
│ │ │ │ │ ├── oLanguage.sInfoEmpty.js
│ │ │ │ │ ├── oLanguage.sInfoPostFix.js
│ │ │ │ │ ├── oLanguage.sLengthMenu.js
│ │ │ │ │ ├── oLanguage.sProcessing.js
│ │ │ │ │ ├── oLanguage.sSearch.js
│ │ │ │ │ ├── oLanguage.sUrl.js
│ │ │ │ │ ├── oLanguage.sZeroRecords.js
│ │ │ │ │ ├── oSearch.js
│ │ │ │ │ ├── sAjaxDataProp.js
│ │ │ │ │ ├── sAjaxSource.js
│ │ │ │ │ ├── sDom.js
│ │ │ │ │ ├── sPaginationType.js
│ │ │ │ │ └── sServerMethod.js
│ │ │ │ ├── 5_ajax_objects
│ │ │ │ │ ├── _zero_config.js
│ │ │ │ │ ├── _zero_config_arrays_subobjects.js
│ │ │ │ │ ├── _zero_config_deep.js
│ │ │ │ │ ├── _zero_config_mDataProp.js
│ │ │ │ │ ├── _zero_config_null_source.js
│ │ │ │ │ ├── _zero_config_objects.js
│ │ │ │ │ ├── _zero_config_objects_subarrays.js
│ │ │ │ │ ├── aaSorting.js
│ │ │ │ │ ├── aaSortingFixed.js
│ │ │ │ │ ├── aoColumns.bSearchable.js
│ │ │ │ │ ├── aoColumns.bSortable.js
│ │ │ │ │ ├── aoColumns.bUseRendered.js
│ │ │ │ │ ├── aoColumns.bVisible.js
│ │ │ │ │ ├── aoColumns.fnRender.js
│ │ │ │ │ ├── aoColumns.iDataSort.js
│ │ │ │ │ ├── aoColumns.sClass.js
│ │ │ │ │ ├── aoColumns.sName.js
│ │ │ │ │ ├── aoColumns.sTitle.js
│ │ │ │ │ ├── aoColumns.sWidth.js
│ │ │ │ │ ├── aoSearchCols.js
│ │ │ │ │ ├── asStripClasses.js
│ │ │ │ │ ├── bAutoWidth.js
│ │ │ │ │ ├── bFilter.js
│ │ │ │ │ ├── bInfo.js
│ │ │ │ │ ├── bLengthChange.js
│ │ │ │ │ ├── bPaginate.js
│ │ │ │ │ ├── bProcessing.js
│ │ │ │ │ ├── bServerSide.js
│ │ │ │ │ ├── bSort.js
│ │ │ │ │ ├── bSortClasses.js
│ │ │ │ │ ├── fnDrawCallback.js
│ │ │ │ │ ├── fnHeaderCallback.js
│ │ │ │ │ ├── fnInitComplete.js
│ │ │ │ │ ├── fnRowCallback.js
│ │ │ │ │ ├── fnServerData.js
│ │ │ │ │ ├── iDisplayLength.js
│ │ │ │ │ ├── oLanguage.oPaginate.js
│ │ │ │ │ ├── oLanguage.sInfo.js
│ │ │ │ │ ├── oLanguage.sInfoEmpty.js
│ │ │ │ │ ├── oLanguage.sInfoPostFix.js
│ │ │ │ │ ├── oLanguage.sLengthMenu.js
│ │ │ │ │ ├── oLanguage.sProcessing.js
│ │ │ │ │ ├── oLanguage.sSearch.js
│ │ │ │ │ ├── oLanguage.sUrl.js
│ │ │ │ │ ├── oLanguage.sZeroRecords.js
│ │ │ │ │ ├── oSearch.js
│ │ │ │ │ ├── sAjaxSource.js
│ │ │ │ │ ├── sDom.js
│ │ │ │ │ └── sPaginationType.js
│ │ │ │ ├── 6776-scrolling-table-grows.js
│ │ │ │ └── 6_delayed_rendering
│ │ │ │ │ ├── _zero_config.js
│ │ │ │ │ ├── aaSorting.js
│ │ │ │ │ ├── aaSortingFixed.js
│ │ │ │ │ ├── aoColumns.bSearchable.js
│ │ │ │ │ ├── aoColumns.bSortable.js
│ │ │ │ │ ├── aoColumns.bUseRendered.js
│ │ │ │ │ ├── aoColumns.bVisible.js
│ │ │ │ │ ├── aoColumns.fnRender.js
│ │ │ │ │ ├── aoColumns.iDataSort.js
│ │ │ │ │ ├── aoColumns.sClass.js
│ │ │ │ │ ├── aoColumns.sName.js
│ │ │ │ │ ├── aoColumns.sTitle.js
│ │ │ │ │ ├── aoColumns.sWidth.js
│ │ │ │ │ ├── aoSearchCols.js
│ │ │ │ │ ├── asStripClasses.js
│ │ │ │ │ ├── bAutoWidth.js
│ │ │ │ │ ├── bFilter.js
│ │ │ │ │ ├── bInfo.js
│ │ │ │ │ ├── bLengthChange.js
│ │ │ │ │ ├── bPaginate.js
│ │ │ │ │ ├── bProcessing.js
│ │ │ │ │ ├── bServerSide.js
│ │ │ │ │ ├── bSort.js
│ │ │ │ │ ├── bSortClasses.js
│ │ │ │ │ ├── fnDrawCallback.js
│ │ │ │ │ ├── fnHeaderCallback.js
│ │ │ │ │ ├── fnInitComplete.js
│ │ │ │ │ ├── fnRowCallback.js
│ │ │ │ │ ├── fnServerData.js
│ │ │ │ │ ├── iDisplayLength.js
│ │ │ │ │ ├── oLanguage.oPaginate.js
│ │ │ │ │ ├── oLanguage.sInfo.js
│ │ │ │ │ ├── oLanguage.sInfoEmpty.js
│ │ │ │ │ ├── oLanguage.sInfoPostFix.js
│ │ │ │ │ ├── oLanguage.sLengthMenu.js
│ │ │ │ │ ├── oLanguage.sProcessing.js
│ │ │ │ │ ├── oLanguage.sSearch.js
│ │ │ │ │ ├── oLanguage.sUrl.js
│ │ │ │ │ ├── oLanguage.sZeroRecords.js
│ │ │ │ │ ├── oSearch.js
│ │ │ │ │ ├── sAjaxDataProp.js
│ │ │ │ │ ├── sAjaxDataProp2.js
│ │ │ │ │ ├── sAjaxSource.js
│ │ │ │ │ ├── sDom.js
│ │ │ │ │ └── sPaginationType.js
│ │ │ │ └── unit_test.js
│ │ └── package.json
│ └── jquery
│ │ ├── .bower.json
│ │ ├── MIT-LICENSE.txt
│ │ ├── bower.json
│ │ ├── dist
│ │ ├── jquery.js
│ │ ├── jquery.min.js
│ │ └── jquery.min.map
│ │ └── src
│ │ ├── ajax.js
│ │ ├── ajax
│ │ ├── jsonp.js
│ │ ├── load.js
│ │ ├── parseJSON.js
│ │ ├── parseXML.js
│ │ ├── script.js
│ │ ├── var
│ │ │ ├── nonce.js
│ │ │ └── rquery.js
│ │ └── xhr.js
│ │ ├── attributes.js
│ │ ├── attributes
│ │ ├── attr.js
│ │ ├── classes.js
│ │ ├── prop.js
│ │ ├── support.js
│ │ └── val.js
│ │ ├── callbacks.js
│ │ ├── core.js
│ │ ├── core
│ │ ├── access.js
│ │ ├── init.js
│ │ ├── parseHTML.js
│ │ ├── ready.js
│ │ └── var
│ │ │ └── rsingleTag.js
│ │ ├── css.js
│ │ ├── css
│ │ ├── addGetHookIf.js
│ │ ├── curCSS.js
│ │ ├── defaultDisplay.js
│ │ ├── hiddenVisibleSelectors.js
│ │ ├── support.js
│ │ ├── swap.js
│ │ └── var
│ │ │ ├── cssExpand.js
│ │ │ ├── getStyles.js
│ │ │ ├── isHidden.js
│ │ │ ├── rmargin.js
│ │ │ └── rnumnonpx.js
│ │ ├── data.js
│ │ ├── data
│ │ ├── Data.js
│ │ ├── accepts.js
│ │ └── var
│ │ │ ├── data_priv.js
│ │ │ └── data_user.js
│ │ ├── deferred.js
│ │ ├── deprecated.js
│ │ ├── dimensions.js
│ │ ├── effects.js
│ │ ├── effects
│ │ ├── Tween.js
│ │ └── animatedSelector.js
│ │ ├── event.js
│ │ ├── event
│ │ ├── alias.js
│ │ └── support.js
│ │ ├── exports
│ │ ├── amd.js
│ │ └── global.js
│ │ ├── intro.js
│ │ ├── jquery.js
│ │ ├── manipulation.js
│ │ ├── manipulation
│ │ ├── _evalUrl.js
│ │ ├── support.js
│ │ └── var
│ │ │ └── rcheckableType.js
│ │ ├── offset.js
│ │ ├── outro.js
│ │ ├── queue.js
│ │ ├── queue
│ │ └── delay.js
│ │ ├── selector-native.js
│ │ ├── selector-sizzle.js
│ │ ├── selector.js
│ │ ├── serialize.js
│ │ ├── sizzle
│ │ └── dist
│ │ │ ├── sizzle.js
│ │ │ ├── sizzle.min.js
│ │ │ └── sizzle.min.map
│ │ ├── traversing.js
│ │ ├── traversing
│ │ ├── findFilter.js
│ │ └── var
│ │ │ └── rneedsContext.js
│ │ ├── var
│ │ ├── arr.js
│ │ ├── class2type.js
│ │ ├── concat.js
│ │ ├── hasOwn.js
│ │ ├── indexOf.js
│ │ ├── pnum.js
│ │ ├── push.js
│ │ ├── rnotwhite.js
│ │ ├── slice.js
│ │ ├── strundefined.js
│ │ ├── support.js
│ │ └── toString.js
│ │ └── wrap.js
├── client.html
├── js
│ ├── client-example.jsx
│ ├── client.js
│ ├── components
│ │ ├── BackbonePagination.jsx
│ │ ├── FilterSearch.jsx
│ │ ├── FilterablePageableTable.jsx
│ │ ├── PageableTable.jsx
│ │ └── Table.jsx
│ ├── server-example.jsx
│ └── server.js
├── preprocessor.js
└── server.html
├── bower.json
├── gulpfile.js
├── index.js
└── package.json
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "app/bower_components"
3 | }
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | node_modules/
3 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "0.10"
4 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "version": "3.2.0",
5 | "keywords": [
6 | "css",
7 | "js",
8 | "less",
9 | "mobile-first",
10 | "responsive",
11 | "front-end",
12 | "framework",
13 | "web"
14 | ],
15 | "homepage": "http://getbootstrap.com",
16 | "main": [
17 | "less/bootstrap.less",
18 | "dist/css/bootstrap.css",
19 | "dist/js/bootstrap.js",
20 | "dist/fonts/glyphicons-halflings-regular.eot",
21 | "dist/fonts/glyphicons-halflings-regular.svg",
22 | "dist/fonts/glyphicons-halflings-regular.ttf",
23 | "dist/fonts/glyphicons-halflings-regular.woff"
24 | ],
25 | "ignore": [
26 | ".*",
27 | "_config.yml",
28 | "CNAME",
29 | "composer.json",
30 | "CONTRIBUTING.md",
31 | "docs",
32 | "js/tests",
33 | "test-infra"
34 | ],
35 | "dependencies": {
36 | "jquery": ">= 1.9.0"
37 | },
38 | "_release": "3.2.0",
39 | "_resolution": {
40 | "type": "version",
41 | "tag": "v3.2.0",
42 | "commit": "c068162161154a4b85110ea1e7dd3d7897ce2b72"
43 | },
44 | "_source": "git://github.com/twbs/bootstrap.git",
45 | "_target": "~3.2.0",
46 | "_originalSource": "bootstrap"
47 | }
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2014 Twitter, Inc
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "version": "3.2.0",
5 | "keywords": [
6 | "css",
7 | "js",
8 | "less",
9 | "mobile-first",
10 | "responsive",
11 | "front-end",
12 | "framework",
13 | "web"
14 | ],
15 | "homepage": "http://getbootstrap.com",
16 | "main": [
17 | "less/bootstrap.less",
18 | "dist/css/bootstrap.css",
19 | "dist/js/bootstrap.js",
20 | "dist/fonts/glyphicons-halflings-regular.eot",
21 | "dist/fonts/glyphicons-halflings-regular.svg",
22 | "dist/fonts/glyphicons-halflings-regular.ttf",
23 | "dist/fonts/glyphicons-halflings-regular.woff"
24 | ],
25 | "ignore": [
26 | ".*",
27 | "_config.yml",
28 | "CNAME",
29 | "composer.json",
30 | "CONTRIBUTING.md",
31 | "docs",
32 | "js/tests",
33 | "test-infra"
34 | ],
35 | "dependencies": {
36 | "jquery": ">= 1.9.0"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for Glyphicons data generation
3 | * http://getbootstrap.com
4 | * Copyright 2014 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 | 'use strict';
8 | var fs = require('fs');
9 |
10 | module.exports = function generateGlyphiconsData(grunt) {
11 | // Pass encoding, utf8, so `readFileSync` will return a string instead of a
12 | // buffer
13 | var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8');
14 | var glyphiconsLines = glyphiconsFile.split('\n');
15 |
16 | // Use any line that starts with ".glyphicon-" and capture the class name
17 | var iconClassName = /^\.(glyphicon-[^\s]+)/;
18 | var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' +
19 | '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n';
20 | var glyphiconsYml = 'docs/_data/glyphicons.yml';
21 | for (var i = 0, len = glyphiconsLines.length; i < len; i++) {
22 | var match = glyphiconsLines[i].match(iconClassName);
23 |
24 | if (match !== null) {
25 | glyphiconsData += '- ' + match[1] + '\n';
26 | }
27 | }
28 |
29 | // Create the `_data` directory if it doesn't already exist
30 | if (!fs.existsSync('docs/_data')) {
31 | fs.mkdirSync('docs/_data');
32 | }
33 |
34 | try {
35 | fs.writeFileSync(glyphiconsYml, glyphiconsData);
36 | }
37 | catch (err) {
38 | grunt.fail.warn(err);
39 | }
40 | grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.');
41 | };
42 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/grunt/bs-raw-files-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for generating raw-files.min.js for the Customizer
3 | * http://getbootstrap.com
4 | * Copyright 2014 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | /* global btoa: true */
9 |
10 | 'use strict';
11 | var fs = require('fs');
12 | var btoa = require('btoa');
13 | var glob = require('glob');
14 |
15 | function getFiles(type) {
16 | var files = {};
17 | var recursive = (type === 'less');
18 | var globExpr = (recursive ? '/**/*' : '/*');
19 | glob.sync(type + globExpr)
20 | .filter(function (path) {
21 | return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path);
22 | })
23 | .forEach(function (fullPath) {
24 | var relativePath = fullPath.replace(/^[^/]+\//, '');
25 | files[relativePath] = (type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8'));
26 | });
27 | return 'var __' + type + ' = ' + JSON.stringify(files) + '\n';
28 | }
29 |
30 | module.exports = function generateRawFilesJs(grunt, banner) {
31 | if (!banner) {
32 | banner = '';
33 | }
34 | var dirs = ['js', 'less', 'fonts'];
35 | var files = banner + dirs.map(getFiles).reduce(function (combined, file) {
36 | return combined + file;
37 | }, '');
38 | var rawFilesJs = 'docs/assets/js/raw-files.min.js';
39 | try {
40 | fs.writeFileSync(rawFilesJs, files);
41 | }
42 | catch (err) {
43 | grunt.fail.warn(err);
44 | }
45 | grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.');
46 | };
47 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/grunt/sauce_browsers.yml:
--------------------------------------------------------------------------------
1 | [
2 | # Docs: https://saucelabs.com/docs/platforms/webdriver
3 |
4 | {
5 | browserName: "safari",
6 | platform: "OS X 10.9"
7 | },
8 | {
9 | browserName: "chrome",
10 | platform: "OS X 10.9"
11 | },
12 | {
13 | browserName: "firefox",
14 | platform: "OS X 10.9"
15 | },
16 |
17 | # Mac Opera not currently supported by Sauce Labs
18 |
19 | {
20 | browserName: "internet explorer",
21 | version: "11",
22 | platform: "Windows 8.1"
23 | },
24 | {
25 | browserName: "internet explorer",
26 | version: "10",
27 | platform: "Windows 8"
28 | },
29 | {
30 | browserName: "internet explorer",
31 | version: "9",
32 | platform: "Windows 7"
33 | },
34 | {
35 | browserName: "internet explorer",
36 | version: "8",
37 | platform: "Windows 7"
38 | },
39 |
40 | # { # Unofficial
41 | # browserName: "internet explorer",
42 | # version: "7",
43 | # platform: "Windows XP"
44 | # },
45 |
46 | {
47 | browserName: "chrome",
48 | platform: "Windows 8.1"
49 | },
50 | {
51 | browserName: "firefox",
52 | platform: "Windows 8.1"
53 | },
54 |
55 | # Win Opera 15+ not currently supported by Sauce Labs
56 |
57 | {
58 | browserName: "iphone",
59 | platform: "OS X 10.9",
60 | version: "7.1"
61 | },
62 |
63 | # iOS Chrome not currently supported by Sauce Labs
64 |
65 | # Linux (unofficial)
66 | {
67 | browserName: "chrome",
68 | platform: "Linux"
69 | },
70 | {
71 | browserName: "firefox",
72 | platform: "Linux"
73 | }
74 |
75 | # Android Chrome not currently supported by Sauce Labs
76 |
77 | # { # Android Browser (super-unofficial)
78 | # browserName: "android",
79 | # version: "4.0",
80 | # platform: "Linux"
81 | # }
82 | ]
83 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/alerts.less:
--------------------------------------------------------------------------------
1 | //
2 | // Alerts
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // -------------------------
8 |
9 | .alert {
10 | padding: @alert-padding;
11 | margin-bottom: @line-height-computed;
12 | border: 1px solid transparent;
13 | border-radius: @alert-border-radius;
14 |
15 | // Headings for larger alerts
16 | h4 {
17 | margin-top: 0;
18 | // Specified for the h4 to prevent conflicts of changing @headings-color
19 | color: inherit;
20 | }
21 | // Provide class for links that match alerts
22 | .alert-link {
23 | font-weight: @alert-link-font-weight;
24 | }
25 |
26 | // Improve alignment and spacing of inner content
27 | > p,
28 | > ul {
29 | margin-bottom: 0;
30 | }
31 | > p + p {
32 | margin-top: 5px;
33 | }
34 | }
35 |
36 | // Dismissible alerts
37 | //
38 | // Expand the right padding and account for the close button's positioning.
39 |
40 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
41 | .alert-dismissible {
42 | padding-right: (@alert-padding + 20);
43 |
44 | // Adjust close link position
45 | .close {
46 | position: relative;
47 | top: -2px;
48 | right: -21px;
49 | color: inherit;
50 | }
51 | }
52 |
53 | // Alternate styles
54 | //
55 | // Generate contextual modifier classes for colorizing the alert.
56 |
57 | .alert-success {
58 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
59 | }
60 | .alert-info {
61 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
62 | }
63 | .alert-warning {
64 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
65 | }
66 | .alert-danger {
67 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
68 | }
69 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/badges.less:
--------------------------------------------------------------------------------
1 | //
2 | // Badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .badge {
8 | display: inline-block;
9 | min-width: 10px;
10 | padding: 3px 7px;
11 | font-size: @font-size-small;
12 | font-weight: @badge-font-weight;
13 | color: @badge-color;
14 | line-height: @badge-line-height;
15 | vertical-align: baseline;
16 | white-space: nowrap;
17 | text-align: center;
18 | background-color: @badge-bg;
19 | border-radius: @badge-border-radius;
20 |
21 | // Empty badges collapse automatically (not available in IE8)
22 | &:empty {
23 | display: none;
24 | }
25 |
26 | // Quick fix for badges in buttons
27 | .btn & {
28 | position: relative;
29 | top: -1px;
30 | }
31 | .btn-xs & {
32 | top: 0;
33 | padding: 1px 5px;
34 | }
35 |
36 | // Hover state, but only for links
37 | a& {
38 | &:hover,
39 | &:focus {
40 | color: @badge-link-hover-color;
41 | text-decoration: none;
42 | cursor: pointer;
43 | }
44 | }
45 |
46 | // Account for badges in navs
47 | a.list-group-item.active > &,
48 | .nav-pills > .active > a > & {
49 | color: @badge-active-color;
50 | background-color: @badge-active-bg;
51 | }
52 | .nav-pills > li > a > & {
53 | margin-left: 3px;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/bootstrap.less:
--------------------------------------------------------------------------------
1 | // Core variables and mixins
2 | @import "variables.less";
3 | @import "mixins.less";
4 |
5 | // Reset and dependencies
6 | @import "normalize.less";
7 | @import "print.less";
8 | @import "glyphicons.less";
9 |
10 | // Core CSS
11 | @import "scaffolding.less";
12 | @import "type.less";
13 | @import "code.less";
14 | @import "grid.less";
15 | @import "tables.less";
16 | @import "forms.less";
17 | @import "buttons.less";
18 |
19 | // Components
20 | @import "component-animations.less";
21 | @import "dropdowns.less";
22 | @import "button-groups.less";
23 | @import "input-groups.less";
24 | @import "navs.less";
25 | @import "navbar.less";
26 | @import "breadcrumbs.less";
27 | @import "pagination.less";
28 | @import "pager.less";
29 | @import "labels.less";
30 | @import "badges.less";
31 | @import "jumbotron.less";
32 | @import "thumbnails.less";
33 | @import "alerts.less";
34 | @import "progress-bars.less";
35 | @import "media.less";
36 | @import "list-group.less";
37 | @import "panels.less";
38 | @import "responsive-embed.less";
39 | @import "wells.less";
40 | @import "close.less";
41 |
42 | // Components w/ JavaScript
43 | @import "modals.less";
44 | @import "tooltip.less";
45 | @import "popovers.less";
46 | @import "carousel.less";
47 |
48 | // Utility classes
49 | @import "utilities.less";
50 | @import "responsive-utilities.less";
51 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
8 | margin-bottom: @line-height-computed;
9 | list-style: none;
10 | background-color: @breadcrumb-bg;
11 | border-radius: @border-radius-base;
12 |
13 | > li {
14 | display: inline-block;
15 |
16 | + li:before {
17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18 | padding: 0 5px;
19 | color: @breadcrumb-color;
20 | }
21 | }
22 |
23 | > .active {
24 | color: @breadcrumb-active-color;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: (@font-size-base * 1.5);
9 | font-weight: @close-font-weight;
10 | line-height: 1;
11 | color: @close-color;
12 | text-shadow: @close-text-shadow;
13 | .opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: @close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | .opacity(.5);
21 | }
22 |
23 | // Additional properties for button version
24 | // iOS requires the button element instead of an anchor tag.
25 | // If you want the anchor version, it requires `href="#"`.
26 | button& {
27 | padding: 0;
28 | cursor: pointer;
29 | background: transparent;
30 | border: 0;
31 | -webkit-appearance: none;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/code.less:
--------------------------------------------------------------------------------
1 | //
2 | // Code (inline and block)
3 | // --------------------------------------------------
4 |
5 |
6 | // Inline and block code styles
7 | code,
8 | kbd,
9 | pre,
10 | samp {
11 | font-family: @font-family-monospace;
12 | }
13 |
14 | // Inline code
15 | code {
16 | padding: 2px 4px;
17 | font-size: 90%;
18 | color: @code-color;
19 | background-color: @code-bg;
20 | border-radius: @border-radius-base;
21 | }
22 |
23 | // User input typically entered via keyboard
24 | kbd {
25 | padding: 2px 4px;
26 | font-size: 90%;
27 | color: @kbd-color;
28 | background-color: @kbd-bg;
29 | border-radius: @border-radius-small;
30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
31 |
32 | kbd {
33 | padding: 0;
34 | font-size: 100%;
35 | box-shadow: none;
36 | }
37 | }
38 |
39 | // Blocks of code
40 | pre {
41 | display: block;
42 | padding: ((@line-height-computed - 1) / 2);
43 | margin: 0 0 (@line-height-computed / 2);
44 | font-size: (@font-size-base - 1); // 14px to 13px
45 | line-height: @line-height-base;
46 | word-break: break-all;
47 | word-wrap: break-word;
48 | color: @pre-color;
49 | background-color: @pre-bg;
50 | border: 1px solid @pre-border-color;
51 | border-radius: @border-radius-base;
52 |
53 | // Account for some code outputs that place code tags in pre tags
54 | code {
55 | padding: 0;
56 | font-size: inherit;
57 | color: inherit;
58 | white-space: pre-wrap;
59 | background-color: transparent;
60 | border-radius: 0;
61 | }
62 | }
63 |
64 | // Enable scrollable blocks of code
65 | .pre-scrollable {
66 | max-height: @pre-scrollable-max-height;
67 | overflow-y: scroll;
68 | }
69 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/component-animations.less:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | .transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 |
21 | &.in { display: block; }
22 | tr&.in { display: table-row; }
23 | tbody&.in { display: table-row-group; }
24 | }
25 |
26 | .collapsing {
27 | position: relative;
28 | height: 0;
29 | overflow: hidden;
30 | .transition(height .35s ease);
31 | }
32 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/grid.less:
--------------------------------------------------------------------------------
1 | //
2 | // Grid system
3 | // --------------------------------------------------
4 |
5 |
6 | // Container widths
7 | //
8 | // Set the container width, and override it for fixed navbars in media queries.
9 |
10 | .container {
11 | .container-fixed();
12 |
13 | @media (min-width: @screen-sm-min) {
14 | width: @container-sm;
15 | }
16 | @media (min-width: @screen-md-min) {
17 | width: @container-md;
18 | }
19 | @media (min-width: @screen-lg-min) {
20 | width: @container-lg;
21 | }
22 | }
23 |
24 |
25 | // Fluid container
26 | //
27 | // Utilizes the mixin meant for fixed width containers, but without any defined
28 | // width for fluid, full width layouts.
29 |
30 | .container-fluid {
31 | .container-fixed();
32 | }
33 |
34 |
35 | // Row
36 | //
37 | // Rows contain and clear the floats of your columns.
38 |
39 | .row {
40 | .make-row();
41 | }
42 |
43 |
44 | // Columns
45 | //
46 | // Common styles for small and large grid columns
47 |
48 | .make-grid-columns();
49 |
50 |
51 | // Extra small grid
52 | //
53 | // Columns, offsets, pushes, and pulls for extra small devices like
54 | // smartphones.
55 |
56 | .make-grid(xs);
57 |
58 |
59 | // Small grid
60 | //
61 | // Columns, offsets, pushes, and pulls for the small device range, from phones
62 | // to tablets.
63 |
64 | @media (min-width: @screen-sm-min) {
65 | .make-grid(sm);
66 | }
67 |
68 |
69 | // Medium grid
70 | //
71 | // Columns, offsets, pushes, and pulls for the desktop device range.
72 |
73 | @media (min-width: @screen-md-min) {
74 | .make-grid(md);
75 | }
76 |
77 |
78 | // Large grid
79 | //
80 | // Columns, offsets, pushes, and pulls for the large desktop device range.
81 |
82 | @media (min-width: @screen-lg-min) {
83 | .make-grid(lg);
84 | }
85 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/jumbotron.less:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding: @jumbotron-padding;
8 | margin-bottom: @jumbotron-padding;
9 | color: @jumbotron-color;
10 | background-color: @jumbotron-bg;
11 |
12 | h1,
13 | .h1 {
14 | color: @jumbotron-heading-color;
15 | }
16 | p {
17 | margin-bottom: (@jumbotron-padding / 2);
18 | font-size: @jumbotron-font-size;
19 | font-weight: 200;
20 | }
21 |
22 | > hr {
23 | border-top-color: darken(@jumbotron-bg, 10%);
24 | }
25 |
26 | .container & {
27 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
28 | }
29 |
30 | .container {
31 | max-width: 100%;
32 | }
33 |
34 | @media screen and (min-width: @screen-sm-min) {
35 | padding-top: (@jumbotron-padding * 1.6);
36 | padding-bottom: (@jumbotron-padding * 1.6);
37 |
38 | .container & {
39 | padding-left: (@jumbotron-padding * 2);
40 | padding-right: (@jumbotron-padding * 2);
41 | }
42 |
43 | h1,
44 | .h1 {
45 | font-size: (@font-size-base * 4.5);
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/labels.less:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | // --------------------------------------------------
4 |
5 | .label {
6 | display: inline;
7 | padding: .2em .6em .3em;
8 | font-size: 75%;
9 | font-weight: bold;
10 | line-height: 1;
11 | color: @label-color;
12 | text-align: center;
13 | white-space: nowrap;
14 | vertical-align: baseline;
15 | border-radius: .25em;
16 |
17 | // Add hover effects, but only for links
18 | a& {
19 | &:hover,
20 | &:focus {
21 | color: @label-link-hover-color;
22 | text-decoration: none;
23 | cursor: pointer;
24 | }
25 | }
26 |
27 | // Empty labels collapse automatically (not available in IE8)
28 | &:empty {
29 | display: none;
30 | }
31 |
32 | // Quick fix for labels in buttons
33 | .btn & {
34 | position: relative;
35 | top: -1px;
36 | }
37 | }
38 |
39 | // Colors
40 | // Contextual variations (linked labels get darker on :hover)
41 |
42 | .label-default {
43 | .label-variant(@label-default-bg);
44 | }
45 |
46 | .label-primary {
47 | .label-variant(@label-primary-bg);
48 | }
49 |
50 | .label-success {
51 | .label-variant(@label-success-bg);
52 | }
53 |
54 | .label-info {
55 | .label-variant(@label-info-bg);
56 | }
57 |
58 | .label-warning {
59 | .label-variant(@label-warning-bg);
60 | }
61 |
62 | .label-danger {
63 | .label-variant(@label-danger-bg);
64 | }
65 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/media.less:
--------------------------------------------------------------------------------
1 | // Media objects
2 | // Source: http://stubbornella.org/content/?p=497
3 | // --------------------------------------------------
4 |
5 |
6 | // Common styles
7 | // -------------------------
8 |
9 | // Clear the floats
10 | .media,
11 | .media-body {
12 | overflow: hidden;
13 | zoom: 1;
14 | }
15 |
16 | // Proper spacing between instances of .media
17 | .media,
18 | .media .media {
19 | margin-top: 15px;
20 | }
21 | .media:first-child {
22 | margin-top: 0;
23 | }
24 |
25 | // For images and videos, set to block
26 | .media-object {
27 | display: block;
28 | }
29 |
30 | // Reset margins on headings for tighter default spacing
31 | .media-heading {
32 | margin: 0 0 5px;
33 | }
34 |
35 |
36 | // Media image alignment
37 | // -------------------------
38 |
39 | .media {
40 | > .pull-left {
41 | margin-right: 10px;
42 | }
43 | > .pull-right {
44 | margin-left: 10px;
45 | }
46 | }
47 |
48 |
49 | // Media list variation
50 | // -------------------------
51 |
52 | // Undo default ul/ol styles
53 | .media-list {
54 | padding-left: 0;
55 | list-style: none;
56 | }
57 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------------------------------
3 |
4 | // Utilities
5 | @import "mixins/hide-text.less";
6 | @import "mixins/opacity.less";
7 | @import "mixins/image.less";
8 | @import "mixins/labels.less";
9 | @import "mixins/reset-filter.less";
10 | @import "mixins/resize.less";
11 | @import "mixins/responsive-visibility.less";
12 | @import "mixins/size.less";
13 | @import "mixins/tab-focus.less";
14 | @import "mixins/text-emphasis.less";
15 | @import "mixins/text-overflow.less";
16 | @import "mixins/vendor-prefixes.less";
17 |
18 | // Components
19 | @import "mixins/alerts.less";
20 | @import "mixins/buttons.less";
21 | @import "mixins/panels.less";
22 | @import "mixins/pagination.less";
23 | @import "mixins/list-group.less";
24 | @import "mixins/nav-divider.less";
25 | @import "mixins/forms.less";
26 | @import "mixins/progress-bar.less";
27 | @import "mixins/table-row.less";
28 |
29 | // Skins
30 | @import "mixins/background-variant.less";
31 | @import "mixins/border-radius.less";
32 | @import "mixins/gradients.less";
33 |
34 | // Layout
35 | @import "mixins/clearfix.less";
36 | @import "mixins/center-block.less";
37 | @import "mixins/nav-vertical-align.less";
38 | @import "mixins/grid-framework.less";
39 | @import "mixins/grid.less";
40 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/alerts.less:
--------------------------------------------------------------------------------
1 | // Alerts
2 |
3 | .alert-variant(@background; @border; @text-color) {
4 | background-color: @background;
5 | border-color: @border;
6 | color: @text-color;
7 |
8 | hr {
9 | border-top-color: darken(@border, 5%);
10 | }
11 | .alert-link {
12 | color: darken(@text-color, 10%);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/background-variant.less:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | .bg-variant(@color) {
4 | background-color: @color;
5 | a&:hover {
6 | background-color: darken(@color, 10%);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/border-radius.less:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | .border-top-radius(@radius) {
4 | border-top-right-radius: @radius;
5 | border-top-left-radius: @radius;
6 | }
7 | .border-right-radius(@radius) {
8 | border-bottom-right-radius: @radius;
9 | border-top-right-radius: @radius;
10 | }
11 | .border-bottom-radius(@radius) {
12 | border-bottom-right-radius: @radius;
13 | border-bottom-left-radius: @radius;
14 | }
15 | .border-left-radius(@radius) {
16 | border-bottom-left-radius: @radius;
17 | border-top-left-radius: @radius;
18 | }
19 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/buttons.less:
--------------------------------------------------------------------------------
1 | // Button variants
2 | //
3 | // Easily pump out default styles, as well as :hover, :focus, :active,
4 | // and disabled options for all buttons
5 |
6 | .button-variant(@color; @background; @border) {
7 | color: @color;
8 | background-color: @background;
9 | border-color: @border;
10 |
11 | &:hover,
12 | &:focus,
13 | &:active,
14 | &.active,
15 | .open > .dropdown-toggle& {
16 | color: @color;
17 | background-color: darken(@background, 10%);
18 | border-color: darken(@border, 12%);
19 | }
20 | &:active,
21 | &.active,
22 | .open > .dropdown-toggle& {
23 | background-image: none;
24 | }
25 | &.disabled,
26 | &[disabled],
27 | fieldset[disabled] & {
28 | &,
29 | &:hover,
30 | &:focus,
31 | &:active,
32 | &.active {
33 | background-color: @background;
34 | border-color: @border;
35 | }
36 | }
37 |
38 | .badge {
39 | color: @background;
40 | background-color: @color;
41 | }
42 | }
43 |
44 | // Button sizes
45 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
46 | padding: @padding-vertical @padding-horizontal;
47 | font-size: @font-size;
48 | line-height: @line-height;
49 | border-radius: @border-radius;
50 | }
51 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/center-block.less:
--------------------------------------------------------------------------------
1 | // Center-align a block level element
2 |
3 | .center-block() {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | }
8 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/clearfix.less:
--------------------------------------------------------------------------------
1 | // Clearfix
2 | //
3 | // For modern browsers
4 | // 1. The space content is one way to avoid an Opera bug when the
5 | // contenteditable attribute is included anywhere else in the document.
6 | // Otherwise it causes space to appear at the top and bottom of elements
7 | // that are clearfixed.
8 | // 2. The use of `table` rather than `block` is only necessary if using
9 | // `:before` to contain the top-margins of child elements.
10 | //
11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12 |
13 | .clearfix() {
14 | &:before,
15 | &:after {
16 | content: " "; // 1
17 | display: table; // 2
18 | }
19 | &:after {
20 | clear: both;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/hide-text.less:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | //
3 | // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
4 | // mixins being reused as classes with the same name, this doesn't hold up. As
5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6 | //
7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8 |
9 | // Deprecated as of v3.0.1 (will be removed in v4)
10 | .hide-text() {
11 | font: ~"0/0" a;
12 | color: transparent;
13 | text-shadow: none;
14 | background-color: transparent;
15 | border: 0;
16 | }
17 |
18 | // New mixin to use as of v3.0.1
19 | .text-hide() {
20 | .hide-text();
21 | }
22 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/image.less:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 | .img-responsive(@display: block) {
10 | display: @display;
11 | width: 100% \9; // Force IE10 and below to size SVG images correctly
12 | max-width: 100%; // Part 1: Set a maximum relative to the parent
13 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
14 | }
15 |
16 |
17 | // Retina image
18 | //
19 | // Short retina mixin for setting background-image and -size. Note that the
20 | // spelling of `min--moz-device-pixel-ratio` is intentional.
21 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
22 | background-image: url("@{file-1x}");
23 |
24 | @media
25 | only screen and (-webkit-min-device-pixel-ratio: 2),
26 | only screen and ( min--moz-device-pixel-ratio: 2),
27 | only screen and ( -o-min-device-pixel-ratio: 2/1),
28 | only screen and ( min-device-pixel-ratio: 2),
29 | only screen and ( min-resolution: 192dpi),
30 | only screen and ( min-resolution: 2dppx) {
31 | background-image: url("@{file-2x}");
32 | background-size: @width-1x @height-1x;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/labels.less:
--------------------------------------------------------------------------------
1 | // Labels
2 |
3 | .label-variant(@color) {
4 | background-color: @color;
5 |
6 | &[href] {
7 | &:hover,
8 | &:focus {
9 | background-color: darken(@color, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/list-group.less:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | .list-group-item-variant(@state; @background; @color) {
4 | .list-group-item-@{state} {
5 | color: @color;
6 | background-color: @background;
7 |
8 | a& {
9 | color: @color;
10 |
11 | .list-group-item-heading {
12 | color: inherit;
13 | }
14 |
15 | &:hover,
16 | &:focus {
17 | color: @color;
18 | background-color: darken(@background, 5%);
19 | }
20 | &.active,
21 | &.active:hover,
22 | &.active:focus {
23 | color: #fff;
24 | background-color: @color;
25 | border-color: @color;
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/nav-divider.less:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | .nav-divider(@color: #e5e5e5) {
6 | height: 1px;
7 | margin: ((@line-height-computed / 2) - 1) 0;
8 | overflow: hidden;
9 | background-color: @color;
10 | }
11 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/nav-vertical-align.less:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | .navbar-vertical-align(@element-height) {
7 | margin-top: ((@navbar-height - @element-height) / 2);
8 | margin-bottom: ((@navbar-height - @element-height) / 2);
9 | }
10 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/opacity.less:
--------------------------------------------------------------------------------
1 | // Opacity
2 |
3 | .opacity(@opacity) {
4 | opacity: @opacity;
5 | // IE8 filter
6 | @opacity-ie: (@opacity * 100);
7 | filter: ~"alpha(opacity=@{opacity-ie})";
8 | }
9 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/pagination.less:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
4 | > li {
5 | > a,
6 | > span {
7 | padding: @padding-vertical @padding-horizontal;
8 | font-size: @font-size;
9 | }
10 | &:first-child {
11 | > a,
12 | > span {
13 | .border-left-radius(@border-radius);
14 | }
15 | }
16 | &:last-child {
17 | > a,
18 | > span {
19 | .border-right-radius(@border-radius);
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/panels.less:
--------------------------------------------------------------------------------
1 | // Panels
2 |
3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
4 | border-color: @border;
5 |
6 | & > .panel-heading {
7 | color: @heading-text-color;
8 | background-color: @heading-bg-color;
9 | border-color: @heading-border;
10 |
11 | + .panel-collapse > .panel-body {
12 | border-top-color: @border;
13 | }
14 | .badge {
15 | color: @heading-bg-color;
16 | background-color: @heading-text-color;
17 | }
18 | }
19 | & > .panel-footer {
20 | + .panel-collapse > .panel-body {
21 | border-bottom-color: @border;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/progress-bar.less:
--------------------------------------------------------------------------------
1 | // Progress bars
2 |
3 | .progress-bar-variant(@color) {
4 | background-color: @color;
5 |
6 | // Deprecated parent class requirement as of v3.2.0
7 | .progress-striped & {
8 | #gradient > .striped();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/reset-filter.less:
--------------------------------------------------------------------------------
1 | // Reset filters for IE
2 | //
3 | // When you need to remove a gradient background, do not forget to use this to reset
4 | // the IE filter for IE9 and below.
5 |
6 | .reset-filter() {
7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
8 | }
9 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/resize.less:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | .resizable(@direction) {
4 | resize: @direction; // Options: horizontal, vertical, both
5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6 | }
7 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/responsive-visibility.less:
--------------------------------------------------------------------------------
1 | // Responsive utilities
2 |
3 | //
4 | // More easily include all the states for responsive-utilities.less.
5 | .responsive-visibility() {
6 | display: block !important;
7 | table& { display: table; }
8 | tr& { display: table-row !important; }
9 | th&,
10 | td& { display: table-cell !important; }
11 | }
12 |
13 | .responsive-invisibility() {
14 | display: none !important;
15 | }
16 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/size.less:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | .size(@width; @height) {
4 | width: @width;
5 | height: @height;
6 | }
7 |
8 | .square(@size) {
9 | .size(@size; @size);
10 | }
11 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/tab-focus.less:
--------------------------------------------------------------------------------
1 | // WebKit-style focus
2 |
3 | .tab-focus() {
4 | // Default
5 | outline: thin dotted;
6 | // WebKit
7 | outline: 5px auto -webkit-focus-ring-color;
8 | outline-offset: -2px;
9 | }
10 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/table-row.less:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | .table-row-variant(@state; @background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table > thead > tr,
7 | .table > tbody > tr,
8 | .table > tfoot > tr {
9 | > td.@{state},
10 | > th.@{state},
11 | &.@{state} > td,
12 | &.@{state} > th {
13 | background-color: @background;
14 | }
15 | }
16 |
17 | // Hover states for `.table-hover`
18 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
19 | .table-hover > tbody > tr {
20 | > td.@{state}:hover,
21 | > th.@{state}:hover,
22 | &.@{state}:hover > td,
23 | &:hover > .@{state},
24 | &.@{state}:hover > th {
25 | background-color: darken(@background, 5%);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/text-emphasis.less:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | .text-emphasis-variant(@color) {
4 | color: @color;
5 | a&:hover {
6 | color: darken(@color, 10%);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/mixins/text-overflow.less:
--------------------------------------------------------------------------------
1 | // Text overflow
2 | // Requires inline-block or block for proper styling
3 |
4 | .text-overflow() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: @line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | &:extend(.clearfix all);
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: @pager-bg;
19 | border: 1px solid @pager-border;
20 | border-radius: @pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: @pager-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: @pager-disabled-color;
50 | background-color: @pager-bg;
51 | cursor: not-allowed;
52 | }
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/responsive-embed.less:
--------------------------------------------------------------------------------
1 | // Embeds responsive
2 | //
3 | // Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 | .embed-responsive {
6 | position: relative;
7 | display: block;
8 | height: 0;
9 | padding: 0;
10 | overflow: hidden;
11 |
12 | .embed-responsive-item,
13 | iframe,
14 | embed,
15 | object {
16 | position: absolute;
17 | top: 0;
18 | left: 0;
19 | bottom: 0;
20 | height: 100%;
21 | width: 100%;
22 | border: 0;
23 | }
24 |
25 | // Modifier class for 16:9 aspect ratio
26 | &.embed-responsive-16by9 {
27 | padding-bottom: 56.25%;
28 | }
29 |
30 | // Modifier class for 4:3 aspect ratio
31 | &.embed-responsive-4by3 {
32 | padding-bottom: 75%;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | display: block;
9 | padding: @thumbnail-padding;
10 | margin-bottom: @line-height-computed;
11 | line-height: @line-height-base;
12 | background-color: @thumbnail-bg;
13 | border: 1px solid @thumbnail-border;
14 | border-radius: @thumbnail-border-radius;
15 | .transition(all .2s ease-in-out);
16 |
17 | > img,
18 | a > img {
19 | &:extend(.img-responsive);
20 | margin-left: auto;
21 | margin-right: auto;
22 | }
23 |
24 | // Add a hover state for linked versions only
25 | a&:hover,
26 | a&:focus,
27 | a&.active {
28 | border-color: @link-color;
29 | }
30 |
31 | // Image captions
32 | .caption {
33 | padding: @thumbnail-caption-padding;
34 | color: @thumbnail-caption-color;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | .clearfix();
11 | }
12 | .center-block {
13 | .center-block();
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | .text-hide();
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | visibility: hidden !important;
48 | }
49 |
50 |
51 | // For Affix plugin
52 | // -------------------------
53 |
54 | .affix {
55 | position: fixed;
56 | .translate3d(0, 0, 0);
57 | }
58 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap/less/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @well-bg;
12 | border: 1px solid @well-border;
13 | border-radius: @border-radius-base;
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: @border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: @border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "datatables",
3 | "version": "1.10.2",
4 | "main": [
5 | "media/js/jquery.dataTables.js",
6 | "media/css/jquery.dataTables.css"
7 | ],
8 | "dependencies": {
9 | "jquery": ">=1.7.0"
10 | },
11 | "homepage": "https://github.com/DataTables/DataTables",
12 | "_release": "1.10.2",
13 | "_resolution": {
14 | "type": "version",
15 | "tag": "1.10.2",
16 | "commit": "e07d49d42d768c0c1adf4137cc954a23a39c7beb"
17 | },
18 | "_source": "git://github.com/DataTables/DataTables.git",
19 | "_target": "~1.10.2",
20 | "_originalSource": "datatables"
21 | }
--------------------------------------------------------------------------------
/app/bower_components/datatables/.datatables-commit-sync:
--------------------------------------------------------------------------------
1 | e6ea753d4408ad0a45b409ac8105d565075c21d9
2 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/.gitignore:
--------------------------------------------------------------------------------
1 | extras
2 | extensions
3 | docs
4 | cdn
5 | media/css/jquery.dataTables_themeroller.min.css
6 | .DS_Store
7 | Plugins
8 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/Contributing.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | If you are thinking of contributing code to DataTables, first of all, thank you! All fixes, patches and enhancements to DataTables are very warmly welcomed. In order to keep thing manageable, there are a number of guidelines that should be followed in order to ensure that your modification is included in DataTables as quickly as possible:
4 |
5 | 1. Make contributions in the DataTables/DataTablesSrc repo. Changes to the built files in the built repo (DataTables/DataTables) will not be accepted since they would be overwritten by the next build!
6 |
7 | 2. Follow the style of the code in the existing files. DataTables doesn't have a coding standards document, but simple common sense of following the same style as in the existing files is ideal. For example use tabs not spaces (as you will see all source files use tabs).
8 |
9 | 3. Link to a test page showing the bug you are fixing or the feature you are adding. This allows to me to quickly identify what is being changed and why. Don't worry about being verbose in pull requests - its much better to know exactly what is changing and why!
10 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "datatables",
3 | "version": "1.10.2",
4 | "main": [
5 | "media/js/jquery.dataTables.js",
6 | "media/css/jquery.dataTables.css"
7 | ],
8 | "dependencies": {
9 | "jquery": ">=1.7.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "datatables/datatables",
3 | "version": "1.10.2",
4 | "description": "DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, which will add advanced interaction controls to any HTML table.",
5 | "homepage": "http://www.datatables.net/",
6 | "author": "SpryMedia",
7 | "license": [
8 | "MIT"
9 | ],
10 | "prefer-stable": true,
11 | "support": {
12 | "forum": "https://datatables.net/forums",
13 | "source": "https://github.com/DataTables/DataTablesSrc/"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/dataTables.jquery.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DataTables",
3 | "version": "1.10.2",
4 | "description": "DataTables enhances HTML tables with the ability to sort, filter and page the data in the table very easily. It provides a comprehensive API and set of configuration options, allowing you to consume data from virtually any data source.",
5 | "homepage": "http://datatables.net/",
6 | "docs": "http://datatables.net/",
7 | "demo": "http://datatables.net/examples",
8 | "download": "http://datatables.net/download",
9 | "author": {
10 | "name": "Allan Jardine",
11 | "url": "http://sprymedia.co.uk"
12 | },
13 | "licenses": [
14 | {
15 | "type": "MIT",
16 | "url": "http://datatables.net/license_bsd"
17 | }
18 | ],
19 | "dependencies": {
20 | "jquery": ">=1.7"
21 | },
22 | "keywords": [
23 | "DataTables",
24 | "DataTable",
25 | "table",
26 | "grid",
27 | "filter",
28 | "sort",
29 | "page",
30 | "internationalisable"
31 | ]
32 | }
33 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/bootstrap/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/examples/resources/bootstrap/images/sort_asc.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/bootstrap/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/examples/resources/bootstrap/images/sort_asc_disabled.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/bootstrap/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/examples/resources/bootstrap/images/sort_both.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/bootstrap/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/examples/resources/bootstrap/images/sort_desc.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/bootstrap/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/examples/resources/bootstrap/images/sort_desc_disabled.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/de_DE.txt:
--------------------------------------------------------------------------------
1 | {
2 | "processing": "Bitte warten...",
3 | "lengthMenu": "_MENU_ Einträge anzeigen",
4 | "zeroRecords": "Keine Einträge vorhanden.",
5 | "info": "_START_ bis _END_ von _TOTAL_ Einträgen",
6 | "infoEmpty": "0 bis 0 von 0 Einträgen",
7 | "infoFiltered": "(gefiltert von _MAX_ Einträgen)",
8 | "infoPostFix": "",
9 | "search": "Suchen",
10 | "url": "",
11 | "paginate": {
12 | "first": "Erster",
13 | "previous": "Zurück",
14 | "next": "Nächster",
15 | "last": "Letzter"
16 | }
17 | }
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/details_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/examples/resources/details_close.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/details_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/examples/resources/details_open.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/examples/resources/examples.php:
--------------------------------------------------------------------------------
1 | 'first_name', 'dt' => 'first_name' ),
19 | array( 'db' => 'last_name', 'dt' => 'last_name' ),
20 | array( 'db' => 'position', 'dt' => 'position' ),
21 | array( 'db' => 'office', 'dt' => 'office' ),
22 | array(
23 | 'db' => 'start_date',
24 | 'dt' => 'start_date',
25 | 'formatter' => function( $d, $row ) {
26 | return date( 'jS M y', strtotime($d));
27 | }
28 | ),
29 | array(
30 | 'db' => 'salary',
31 | 'dt' => 'salary',
32 | 'formatter' => function( $d, $row ) {
33 | return '$'.number_format($d);
34 | }
35 | )
36 | );
37 |
38 | // SQL server connection information
39 | $sql_details = array(
40 | 'user' => '',
41 | 'pass' => '',
42 | 'db' => '',
43 | 'host' => ''
44 | );
45 |
46 |
47 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
48 | * If you just want to use the basic configuration for DataTables with PHP
49 | * server-side, there is no need to edit below this line.
50 | */
51 |
52 | require( 'ssp.class.php' );
53 |
54 | echo json_encode(
55 | SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
56 | );
57 |
58 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/license.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2008-2013 SpryMedia Limited
2 | http://datatables.net
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the "Software"), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in
12 | all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/Sorting icons.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/Sorting icons.psd
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/back_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/back_disabled.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/back_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/back_enabled.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/back_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/back_enabled_hover.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/favicon.ico
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/forward_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/forward_disabled.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/forward_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/forward_enabled.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/forward_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/forward_enabled_hover.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/sort_asc.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/sort_asc_disabled.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/sort_both.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/sort_desc.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/securingsincity/backbone-react-ui/4d2d162ea19ee3a8211a876635e1812549193cee/app/bower_components/datatables/media/images/sort_desc_disabled.png
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/data_sources/arrays.php:
--------------------------------------------------------------------------------
1 | array(
23 | array(1, 2, 3, 4, 5)
24 | )
25 | );
26 | }
27 | else if ( $_REQUEST['dataSrc'] === 'data' ) {
28 | return array(
29 | 'data' => array(
30 | array(1, 2, 3, 4, 5)
31 | )
32 | );
33 | }
34 | else if ( $_REQUEST['dataSrc'] === 'nested' ) {
35 | return array(
36 | 'data' => array(
37 | 'inner' => array(
38 | array(1, 2, 3, 4, 5)
39 | )
40 | )
41 | );
42 | }
43 | else if ( $_REQUEST['dataSrc'] === 'plain' ) {
44 | return array(
45 | array(1, 2, 3, 4, 5)
46 | );
47 | }
48 | }
49 |
50 |
51 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/data_sources/method.php:
--------------------------------------------------------------------------------
1 | intval( $_REQUEST['sEcho'] ),
17 | 'iTotalRecords' => 1,
18 | 'iTotalDisplayRecords' => 1,
19 | 'aaData' => array(
20 | array(1, 2, 3, 4, 5)
21 | )
22 | ) );
23 | }
24 | else {
25 | // Client-side processing
26 | echo json_encode( array(
27 | 'aaData' => array(
28 | array(1, 2, 3, 4, 5)
29 | )
30 | ) );
31 | }
32 | }
33 |
34 |
35 | function fail()
36 | {
37 | if ( isset($_REQUEST['sEcho']) ) {
38 | // Server-side processing
39 | echo json_encode( array(
40 | 'sEcho' => intval( $_REQUEST['sEcho'] ),
41 | 'iTotalRecords' => 0,
42 | 'iTotalDisplayRecords' => 0,
43 | 'aaData' => array()
44 | ) );
45 | }
46 | else {
47 | // Client-side processing
48 | echo json_encode( array(
49 | 'aaData' => array()
50 | ) );
51 | }
52 | }
53 |
54 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/data_sources/objects.php:
--------------------------------------------------------------------------------
1 | intval( $_REQUEST['sEcho'] ),
7 | 'iTotalRecords' => 1,
8 | 'iTotalDisplayRecords' => 1,
9 | 'aaData' => array(
10 | array(
11 | 'engine' => 10,
12 | 'browser' => 20,
13 | 'platform' => 30,
14 | 'version' => 40,
15 | 'grade' => 50
16 | )
17 | )
18 | ) );
19 | }
20 | else {
21 | echo json_encode( array(
22 | 'aaData' => array(
23 | array(
24 | 'engine' => 10,
25 | 'browser' => 20,
26 | 'platform' => 30,
27 | 'version' => 40,
28 | 'grade' => 50
29 | )
30 | )
31 | ) );
32 | }
33 |
34 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/data_sources/param.php:
--------------------------------------------------------------------------------
1 | intval( $_REQUEST['sEcho'] ),
7 | 'iTotalRecords' => 1,
8 | 'iTotalDisplayRecords' => 1,
9 | 'aaData' => array(
10 | array(1, 2, 3, 4, 5)
11 | ),
12 | 'post' => xss( $_POST ),
13 | 'get' => xss( $_GET ),
14 | 'post_length' => count( array_keys( $_POST ) ),
15 | 'get_length' => count( array_keys( $_GET ) )
16 | ) );
17 | }
18 | else {
19 | echo json_encode( array(
20 | 'aaData' => array(
21 | array(1, 2, 3, 4, 5)
22 | ),
23 | 'post' => xss( $_POST ),
24 | 'get' => xss( $_GET ),
25 | 'post_length' => count( array_keys( $_POST ) ),
26 | 'get_length' => count( array_keys( $_GET ) )
27 | ) );
28 | }
29 |
30 |
31 |
32 | // This script shouldn't be hosted on a public server, but to prevent attacks:
33 | function xss ( $a )
34 | {
35 | $out = array();
36 |
37 | foreach ($a as $key => $value) {
38 | $out[ $key ] = htmlentities( $value );
39 | }
40 |
41 | return $out;
42 | }
43 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/templates/dymanic_table.php:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 | DataTables unit testing
14 |
18 |
19 |
20 |
21 |
26 | '."\n";
31 | }
32 | ?>
33 |
34 |
35 |
36 |
37 | DataTables dynamic table template
38 |
39 |
40 |
Live example
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/-complex_header.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: -complex_header
2 | oTest.fnStart( "Complex header" );
3 |
4 |
5 | $(document).ready( function () {
6 | $('#example').dataTable();
7 |
8 | oTest.fnTest(
9 | "Sorting on colspan has no effect",
10 | function () { $('#example thead th:eq(1)').click(); },
11 | function () { return $('#example tbody tr td:eq(1)').html() == "Firefox 1.0"; }
12 | );
13 |
14 | oTest.fnTest(
15 | "Sorting on non-unique TH and first TH has no effect",
16 | function () { $('#example thead th:eq(2)').click(); },
17 | function () { return $('#example tbody tr td:eq(1)').html() == "Firefox 1.0"; }
18 | );
19 |
20 | oTest.fnTest(
21 | "Sorting on non-unique TH and second TH will sort",
22 | function () { $('#example thead th:eq(6)').click(); },
23 | function () { return $('#example tbody tr td:eq(4)').html() == "A"; }
24 | );
25 |
26 | oTest.fnTest(
27 | "Sorting on non-unique TH and second TH will sort - reserve",
28 | function () { $('#example thead th:eq(6)').click(); },
29 | function () { return $('#example tbody tr td:eq(4)').html() == "X"; }
30 | );
31 |
32 | oTest.fnTest(
33 | "Sorting on unique TH will sort",
34 | function () { $('#example thead th:eq(5)').click(); },
35 | function () { return $('#example tbody tr td:eq(3)').html() == "-"; }
36 | );
37 |
38 | oTest.fnTest(
39 | "Sorting on unique TH will sort - reserve",
40 | function () { $('#example thead th:eq(5)').click(); },
41 | function () { return $('#example tbody tr td:eq(3)').html() == "522.1"; }
42 | );
43 |
44 | oTest.fnTest(
45 | "Sorting on unique rowspan TH will sort",
46 | function () { $('#example thead th:eq(0)').click(); },
47 | function () { return $('#example tbody tr td:eq(0)').html() == "Gecko"; }
48 | );
49 |
50 |
51 | oTest.fnComplete();
52 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/-iDraw.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "iDraw - check that iDraw increments for each draw" );
3 |
4 |
5 | $(document).ready( function () {
6 | var oTable = $('#example').dataTable();
7 | var oSettings = oTable.fnSettings();
8 |
9 | oTest.fnTest(
10 | "After first draw, iDraw is 1",
11 | null,
12 | function () { return oSettings.iDraw == 1; }
13 | );
14 |
15 | oTest.fnTest(
16 | "After second draw, iDraw is 2",
17 | function () { oTable.fnDraw() },
18 | function () { return oSettings.iDraw == 2; }
19 | );
20 |
21 | oTest.fnTest(
22 | "After sort",
23 | function () { oTable.fnSort([[1,'asc']]) },
24 | function () { return oSettings.iDraw == 3; }
25 | );
26 |
27 | oTest.fnTest(
28 | "After filter",
29 | function () { oTable.fnFilter('gecko') },
30 | function () { return oSettings.iDraw == 4; }
31 | );
32 |
33 | oTest.fnTest(
34 | "After another filter",
35 | function () { oTable.fnFilter('gec') },
36 | function () { return oSettings.iDraw == 5; }
37 | );
38 |
39 |
40 | oTest.fnComplete();
41 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2512.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: 2512
2 | oTest.fnStart( "Check filtering with BR and HTML entity" );
3 |
4 |
5 | $(document).ready( function () {
6 | $('#example').dataTable();
7 |
8 | /* Basic checks */
9 | oTest.fnTest(
10 | "Check filtering",
11 | function () { $('#example').dataTable().fnFilter('testsearchstring'); },
12 | function () { return $('#example tbody tr').length == 1; }
13 | );
14 |
15 |
16 | oTest.fnComplete();
17 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2530-2.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "User given with is left when no scrolling" );
3 |
4 | $(document).ready( function () {
5 | $('#example')[0].style.width = "80%";
6 | $('#example').dataTable();
7 |
8 | oTest.fnTest(
9 | "Check user width is left",
10 | null,
11 | function () { return $('#example').width() == 640; }
12 | );
13 |
14 | oTest.fnComplete();
15 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2530.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dymanic_table
2 | oTest.fnStart( "2530 - Check width's when dealing with empty strings" );
3 |
4 |
5 | $(document).ready( function () {
6 | $('#example').dataTable( {
7 | "aaData": [
8 | ['','Internet Explorer 4.0','Win 95+','4','X'],
9 | ['','Internet Explorer 5.0','Win 95+','5','C']
10 | ],
11 | "aoColumns": [
12 | { "sTitle": "", "sWidth": "40px" },
13 | { "sTitle": "Browser" },
14 | { "sTitle": "Platform" },
15 | { "sTitle": "Version", "sClass": "center" },
16 | { "sTitle": "Grade", "sClass": "center" }
17 | ]
18 | } );
19 |
20 | /* Basic checks */
21 | oTest.fnTest(
22 | "Check calculated widths",
23 | null,
24 | function () { return $('#example tbody tr td:eq(0)').width() < 100; }
25 | );
26 |
27 |
28 | oTest.fnComplete();
29 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2569.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "Destroy with hidden columns" );
3 |
4 | $(document).ready( function () {
5 | $('#example').dataTable( {
6 | "aoColumnDefs": [
7 | { "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
8 | { "bVisible": false, "aTargets": [ 3 ] }
9 | ]
10 | } );
11 | $('#example').dataTable().fnDestroy();
12 |
13 | oTest.fnTest(
14 | "Check that the number of columns in table is correct",
15 | null,
16 | function () { return $('#example tbody tr:eq(0) td').length == 5; }
17 | );
18 |
19 |
20 | oTest.fnTest(
21 | "And with scrolling",
22 | function () {
23 | $('#example').dataTable( {
24 | "sScrollY": 200,
25 | "aoColumnDefs": [
26 | { "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
27 | { "bVisible": false, "aTargets": [ 3 ] }
28 | ]
29 | } );
30 | $('#example').dataTable().fnDestroy();
31 | },
32 | function () { return $('#example tbody tr:eq(0) td').length == 5; }
33 | );
34 |
35 | oTest.fnComplete();
36 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2600.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "2600 - Display rewind when changing length" );
3 |
4 | $(document).ready( function () {
5 | $('#example').dataTable();
6 |
7 | oTest.fnTest(
8 | "Info correct on init",
9 | null,
10 | function () { return $('#example_info').html() == "Showing 1 to 10 of 57 entries"; }
11 | );
12 |
13 | oTest.fnTest(
14 | "Page 2",
15 | function () { $('#example_next').click(); },
16 | function () { return $('#example_info').html() == "Showing 11 to 20 of 57 entries"; }
17 | );
18 |
19 | oTest.fnTest(
20 | "Page 3",
21 | function () { $('#example_next').click(); },
22 | function () { return $('#example_info').html() == "Showing 21 to 30 of 57 entries"; }
23 | );
24 |
25 | oTest.fnTest(
26 | "Page 4",
27 | function () { $('#example_next').click(); },
28 | function () { return $('#example_info').html() == "Showing 31 to 40 of 57 entries"; }
29 | );
30 |
31 | oTest.fnTest(
32 | "Page 5",
33 | function () { $('#example_next').click(); },
34 | function () { return $('#example_info').html() == "Showing 41 to 50 of 57 entries"; }
35 | );
36 |
37 | oTest.fnTest(
38 | "Rewind",
39 | function () { $('#example_length select').val('100'); $('#example_length select').change(); },
40 | function () { return $('#example_info').html() == "Showing 1 to 57 of 57 entries"; }
41 | );
42 |
43 | oTest.fnComplete();
44 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2608.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "2608 - State saving escaping filters" );
3 |
4 | $(document).ready( function () {
5 | $('#example').dataTable( {
6 | "bStateSave": true
7 | } );
8 |
9 | oTest.fnTest(
10 | "Set the filter",
11 | function () {
12 | $('#example_filter input').val( '\\s*CVM\\s*$' );
13 | $('#example_filter input').keyup();
14 | },
15 | function () { return $('#example_filter input').val() == '\\s*CVM\\s*$'; }
16 | );
17 |
18 | oTest.fnTest(
19 | "Destroy the table and remake it - checking the filter was saved",
20 | function () {
21 | $('#example').dataTable( {
22 | "bStateSave": true,
23 | "bDestroy": true
24 | } );
25 | },
26 | function () { return $('#example_filter input').val() == '\\s*CVM\\s*$'; }
27 | );
28 |
29 | oTest.fnTest(
30 | "Do it again without state saving and make sure filter is empty",
31 | function () {
32 | $('#example').dataTable( {
33 | "bDestroy": true
34 | } );
35 | },
36 | function () { return $('#example_filter input').val() == ''; }
37 | );
38 |
39 | oTest.fnTest(
40 | "Clean up",
41 | function () {
42 | $('#example').dataTable( {
43 | "bStateSave": true,
44 | "bDestroy": true
45 | } );
46 | $('#example_filter input').val( '' );
47 | $('#example_filter input').keyup();
48 | },
49 | function () { return $('#example_filter input').val() == ''; }
50 | );
51 |
52 | oTest.fnCookieDestroy( $('#example').dataTable() );
53 | oTest.fnComplete();
54 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2635.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "2635 - Hiding column and state saving" );
3 |
4 | $(document).ready( function () {
5 | $('#example').dataTable( {
6 | "bStateSave": true
7 | } );
8 |
9 | oTest.fnTest(
10 | "Set the hidden column",
11 | function () {
12 | $('#example').dataTable().fnSetColumnVis( 2, false );
13 | },
14 | function () { return $('#example thead th').length == 4; }
15 | );
16 |
17 | oTest.fnTest(
18 | "Destroy the table and remake it - checking one column was removed",
19 | function () {
20 | $('#example').dataTable( {
21 | "bStateSave": true,
22 | "bDestroy": true
23 | } );
24 | },
25 | function () { return $('#example thead th').length == 4; }
26 | );
27 |
28 | oTest.fnTest(
29 | "Do it again without state saving and make sure we are back to 5 columns",
30 | function () {
31 | $('#example').dataTable( {
32 | "bDestroy": true
33 | } );
34 | },
35 | function () { return $('#example thead th').length == 5; }
36 | );
37 |
38 | oTest.fnCookieDestroy( $('#example').dataTable() );
39 | oTest.fnComplete();
40 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2799.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: two_tables
2 | oTest.fnStart( "Initialise two tables" );
3 |
4 | $(document).ready( function () {
5 | $('table.display').dataTable();
6 |
7 | oTest.fnTest(
8 | "Check that initialisation was okay",
9 | null,
10 | function () { return true; }
11 | );
12 |
13 | oTest.fnComplete();
14 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2840-restore-table-width.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "2840 - Restore table width on fnDestroy" );
3 |
4 | $(document).ready( function () {
5 | document.cookie = "";
6 | $('#example').dataTable( {
7 | "sScrollX": "100%",
8 | "sScrollXInner": "110%"
9 | } );
10 | $('#example').dataTable().fnDestroy();
11 |
12 | oTest.fnTest(
13 | "Width after destroy",
14 | null,
15 | function () { return $('#example').width() == "800"; }
16 | );
17 |
18 | oTest.fnComplete();
19 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/2914-state-save-sort.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "2914 - State saving with an empty array" );
3 |
4 | $(document).ready( function () {
5 | document.cookie = "";
6 | $('#example').dataTable( {
7 | "bStateSave": true,
8 | "aaSorting": []
9 | } );
10 |
11 | oTest.fnTest(
12 | "No sort",
13 | null,
14 | function () { return $('#example tbody td:eq(3)').html() == "4"; }
15 | );
16 |
17 | oTest.fnTest(
18 | "Next page",
19 | function () {
20 | $('#example').dataTable().fnPageChange( 'next' );
21 | },
22 | function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
23 | );
24 |
25 | oTest.fnTest(
26 | "Destroy the table and remake it - checking we are still on the next page",
27 | function () {
28 | $('#example').dataTable( {
29 | "bStateSave": true,
30 | "aaSorting": [],
31 | "bDestroy": true
32 | } );
33 | },
34 | function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
35 | );
36 |
37 | oTest.fnCookieDestroy( $('#example').dataTable() );
38 | oTest.fnComplete();
39 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/5508-xscroll-zero-content.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "5508 - Table container width doesn't change when filtering applied to scrolling table" );
3 |
4 | $(document).ready( function () {
5 | $('#example').dataTable( {
6 | "sScrollY": "300px",
7 | "bPaginate": false
8 | } );
9 |
10 | oTest.fnTest(
11 | "Width of container 800px on init with scroll",
12 | null,
13 | function () { return $('div.dataTables_scrollBody').width() == 800; }
14 | );
15 |
16 | oTest.fnTest(
17 | "Unaltered when filter applied",
18 | function () { $('#example').dataTable().fnFilter('123'); },
19 | function () { return $('div.dataTables_scrollBody').width() == 800; }
20 | );
21 |
22 | oTest.fnComplete();
23 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/aaSortingFixed.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "aaSortingFixed" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable();
7 | var oSettings = oTable.fnSettings();
8 |
9 | oTest.fnTest(
10 | "No fixed sorting by default",
11 | null,
12 | function () {
13 | return oSettings.aaSortingFixed == null;
14 | }
15 | );
16 |
17 |
18 | oTest.fnTest(
19 | "Fixed sorting on first column (string/asc) with user sorting on second column (string/asc)",
20 | function () {
21 | oSession.fnRestore();
22 | $('#example').dataTable( {
23 | "aaSortingFixed": [['0','asc']]
24 | } );
25 | $('#example thead th:eq(1)').click();
26 | },
27 | function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
28 | );
29 |
30 | oTest.fnTest(
31 | "Fixed sorting on first column (string/asc) with user sorting on second column (string/desc)",
32 | function () {
33 | $('#example thead th:eq(1)').click();
34 | },
35 | function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
36 | );
37 |
38 | oTest.fnTest(
39 | "Fixed sorting on fourth column (int/asc) with user sorting on second column (string/asc)",
40 | function () {
41 | oSession.fnRestore();
42 | $('#example').dataTable( {
43 | "aaSortingFixed": [['3','asc']]
44 | } );
45 | $('#example thead th:eq(1)').click();
46 | },
47 | function () { return $('#example tbody td:eq(1)').html() == "All others"; }
48 | );
49 |
50 | oTest.fnTest(
51 | "Fixed sorting on fourth column (int/asc) with user sorting on second column (string/desc)",
52 | function () {
53 | $('#example thead th:eq(1)').click();
54 | },
55 | function () { return $('#example tbody td:eq(1)').html() == "PSP browser"; }
56 | );
57 |
58 |
59 | oTest.fnComplete();
60 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/aoColumns.sName.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "aoColumns.sName" );
3 |
4 | /* This has no effect at all in DOM methods - so we just check that it has applied the name */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "aoColumns": [
10 | null,
11 | null,
12 | null,
13 | { "sName": 'unit test' },
14 | null
15 | ]
16 | } );
17 | var oSettings = oTable.fnSettings();
18 |
19 | oTest.fnTest(
20 | "Names are stored in the columns object",
21 | null,
22 | function () { return oSettings.aoColumns[3].sName =="unit test"; }
23 | );
24 |
25 |
26 | oTest.fnComplete();
27 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/bFilter.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "bFilter" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable();
7 |
8 | oTest.fnTest(
9 | "Filtering div exists by default",
10 | null,
11 | function () { return document.getElementById('example_filter') != null; }
12 | );
13 |
14 | /* Check can disable */
15 | oTest.fnTest(
16 | "Fltering can be disabled",
17 | function () {
18 | oSession.fnRestore();
19 | $('#example').dataTable( {
20 | "bFilter": false
21 | } );
22 | },
23 | function () { return document.getElementById('example_filter') == null; }
24 | );
25 |
26 | /* Enable makes no difference */
27 | oTest.fnTest(
28 | "Filtering enabled override",
29 | function () {
30 | oSession.fnRestore();
31 | $('#example').dataTable( {
32 | "bFilter": true
33 | } );
34 | },
35 | function () { return document.getElementById('example_filter') != null; }
36 | );
37 |
38 |
39 | oTest.fnComplete();
40 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/bInfo.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "bInfo" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable();
7 |
8 | oTest.fnTest(
9 | "Info div exists by default",
10 | null,
11 | function () { return document.getElementById('example_info') != null; }
12 | );
13 |
14 | /* Check can disable */
15 | oTest.fnTest(
16 | "Info can be disabled",
17 | function () {
18 | oSession.fnRestore();
19 | $('#example').dataTable( {
20 | "bInfo": false
21 | } );
22 | },
23 | function () { return document.getElementById('example_info') == null; }
24 | );
25 |
26 | /* Enable makes no difference */
27 | oTest.fnTest(
28 | "Info enabled override",
29 | function () {
30 | oSession.fnRestore();
31 | $('#example').dataTable( {
32 | "bInfo": true
33 | } );
34 | },
35 | function () { return document.getElementById('example_info') != null; }
36 | );
37 |
38 |
39 | oTest.fnComplete();
40 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/bJQueryUI.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "bJQueryUI" );
3 |
4 | $(document).ready( function () {
5 | $('#example').dataTable( {
6 | "bJQueryUI": true
7 | } );
8 |
9 | oTest.fnTest(
10 | "Header elements are fully wrapped by DIVs",
11 | null,
12 | function () {
13 | var test = true;
14 | $('#example thead th').each( function () {
15 | if ( this.childNodes > 1 ) {
16 | test = false;
17 | }
18 | } );
19 | return test;
20 | }
21 | );
22 |
23 | oTest.fnTest(
24 | "One div for each header element",
25 | null,
26 | function () {
27 | return $('#example thead th div').length == 5;
28 | }
29 | );
30 |
31 | oTest.fnTest(
32 | "One span for each header element, nested as child of div",
33 | null,
34 | function () {
35 | return $('#example thead th div>span').length == 5;
36 | }
37 | );
38 |
39 | oTest.fnComplete();
40 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/bPaginate.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "bPaginate" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable();
7 |
8 | oTest.fnTest(
9 | "Pagiantion div exists by default",
10 | null,
11 | function () { return document.getElementById('example_paginate') != null; }
12 | );
13 |
14 | oTest.fnTest(
15 | "Information div takes paging into account",
16 | null,
17 | function () { return document.getElementById('example_info').innerHTML ==
18 | "Showing 1 to 10 of 57 entries"; }
19 | );
20 |
21 | /* Check can disable */
22 | oTest.fnTest(
23 | "Pagiantion can be disabled",
24 | function () {
25 | oSession.fnRestore();
26 | $('#example').dataTable( {
27 | "bPaginate": false
28 | } );
29 | },
30 | function () { return document.getElementById('example_paginate') == null; }
31 | );
32 |
33 | oTest.fnTest(
34 | "Information div takes paging disabled into account",
35 | null,
36 | function () { return document.getElementById('example_info').innerHTML ==
37 | "Showing 1 to 57 of 57 entries"; }
38 | );
39 |
40 | /* Enable makes no difference */
41 | oTest.fnTest(
42 | "Pagiantion enabled override",
43 | function () {
44 | oSession.fnRestore();
45 | $('#example').dataTable( {
46 | "bPaginate": true
47 | } );
48 | },
49 | function () { return document.getElementById('example_paginate') != null; }
50 | );
51 |
52 |
53 |
54 | oTest.fnComplete();
55 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/bServerSide.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "bServerSide" );
3 |
4 | /* Not interested in server-side processing here other than to check that it is off */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable();
9 | var oSettings = oTable.fnSettings();
10 |
11 | oTest.fnTest(
12 | "Server side is off by default",
13 | null,
14 | function () { return oSettings.oFeatures.bServerSide == false; }
15 | );
16 |
17 | oTest.fnComplete();
18 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/fnDeleteRow.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "fnDeleteRow" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable();
7 | var oSettings = oTable.fnSettings();
8 |
9 | oTest.fnTest(
10 | "Check that the default data is sane",
11 | null,
12 | function () { return oSettings.asDataSearch.join(' ').match(/4.0/g).length == 3; }
13 | );
14 |
15 | oTest.fnTest(
16 | "Remove the first data row, and check that hte search data has been updated",
17 | function () { oTable.fnDeleteRow( 0 ); },
18 | function () { return oSettings.asDataSearch.join(' ').match(/4.0/g).length == 2; }
19 | );
20 |
21 | oTest.fnTest(
22 | "Check that the info element has been updated",
23 | null,
24 | function () { return $('#example_info').html() == "Showing 1 to 10 of 56 entries"; }
25 | );
26 |
27 |
28 |
29 | oTest.fnComplete();
30 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/fnDrawCallback.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "fnDrawCallback" );
3 |
4 | /* Fairly boring function compared to the others! */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable();
9 | var oSettings = oTable.fnSettings();
10 | var mPass;
11 |
12 | oTest.fnTest(
13 | "Default should be null",
14 | null,
15 | function () { return oSettings.fnDrawCallback == null; }
16 | );
17 |
18 |
19 | oTest.fnTest(
20 | "One argument passed",
21 | function () {
22 | oSession.fnRestore();
23 |
24 | mPass = -1;
25 | $('#example').dataTable( {
26 | "fnDrawCallback": function ( ) {
27 | mPass = arguments.length;
28 | }
29 | } );
30 | },
31 | function () { return mPass == 1; }
32 | );
33 |
34 |
35 | oTest.fnTest(
36 | "That one argument is the settings object",
37 | function () {
38 | oSession.fnRestore();
39 |
40 | oTable = $('#example').dataTable( {
41 | "fnDrawCallback": function ( oSettings ) {
42 | mPass = oSettings;
43 | }
44 | } );
45 | },
46 | function () { return oTable.fnSettings() == mPass; }
47 | );
48 |
49 |
50 | oTest.fnTest(
51 | "fnRowCallback called once on first draw",
52 | function () {
53 | oSession.fnRestore();
54 |
55 | mPass = 0;
56 | $('#example').dataTable( {
57 | "fnDrawCallback": function ( ) {
58 | mPass++;
59 | }
60 | } );
61 | },
62 | function () { return mPass == 1; }
63 | );
64 |
65 | oTest.fnTest(
66 | "fnRowCallback called once on each draw there after as well",
67 | function () {
68 | $('#example_next').click();
69 | $('#example_next').click();
70 | $('#example_next').click();
71 | },
72 | function () { return mPass == 4; }
73 | );
74 |
75 |
76 |
77 |
78 |
79 | oTest.fnComplete();
80 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/fnFilter.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "fnFilter" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable();
7 | oTable.fnFilter(1);
8 |
9 | oTest.fnTest(
10 | "Filtering with a non-string input is valid",
11 | null,
12 | function () { return $('#example_info').html() == "Showing 1 to 10 of 32 entries (filtered from 57 total entries)"; }
13 | );
14 |
15 | oTest.fnComplete();
16 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/gh125 - stripe stripping.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "Odd and even are stripped from all rows" );
3 |
4 | $(document).ready( function () {
5 | $('table tbody tr').addClass( 'odd even' );
6 | $('table.display').dataTable();
7 |
8 | oTest.fnTest(
9 | "Odd is applied to exactly 5 rows",
10 | null,
11 | function () {
12 | return $('#example tbody tr.odd').length === 5;
13 | }
14 | );
15 |
16 | oTest.fnTest(
17 | "Even is applied to exactly 5 rows",
18 | null,
19 | function () {
20 | return $('#example tbody tr.even').length === 5;
21 | }
22 | );
23 |
24 | oTest.fnTest(
25 | "First row is odd",
26 | null,
27 | function () {
28 | return $('#example tbody tr:eq(0)').hasClass('odd') &&
29 | ! $('#example tbody tr:eq(0)').hasClass('even');
30 | }
31 | );
32 |
33 | oTest.fnTest(
34 | "Second row is even",
35 | null,
36 | function () {
37 | return $('#example tbody tr:eq(1)').hasClass('even') &&
38 | ! $('#example tbody tr:eq(1)').hasClass('odd');
39 | }
40 | );
41 |
42 | oTest.fnTest(
43 | "Third row is odd",
44 | null,
45 | function () {
46 | return $('#example tbody tr:eq(2)').hasClass('odd') &&
47 | ! $('#example tbody tr:eq(2)').hasClass('even');
48 | }
49 | );
50 |
51 | oTest.fnTest(
52 | "Fourth row is even",
53 | null,
54 | function () {
55 | return $('#example tbody tr:eq(3)').hasClass('even') &&
56 | ! $('#example tbody tr:eq(3)').hasClass('odd');
57 | }
58 | );
59 |
60 | oTest.fnComplete();
61 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/html-autodetect-sort.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: html_table
2 | oTest.fnStart( "HTML auto detect" );
3 |
4 | $(document).ready( function () {
5 | var oTable = $('#example').dataTable();
6 |
7 | oTest.fnTest(
8 | "Initial sort",
9 | null,
10 | function () {
11 | var ret =
12 | $('#example tbody tr:eq(0) td:eq(0)').html() == '1' &&
13 | $('#example tbody tr:eq(1) td:eq(0)').html() == '2' &&
14 | $('#example tbody tr:eq(2) td:eq(0)').html() == '3';
15 | return ret;
16 | }
17 | );
18 |
19 | oTest.fnTest(
20 | "HTML sort",
21 | function () { $('#example thead th:eq(1)').click() },
22 | function () {
23 | var ret =
24 | $('#example tbody tr:eq(0) td:eq(0)').html() == '2' &&
25 | $('#example tbody tr:eq(1) td:eq(0)').html() == '1' &&
26 | $('#example tbody tr:eq(2) td:eq(0)').html() == '4';
27 | return ret;
28 | }
29 | );
30 |
31 | oTest.fnTest(
32 | "HTML reverse sort",
33 | function () { $('#example thead th:eq(1)').click() },
34 | function () {
35 | var ret =
36 | $('#example tbody tr:eq(0) td:eq(0)').html() == '3' &&
37 | $('#example tbody tr:eq(1) td:eq(0)').html() == '4' &&
38 | $('#example tbody tr:eq(2) td:eq(0)').html() == '1';
39 | return ret;
40 | }
41 | );
42 |
43 | oTest.fnTest(
44 | "Numeric sort",
45 | function () { $('#example thead th:eq(0)').click() },
46 | function () {
47 | var ret =
48 | $('#example tbody tr:eq(0) td:eq(0)').html() == '1' &&
49 | $('#example tbody tr:eq(1) td:eq(0)').html() == '2' &&
50 | $('#example tbody tr:eq(2) td:eq(0)').html() == '3';
51 | return ret;
52 | }
53 | );
54 |
55 |
56 | oTest.fnComplete();
57 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/iDisplayLength.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "iDisplayLength" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable();
7 |
8 | oTest.fnTest(
9 | "Default length is ten",
10 | null,
11 | function () { return $('#example tbody tr').length == 10; }
12 | );
13 |
14 | oTest.fnTest(
15 | "Select menu shows 10",
16 | null,
17 | function () { return $('#example_length select').val() == 10; }
18 | );
19 |
20 |
21 | oTest.fnTest(
22 | "Set initial length to 25",
23 | function () {
24 | oSession.fnRestore();
25 | $('#example').dataTable( {
26 | "iDisplayLength": 25
27 | } );
28 | },
29 | function () { return $('#example tbody tr').length == 25; }
30 | );
31 |
32 | oTest.fnTest(
33 | "Select menu shows 25",
34 | null,
35 | function () { return $('#example_length select').val() == 25; }
36 | );
37 |
38 |
39 | oTest.fnTest(
40 | "Set initial length to 100",
41 | function () {
42 | oSession.fnRestore();
43 | $('#example').dataTable( {
44 | "iDisplayLength": 100
45 | } );
46 | },
47 | function () { return $('#example tbody tr').length == 57; }
48 | );
49 |
50 | oTest.fnTest(
51 | "Select menu shows 25",
52 | null,
53 | function () { return $('#example_length select').val() == 100; }
54 | );
55 |
56 |
57 | oTest.fnTest(
58 | "Set initial length to 23 (unknown select menu length)",
59 | function () {
60 | oSession.fnRestore();
61 | $('#example').dataTable( {
62 | "iDisplayLength": 23
63 | } );
64 | },
65 | function () { return $('#example tbody tr').length == 23; }
66 | );
67 |
68 | oTest.fnTest(
69 | "Select menu shows 10 (since 23 is unknow)",
70 | null,
71 | function () { return $('#example_length select').val() == 10; }
72 | );
73 |
74 |
75 | oTest.fnComplete();
76 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/oLanguage.sProcessing.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "oLanguage.sProcessing" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "bProcessing": true
8 | } );
9 | var oSettings = oTable.fnSettings();
10 |
11 | oTest.fnTest(
12 | "Processing language is 'Processing...' by default",
13 | null,
14 | function () { return oSettings.oLanguage.sProcessing == "Processing..."; }
15 | );
16 |
17 | oTest.fnTest(
18 | "Processing language default is in the DOM",
19 | null,
20 | function () { return document.getElementById('example_processing').innerHTML = "Processing..."; }
21 | );
22 |
23 |
24 | oTest.fnTest(
25 | "Processing language can be defined",
26 | function () {
27 | oSession.fnRestore();
28 | oTable = $('#example').dataTable( {
29 | "bProcessing": true,
30 | "oLanguage": {
31 | "sProcessing": "unit test"
32 | }
33 | } );
34 | oSettings = oTable.fnSettings();
35 | },
36 | function () { return oSettings.oLanguage.sProcessing == "unit test"; }
37 | );
38 |
39 | oTest.fnTest(
40 | "Processing language definition is in the DOM",
41 | null,
42 | function () { return document.getElementById('example_processing').innerHTML = "unit test"; }
43 | );
44 |
45 |
46 | oTest.fnComplete();
47 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/oLanguage.sSearch.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "oLanguage.sSearch" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable();
7 | var oSettings = oTable.fnSettings();
8 |
9 | oTest.fnTest(
10 | "Search language is 'Search:' by default",
11 | null,
12 | function () { return oSettings.oLanguage.sSearch == "Search:"; }
13 | );
14 |
15 | oTest.fnTest(
16 | "A label input is used",
17 | null,
18 | function () { return $('label', oSettings.aanFeatures.f[0]).length == 1 }
19 | );
20 |
21 | oTest.fnTest(
22 | "Search language default is in the DOM",
23 | null,
24 | function () { return $('label', oSettings.aanFeatures.f[0]).text()
25 | == "Search: "; }
26 | );
27 |
28 |
29 | oTest.fnTest(
30 | "Search language can be defined",
31 | function () {
32 | oSession.fnRestore();
33 | oTable = $('#example').dataTable( {
34 | "oLanguage": {
35 | "sSearch": "unit test"
36 | }
37 | } );
38 | oSettings = oTable.fnSettings();
39 | },
40 | function () { return oSettings.oLanguage.sSearch == "unit test"; }
41 | );
42 |
43 | oTest.fnTest(
44 | "Info language definition is in the DOM",
45 | null,
46 | function () { return $('label', oSettings.aanFeatures.f[0]).text().indexOf('unit test') !== -1; }
47 | );
48 |
49 |
50 | oTest.fnTest(
51 | "Blank search has a no (separator) inserted",
52 | function () {
53 | oSession.fnRestore();
54 | oTable = $('#example').dataTable( {
55 | "oLanguage": {
56 | "sSearch": ""
57 | }
58 | } );
59 | oSettings = oTable.fnSettings();
60 | },
61 | function () { return document.getElementById('example_filter').childNodes.length == 1; }
62 | );
63 |
64 |
65 | oTest.fnComplete();
66 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/oLanguage.sZeroRecords.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "oLanguage.sZeroRecords" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable();
7 | var oSettings = oTable.fnSettings();
8 |
9 | oTest.fnTest(
10 | "Zero records language is 'No matching records found' by default",
11 | null,
12 | function () { return oSettings.oLanguage.sZeroRecords == "No matching records found"; }
13 | );
14 |
15 | oTest.fnTest(
16 | "Text is shown when empty table (after filtering)",
17 | function () { oTable.fnFilter('nothinghere'); },
18 | function () { return $('#example tbody tr td')[0].innerHTML == "No matching records found" }
19 | );
20 |
21 |
22 |
23 | oTest.fnTest(
24 | "Zero records language can be defined",
25 | function () {
26 | oSession.fnRestore();
27 | oTable = $('#example').dataTable( {
28 | "oLanguage": {
29 | "sZeroRecords": "unit test"
30 | }
31 | } );
32 | oSettings = oTable.fnSettings();
33 | },
34 | function () { return oSettings.oLanguage.sZeroRecords == "unit test"; }
35 | );
36 |
37 | oTest.fnTest(
38 | "Text is shown when empty table (after filtering)",
39 | function () { oTable.fnFilter('nothinghere2'); },
40 | function () { return $('#example tbody tr td')[0].innerHTML == "unit test" }
41 | );
42 |
43 |
44 | oTest.fnComplete();
45 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/1_dom/sAjaxSource.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: dom_data
2 | oTest.fnStart( "sAjaxSource" );
3 |
4 | /* Not interested in ajax source here other than to check it's default */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable();
9 | var oSettings = oTable.fnSettings();
10 |
11 | oTest.fnTest(
12 | "Server side is off by default",
13 | null,
14 | function () { return oSettings.sAjaxSource == null; }
15 | );
16 |
17 | oTest.fnComplete();
18 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/39-nested-null.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "39 - nested null values" );
3 |
4 | $(document).ready( function () {
5 | var test = false;
6 |
7 | $.fn.dataTable.ext.sErrMode = "throw";
8 |
9 | oTest.fnTest(
10 | "No default content throws an error",
11 | function () {
12 | try {
13 | $('#example').dataTable( {
14 | "aaData": [
15 | { "a": "0", "b": {"c": 0} },
16 | { "a": "1", "b": {"c": 3} },
17 | { "a": "2", "b": null }
18 | ],
19 | "aoColumns": [
20 | { "mDataProp": "a" },
21 | { "mDataProp": "b" },
22 | { "mDataProp": "b.c" }
23 | ]
24 | } );
25 | }
26 | catch(err) {
27 | test = true;
28 | }
29 | },
30 | function () { return test; }
31 | );
32 |
33 | oTest.fnTest(
34 | "Table renders",
35 | function () {
36 | oSession.fnRestore();
37 |
38 | $('#example').dataTable( {
39 | "aaData": [
40 | { "a": "0", "b": {"c": 0} },
41 | { "a": "1", "b": {"c": 3} },
42 | { "a": "2", "b": null }
43 | ],
44 | "aoColumns": [
45 | { "mDataProp": "a" },
46 | { "mDataProp": "b" },
47 | { "mDataProp": "b.c", "sDefaultContent": "allan" }
48 | ]
49 | } );
50 | },
51 | function () { return $('#example tbody td:eq(0)').html() === "0"; }
52 | );
53 |
54 | oTest.fnTest(
55 | "Default content applied",
56 | function () {
57 | oSession.fnRestore();
58 |
59 | $('#example').dataTable( {
60 | "aaData": [
61 | { "a": "0", "b": {"c": 0} },
62 | { "a": "1", "b": {"c": 3} },
63 | { "a": "2", "b": null }
64 | ],
65 | "aoColumns": [
66 | { "mDataProp": "a" },
67 | { "mDataProp": "b" },
68 | { "mDataProp": "b.c", "sDefaultContent": "allan" }
69 | ]
70 | } );
71 | },
72 | function () { return $('#example tbody td:eq(8)').html() === "allan"; }
73 | );
74 |
75 | oTest.fnComplete();
76 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/8549--string-sorting-nonstrings.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "8549 - string sorting non-string types" );
3 |
4 | $(document).ready( function () {
5 | var test = false;
6 |
7 | $.fn.dataTable.ext.sErrMode = "throw";
8 |
9 |
10 |
11 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
12 | * Shallow properties
13 | */
14 |
15 | $('#example').dataTable( {
16 | "aaData": [
17 | [ null ],
18 | [ 5 ],
19 | [ "1a" ],
20 | [ new Date(0) ]
21 | ],
22 | "aoColumns": [
23 | { "sTitle": "Test" }
24 | ]
25 | } );
26 |
27 | oTest.fnTest(
28 | "Sorting works - first cell is empty",
29 | null,
30 | function () { return $('#example tbody tr:eq(0) td:eq(0)').html() === ""; }
31 | );
32 |
33 | oTest.fnTest(
34 | "Second cell is 1a",
35 | null,
36 | function () { return $('#example tbody tr:eq(1) td:eq(0)').html() === "1a"; }
37 | );
38 |
39 | oTest.fnTest(
40 | "Third cell is 5",
41 | null,
42 | function () { return $('#example tbody tr:eq(2) td:eq(0)').html() === "5"; }
43 | );
44 |
45 |
46 | oTest.fnComplete();
47 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/aoColumns.sName.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "aoColumns.sName" );
3 |
4 | /* This has no effect at all in DOM methods - so we just check that it has applied the name */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "aaData": gaaData,
10 | "aoColumns": [
11 | null,
12 | null,
13 | null,
14 | { "sName": 'unit test' },
15 | null
16 | ]
17 | } );
18 | var oSettings = oTable.fnSettings();
19 |
20 | oTest.fnTest(
21 | "Names are stored in the columns object",
22 | null,
23 | function () { return oSettings.aoColumns[3].sName =="unit test"; }
24 | );
25 |
26 |
27 | oTest.fnComplete();
28 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/bFilter.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "bFilter" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "aaData": gaaData
8 | } );
9 |
10 | oTest.fnTest(
11 | "Filtering div exists by default",
12 | null,
13 | function () { return document.getElementById('example_filter') != null; }
14 | );
15 |
16 | /* Check can disable */
17 | oTest.fnTest(
18 | "Fltering can be disabled",
19 | function () {
20 | oSession.fnRestore();
21 | $('#example').dataTable( {
22 | "aaData": gaaData,
23 | "bFilter": false
24 | } );
25 | },
26 | function () { return document.getElementById('example_filter') == null; }
27 | );
28 |
29 | /* Enable makes no difference */
30 | oTest.fnTest(
31 | "Filtering enabled override",
32 | function () {
33 | oSession.fnRestore();
34 | $('#example').dataTable( {
35 | "aaData": gaaData,
36 | "bFilter": true
37 | } );
38 | },
39 | function () { return document.getElementById('example_filter') != null; }
40 | );
41 |
42 |
43 | oTest.fnComplete();
44 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/bInfo.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "bInfo" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "aaData": gaaData
8 | } );
9 |
10 | oTest.fnTest(
11 | "Info div exists by default",
12 | null,
13 | function () { return document.getElementById('example_info') != null; }
14 | );
15 |
16 | /* Check can disable */
17 | oTest.fnTest(
18 | "Info can be disabled",
19 | function () {
20 | oSession.fnRestore();
21 | $('#example').dataTable( {
22 | "aaData": gaaData,
23 | "bInfo": false
24 | } );
25 | },
26 | function () { return document.getElementById('example_info') == null; }
27 | );
28 |
29 | /* Enable makes no difference */
30 | oTest.fnTest(
31 | "Info enabled override",
32 | function () {
33 | oSession.fnRestore();
34 | $('#example').dataTable( {
35 | "aaData": gaaData,
36 | "bInfo": true
37 | } );
38 | },
39 | function () { return document.getElementById('example_info') != null; }
40 | );
41 |
42 |
43 | oTest.fnComplete();
44 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/bPaginate.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "bPaginate" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "aaData": gaaData
8 | } );
9 |
10 | oTest.fnTest(
11 | "Pagiantion div exists by default",
12 | null,
13 | function () { return document.getElementById('example_paginate') != null; }
14 | );
15 |
16 | oTest.fnTest(
17 | "Information div takes paging into account",
18 | null,
19 | function () { return document.getElementById('example_info').innerHTML ==
20 | "Showing 1 to 10 of 57 entries"; }
21 | );
22 |
23 | /* Check can disable */
24 | oTest.fnTest(
25 | "Pagiantion can be disabled",
26 | function () {
27 | oSession.fnRestore();
28 | $('#example').dataTable( {
29 | "aaData": gaaData,
30 | "bPaginate": false
31 | } );
32 | },
33 | function () { return document.getElementById('example_paginate') == null; }
34 | );
35 |
36 | oTest.fnTest(
37 | "Information div takes paging disabled into account",
38 | null,
39 | function () { return document.getElementById('example_info').innerHTML ==
40 | "Showing 1 to 57 of 57 entries"; }
41 | );
42 |
43 | /* Enable makes no difference */
44 | oTest.fnTest(
45 | "Pagiantion enabled override",
46 | function () {
47 | oSession.fnRestore();
48 | $('#example').dataTable( {
49 | "aaData": gaaData,
50 | "bPaginate": true
51 | } );
52 | },
53 | function () { return document.getElementById('example_paginate') != null; }
54 | );
55 |
56 |
57 |
58 | oTest.fnComplete();
59 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/bServerSide.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "bServerSide" );
3 |
4 | /* Not interested in server-side processing here other than to check that it is off */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "aaData": gaaData
10 | } );
11 | var oSettings = oTable.fnSettings();
12 |
13 | oTest.fnTest(
14 | "Server side is off by default",
15 | null,
16 | function () { return oSettings.oFeatures.bServerSide == false; }
17 | );
18 |
19 | oTest.fnComplete();
20 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/oLanguage.sProcessing.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "oLanguage.sProcessing" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "aaData": gaaData,
8 | "bProcessing": true
9 | } );
10 | var oSettings = oTable.fnSettings();
11 |
12 | oTest.fnTest(
13 | "Processing language is 'Processing...' by default",
14 | null,
15 | function () { return oSettings.oLanguage.sProcessing == "Processing..."; }
16 | );
17 |
18 | oTest.fnTest(
19 | "Processing language default is in the DOM",
20 | null,
21 | function () { return document.getElementById('example_processing').innerHTML = "Processing..."; }
22 | );
23 |
24 |
25 | oTest.fnTest(
26 | "Processing language can be defined",
27 | function () {
28 | oSession.fnRestore();
29 | oTable = $('#example').dataTable( {
30 | "aaData": gaaData,
31 | "bProcessing": true,
32 | "oLanguage": {
33 | "sProcessing": "unit test"
34 | }
35 | } );
36 | oSettings = oTable.fnSettings();
37 | },
38 | function () { return oSettings.oLanguage.sProcessing == "unit test"; }
39 | );
40 |
41 | oTest.fnTest(
42 | "Processing language definition is in the DOM",
43 | null,
44 | function () { return document.getElementById('example_processing').innerHTML = "unit test"; }
45 | );
46 |
47 |
48 | oTest.fnComplete();
49 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/oLanguage.sSearch.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "oLanguage.sSearch" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "aaData": gaaData
8 | } );
9 | var oSettings = oTable.fnSettings();
10 |
11 | oTest.fnTest(
12 | "Search language is 'Search:' by default",
13 | null,
14 | function () { return oSettings.oLanguage.sSearch == "Search:"; }
15 | );
16 |
17 | oTest.fnTest(
18 | "A label input is used",
19 | null,
20 | function () { return $('label', oSettings.aanFeatures.f[0]).length == 1 }
21 | );
22 |
23 | oTest.fnTest(
24 | "Search language default is in the DOM",
25 | null,
26 | function () { return $('label', oSettings.aanFeatures.f[0]).text()
27 | == "Search: "; }
28 | );
29 |
30 |
31 | oTest.fnTest(
32 | "Search language can be defined",
33 | function () {
34 | oSession.fnRestore();
35 | oTable = $('#example').dataTable( {
36 | "aaData": gaaData,
37 | "oLanguage": {
38 | "sSearch": "unit test"
39 | }
40 | } );
41 | oSettings = oTable.fnSettings();
42 | },
43 | function () { return oSettings.oLanguage.sSearch == "unit test"; }
44 | );
45 |
46 | oTest.fnTest(
47 | "Info language definition is in the DOM",
48 | null,
49 | function () { return $('label', oSettings.aanFeatures.f[0]).text().indexOf('unit test') !== -1; }
50 | );
51 |
52 |
53 | oTest.fnTest(
54 | "Blank search has a no (separator) inserted",
55 | function () {
56 | oSession.fnRestore();
57 | oTable = $('#example').dataTable( {
58 | "aaData": gaaData,
59 | "oLanguage": {
60 | "sSearch": ""
61 | }
62 | } );
63 | oSettings = oTable.fnSettings();
64 | },
65 | function () { return document.getElementById('example_filter').childNodes.length == 1; }
66 | );
67 |
68 |
69 | oTest.fnComplete();
70 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/oLanguage.sZeroRecords.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "oLanguage.sZeroRecords" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "aaData": gaaData
8 | } );
9 | var oSettings = oTable.fnSettings();
10 |
11 | oTest.fnTest(
12 | "Zero records language is 'No matching records found' by default",
13 | null,
14 | function () { return oSettings.oLanguage.sZeroRecords == "No matching records found"; }
15 | );
16 |
17 | oTest.fnTest(
18 | "Text is shown when empty table (after filtering)",
19 | function () { oTable.fnFilter('nothinghere'); },
20 | function () { return $('#example tbody tr td')[0].innerHTML == "No matching records found" }
21 | );
22 |
23 |
24 |
25 | oTest.fnTest(
26 | "Zero records language can be defined",
27 | function () {
28 | oSession.fnRestore();
29 | oTable = $('#example').dataTable( {
30 | "aaData": gaaData,
31 | "oLanguage": {
32 | "sZeroRecords": "unit test"
33 | }
34 | } );
35 | oSettings = oTable.fnSettings();
36 | },
37 | function () { return oSettings.oLanguage.sZeroRecords == "unit test"; }
38 | );
39 |
40 | oTest.fnTest(
41 | "Text is shown when empty table (after filtering)",
42 | function () { oTable.fnFilter('nothinghere2'); },
43 | function () { return $('#example tbody tr td')[0].innerHTML == "unit test" }
44 | );
45 |
46 |
47 | oTest.fnComplete();
48 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/2_js/sAjaxSource.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: js_data
2 | oTest.fnStart( "sAjaxSource" );
3 |
4 | /* Not interested in ajax source here other than to check it's default */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "aaData": gaaData
10 | } );
11 | var oSettings = oTable.fnSettings();
12 |
13 | oTest.fnTest(
14 | "Server side is off by default",
15 | null,
16 | function () { return oSettings.sAjaxSource == null; }
17 | );
18 |
19 | oTest.fnComplete();
20 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/aoColumns.sName.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "aoColumns.sName" );
3 |
4 | /* This has no effect at all in DOM methods - so we just check that it has applied the name */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
10 | "aoColumns": [
11 | null,
12 | null,
13 | null,
14 | { "sName": 'unit test' },
15 | null
16 | ]
17 | } );
18 | var oSettings = oTable.fnSettings();
19 |
20 | oTest.fnWaitTest(
21 | "Names are stored in the columns object",
22 | null,
23 | function () { return oSettings.aoColumns[3].sName =="unit test"; }
24 | );
25 |
26 |
27 | oTest.fnComplete();
28 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/bFilter.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bFilter" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt"
8 | } );
9 |
10 | oTest.fnWaitTest(
11 | "Filtering div exists by default",
12 | null,
13 | function () { return document.getElementById('example_filter') != null; }
14 | );
15 |
16 | /* Check can disable */
17 | oTest.fnWaitTest(
18 | "Fltering can be disabled",
19 | function () {
20 | oSession.fnRestore();
21 | $('#example').dataTable( {
22 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
23 | "bFilter": false
24 | } );
25 | },
26 | function () { return document.getElementById('example_filter') == null; }
27 | );
28 |
29 | /* Enable makes no difference */
30 | oTest.fnWaitTest(
31 | "Filtering enabled override",
32 | function () {
33 | oSession.fnRestore();
34 | $('#example').dataTable( {
35 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
36 | "bFilter": true
37 | } );
38 | },
39 | function () { return document.getElementById('example_filter') != null; }
40 | );
41 |
42 |
43 | oTest.fnComplete();
44 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/bInfo.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bInfo" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt"
8 | } );
9 |
10 | oTest.fnWaitTest(
11 | "Info div exists by default",
12 | null,
13 | function () { return document.getElementById('example_info') != null; }
14 | );
15 |
16 | /* Check can disable */
17 | oTest.fnWaitTest(
18 | "Info can be disabled",
19 | function () {
20 | oSession.fnRestore();
21 | $('#example').dataTable( {
22 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
23 | "bInfo": false
24 | } );
25 | },
26 | function () { return document.getElementById('example_info') == null; }
27 | );
28 |
29 | /* Enable makes no difference */
30 | oTest.fnWaitTest(
31 | "Info enabled override",
32 | function () {
33 | oSession.fnRestore();
34 | $('#example').dataTable( {
35 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
36 | "bInfo": true
37 | } );
38 | },
39 | function () { return document.getElementById('example_info') != null; }
40 | );
41 |
42 |
43 | oTest.fnComplete();
44 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/bPaginate.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bPaginate" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt"
8 | } );
9 |
10 | oTest.fnWaitTest(
11 | "Pagiantion div exists by default",
12 | null,
13 | function () { return document.getElementById('example_paginate') != null; }
14 | );
15 |
16 | oTest.fnWaitTest(
17 | "Information div takes paging into account",
18 | null,
19 | function () { return document.getElementById('example_info').innerHTML ==
20 | "Showing 1 to 10 of 57 entries"; }
21 | );
22 |
23 | /* Check can disable */
24 | oTest.fnWaitTest(
25 | "Pagiantion can be disabled",
26 | function () {
27 | oSession.fnRestore();
28 | $('#example').dataTable( {
29 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
30 | "bPaginate": false
31 | } );
32 | },
33 | function () { return document.getElementById('example_paginate') == null; }
34 | );
35 |
36 | oTest.fnWaitTest(
37 | "Information div takes paging disabled into account",
38 | null,
39 | function () { return document.getElementById('example_info').innerHTML ==
40 | "Showing 1 to 57 of 57 entries"; }
41 | );
42 |
43 | /* Enable makes no difference */
44 | oTest.fnWaitTest(
45 | "Pagiantion enabled override",
46 | function () {
47 | oSession.fnRestore();
48 | $('#example').dataTable( {
49 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
50 | "bPaginate": true
51 | } );
52 | },
53 | function () { return document.getElementById('example_paginate') != null; }
54 | );
55 |
56 |
57 |
58 | oTest.fnComplete();
59 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/bServerSide.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bServerSide" );
3 |
4 | /* Not interested in server-side processing here other than to check that it is off */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt"
10 | } );
11 | var oSettings = oTable.fnSettings();
12 |
13 | oTest.fnWaitTest(
14 | "Server side is off by default",
15 | null,
16 | function () { return oSettings.oFeatures.bServerSide == false; }
17 | );
18 |
19 | oTest.fnComplete();
20 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/fnServerData.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "fnServerData for Ajax sourced data" );
3 |
4 | $(document).ready( function () {
5 | var mPass;
6 |
7 | oTest.fnTest(
8 | "Argument length",
9 | function () {
10 | $('#example').dataTable( {
11 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
12 | "fnServerData": function () {
13 | mPass = arguments.length;
14 | }
15 | } );
16 | },
17 | function () { return mPass == 4; }
18 | );
19 |
20 | oTest.fnTest(
21 | "Url",
22 | function () {
23 | $('#example').dataTable( {
24 | "bDestroy": true,
25 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
26 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
27 | mPass = sUrl == "../../../examples/ajax/sources/arrays.txt";
28 | }
29 | } );
30 | },
31 | function () { return mPass; }
32 | );
33 |
34 | oTest.fnTest(
35 | "Data array",
36 | function () {
37 | $('#example').dataTable( {
38 | "bDestroy": true,
39 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
40 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
41 | mPass = aoData.length==0;
42 | }
43 | } );
44 | },
45 | function () { return mPass; }
46 | );
47 |
48 | oTest.fnTest(
49 | "Callback function",
50 | function () {
51 | $('#example').dataTable( {
52 | "bDestroy": true,
53 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
54 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
55 | mPass = typeof fnCallback == 'function';
56 | }
57 | } );
58 | },
59 | function () { return mPass; }
60 | );
61 |
62 |
63 | oTest.fnComplete();
64 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/oLanguage.sProcessing.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "oLanguage.sProcessing" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
8 | "bProcessing": true
9 | } );
10 | var oSettings = oTable.fnSettings();
11 |
12 | oTest.fnWaitTest(
13 | "Processing language is 'Processing...' by default",
14 | null,
15 | function () { return oSettings.oLanguage.sProcessing == "Processing..."; }
16 | );
17 |
18 | oTest.fnTest(
19 | "Processing language default is in the DOM",
20 | null,
21 | function () { return document.getElementById('example_processing').innerHTML = "Processing..."; }
22 | );
23 |
24 |
25 | oTest.fnWaitTest(
26 | "Processing language can be defined",
27 | function () {
28 | oSession.fnRestore();
29 | oTable = $('#example').dataTable( {
30 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
31 | "bProcessing": true,
32 | "oLanguage": {
33 | "sProcessing": "unit test"
34 | }
35 | } );
36 | oSettings = oTable.fnSettings();
37 | },
38 | function () { return oSettings.oLanguage.sProcessing == "unit test"; }
39 | );
40 |
41 | oTest.fnTest(
42 | "Processing language definition is in the DOM",
43 | null,
44 | function () { return document.getElementById('example_processing').innerHTML = "unit test"; }
45 | );
46 |
47 |
48 | oTest.fnComplete();
49 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/oLanguage.sZeroRecords.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "oLanguage.sZeroRecords" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt"
8 | } );
9 | var oSettings = oTable.fnSettings();
10 |
11 | oTest.fnWaitTest(
12 | "Zero records language is 'No matching records found' by default",
13 | null,
14 | function () { return oSettings.oLanguage.sZeroRecords == "No matching records found"; }
15 | );
16 |
17 | oTest.fnWaitTest(
18 | "Text is shown when empty table (after filtering)",
19 | function () { oTable.fnFilter('nothinghere'); },
20 | function () { return $('#example tbody tr td')[0].innerHTML == "No matching records found" }
21 | );
22 |
23 |
24 |
25 | oTest.fnWaitTest(
26 | "Zero records language can be defined",
27 | function () {
28 | oSession.fnRestore();
29 | oTable = $('#example').dataTable( {
30 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
31 | "oLanguage": {
32 | "sZeroRecords": "unit test"
33 | }
34 | } );
35 | oSettings = oTable.fnSettings();
36 | },
37 | function () { return oSettings.oLanguage.sZeroRecords == "unit test"; }
38 | );
39 |
40 | oTest.fnWaitTest(
41 | "Text is shown when empty table (after filtering)",
42 | function () { oTable.fnFilter('nothinghere2'); },
43 | function () { return $('#example tbody tr td')[0].innerHTML == "unit test" }
44 | );
45 |
46 |
47 | oTest.fnComplete();
48 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/sAjaxSource.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "sAjaxSource" );
3 |
4 | /* Sanitfy check really - all the other tests blast this */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt"
10 | } );
11 | var oSettings = oTable.fnSettings();
12 |
13 | oTest.fnWaitTest(
14 | "Server side is off by default",
15 | null,
16 | function () {
17 | return oSettings.sAjaxSource == "../../../examples/ajax/sources/arrays.txt";
18 | }
19 | );
20 |
21 | oTest.fnComplete();
22 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/3_ajax/sServerMethod.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "sServerMethod" );
3 |
4 |
5 | $(document).ready( function () {
6 | /* Check the default */
7 | var oTable = $('#example').dataTable( {
8 | "sAjaxSource": "../data_sources/method.php?method=get"
9 | } );
10 |
11 | oTest.fnWaitTest(
12 | "Default method was GET",
13 | null,
14 | function () {
15 | // A valid request will place a single row in the table
16 | return $('tbody td').eq(0).html() === '1';
17 | }
18 | );
19 |
20 | oTest.fnWaitTest(
21 | "Can make a POST request",
22 | function () {
23 | oSession.fnRestore();
24 | $('#example').dataTable( {
25 | "sAjaxSource": "../data_sources/method.php?method=post",
26 | "sServerMethod": "POST"
27 | } );
28 | },
29 | function () {
30 | return $('tbody td').eq(0).html() === '1';
31 | }
32 | );
33 |
34 | oTest.fnWaitTest(
35 | "Can make a PUT request",
36 | function () {
37 | oSession.fnRestore();
38 | $('#example').dataTable( {
39 | "sAjaxSource": "../data_sources/method.php?method=put",
40 | "sServerMethod": "PUT"
41 | } );
42 | },
43 | function () {
44 | return $('tbody td').eq(0).html() === '1';
45 | }
46 | );
47 |
48 | oTest.fnComplete();
49 | } );
50 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/-iDraw.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "iDraw - check that iDraw increments for each draw" );
3 |
4 |
5 | $(document).ready( function () {
6 | var oTable = $('#example').dataTable( {
7 | "bServerSide": true,
8 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
9 | } );
10 | var oSettings = oTable.fnSettings();
11 |
12 | oTest.fnWaitTest(
13 | "After first draw, iDraw is 1",
14 | null,
15 | function () { return oSettings.iDraw == 1; }
16 | );
17 |
18 | oTest.fnWaitTest(
19 | "After second draw, iDraw is 2",
20 | function () { oTable.fnDraw() },
21 | function () { return oSettings.iDraw == 2; }
22 | );
23 |
24 | oTest.fnWaitTest(
25 | "After sort",
26 | function () { oTable.fnSort([[1,'asc']]) },
27 | function () { return oSettings.iDraw == 3; }
28 | );
29 |
30 | oTest.fnWaitTest(
31 | "After filter",
32 | function () { oTable.fnFilter('gecko') },
33 | function () { return oSettings.iDraw == 4; }
34 | );
35 |
36 | oTest.fnWaitTest(
37 | "After another filter",
38 | function () { oTable.fnFilter('gec') },
39 | function () { return oSettings.iDraw == 5; }
40 | );
41 |
42 |
43 | oTest.fnComplete();
44 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/2440.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | /*
3 | * NOTE: There are some differences in this zero config script for server-side
4 | * processing compared to the other data sources. The main reason for this is the
5 | * difference in how the server-side processing does it's filtering. Also the
6 | * sorting state is always reset on each draw.
7 | */
8 | oTest.fnStart( "Info element with display all" );
9 |
10 | $(document).ready( function () {
11 | var oTable = $('#example').dataTable( {
12 | "bServerSide": true,
13 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
14 | } );
15 |
16 | oTable.fnSettings()._iDisplayLength = -1;
17 | oTable.oApi._fnCalculateEnd( oTable.fnSettings() );
18 | oTable.fnDraw();
19 |
20 |
21 | /* Basic checks */
22 | oTest.fnWaitTest(
23 | "Check length is correct when -1 length given",
24 | null,
25 | function () {
26 | return document.getElementById('example_info').innerHTML ==
27 | "Showing 1 to 57 of 57 entries";
28 | }
29 | );
30 |
31 | oTest.fnComplete();
32 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/2569.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "Destroy with hidden columns" );
3 |
4 | $(document).ready( function () {
5 | var mTest;
6 |
7 |
8 | $('#example').dataTable( {
9 | "bServerSide": true,
10 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
11 | "aoColumnDefs": [
12 | { "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
13 | { "bVisible": false, "aTargets": [ 3 ] }
14 | ],
15 | "fnInitComplete": function () {
16 | this.fnDestroy();
17 | }
18 | } );
19 |
20 | oTest.fnWaitTest(
21 | "Check that the number of columns in table is correct",
22 | null,
23 | function () { return $('#example tbody tr:eq(0) td').length == 5; }
24 | );
25 |
26 |
27 | oTest.fnTest(
28 | "And with scrolling",
29 | function () {
30 | $('#example').dataTable( {
31 | "bServerSide": true,
32 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
33 | "sScrollY": 200,
34 | "aoColumnDefs": [
35 | { "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
36 | { "bVisible": false, "aTargets": [ 3 ] }
37 | ],
38 | "fnInitComplete": function () {
39 | this.fnDestroy();
40 | }
41 | } );
42 | },
43 | function () { return $('#example tbody tr:eq(0) td').length == 5; }
44 | );
45 |
46 | oTest.fnComplete();
47 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/2600.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "2600 - Display rewind when changing length" );
3 |
4 | $(document).ready( function () {
5 | $('#example').dataTable( {
6 | "bServerSide": true,
7 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
8 | } );
9 |
10 | oTest.fnWaitTest(
11 | "Info correct on init",
12 | null,
13 | function () { return $('#example_info').html() == "Showing 1 to 10 of 57 entries"; }
14 | );
15 |
16 | oTest.fnWaitTest(
17 | "Page 2",
18 | function () { $('#example_next').click(); },
19 | function () { return $('#example_info').html() == "Showing 11 to 20 of 57 entries"; }
20 | );
21 |
22 | oTest.fnWaitTest(
23 | "Page 3",
24 | function () { $('#example_next').click(); },
25 | function () { return $('#example_info').html() == "Showing 21 to 30 of 57 entries"; }
26 | );
27 |
28 | oTest.fnWaitTest(
29 | "Page 4",
30 | function () { $('#example_next').click(); },
31 | function () { return $('#example_info').html() == "Showing 31 to 40 of 57 entries"; }
32 | );
33 |
34 | oTest.fnWaitTest(
35 | "Page 5",
36 | function () { $('#example_next').click(); },
37 | function () { return $('#example_info').html() == "Showing 41 to 50 of 57 entries"; }
38 | );
39 |
40 | oTest.fnWaitTest(
41 | "Rewind",
42 | function () { $('#example_length select').val('100'); $('#example_length select').change(); },
43 | function () { return $('#example_info').html() == "Showing 1 to 57 of 57 entries"; }
44 | );
45 |
46 | oTest.fnComplete();
47 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/aoColumns.bSearchable.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "aoColumns.bSeachable" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "bServerSide": true,
8 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
9 | } );
10 | var oSettings = oTable.fnSettings();
11 |
12 | oTest.fnWaitTest(
13 | "Columns are searchable by default",
14 | function () { oTable.fnFilter("Camino"); },
15 | function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Camino 1.0"; }
16 | );
17 |
18 | /* NOT ACTUALLY GOING TO TEST BSEARCHABLE HERE. Reason being is that it requires the server
19 | * side to alter it's processing, and this information about columns is not actually sent to
20 | * the server
21 | */
22 |
23 |
24 | oTest.fnComplete();
25 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/aoColumns.bUseRendered.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "aoColumns.bUseRendered" );
3 |
4 | /* bUseRendered is used to alter sorting data, if false then the original data is used for
5 | * sorting rather than the rendered data
6 | */
7 |
8 | $(document).ready( function () {
9 | /* Check the default */
10 | var mTmp = 0;
11 |
12 | var oTable = $('#example').dataTable( {
13 | "bServerSide": true,
14 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
15 | "aoColumns": [
16 | null,
17 | { "fnRender": function (a) {
18 | if ( mTmp == 0 ) {
19 | mTmp++;
20 | return "aaa";
21 | } else
22 | return a.aData[a.iDataColumn];
23 | } },
24 | null,
25 | null,
26 | null
27 | ]
28 | } );
29 | var oSettings = oTable.fnSettings();
30 |
31 | oTest.fnWaitTest(
32 | "Default for bUseRendered is true - rendered data is used for sorting",
33 | function () { $('#example thead th:eq(1)').click(); },
34 | function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'aaa'; }
35 | );
36 |
37 | /* Limited to what we can do here as the sorting is done on the server side. So stop here. */
38 |
39 |
40 |
41 |
42 | oTest.fnComplete();
43 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/aoColumns.sName.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "aoColumns.sName" );
3 |
4 | /* This has no effect at all in DOM methods - so we just check that it has applied the name */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "bServerSide": true,
10 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
11 | "aoColumns": [
12 | null,
13 | null,
14 | null,
15 | { "sName": 'unit test' },
16 | null
17 | ]
18 | } );
19 | var oSettings = oTable.fnSettings();
20 |
21 | oTest.fnWaitTest(
22 | "Names are stored in the columns object",
23 | null,
24 | function () { return oSettings.aoColumns[3].sName =="unit test"; }
25 | );
26 |
27 |
28 | oTest.fnComplete();
29 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/bFilter.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bFilter" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "bServerSide": true,
8 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
9 | } );
10 |
11 | oTest.fnWaitTest(
12 | "Filtering div exists by default",
13 | null,
14 | function () { return document.getElementById('example_filter') != null; }
15 | );
16 |
17 | /* Check can disable */
18 | oTest.fnWaitTest(
19 | "Fltering can be disabled",
20 | function () {
21 | oSession.fnRestore();
22 | $('#example').dataTable( {
23 | "bServerSide": true,
24 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
25 | "bFilter": false
26 | } );
27 | },
28 | function () { return document.getElementById('example_filter') == null; }
29 | );
30 |
31 | /* Enable makes no difference */
32 | oTest.fnWaitTest(
33 | "Filtering enabled override",
34 | function () {
35 | oSession.fnRestore();
36 | $('#example').dataTable( {
37 | "bServerSide": true,
38 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
39 | "bFilter": true
40 | } );
41 | },
42 | function () { return document.getElementById('example_filter') != null; }
43 | );
44 |
45 |
46 | oTest.fnComplete();
47 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/bInfo.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bInfo" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "bServerSide": true,
8 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
9 | } );
10 |
11 | oTest.fnWaitTest(
12 | "Info div exists by default",
13 | null,
14 | function () { return document.getElementById('example_info') != null; }
15 | );
16 |
17 | /* Check can disable */
18 | oTest.fnWaitTest(
19 | "Info can be disabled",
20 | function () {
21 | oSession.fnRestore();
22 | $('#example').dataTable( {
23 | "bServerSide": true,
24 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
25 | "bInfo": false
26 | } );
27 | },
28 | function () { return document.getElementById('example_info') == null; }
29 | );
30 |
31 | /* Enable makes no difference */
32 | oTest.fnWaitTest(
33 | "Info enabled override",
34 | function () {
35 | oSession.fnRestore();
36 | $('#example').dataTable( {
37 | "bServerSide": true,
38 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
39 | "bInfo": true
40 | } );
41 | },
42 | function () { return document.getElementById('example_info') != null; }
43 | );
44 |
45 |
46 | oTest.fnComplete();
47 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/bPaginate.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bPaginate" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "bServerSide": true,
8 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
9 | } );
10 |
11 | oTest.fnWaitTest(
12 | "Pagiantion div exists by default",
13 | null,
14 | function () { return document.getElementById('example_paginate') != null; }
15 | );
16 |
17 | oTest.fnWaitTest(
18 | "Information div takes paging into account",
19 | null,
20 | function () { return document.getElementById('example_info').innerHTML ==
21 | "Showing 1 to 10 of 57 entries"; }
22 | );
23 |
24 | /* Check can disable */
25 | oTest.fnWaitTest(
26 | "Pagiantion can be disabled",
27 | function () {
28 | oSession.fnRestore();
29 | $('#example').dataTable( {
30 | "bServerSide": true,
31 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
32 | "bPaginate": false
33 | } );
34 | },
35 | function () { return document.getElementById('example_paginate') == null; }
36 | );
37 |
38 | oTest.fnWaitTest(
39 | "Information div takes paging disabled into account",
40 | null,
41 | function () { return document.getElementById('example_info').innerHTML ==
42 | "Showing 1 to 57 of 57 entries"; }
43 | );
44 |
45 | /* Enable makes no difference */
46 | oTest.fnWaitTest(
47 | "Pagiantion enabled override",
48 | function () {
49 | oSession.fnRestore();
50 | $('#example').dataTable( {
51 | "bServerSide": true,
52 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
53 | "bPaginate": true
54 | } );
55 | },
56 | function () { return document.getElementById('example_paginate') != null; }
57 | );
58 |
59 |
60 |
61 | oTest.fnComplete();
62 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/bServerSide.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bServerSide" );
3 |
4 | /* All the other scripts blast the ssp processing */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "bServerSide": true,
10 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
11 | } );
12 | var oSettings = oTable.fnSettings();
13 |
14 | oTest.fnWaitTest(
15 | "Server side can be set to on",
16 | null,
17 | function () { return oSettings.oFeatures.bServerSide == true; }
18 | );
19 |
20 | oTest.fnComplete();
21 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/fnServerData.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "fnServerData for SSP sourced data" );
3 |
4 | $(document).ready( function () {
5 | var mPass;
6 |
7 | oTest.fnTest(
8 | "Argument length",
9 | function () {
10 | $('#example').dataTable( {
11 | "bServerSide": true,
12 | "sAjaxSource": "../data_sources/param.php",
13 | "fnServerData": function () {
14 | mPass = arguments.length;
15 | }
16 | } );
17 | },
18 | function () { return mPass == 4; }
19 | );
20 |
21 | oTest.fnTest(
22 | "Url",
23 | function () {
24 | $('#example').dataTable( {
25 | "bDestroy": true,
26 | "bServerSide": true,
27 | "sAjaxSource": "../data_sources/param.php",
28 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
29 | mPass = sUrl == "../data_sources/param.php";
30 | }
31 | } );
32 | },
33 | function () { return mPass; }
34 | );
35 |
36 | oTest.fnTest(
37 | "Data array",
38 | function () {
39 | $('#example').dataTable( {
40 | "bDestroy": true,
41 | "bServerSide": true,
42 | "sAjaxSource": "../data_sources/param.php",
43 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
44 | mPass = aoData.length==35;
45 | }
46 | } );
47 | },
48 | function () { return mPass; }
49 | );
50 |
51 | oTest.fnTest(
52 | "Callback function",
53 | function () {
54 | $('#example').dataTable( {
55 | "bDestroy": true,
56 | "bServerSide": true,
57 | "sAjaxSource": "../data_sources/param.php",
58 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
59 | mPass = typeof fnCallback == 'function';
60 | }
61 | } );
62 | },
63 | function () { return mPass; }
64 | );
65 |
66 |
67 | oTest.fnComplete();
68 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/oLanguage.sProcessing.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "oLanguage.sProcessing" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "bServerSide": true,
8 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
9 | "bProcessing": true
10 | } );
11 | var oSettings = oTable.fnSettings();
12 |
13 | oTest.fnWaitTest(
14 | "Processing language is 'Processing...' by default",
15 | null,
16 | function () { return oSettings.oLanguage.sProcessing == "Processing..."; }
17 | );
18 |
19 | oTest.fnTest(
20 | "Processing language default is in the DOM",
21 | null,
22 | function () { return document.getElementById('example_processing').innerHTML = "Processing..."; }
23 | );
24 |
25 |
26 | oTest.fnWaitTest(
27 | "Processing language can be defined",
28 | function () {
29 | oSession.fnRestore();
30 | oTable = $('#example').dataTable( {
31 | "bServerSide": true,
32 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
33 | "bProcessing": true,
34 | "oLanguage": {
35 | "sProcessing": "unit test"
36 | }
37 | } );
38 | oSettings = oTable.fnSettings();
39 | },
40 | function () { return oSettings.oLanguage.sProcessing == "unit test"; }
41 | );
42 |
43 | oTest.fnTest(
44 | "Processing language definition is in the DOM",
45 | null,
46 | function () { return document.getElementById('example_processing').innerHTML = "unit test"; }
47 | );
48 |
49 |
50 | oTest.fnComplete();
51 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/oLanguage.sZeroRecords.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "oLanguage.sZeroRecords" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "bServerSide": true,
8 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
9 | } );
10 | var oSettings = oTable.fnSettings();
11 |
12 | oTest.fnWaitTest(
13 | "Zero records language is 'No matching records found' by default",
14 | null,
15 | function () { return oSettings.oLanguage.sZeroRecords == "No matching records found"; }
16 | );
17 |
18 | oTest.fnWaitTest(
19 | "Text is shown when empty table (after filtering)",
20 | function () { oTable.fnFilter('nothinghere'); },
21 | function () {
22 | if ( $('#example tbody tr td').length == 0 )
23 | return false;
24 | return $('#example tbody tr td')[0].innerHTML == "No matching records found";
25 | }
26 | );
27 |
28 |
29 |
30 | oTest.fnWaitTest(
31 | "Zero records language can be defined",
32 | function () {
33 | oSession.fnRestore();
34 | oTable = $('#example').dataTable( {
35 | "bServerSide": true,
36 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
37 | "oLanguage": {
38 | "sZeroRecords": "unit test"
39 | }
40 | } );
41 | oSettings = oTable.fnSettings();
42 | },
43 | function () { return oSettings.oLanguage.sZeroRecords == "unit test"; }
44 | );
45 |
46 | oTest.fnWaitTest(
47 | "Text is shown when empty table (after filtering)",
48 | function () { oTable.fnFilter('nothinghere2'); },
49 | function () {
50 | if ( $('#example tbody tr td').length == 0 )
51 | return false;
52 | return $('#example tbody tr td')[0].innerHTML == "unit test"
53 | }
54 | );
55 |
56 |
57 | oTest.fnComplete();
58 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/sAjaxSource.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "sAjaxSource" );
3 |
4 | /* Sanitfy check really - all the other tests blast this */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "bServerSide": true,
10 | "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
11 | } );
12 | var oSettings = oTable.fnSettings();
13 |
14 | oTest.fnWaitTest(
15 | "Server side is off by default",
16 | null,
17 | function () {
18 | return oSettings.sAjaxSource == "../../../examples/server_side/scripts/server_processing.php";
19 | }
20 | );
21 |
22 | oTest.fnComplete();
23 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/4_server-side/sServerMethod.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "sServerMethod" );
3 |
4 |
5 | $(document).ready( function () {
6 | /* Check the default */
7 | var oTable = $('#example').dataTable( {
8 | "bServerSide": true,
9 | "sAjaxSource": "../data_sources/method.php?method=get"
10 | } );
11 |
12 | oTest.fnWaitTest(
13 | "Default method was GET",
14 | null,
15 | function () {
16 | // A valid request will place a single row in the table
17 | return $('tbody td').eq(0).html() === '1';
18 | }
19 | );
20 |
21 | oTest.fnWaitTest(
22 | "Can make a POST request",
23 | function () {
24 | oSession.fnRestore();
25 | $('#example').dataTable( {
26 | "bServerSide": true,
27 | "sAjaxSource": "../data_sources/method.php?method=post",
28 | "sServerMethod": "POST"
29 | } );
30 | },
31 | function () {
32 | return $('tbody td').eq(0).html() === '1';
33 | }
34 | );
35 |
36 | oTest.fnWaitTest(
37 | "Can make a PUT request",
38 | function () {
39 | oSession.fnRestore();
40 | $('#example').dataTable( {
41 | "bServerSide": true,
42 | "sAjaxSource": "../data_sources/method.php?method=put",
43 | "sServerMethod": "PUT"
44 | } );
45 | },
46 | function () {
47 | return $('tbody td').eq(0).html() === '1';
48 | }
49 | );
50 |
51 | oTest.fnComplete();
52 | } );
53 |
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "aoColumns.sName" );
3 |
4 | /* This has no effect at all in DOM methods - so we just check that it has applied the name */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
10 | "aoColumns": [
11 | { "mData": "engine" },
12 | { "mData": "browser" },
13 | { "mData": "platform" },
14 | { "mData": "version", "sName": 'unit test' },
15 | { "mData": "grade" }
16 | ]
17 | } );
18 | var oSettings = oTable.fnSettings();
19 |
20 | oTest.fnWaitTest(
21 | "Names are stored in the columns object",
22 | null,
23 | function () { return oSettings.aoColumns[3].sName =="unit test"; }
24 | );
25 |
26 |
27 | oTest.fnComplete();
28 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bServerSide" );
3 |
4 | /* Not interested in server-side processing here other than to check that it is off */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
10 | "aoColumns": [
11 | { "mData": "engine" },
12 | { "mData": "browser" },
13 | { "mData": "platform" },
14 | { "mData": "version" },
15 | { "mData": "grade" }
16 | ]
17 | } );
18 | var oSettings = oTable.fnSettings();
19 |
20 | oTest.fnWaitTest(
21 | "Server side is off by default",
22 | null,
23 | function () { return oSettings.oFeatures.bServerSide == false; }
24 | );
25 |
26 | oTest.fnComplete();
27 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "sAjaxSource" );
3 |
4 | /* Sanitfy check really - all the other tests blast this */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
10 | "aoColumns": [
11 | { "mData": "engine" },
12 | { "mData": "browser" },
13 | { "mData": "platform" },
14 | { "mData": "version" },
15 | { "mData": "grade" }
16 | ]
17 | } );
18 | var oSettings = oTable.fnSettings();
19 |
20 | oTest.fnWaitTest(
21 | "Server side is off by default",
22 | null,
23 | function () {
24 | return oSettings.sAjaxSource == "../../../examples/ajax/sources/objects.txt";
25 | }
26 | );
27 |
28 | oTest.fnComplete();
29 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sName.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "aoColumns.sName" );
3 |
4 | /* This has no effect at all in DOM methods - so we just check that it has applied the name */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
10 | "bDeferRender": true,
11 | "aoColumns": [
12 | null,
13 | null,
14 | null,
15 | { "sName": 'unit test' },
16 | null
17 | ]
18 | } );
19 | var oSettings = oTable.fnSettings();
20 |
21 | oTest.fnWaitTest(
22 | "Names are stored in the columns object",
23 | null,
24 | function () { return oSettings.aoColumns[3].sName =="unit test"; }
25 | );
26 |
27 |
28 | oTest.fnComplete();
29 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/bFilter.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bFilter" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
8 | "bDeferRender": true
9 | } );
10 |
11 | oTest.fnWaitTest(
12 | "Filtering div exists by default",
13 | null,
14 | function () { return document.getElementById('example_filter') != null; }
15 | );
16 |
17 | /* Check can disable */
18 | oTest.fnWaitTest(
19 | "Fltering can be disabled",
20 | function () {
21 | oSession.fnRestore();
22 | $('#example').dataTable( {
23 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
24 | "bDeferRender": true,
25 | "bFilter": false
26 | } );
27 | },
28 | function () { return document.getElementById('example_filter') == null; }
29 | );
30 |
31 | /* Enable makes no difference */
32 | oTest.fnWaitTest(
33 | "Filtering enabled override",
34 | function () {
35 | oSession.fnRestore();
36 | $('#example').dataTable( {
37 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
38 | "bDeferRender": true,
39 | "bFilter": true
40 | } );
41 | },
42 | function () { return document.getElementById('example_filter') != null; }
43 | );
44 |
45 |
46 | oTest.fnComplete();
47 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/bInfo.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bInfo" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
8 | "bDeferRender": true
9 | } );
10 |
11 | oTest.fnWaitTest(
12 | "Info div exists by default",
13 | null,
14 | function () { return document.getElementById('example_info') != null; }
15 | );
16 |
17 | /* Check can disable */
18 | oTest.fnWaitTest(
19 | "Info can be disabled",
20 | function () {
21 | oSession.fnRestore();
22 | $('#example').dataTable( {
23 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
24 | "bDeferRender": true,
25 | "bInfo": false
26 | } );
27 | },
28 | function () { return document.getElementById('example_info') == null; }
29 | );
30 |
31 | /* Enable makes no difference */
32 | oTest.fnWaitTest(
33 | "Info enabled override",
34 | function () {
35 | oSession.fnRestore();
36 | $('#example').dataTable( {
37 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
38 | "bDeferRender": true,
39 | "bInfo": true
40 | } );
41 | },
42 | function () { return document.getElementById('example_info') != null; }
43 | );
44 |
45 |
46 | oTest.fnComplete();
47 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/bPaginate.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bPaginate" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
8 | "bDeferRender": true
9 | } );
10 |
11 | oTest.fnWaitTest(
12 | "Pagiantion div exists by default",
13 | null,
14 | function () { return document.getElementById('example_paginate') != null; }
15 | );
16 |
17 | oTest.fnWaitTest(
18 | "Information div takes paging into account",
19 | null,
20 | function () { return document.getElementById('example_info').innerHTML ==
21 | "Showing 1 to 10 of 57 entries"; }
22 | );
23 |
24 | /* Check can disable */
25 | oTest.fnWaitTest(
26 | "Pagiantion can be disabled",
27 | function () {
28 | oSession.fnRestore();
29 | $('#example').dataTable( {
30 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
31 | "bDeferRender": true,
32 | "bPaginate": false
33 | } );
34 | },
35 | function () { return document.getElementById('example_paginate') == null; }
36 | );
37 |
38 | oTest.fnWaitTest(
39 | "Information div takes paging disabled into account",
40 | null,
41 | function () { return document.getElementById('example_info').innerHTML ==
42 | "Showing 1 to 57 of 57 entries"; }
43 | );
44 |
45 | /* Enable makes no difference */
46 | oTest.fnWaitTest(
47 | "Pagiantion enabled override",
48 | function () {
49 | oSession.fnRestore();
50 | $('#example').dataTable( {
51 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
52 | "bDeferRender": true,
53 | "bPaginate": true
54 | } );
55 | },
56 | function () { return document.getElementById('example_paginate') != null; }
57 | );
58 |
59 |
60 |
61 | oTest.fnComplete();
62 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/bServerSide.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "bServerSide" );
3 |
4 | /* Not interested in server-side processing here other than to check that it is off */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
10 | "bDeferRender": true
11 | } );
12 | var oSettings = oTable.fnSettings();
13 |
14 | oTest.fnWaitTest(
15 | "Server side is off by default",
16 | null,
17 | function () { return oSettings.oFeatures.bServerSide == false; }
18 | );
19 |
20 | oTest.fnComplete();
21 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/fnServerData.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "fnServerData for Ajax sourced data" );
3 |
4 | $(document).ready( function () {
5 | var mPass;
6 |
7 | oTest.fnTest(
8 | "Argument length",
9 | function () {
10 | $('#example').dataTable( {
11 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
12 | "bDeferRender": true,
13 | "fnServerData": function () {
14 | mPass = arguments.length;
15 | }
16 | } );
17 | },
18 | function () { return mPass == 4; }
19 | );
20 |
21 | oTest.fnTest(
22 | "Url",
23 | function () {
24 | $('#example').dataTable( {
25 | "bDestroy": true,
26 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
27 | "bDeferRender": true,
28 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
29 | mPass = sUrl == "../../../examples/ajax/sources/arrays.txt";
30 | }
31 | } );
32 | },
33 | function () { return mPass; }
34 | );
35 |
36 | oTest.fnTest(
37 | "Data array",
38 | function () {
39 | $('#example').dataTable( {
40 | "bDestroy": true,
41 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
42 | "bDeferRender": true,
43 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
44 | mPass = aoData.length==0;
45 | }
46 | } );
47 | },
48 | function () { return mPass; }
49 | );
50 |
51 | oTest.fnTest(
52 | "Callback function",
53 | function () {
54 | $('#example').dataTable( {
55 | "bDestroy": true,
56 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
57 | "bDeferRender": true,
58 | "fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
59 | mPass = typeof fnCallback == 'function';
60 | }
61 | } );
62 | },
63 | function () { return mPass; }
64 | );
65 |
66 |
67 | oTest.fnComplete();
68 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sProcessing.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "oLanguage.sProcessing" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
8 | "bDeferRender": true,
9 | "bProcessing": true
10 | } );
11 | var oSettings = oTable.fnSettings();
12 |
13 | oTest.fnWaitTest(
14 | "Processing language is 'Processing...' by default",
15 | null,
16 | function () { return oSettings.oLanguage.sProcessing == "Processing..."; }
17 | );
18 |
19 | oTest.fnTest(
20 | "Processing language default is in the DOM",
21 | null,
22 | function () { return document.getElementById('example_processing').innerHTML = "Processing..."; }
23 | );
24 |
25 |
26 | oTest.fnWaitTest(
27 | "Processing language can be defined",
28 | function () {
29 | oSession.fnRestore();
30 | oTable = $('#example').dataTable( {
31 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
32 | "bDeferRender": true,
33 | "bProcessing": true,
34 | "oLanguage": {
35 | "sProcessing": "unit test"
36 | }
37 | } );
38 | oSettings = oTable.fnSettings();
39 | },
40 | function () { return oSettings.oLanguage.sProcessing == "unit test"; }
41 | );
42 |
43 | oTest.fnTest(
44 | "Processing language definition is in the DOM",
45 | null,
46 | function () { return document.getElementById('example_processing').innerHTML = "unit test"; }
47 | );
48 |
49 |
50 | oTest.fnComplete();
51 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sZeroRecords.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "oLanguage.sZeroRecords" );
3 |
4 | $(document).ready( function () {
5 | /* Check the default */
6 | var oTable = $('#example').dataTable( {
7 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
8 | "bDeferRender": true
9 | } );
10 | var oSettings = oTable.fnSettings();
11 |
12 | oTest.fnWaitTest(
13 | "Zero records language is 'No matching records found' by default",
14 | null,
15 | function () { return oSettings.oLanguage.sZeroRecords == "No matching records found"; }
16 | );
17 |
18 | oTest.fnWaitTest(
19 | "Text is shown when empty table (after filtering)",
20 | function () { oTable.fnFilter('nothinghere'); },
21 | function () { return $('#example tbody tr td')[0].innerHTML == "No matching records found" }
22 | );
23 |
24 |
25 |
26 | oTest.fnWaitTest(
27 | "Zero records language can be defined",
28 | function () {
29 | oSession.fnRestore();
30 | oTable = $('#example').dataTable( {
31 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
32 | "bDeferRender": true,
33 | "oLanguage": {
34 | "sZeroRecords": "unit test"
35 | }
36 | } );
37 | oSettings = oTable.fnSettings();
38 | },
39 | function () { return oSettings.oLanguage.sZeroRecords == "unit test"; }
40 | );
41 |
42 | oTest.fnWaitTest(
43 | "Text is shown when empty table (after filtering)",
44 | function () { oTable.fnFilter('nothinghere2'); },
45 | function () { return $('#example tbody tr td')[0].innerHTML == "unit test" }
46 | );
47 |
48 |
49 | oTest.fnComplete();
50 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/media/unit_testing/tests_onhold/6_delayed_rendering/sAjaxSource.js:
--------------------------------------------------------------------------------
1 | // DATA_TEMPLATE: empty_table
2 | oTest.fnStart( "sAjaxSource" );
3 |
4 | /* Sanitfy check really - all the other tests blast this */
5 |
6 | $(document).ready( function () {
7 | /* Check the default */
8 | var oTable = $('#example').dataTable( {
9 | "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
10 | "bDeferRender": true
11 | } );
12 | var oSettings = oTable.fnSettings();
13 |
14 | oTest.fnWaitTest(
15 | "Server side is off by default",
16 | null,
17 | function () {
18 | return oSettings.sAjaxSource == "../../../examples/ajax/sources/arrays.txt";
19 | }
20 | );
21 |
22 | oTest.fnComplete();
23 | } );
--------------------------------------------------------------------------------
/app/bower_components/datatables/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DataTables",
3 | "version": "1.10.2",
4 | "title": "DataTables",
5 | "author": {
6 | "name": "Allan Jardine",
7 | "url": "http://sprymedia.co.uk"
8 | },
9 | "licenses": [
10 | {
11 | "type": "MIT",
12 | "url": "http://datatables.net/license"
13 | }
14 | ],
15 | "dependencies": {
16 | "jquery": ">=1.7"
17 | },
18 | "description": "DataTables enhances HTML tables with the ability to sort, filter and page the data in the table very easily. It provides a comprehensive API and set of configuration options, allowing you to consume data from virtually any data source.",
19 | "keywords": [
20 | "DataTables",
21 | "DataTable",
22 | "table",
23 | "grid",
24 | "filter",
25 | "sort",
26 | "page",
27 | "internationalisable"
28 | ],
29 | "homepage": "http://datatables.net"
30 | }
31 |
--------------------------------------------------------------------------------
/app/bower_components/jquery/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "version": "2.1.1",
4 | "main": "dist/jquery.js",
5 | "license": "MIT",
6 | "ignore": [
7 | "**/.*",
8 | "build",
9 | "speed",
10 | "test",
11 | "*.md",
12 | "AUTHORS.txt",
13 | "Gruntfile.js",
14 | "package.json"
15 | ],
16 | "devDependencies": {
17 | "sizzle": "1.10.19",
18 | "requirejs": "2.1.10",
19 | "qunit": "1.14.0",
20 | "sinon": "1.8.1"
21 | },
22 | "keywords": [
23 | "jquery",
24 | "javascript",
25 | "library"
26 | ],
27 | "homepage": "https://github.com/jquery/jquery",
28 | "_release": "2.1.1",
29 | "_resolution": {
30 | "type": "version",
31 | "tag": "2.1.1",
32 | "commit": "4dec426aa2a6cbabb1b064319ba7c272d594a688"
33 | },
34 | "_source": "git://github.com/jquery/jquery.git",
35 | "_target": ">=1.7.0",
36 | "_originalSource": "jquery"
37 | }
--------------------------------------------------------------------------------
/app/bower_components/jquery/MIT-LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2014 jQuery Foundation and other contributors
2 | http://jquery.com/
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining
5 | a copy of this software and associated documentation files (the
6 | "Software"), to deal in the Software without restriction, including
7 | without limitation the rights to use, copy, modify, merge, publish,
8 | distribute, sublicense, and/or sell copies of the Software, and to
9 | permit persons to whom the Software is furnished to do so, subject to
10 | the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/app/bower_components/jquery/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "version": "2.1.1",
4 | "main": "dist/jquery.js",
5 | "license": "MIT",
6 | "ignore": [
7 | "**/.*",
8 | "build",
9 | "speed",
10 | "test",
11 | "*.md",
12 | "AUTHORS.txt",
13 | "Gruntfile.js",
14 | "package.json"
15 | ],
16 | "devDependencies": {
17 | "sizzle": "1.10.19",
18 | "requirejs": "2.1.10",
19 | "qunit": "1.14.0",
20 | "sinon": "1.8.1"
21 | },
22 | "keywords": [
23 | "jquery",
24 | "javascript",
25 | "library"
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/app/bower_components/jquery/src/ajax/parseJSON.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Support: Android 2.3
6 | // Workaround failure to string-cast null input
7 | jQuery.parseJSON = function( data ) {
8 | return JSON.parse( data + "" );
9 | };
10 |
11 | return jQuery.parseJSON;
12 |
13 | });
14 |
--------------------------------------------------------------------------------
/app/bower_components/jquery/src/ajax/parseXML.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Cross-browser xml parsing
6 | jQuery.parseXML = function( data ) {
7 | var xml, tmp;
8 | if ( !data || typeof data !== "string" ) {
9 | return null;
10 | }
11 |
12 | // Support: IE9
13 | try {
14 | tmp = new DOMParser();
15 | xml = tmp.parseFromString( data, "text/xml" );
16 | } catch ( e ) {
17 | xml = undefined;
18 | }
19 |
20 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
21 | jQuery.error( "Invalid XML: " + data );
22 | }
23 | return xml;
24 | };
25 |
26 | return jQuery.parseXML;
27 |
28 | });
29 |
--------------------------------------------------------------------------------
/app/bower_components/jquery/src/ajax/script.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "../ajax"
4 | ], function( jQuery ) {
5 |
6 | // Install script dataType
7 | jQuery.ajaxSetup({
8 | accepts: {
9 | script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
10 | },
11 | contents: {
12 | script: /(?:java|ecma)script/
13 | },
14 | converters: {
15 | "text script": function( text ) {
16 | jQuery.globalEval( text );
17 | return text;
18 | }
19 | }
20 | });
21 |
22 | // Handle cache's special case and crossDomain
23 | jQuery.ajaxPrefilter( "script", function( s ) {
24 | if ( s.cache === undefined ) {
25 | s.cache = false;
26 | }
27 | if ( s.crossDomain ) {
28 | s.type = "GET";
29 | }
30 | });
31 |
32 | // Bind script tag hack transport
33 | jQuery.ajaxTransport( "script", function( s ) {
34 | // This transport only deals with cross domain requests
35 | if ( s.crossDomain ) {
36 | var script, callback;
37 | return {
38 | send: function( _, complete ) {
39 | script = jQuery("
20 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/js/components/FilterablePageableTable.jsx:
--------------------------------------------------------------------------------
1 | /** @jsx React.DOM */
2 | var React = require('react/addons');
3 | $ = jQuery = require('jquery');
4 | var PageableTable = require('./PageableTable.jsx');
5 | var FilterSearch = require('./FilterSearch.jsx');
6 | bootstrap = require('../../bower_components/bootstrap/dist/js/bootstrap')
7 | var Backbone = require('backbone');
8 | require('backbone.paginator');
9 | var _ = require('lodash');
10 |
11 | /*
12 | Options:
13 |
14 | initialCollection : a backbone pageable collection
15 | maximumPages : the number of pages to display before using an ellipsis, defaults to 10
16 |
17 | */
18 |
19 | module.exports = React.createClass({displayName: 'exports',
20 | getInitialState: function() {
21 | return {initialCollection: this.props.initialCollection}
22 | },
23 |
24 | /**
25 | * Search handler for collections
26 | * @param {collection} newCollection The updated collection upon search
27 | */
28 | search: function(newCollection) {
29 | this.setState({collection: newCollection})
30 | },
31 | render: function () {
32 | var self = this;
33 | var maximumPages = this.props.maximumPages ? this.props.maximumPages : 10;
34 | return(
35 |
)
39 | }
40 | });
41 |
--------------------------------------------------------------------------------
/app/js/components/PageableTable.jsx:
--------------------------------------------------------------------------------
1 | /** @jsx React.DOM */
2 | var React = require('react/addons');
3 | $ = jQuery = require('jquery');
4 | var Table = require('./Table.jsx');
5 | var BackbonePagination = require('./BackbonePagination.jsx');
6 | global.bootstrap = require('../../bower_components/bootstrap/dist/js/bootstrap')
7 | var Backbone = require('backbone');
8 | require('backbone.paginator');
9 | var _ = require('lodash');
10 |
11 | /*
12 | Options:
13 |
14 | initialCollection : a backbone pageable collection
15 | maximumPages : the number of pages to display before using an ellipsis, defaults to 10
16 |
17 | */
18 |
19 | module.exports = React.createClass({displayName: 'exports',
20 | getInitialState: function() {
21 | return {initialCollection: this.props.initialCollection}
22 | },
23 | /**
24 | * Change page handler for collections
25 | * @param {collection} newCollection The updated collection upon changing pages
26 | */
27 | changePage: function(newCollection) {
28 | this.setState({collection: newCollection})
29 | },
30 | render: function () {
31 | var self = this;
32 | var maximumPages = this.props.maximumPages ? this.props.maximumPages : 10;
33 | return(
34 |
)
38 | }
39 | });
40 |
--------------------------------------------------------------------------------
/app/preprocessor.js:
--------------------------------------------------------------------------------
1 | var ReactTools = require('react-tools');
2 | var MAGIC = "/** @jsx";
3 | module.exports = {
4 | process: function(src, file) {
5 | if (!/\.jsx$/.test(file) || src.slice(0, MAGIC.length) != MAGIC) return src;
6 | return ReactTools.transform(src);
7 | }
8 | };
9 |
--------------------------------------------------------------------------------
/app/server.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
21 |
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "backbone-react-ui",
3 | "version": "0.1.0",
4 | "authors": [
5 | "James Hrisho "
6 | ],
7 | "moduleType": [
8 | "globals"
9 | ],
10 | "license": "MIT",
11 | "ignore": [
12 | "**/.*",
13 | "node_modules",
14 | "bower_components",
15 | "test",
16 | "tests"
17 | ],
18 | "dependencies": {
19 | "bootstrap": "~3.2.0",
20 | "datatables": "~1.10.2"
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | module.exports.BackbonePagination = require('./app/js/components/BackbonePagination.jsx')
2 | module.exports.Table = require('./app/js/components/Table.jsx')
3 | module.exports.PageableTable = require('./app/js/components/PageableTable.jsx')
4 | module.exports.FilterablePageableTable = require('./app/js/components/FilterablePageableTable.jsx')
5 | module.exports.FilterSearch = require('./app/js/components/FilterSearch.jsx')
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "backbone-react-ui",
3 | "version": "0.1.8",
4 | "description": "React components for use with Backbone, Bootstrap and Backbone.Paginator",
5 | "main": "index",
6 | "directories": {
7 | "test": "__tests__"
8 | },
9 | "scripts": {
10 | "test": "./node_modules/jest-cli/bin/jest.js"
11 | },
12 | "homepage": "https://github.com/securingsincity/backbone-react-ui",
13 | "dependencies": {
14 | "backbone": "^1.1.2",
15 | "backbone.paginator": "^2.0.2",
16 | "browserify": "^5.11.0",
17 | "express": "^4.8.7",
18 | "gulp-express": "0.0.9",
19 | "jquery": "^2.1.1",
20 | "lodash": "^2.4.1",
21 | "react": "^0.12.2",
22 | "request": "^2.36.0",
23 | "serve-index": "^1.2.0",
24 | "serve-static": "^1.5.3"
25 | },
26 | "bugs": {
27 | "url": "https://github.com/securingsincity/backbone-react-ui/issues"
28 | },
29 | "keywords": [
30 | "backbone",
31 | "react-component",
32 | "react",
33 | "jest",
34 | "datatables"
35 | ],
36 | "devDependencies": {
37 | "gulp-connect-multi": "^1.0.8",
38 | "jest-cli": "*",
39 | "react-tools": "^0.12.2",
40 | "reactify": "^0.17.1",
41 | "vinyl-source-stream": "^0.1.1"
42 | },
43 | "browserify": {
44 | "transform": [
45 | "reactify"
46 | ]
47 | },
48 | "jest": {
49 | "scriptPreprocessor": "/preprocessor.js",
50 | "rootDir": "app",
51 | "testPathIgnorePatterns": [
52 | "/node_modules/",
53 | "/node_modules/"
54 | ],
55 | "collectCoverage": true,
56 | "unmockedModulePathPatterns": [
57 | "/node_modules/react"
58 | ]
59 | },
60 | "repository": {
61 | "type": "git",
62 | "url": "https://github.com/securingsincity/backbone-react-ui.git"
63 | },
64 | "author": "James Hrisho",
65 | "license": "MIT"
66 | }
67 |
--------------------------------------------------------------------------------