smithycms 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/config/initializers/refile.rb +6 -1
  3. data/lib/smithy/dependencies.rb +0 -3
  4. data/lib/smithy/version.rb +1 -1
  5. data/vendor/assets/images/datatables/favicon.ico +0 -0
  6. data/vendor/assets/images/datatables/sort_asc.png +0 -0
  7. data/vendor/assets/images/datatables/sort_asc_disabled.png +0 -0
  8. data/vendor/assets/images/datatables/sort_both.png +0 -0
  9. data/vendor/assets/images/datatables/sort_desc.png +0 -0
  10. data/vendor/assets/images/datatables/sort_desc_disabled.png +0 -0
  11. data/vendor/assets/javascripts/datatables/dataTables.bootstrap.js +220 -0
  12. data/vendor/assets/javascripts/datatables/dataTables.foundation.js +156 -0
  13. data/vendor/assets/javascripts/datatables/dataTables.jqueryui.js +164 -0
  14. data/vendor/assets/javascripts/datatables/jquery.dataTables.js +15212 -0
  15. data/vendor/assets/javascripts/datatables/jquery.js +5 -0
  16. data/vendor/assets/javascripts/datatables-responsive/dataTables.responsive.js +1190 -0
  17. data/vendor/assets/javascripts/datatables-responsive/responsive.bootstrap.js +78 -0
  18. data/vendor/assets/javascripts/datatables-responsive/responsive.foundation.js +62 -0
  19. data/vendor/assets/javascripts/datatables-responsive/responsive.jqueryui.js +63 -0
  20. data/vendor/assets/javascripts/datatables-responsive.js +1 -0
  21. data/vendor/assets/javascripts/datatables-select/dataTables.select.js +1038 -0
  22. data/vendor/assets/javascripts/datatables-select.js +1 -0
  23. data/vendor/assets/javascripts/datatables.js +1 -0
  24. data/vendor/assets/stylesheets/datatables/dataTables.bootstrap.scss +187 -0
  25. data/vendor/assets/stylesheets/datatables/dataTables.foundation.scss +117 -0
  26. data/vendor/assets/stylesheets/datatables/dataTables.jqueryui.scss +482 -0
  27. data/vendor/assets/stylesheets/datatables/jquery.dataTables.scss +453 -0
  28. data/vendor/assets/stylesheets/datatables/jquery.dataTables_themeroller.scss +416 -0
  29. data/vendor/assets/stylesheets/datatables-responsive/responsive.bootstrap.scss +4 -0
  30. data/vendor/assets/stylesheets/datatables-responsive/responsive.dataTables.scss +241 -0
  31. data/vendor/assets/stylesheets/datatables-responsive/responsive.foundation.scss +10 -0
  32. data/vendor/assets/stylesheets/datatables-responsive/responsive.jqueryui.scss +2 -0
  33. data/vendor/assets/stylesheets/datatables-responsive.scss +1 -0
  34. data/vendor/assets/stylesheets/datatables-select/select.bootstrap.scss +17 -0
  35. data/vendor/assets/stylesheets/datatables-select/select.dataTables.scss +139 -0
  36. data/vendor/assets/stylesheets/datatables-select/select.foundation.scss +18 -0
  37. data/vendor/assets/stylesheets/datatables-select/select.jqueryui.scss +4 -0
  38. data/vendor/assets/stylesheets/datatables-select.scss +1 -0
  39. data/vendor/assets/stylesheets/datatables.scss +1 -0
  40. metadata +37 -44
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aadc29031beec8515e3d69eb3f75db5790617e71
4
- data.tar.gz: 656013c9a4e9ffd3cdd3452d9284e87b00ebc727
3
+ metadata.gz: b43750cac7e92b7dbfd3cbe13c92d19d9c735652
4
+ data.tar.gz: 235216f9d7c80ec7a0051e78c363854bdb44f799
5
5
  SHA512:
6
- metadata.gz: eea557bbd85a451c81753bcde2c9a9da07d6eea16be5f660c58bea628f55ac94fd156a07f8dfc3adb4bce6e9403bdb1c366d46fe27b521b700bd6aa51635ff4f
7
- data.tar.gz: 1029c52c582830bd96aecb665526b9e206b52ffe6772816930433c157ce815328bfb8a19ca47ec13b0b95b2453897a97ddd3ccd5b54ac30257b1e746ad2c701c
6
+ metadata.gz: 3a2e4b70ac8acfc05831b6a7152e5374df8ced8a101f5cf7705bda9b23dd3854194e75677d2ad3b355debfee5f584d08cb0aba3b79f314cecd976e13e6aae652
7
+ data.tar.gz: 9549ad81b5b11e95be39e9c098e7baad82da3388c312027ccd36632857504a50972ea9fd819c720eb8bebbd7dfe2eb0678874570f30552b1fecf68dd91064286
@@ -7,6 +7,11 @@ Rails.application.routes.prepend do
7
7
  mount Refile.app, at: Refile.mount_point, as: :refile_app
8
8
  end
9
9
 
10
+ # use a CDN/asset host if the main rails app is using one
11
+ if Rails.application.config.action_controller.asset_host.present?
12
+ Refile.cdn_host = Rails.application.config.action_controller.asset_host
13
+ end
14
+
10
15
  if ENV['AWS_ACCESS_KEY_ID'].present? && ENV['AWS_SECRET_ACCESS_KEY'].present? && ENV['AWS_S3_BUCKET'].present?
11
16
  aws = {
12
17
  access_key_id: ENV['AWS_ACCESS_KEY_ID'],
@@ -18,4 +23,4 @@ if ENV['AWS_ACCESS_KEY_ID'].present? && ENV['AWS_SECRET_ACCESS_KEY'].present? &&
18
23
  Refile.store = Refile::S3.new(prefix: "store", **aws)
19
24
  else
20
25
  Refile.store = Refile::Backend::FileSystem.new(Rails.root.join('public/smithy', Rails.env))
21
- end
26
+ end
@@ -11,9 +11,6 @@ require 'httparty'
11
11
  require 'kaminari'
12
12
  require 'jquery/rails'
13
13
  require 'liquid'
14
- require 'rails-assets-datatables'
15
- require 'rails-assets-datatables-select'
16
- require 'rails-assets-datatables-responsive'
17
14
  require 'refile/rails'
18
15
  require 'refile/mini_magick'
19
16
  require 'remotipart'
@@ -1,3 +1,3 @@
1
1
  module Smithy
2
- VERSION = "0.6.4"
2
+ VERSION = "0.6.5"
3
3
  end
@@ -0,0 +1,220 @@
1
+ /*! DataTables Bootstrap 3 integration
2
+ * ©2011-2015 SpryMedia Ltd - datatables.net/license
3
+ */
4
+
5
+ /**
6
+ * DataTables integration for Bootstrap 3. This requires Bootstrap 3 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( factory ){
14
+ if ( typeof define === 'function' && define.amd ) {
15
+ // AMD
16
+ define( ['jquery', 'datatables.net'], function ( $ ) {
17
+ return factory( $, window, document );
18
+ } );
19
+ }
20
+ else if ( typeof exports === 'object' ) {
21
+ // CommonJS
22
+ module.exports = function (root, $) {
23
+ if ( ! root ) {
24
+ root = window;
25
+ }
26
+
27
+ if ( ! $ || ! $.fn.dataTable ) {
28
+ // Require DataTables, which attaches to jQuery, including
29
+ // jQuery if needed and have a $ property so we can access the
30
+ // jQuery object that is used
31
+ $ = require('datatables.net')(root, $).$;
32
+ }
33
+
34
+ return factory( $, root, root.document );
35
+ };
36
+ }
37
+ else {
38
+ // Browser
39
+ factory( jQuery, window, document );
40
+ }
41
+ }(function( $, window, document, undefined ) {
42
+ 'use strict';
43
+ var DataTable = $.fn.dataTable;
44
+
45
+
46
+ /* Set the defaults for DataTables initialisation */
47
+ $.extend( true, DataTable.defaults, {
48
+ dom:
49
+ "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
50
+ "<'row'<'col-sm-12'tr>>" +
51
+ "<'row'<'col-sm-5'i><'col-sm-7'p>>",
52
+ renderer: 'bootstrap'
53
+ } );
54
+
55
+
56
+ /* Default class modification */
57
+ $.extend( DataTable.ext.classes, {
58
+ sWrapper: "dataTables_wrapper form-inline dt-bootstrap",
59
+ sFilterInput: "form-control input-sm",
60
+ sLengthSelect: "form-control input-sm",
61
+ sProcessing: "dataTables_processing panel panel-default"
62
+ } );
63
+
64
+
65
+ /* Bootstrap paging button renderer */
66
+ DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
67
+ var api = new DataTable.Api( settings );
68
+ var classes = settings.oClasses;
69
+ var lang = settings.oLanguage.oPaginate;
70
+ var aria = settings.oLanguage.oAria.paginate || {};
71
+ var btnDisplay, btnClass, counter=0;
72
+
73
+ var attach = function( container, buttons ) {
74
+ var i, ien, node, button;
75
+ var clickHandler = function ( e ) {
76
+ e.preventDefault();
77
+ if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
78
+ api.page( e.data.action ).draw( 'page' );
79
+ }
80
+ };
81
+
82
+ for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
83
+ button = buttons[i];
84
+
85
+ if ( $.isArray( button ) ) {
86
+ attach( container, button );
87
+ }
88
+ else {
89
+ btnDisplay = '';
90
+ btnClass = '';
91
+
92
+ switch ( button ) {
93
+ case 'ellipsis':
94
+ btnDisplay = '&#x2026;';
95
+ btnClass = 'disabled';
96
+ break;
97
+
98
+ case 'first':
99
+ btnDisplay = lang.sFirst;
100
+ btnClass = button + (page > 0 ?
101
+ '' : ' disabled');
102
+ break;
103
+
104
+ case 'previous':
105
+ btnDisplay = lang.sPrevious;
106
+ btnClass = button + (page > 0 ?
107
+ '' : ' disabled');
108
+ break;
109
+
110
+ case 'next':
111
+ btnDisplay = lang.sNext;
112
+ btnClass = button + (page < pages-1 ?
113
+ '' : ' disabled');
114
+ break;
115
+
116
+ case 'last':
117
+ btnDisplay = lang.sLast;
118
+ btnClass = button + (page < pages-1 ?
119
+ '' : ' disabled');
120
+ break;
121
+
122
+ default:
123
+ btnDisplay = button + 1;
124
+ btnClass = page === button ?
125
+ 'active' : '';
126
+ break;
127
+ }
128
+
129
+ if ( btnDisplay ) {
130
+ node = $('<li>', {
131
+ 'class': classes.sPageButton+' '+btnClass,
132
+ 'id': idx === 0 && typeof button === 'string' ?
133
+ settings.sTableId +'_'+ button :
134
+ null
135
+ } )
136
+ .append( $('<a>', {
137
+ 'href': '#',
138
+ 'aria-controls': settings.sTableId,
139
+ 'aria-label': aria[ button ],
140
+ 'data-dt-idx': counter,
141
+ 'tabindex': settings.iTabIndex
142
+ } )
143
+ .html( btnDisplay )
144
+ )
145
+ .appendTo( container );
146
+
147
+ settings.oApi._fnBindAction(
148
+ node, {action: button}, clickHandler
149
+ );
150
+
151
+ counter++;
152
+ }
153
+ }
154
+ }
155
+ };
156
+
157
+ // IE9 throws an 'unknown error' if document.activeElement is used
158
+ // inside an iframe or frame.
159
+ var activeEl;
160
+
161
+ try {
162
+ // Because this approach is destroying and recreating the paging
163
+ // elements, focus is lost on the select button which is bad for
164
+ // accessibility. So we want to restore focus once the draw has
165
+ // completed
166
+ activeEl = $(host).find(document.activeElement).data('dt-idx');
167
+ }
168
+ catch (e) {}
169
+
170
+ attach(
171
+ $(host).empty().html('<ul class="pagination"/>').children('ul'),
172
+ buttons
173
+ );
174
+
175
+ if ( activeEl ) {
176
+ $(host).find( '[data-dt-idx='+activeEl+']' ).focus();
177
+ }
178
+ };
179
+
180
+
181
+ /*
182
+ * TableTools Bootstrap compatibility
183
+ * Required TableTools 2.1+
184
+ */
185
+ if ( DataTable.TableTools ) {
186
+ // Set the classes that TableTools uses to something suitable for Bootstrap
187
+ $.extend( true, DataTable.TableTools.classes, {
188
+ "container": "DTTT btn-group",
189
+ "buttons": {
190
+ "normal": "btn btn-default",
191
+ "disabled": "disabled"
192
+ },
193
+ "collection": {
194
+ "container": "DTTT_dropdown dropdown-menu",
195
+ "buttons": {
196
+ "normal": "",
197
+ "disabled": "disabled"
198
+ }
199
+ },
200
+ "print": {
201
+ "info": "DTTT_print_info"
202
+ },
203
+ "select": {
204
+ "row": "active"
205
+ }
206
+ } );
207
+
208
+ // Have the collection use a bootstrap compatible drop down
209
+ $.extend( true, DataTable.TableTools.DEFAULTS.oTags, {
210
+ "collection": {
211
+ "container": "ul",
212
+ "button": "li",
213
+ "liner": "a"
214
+ }
215
+ } );
216
+ }
217
+
218
+
219
+ return DataTable;
220
+ }));
@@ -0,0 +1,156 @@
1
+ /*! DataTables Foundation integration
2
+ * ©2011-2015 SpryMedia Ltd - datatables.net/license
3
+ */
4
+
5
+ /**
6
+ * DataTables integration for Foundation. This requires Foundation 5 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 Foundation. See http://datatables.net/manual/styling/foundation
11
+ * for further information.
12
+ */
13
+ (function( factory ){
14
+ if ( typeof define === 'function' && define.amd ) {
15
+ // AMD
16
+ define( ['jquery', 'datatables.net'], function ( $ ) {
17
+ return factory( $, window, document );
18
+ } );
19
+ }
20
+ else if ( typeof exports === 'object' ) {
21
+ // CommonJS
22
+ module.exports = function (root, $) {
23
+ if ( ! root ) {
24
+ root = window;
25
+ }
26
+
27
+ if ( ! $ || ! $.fn.dataTable ) {
28
+ $ = require('datatables.net')(root, $).$;
29
+ }
30
+
31
+ return factory( $, root, root.document );
32
+ };
33
+ }
34
+ else {
35
+ // Browser
36
+ factory( jQuery, window, document );
37
+ }
38
+ }(function( $, window, document, undefined ) {
39
+ 'use strict';
40
+ var DataTable = $.fn.dataTable;
41
+
42
+
43
+ $.extend( DataTable.ext.classes, {
44
+ sWrapper: "dataTables_wrapper dt-foundation",
45
+ sProcessing: "dataTables_processing panel"
46
+ } );
47
+
48
+
49
+ /* Set the defaults for DataTables initialisation */
50
+ $.extend( true, DataTable.defaults, {
51
+ dom:
52
+ "<'row'<'small-6 columns'l><'small-6 columns'f>r>"+
53
+ "t"+
54
+ "<'row'<'small-6 columns'i><'small-6 columns'p>>",
55
+ renderer: 'foundation'
56
+ } );
57
+
58
+
59
+ /* Page button renderer */
60
+ DataTable.ext.renderer.pageButton.foundation = function ( settings, host, idx, buttons, page, pages ) {
61
+ var api = new DataTable.Api( settings );
62
+ var classes = settings.oClasses;
63
+ var lang = settings.oLanguage.oPaginate;
64
+ var aria = settings.oLanguage.oAria.paginate || {};
65
+ var btnDisplay, btnClass;
66
+
67
+ var attach = function( container, buttons ) {
68
+ var i, ien, node, button;
69
+ var clickHandler = function ( e ) {
70
+ e.preventDefault();
71
+ if ( !$(e.currentTarget).hasClass('unavailable') && api.page() != e.data.action ) {
72
+ api.page( e.data.action ).draw( 'page' );
73
+ }
74
+ };
75
+
76
+ for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
77
+ button = buttons[i];
78
+
79
+ if ( $.isArray( button ) ) {
80
+ attach( container, button );
81
+ }
82
+ else {
83
+ btnDisplay = '';
84
+ btnClass = '';
85
+
86
+ switch ( button ) {
87
+ case 'ellipsis':
88
+ btnDisplay = '&#x2026;';
89
+ btnClass = 'unavailable';
90
+ break;
91
+
92
+ case 'first':
93
+ btnDisplay = lang.sFirst;
94
+ btnClass = button + (page > 0 ?
95
+ '' : ' unavailable');
96
+ break;
97
+
98
+ case 'previous':
99
+ btnDisplay = lang.sPrevious;
100
+ btnClass = button + (page > 0 ?
101
+ '' : ' unavailable');
102
+ break;
103
+
104
+ case 'next':
105
+ btnDisplay = lang.sNext;
106
+ btnClass = button + (page < pages-1 ?
107
+ '' : ' unavailable');
108
+ break;
109
+
110
+ case 'last':
111
+ btnDisplay = lang.sLast;
112
+ btnClass = button + (page < pages-1 ?
113
+ '' : ' unavailable');
114
+ break;
115
+
116
+ default:
117
+ btnDisplay = button + 1;
118
+ btnClass = page === button ?
119
+ 'current' : '';
120
+ break;
121
+ }
122
+
123
+ if ( btnDisplay ) {
124
+ node = $('<li>', {
125
+ 'class': classes.sPageButton+' '+btnClass,
126
+ 'aria-controls': settings.sTableId,
127
+ 'aria-label': aria[ button ],
128
+ 'tabindex': settings.iTabIndex,
129
+ 'id': idx === 0 && typeof button === 'string' ?
130
+ settings.sTableId +'_'+ button :
131
+ null
132
+ } )
133
+ .append( $('<a>', {
134
+ 'href': '#'
135
+ } )
136
+ .html( btnDisplay )
137
+ )
138
+ .appendTo( container );
139
+
140
+ settings.oApi._fnBindAction(
141
+ node, {action: button}, clickHandler
142
+ );
143
+ }
144
+ }
145
+ }
146
+ };
147
+
148
+ attach(
149
+ $(host).empty().html('<ul class="pagination"/>').children('ul'),
150
+ buttons
151
+ );
152
+ };
153
+
154
+
155
+ return DataTable;
156
+ }));
@@ -0,0 +1,164 @@
1
+ /*! DataTables jQuery UI integration
2
+ * ©2011-2014 SpryMedia Ltd - datatables.net/license
3
+ */
4
+
5
+ /**
6
+ * DataTables integration for jQuery UI. This requires jQuery UI 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 jQuery UI. See http://datatables.net/manual/styling/jqueryui
11
+ * for further information.
12
+ */
13
+ (function( factory ){
14
+ if ( typeof define === 'function' && define.amd ) {
15
+ // AMD
16
+ define( ['jquery', 'datatables.net'], function ( $ ) {
17
+ return factory( $, window, document );
18
+ } );
19
+ }
20
+ else if ( typeof exports === 'object' ) {
21
+ // CommonJS
22
+ module.exports = function (root, $) {
23
+ if ( ! root ) {
24
+ root = window;
25
+ }
26
+
27
+ if ( ! $ || ! $.fn.dataTable ) {
28
+ $ = require('datatables.net')(root, $).$;
29
+ }
30
+
31
+ return factory( $, root, root.document );
32
+ };
33
+ }
34
+ else {
35
+ // Browser
36
+ factory( jQuery, window, document );
37
+ }
38
+ }(function( $, window, document, undefined ) {
39
+ 'use strict';
40
+ var DataTable = $.fn.dataTable;
41
+
42
+
43
+ var sort_prefix = 'css_right ui-icon ui-icon-';
44
+ var toolbar_prefix = 'fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-';
45
+
46
+ /* Set the defaults for DataTables initialisation */
47
+ $.extend( true, DataTable.defaults, {
48
+ dom:
49
+ '<"'+toolbar_prefix+'tl ui-corner-tr"lfr>'+
50
+ 't'+
51
+ '<"'+toolbar_prefix+'bl ui-corner-br"ip>',
52
+ renderer: 'jqueryui'
53
+ } );
54
+
55
+
56
+ $.extend( DataTable.ext.classes, {
57
+ "sWrapper": "dataTables_wrapper dt-jqueryui",
58
+
59
+ /* Full numbers paging buttons */
60
+ "sPageButton": "fg-button ui-button ui-state-default",
61
+ "sPageButtonActive": "ui-state-disabled",
62
+ "sPageButtonDisabled": "ui-state-disabled",
63
+
64
+ /* Features */
65
+ "sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+
66
+ "ui-buttonset-multi paging_", /* Note that the type is postfixed */
67
+
68
+ /* Sorting */
69
+ "sSortAsc": "ui-state-default sorting_asc",
70
+ "sSortDesc": "ui-state-default sorting_desc",
71
+ "sSortable": "ui-state-default sorting",
72
+ "sSortableAsc": "ui-state-default sorting_asc_disabled",
73
+ "sSortableDesc": "ui-state-default sorting_desc_disabled",
74
+ "sSortableNone": "ui-state-default sorting_disabled",
75
+ "sSortIcon": "DataTables_sort_icon",
76
+
77
+ /* Scrolling */
78
+ "sScrollHead": "dataTables_scrollHead "+"ui-state-default",
79
+ "sScrollFoot": "dataTables_scrollFoot "+"ui-state-default",
80
+
81
+ /* Misc */
82
+ "sHeaderTH": "ui-state-default",
83
+ "sFooterTH": "ui-state-default"
84
+ } );
85
+
86
+
87
+ DataTable.ext.renderer.header.jqueryui = function ( settings, cell, column, classes ) {
88
+ // Calculate what the unsorted class should be
89
+ var noSortAppliedClass = sort_prefix+'carat-2-n-s';
90
+ var asc = $.inArray('asc', column.asSorting) !== -1;
91
+ var desc = $.inArray('desc', column.asSorting) !== -1;
92
+
93
+ if ( !column.bSortable || (!asc && !desc) ) {
94
+ noSortAppliedClass = '';
95
+ }
96
+ else if ( asc && !desc ) {
97
+ noSortAppliedClass = sort_prefix+'carat-1-n';
98
+ }
99
+ else if ( !asc && desc ) {
100
+ noSortAppliedClass = sort_prefix+'carat-1-s';
101
+ }
102
+
103
+ // Setup the DOM structure
104
+ $('<div/>')
105
+ .addClass( 'DataTables_sort_wrapper' )
106
+ .append( cell.contents() )
107
+ .append( $('<span/>')
108
+ .addClass( classes.sSortIcon+' '+noSortAppliedClass )
109
+ )
110
+ .appendTo( cell );
111
+
112
+ // Attach a sort listener to update on sort
113
+ $(settings.nTable).on( 'order.dt', function ( e, ctx, sorting, columns ) {
114
+ if ( settings !== ctx ) {
115
+ return;
116
+ }
117
+
118
+ var colIdx = column.idx;
119
+
120
+ cell
121
+ .removeClass( classes.sSortAsc +" "+classes.sSortDesc )
122
+ .addClass( columns[ colIdx ] == 'asc' ?
123
+ classes.sSortAsc : columns[ colIdx ] == 'desc' ?
124
+ classes.sSortDesc :
125
+ column.sSortingClass
126
+ );
127
+
128
+ cell
129
+ .find( 'span.'+classes.sSortIcon )
130
+ .removeClass(
131
+ sort_prefix+'triangle-1-n' +" "+
132
+ sort_prefix+'triangle-1-s' +" "+
133
+ sort_prefix+'carat-2-n-s' +" "+
134
+ sort_prefix+'carat-1-n' +" "+
135
+ sort_prefix+'carat-1-s'
136
+ )
137
+ .addClass( columns[ colIdx ] == 'asc' ?
138
+ sort_prefix+'triangle-1-n' : columns[ colIdx ] == 'desc' ?
139
+ sort_prefix+'triangle-1-s' :
140
+ noSortAppliedClass
141
+ );
142
+ } );
143
+ };
144
+
145
+
146
+ /*
147
+ * TableTools jQuery UI compatibility
148
+ * Required TableTools 2.1+
149
+ */
150
+ if ( DataTable.TableTools ) {
151
+ $.extend( true, DataTable.TableTools.classes, {
152
+ "container": "DTTT_container ui-buttonset ui-buttonset-multi",
153
+ "buttons": {
154
+ "normal": "DTTT_button ui-button ui-state-default"
155
+ },
156
+ "collection": {
157
+ "container": "DTTT_collection ui-buttonset ui-buttonset-multi"
158
+ }
159
+ } );
160
+ }
161
+
162
+
163
+ return DataTable;
164
+ }));