carnival 0.1.6 → 0.1.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: b9776fbf2f82b701598d223c42928aeaaf266b40
4
- data.tar.gz: 9361afb9c6b303e0b7701bc5bf16305ec08da1fb
3
+ metadata.gz: aeef6dc229604a422ea21576f1e9f38229b0efa1
4
+ data.tar.gz: 998c57c81c831d6d27089381cb3e31cdbacc5a37
5
5
  SHA512:
6
- metadata.gz: 0b09b7d9b078d4848a7944485e1bdf51b7373e3c7c3a29bff68d0a72276ca4a4f55370214e996b67d0ea3fe94cae7b436483eda76f01d2857368a6e329a39616
7
- data.tar.gz: f3f7be398e760f22f346c753bb89725a26f15dbca358016089deba748d162ef4ea4c5f0ee8b3583cf9ed6f875af7937c8689453127139f53705e603e3adb497b
6
+ metadata.gz: 072e97a3b2f59c3627f5de8a81019c9ef986d7fe175704acd8f85c1686fe5e0a0008f4fff304288ccf932db4296412dd00439a8a274d0aa0f943c37a0c1ca3af
7
+ data.tar.gz: 0770cd8a004bbc19314b6dce9957224f0bfa9e439a71532782a1bd363e24460b8859d63b2f0c3a373e4ed892a72d16ebb3850ccb78a086b6fdcf528ee5d6cc3d
@@ -0,0 +1,250 @@
1
+ module Carnival
2
+ module BaseAdminHelper
3
+ def set_resource_actived_if_current(path)
4
+ (request.fullpath == path)? 'actived' : ''
5
+ end
6
+
7
+ def show_messages
8
+ @messages = ''
9
+ flash.each do |type, message|
10
+ @messages = message
11
+ @type = type
12
+ end
13
+ javascript = "noty({'text':'#{@messages}',
14
+ 'layout':'bottom','type':'#{@type}',
15
+ 'animation': {'close':{'height':'toggle'}, 'open':{'height':'toggle'},'speed':500},'timeout':4000,
16
+ 'closeWith':['click', 'hover']});"
17
+ return javascript if defined?(@type)
18
+ ''
19
+ end
20
+
21
+ def caminho_modelo(action, extra_params=nil)
22
+ params = {controller: controller.controller_name, action: action}
23
+ params = params.merge(extra_params) if extra_params.present?
24
+ url_for(params)
25
+ end
26
+
27
+ def carnival_render_if_exist partial_path
28
+ if partial_exist?(partial_path)
29
+ return render partial_path
30
+ end
31
+ end
32
+
33
+ def partial_exist? partial_path
34
+ File.exists?(get_partial_path(partial_path))
35
+ end
36
+
37
+ def has_many_relation? model, field
38
+ klass = Carnival::KlassService.new model.class
39
+ klass.is_a_has_many_relation?(field.to_sym)
40
+ end
41
+
42
+ def has_one_relation? model, field
43
+ klass = Carnival::KlassService.new model.class
44
+ klass.is_a_has_one_relation?(field.to_sym)
45
+ end
46
+
47
+ def many_to_many_relation? model, field
48
+ klass = Carnival::KlassService.new model.class
49
+ klass.is_a_many_to_many_relation?(field.to_sym)
50
+ end
51
+
52
+ def get_partial_path partial_path
53
+ path = Rails.root.join('app', 'views')
54
+ partial_path_array = partial_path.split('/')
55
+ partial_path_array.each do |pp|
56
+ if pp == partial_path_array.last
57
+ path = path.join "_#{pp}.html.haml"
58
+ else
59
+ path = path.join pp
60
+ end
61
+ end
62
+ path
63
+ end
64
+
65
+ def menu_link link
66
+ link.strip!
67
+ if link.to_s.end_with?('_path') or link.to_s.end_with?('_url')
68
+ return eval link
69
+ elsif link.index(/_path.+/) #path with arguments
70
+ return eval link
71
+ end
72
+
73
+ link
74
+ end
75
+
76
+ def show_view(presenter, field)
77
+ presenter.get_field(field).show_view
78
+ end
79
+
80
+ def show_as_list(presenter, field)
81
+ current_type = presenter.field_type(field)
82
+ if current_type != :relation
83
+ false
84
+ else
85
+ presenter.get_field(field).show_as_list
86
+ end
87
+ end
88
+
89
+ <<<<<<< HEAD
90
+ def field_to_show(presenter, field_name, record, show_only_values=false)
91
+ if presenter.fields[field_name].params[:as] == :partial
92
+ raw(render field_name.to_s, record: record)
93
+ else
94
+ rendered = field_value_and_type presenter, field_name, record
95
+ field_type = rendered[:field_type]
96
+ value = rendered[:value]
97
+
98
+ is_relation = presenter.relation_field?(field_name)
99
+ =======
100
+ def field_to_show(presenter, field_name, record, show_only_value=false)
101
+ rendered = field_value_and_type presenter, field_name, record
102
+ field_type = rendered[:field_type]
103
+ value = rendered[:value]
104
+
105
+ is_relation = presenter.relation_field?(field_name)
106
+ >>>>>>> 43cbab7664a6b7fd7b42b86626ec2bb9953b5711
107
+
108
+ unless value.nil?
109
+ formatted_field = format_field(presenter, field_name, field_type, value)
110
+ if is_relation and !show_only_values
111
+ link_to(formatted_field, presenter.relation_path(field_name, record))
112
+ else
113
+ formatted_field
114
+ end
115
+ else
116
+ nil
117
+ end
118
+ end
119
+ end
120
+
121
+ def field_value_and_type presenter, field_name, record
122
+ renderer = FieldRenderers::RendererCreator
123
+ .create_field_renderer(presenter, field_name)
124
+
125
+ rendered = renderer.render_field(record)
126
+ end
127
+
128
+ def is_image? field_type, value
129
+ field_type.nil? and value.class.to_s == "Paperclip::Attachment" and value.content_type.include? "image"
130
+ end
131
+
132
+ def format_field(presenter, field_name, field_type, value)
133
+ if is_image?(field_type, value)
134
+ "<img class='attr' src='#{value.url(:thumb)}' alt='#{translate_field(presenter, field_name)}' />"
135
+ else
136
+ case field_type
137
+ when :datetime
138
+ begin
139
+ I18n.l(value, format: :long_date)
140
+ rescue I18n::MissingTranslationData
141
+ value.strftime("%d/%m/%y %H:%M:%S")
142
+ end
143
+ when :date
144
+ begin
145
+ I18n.l(value, format: :short_date)
146
+ rescue I18n::MissingTranslationData
147
+ value.strftime("%d/%m/%Y")
148
+ end
149
+ when :number
150
+ number_with_precision(value, :precision => 2, :separator => ",")
151
+ when :enum
152
+ presenter.model_class.const_get(field_name.upcase)[value]
153
+ else
154
+ value
155
+ end
156
+ end
157
+ end
158
+
159
+ def translate_field(presenter, field_name)
160
+ field = presenter.get_field(field_name)
161
+ field_key = field.name_for_translation
162
+ presenter.full_model_name.classify.constantize.human_attribute_name field_key
163
+ end
164
+
165
+ def list_cel(presenter, field, record, only_render_fields)
166
+ result = field_to_show(presenter, field, record, only_render_fields)
167
+ return result if only_render_fields
168
+ td = "<td class='first-td'>"
169
+ return "#{td}<span class='#{get_css_class(presenter, field, record)}'>#{result}</span></td>" if presenter.get_field(field).css_class.present?
170
+ "#{td}#{result}</td>"
171
+ end
172
+
173
+ def grid_attr(presenter, field, record, only_render_fields)
174
+ result = field_to_show(presenter, field, record, only_render_fields)
175
+ return result if only_render_fields
176
+ list_attr(presenter, field, record, only_render_fields)
177
+ end
178
+
179
+ def list_attr(presenter, field, record, only_render_fields)
180
+ result = field_to_show(presenter, field, record, only_render_fields)
181
+ return result if only_render_fields
182
+ return "<div class='attr'><div class='label #{field}'>#{translate_field(presenter, field)}:</div><div class='field_value #{field} #{get_css_class(presenter, field, record)}'>#{result}</div></div>" if presenter.get_field(field).css_class.present?
183
+ "<div class='attr'><div class='label #{field}'>#{translate_field(presenter, field)}:</div><div class='field_value #{field}'>#{result}</div></div>"
184
+ end
185
+
186
+ def get_css_class presenter, field, record
187
+ css_class = presenter.get_field(field).css_class
188
+ return '' if !css_class
189
+ return record.send(css_class[:method]) if css_class.is_a? Hash
190
+ return css_class if css_class.is_a? String
191
+ return ''
192
+ end
193
+
194
+ def list_buttons(presenter, record)
195
+ result = ""
196
+ presenter.actions_for_record.each do |key, record_action|
197
+ if presenter.before_action(record_action, params[:action])
198
+ if record_action.show(record)
199
+ if record_action.remote?
200
+ result << button_action_remote(record_action, presenter, record)
201
+ else
202
+ result << button_action(record_action, presenter, record)
203
+ end
204
+ end
205
+ end
206
+ end
207
+ result
208
+ end
209
+
210
+ def button_action(action, presenter, record)
211
+ label = t("#{presenter.model_name.underscore}.#{action.name}", default: t("carnival.#{action.name}"))
212
+ path = action.path(presenter, :id => record.id)
213
+ if action.default_partial == :default
214
+ "<a class='carnival-action-link #{label.parameterize}' href='#{path}'>#{label}</a>"
215
+ elsif action.default_partial == :delete
216
+ confirm = I18n.t("are_you_sure")
217
+ "<a class='carnival-action-link apagar' data-confirm='#{confirm}' data-method='delete' href='#{path}' rel='nofollow'>#{label}</a>"
218
+ end
219
+ end
220
+
221
+ def button_action_remote(action, presenter, record)
222
+ name = action.name
223
+ params = action.params
224
+ label = t("#{presenter.model_name}.#{action.name}", default: t("carnival.#{action.name}"))
225
+ path = action.path(presenter, :id => record.id)
226
+
227
+ success_callback = "#{name}_success_callback"
228
+ if params[:success]
229
+ success_callback = params[:success]
230
+ end
231
+
232
+ error_callback = "#{name}_error_callback"
233
+ if params[:error]
234
+ error_callback = params[:error]
235
+ end
236
+
237
+ data_overlay = ''
238
+ if params[:show_overlay]
239
+ data_overlay = 'data-carnival-show-overlay=true'
240
+ end
241
+
242
+ params[:show_overlay] = false if params[:show_overlay].nil?
243
+
244
+ remote_function = "Carnival.remoteFunction(\"#{path}\", \"#{success_callback}\", \"#{error_callback}\", \"#{params[:method]}\", {} ,#{params[:show_overlay]})"
245
+
246
+ "<a class='carnival-action-link editar' href='javascript:#{remote_function}'>#{label}</a>"
247
+ end
248
+
249
+ end
250
+ end
@@ -1,3 +1,3 @@
1
1
  module Carnival
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carnival
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vizir Software Studio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-10 00:00:00.000000000 Z
11
+ date: 2015-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -447,6 +447,7 @@ files:
447
447
  - app/datatable/carnival/generic_datatable/column_sorter_creator.rb
448
448
  - app/datatable/carnival/generic_datatable/relation_column_sorter.rb
449
449
  - app/helpers/carnival/base_admin_helper.rb
450
+ - app/helpers/carnival/base_admin_helper.rb.orig
450
451
  - app/helpers/carnival/field_renderers/field_renderer.rb
451
452
  - app/helpers/carnival/field_renderers/many_relation_renderer.rb
452
453
  - app/helpers/carnival/field_renderers/renderer_creator.rb
@@ -588,7 +589,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
588
589
  version: '0'
589
590
  requirements: []
590
591
  rubyforge_project:
591
- rubygems_version: 2.2.2
592
+ rubygems_version: 2.4.5
592
593
  signing_key:
593
594
  specification_version: 4
594
595
  summary: Carnival is an easy-to-use and extensible Rails Engine to speed the development