Difference between revisions of "Team:TU Delft/Parts"

Line 121: Line 121:
  
 
<script>/* Documentation for this tablesorter FORK can be found at
 
<script>/* Documentation for this tablesorter FORK can be found at
* http://mottie.github.io/tablesorter/docs/
+
* http://mottie.github.io/tablesorter/docs/
*/
+
*/
$(function() {
+
$(function () {
  $('table').tablesorter({
+
$('table').tablesorter({
  
    // *** APPEARANCE ***
+
// *** APPEARANCE ***
    // Add a theme - 'blackice', 'blue', 'dark', 'default', 'dropbox',
+
// Add a theme - 'blackice', 'blue', 'dark', 'default', 'dropbox',
    // 'green', 'grey' or 'ice' stylesheets have all been loaded
+
// 'green', 'grey' or 'ice' stylesheets have all been loaded
    // to use 'bootstrap' or 'jui', you'll need to include "uitheme"
+
// to use 'bootstrap' or 'jui', you'll need to include 'uitheme'
    // in the widgets option - To modify the class names, extend from
+
// in the widgets option - To modify the class names, extend from
    // themes variable. Look for "$.extend($.tablesorter.themes.jui"
+
// themes variable. Look for '$.extend($.tablesorter.themes.jui'
    // at the bottom of this window
+
// at the bottom of this window
    // this option only adds a table class name "tablesorter-{theme}"
+
// this option only adds a table class name 'tablesorter-{theme}'
    theme: 'blackice',
+
theme: 'bootstrap',
  
    // fix the column widths
+
// fix the column widths
    widthFixed: false,
+
widthFixed: false,
  
    // Show an indeterminate timer icon in the header when the table
+
// Show an indeterminate timer icon in the header when the table
    // is sorted or filtered
+
// is sorted or filtered
    showProcessing: false,
+
showProcessing: false,
  
    // header layout template (HTML ok); {content} = innerHTML,
+
// header layout template (HTML ok); {content} = innerHTML,
    // {icon} = <i/> (class from cssIcon)
+
// {icon} = <i/> (class from cssIcon)
    headerTemplate: '{content}{icon}',
+
headerTemplate: '{content}{icon}',
  
    // return the modified template string
+
// return the modified template string
    onRenderTemplate: null, // function(index, tmpl){ return tmpl; },
+
onRenderTemplate: null, // function(index, template){ return template; },
  
    // called after each header cell is rendered, use index to target
+
// called after each header cell is rendered, use index to target the column
    // the column customize header HTML
+
// customize header HTML
    onRenderHeader: function(index) {
+
onRenderHeader: function (index) {
      // the span wrapper is added by default
+
// the span wrapper is added by default
      $(this)
+
$(this).find('div.tablesorter-header-inner').addClass('roundedCorners');
        .find('div.tablesorter-header-inner')
+
},
        .addClass('roundedCorners');
+
    },
+
  
    // *** FUNCTIONALITY ***
+
// *** FUNCTIONALITY ***
    // prevent text selection in header
+
// prevent text selection in header
    cancelSelection: true,
+
cancelSelection: true,
  
    // add tabindex to header for keyboard accessibility
+
// add tabindex to header for keyboard accessibility
    tabIndex: true,
+
tabIndex: true,
  
    // other options: "ddmmyyyy" & "yyyymmdd"
+
// other options: 'ddmmyyyy' & 'yyyymmdd'
    dateFormat: "mmddyyyy",
+
dateFormat: 'mmddyyyy',
  
    // The key used to select more than one column for multi-column
+
// The key used to select more than one column for multi-column
    // sorting.
+
// sorting.
    sortMultiSortKey: "shiftKey",
+
sortMultiSortKey: 'shiftKey',
  
    // key used to remove sorting on a column
+
// key used to remove sorting on a column
    sortResetKey: 'ctrlKey',
+
sortResetKey: 'ctrlKey',
  
    // false for German "1.234.567,89" or French "1 234 567,89"
+
// false for German '1.234.567,89' or French '1 234 567,89'
    usNumberFormat: true,
+
usNumberFormat: true,
  
    // If true, parsing of all table cell data will be delayed
+
// If true, parsing of all table cell data will be delayed
    // until the user initializes a sort
+
// until the user initializes a sort
    delayInit: false,
+
delayInit: false,
  
    // if true, server-side sorting should be performed because
+
// if true, server-side sorting should be performed because
    // client-side sorting will be disabled, but the ui and events
+
// client-side sorting will be disabled, but the ui and events
    // will still be used.
+
// will still be used.
    serverSideSorting: false,
+
serverSideSorting: false,
  
    // default setting to trigger a resort after an "update",
+
// default setting to trigger a resort after an 'update',
    // "addRows", "updateCell", etc has completed
+
// 'addRows', 'updateCell', etc has completed
    resort: true,
+
resort: true,
  
    // *** SORT OPTIONS ***
+
// *** SORT OPTIONS ***
    // These are detected by default,
+
// These are detected by default,
    // but you can change or disable them
+
// but you can change or disable them
    // these can also be set using data-attributes or class names
+
// these can also be set using data-attributes or class names
    headers: {
+
headers: {
      // set "sorter : false" (no quotes) to disable the column
+
// set 'sorter : false' (no quotes) to disable the column
      0: {
+
0: { sorter: 'text' },
        sorter: "text"
+
1: { sorter: 'digit' },
      },
+
2: { sorter: 'text' },
      1: {
+
3: { sorter: 'url' }
        sorter: "text"
+
},
      }
+
    },
+
  
    // ignore case while sorting
+
// ignore case while sorting
    ignoreCase: true,
+
ignoreCase: true,
  
    // forces the user to have this/these column(s) sorted first
+
// forces the user to have this/these column(s) sorted first
    sortForce: null,
+
sortForce: null,
    // initial sort order of the columns,
+
// initial sort order of the columns, example sortList: [[0,0],[1,0]],
    // example sortList: [[0,0],[1,0]],
+
// [[columnIndex, sortDirection], ... ]
    // [[columnIndex, sortDirection], ... ]
+
sortList: [ [0,0],[1,0],[2,0] ],
    sortList: [
+
// default sort that is added to the end of the users sort
      [0, 0],
+
// selection.
      [1, 0],
+
sortAppend: null,
      [2, 0]
+
    ],
+
    // default sort that is added to the end of the users sort
+
    // selection.
+
    sortAppend: null,
+
  
    // when sorting two rows with exactly the same content,
+
// when sorting two rows with exactly the same content,
    // the original sort order is maintained
+
// the original sort order is maintained
    sortStable: false,
+
sortStable: false,
  
    // starting sort direction "asc" or "desc"
+
// starting sort direction 'asc' or 'desc'
    sortInitialOrder: "asc",
+
sortInitialOrder: 'asc',
  
    // Replace equivalent character (accented characters) to allow
+
// Replace equivalent character (accented characters) to allow
    // for alphanumeric sorting
+
// for alphanumeric sorting
    sortLocaleCompare: false,
+
sortLocaleCompare: false,
  
    // third click on the header will reset column to default - unsorted
+
// third click on the header will reset column to default - unsorted
    sortReset: false,
+
sortReset: false,
  
    // restart sort to "sortInitialOrder" when clicking on previously
+
// restart sort to 'sortInitialOrder' when clicking on previously
    // unsorted columns
+
// unsorted columns
    sortRestart: false,
+
sortRestart: false,
  
    // sort empty cell to bottom, top, none, zero, emptyMax, emptyMin
+
// sort empty cell to bottom, top, none, zero, emptyMax, emptyMin
    emptyTo: "bottom",
+
emptyTo: 'bottom',
  
    // sort strings in numerical column as max, min, top, bottom, zero
+
// sort strings in numerical column as max, min, top, bottom, zero
    stringTo: "max",
+
stringTo: 'max',
  
    // colspan cells in the tbody will have duplicated content in the
+
// extract text from the table
    // cache for each spanned column
+
textExtraction: {
    duplicateSpan: true,
+
0: function (node, table) {
 +
// this is how it is done by default
 +
return $(node).attr(table.config.textAttribute) ||
 +
node.textContent ||
 +
node.innerText ||
 +
$(node).text() ||
 +
'';
 +
},
 +
1: function (node) {
 +
return $(node).text();
 +
}
 +
},
  
    // extract text from the table
+
// data-attribute that contains alternate cell text
    textExtraction: {
+
// (used in default textExtraction function)
      0: function(node, table) {
+
textAttribute: 'data-text',
        // this is how it is done by default
+
        return $(node).attr(table.config.textAttribute) ||
+
          node.textContent ||
+
          node.innerText ||
+
          $(node).text() ||
+
          '';
+
      },
+
      1: function(node) {
+
        return $(node).text();
+
      }
+
    },
+
  
    // data-attribute that contains alternate cell text
+
// use custom text sorter
    // (used in default textExtraction function)
+
// function(a,b){ return a.sort(b); } // basic sort
    textAttribute: 'data-text',
+
textSorter: null,
  
    // use custom text sorter
+
// choose overall numeric sorter
    // function(a,b){ return a.sort(b); } // basic sort
+
// function(a, b, direction, maxColumnValue)
    textSorter: null,
+
numberSorter: null,
  
    // choose overall numeric sorter
+
// *** WIDGETS ***
    // function(a, b, direction, maxColumnValue)
+
// apply widgets on tablesorter initialization
    numberSorter: null,
+
initWidgets: true,
  
    // *** WIDGETS ***
+
// table class name template to match to include a widget
    // apply widgets on tablesorter initialization
+
widgetClass: 'widget-{name}',
    initWidgets: true,
+
  
    // table class name template to match to include a widget
+
// include zebra and any other widgets, options:
    widgetClass: 'widget-{name}',
+
// 'columns', 'filter', 'stickyHeaders' & 'resizable'
 +
// 'uitheme' is another widget, but requires loading
 +
// a different skin and a jQuery UI theme.
 +
widgets: ['zebra', 'columns', 'uitheme'],
  
    // include zebra and any other widgets, options:
+
widgetOptions: {
    // 'columns', 'filter', 'stickyHeaders' & 'resizable'
+
    // 'uitheme' is another widget, but requires loading
+
    // a different skin and a jQuery UI theme.
+
    widgets: ['zebra', 'columns'],
+
  
    widgetOptions: {
+
// zebra widget: adding zebra striping, using content and
 +
// default styles - the ui css removes the background
 +
// from default even and odd class names included for this
 +
// demo to allow switching themes
 +
// [ 'even', 'odd' ]
 +
zebra: [
 +
'ui-widget-content even',
 +
'ui-state-default odd'
 +
],
  
      // *** COLUMNS WIDGET ***
+
// columns widget: change the default column class names
      // change the default column class names primary is the 1st column
+
// primary is the 1st column sorted, secondary is the 2nd, etc
      // sorted, secondary is the 2nd, etc
+
columns: [
      columns: [
+
'primary',
        "primary",
+
'secondary',
        "secondary",
+
'tertiary'
        "tertiary"
+
],
      ],
+
  
      // If true, the class names from the columns option will also be added
+
// columns widget: If true, the class names from the columns
      // to the table tfoot
+
// option will also be added to the table tfoot.
      columns_tfoot: true,
+
columns_tfoot: true,
  
      // If true, the class names from the columns option will also be added
+
// columns widget: If true, the class names from the columns
      // to the table thead
+
// option will also be added to the table thead.
      columns_thead: true,
+
columns_thead: true,
  
      // *** FILTER WIDGET ***
+
// filter widget: If there are child rows in the table (rows with
      // css class name added to the filter cell (string or array)
+
// class name from 'cssChildRow' option) and this option is true
      filter_cellFilter: '',
+
// and a match is found anywhere in the child row, then it will make
 +
// that row visible; default is false
 +
filter_childRows: false,
  
      // If there are child rows in the table (rows with class name from
+
// filter widget: If true, a filter will be added to the top of
      // "cssChildRow" option) and this option is true and a match is found
+
// each table column.
      // anywhere in the child row, then it will make that row visible;
+
filter_columnFilters: true,
      // default is false
+
      filter_childRows: false,
+
  
      // ( filter_childRows must be true ) if true = search
+
// filter widget: css class name added to the filter cell
      // child rows by column; false = search all child row text grouped
+
// (string or array)
      filter_childByColumn: false,
+
filter_cellFilter: '',
  
      // if true, include matching child row siblings
+
// filter widget: css class name added to the filter row & each
      filter_childWithSibs: true,
+
// input in the row (tablesorter-filter is ALWAYS added)
 +
filter_cssFilter: '',
  
      // if true, allows using '#:{query}' in AnyMatch searches
+
// filter widget: add a default column filter type
      // ( column:query )
+
// '~{query}' to make fuzzy searches default;
      filter_columnAnyMatch: true,
+
// '{q1} AND {q2}' to make all searches use a logical AND.
 +
filter_defaultFilter: {},
  
      // If true, a filter will be added to the top of each table column.
+
// filter widget: filters to exclude, per column
      filter_columnFilters: true,
+
filter_excludeFilter: {},
  
      // css class name added to the filter row & each input in the row
+
// filter widget: jQuery selector string (or jQuery object)
      // (tablesorter-filter is ALWAYS added)
+
// of external filters
      filter_cssFilter: '',
+
filter_external: '',
  
      // data attribute in the header cell that contains the default (initial)
+
// filter widget: class added to filtered rows;
      // filter value
+
// needed by pager plugin
      filter_defaultAttrib: 'data-value',
+
filter_filteredRow: 'filtered',
  
      // add a default column filter type "~{query}" to make fuzzy searches
+
// filter widget: add custom filter elements to the filter row
      // default; "{q1} AND {q2}" to make all searches use a logical AND.
+
filter_formatter: null,
      filter_defaultFilter: {},
+
  
      // filters to exclude, per column
+
// filter widget: Customize the filter widget by adding a select
      filter_excludeFilter: {},
+
// dropdown with content, custom options or custom filter functions
 +
// see http://goo.gl/HQQLW for more details
 +
filter_functions: null,
  
      // jQuery selector string (or jQuery object)
+
// filter widget: hide filter row when table is empty
      // of external filters
+
filter_hideEmpty: true,
      filter_external: '',
+
  
      // class added to filtered rows; needed by pager plugin
+
// filter widget: Set this option to true to hide the filter row
      filter_filteredRow: 'filtered',
+
// initially. The rows is revealed by hovering over the filter
 +
// row or giving any filter input/select focus.
 +
filter_hideFilters: false,
  
      // add custom filter elements to the filter row
+
// filter widget: Set this option to false to keep the searches
      filter_formatter: null,
+
// case sensitive
 +
filter_ignoreCase: true,
  
      // Customize the filter widget by adding a select dropdown with content,
+
// filter widget: if true, search column content while the user
      // custom options or custom filter functions;
+
// types (with a delay)
      // see http://goo.gl/HQQLW for more details
+
filter_liveSearch: true,
      filter_functions: null,
+
  
      // hide filter row when table is empty
+
// filter widget: a header with a select dropdown & this class name
      filter_hideEmpty: true,
+
// will only show available (visible) options within the drop down
 +
filter_onlyAvail: 'filter-onlyAvail',
  
      // Set this option to true to hide the filter row initially. The row is
+
// filter widget: default placeholder text
      // revealed by hovering over the filter row or giving any filter
+
// (overridden by any header 'data-placeholder' setting)
      // input/select focus.
+
filter_placeholder: { search : '', select : '' },
      filter_hideFilters: false,
+
  
      // Set this option to false to keep the searches case sensitive
+
// filter widget: jQuery selector string of an element used to
      filter_ignoreCase: true,
+
// reset the filters.
 +
filter_reset: null,
  
      // if true, search column content while the user types (with a delay)
+
// filter widget: Use the $.tablesorter.storage utility to save
      // or, set a minimum number of characters that must be present before
+
// the most recent filters
      // a search is initiated
+
filter_saveFilters: false,
      filter_liveSearch: true,
+
  
      // global query settings ('exact' or 'match'); overridden by
+
// filter widget: Delay in milliseconds before the filter widget
      // "filter-match" or "filter-exact" class
+
// starts searching; This option prevents searching for every character
      filter_matchType: {
+
// while typing and should make searching large tables faster.
        'input': 'exact',
+
filter_searchDelay: 300,
        'select': 'exact'
+
      },
+
  
      // a header with a select dropdown & this class name will only show
+
// filter widget: allow searching through already filtered rows in
      // available (visible) options within the drop down
+
// special circumstances; will speed up searching in large tables if true
      filter_onlyAvail: 'filter-onlyAvail',
+
filter_searchFiltered: true,
  
      // default placeholder text (overridden by any header
+
// filter widget: include a function to return an array of values to be
      // "data-placeholder" setting)
+
// added to the column filter select
      filter_placeholder: {
+
filter_selectSource: null,
        search: '',
+
        select: ''
+
      },
+
  
      // jQuery selector string of an element used to reset the filters.
+
// filter widget: Set this option to true if filtering is performed on
      filter_reset: null,
+
// the server-side.
 +
filter_serversideFiltering: false,
  
      // Reset filter input when the user presses escape
+
// filter widget: Set this option to true to use the filter to find
      // normalized across browsers
+
// text from the start of the column. So typing in 'a' will find
      filter_resetOnEsc: true,
+
// 'albert' but not 'frank', both have a's; default is false
 +
filter_startsWith: false,
  
      // Use the $.tablesorter.storage utility to save the most recent filters
+
// filter widget: If true, ALL filter searches will only use parsed
      filter_saveFilters: false,
+
// data. To only use parsed data in specific columns, set this option
 +
// to false and add class name 'filter-parsed' to the header
 +
filter_useParsedData: false,
  
      // Delay in milliseconds before the filter widget starts searching;
+
// filter widget: data attribute in the header cell that contains
      // This option prevents searching for every character while typing
+
// the default filter value
      // and should make searching large tables faster.
+
filter_defaultAttrib: 'data-value',
      filter_searchDelay: 300,
+
  
      // allow searching through already filtered rows in special
+
// filter widget: filter_selectSource array text left of the separator
      // circumstances; will speed up searching in large tables if true
+
// is added to the option value, right into the option text
      filter_searchFiltered: true,
+
filter_selectSourceSeparator: '|',
  
      // include a function to return an array of values to be added to the
+
// Resizable widget: If this option is set to false, resized column
      // column filter select
+
// widths will not be saved. Previous saved values will be restored
      filter_selectSource: null,
+
// on page reload
 +
resizable: true,
  
      // filter_selectSource array text left of the separator is added to
+
// Resizable widget: If this option is set to true, a resizing anchor
      // the option value, right into the option text
+
// will be included in the last column of the table
      filter_selectSourceSeparator: '|',
+
resizable_addLastColumn: false,
  
      // Set this option to true if filtering is performed on the
+
// Resizable widget: Set this option to the starting & reset header widths
      // server-side.
+
resizable_widths: [],
      filter_serversideFiltering: false,
+
  
      // Set this option to true to use the filter to find text from the
+
// Resizable widget: Set this option to throttle the resizable events
      // start of the column. So typing in "a" will find "albert" but not
+
// set to true (5ms) or any number 0-10 range
      // "frank", both have a's; default is false
+
resizable_throttle: false,
      filter_startsWith: false,
+
  
      // If true, ALL filter searches will only use parsed data. To only
+
// saveSort widget: If this option is set to false, new sorts will
      // use parsed data in specific columns, set this option to false
+
// not be saved. Any previous saved sort will be restored on page
      // and add class name "filter-parsed" to the header
+
// reload.
      filter_useParsedData: false,
+
saveSort: true,
  
      // *** RESIZABLE WIDGET ***
+
// stickyHeaders widget: extra class name added to the sticky header row
      // If this option is set to false, resized column widths will not
+
stickyHeaders: '',
      // be saved. Previous saved values will be restored on page reload
+
      resizable: true,
+
  
      // If this option is set to true, a resizing anchor
+
// jQuery selector or object to attach sticky header to
      // will be included in the last column of the table
+
stickyHeaders_attachTo: null,
      resizable_addLastColumn: false,
+
  
      // Set this option to the starting & reset header widths
+
// jQuery selector or object to monitor horizontal scroll position
      resizable_widths: [],
+
// (defaults: xScroll > attachTo > window)
 +
stickyHeaders_xScroll: null,
  
      // Set this option to throttle the resizable events
+
// jQuery selector or object to monitor vertical scroll position
      // set to true (5ms) or any number 0-10 range
+
// (defaults: yScroll > attachTo > window)
      resizable_throttle: false,
+
stickyHeaders_yScroll: null,
  
      // When true, the last column will be targeted for resizing,
+
// number or jquery selector targeting the position:fixed element
      // which is the same has holding the shift and resizing a column
+
stickyHeaders_offset: 0,
      resizable_targetLast: false,
+
  
      // *** SAVESORT WIDGET ***
+
// scroll table top into view after filtering
      // If this option is set to false, new sorts will not be saved.
+
stickyHeaders_filteredToTop: true,
      // Any previous saved sort will be restored on page reload.
+
      saveSort: true,
+
  
      // *** STICKYhEADERS WIDGET ***
+
// added to table ID, if it exists
      // stickyHeaders widget: extra class name added to the sticky header
+
stickyHeaders_cloneId: '-sticky',
      // row
+
      stickyHeaders: '',
+
  
      // jQuery selector or object to attach sticky header to
+
// trigger 'resize' event on headers
      stickyHeaders_attachTo: null,
+
stickyHeaders_addResizeEvent: true,
  
      // jQuery selector or object to monitor horizontal scroll position
+
// if false and a caption exist, it won't be included in the
      // (defaults: xScroll > attachTo > window)
+
// sticky header
      stickyHeaders_xScroll: null,
+
stickyHeaders_includeCaption: true,
  
      // jQuery selector or object to monitor vertical scroll position
+
// The zIndex of the stickyHeaders, allows the user to adjust this
      // (defaults: yScroll > attachTo > window)
+
// to their needs
      stickyHeaders_yScroll: null,
+
stickyHeaders_zIndex : 2
  
      // number or jquery selector targeting the position:fixed element
+
},
      stickyHeaders_offset: 0,
+
  
      // scroll table top into view after filtering
+
// *** CALLBACKS ***
      stickyHeaders_filteredToTop: true,
+
// function called after tablesorter has completed initialization
 +
initialized: null, // function (table) {}
  
      // added to table ID, if it exists
+
// *** extra css class names
      stickyHeaders_cloneId: '-sticky',
+
tableClass: '',
 +
cssAsc: '',
 +
cssDesc: '',
 +
cssNone: '',
 +
cssHeader: '',
 +
cssHeaderRow: '',
 +
// processing icon applied to header during sort/filter
 +
cssProcessing: '',
  
      // trigger "resize" event on headers
+
// class name indiciating that a row is to be attached to the its parent
      stickyHeaders_addResizeEvent: true,
+
cssChildRow: 'tablesorter-childRow',
 +
// if this class does not exist, the {icon} will not be added from
 +
// the headerTemplate
 +
cssIcon: 'tablesorter-icon',
 +
// class name added to the icon when there is no column sort
 +
cssIconNone: '',
 +
// class name added to the icon when the column has an ascending sort
 +
cssIconAsc: '',
 +
// class name added to the icon when the column has a descending sort
 +
cssIconDesc: '',
 +
// don't sort tbody with this class name
 +
// (only one class name allowed here!)
 +
cssInfoBlock: 'tablesorter-infoOnly',
 +
// class name added to table header which allows clicks to bubble up
 +
cssAllowClicks: 'tablesorter-allowClicks',
 +
// header row to ignore; cells within this row will not be added
 +
// to table.config.$headers
 +
cssIgnoreRow: 'tablesorter-ignoreRow',
  
      // if false and a caption exist, it won't be included in the
+
// *** SELECTORS ***
      // sticky header
+
// jQuery selectors used to find the header cells.
      stickyHeaders_includeCaption: true,
+
selectorHeaders: '> thead th, > thead td',
  
      // The zIndex of the stickyHeaders, allows the user to adjust this
+
// jQuery selector of content within selectorHeaders
      // to their needs
+
// that is clickable to trigger a sort.
      stickyHeaders_zIndex: 2,
+
selectorSort: 'th, td',
  
      // *** STORAGE WIDGET ***
+
// rows with this class name will be removed automatically
      // allows switching between using local & session storage
+
// before updating the table cache - used by 'update',
      storage_useSessionStorage: false,
+
// 'addRows' and 'appendCache'
      // alternate table id (set if grouping multiple tables together)
+
selectorRemove: '.remove-me',
      storage_tableId: '',
+
      // table attribute to get the table ID, if storage_tableId
+
      // is undefined
+
      storage_group: '', // defaults to "data-table-group"
+
      // alternate url to use (set if grouping tables across
+
      // multiple pages)
+
      storage_fixedUrl: '',
+
      // table attribute to get the fixedUrl, if storage_fixedUrl
+
      // is undefined
+
      storage_page: '',
+
  
      // *** ZEBRA WIDGET ***
+
// *** DEBUGING ***
      // class names to add to alternating rows
+
// send messages to console
      // [ "even", "odd" ]
+
debug: false
      zebra: [
+
        "even",
+
        "odd"
+
      ]
+
  
    },
+
}).tablesorterPager({
  
    // *** CALLBACKS ***
+
// target the pager markup - see the HTML block below
    // function called after tablesorter has completed initialization
+
container: $('.ts-pager'),
    initialized: null, // function (table) {}
+
  
    // *** extra css class names
+
// use this url format 'http:/mydatabase.com?page={page}&size={size}'
    tableClass: '',
+
ajaxUrl: null,
    cssAsc: '',
+
    cssDesc: '',
+
    cssNone: '',
+
    cssHeader: '',
+
    cssHeaderRow: '',
+
    // processing icon applied to header during sort/filter
+
    cssProcessing: '',
+
  
    // class name indiciating that a row is to be attached to its
+
// modify the url after all processing has been applied
    // parent
+
customAjaxUrl: function (table, url) {
    cssChildRow: 'tablesorter-childRow',
+
return url;
    // don't sort tbody with this class name
+
},
    // (only one class name allowed here!)
+
    cssInfoBlock: 'tablesorter-infoOnly',
+
    // class name added to element inside header; clicking on it
+
    // won't cause a sort
+
    cssNoSort: 'tablesorter-noSort',
+
    // header row to ignore; cells within this row will not be added
+
    // to table.config.$headers
+
    cssIgnoreRow: 'tablesorter-ignoreRow',
+
  
    // if this class does not exist, the {icon} will not be added from
+
// modify the $.ajax object to allow complete control over your
    // the headerTemplate
+
// ajax requests
    cssIcon: 'tablesorter-icon',
+
ajaxObject: {
    // class name added to the icon when there is no column sort
+
dataType: 'json'
    cssIconNone: '',
+
},
    // class name added to the icon when the column has an ascending sort
+
    cssIconAsc: '',
+
    // class name added to the icon when the column has a descending sort
+
    cssIconDesc: '',
+
  
    // *** header events ***
+
// set this to false if you want to block ajax loading on init
    pointerClick: 'click',
+
processAjaxOnInit: true,
    pointerDown: 'mousedown',
+
    pointerUp: 'mouseup',
+
  
    // *** SELECTORS ***
+
// process ajax so that the data object is returned along with the
    // jQuery selectors used to find the header cells.
+
// total number of rows; example:
    selectorHeaders: '> thead th, > thead td',
+
// {
 +
//  'data' : [{ 'ID': 1, 'Name': 'Foo', 'Last': 'Bar' }],
 +
//  'total_rows' : 100
 +
// }
 +
ajaxProcessing: function (ajax) {
 +
if (ajax && ajax.hasOwnProperty('data')) {
 +
// return [ 'data', 'total_rows' ];
 +
return [ajax.data, ajax.total_rows];
 +
}
 +
},
  
    // jQuery selector of content within selectorHeaders
+
// output string - default is '{page}/{totalPages}';
    // that is clickable to trigger a sort.
+
// possible variables:
    selectorSort: "th, td",
+
// {page}, {totalPages}, {startRow}, {endRow} and {totalRows}
 +
output: '{startRow} to {endRow} ({totalRows})',
  
    // rows with this class name will be removed automatically
+
// apply disabled classname to the pager arrows when the rows at
    // before updating the table cache - used by "update",
+
// either extreme is visible - default is true
    // "addRows" and "appendCache"
+
updateArrows: true,
    selectorRemove: ".remove-me",
+
  
    // *** DEBUGING ***
+
// starting page of the pager (zero based index)
    // send messages to console
+
page: 0,
    debug: false
+
 
 +
// reset pager after filtering; set to desired page #
 +
// set to false to not change page at filter start
 +
pageReset: 0,
 +
 
 +
// Number of visible rows - default is 10
 +
size: 10,
 +
 
 +
// Number of options to include in the pager number selector
 +
maxOptionSize: 20,
 +
 
 +
// Save pager page & size if the storage script is loaded
 +
// (requires $.tablesorter.storage in jquery.tablesorter.widgets.js)
 +
savePages: true,
 +
 
 +
// defines custom storage key
 +
storageKey: 'tablesorter-pager',
 +
 
 +
// if true, the table will remain the same height no matter how many
 +
// records are displayed. The space is made up by an empty
 +
// table row set to a height to compensate; default is false
 +
fixedHeight: true,
 +
 
 +
// count child rows towards the set page size?
 +
// (set true if it is a visible table row within the pager)
 +
// if true, child row(s) may not appear to be attached to its
 +
// parent row, may be split across pages or
 +
// may distort the table if rowspan or cellspans are included.
 +
countChildRows: false,
 +
 
 +
// remove rows from the table to speed up the sort of large tables.
 +
// setting this to false, only hides the non-visible rows; needed
 +
// if you plan to add/remove rows with the pager enabled.
 +
removeRows: false,
 +
 
 +
// css class names of pager arrows
 +
// next page arrow
 +
cssNext: '.next',
 +
// previous page arrow
 +
cssPrev: '.prev',
 +
// go to first page arrow
 +
cssFirst: '.first',
 +
// go to last page arrow
 +
cssLast: '.last',
 +
// select dropdown to allow choosing a page
 +
cssGoto: '.pagenum',
 +
// location of where the 'output' is displayed
 +
cssPageDisplay: '.pagedisplay',
 +
// dropdown that sets the 'size' option
 +
cssPageSize: '.pagesize',
 +
// error information row
 +
cssErrorRow: 'tablesorter-errorRow',
 +
// class added to arrows when at the extremes
 +
// (i.e. prev/first arrows are 'disabled' when on the first page)
 +
// Note there is no period '.' in front of this class name
 +
cssDisabled: 'disabled'
 +
 
 +
});
  
  });
 
 
});
 
});
  
 
// Extend the themes to change any of the default class names
 
// Extend the themes to change any of the default class names
// this example modifies the jQuery UI theme class names
+
// this example modifies the Bootstrap theme class names
$.extend($.tablesorter.themes.jui, {
+
$.extend($.tablesorter.themes.bootstrap, {
  /* change default jQuery uitheme icons - find the full list of icons
+
// table classes
  here: http://jqueryui.com/themeroller/
+
table: 'table table-bordered table-striped',
  (hover over them for their name)
+
caption: 'caption',
  */
+
// *** header class names ***
  // table classes
+
// header classes
  table: 'ui-widget ui-widget-content ui-corner-all',
+
header: 'bootstrap-header',
  caption: 'ui-widget-content',
+
sortNone: '',
  // *** header class names ***
+
sortAsc: '',
  // header classes
+
sortDesc: '',
  header: 'ui-widget-header ui-corner-all ui-state-default',
+
// applied when column is sorted
  sortNone: '',
+
active: '',
  sortAsc: '',
+
// hover class
  sortDesc: '',
+
hover: '',
  // applied when column is sorted
+
// *** icon class names ***
  active: 'ui-state-active',
+
// icon class added to the <i> in the header
  // hover class
+
icons: '',
  hover: 'ui-state-hover',
+
// class name added to icon when column is not sorted
  // *** icon class names ***
+
iconSortNone: 'bootstrap-icon-unsorted',
  // icon class added to the <i> in the header
+
// class name added to icon when column has ascending sort
  icons: 'ui-icon',
+
iconSortAsc: 'icon-chevron-up glyphicon glyphicon-chevron-up',
  // class name added to icon when column is not sorted
+
// class name added to icon when column has descending sort
  iconSortNone: 'ui-icon-carat-2-n-s',
+
iconSortDesc: 'icon-chevron-down glyphicon glyphicon-chevron-down',
  // class name added to icon when column has ascending sort
+
filterRow: '',
  iconSortAsc: 'ui-icon-carat-1-n',
+
footerRow: '',
  // class name added to icon when column has descending sort
+
footerCells: '',
  iconSortDesc: 'ui-icon-carat-1-s',
+
// even row zebra striping
  filterRow: '',
+
even: '',
  footerRow: '',
+
// odd row zebra striping
  footerCells: '',
+
odd: ''
  // even row zebra striping
+
  even: 'ui-widget-content',
+
  // odd row zebra striping
+
  odd: 'ui-state-default'
+
 
});
 
});
 
</script>
 
</script>

Revision as of 16:05, 15 October 2016

iGEM TU Delft

Parts

All Parts

                           <groupparts class="parts">iGEM2016 TU_Delft</groupparts>
                           
                        

Basic Parts

Composite Parts

Part Collection

Last Name First Name Email Due Web Site
Smith John jsmith@gmail.com $50.00 http://www.jsmith.com
Bach Frank fbach@yahoo.com $50.00 http://www.frank.com
Doe Jason jdoe@hotmail.com $100.00 http://www.jdoe.com
Conway Tim tconway@earthlink.net $50.00 http://www.timconway.com