effective_datatables 3.2.7 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,34 +3,34 @@
3
3
  */
4
4
 
5
5
  (function( factory ){
6
- if ( typeof define === 'function' && define.amd ) {
7
- // AMD
8
- define( ['jquery', 'datatables.net-bs', 'datatables.net-responsive'], function ( $ ) {
9
- return factory( $, window, document );
10
- } );
11
- }
12
- else if ( typeof exports === 'object' ) {
13
- // CommonJS
14
- module.exports = function (root, $) {
15
- if ( ! root ) {
16
- root = window;
17
- }
6
+ if ( typeof define === 'function' && define.amd ) {
7
+ // AMD
8
+ define( ['jquery', 'datatables.net-bs', 'datatables.net-responsive'], function ( $ ) {
9
+ return factory( $, window, document );
10
+ } );
11
+ }
12
+ else if ( typeof exports === 'object' ) {
13
+ // CommonJS
14
+ module.exports = function (root, $) {
15
+ if ( ! root ) {
16
+ root = window;
17
+ }
18
18
 
19
- if ( ! $ || ! $.fn.dataTable ) {
20
- $ = require('datatables.net-bs')(root, $).$;
21
- }
19
+ if ( ! $ || ! $.fn.dataTable ) {
20
+ $ = require('datatables.net-bs')(root, $).$;
21
+ }
22
22
 
23
- if ( ! $.fn.dataTable.Responsive ) {
24
- require('datatables.net-responsive')(root, $);
25
- }
23
+ if ( ! $.fn.dataTable.Responsive ) {
24
+ require('datatables.net-responsive')(root, $);
25
+ }
26
26
 
27
- return factory( $, root, root.document );
28
- };
29
- }
30
- else {
31
- // Browser
32
- factory( jQuery, window, document );
33
- }
27
+ return factory( $, root, root.document );
28
+ };
29
+ }
30
+ else {
31
+ // Browser
32
+ factory( jQuery, window, document );
33
+ }
34
34
  }(function( $, window, document, undefined ) {
35
35
  'use strict';
36
36
  var DataTable = $.fn.dataTable;
@@ -39,41 +39,45 @@ var DataTable = $.fn.dataTable;
39
39
  var _display = DataTable.Responsive.display;
40
40
  var _original = _display.modal;
41
41
  var _modal = $(
42
- '<div class="modal fade dtr-bs-modal" role="dialog">'+
43
- '<div class="modal-dialog" role="document">'+
44
- '<div class="modal-content">'+
45
- '<div class="modal-header">'+
46
- '<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
47
- '</div>'+
48
- '<div class="modal-body"/>'+
49
- '</div>'+
50
- '</div>'+
51
- '</div>'
42
+ '<div class="modal fade dtr-bs-modal" role="dialog">'+
43
+ '<div class="modal-dialog" role="document">'+
44
+ '<div class="modal-content">'+
45
+ '<div class="modal-header">'+
46
+ '<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
47
+ '</div>'+
48
+ '<div class="modal-body"/>'+
49
+ '</div>'+
50
+ '</div>'+
51
+ '</div>'
52
52
  );
53
53
 
54
54
  _display.modal = function ( options ) {
55
- return function ( row, update, render ) {
56
- if ( ! $.fn.modal ) {
57
- _original( row, update, render );
58
- }
59
- else {
60
- if ( ! update ) {
61
- if ( options && options.header ) {
62
- _modal.find('div.modal-header')
63
- .empty()
64
- .append( '<h4 class="modal-title">'+options.header( row )+'</h4>' );
65
- }
55
+ return function ( row, update, render ) {
56
+ if ( ! $.fn.modal ) {
57
+ _original( row, update, render );
58
+ }
59
+ else {
60
+ if ( ! update ) {
61
+ if ( options && options.header ) {
62
+ var header = _modal.find('div.modal-header');
63
+ var button = header.find('button').detach();
64
+
65
+ header
66
+ .empty()
67
+ .append( '<h4 class="modal-title">'+options.header( row )+'</h4>' )
68
+ .prepend( button );
69
+ }
66
70
 
67
- _modal.find( 'div.modal-body' )
68
- .empty()
69
- .append( render() );
71
+ _modal.find( 'div.modal-body' )
72
+ .empty()
73
+ .append( render() );
70
74
 
71
- _modal
72
- .appendTo( 'body' )
73
- .modal();
74
- }
75
- }
76
- };
75
+ _modal
76
+ .appendTo( 'body' )
77
+ .modal();
78
+ }
79
+ }
80
+ };
77
81
  };
78
82
 
79
83
 
@@ -1,3 +1,32 @@
1
+ @keyframes dtb-spinner {
2
+ 100% {
3
+ transform: rotate(360deg);
4
+ }
5
+ }
6
+ @-o-keyframes dtb-spinner {
7
+ 100% {
8
+ -o-transform: rotate(360deg);
9
+ transform: rotate(360deg);
10
+ }
11
+ }
12
+ @-ms-keyframes dtb-spinner {
13
+ 100% {
14
+ -ms-transform: rotate(360deg);
15
+ transform: rotate(360deg);
16
+ }
17
+ }
18
+ @-webkit-keyframes dtb-spinner {
19
+ 100% {
20
+ -webkit-transform: rotate(360deg);
21
+ transform: rotate(360deg);
22
+ }
23
+ }
24
+ @-moz-keyframes dtb-spinner {
25
+ 100% {
26
+ -moz-transform: rotate(360deg);
27
+ transform: rotate(360deg);
28
+ }
29
+ }
1
30
  div.dt-button-info {
2
31
  position: fixed;
3
32
  top: 50%;
@@ -100,3 +129,30 @@ div.dt-button-background {
100
129
  float: none;
101
130
  }
102
131
  }
132
+ div.dt-buttons button.btn.processing,
133
+ div.dt-buttons div.btn.processing,
134
+ div.dt-buttons a.btn.processing {
135
+ color: rgba(0, 0, 0, 0.2);
136
+ }
137
+ div.dt-buttons button.btn.processing:after,
138
+ div.dt-buttons div.btn.processing:after,
139
+ div.dt-buttons a.btn.processing:after {
140
+ position: absolute;
141
+ top: 50%;
142
+ left: 50%;
143
+ width: 16px;
144
+ height: 16px;
145
+ margin: -8px 0 0 -8px;
146
+ box-sizing: border-box;
147
+ display: block;
148
+ content: ' ';
149
+ border: 2px solid #282828;
150
+ border-radius: 50%;
151
+ border-left-color: transparent;
152
+ border-right-color: transparent;
153
+ animation: dtb-spinner 1500ms infinite linear;
154
+ -o-animation: dtb-spinner 1500ms infinite linear;
155
+ -ms-animation: dtb-spinner 1500ms infinite linear;
156
+ -webkit-animation: dtb-spinner 1500ms infinite linear;
157
+ -moz-animation: dtb-spinner 1500ms infinite linear;
158
+ }
@@ -117,22 +117,25 @@ div.dataTables_scrollHead table.dataTable {
117
117
  margin-bottom: 0 !important;
118
118
  }
119
119
 
120
- div.dataTables_scrollBody table {
120
+ div.dataTables_scrollBody > table {
121
121
  border-top: none;
122
122
  margin-top: 0 !important;
123
123
  margin-bottom: 0 !important;
124
124
  }
125
- div.dataTables_scrollBody table thead .sorting:after,
126
- div.dataTables_scrollBody table thead .sorting_asc:after,
127
- div.dataTables_scrollBody table thead .sorting_desc:after {
125
+ div.dataTables_scrollBody > table > thead .sorting:after,
126
+ div.dataTables_scrollBody > table > thead .sorting_asc:after,
127
+ div.dataTables_scrollBody > table > thead .sorting_desc:after {
128
128
  display: none;
129
129
  }
130
- div.dataTables_scrollBody table tbody tr:first-child th,
131
- div.dataTables_scrollBody table tbody tr:first-child td {
130
+ div.dataTables_scrollBody > table > tbody > tr:first-child > th,
131
+ div.dataTables_scrollBody > table > tbody > tr:first-child > td {
132
132
  border-top: none;
133
133
  }
134
134
 
135
- div.dataTables_scrollFoot table {
135
+ div.dataTables_scrollFoot > .dataTables_scrollFootInner {
136
+ box-sizing: content-box;
137
+ }
138
+ div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
136
139
  margin-top: 0 !important;
137
140
  border-top: none;
138
141
  }
@@ -8,14 +8,14 @@ table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
8
8
  table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
9
9
  display: none !important;
10
10
  }
11
- table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child,
12
- table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child {
11
+ table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
12
+ table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
13
13
  position: relative;
14
14
  padding-left: 30px;
15
15
  cursor: pointer;
16
16
  }
17
- table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,
18
- table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {
17
+ table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
18
+ table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
19
19
  top: 9px;
20
20
  left: 4px;
21
21
  height: 14px;
@@ -28,6 +28,7 @@ table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {
28
28
  box-shadow: 0 0 3px #444;
29
29
  box-sizing: content-box;
30
30
  text-align: center;
31
+ text-indent: 0 !important;
31
32
  font-family: 'Courier New', Courier, monospace;
32
33
  line-height: 14px;
33
34
  content: '+';
@@ -38,9 +39,6 @@ table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before
38
39
  content: '-';
39
40
  background-color: #d33333;
40
41
  }
41
- table.dataTable.dtr-inline.collapsed > tbody > tr.child td:before {
42
- display: none;
43
- }
44
42
  table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
45
43
  table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
46
44
  padding-left: 27px;
@@ -76,6 +74,7 @@ table.dataTable.dtr-column > tbody > tr > th.control:before {
76
74
  box-shadow: 0 0 3px #444;
77
75
  box-sizing: content-box;
78
76
  text-align: center;
77
+ text-indent: 0 !important;
79
78
  font-family: 'Courier New', Courier, monospace;
80
79
  line-height: 14px;
81
80
  content: '+';
@@ -92,20 +91,20 @@ table.dataTable > tbody > tr.child {
92
91
  table.dataTable > tbody > tr.child:hover {
93
92
  background: transparent !important;
94
93
  }
95
- table.dataTable > tbody > tr.child ul {
94
+ table.dataTable > tbody > tr.child ul.dtr-details {
96
95
  display: inline-block;
97
96
  list-style-type: none;
98
97
  margin: 0;
99
98
  padding: 0;
100
99
  }
101
- table.dataTable > tbody > tr.child ul li {
100
+ table.dataTable > tbody > tr.child ul.dtr-details > li {
102
101
  border-bottom: 1px solid #efefef;
103
102
  padding: 0.5em 0;
104
103
  }
105
- table.dataTable > tbody > tr.child ul li:first-child {
104
+ table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
106
105
  padding-top: 0;
107
106
  }
108
- table.dataTable > tbody > tr.child ul li:last-child {
107
+ table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
109
108
  border-bottom: none;
110
109
  }
111
110
  table.dataTable > tbody > tr.child span.dtr-title {
@@ -1,6 +1,7 @@
1
1
  .effective-datatables-filters { margin-bottom: 10px; }
2
2
  .effective-datatables-filters-scopes { display: inline-block; margin-right: 10px; }
3
3
  .effective-datatables-filters-inputs { display: inline-block; }
4
+ .effective-datatables-filters-inputs span.select2-container { display: inline-block; }
4
5
  .effective-datatables-filters-inputs .form-group { margin-right: 10px; }
5
6
  .effective-datatables-filters-inputs .control-label { margin-right: 3px; }
6
7
  .effective-datatables-filters-btn { display: inline-block; }
@@ -1,17 +1,17 @@
1
1
  // Use asset-data-url to prevent 3 additional GET requests for icons
2
2
  table.dataTable thead .sorting {
3
3
  background-image: asset-data-url('dataTables/sort_both.png');
4
- background-position: 100% 70%;
4
+ background-position: right 0px bottom 14px;
5
5
  }
6
6
 
7
7
  table.dataTable thead .sorting_asc {
8
8
  background-image: asset-data-url('dataTables/sort_asc.png');
9
- background-position: 100% 70%;
9
+ background-position: right 0px bottom 14px;
10
10
  }
11
11
 
12
12
  table.dataTable thead .sorting_desc {
13
13
  background-image: asset-data-url('dataTables/sort_desc.png');
14
- background-position: 100% 70%;
14
+ background-position: right 0px bottom 14px;
15
15
  }
16
16
 
17
17
  // Override bootstrap default glyphicons
@@ -40,8 +40,7 @@ table.dataTable thead {
40
40
  .form-control, .form-group {
41
41
  width: 100%;
42
42
  font-weight: normal;
43
- margin-left: 0px;
44
- margin-right: 0px;
43
+ margin: 0px;
45
44
  }
46
45
 
47
46
  .datatable_search__bulk_actions { margin-left: 5px; }
@@ -61,11 +60,12 @@ table.dataTable.simple {
61
60
 
62
61
  // Processing popup
63
62
  div.dataTables_wrapper div.dataTables_processing {
64
- top: -20px;
63
+ top: -10px;
65
64
  border: none;
66
65
  box-shadow: none;
67
- margin-left: -40%;
68
- width: 80%;
66
+ margin-left: -35%;
67
+ margin-bottom: 0;
68
+ width: 70%;
69
69
  }
70
70
 
71
71
  // Show x per page
@@ -146,13 +146,11 @@ div.dataTables_wrapper div.dataTables_info {
146
146
  padding: 5px 0px 6px 6px;
147
147
  }
148
148
 
149
- // Collapsed responsive view
150
- table.dataTable > tbody > tr.child span.dtr-title { min-width: 175px; }
151
- table.dataTable > tbody > tr.child span.dtr-data { white-space: nowrap; }
152
-
153
- table.dataTable.dtr-inline.collapsed > tbody > tr:not(.child) > td:first-child,
154
- table.dataTable.dtr-inline.collapsed > tbody > tr:not(.child) > th:first-child {
155
- padding-left: 30px !important;
149
+ // Collapsed Responsive View
150
+ table.dataTable > tbody > tr.child {
151
+ span.dtr-title { min-width: 175px; margin-bottom: 4px; }
152
+ span.dtr-data { white-space: nowrap; }
153
+ .col-resource_item { margin-bottom: 4px; }
156
154
  }
157
155
 
158
156
  // Column specific adjustments
@@ -1,7 +1,6 @@
1
1
  @import 'dataTables/dataTables.bootstrap';
2
2
 
3
3
  @import 'dataTables/buttons/buttons.bootstrap';
4
- @import 'dataTables/colReorder/colReorder.bootstrap';
5
4
  @import 'dataTables/responsive/responsive.bootstrap';
6
5
 
7
6
  @import 'effective_datatables/filters';
@@ -32,7 +32,7 @@ module EffectiveDatatablesHelper
32
32
  'display-start' => datatable.display_start,
33
33
  'input-js-options' => (input_js || {}).to_json.html_safe,
34
34
  'reset' => datatable_reset(datatable),
35
- 'simple' => simple.to_s,
35
+ 'simple' => datatable.simple?.to_s,
36
36
  'source' => effective_datatables.datatable_path(datatable, {format: 'json'}),
37
37
  'total-records' => datatable.to_json[:recordsTotal]
38
38
  }
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '3.2.7'.freeze
2
+ VERSION = '3.3.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_datatables
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.7
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
@@ -114,7 +114,6 @@ files:
114
114
  - app/assets/javascripts/vendor/jquery.delayedChange.js
115
115
  - app/assets/javascripts/vendor/jquery.fileDownload.js
116
116
  - app/assets/stylesheets/dataTables/buttons/buttons.bootstrap.css
117
- - app/assets/stylesheets/dataTables/colReorder/colReorder.bootstrap.css
118
117
  - app/assets/stylesheets/dataTables/dataTables.bootstrap.css
119
118
  - app/assets/stylesheets/dataTables/responsive/responsive.bootstrap.css
120
119
  - app/assets/stylesheets/effective_datatables.scss
@@ -1,11 +0,0 @@
1
- table.DTCR_clonedTable.dataTable {
2
- position: absolute !important;
3
- background-color: rgba(255, 255, 255, 0.7);
4
- z-index: 202;
5
- }
6
-
7
- div.DTCR_pointer {
8
- width: 1px;
9
- background-color: #337ab7;
10
- z-index: 201;
11
- }