annotate src/main/webapp/resources/js/tablesaw.js @ 105:16a0796e3871 default tip

remove "console.log" from general.js
author Calvin Yeh <cyeh@mpipw-berlin.mpg.com>
date Fri, 29 Sep 2017 16:18:02 +0200
parents 89a5ca7d44f7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 /*! Tablesaw - v2.0.2 - 2015-10-28
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
2 * https://github.com/filamentgroup/tablesaw
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 * Copyright (c) 2015 Filament Group; Licensed */
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
4 /*
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 * tablesaw: A set of plugins for responsive tables
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 * Stack and Column Toggle tables
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
7 * Copyright (c) 2013 Filament Group, Inc.
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
8 * MIT License
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
9 */
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
10
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 if( typeof Tablesaw === "undefined" ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 Tablesaw = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
13 i18n: {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 modes: [ 'Stack', 'Swipe', 'Toggle' ],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
15 columns: 'Col<span class=\"a11y-sm\">umn</span>s',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 columnBtnText: 'Columns',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
17 columnsDialogError: 'No eligible columns.',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 sort: 'Sort'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
19 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 // cut the mustard
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
21 mustard: 'querySelector' in document &&
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
22 ( !window.blackberry || window.WebKitPoint ) &&
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 !window.operamini
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
24 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 if( !Tablesaw.config ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
27 Tablesaw.config = {};
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
28 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 if( Tablesaw.mustard ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 jQuery( document.documentElement ).addClass( 'tablesaw-enhanced' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
31 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
32
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
33 ;(function( $ ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
34 var pluginName = "table",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
35 classes = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
36 toolbar: "tablesaw-bar"
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
37 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
38 events = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
39 create: "tablesawcreate",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 destroy: "tablesawdestroy",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 refresh: "tablesawrefresh"
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
42 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
43 defaultMode = "stack",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
44 initSelector = "table[data-tablesaw-mode],table[data-tablesaw-sortable]";
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
45
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
46 var Table = function( element ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
47 if( !element ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
48 throw new Error( "Tablesaw requires an element." );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
49 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
50
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
51 this.table = element;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
52 this.$table = $( element );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
53
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
54 this.mode = this.$table.attr( "data-tablesaw-mode" ) || defaultMode;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
55
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 this.init();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
58
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
59 Table.prototype.init = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
60 // assign an id if there is none
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
61 if ( !this.$table.attr( "id" ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
62 this.$table.attr( "id", pluginName + "-" + Math.round( Math.random() * 10000 ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
63 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
64
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
65 this.createToolbar();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
66
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
67 var colstart = this._initCells();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
68
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
69 this.$table.trigger( events.create, [ this, colstart ] );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
70 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
71
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
72 Table.prototype._initCells = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
73 var colstart,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
74 thrs = this.table.querySelectorAll( "thead tr" ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
75 self = this;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
76
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
77 $( thrs ).each( function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
78 var coltally = 0;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
79
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
80 $( this ).children().each( function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
81 var span = parseInt( this.getAttribute( "colspan" ), 10 ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
82 sel = ":nth-child(" + ( coltally + 1 ) + ")";
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
83
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
84 colstart = coltally + 1;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
85
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
86 if( span ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
87 for( var k = 0; k < span - 1; k++ ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
88 coltally++;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
89 sel += ", :nth-child(" + ( coltally + 1 ) + ")";
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
90 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
91 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
92
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
93 // Store "cells" data on header as a reference to all cells in the same column as this TH
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
94 this.cells = self.$table.find("tr").not( thrs[0] ).not( this ).children().filter( sel );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
95 coltally++;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
96 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
97 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
98
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
99 return colstart;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
100 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
101
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
102 Table.prototype.refresh = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
103 this._initCells();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
104
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
105 this.$table.trigger( events.refresh );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
106 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
107
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
108 Table.prototype.createToolbar = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
109 // Insert the toolbar
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
110 // TODO move this into a separate component
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
111 var $toolbar = this.$table.prev().filter( '.' + classes.toolbar );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
112 if( !$toolbar.length ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
113 $toolbar = $( '<div>' )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
114 .addClass( classes.toolbar )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
115 .insertBefore( this.$table );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
116 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
117 this.$toolbar = $toolbar;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
118
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
119 if( this.mode ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
120 this.$toolbar.addClass( 'mode-' + this.mode );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
121 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
122 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
123
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
124 Table.prototype.destroy = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
125 // Don’t remove the toolbar. Some of the table features are not yet destroy-friendly.
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
126 this.$table.prev().filter( '.' + classes.toolbar ).each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
127 this.className = this.className.replace( /\bmode\-\w*\b/gi, '' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
128 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
129
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
130 var tableId = this.$table.attr( 'id' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
131 $( document ).unbind( "." + tableId );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
132 $( window ).unbind( "." + tableId );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
133
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
134 // other plugins
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
135 this.$table.trigger( events.destroy, [ this ] );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
136
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
137 this.$table.removeAttr( 'data-tablesaw-mode' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
138
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
139 this.$table.removeData( pluginName );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
140 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
141
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
142 // Collection method.
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
143 $.fn[ pluginName ] = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
144 return this.each( function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
145 var $t = $( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
146
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
147 if( $t.data( pluginName ) ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
148 return;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
149 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
150
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
151 var table = new Table( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
152 $t.data( pluginName, table );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
153 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
154 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
155
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
156 $( document ).on( "enhance.tablesaw", function( e ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
157 // Cut the mustard
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
158 if( Tablesaw.mustard ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
159 $( e.target ).find( initSelector )[ pluginName ]();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
160 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
161 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
162
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
163 }( jQuery ));
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
164
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
165 ;(function( win, $, undefined ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
166
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
167 var classes = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
168 stackTable: 'tablesaw-stack',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
169 cellLabels: 'tablesaw-cell-label',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
170 cellContentLabels: 'tablesaw-cell-content'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
171 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
172
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
173 var data = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
174 obj: 'tablesaw-stack'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
175 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
176
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
177 var attrs = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
178 labelless: 'data-tablesaw-no-labels',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
179 hideempty: 'data-tablesaw-hide-empty'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
180 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
181
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
182 var Stack = function( element ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
183
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
184 this.$table = $( element );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
185
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
186 this.labelless = this.$table.is( '[' + attrs.labelless + ']' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
187 this.hideempty = this.$table.is( '[' + attrs.hideempty + ']' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
188
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
189 if( !this.labelless ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
190 // allHeaders references headers, plus all THs in the thead, which may include several rows, or not
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
191 this.allHeaders = this.$table.find( "th" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
192 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
193
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
194 this.$table.data( data.obj, this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
195 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
196
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
197 Stack.prototype.init = function( colstart ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
198 this.$table.addClass( classes.stackTable );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
199
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
200 if( this.labelless ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
201 return;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
202 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
203
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
204 // get headers in reverse order so that top-level headers are appended last
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
205 var reverseHeaders = $( this.allHeaders );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
206 var hideempty = this.hideempty;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
207
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
208 // create the hide/show toggles
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
209 reverseHeaders.each(function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
210 var $t = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
211 $cells = $( this.cells ).filter(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
212 return !$( this ).parent().is( "[" + attrs.labelless + "]" ) && ( !hideempty || !$( this ).is( ":empty" ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
213 }),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
214 hierarchyClass = $cells.not( this ).filter( "thead th" ).length && " tablesaw-cell-label-top",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
215 // TODO reduce coupling with sortable
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
216 $sortableButton = $t.find( ".tablesaw-sortable-btn" ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
217 html = $sortableButton.length ? $sortableButton.html() : $t.html();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
218
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
219 if( html !== "" ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
220 if( hierarchyClass ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
221 var iteration = parseInt( $( this ).attr( "colspan" ), 10 ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
222 filter = "";
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
223
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
224 if( iteration ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
225 filter = "td:nth-child("+ iteration +"n + " + ( colstart ) +")";
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
226 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
227 $cells.filter( filter ).prepend( "<b class='" + classes.cellLabels + hierarchyClass + "'>" + html + "</b>" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
228 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
229 $cells.wrapInner( "<span class='" + classes.cellContentLabels + "'></span>" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
230 $cells.prepend( "<b class='" + classes.cellLabels + "'>" + html + "</b>" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
231 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
232 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
233 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
234 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
235
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
236 Stack.prototype.destroy = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
237 this.$table.removeClass( classes.stackTable );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
238 this.$table.find( '.' + classes.cellLabels ).remove();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
239 this.$table.find( '.' + classes.cellContentLabels ).each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
240 $( this ).replaceWith( this.childNodes );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
241 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
242 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
243
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
244 // on tablecreate, init
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
245 $( document ).on( "tablesawcreate", function( e, Tablesaw, colstart ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
246 if( Tablesaw.mode === 'stack' ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
247 var table = new Stack( Tablesaw.table );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
248 table.init( colstart );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
249 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
250
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
251 } );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
252
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
253 $( document ).on( "tablesawdestroy", function( e, Tablesaw ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
254
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
255 if( Tablesaw.mode === 'stack' ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
256 $( Tablesaw.table ).data( data.obj ).destroy();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
257 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
258
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
259 } );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
260
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
261 }( this, jQuery ));
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
262 ;(function( $ ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
263 var pluginName = "tablesawbtn",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
264 methods = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
265 _create: function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
266 return $( this ).each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
267 $( this )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
268 .trigger( "beforecreate." + pluginName )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
269 [ pluginName ]( "_init" )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
270 .trigger( "create." + pluginName );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
271 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
272 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
273 _init: function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
274 var oEl = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
275 sel = this.getElementsByTagName( "select" )[ 0 ];
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
276
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
277 if( sel ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
278 $( this )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
279 .addClass( "btn-select" )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
280 [ pluginName ]( "_select", sel );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
281 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
282 return oEl;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
283 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
284 _select: function( sel ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
285 var update = function( oEl, sel ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
286 var opts = $( sel ).find( "option" ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
287 label, el, children;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
288
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
289 opts.each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
290 var opt = this;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
291 if( opt.selected ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
292 label = document.createTextNode( opt.text );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
293 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
294 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
295
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
296 children = oEl.childNodes;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
297 if( opts.length > 0 ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
298 for( var i = 0, l = children.length; i < l; i++ ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
299 el = children[ i ];
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
300
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
301 if( el && el.nodeType === 3 ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
302 oEl.replaceChild( label, el );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
303 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
304 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
305 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
306 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
307
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
308 update( this, sel );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
309 $( this ).bind( "change refresh", function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
310 update( this, sel );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
311 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
312 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
313 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
314
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
315 // Collection method.
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
316 $.fn[ pluginName ] = function( arrg, a, b, c ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
317 return this.each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
318
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
319 // if it's a method
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
320 if( arrg && typeof( arrg ) === "string" ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
321 return $.fn[ pluginName ].prototype[ arrg ].call( this, a, b, c );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
322 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
323
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
324 // don't re-init
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
325 if( $( this ).data( pluginName + "active" ) ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
326 return $( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
327 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
328
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
329 // otherwise, init
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
330
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
331 $( this ).data( pluginName + "active", true );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
332 $.fn[ pluginName ].prototype._create.call( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
333 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
334 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
335
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
336 // add methods
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
337 $.extend( $.fn[ pluginName ].prototype, methods );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
338
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
339 }( jQuery ));
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
340 ;(function( win, $, undefined ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
341
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
342 var ColumnToggle = function( element ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
343
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
344 this.$table = $( element );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
345
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
346 this.classes = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
347 columnToggleTable: 'tablesaw-columntoggle',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
348 columnBtnContain: 'tablesaw-columntoggle-btnwrap tablesaw-advance',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
349 columnBtn: 'tablesaw-columntoggle-btn tablesaw-nav-btn down',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
350 popup: 'tablesaw-columntoggle-popup',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
351 priorityPrefix: 'tablesaw-priority-',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
352 // TODO duplicate class, also in tables.js
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
353 toolbar: 'tablesaw-bar'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
354 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
355
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
356 // Expose headers and allHeaders properties on the widget
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
357 // headers references the THs within the first TR in the table
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
358 this.headers = this.$table.find( 'tr:first > th' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
359
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
360 this.$table.data( 'tablesaw-coltoggle', this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
361 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
362
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
363 ColumnToggle.prototype.init = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
364
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
365 var tableId,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
366 id,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
367 $menuButton,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
368 $popup,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
369 $menu,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
370 $btnContain,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
371 self = this;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
372
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
373 this.$table.addClass( this.classes.columnToggleTable );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
374
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
375 tableId = this.$table.attr( "id" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
376 id = tableId + "-popup";
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
377 $btnContain = $( "<div class='" + this.classes.columnBtnContain + "'></div>" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
378 $menuButton = $( "<a href='#" + id + "' class='btn btn-micro " + this.classes.columnBtn +"' data-popup-link>" +
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
379 "<span>" + Tablesaw.i18n.columnBtnText + "</span></a>" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
380 $popup = $( "<div class='dialog-table-coltoggle " + this.classes.popup + "' id='" + id + "'></div>" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
381 $menu = $( "<div class='btn-group'></div>" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
382
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
383 var hasNonPersistentHeaders = false;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
384 $( this.headers ).not( "td" ).each( function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
385 var $this = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
386 priority = $this.attr("data-tablesaw-priority"),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
387 $cells = self.$getCells( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
388
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
389 if( priority && priority !== "persist" ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
390 $cells.addClass( self.classes.priorityPrefix + priority );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
391
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
392 $("<label><input type='checkbox' checked>" + $this.text() + "</label>" )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
393 .appendTo( $menu )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
394 .children( 0 )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
395 .data( "tablesaw-header", this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
396
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
397 hasNonPersistentHeaders = true;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
398 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
399 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
400
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
401 if( !hasNonPersistentHeaders ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
402 $menu.append( '<label>' + Tablesaw.i18n.columnsDialogError + '</label>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
403 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
404
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
405 $menu.appendTo( $popup );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
406
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
407 // bind change event listeners to inputs - TODO: move to a private method?
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
408 $menu.find( 'input[type="checkbox"]' ).on( "change", function(e) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
409 var checked = e.target.checked;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
410
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
411 self.$getCellsFromCheckbox( e.target )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
412 .toggleClass( "tablesaw-cell-hidden", !checked )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
413 .toggleClass( "tablesaw-cell-visible", checked );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
414
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
415 self.$table.trigger( 'tablesawcolumns' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
416 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
417
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
418 $menuButton.appendTo( $btnContain );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
419 $btnContain.appendTo( this.$table.prev().filter( '.' + this.classes.toolbar ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
420
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
421 var closeTimeout;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
422 function openPopup() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
423 $btnContain.addClass( 'visible' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
424 $menuButton.removeClass( 'down' ).addClass( 'up' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
425
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
426 $( document ).unbind( 'click.' + tableId, closePopup );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
427
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
428 window.clearTimeout( closeTimeout );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
429 closeTimeout = window.setTimeout(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
430 $( document ).one( 'click.' + tableId, closePopup );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
431 }, 15 );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
432 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
433
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
434 function closePopup( event ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
435 // Click came from inside the popup, ignore.
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
436 if( event && $( event.target ).closest( "." + self.classes.popup ).length ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
437 return;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
438 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
439
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
440 $( document ).unbind( 'click.' + tableId );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
441 $menuButton.removeClass( 'up' ).addClass( 'down' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
442 $btnContain.removeClass( 'visible' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
443 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
444
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
445 $menuButton.on( "click.tablesaw", function( event ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
446 event.preventDefault();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
447
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
448 if( !$btnContain.is( ".visible" ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
449 openPopup();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
450 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
451 closePopup();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
452 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
453 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
454
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
455 $popup.appendTo( $btnContain );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
456
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
457 this.$menu = $menu;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
458
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
459 $(window).on( "resize." + tableId, function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
460 self.refreshToggle();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
461 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
462
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
463 this.refreshToggle();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
464 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
465
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
466 ColumnToggle.prototype.$getCells = function( th ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
467 return $( th ).add( th.cells );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
468 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
469
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
470 ColumnToggle.prototype.$getCellsFromCheckbox = function( checkbox ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
471 var th = $( checkbox ).data( "tablesaw-header" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
472 return this.$getCells( th );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
473 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
474
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
475 ColumnToggle.prototype.refreshToggle = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
476 var self = this;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
477 this.$menu.find( "input" ).each( function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
478 this.checked = self.$getCellsFromCheckbox( this ).eq( 0 ).css( "display" ) === "table-cell";
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
479 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
480 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
481
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
482 ColumnToggle.prototype.refreshPriority = function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
483 var self = this;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
484 $(this.headers).not( "td" ).each( function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
485 var $this = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
486 priority = $this.attr("data-tablesaw-priority"),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
487 $cells = $this.add( this.cells );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
488
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
489 if( priority && priority !== "persist" ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
490 $cells.addClass( self.classes.priorityPrefix + priority );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
491 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
492 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
493 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
494
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
495 ColumnToggle.prototype.destroy = function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
496 // table toolbars, document and window .tableId events
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
497 // removed in parent tables.js destroy method
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
498
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
499 this.$table.removeClass( this.classes.columnToggleTable );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
500 this.$table.find( 'th, td' ).each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
501 var $cell = $( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
502 $cell.removeClass( 'tablesaw-cell-hidden' )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
503 .removeClass( 'tablesaw-cell-visible' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
504
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
505 this.className = this.className.replace( /\bui\-table\-priority\-\d\b/g, '' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
506 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
507 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
508
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
509 // on tablecreate, init
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
510 $( document ).on( "tablesawcreate", function( e, Tablesaw ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
511
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
512 if( Tablesaw.mode === 'columntoggle' ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
513 var table = new ColumnToggle( Tablesaw.table );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
514 table.init();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
515 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
516
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
517 } );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
518
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
519 $( document ).on( "tablesawdestroy", function( e, Tablesaw ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
520 if( Tablesaw.mode === 'columntoggle' ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
521 $( Tablesaw.table ).data( 'tablesaw-coltoggle' ).destroy();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
522 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
523 } );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
524
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
525 }( this, jQuery ));
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
526 ;(function( win, $, undefined ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
527
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
528 $.extend( Tablesaw.config, {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
529 swipe: {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
530 horizontalThreshold: 15,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
531 verticalThreshold: 30
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
532 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
533 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
534
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
535 function isIE8() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
536 var div = document.createElement('div'),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
537 all = div.getElementsByTagName('i');
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
538
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
539 div.innerHTML = '<!--[if lte IE 8]><i></i><![endif]-->';
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
540
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
541 return !!all.length;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
542 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
543
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
544 function createSwipeTable( $table ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
545
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
546 var $btns = $( "<div class='tablesaw-advance'></div>" ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
547 $prevBtn = $( "<a href='#' class='tablesaw-nav-btn btn btn-micro left' title='Previous Column'></a>" ).appendTo( $btns ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
548 $nextBtn = $( "<a href='#' class='tablesaw-nav-btn btn btn-micro right' title='Next Column'></a>" ).appendTo( $btns ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
549 hideBtn = 'disabled',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
550 persistWidths = 'tablesaw-fix-persist',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
551 $headerCells = $table.find( "thead th" ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
552 $headerCellsNoPersist = $headerCells.not( '[data-tablesaw-priority="persist"]' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
553 headerWidths = [],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
554 $head = $( document.head || 'head' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
555 tableId = $table.attr( 'id' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
556 // TODO switch this to an nth-child feature test
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
557 supportsNthChild = !isIE8();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
558
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
559 if( !$headerCells.length ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
560 throw new Error( "tablesaw swipe: no header cells found. Are you using <th> inside of <thead>?" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
561 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
562
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
563 // Calculate initial widths
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
564 $table.css('width', 'auto');
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
565 $headerCells.each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
566 headerWidths.push( $( this ).outerWidth() );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
567 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
568 $table.css( 'width', '' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
569
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
570 $btns.appendTo( $table.prev().filter( '.tablesaw-bar' ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
571
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
572 $table.addClass( "tablesaw-swipe" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
573
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
574 if( !tableId ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
575 tableId = 'tableswipe-' + Math.round( Math.random() * 10000 );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
576 $table.attr( 'id', tableId );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
577 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
578
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
579 function $getCells( headerCell ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
580 return $( headerCell.cells ).add( headerCell );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
581 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
582
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
583 function showColumn( headerCell ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
584 $getCells( headerCell ).removeClass( 'tablesaw-cell-hidden' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
585 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
586
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
587 function hideColumn( headerCell ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
588 $getCells( headerCell ).addClass( 'tablesaw-cell-hidden' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
589 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
590
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
591 function persistColumn( headerCell ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
592 $getCells( headerCell ).addClass( 'tablesaw-cell-persist' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
593 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
594
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
595 function isPersistent( headerCell ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
596 return $( headerCell ).is( '[data-tablesaw-priority="persist"]' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
597 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
598
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
599 function unmaintainWidths() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
600 $table.removeClass( persistWidths );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
601 $( '#' + tableId + '-persist' ).remove();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
602 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
603
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
604 function maintainWidths() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
605 var prefix = '#' + tableId + '.tablesaw-swipe ',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
606 styles = [],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
607 tableWidth = $table.width(),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
608 hash = [],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
609 newHash;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
610
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
611 $headerCells.each(function( index ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
612 var width;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
613 if( isPersistent( this ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
614 width = $( this ).outerWidth();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
615
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
616 // Only save width on non-greedy columns (take up less than 75% of table width)
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
617 if( width < tableWidth * 0.75 ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
618 hash.push( index + '-' + width );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
619 styles.push( prefix + ' .tablesaw-cell-persist:nth-child(' + ( index + 1 ) + ') { width: ' + width + 'px; }' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
620 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
621 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
622 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
623 newHash = hash.join( '_' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
624
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
625 $table.addClass( persistWidths );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
626
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
627 var $style = $( '#' + tableId + '-persist' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
628 // If style element not yet added OR if the widths have changed
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
629 if( !$style.length || $style.data( 'hash' ) !== newHash ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
630 // Remove existing
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
631 $style.remove();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
632
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
633 if( styles.length ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
634 $( '<style>' + styles.join( "\n" ) + '</style>' )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
635 .attr( 'id', tableId + '-persist' )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
636 .data( 'hash', newHash )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
637 .appendTo( $head );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
638 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
639 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
640 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
641
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
642 function getNext(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
643 var next = [],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
644 checkFound;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
645
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
646 $headerCellsNoPersist.each(function( i ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
647 var $t = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
648 isHidden = $t.css( "display" ) === "none" || $t.is( ".tablesaw-cell-hidden" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
649
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
650 if( !isHidden && !checkFound ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
651 checkFound = true;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
652 next[ 0 ] = i;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
653 } else if( isHidden && checkFound ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
654 next[ 1 ] = i;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
655
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
656 return false;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
657 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
658 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
659
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
660 return next;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
661 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
662
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
663 function getPrev(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
664 var next = getNext();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
665 return [ next[ 1 ] - 1 , next[ 0 ] - 1 ];
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
666 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
667
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
668 function nextpair( fwd ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
669 return fwd ? getNext() : getPrev();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
670 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
671
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
672 function canAdvance( pair ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
673 return pair[ 1 ] > -1 && pair[ 1 ] < $headerCellsNoPersist.length;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
674 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
675
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
676 function matchesMedia() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
677 var matchMedia = $table.attr( "data-tablesaw-swipe-media" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
678 return !matchMedia || ( "matchMedia" in win ) && win.matchMedia( matchMedia ).matches;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
679 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
680
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
681 function fakeBreakpoints() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
682 if( !matchesMedia() ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
683 return;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
684 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
685
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
686 var extraPaddingPixels = 20,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
687 containerWidth = $table.parent().width(),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
688 persist = [],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
689 sum = 0,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
690 sums = [],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
691 visibleNonPersistantCount = $headerCells.length;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
692
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
693 $headerCells.each(function( index ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
694 var $t = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
695 isPersist = $t.is( '[data-tablesaw-priority="persist"]' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
696
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
697 persist.push( isPersist );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
698
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
699 sum += headerWidths[ index ] + ( isPersist ? 0 : extraPaddingPixels );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
700 sums.push( sum );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
701
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
702 // is persistent or is hidden
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
703 if( isPersist || sum > containerWidth ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
704 visibleNonPersistantCount--;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
705 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
706 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
707
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
708 var needsNonPersistentColumn = visibleNonPersistantCount === 0;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
709
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
710 $headerCells.each(function( index ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
711 if( persist[ index ] ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
712
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
713 // for visual box-shadow
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
714 persistColumn( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
715 return;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
716 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
717
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
718 if( sums[ index ] <= containerWidth || needsNonPersistentColumn ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
719 needsNonPersistentColumn = false;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
720 showColumn( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
721 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
722 hideColumn( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
723 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
724 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
725
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
726 if( supportsNthChild ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
727 unmaintainWidths();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
728 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
729 $table.trigger( 'tablesawcolumns' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
730 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
731
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
732 function advance( fwd ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
733 var pair = nextpair( fwd );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
734 if( canAdvance( pair ) ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
735 if( isNaN( pair[ 0 ] ) ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
736 if( fwd ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
737 pair[0] = 0;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
738 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
739 else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
740 pair[0] = $headerCellsNoPersist.length - 1;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
741 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
742 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
743
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
744 if( supportsNthChild ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
745 maintainWidths();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
746 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
747
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
748 hideColumn( $headerCellsNoPersist.get( pair[ 0 ] ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
749 showColumn( $headerCellsNoPersist.get( pair[ 1 ] ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
750
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
751 $table.trigger( 'tablesawcolumns' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
752 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
753 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
754
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
755 $prevBtn.add( $nextBtn ).click(function( e ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
756 advance( !!$( e.target ).closest( $nextBtn ).length );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
757 e.preventDefault();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
758 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
759
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
760 function getCoord( event, key ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
761 return ( event.touches || event.originalEvent.touches )[ 0 ][ key ];
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
762 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
763
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
764 $table
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
765 .bind( "touchstart.swipetoggle", function( e ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
766 var originX = getCoord( e, 'pageX' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
767 originY = getCoord( e, 'pageY' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
768 x,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
769 y;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
770
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
771 $( win ).off( "resize", fakeBreakpoints );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
772
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
773 $( this )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
774 .bind( "touchmove", function( e ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
775 x = getCoord( e, 'pageX' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
776 y = getCoord( e, 'pageY' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
777 var cfg = Tablesaw.config.swipe;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
778 if( Math.abs( x - originX ) > cfg.horizontalThreshold && Math.abs( y - originY ) < cfg.verticalThreshold ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
779 e.preventDefault();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
780 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
781 })
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
782 .bind( "touchend.swipetoggle", function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
783 var cfg = Tablesaw.config.swipe;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
784 if( Math.abs( y - originY ) < cfg.verticalThreshold ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
785 if( x - originX < -1 * cfg.horizontalThreshold ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
786 advance( true );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
787 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
788 if( x - originX > cfg.horizontalThreshold ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
789 advance( false );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
790 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
791 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
792
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
793 window.setTimeout(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
794 $( win ).on( "resize", fakeBreakpoints );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
795 }, 300);
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
796 $( this ).unbind( "touchmove touchend" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
797 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
798
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
799 })
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
800 .bind( "tablesawcolumns.swipetoggle", function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
801 $prevBtn[ canAdvance( getPrev() ) ? "removeClass" : "addClass" ]( hideBtn );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
802 $nextBtn[ canAdvance( getNext() ) ? "removeClass" : "addClass" ]( hideBtn );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
803 })
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
804 .bind( "tablesawnext.swipetoggle", function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
805 advance( true );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
806 } )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
807 .bind( "tablesawprev.swipetoggle", function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
808 advance( false );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
809 } )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
810 .bind( "tablesawdestroy.swipetoggle", function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
811 var $t = $( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
812
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
813 $t.removeClass( 'tablesaw-swipe' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
814 $t.prev().filter( '.tablesaw-bar' ).find( '.tablesaw-advance' ).remove();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
815 $( win ).off( "resize", fakeBreakpoints );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
816
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
817 $t.unbind( ".swipetoggle" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
818 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
819
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
820 fakeBreakpoints();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
821 $( win ).on( "resize", fakeBreakpoints );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
822 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
823
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
824
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
825
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
826 // on tablecreate, init
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
827 $( document ).on( "tablesawcreate", function( e, Tablesaw ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
828
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
829 if( Tablesaw.mode === 'swipe' ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
830 createSwipeTable( Tablesaw.$table );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
831 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
832
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
833 } );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
834
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
835 }( this, jQuery ));
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
836
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
837 ;(function( $ ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
838 function getSortValue( cell ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
839 return $.map( cell.childNodes, function( el ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
840 var $el = $( el );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
841 if( $el.is( 'input, select' ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
842 return $el.val();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
843 } else if( $el.hasClass( 'tablesaw-cell-label' ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
844 return;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
845 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
846 return $.trim( $el.text() );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
847 }).join( '' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
848 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
849
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
850 var pluginName = "tablesaw-sortable",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
851 initSelector = "table[data-" + pluginName + "]",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
852 sortableSwitchSelector = "[data-" + pluginName + "-switch]",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
853 attrs = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
854 defaultCol: "data-tablesaw-sortable-default-col",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
855 numericCol: "data-tablesaw-sortable-numeric"
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
856 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
857 classes = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
858 head: pluginName + "-head",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
859 ascend: pluginName + "-ascending",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
860 descend: pluginName + "-descending",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
861 switcher: pluginName + "-switch",
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
862 tableToolbar: 'tablesaw-toolbar',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
863 sortButton: pluginName + "-btn"
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
864 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
865 methods = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
866 _create: function( o ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
867 return $( this ).each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
868 var init = $( this ).data( "init" + pluginName );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
869 if( init ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
870 return false;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
871 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
872 $( this )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
873 .data( "init"+ pluginName, true )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
874 .trigger( "beforecreate." + pluginName )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
875 [ pluginName ]( "_init" , o )
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
876 .trigger( "create." + pluginName );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
877 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
878 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
879 _init: function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
880 var el = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
881 heads,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
882 $switcher;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
883
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
884 var addClassToTable = function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
885 el.addClass( pluginName );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
886 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
887 addClassToHeads = function( h ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
888 $.each( h , function( i , v ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
889 $( v ).addClass( classes.head );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
890 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
891 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
892 makeHeadsActionable = function( h , fn ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
893 $.each( h , function( i , v ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
894 var b = $( "<button class='" + classes.sortButton + "'/>" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
895 b.bind( "click" , { col: v } , fn );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
896 $( v ).wrapInner( b );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
897 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
898 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
899 clearOthers = function( sibs ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
900 $.each( sibs , function( i , v ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
901 var col = $( v );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
902 col.removeAttr( attrs.defaultCol );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
903 col.removeClass( classes.ascend );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
904 col.removeClass( classes.descend );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
905 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
906 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
907 headsOnAction = function( e ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
908 if( $( e.target ).is( 'a[href]' ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
909 return;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
910 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
911
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
912 e.stopPropagation();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
913 var head = $( this ).parent(),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
914 v = e.data.col,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
915 newSortValue = heads.index( head );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
916
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
917 clearOthers( head.siblings() );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
918 if( head.hasClass( classes.descend ) ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
919 el[ pluginName ]( "sortBy" , v , true);
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
920 newSortValue += '_asc';
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
921 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
922 el[ pluginName ]( "sortBy" , v );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
923 newSortValue += '_desc';
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
924 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
925 if( $switcher ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
926 $switcher.find( 'select' ).val( newSortValue ).trigger( 'refresh' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
927 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
928
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
929 e.preventDefault();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
930 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
931 handleDefault = function( heads ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
932 $.each( heads , function( idx , el ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
933 var $el = $( el );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
934 if( $el.is( "[" + attrs.defaultCol + "]" ) ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
935 if( !$el.hasClass( classes.descend ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
936 $el.addClass( classes.ascend );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
937 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
938 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
939 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
940 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
941 addSwitcher = function( heads ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
942 $switcher = $( '<div>' ).addClass( classes.switcher ).addClass( classes.tableToolbar ).html(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
943 var html = [ '<label>' + Tablesaw.i18n.sort + ':' ];
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
944
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
945 html.push( '<span class="btn btn-small">&#160;<select>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
946 heads.each(function( j ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
947 var $t = $( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
948 var isDefaultCol = $t.is( "[" + attrs.defaultCol + "]" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
949 var isDescending = $t.hasClass( classes.descend );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
950
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
951 var hasNumericAttribute = $t.is( '[data-sortable-numeric]' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
952 var numericCount = 0;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
953 // Check only the first four rows to see if the column is numbers.
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
954 var numericCountMax = 5;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
955
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
956 $( this.cells ).slice( 0, numericCountMax ).each(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
957 if( !isNaN( parseInt( getSortValue( this ), 10 ) ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
958 numericCount++;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
959 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
960 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
961 var isNumeric = numericCount === numericCountMax;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
962 if( !hasNumericAttribute ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
963 $t.attr( "data-sortable-numeric", isNumeric ? "" : "false" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
964 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
965
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
966 html.push( '<option' + ( isDefaultCol && !isDescending ? ' selected' : '' ) + ' value="' + j + '_asc">' + $t.text() + ' ' + ( isNumeric ? '&#x2191;' : '(A-Z)' ) + '</option>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
967 html.push( '<option' + ( isDefaultCol && isDescending ? ' selected' : '' ) + ' value="' + j + '_desc">' + $t.text() + ' ' + ( isNumeric ? '&#x2193;' : '(Z-A)' ) + '</option>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
968 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
969 html.push( '</select></span></label>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
970
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
971 return html.join('');
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
972 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
973
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
974 var $toolbar = el.prev().filter( '.tablesaw-bar' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
975 $firstChild = $toolbar.children().eq( 0 );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
976
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
977 if( $firstChild.length ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
978 $switcher.insertBefore( $firstChild );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
979 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
980 $switcher.appendTo( $toolbar );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
981 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
982 $switcher.find( '.btn' ).tablesawbtn();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
983 $switcher.find( 'select' ).on( 'change', function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
984 var val = $( this ).val().split( '_' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
985 head = heads.eq( val[ 0 ] );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
986
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
987 clearOthers( head.siblings() );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
988 el[ pluginName ]( 'sortBy', head.get( 0 ), val[ 1 ] === 'asc' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
989 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
990 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
991
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
992 addClassToTable();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
993 heads = el.find( "thead th[data-" + pluginName + "-col]" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
994 addClassToHeads( heads );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
995 makeHeadsActionable( heads , headsOnAction );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
996 handleDefault( heads );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
997
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
998 if( el.is( sortableSwitchSelector ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
999 addSwitcher( heads, el.find('tbody tr:nth-child(-n+3)') );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1000 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1001 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1002 getColumnNumber: function( col ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1003 return $( col ).prevAll().length;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1004 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1005 getTableRows: function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1006 return $( this ).find( "tbody tr" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1007 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1008 sortRows: function( rows , colNum , ascending, col ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1009 var cells, fn, sorted;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1010 var getCells = function( rows ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1011 var cells = [];
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1012 $.each( rows , function( i , r ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1013 var element = $( r ).children().get( colNum );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1014 cells.push({
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1015 element: element,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1016 cell: getSortValue( element ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1017 rowNum: i
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1018 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1019 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1020 return cells;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1021 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1022 getSortFxn = function( ascending, forceNumeric ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1023 var fn,
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1024 regex = /[^\-\+\d\.]/g;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1025 if( ascending ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1026 fn = function( a , b ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1027 if( forceNumeric ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1028 return parseFloat( a.cell.replace( regex, '' ) ) - parseFloat( b.cell.replace( regex, '' ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1029 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1030 return a.cell.toLowerCase() > b.cell.toLowerCase() ? 1 : -1;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1031 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1032 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1033 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1034 fn = function( a , b ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1035 if( forceNumeric ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1036 return parseFloat( b.cell.replace( regex, '' ) ) - parseFloat( a.cell.replace( regex, '' ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1037 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1038 return a.cell.toLowerCase() < b.cell.toLowerCase() ? 1 : -1;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1039 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1040 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1041 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1042 return fn;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1043 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1044 applyToRows = function( sorted , rows ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1045 var newRows = [], i, l, cur;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1046 for( i = 0, l = sorted.length ; i < l ; i++ ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1047 cur = sorted[ i ].rowNum;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1048 newRows.push( rows[cur] );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1049 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1050 return newRows;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1051 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1052
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1053 cells = getCells( rows );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1054 var customFn = $( col ).data( 'tablesaw-sort' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1055 fn = ( customFn && typeof customFn === "function" ? customFn( ascending ) : false ) ||
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1056 getSortFxn( ascending, $( col ).is( '[data-sortable-numeric]' ) && !$( col ).is( '[data-sortable-numeric="false"]' ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1057 sorted = cells.sort( fn );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1058 rows = applyToRows( sorted , rows );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1059 return rows;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1060 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1061 replaceTableRows: function( rows ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1062 var el = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1063 body = el.find( "tbody" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1064 body.html( rows );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1065 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1066 makeColDefault: function( col , a ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1067 var c = $( col );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1068 c.attr( attrs.defaultCol , "true" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1069 if( a ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1070 c.removeClass( classes.descend );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1071 c.addClass( classes.ascend );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1072 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1073 c.removeClass( classes.ascend );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1074 c.addClass( classes.descend );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1075 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1076 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1077 sortBy: function( col , ascending ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1078 var el = $( this ), colNum, rows;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1079
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1080 colNum = el[ pluginName ]( "getColumnNumber" , col );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1081 rows = el[ pluginName ]( "getTableRows" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1082 rows = el[ pluginName ]( "sortRows" , rows , colNum , ascending, col );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1083 el[ pluginName ]( "replaceTableRows" , rows );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1084 el[ pluginName ]( "makeColDefault" , col , ascending );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1085 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1086 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1087
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1088 // Collection method.
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1089 $.fn[ pluginName ] = function( arrg ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1090 var args = Array.prototype.slice.call( arguments , 1),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1091 returnVal;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1092
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1093 // if it's a method
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1094 if( arrg && typeof( arrg ) === "string" ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1095 returnVal = $.fn[ pluginName ].prototype[ arrg ].apply( this[0], args );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1096 return (typeof returnVal !== "undefined")? returnVal:$(this);
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1097 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1098 // check init
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1099 if( !$( this ).data( pluginName + "data" ) ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1100 $( this ).data( pluginName + "active", true );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1101 $.fn[ pluginName ].prototype._create.call( this , arrg );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1102 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1103 return $(this);
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1104 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1105 // add methods
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1106 $.extend( $.fn[ pluginName ].prototype, methods );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1107
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1108 $( document ).on( "tablesawcreate", function( e, Tablesaw ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1109 if( Tablesaw.$table.is( initSelector ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1110 Tablesaw.$table[ pluginName ]();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1111 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1112 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1113
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1114 }( jQuery ));
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1115
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1116 ;(function( win, $, undefined ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1117
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1118 var MM = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1119 attr: {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1120 init: 'data-tablesaw-minimap'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1121 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1122 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1123
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1124 function createMiniMap( $table ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1125
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1126 var $btns = $( '<div class="tablesaw-advance minimap">' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1127 $dotNav = $( '<ul class="tablesaw-advance-dots">' ).appendTo( $btns ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1128 hideDot = 'tablesaw-advance-dots-hide',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1129 $headerCells = $table.find( 'thead th' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1130
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1131 // populate dots
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1132 $headerCells.each(function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1133 $dotNav.append( '<li><i></i></li>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1134 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1135
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1136 $btns.appendTo( $table.prev().filter( '.tablesaw-bar' ) );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1137
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1138 function showMinimap( $table ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1139 var mq = $table.attr( MM.attr.init );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1140 return !mq || win.matchMedia && win.matchMedia( mq ).matches;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1141 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1142
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1143 function showHideNav(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1144 if( !showMinimap( $table ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1145 $btns.hide();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1146 return;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1147 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1148 $btns.show();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1149
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1150 // show/hide dots
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1151 var dots = $dotNav.find( "li" ).removeClass( hideDot );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1152 $table.find( "thead th" ).each(function(i){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1153 if( $( this ).css( "display" ) === "none" ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1154 dots.eq( i ).addClass( hideDot );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1155 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1156 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1157 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1158
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1159 // run on init and resize
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1160 showHideNav();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1161 $( win ).on( "resize", showHideNav );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1162
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1163
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1164 $table
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1165 .bind( "tablesawcolumns.minimap", function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1166 showHideNav();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1167 })
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1168 .bind( "tablesawdestroy.minimap", function(){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1169 var $t = $( this );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1170
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1171 $t.prev().filter( '.tablesaw-bar' ).find( '.tablesaw-advance' ).remove();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1172 $( win ).off( "resize", showHideNav );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1173
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1174 $t.unbind( ".minimap" );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1175 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1176 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1177
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1178
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1179
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1180 // on tablecreate, init
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1181 $( document ).on( "tablesawcreate", function( e, Tablesaw ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1182
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1183 if( ( Tablesaw.mode === 'swipe' || Tablesaw.mode === 'columntoggle' ) && Tablesaw.$table.is( '[ ' + MM.attr.init + ']' ) ){
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1184 createMiniMap( Tablesaw.$table );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1185 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1186
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1187 } );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1188
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1189 }( this, jQuery ));
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1190
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1191 ;(function( win, $ ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1192
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1193 var S = {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1194 selectors: {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1195 init: 'table[data-tablesaw-mode-switch]'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1196 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1197 attributes: {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1198 excludeMode: 'data-tablesaw-mode-exclude'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1199 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1200 classes: {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1201 main: 'tablesaw-modeswitch',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1202 toolbar: 'tablesaw-toolbar'
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1203 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1204 modes: [ 'stack', 'swipe', 'columntoggle' ],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1205 init: function( table ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1206 var $table = $( table ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1207 ignoreMode = $table.attr( S.attributes.excludeMode ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1208 $toolbar = $table.prev().filter( '.tablesaw-bar' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1209 modeVal = '',
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1210 $switcher = $( '<div>' ).addClass( S.classes.main + ' ' + S.classes.toolbar ).html(function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1211 var html = [ '<label>' + Tablesaw.i18n.columns + ':' ],
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1212 dataMode = $table.attr( 'data-tablesaw-mode' ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1213 isSelected;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1214
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1215 html.push( '<span class="btn btn-small">&#160;<select>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1216 for( var j=0, k = S.modes.length; j<k; j++ ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1217 if( ignoreMode && ignoreMode.toLowerCase() === S.modes[ j ] ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1218 continue;
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1219 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1220
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1221 isSelected = dataMode === S.modes[ j ];
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1222
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1223 if( isSelected ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1224 modeVal = S.modes[ j ];
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1225 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1226
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1227 html.push( '<option' +
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1228 ( isSelected ? ' selected' : '' ) +
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1229 ' value="' + S.modes[ j ] + '">' + Tablesaw.i18n.modes[ j ] + '</option>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1230 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1231 html.push( '</select></span></label>' );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1232
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1233 return html.join('');
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1234 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1235
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1236 var $otherToolbarItems = $toolbar.find( '.tablesaw-advance' ).eq( 0 );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1237 if( $otherToolbarItems.length ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1238 $switcher.insertBefore( $otherToolbarItems );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1239 } else {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1240 $switcher.appendTo( $toolbar );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1241 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1242
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1243 $switcher.find( '.btn' ).tablesawbtn();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1244 $switcher.find( 'select' ).bind( 'change', S.onModeChange );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1245 },
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1246 onModeChange: function() {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1247 var $t = $( this ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1248 $switcher = $t.closest( '.' + S.classes.main ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1249 $table = $t.closest( '.tablesaw-bar' ).nextUntil( $table ).eq( 0 ),
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1250 val = $t.val();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1251
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1252 $switcher.remove();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1253 $table.data( 'table' ).destroy();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1254
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1255 $table.attr( 'data-tablesaw-mode', val );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1256 $table.table();
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1257 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1258 };
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1259
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1260 $( win.document ).on( "tablesawcreate", function( e, Tablesaw ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1261 if( Tablesaw.$table.is( S.selectors.init ) ) {
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1262 S.init( Tablesaw.table );
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1263 }
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1264 });
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1265
89a5ca7d44f7 new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1266 })( this, jQuery );