rails-datatable 0.1.0 → 0.1.1

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.
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