datatable_state 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59a05ee6a937b7c6a691a681da758edf63ef7ff6
|
4
|
+
data.tar.gz: 4fe71b58282946e66c28ff49b05aa31d950d78ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d75342267e5cd5b78a49d360284b7e20060575384c5ba664c2ac705826a5b942394fe00b60821171e88a7b3ac39b19a0d8e6bdcdcfa0823b22cc3dced342562
|
7
|
+
data.tar.gz: b171ddf06364a007f4dd7dbff00f30ad017585858e1fec5ecb8d49d00406c445536387ad78808cb3d9531f60308457d65714985f3366b72184ad7d2d297d8bc8
|
@@ -0,0 +1,61 @@
|
|
1
|
+
datatableStateLoad = function() {
|
2
|
+
var o;
|
3
|
+
try {
|
4
|
+
$.ajax({
|
5
|
+
"url": "/datatable_states/store/load",
|
6
|
+
"data": { datatable_state: {
|
7
|
+
path: location.pathname.replace(/^.*\//, '') }
|
8
|
+
},
|
9
|
+
"async": false,
|
10
|
+
"dataType": "json",
|
11
|
+
"success": function (json) {
|
12
|
+
o = json;
|
13
|
+
}
|
14
|
+
});
|
15
|
+
this.loadedState = o;
|
16
|
+
return o;
|
17
|
+
} catch (e) {
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
datatableStateSave = function(settings, data) {
|
22
|
+
try {
|
23
|
+
var loadedState = jQuery.extend({}, this.loadedState);
|
24
|
+
var savingState = jQuery.extend({}, data);
|
25
|
+
delete loadedState["time"];
|
26
|
+
delete savingState["time"];
|
27
|
+
// don't save unmodified state
|
28
|
+
if (JSON.stringify(savingState) === JSON.stringify(loadedState)) {
|
29
|
+
return false;
|
30
|
+
}
|
31
|
+
$.ajax({
|
32
|
+
"url": "/datatable_states/store/save",
|
33
|
+
"data": { datatable_state: {
|
34
|
+
path: location.pathname.replace(/^.*\//, ''),
|
35
|
+
state: JSON.stringify(data) }
|
36
|
+
},
|
37
|
+
"dataType": "json",
|
38
|
+
"method": "POST",
|
39
|
+
"success": function () {
|
40
|
+
}
|
41
|
+
});
|
42
|
+
} catch (e) {
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
datatableStateDefaultPageLength = function() {
|
47
|
+
var table = $('.datatable');
|
48
|
+
if (table.data('displayLength')) {
|
49
|
+
return table.data('displayLength');
|
50
|
+
} else if (table.hasClass('datatable_ajax')) {
|
51
|
+
return 100;
|
52
|
+
} else {
|
53
|
+
return -1;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
datatableStateSkipPerColumn = function(settings, data) {
|
58
|
+
$.each(data["columns"], function(i, column) {
|
59
|
+
column["search"]["search"] = "";
|
60
|
+
});
|
61
|
+
}
|
@@ -1,4 +1,9 @@
|
|
1
1
|
module DatatableState
|
2
2
|
module ApplicationHelper
|
3
|
+
def saved_display_length
|
4
|
+
saved_state = Store.find_by_user_id_and_path(current_user.id,
|
5
|
+
request.path.split('/').last)
|
6
|
+
"data-display-length=#{JSON.parse(saved_state.state)['length']}" if saved_state
|
7
|
+
end
|
3
8
|
end
|
4
9
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datatable_state
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- denispeplin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -49,6 +49,7 @@ files:
|
|
49
49
|
- README.md
|
50
50
|
- Rakefile
|
51
51
|
- app/assets/javascripts/datatable_state/application.js
|
52
|
+
- app/assets/javascripts/datatable_state/store.js
|
52
53
|
- app/assets/stylesheets/datatable_state/application.css
|
53
54
|
- app/controllers/datatable_state/application_controller.rb
|
54
55
|
- app/controllers/datatable_state/store_controller.rb
|