beautiful_scaffold 1.0.2 → 2.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/CHANGELOG +24 -1
  4. data/Gemfile +24 -9
  5. data/Gemfile.lock +209 -0
  6. data/README.rdoc +25 -26
  7. data/Rakefile +27 -4
  8. data/beautiful_scaffold.gemspec +6 -4
  9. data/lib/beautiful_scaffold/version.rb +3 -0
  10. data/lib/generators/beautiful_jointable_generator.rb +39 -6
  11. data/lib/generators/beautiful_migration_generator.rb +11 -19
  12. data/lib/generators/beautiful_scaffold_common_methods.rb +51 -26
  13. data/lib/generators/beautiful_scaffold_generator.rb +100 -43
  14. data/lib/generators/templates/app/assets/javascripts/application-bs.js +5 -6
  15. data/lib/generators/templates/app/assets/javascripts/beautiful_scaffold.js +64 -77
  16. data/lib/generators/templates/app/assets/javascripts/bootstrap-datetimepicker-for-beautiful-scaffold.js +25 -41
  17. data/lib/generators/templates/app/assets/javascripts/fixed_menu.js +3 -1
  18. data/lib/generators/templates/app/assets/javascripts/jstree.min.js +6 -0
  19. data/lib/generators/templates/app/assets/stylesheets/application-bs.css +14 -6
  20. data/lib/generators/templates/app/assets/stylesheets/beautiful-scaffold.css.scss +10 -1
  21. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/32px.png +0 -0
  22. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/40px.png +0 -0
  23. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/style.scss +1146 -0
  24. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/throbber.gif +0 -0
  25. data/lib/generators/templates/app/assets/stylesheets/themes/default/32px.png +0 -0
  26. data/lib/generators/templates/app/assets/stylesheets/themes/default/40px.png +0 -0
  27. data/lib/generators/templates/app/assets/stylesheets/themes/default/style.scss +1102 -0
  28. data/lib/generators/templates/app/assets/stylesheets/themes/default/throbber.gif +0 -0
  29. data/lib/generators/templates/app/controllers/base.rb +7 -5
  30. data/lib/generators/templates/app/controllers/master_base.rb +18 -24
  31. data/lib/generators/templates/app/helpers/beautiful_helper.rb +83 -61
  32. data/lib/generators/templates/app/initializers/link_renderer.rb +23 -18
  33. data/lib/generators/templates/app/views/_form.html.erb +2 -2
  34. data/lib/generators/templates/app/views/_form_habtm_tag.html.erb +6 -2
  35. data/lib/generators/templates/app/views/_mass_inserting.html.erb +38 -30
  36. data/lib/generators/templates/app/views/_modal_columns.html.erb +3 -3
  37. data/lib/generators/templates/app/views/index.html.erb +83 -79
  38. data/lib/generators/templates/app/views/layout.html.erb +29 -36
  39. data/lib/generators/templates/app/views/partials/_forget_password.html.erb +2 -2
  40. data/lib/generators/templates/app/views/partials/_form_field.html.erb +7 -7
  41. data/lib/generators/templates/app/views/partials/_index_batch.html.erb +1 -1
  42. data/lib/generators/templates/app/views/partials/_index_column.html.erb +4 -4
  43. data/lib/generators/templates/app/views/partials/_index_header.html.erb +1 -1
  44. data/lib/generators/templates/app/views/partials/_index_search.html.erb +1 -1
  45. data/lib/generators/templates/app/views/partials/_register_form.html.erb +2 -2
  46. data/lib/generators/templates/app/views/partials/_show_field.html.erb +3 -3
  47. data/lib/generators/templates/app/views/partials/_sign_in_form.html.erb +1 -1
  48. data/lib/generators/templates/app/views/partials/_sign_in_sign_out.html.erb +2 -2
  49. data/lib/generators/templates/app/views/show.html.erb +2 -2
  50. data/lib/generators/templates/app/views/treeview.html.erb +8 -5
  51. metadata +21 -19
  52. data/lib/generators/templates/app/assets/javascripts/jquery.jstree.js +0 -4551
  53. data/lib/generators/templates/app/assets/stylesheets/datepicker.css +0 -224
  54. data/lib/generators/templates/app/assets/stylesheets/reset.css +0 -48
  55. data/lib/generators/templates/app/assets/stylesheets/themes/default/d.gif +0 -0
  56. data/lib/generators/templates/app/assets/stylesheets/themes/default/d.png +0 -0
  57. data/lib/generators/templates/app/assets/stylesheets/themes/default/style.css +0 -74
  58. data/lib/generators/templates/app/assets/stylesheets/timepicker.css +0 -89
  59. data/test/scaffold_test.rb +0 -68
@@ -48,7 +48,7 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
48
48
  render
49
49
  }
50
50
  format.json{
51
- render :json => @<%= model %>_scope.to_a
51
+ render :json => @<%= model %>_scope.to_json(methods: :caption)
52
52
  }
53
53
  format.csv{
54
54
  require 'csv'
@@ -110,7 +110,7 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
110
110
  else
111
111
  format.html {
112
112
  if params[:mass_inserting] then
113
- redirect_to <%= namespace_for_route %><%= model_pluralize %>_path(:mass_inserting => true), :flash => { :error => t(:error, "Error") }
113
+ redirect_to <%= namespace_for_route %><%= model_pluralize %>_path(:mass_inserting => true), :flash => { :error => "#{t(:error, default: "Error")} : #{@<%= model %>.errors.full_messages.join(", ")}" }
114
114
  else
115
115
  render :action => "new"
116
116
  end
@@ -123,7 +123,7 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
123
123
  def update
124
124
 
125
125
  respond_to do |format|
126
- if @<%= model %>.update_attributes(params_for_model)
126
+ if @<%= model %>.update(params_for_model)
127
127
  format.html { redirect_to <%= namespace_for_route %><%= singular_table_name %>_path(@<%= model %>), :flash => { :notice => t(:update_success, :model => "<%= model %>") }}
128
128
  format.json { head :ok }
129
129
  else
@@ -153,7 +153,7 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
153
153
  do_sort_and_paginate(:<%= model %>)
154
154
 
155
155
  @<%= model_pluralize %> = <%= model_camelize %>.ransack(
156
- params[:q]
156
+ session['search']['<%= model %>']
157
157
  ).result(
158
158
  :distinct => true
159
159
  )
@@ -173,12 +173,14 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
173
173
  # <%= model %>.save
174
174
  when "destroy" then
175
175
  <%= model %>.destroy
176
+ when "touch" then
177
+ <%= model %>.touch
176
178
  end
177
179
  end
178
180
  }
179
181
  end
180
182
 
181
- redirect_to :back
183
+ redirect_to <%= namespace_for_route %><%= model_pluralize %>_url
182
184
  end
183
185
 
184
186
  def treeview
@@ -23,13 +23,11 @@ class BeautifulController < ApplicationController
23
23
  def select_fields
24
24
  model_sym = params[:model_sym]
25
25
 
26
- do_select_fields(model_sym.to_s) #TODO vérifier si nécessaire
26
+ do_select_fields(model_sym.to_s)
27
27
 
28
28
  head :ok
29
29
  end
30
30
 
31
- # TODO session use key string because json serializer don't know the type of key.
32
-
33
31
  def do_select_fields(model_str)
34
32
  # Fields
35
33
  session['fields'] ||= {}
@@ -79,32 +77,28 @@ class BeautifulController < ApplicationController
79
77
  elt = modelclass.find(params[:id])
80
78
  elt.attributes = { foreignkey => parent_id }
81
79
 
82
- if modelclass.column_names.include?("position") then
80
+ if modelclass.column_names.include?("position")
83
81
  new_pos = 0
84
82
  modelclass.transaction do
85
83
  all_elt = modelclass.where(foreignkey => parent_id).order("position ASC").to_a
86
84
 
87
- #begin
88
- if index == 0 then
89
- new_pos = (begin (all_elt.first.position - 1) rescue 1 end)
90
- elsif index == all_elt.length then
91
- new_pos = (begin (all_elt.last.position + 1) rescue 1 end)
92
- else
93
- new_pos = all_elt[index].position
94
-
95
- end_of_array = all_elt[index..-1]
96
- end_of_array.each{ |g|
97
- next if g == elt
98
- g.position = g.position.to_i + 1
99
- g.save!
100
-
101
- next_elt = end_of_array[end_of_array.index(g) + 1]
102
- break if not next_elt.nil? and next_elt.position > g.position
103
- }
85
+ if index == 0
86
+ new_pos = (begin (all_elt.first.position - 1) rescue 1 end)
87
+ elsif index == (all_elt.length - 1)
88
+ new_pos = (begin (all_elt.last.position + 1) rescue 1 end)
89
+ else
90
+ new_pos = all_elt[index].position
91
+
92
+ end_of_array = all_elt[index..-1]
93
+ end_of_array.each do |g|
94
+ next if g == elt
95
+ g.position = g.position.to_i + 1
96
+ g.save!
97
+
98
+ next_elt = end_of_array[end_of_array.index(g) + 1]
99
+ break if !next_elt.nil? && next_elt.position > g.position
104
100
  end
105
- #rescue
106
- # new_pos = 0
107
- #end
101
+ end
108
102
  end
109
103
  elt.position = new_pos
110
104
  end
@@ -25,7 +25,7 @@ module BeautifulHelper
25
25
  attr = nil
26
26
  sort = nil
27
27
 
28
- if not params[:sorting].blank? then
28
+ if !params[:sorting].blank?
29
29
  attr = params[:sorting][:attribute]
30
30
  sort = params[:sorting][:sorting]
31
31
  end
@@ -34,11 +34,11 @@ module BeautifulHelper
34
34
  sortstr = sort.to_s.downcase
35
35
  opposite_sortstr = ""
36
36
  csort = '' # <i class="fa fa-stop"></i>
37
- if attribute_name == attr then
38
- if sortstr == "asc" then
37
+ if attribute_name == attr
38
+ if sortstr == "asc"
39
39
  csort = '<i class="fa fa-chevron-up"></i>'
40
40
  opposite_sortstr = "desc"
41
- elsif sortstr == "desc" then
41
+ elsif sortstr == "desc"
42
42
  csort = '<i class="fa fa-chevron-down"></i>'
43
43
  opposite_sortstr = "asc"
44
44
  end
@@ -47,7 +47,7 @@ module BeautifulHelper
47
47
  end
48
48
 
49
49
  default_caption = attribute_name.capitalize
50
- if is_belongs_to_column?(default_caption) then
50
+ if is_belongs_to_column?(default_caption)
51
51
  default_caption = get_belongs_to_model(default_caption)
52
52
  end
53
53
 
@@ -55,7 +55,7 @@ module BeautifulHelper
55
55
 
56
56
  caption = t(cap, :default => default_caption).capitalize
57
57
  strpath = model_name.pluralize + "_url"
58
- strpath = namespace + '_' + strpath if not namespace.blank?
58
+ strpath = namespace + '_' + strpath if !namespace.blank?
59
59
 
60
60
  return link_to(
61
61
  "#{csort} #{caption}".html_safe,
@@ -73,9 +73,9 @@ module BeautifulHelper
73
73
  ar_model = (engine.blank? ? model_name.camelize.constantize : "#{engine.camelize}::#{model_name.camelize}".constantize)
74
74
 
75
75
  default_caption = caption
76
- if default_caption.blank? then
76
+ if default_caption.blank?
77
77
  default_caption = attribute_name.capitalize
78
- if is_belongs_to_column?(default_caption) then
78
+ if is_belongs_to_column?(default_caption)
79
79
  default_caption = get_belongs_to_model(default_caption)
80
80
  end
81
81
  end
@@ -84,7 +84,7 @@ module BeautifulHelper
84
84
  name_field_bk = attribute_name
85
85
  label_field = attribute_name
86
86
 
87
- if is_belongs_to_column?(name_field_bk) then
87
+ if is_belongs_to_column?(name_field_bk)
88
88
  label_field = get_belongs_to_model(attribute_name)
89
89
  end
90
90
 
@@ -99,100 +99,122 @@ module BeautifulHelper
99
99
  type_of_column = ar_model.columns_hash[attribute_name].type unless ar_model.columns_hash[attribute_name].nil?
100
100
  type_of_column ||= :other
101
101
  case type_of_column
102
- when :date, :datetime then
102
+ when :date, :datetime
103
103
  dt = (type_of_column == :datetime)
104
104
  interval = (dt ? (1..5) : (1..3))
105
105
 
106
+ html_id = "#{name_field}_dp_gt"
107
+ filter = session['search'][model_name]
108
+ filter ||= {}
109
+
106
110
  # Greater than
107
- response += '<div class="input-group input-' + type_of_column.to_s + '">'
108
- response += '<span class="input-group-addon"><i class="fa fa-chevron-right"></i></span>'
111
+ response += '<div class="dpicker input-group input-' + type_of_column.to_s + ' mb-2" data-field="q_' + name_field + '_gteq" id="' + html_id + '_id" data-target-input="nearest">'
112
+ response += '<div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-chevron-right"></i></span></div>'
109
113
  response += f.text_field(
110
- (name_field + "_dp_gt").to_sym,
111
- :value => (begin params[:q][(name_field + "_dp_gt").to_sym] rescue '' end),
112
- :class => "col-md-9 dpicker form-control",
114
+ (html_id).to_sym,
115
+ :value => ("#{filter["#{name_field}_gteq(3i)"]}/#{filter["#{name_field}_gteq(2i)"]}/#{filter["#{name_field}_gteq(1i)"]}"),
116
+ :class => " form-control datetimepicker-input",
117
+ "data-target" => "##{html_id}_id",
113
118
  "data-id" => ("q_" + name_field + "_gteq"))
114
- response += '<span class="input-group-addon"><i class="fa fa-calendar"></i></span>'
119
+ response += '<div class="input-group-append" data-target="' + html_id + '_id" data-toggle="datetimepicker"><span class="input-group-text"><i class="fa fa-calendar"></i></span></div>'
115
120
  response += '</div>'
116
121
 
117
- if dt then
118
- response += '<div class="input-group input-' + type_of_column.to_s + '">'
119
- response += '<span class="input-group-addon"><i class="fa fa-chevron-right"></i></span>'
122
+ html_id = "#{name_field}_tp_gt"
123
+
124
+ if dt
125
+ response += '<div class="tpicker input-group input-' + type_of_column.to_s + ' mb-2" data-field="q_' + name_field + '_gteq" id="' + html_id + '_id" data-target-input="nearest">'
126
+ response += '<div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-chevron-right"></i></span></div>'
120
127
  response += f.text_field(
121
128
  (name_field + "_tp_gt").to_sym,
122
- :value => (begin params[:q][(name_field + "_tp_gt").to_sym] rescue '' end),
123
- :class => "col-md-9 tpicker form-control",
129
+ :value => ("#{filter["#{name_field}_gteq(4i)"]}/#{filter["#{name_field}_gteq(5i)"]}"),
130
+ :class => " form-control datetimepicker-input",
131
+ "data-target" => "##{html_id}_id",
124
132
  "data-id" => ("q_" + name_field + "_gteq"))
125
- response += '<span class="input-group-addon"><i class="fa fa-clock-o"></i></span>'
133
+ response += '<div class="input-group-append" data-target="' + html_id + '_id" data-toggle="datetimepicker"><span class="input-group-text"><i class="fa fa-clock"></i></span></div>'
126
134
  response += '</div>'
127
135
  end
128
136
 
129
137
  for i in interval
130
138
  response += f.hidden_field(name_field + "_gteq(#{i}i)",
131
- :value => (begin params[:q][(name_field + "_gteq(#{i}i)").to_sym] rescue '' end),
139
+ :value => (filter["#{name_field}_gteq(#{i}i)"]),
132
140
  :id => ('q_' + name_field + "_gteq_#{i}i"))
133
141
  end
134
142
 
143
+ html_id = "#{name_field}_dp_lt"
144
+
135
145
  # Less than
136
- response += '<div class="input-group input-' + type_of_column.to_s + '">'
137
- response += '<span class="input-group-addon"><i class="fa fa-chevron-left"></i></span>'
146
+ response += '<div class="dpicker input-group input-' + type_of_column.to_s + ' mb-2" data-field="q_' + name_field + '_lteq" id="' + html_id + '_id" data-target-input="nearest">'
147
+ response += '<div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-chevron-left"></i></span></div>'
138
148
  response += f.text_field(
139
149
  (name_field + "_dp_lt").to_sym,
140
- :value => (begin params[:q][(name_field + "_dp_lt").to_sym] rescue '' end),
141
- :class => "col-md-9 dpicker form-control",
150
+ :value => ("#{filter["#{name_field}_lteq(3i)"]}/#{filter["#{name_field}_lteq(2i)"]}/#{filter["#{name_field}_lteq(1i)"]}"),
151
+ :class => " form-control datetimepicker-input",
152
+ "data-target" => "##{html_id}_id",
142
153
  "data-id" => ("q_" + name_field + "_lteq"))
143
- response += '<span class="input-group-addon"><i class="fa fa-calendar"></i></span>'
154
+ response += '<div class="input-group-append" data-target="' + html_id + '_id" data-toggle="datetimepicker"><span class="input-group-text"><i class="fa fa-calendar"></i></span></div>'
144
155
  response += '</div>'
145
156
 
146
- if dt then
147
- response += '<div class="input-group input-' + type_of_column.to_s + '">'
148
- response += '<span class="input-group-addon"><i class="fa fa-chevron-left"></i></span>'
157
+ html_id = "#{name_field}_tp_lt"
158
+
159
+ if dt
160
+ response += '<div class="tpicker input-group input-' + type_of_column.to_s + ' mb-2" data-field="q_' + name_field + '_lteq" id="' + html_id + '_id" data-target-input="nearest">'
161
+ response += '<div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-chevron-left"></i></span></div>'
149
162
  response += f.text_field(
150
163
  (name_field + "_tp_lt").to_sym,
151
- :value => (begin params[:q][(name_field + "_tp_lt").to_sym] rescue '' end),
152
- :class => "col-md-9 tpicker form-control",
164
+ :value => ("#{filter["#{name_field}_lteq(4i)"]}/#{filter["#{name_field}_lteq(5i)"]}"),
165
+ :class => " form-control datetimepicker-input",
166
+ "data-target" => "##{html_id}_id",
153
167
  "data-id" => ("q_" + name_field + "_lteq"))
154
- response += '<span class="input-group-addon"><i class="fa fa-clock-o"></i></span>'
168
+ response += '<div class="input-group-append" data-target="' + html_id + '_id" data-toggle="datetimepicker"><span class="input-group-text"><i class="fa fa-clock"></i></span></div>'
155
169
  response += '</div>'
156
170
  end
157
171
 
158
172
  for i in interval
159
173
  response += f.hidden_field(name_field + "_lteq(#{i}i)",
160
- :value => (begin params[:q][(name_field + "_lteq(#{i}i)").to_sym] rescue '' end),
174
+ :value => (filter["#{name_field}_lteq(#{i}i)"]),
161
175
  :id => ('q_' + name_field + "_lteq_#{i}i"))
162
176
  end
163
177
 
164
178
  infostr = info_input(model_name, [(name_field + "_dp_lt").to_sym, (name_field + "_tp_lt").to_sym, (name_field + "_dp_gt").to_sym, (name_field + "_tp_gt").to_sym])
165
- when :boolean then
179
+ when :boolean
166
180
  # Specify a default value (false) in rails migration
167
181
  response += f.label name_field + "_eq_true", raw(f.radio_button((name_field + "_eq").to_sym, true)) + " " + h(t(:yes, :default => "Yes")), :class => "checkbox inline"
168
182
  response += f.label name_field + "_eq_false", raw(f.radio_button((name_field + "_eq").to_sym, false)) + " " + h(t(:no, :default => "No")), :class => "checkbox inline"
169
183
  response += f.label name_field + "_eq", raw(f.radio_button((name_field + "_eq").to_sym, nil)) + " " + h(t(:all, :default => "All")), :class => "checkbox inline"
170
184
 
171
185
  infostr = (begin session['search'][model_name][(name_field + "_eq").to_sym] == "on" ? "" : "info" rescue "" end)
172
- when :string then
186
+ when :string
173
187
  response += f.text_field((name_field + "_cont").to_sym, :class => "filter col-md-12 form-control")
174
188
 
175
189
  infostr = info_input(model_name, (name_field + "_cont").to_sym)
176
- when :integer, :float, :decimal then
177
- if is_belongs_to_column?(name_field_bk) then
190
+ when :integer, :float, :decimal #, :other
191
+ if is_belongs_to_column?(name_field_bk)
178
192
  bt_model_name = get_belongs_to_model(name_field_bk).camelize
179
- bt_model_name = "#{engine.camelize}::#{bt_model_name}" if !engine.blank?
193
+ field = name_field + "_eq"
194
+
195
+ if !engine.blank?
196
+ bt_model_name = "#{engine.camelize}::#{bt_model_name}"
197
+ #field = "#{engine.downcase}_#{field}"
198
+ end
199
+
180
200
  btmodel = bt_model_name.constantize
181
- response += f.collection_select((name_field + "_eq").to_sym, btmodel.all, :id, :caption, { :include_blank => t(:all, :default => "All") }, { :class => "col-md-12 form-control" })
201
+ field = field.to_sym
182
202
 
183
- infostr = info_input(model_name, (name_field + "_eq").to_sym)
184
- elsif name_field == "id" then
203
+ response += f.collection_select(field, btmodel.all, :id, :caption, { :include_blank => t(:all, :default => "All") }, { :class => "col-md-12 form-control" })
204
+
205
+ infostr = info_input(model_name, field)
206
+ elsif name_field == "id"
185
207
  response += f.text_field((name_field + "_eq").to_sym, :class => "filter col-md-12 form-control")
186
208
 
187
209
  infostr = info_input(model_name, (name_field + "_eq").to_sym)
188
210
  else
189
211
  response += '<div class="input-group">'
190
- response += '<span class="input-group-addon" rel="tooltip" title="' + t(:greater_than, :default => "Greater than") + '"><i class="fa fa-chevron-right"></i></span>'
191
- response += f.text_field((name_field + "_gteq").to_sym, :class => "#{align_attribute("integer")} filter-min col-md-10 form-control")
212
+ response += '<div class="input-group-prepend" rel="tooltip" title="' + t(:greater_than, :default => "Greater than") + '"><span class="input-group-text"><i class="fa fa-chevron-right"></i></span></div>'
213
+ response += f.text_field((name_field + "_gteq").to_sym, :class => "#{align_attribute("integer")} filter-min form-control")
192
214
  response += '</div>'
193
215
  response += '<div class="input-group">'
194
- response += '<span class="input-group-addon" rel="tooltip" title="' + t(:smaller_than, :default => "Smaller than") + '"><i class="fa fa-chevron-left"></i></span>'
195
- response += f.text_field((name_field + "_lteq").to_sym, :class => "#{align_attribute("integer")} filter-max col-md-10 form-control")
216
+ response += '<div class="input-group-append" rel="tooltip" title="' + t(:smaller_than, :default => "Smaller than") + '"><span class="input-group-text"><i class="fa fa-chevron-left"></i></span></div>'
217
+ response += f.text_field((name_field + "_lteq").to_sym, :class => "#{align_attribute("integer")} filter-max form-control")
196
218
  response += '</div>'
197
219
 
198
220
  infostr = info_input(model_name, [(name_field + "_lteq").to_sym, (name_field + "_gteq").to_sym])
@@ -213,11 +235,11 @@ module BeautifulHelper
213
235
  def info_input(modname, attr)
214
236
  model_name = modname
215
237
  rep = false
216
- if not session['search'].blank? and not session['search'][model_name].blank? then
217
- if attr.kind_of?(Array) then
238
+ if !session['search'].blank? and !session['search'][model_name].blank?
239
+ if attr.kind_of?(Array)
218
240
  rep = (attr.any? { |elt| (not session['search'][model_name][elt].blank?) })
219
241
  else
220
- rep = (not session['search'][model_name][attr].blank?)
242
+ rep = (!session['search'][model_name][attr].blank?)
221
243
  end
222
244
  end
223
245
  return (rep ? "info" : "")
@@ -225,17 +247,17 @@ module BeautifulHelper
225
247
 
226
248
  def align_attribute(attribute_type)
227
249
  return case attribute_type
228
- when "string" then
229
- "al"
230
- when "integer", "float", "numeric", "decimal" then
231
- "ar"
232
- when "boolean" then
233
- "ac"
234
- when "date", "datetime", "timestamp" then
235
- "ac"
236
- else
237
- "al"
238
- end
250
+ when "string"
251
+ "al"
252
+ when "integer", "float", "numeric", "decimal"
253
+ "ar"
254
+ when "boolean"
255
+ "ac"
256
+ when "date", "datetime", "timestamp"
257
+ "ac"
258
+ else
259
+ "al"
260
+ end
239
261
  end
240
262
 
241
263
  # Encore utilisé avec wysihtml5 ?
@@ -1,39 +1,44 @@
1
- require 'will_paginate/view_helpers/link_renderer_base'
1
+ require 'will_paginate/view_helpers/action_view'
2
2
 
3
3
  module WillPaginate
4
- module ViewHelpers
5
- # This class does the heavy lifting of actually building the pagination
6
- # links. It is used by +will_paginate+ helper internally.
7
- class LinkRenderer < LinkRendererBase
4
+ module ActionView
5
+ class BootstrapLinkRenderer < LinkRenderer
6
+
7
+ protected
8
8
 
9
- protected
10
-
11
9
  def page_number(page)
12
- unless page == current_page
13
- link(page, page, :rel => rel_value(page), :class => "btn btn-default")
10
+ is_current_page = (page == current_page)
11
+ temphtml = '<li class="page-item ' + (is_current_page ? 'active' : '') + '">'
12
+ unless is_current_page
13
+ temphtml += link(page, page, :rel => rel_value(page), :class => 'page-link')
14
14
  else
15
- tag(:a, page, :class => 'current active btn btn-default')
15
+ temphtml += tag(:a, page, :class => 'current active page-link')
16
16
  end
17
+ temphtml += '</li>'
18
+ temphtml
17
19
  end
18
-
20
+
19
21
  def gap
20
22
  text = @template.will_paginate_translate(:page_gap) { '&hellip;' }
21
23
  %(<a class="gap btn btn-default disabled">#{text}</a>)
22
24
  end
23
-
25
+
24
26
  def previous_or_next_page(page, text, classname)
27
+ temphtml = '<li class="page-item">'
25
28
  if page
26
- link(text, page, :class => classname + ' btn btn-default')
29
+ temphtml += link(text, page, :class => classname + ' page-link')
27
30
  else
28
- tag(:a, text, :class => classname + ' disabled btn btn-default')
31
+ temphtml += tag(:a, text, :class => classname + ' page-link')
29
32
  end
33
+ temphtml += '</li>'
34
+ temphtml
30
35
  end
31
-
36
+
32
37
  def html_container(html)
33
- html
38
+ '<ul class="pagination pagination-sm justify-content-end mb-0">' + html + '</ul>'
34
39
  end
35
-
36
- private
40
+
41
+ private
37
42
 
38
43
  def param_name
39
44
  @options[:param_name].to_s
@@ -1,6 +1,6 @@
1
1
  <%-
2
2
  strformfor = "@#{singular_table_name}"
3
- if not namespace_alone.blank? then
3
+ if !namespace_alone.blank?
4
4
  strformfor = "[:#{namespace_alone}, @#{singular_table_name} ]"
5
5
  end
6
6
  -%>
@@ -17,7 +17,7 @@ end
17
17
  <%% end %>
18
18
  <%= render_partial 'app/views/partials/_form_field.html.erb' %><!-- Beautiful_scaffold - AddField - Do not remove -->
19
19
  <div>
20
- <%%= link_to <%= namespace_for_route %><%= plural_table_name %>_path, :class => "btn btn-default" do %>
20
+ <%%= link_to <%= namespace_for_route %><%= plural_table_name %>_path, :class => "btn btn-light" do %>
21
21
  <i class="fa fa-chevron-left"></i> <%%= t(:back, :default => "Back") %>
22
22
  <%% end %>
23
23
  <%%= f.submit :class => "btn btn-primary", :data => { :disable_with => t(:saving, :default => "Saving...") } %>