poodle-rb 0.0.6 → 0.0.7

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: 46cbbbe48bc7958f15aded22f185be127b0b88ea
4
- data.tar.gz: 85b1020570c215a6f4bde307c13c98428da51259
3
+ metadata.gz: a9a04e19c29121aaa00b743aa062def280e1d2ce
4
+ data.tar.gz: ceb3dd427f68ec9942a6929d3c272d20179cf7eb
5
5
  SHA512:
6
- metadata.gz: 7d43379cf0c3b58bb4ecdefdf146920be834818dd6d95324bf773f74cc0a3e1b736ba3a264177da456791d104c267ae859cc368b7a0a1e3b22b38999a9ab552e
7
- data.tar.gz: f9c86b081919b448fba2c8d77fcdca2bb03e2ee1bc2506a9033809eee599a44b16ffd8124141c2f417e6c3aad21231ef5395d1e98d93f6fb89f3aa699912f5b8
6
+ metadata.gz: a37cf5f6cecac8aad4c472cbc252c44064c054b9c9edd75dfa2ce04c53f67197438cde5e96a01d330f17eebb0e05c1bd205befac0b45afa39004be928703ce0d
7
+ data.tar.gz: 28c503d4731298687758eb3cf149daff237cc4a6fd54fa330b8edf2b410788d5affd8920dbd240607eccf0eb1041dea64541e6a223555610d31b0abd45a3b781
@@ -0,0 +1,44 @@
1
+ module Poodle
2
+ module AdminFunctionalitiesHelper
3
+ def get_collections(collection_name, **options)
4
+ options.reverse_merge!(
5
+ kls: collection_name.to_s.camelize.singularize.camelize.constantize
6
+ )
7
+ relation = options[:kls].where("")
8
+ @filters = {}
9
+
10
+ if params[:query]
11
+ @query = params[:query].strip
12
+ relation = relation.search(@query) if !@query.blank?
13
+ end
14
+ objects = relation.order("created_at desc").page(@current_page).per(@per_page)
15
+ instance_variable_set("@#{collection_name}", objects)
16
+ unless instance_variable_get("@#{collection_name.to_s.singularize}")
17
+ instance_variable_set("@#{collection_name.to_s.singularize}", objects.first)
18
+ end
19
+
20
+ return true
21
+ end
22
+
23
+ def render_list(collection_name, **options)
24
+ respond_to do |format|
25
+ format.html {
26
+ get_collections(collection_name, **options) and render :index }
27
+ format.js {}
28
+ end
29
+ end
30
+
31
+ def render_or_redirect(error, redirect_url, action)
32
+ respond_to do |format|
33
+ format.html {
34
+ if error
35
+ render action: action
36
+ else
37
+ redirect_to redirect_url, notice: @message
38
+ end
39
+ }
40
+ format.js {}
41
+ end
42
+ end
43
+ end
44
+ end
@@ -100,13 +100,20 @@ module Poodle
100
100
  object_name: object.class.name.underscore,
101
101
  label: field_name.to_s.gsub("_", " ").titleize,
102
102
  required: true,
103
- error_class: "has-errors",
103
+ error_class: "has-error",
104
104
  html_options: {}
105
105
  )
106
106
  options.reverse_merge!(
107
107
  param_name: "#{options[:object_name]}[#{field_name}]"
108
108
  )
109
- error_class = object.errors[field_name.to_s].any? ? options[:error_class] : ""
109
+
110
+ if object.errors[field_name.to_s].any?
111
+ error_class = options[:error_class]
112
+ error_message = content_tag(:span, object.errors[field_name].first, class: "help-block")
113
+ else
114
+ error_class = ""
115
+ error_message = ""
116
+ end
110
117
 
111
118
  theme_form_group(options[:label], required: options[:required], error_class: error_class) do
112
119
  options[:html_options].reverse_merge!(
@@ -126,7 +133,7 @@ module Poodle
126
133
  when :checkbox
127
134
  options[:html_options][:class] = "checkbox mt-10"
128
135
  check_box_tag(options[:param_name], field_name, object.send(field_name.to_s), **options[:html_options])
129
- end
136
+ end + error_message
130
137
  end
131
138
 
132
139
  end
@@ -165,17 +172,34 @@ module Poodle
165
172
  label: foreign_key.to_s.titleize,
166
173
  prompt: true,
167
174
  editable: true,
168
- error_class: "has-errors"
175
+ error_class: "has-error"
169
176
  )
170
177
 
171
- error_class = object.errors[foreign_key.to_s].any? ? options[:error_class] : ""
178
+ # Populating Errors
179
+ errors = object.errors[foreign_key.to_s]
180
+ # if foreign_key is an id, check errors for the association
181
+ # errors = project.errors[:client_id] + project.errors[:client]
182
+ if object.errors[foreign_key.to_s.gsub("_id", "")]
183
+ errors += object.errors[foreign_key.to_s.gsub("_id", "")]
184
+ end
185
+
186
+ error_class = errors.any? ? options[:error_class] : ""
187
+ if errors.any?
188
+ error_class = options[:error_class]
189
+ error_message = content_tag(:span, errors.first, class: "help-block")
190
+ else
191
+ error_class = ""
192
+ error_message = ""
193
+ end
172
194
 
173
- theme_form_group(options[:label], required: options[:required], error_class: options[:error_class]) do
195
+ selected_id = object.send(foreign_key)
196
+
197
+ theme_form_group(options[:label], required: options[:required], error_class: error_class) do
174
198
  if !options[:editable] && options[:assoc_object]
175
199
  raw(options[:assoc_object].send(options[:assoc_display_method]) + hidden_field_tag("#{options[:param_name]}[#{foreign_key}]", options[:assoc_object].id))
176
200
  else
177
- collection_select(options[:object_name], foreign_key, options[:assoc_collection], :id, options[:assoc_display_method], {:prompt=>options[:prompt]}, {:class => 'form-control'})
178
- end
201
+ collection_select(options[:object_name], foreign_key, options[:assoc_collection], :id, options[:assoc_display_method], {prompt: options[:prompt], selected: selected_id}, {:class => 'form-control'})
202
+ end + error_message
179
203
  end
180
204
 
181
205
  end
@@ -200,12 +224,20 @@ module Poodle
200
224
  label: "Label",
201
225
  param_name: "Param",
202
226
  prompt: true,
203
- error_class: "has-errors",
227
+ error_class: "has-error",
204
228
  required: false
205
229
  )
206
230
  error_class = object.errors[field_name.to_s].any? ? options[:error_class] : ""
207
- theme_form_group(options[:label], required: options[:required], error_class: options[:error_class]) do
208
- form.select(options[:param_name], options_for_select(options_list, :selected => form.object.name), {:prompt=>options[:prompt]}, {:class => 'form-control'})
231
+ if object.errors[field_name.to_s].any?
232
+ error_class = options[:error_class]
233
+ error_message = content_tag(:span, object.errors[field_name].first, class: "help-block")
234
+ else
235
+ error_class = ""
236
+ error_message = ""
237
+ end
238
+
239
+ theme_form_group(options[:label], required: options[:required], error_class: error_class) do
240
+ form.select(options[:param_name], options_for_select(options_list, :selected => form.object.name), {:prompt=>options[:prompt]}, {:class => 'form-control'}) + error_message
209
241
  end
210
242
  end
211
243
 
@@ -215,9 +247,9 @@ module Poodle
215
247
  # is equivalent to:
216
248
  # ---------------------------
217
249
  # submit_tag button_text, "data-reset-text"=>button_text, "data-loading-text"=>"Saving ...", :class=>"btn btn-primary ml-10"
218
- def theme_form_button(object, button_text="", saving_message="Saving ...")
250
+ def theme_form_button(object, button_text="", saving_message="Saving ...", classes="btn btn-primary ml-10")
219
251
  button_text = "#{object.new_record? ? "Create" : "Update"}" if button_text.blank?
220
- submit_tag(button_text, "data-reset-text"=>button_text, "data-loading-text"=>saving_message, :class=>"btn btn-primary ml-10")
252
+ submit_tag(button_text, "data-reset-text"=>button_text, "data-loading-text"=>saving_message, :class=>classes)
221
253
  end
222
254
  end
223
255
  end
@@ -125,7 +125,7 @@ module Poodle
125
125
  end
126
126
 
127
127
  def clear_tag(height)
128
- content_tag(:div, "", class: "cl-#{height}")
128
+ content_tag(:div, "", class: "clearfix cl-#{height}")
129
129
  end
130
130
 
131
131
  # Example
@@ -170,8 +170,8 @@ module Poodle
170
170
  # is equivalent to:
171
171
  # ---------------------------
172
172
  # <h3 class="panel-title">Team Members</h3>
173
- def theme_panel_title(title)
174
- content_tag(:h3, title, class: "panel-title")
173
+ def theme_panel_title(title, classes="")
174
+ content_tag(:h3, title, class: "panel-title #{classes}")
175
175
  end
176
176
 
177
177
  # Example
@@ -205,12 +205,22 @@ module Poodle
205
205
  content_tag(:div, description, class: classes)
206
206
  end
207
207
 
208
- def theme_detail_box(collection)
208
+ def theme_detail_box(collection, **options)
209
+ options.reverse_merge!(
210
+ show_partial: "show",
211
+ new_partial: "form",
212
+ edit_partial: "form",
213
+ index_partial: "show",
214
+ )
209
215
  case params[:action]
210
216
  when "show"
211
- render partial: params[:action]
217
+ render partial: options[:show_partial]
218
+ when "new"
219
+ render partial: options[:new_partial]
220
+ when "edit"
221
+ render partial: options[:edit_partial]
212
222
  when "index"
213
- collection.empty? ? (theme_panel_message(I18n.translate("forms.no_results_found"))) : render(partial: "show")
223
+ collection.empty? ? (theme_panel_message(I18n.translate("forms.no_results_found"))) : render(partial: options[:index_partial])
214
224
  else
215
225
  theme_panel_message(I18n.translate("forms.no_results_found"))
216
226
  end
data/lib/poodle/engine.rb CHANGED
@@ -17,6 +17,7 @@ module Poodle
17
17
  include Poodle::ParamsParserHelper
18
18
  include Poodle::TitleHelper
19
19
  include Poodle::UrlHelper
20
+ include Poodle::AdminFunctionalitiesHelper
20
21
  helper Poodle::DisplayHelper
21
22
  helper Poodle::FlashHelper
22
23
  helper Poodle::ImageHelper
@@ -25,6 +26,7 @@ module Poodle
25
26
  helper Poodle::ParamsParserHelper
26
27
  helper Poodle::TitleHelper
27
28
  helper Poodle::UrlHelper
29
+ helper Poodle::AdminFunctionalitiesHelper
28
30
  end
29
31
  end
30
32
  end
@@ -1,3 +1,3 @@
1
1
  module Poodle
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poodle-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krishnaprasad Varma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-22 00:00:00.000000000 Z
11
+ date: 2015-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -99,6 +99,7 @@ files:
99
99
  - app/assets/stylesheets/poodle/font-awesome.css
100
100
  - app/assets/stylesheets/poodle/poodle-theme.css
101
101
  - app/controllers/poodle/application_controller.rb
102
+ - app/helpers/poodle/admin_functionalities_helper.rb
102
103
  - app/helpers/poodle/application_helper.rb
103
104
  - app/helpers/poodle/display_helper.rb
104
105
  - app/helpers/poodle/flash_helper.rb