Subversion-Projekte lars-tiefland.webanos.zeldi.de

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
4 lars 1
/*! DataTables Bootstrap 2 integration
2
 * ©2011-2014 SpryMedia Ltd - datatables.net/license
3
 */
4
 
5
/**
6
 * DataTables integration for Bootstrap 2. This requires Bootstrap 2 and
7
 * DataTables 1.10 or newer.
8
 *
9
 * This file sets the defaults and adds options to DataTables to style its
10
 * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
11
 * for further information.
12
 */
13
(function(window, document, $, DataTable, undefined){
14
 
15
$.extend( true, DataTable.defaults, {
16
	"dom":
17
		"<'row-fluid'<'span6'l><'span6'f>r>" +
18
		"<'row-fluid'<'span12't>>" +
19
		"<'row-fluid'<'span6'i><'span6'p>>",
20
	renderer: 'bootstrap'
21
} );
22
 
23
 
24
/* Default class modification */
25
$.extend( DataTable.ext.classes, {
26
	sWrapper: "dataTables_wrapper form-inline dt-bootstrap"
27
} );
28
 
29
 
30
/* Bootstrap paging button renderer */
31
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
32
	var api     = new DataTable.Api( settings );
33
	var classes = settings.oClasses;
34
	var lang    = settings.oLanguage.oPaginate;
35
	var btnDisplay, btnClass;
36
 
37
	var attach = function( container, buttons ) {
38
		var i, ien, node, button;
39
		var clickHandler = function ( e ) {
40
			e.preventDefault();
41
			if ( !$(e.currentTarget).hasClass('disabled') ) {
42
				api.page( e.data.action ).draw( false );
43
			}
44
		};
45
 
46
		for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
47
			button = buttons[i];
48
 
49
			if ( $.isArray( button ) ) {
50
				attach( container, button );
51
			}
52
			else {
53
				btnDisplay = '';
54
				btnClass = '';
55
 
56
				switch ( button ) {
57
					case 'ellipsis':
58
						btnDisplay = '&hellip;';
59
						btnClass = 'disabled';
60
						break;
61
 
62
					case 'first':
63
						btnDisplay = lang.sFirst;
64
						btnClass = button + (page > 0 ?
65
							'' : ' disabled');
66
						break;
67
 
68
					case 'previous':
69
						btnDisplay = lang.sPrevious;
70
						btnClass = button + (page > 0 ?
71
							'' : ' disabled');
72
						break;
73
 
74
					case 'next':
75
						btnDisplay = lang.sNext;
76
						btnClass = button + (page < pages-1 ?
77
							'' : ' disabled');
78
						break;
79
 
80
					case 'last':
81
						btnDisplay = lang.sLast;
82
						btnClass = button + (page < pages-1 ?
83
							'' : ' disabled');
84
						break;
85
 
86
					default:
87
						btnDisplay = button + 1;
88
						btnClass = page === button ?
89
							'active' : '';
90
						break;
91
				}
92
 
93
				if ( btnDisplay ) {
94
					node = $('<li>', {
95
							'class': classes.sPageButton+' '+btnClass,
96
							'aria-controls': settings.sTableId,
97
							'tabindex': settings.iTabIndex,
98
							'id': idx === 0 && typeof button === 'string' ?
99
								settings.sTableId +'_'+ button :
100
								null
101
						} )
102
						.append( $('<a>', {
103
								'href': '#'
104
							} )
105
							.html( btnDisplay )
106
						)
107
						.appendTo( container );
108
 
109
					settings.oApi._fnBindAction(
110
						node, {action: button}, clickHandler
111
					);
112
				}
113
			}
114
		}
115
	};
116
 
117
	attach(
118
		$(host).empty().html('<div class="pagination"><ul/></div>').find('ul'),
119
		buttons
120
	);
121
};
122
 
123
 
124
/*
125
 * TableTools Bootstrap compatibility
126
 * Required TableTools 2.1+
127
 */
128
if ( DataTable.TableTools ) {
129
	// Set the classes that TableTools uses to something suitable for Bootstrap
130
	$.extend( true, DataTable.TableTools.classes, {
131
		"container": "DTTT btn-group",
132
		"buttons": {
133
			"normal": "btn",
134
			"disabled": "disabled"
135
		},
136
		"collection": {
137
			"container": "DTTT_dropdown dropdown-menu",
138
			"buttons": {
139
				"normal": "",
140
				"disabled": "disabled"
141
			}
142
		},
143
		"print": {
144
			"info": "DTTT_print_info modal"
145
		},
146
		"select": {
147
			"row": "active"
148
		}
149
	} );
150
 
151
	// Have the collection use a bootstrap compatible dropdown
152
	$.extend( true, DataTable.TableTools.DEFAULTS.oTags, {
153
		"collection": {
154
			"container": "ul",
155
			"button": "li",
156
			"liner": "a"
157
		}
158
	} );
159
}
160
 
161
 
162
})(window, document, jQuery, jQuery.fn.dataTable);