rails-datatable 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 48fd623c70bb297eea1a2ab0179f08daca30a542af08cfbd739dc692270adbe5
4
- data.tar.gz: 4f02bef592074c6971a3b8a989e543d85e98641dfdd226d5dc372e7832730f47
3
+ metadata.gz: f71cde90643548ca257324d3a30e9c7a136e358c17279a59feb13a4e6a8c1cf2
4
+ data.tar.gz: 2241d5b9963030510f7715f70fae37c9f089d95b29426ae9c5a91fba79fdc5be
5
5
  SHA512:
6
- metadata.gz: db6c11f6d70a3b4a445be86de667a2373dc1789bb14359191d528c3ee6e02aabb2736fe427b90be1027d49a0765719fcc167b0e42673ac1bd4bead60afe5b122
7
- data.tar.gz: 2617a5217d1efd552470e14224521065bccdcf01b379a4755cbce9c0d072f92434dd4d2c1e8baf87b685b636d344532883ae189a617d935d2a6deed7506bb893
6
+ metadata.gz: 1268b49b0e96905018eb8d9ccc5e71014a37c10bac73a0a3d25ff04bce57c845c9b2c27100e956d5e5523f6a7cd317745b59724bcc96893f8b83e3bd1160e95f
7
+ data.tar.gz: 46cb758453a272f7fd99ae1c7cdadd05691c458f2ad6ecc6668a535f884a437a8194366f798fff7f7c03cb23cd19376d5d1b3716cb303505afb644fdb940812a
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ /*.gem
13
+ /app
data/README.md CHANGED
@@ -19,12 +19,12 @@ Or install it yourself as:
19
19
  ## Usage
20
20
 
21
21
  ### 1. Install RailsDatatable
22
- $ rails g rails::datatable::install
22
+ $ rails g rails:datatable:install
23
23
 
24
24
  ### 2. Generate resources
25
25
  #### 2.1 Generate databtable resources
26
26
 
27
- $ rails g rails::datatable::resource [User]
27
+ $ rails g rails:datatable:resource User
28
28
 
29
29
  #### 2.2 Implement json method in your controller
30
30
  ```ruby
@@ -1,5 +1,5 @@
1
1
  module Rails
2
2
  module Datatable
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-datatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacky
@@ -110,10 +110,6 @@ files:
110
110
  - LICENSE.txt
111
111
  - README.md
112
112
  - Rakefile
113
- - app/assets/javascripts/application.js
114
- - app/datatables/datatable.rb
115
- - app/datatables/users_datatable.rb
116
- - app/views/users/_user.html.erb
117
113
  - bin/console
118
114
  - bin/setup
119
115
  - lib/generators/rails/datatable/install_generator.rb
@@ -148,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
144
  - !ruby/object:Gem::Version
149
145
  version: '0'
150
146
  requirements: []
151
- rubygems_version: 3.0.9
147
+ rubygems_version: 3.1.4
152
148
  signing_key:
153
149
  specification_version: 4
154
150
  summary: Simple datatable integration for Rails app
@@ -1,14 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file.
9
- //
10
- // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- //= require jquery
14
- //= require jquery.dataTables.min
@@ -1,81 +0,0 @@
1
- class Datatable
2
- include Rails.application.routes.url_helpers
3
-
4
- delegate :params, :raw, :h, :link_to,
5
- :number_to_currency, :text_field_tag,
6
- :check_box_tag, :current_user, :image_tag, :content_tag,
7
- :check_box_tag, :select_tag, :options_from_collection_for_select,:number_with_precision,
8
- :hidden_field_tag, :request, :render, to: :@view
9
-
10
- DEFAULT = {
11
- per_page: 10,
12
- truncate_length: 50,
13
- na: 'N/A'
14
- }
15
-
16
- def initialize(view, klass, columns_for_search: [], columns_for_sort: [], options: {})
17
- @view = view
18
- @klass = klass
19
- @columns_for_search = columns_for_search
20
- @columns_for_sort = columns_for_sort
21
- end
22
-
23
- def as_json(options = {})
24
- {
25
- sEcho: params[:sEcho].to_i,
26
- iTotalRecords: @klass.count,
27
- iTotalDisplayRecords: items.total_count,
28
- data: data
29
- }
30
- end
31
-
32
- protected
33
-
34
- def data
35
- raise NotImplementedError # Override this method in subclass
36
- end
37
-
38
- def items
39
- @items ||= fetch_items
40
- end
41
-
42
- def fetch_items
43
- items = if sort_column == '-'
44
- @klass.unscope(:order).order(:created_at => :desc)
45
- else
46
- null_order = sort_direction == 'asc' ? 'FIRST' : 'LAST'
47
- @klass.unscope(:order).order("#{sort_column} #{sort_direction} NULLS #{null_order}")
48
- end
49
-
50
- items = items.page(page).per(per_page)
51
-
52
- if params[:search].present?
53
- search_str = @columns_for_search.map{|field| "upper(cast(#{field} as text)) like upper(:search)"}.join ' or '
54
- items = items.where(search_str, search: "%#{params[:search][:value].strip}%")
55
- end
56
-
57
- if params[:sSearch].present?
58
- search_str = @columns_for_search.map{|field| "upper(cast(#{field} as text)) like upper(:search)"}.join ' or '
59
- items = items.where(search_str, search: "%#{params[:sSearch].strip}%")
60
- end
61
-
62
- items
63
- end
64
-
65
- def page
66
- (params['start'].to_i / per_page) + 1 rescue 1
67
- end
68
-
69
- def per_page
70
- params['length'].to_i rescue 10
71
- end
72
-
73
- def sort_column
74
- sort_index = params['order']['0']['column'].to_i rescue 0
75
- @columns_for_sort[sort_index]
76
- end
77
-
78
- def sort_direction
79
- params['order']['0']['dir'] rescue 'asc'
80
- end
81
- end
@@ -1,14 +0,0 @@
1
- class UsersDatatable < Datatable
2
- def initialize(view, klass)
3
- super(view, klass, columns_for_search: %w[], columns_for_sort:%w[- - - - ])
4
- end
5
-
6
- def data
7
- @items.each_with_index.map do |item, index|
8
- render(
9
- partial: 'users/user',
10
- formats: [:html],
11
- locals: { item: item, index: index}).split('</td>').map {|row| row.gsub('<td>', '')}
12
- end
13
- end
14
- end
@@ -1,2 +0,0 @@
1
- %td= index
2
- %td= item.id