zuora_connect 1.1.0 → 1.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
  SHA1:
3
- metadata.gz: 42044116d3463337d0e299acf27a87d61b2bf062
4
- data.tar.gz: 49bf8ebf4242594ef406e2b9e9a29369150322f5
3
+ metadata.gz: 7d535c9cd41021000e90b81f1c061941f17125d2
4
+ data.tar.gz: cc4702738a1b9e007011076393afbd855d1fbeae
5
5
  SHA512:
6
- metadata.gz: 0159a60522458ac5d4527420f51b0e0a9864a320cd541e4a46f0fb57e08c49f6fb4ae6e78de7d2c2e9ddc63611dd34e8480b2c42cbae6c7d01b248bdcb370c78
7
- data.tar.gz: 1df1c2d11a03f1e26b9c551d371dce00a9eb66613a72f9a3acead6235c93e69cbb38cccd5487073077e4b36fde2c2c3f5ad05700e09877b4443ccb80e6e1ce97
6
+ metadata.gz: 7b1fd7147209f29d4bc413797c9796e2053fea0f167e2f9d5146ae98c076c6a7b0805fd8fe01ec8779274cd369aa7eadbf3454260ce1cc0413da498a189ab7e1
7
+ data.tar.gz: b75f6f660fe9f1ace17e18e90816c06e481878c34430f28de08b2810c209faf1a96f9706891972f461cf0d1a236c35a37b5ac5d9461ce3465141965ce4bcb029
@@ -0,0 +1,91 @@
1
+ class DatatableGenerator < Rails::Generators::Base
2
+ def create_datatable_file
3
+
4
+
5
+ columns = Object.const_defined?("#{class_name}") ? "#{class_name}".constantize.send("column_names") : []
6
+ column_string = ""
7
+ columns.each do |col|
8
+ column_string << "\"#{plural_name}\" => #{plural_name.singularize}.#{col},"
9
+ end
10
+
11
+ create_file "app/datatables/#{file_name}_datatable.rb", <<-FILE
12
+ class #{class_name}Datatable
13
+ delegate :controller, :url_for, :render, :params, :image_tag, :h, :link_to, :api_call_path, :number_to_currency, to: :@view
14
+
15
+ def initialize(view)
16
+ @view = view
17
+ @total_#{plural_name} = #{class_name}.count(:all)
18
+ @#{plural_name} = #{class_name}.select(select_string).where(search_string, search: "%#{params[:sSearch].to_s.downcase}%").order("#{sort_column} #{sort_direction}")
19
+ @filtered_total = @#{plural_name}.size
20
+ @#{plural_name} = @#{plural_name}.page(page).per_page(per_page)
21
+ end
22
+
23
+ def as_json(options = {})
24
+ {
25
+ sEcho: params[:sEcho].to_i,
26
+ iTotalDisplayRecords: @filtered_total,
27
+ aaData: data,
28
+ iTotalRecords: @total_#{plural_name},
29
+ }
30
+ end
31
+
32
+ private
33
+ def data
34
+ @#{plural_name}.map do |#{plural_name.singularize}|
35
+ {
36
+ DT_RowId: product.id.to_s,
37
+ DT_RowClass: nil,
38
+ DT_RowAttr: { },
39
+ #{column_string}
40
+ #{plural_name}_actions: actions(#{plural_name.singularize}),
41
+ }
42
+ end
43
+ end
44
+
45
+ def actions(#{plural_name.singularize})
46
+ render(:partial=>"#{plural_name}/actions.html.erb", locals: { #{plural_name.singularize}: #{plural_name.singularize}} , :formats => [:html]) if params[:table_view_mode] == 'table'
47
+ end
48
+
49
+ def display_time(time)
50
+ return !time.to_s.blank? ? Time.parse(time.to_s).strftime("%m/%d/%y %I:%M:%S %p") : ''
51
+ end
52
+
53
+ def page
54
+ params[:iDisplayStart].to_i/per_page + 1
55
+ end
56
+
57
+ def per_page
58
+ params[:iDisplayLength].to_i > 0 ? params[:iDisplayLength].to_i : 10
59
+ end
60
+
61
+ def sort_column
62
+ col = [*0..params[:iColumns].to_i-1].map{|i| params["mDataProp_#{i}"].gsub("__", ".") if params["bSortable_#{i}"] != 'false' }[params[:iSortCol_0].to_i]
63
+ if !col.blank?
64
+ object, field = col.split('.')
65
+ if !field.blank? && !object.blank?
66
+ map = {"#{class_name}" => #{class_name}}
67
+ field_type = map[object.classify].column_for_attribute(field).type
68
+ return [:string, :text].include?(field_type) ? "lower(#{col})" : col
69
+ else
70
+ return col
71
+ end
72
+ else
73
+ return "#{plural_name}.id"
74
+ end
75
+ end
76
+
77
+ def sort_direction
78
+ params[:sSortDir_0] == "asc" ? "asc" : "desc"
79
+ end
80
+
81
+ def search_string
82
+ "to_char(#{plural_name}.id, '999999999')"
83
+ end
84
+
85
+ def select_string
86
+ "#{plural_name}.*"
87
+ end
88
+ end
89
+ FILE
90
+ end
91
+ end
@@ -1,3 +1,3 @@
1
1
  module ZuoraConnect
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuora_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-01 00:00:00.000000000 Z
11
+ date: 2017-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord-session_store
@@ -144,6 +144,7 @@ files:
144
144
  - db/migrate/20161024162319_add_tokens_to_app_instance.rb
145
145
  - db/migrate/20161024220705_add_token_to_app_instance.rb
146
146
  - db/migrate/20170131211919_add_sessions_table.rb
147
+ - lib/generators/datatable_generator.rb
147
148
  - lib/tasks/zuora_connect_tasks.rake
148
149
  - lib/zuora_connect.rb
149
150
  - lib/zuora_connect/configuration.rb