Class: RaroCrud

Inherits:
Object
  • Object
show all
Defined in:
app/raro_crud/raro_crud.rb

Constant Summary collapse

@@order_field =
{}
@@per_page =
{}
@@index_fields =
{}
@@form_fields =
{}
@@form_group =
{}
@@form_scripts =
{}
@@view_fields =
{}
@@listing_fields =
{}
@@printing_fields =
{}
@@logo_printing_field =
{}
@@titulo_printing_field =
{}
@@search_fields =
{}
@@test_fields =
{}
{}
@@title =
{}
@@subtitle_index =
{}
@@description_index =
{}
@@actions =
{}
{}
@@edit_action =
{}
@@condition_edit_action =
{}
@@destroy_action =
{}
@@condition_destroy_action =
{}
@@view_action =
{}
@@condition_view_action =
{}
@@condition_listing_action =
{}
@@condition_listing_excel =
{}
@@condition_listing_pdf =
{}
@@condition_printing_action =
{}
{}
@@scopes =
{}
[]
@@layout =
{}
@@includes =
{}
@@index_path =
nil

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.acoes(method, desc, proc = nil, options = {}) ⇒ Object



329
330
331
332
# File 'app/raro_crud/raro_crud.rb', line 329

def self.acoes(method, desc, proc = nil, options={})
  @@actions[self.to_s.to_sym] = [] unless @@actions[self.to_s.to_sym]
  @@actions[self.to_s.to_sym].push({method: method, desc: desc, proc: proc, options: options})
end

.actionsObject



150
151
152
# File 'app/raro_crud/raro_crud.rb', line 150

def self.actions
  @@actions[self.to_s.to_sym] || []
end


154
155
156
# File 'app/raro_crud/raro_crud.rb', line 154

def self.actions_links
  @@links[self.to_s.to_sym] || []
end

.add_includes(includes) ⇒ Object



417
418
419
# File 'app/raro_crud/raro_crud.rb', line 417

def self.add_includes(includes)
  @@includes[self.to_s.to_sym] = includes
end

.add_menus(menu) ⇒ Object



206
207
208
# File 'app/raro_crud/raro_crud.rb', line 206

def self.add_menus(menu)
  @@menus << menu
end

.adicionar_enderecoObject



383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
# File 'app/raro_crud/raro_crud.rb', line 383

def self.adicionar_endereco
  @@form_fields[self.to_s.to_sym] = [] unless @@form_fields[self.to_s.to_sym]
  opts = {}
  opts[:fields] = []
  [
   {campo: :cep, input_html: {class: "mask-cep"}},
   {campo: :logradouro},
   {campo: :numero},
   {campo: :complemento},
   {campo: :bairro},
   {campo: :estado, collection: Estado.order(:sigla).pluck(:sigla)},
   {campo: :cidade_id, collection_if: Proc.new{|f| f.try(:object).try(:estado).try(:present?) ? (f.try(:object).try(:estado).try(:cidades) || []) : []}}
  ].each do |field|
    attribute = field[:campo]
    field.delete(:campo)
    field[:label] ||= "shared.#{attribute}"
    opts[:fields].push({attribute: attribute,sf: field})
  end
  opts[:grupo] = true
  opts[:label] ||= "shared.adicionar_endereco"
  @@form_fields[self.to_s.to_sym].push(
    {
      attribute: :endereco
    }.merge({sf: opts})
  )
  @@form_scripts[self.to_s.to_sym] ||= []
  @@form_scripts[self.to_s.to_sym] << "cidade_estado"
end

.agrupar_campos(attribute, opts = {}, &block) ⇒ Object



348
349
350
351
352
353
354
355
356
# File 'app/raro_crud/raro_crud.rb', line 348

def self.agrupar_campos(attribute, opts = {}, &block)
  if opts[:label]
    @agrupamento = opts[:label]
  else
    @agrupamento = "simple_form.labels.#{self.modelo.underscore}.#{attribute}"
  end
  block.call
  @agrupamento = nil
end

.campo_busca(nome, opts = {}) ⇒ Object



228
229
230
231
232
233
234
235
236
# File 'app/raro_crud/raro_crud.rb', line 228

def self.campo_busca(nome, opts = {})
  @@search_fields[self.to_s.to_sym] ||= []
  opts = set_default_label nome, opts
  @@search_fields[self.to_s.to_sym].push(
    {
      attribute: nome
    }.merge({sf: opts})
  )
end

.campo_visualizacao(nome, opts = {}) ⇒ Object



218
219
220
221
222
223
224
225
226
# File 'app/raro_crud/raro_crud.rb', line 218

def self.campo_visualizacao(nome, opts = {})
  @@view_fields[self.to_s.to_sym] ||= []
  opts = set_default_label nome, opts
  @@view_fields[self.to_s.to_sym].push(
    {
      attribute: nome
    }.merge({sf: opts})
  )
end

.condition_destroy_actionObject



76
77
78
# File 'app/raro_crud/raro_crud.rb', line 76

def self.condition_destroy_action
  (@@condition_destroy_action[self.to_s.to_sym]) ? @@condition_destroy_action[self.to_s.to_sym] : nil
end

.condition_edit_actionObject



64
65
66
# File 'app/raro_crud/raro_crud.rb', line 64

def self.condition_edit_action
  (@@condition_edit_action[self.to_s.to_sym]) ? @@condition_edit_action[self.to_s.to_sym] : nil
end

.condition_listing_actionObject



92
93
94
# File 'app/raro_crud/raro_crud.rb', line 92

def self.condition_listing_action
  (@@condition_listing_action[self.to_s.to_sym]) ? @@condition_listing_action[self.to_s.to_sym] : nil
end

.condition_listing_excelObject



96
97
98
# File 'app/raro_crud/raro_crud.rb', line 96

def self.condition_listing_excel
  (@@condition_listing_excel[self.to_s.to_sym]) ? @@condition_listing_excel[self.to_s.to_sym] : nil
end

.condition_listing_pdfObject



100
101
102
# File 'app/raro_crud/raro_crud.rb', line 100

def self.condition_listing_pdf
  (@@condition_listing_pdf[self.to_s.to_sym]) ? @@condition_listing_pdf[self.to_s.to_sym] : nil
end

.condition_printing_actionObject



104
105
106
# File 'app/raro_crud/raro_crud.rb', line 104

def self.condition_printing_action
  (@@condition_printing_action[self.to_s.to_sym]) ? @@condition_printing_action[self.to_s.to_sym] : nil
end

.condition_view_actionObject



88
89
90
# File 'app/raro_crud/raro_crud.rb', line 88

def self.condition_view_action
  (@@condition_view_action[self.to_s.to_sym]) ? @@condition_view_action[self.to_s.to_sym] : nil
end

.description(type) ⇒ Object



127
128
129
130
131
132
# File 'app/raro_crud/raro_crud.rb', line 127

def self.description(type)
  case type
  when :index
    @@description_index[self.to_s.to_sym]
  end
end

.destroy_actionObject



68
69
70
71
72
73
74
# File 'app/raro_crud/raro_crud.rb', line 68

def self.destroy_action
  if @@destroy_action[self.to_s.to_sym] == false
    return false
  else
    return true
  end
end

.edicao(condicao) ⇒ Object



301
302
303
# File 'app/raro_crud/raro_crud.rb', line 301

def self.edicao(condicao)
  @@condition_edit_action[self.to_s.to_sym] = condicao
end

.edit_actionObject



47
48
49
50
51
52
53
# File 'app/raro_crud/raro_crud.rb', line 47

def self.edit_action
  if @@edit_action[self.to_s.to_sym] == false
    return false
  else
    return true
  end
end

.escopos(scopes) ⇒ Object



344
345
346
# File 'app/raro_crud/raro_crud.rb', line 344

def self.escopos(scopes)
  @@scopes[self.to_s.to_sym] = scopes
end

.exclusao(condicao) ⇒ Object



309
310
311
# File 'app/raro_crud/raro_crud.rb', line 309

def self.exclusao(condicao)
  @@condition_destroy_action[self.to_s.to_sym] = condicao
end

.form_fieldsObject



162
163
164
# File 'app/raro_crud/raro_crud.rb', line 162

def self.form_fields
  @@form_fields[self.to_s.to_sym] || []
end

.form_groupsObject



166
167
168
# File 'app/raro_crud/raro_crud.rb', line 166

def self.form_groups
  @@form_group[self.to_s.to_sym] || []
end

.form_scriptsObject



170
171
172
# File 'app/raro_crud/raro_crud.rb', line 170

def self.form_scripts
  @@form_scripts[self.to_s.to_sym] || []
end

.get_index_pathObject



116
117
118
# File 'app/raro_crud/raro_crud.rb', line 116

def self.get_index_path
  @@index_path
end

.grupo_formulario(attribute, name, fields = nil) ⇒ Object



362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
# File 'app/raro_crud/raro_crud.rb', line 362

def self.grupo_formulario(attribute, name, fields=nil)
  if fields.nil?
    fields = name
    name = attribute.to_s.singularize.titleize
  end
  @@form_group[self.to_s.to_sym] ||= {}
  @@form_group[self.to_s.to_sym][attribute] = {fields: []}
  fields.each do |field|
    value = {}
    field.each do |atr|
      if atr[0] == :campo
        value[:attribute] = atr[1]
      else
        value[:sf] ||= {}
        value[:sf][atr[0]] = atr[1]
      end
    end
    @@form_group[self.to_s.to_sym][attribute][:fields].push({attribute: value[:attribute], sf: value[:sf]})
  end
end

.impressao(condicao) ⇒ Object



325
326
327
# File 'app/raro_crud/raro_crud.rb', line 325

def self.impressao(condicao)
  @@condition_printing_action[self.to_s.to_sym] = condicao
end

.includesObject



214
215
216
# File 'app/raro_crud/raro_crud.rb', line 214

def self.includes
  @@includes[self.to_s.to_sym] || []
end

.index_fieldsObject



138
139
140
# File 'app/raro_crud/raro_crud.rb', line 138

def self.index_fields
  @@index_fields[self.to_s.to_sym] || []
end

.index_path(str) ⇒ Object



112
113
114
# File 'app/raro_crud/raro_crud.rb', line 112

def self.index_path str
  @@index_path = str
end

.layoutObject



55
56
57
# File 'app/raro_crud/raro_crud.rb', line 55

def self.layout
  (@@layout[self.to_s.to_sym]) ? @@layout[self.to_s.to_sym] : []
end


334
335
336
337
# File 'app/raro_crud/raro_crud.rb', line 334

def self.links(name, options)
  @@links[self.to_s.to_sym] = [] unless @@links[self.to_s.to_sym]
  @@links[self.to_s.to_sym].push([name, options])
end

.listagem(condicao) ⇒ Object



313
314
315
# File 'app/raro_crud/raro_crud.rb', line 313

def self.listagem(condicao)
  @@condition_listing_action[self.to_s.to_sym] = condicao
end

.listagem_excel(condicao = nil) ⇒ Object



317
318
319
# File 'app/raro_crud/raro_crud.rb', line 317

def self.listagem_excel(condicao = nil)
  @@condition_listing_excel[self.to_s.to_sym] = condicao
end

.listagem_pdf(condicao = nil) ⇒ Object



321
322
323
# File 'app/raro_crud/raro_crud.rb', line 321

def self.listagem_pdf(condicao = nil)
  @@condition_listing_pdf[self.to_s.to_sym] = condicao
end

.listing_fieldsObject



178
179
180
# File 'app/raro_crud/raro_crud.rb', line 178

def self.listing_fields
  @@listing_fields[self.to_s.to_sym] || []
end

.logo_printing_fieldObject



186
187
188
# File 'app/raro_crud/raro_crud.rb', line 186

def self.logo_printing_field
  @@logo_printing_field[self.to_s.to_sym]
end


210
211
212
# File 'app/raro_crud/raro_crud.rb', line 210

def self.menus
  @@menus
end

.opcoes(link, desc, proc = nil) ⇒ Object



339
340
341
342
# File 'app/raro_crud/raro_crud.rb', line 339

def self.opcoes(link, desc, proc = nil)
  @@options_link[self.to_s.to_sym] = [] unless @@options_link[self.to_s.to_sym]
  @@options_link[self.to_s.to_sym].push([link, desc, proc])
end


158
159
160
# File 'app/raro_crud/raro_crud.rb', line 158

def self.options_link
  @@options_link[self.to_s.to_sym] || []
end

.order_fieldObject



142
143
144
# File 'app/raro_crud/raro_crud.rb', line 142

def self.order_field
  (@@order_field[self.to_s.to_sym]).present? ? @@order_field[self.to_s.to_sym] : "id"
end

.per_pageObject



146
147
148
# File 'app/raro_crud/raro_crud.rb', line 146

def self.per_page
  @@per_page[self.to_s.to_sym]
end

.printing_fieldsObject



182
183
184
# File 'app/raro_crud/raro_crud.rb', line 182

def self.printing_fields
  @@printing_fields[self.to_s.to_sym] || []
end

.relatorio_impressao(nome, opts = {}) ⇒ Object



247
248
249
250
251
252
253
254
# File 'app/raro_crud/raro_crud.rb', line 247

def self.relatorio_impressao(nome, opts = {})
  @@printing_fields[self.to_s.to_sym] ||= []
  opts = set_default_label nome, opts
  @@printing_fields[self.to_s.to_sym].push({
    attribute: nome,
    sf: opts
  })
end

.relatorio_impressao_logo(field_or_url = nil, options = {}) ⇒ Object



256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
# File 'app/raro_crud/raro_crud.rb', line 256

def self.(field_or_url = nil, options = {})
  url = nil
  field = nil
  if field_or_url.blank?
    url = Templus.
  elsif field_or_url.is_a?(String)
    url = field_or_url
  else
    field = field_or_url
  end

  @@logo_printing_field[self.to_s.to_sym] = {
    url: url,
    field: field,
    sf: options
  }
end

.relatorio_impressao_titulo(field_or_string = nil) ⇒ Object



274
275
276
277
278
279
280
281
282
283
284
285
286
287
# File 'app/raro_crud/raro_crud.rb', line 274

def self.relatorio_impressao_titulo(field_or_string = nil)
  field = nil
  titulo = nil
  if field_or_string.is_a?(String)
    titulo = field_or_string
  elsif field_or_string.present?
    field = field_or_string
  end

  @@titulo_printing_field[self.to_s.to_sym] = {
    field: field,
    titulo: titulo
  }
end

.relatorio_listagem(nome, opts = {}) ⇒ Object



238
239
240
241
242
243
244
245
# File 'app/raro_crud/raro_crud.rb', line 238

def self.relatorio_listagem(nome, opts = {})
  @@listing_fields[self.to_s.to_sym] ||= []
  opts = set_default_label nome, opts
  @@listing_fields[self.to_s.to_sym].push({
    attribute: nome,
    sf: opts
  })
end

.root_pathObject



108
109
110
# File 'app/raro_crud/raro_crud.rb', line 108

def self.root_path
  self.to_s.gsub('Crud', '').underscore
end

.scopesObject



202
203
204
# File 'app/raro_crud/raro_crud.rb', line 202

def self.scopes
  @@scopes[self.to_s.to_sym] || []
end

.script_formulario(script) ⇒ Object



412
413
414
415
# File 'app/raro_crud/raro_crud.rb', line 412

def self.script_formulario(script)
  @@form_scripts[self.to_s.to_sym] ||= []
  @@form_scripts[self.to_s.to_sym] << script.to_s
end

.search_fieldsObject



194
195
196
# File 'app/raro_crud/raro_crud.rb', line 194

def self.search_fields
  @@search_fields[self.to_s.to_sym] || []
end

.sem_edicaoObject



297
298
299
# File 'app/raro_crud/raro_crud.rb', line 297

def self.sem_edicao
  @@edit_action[self.to_s.to_sym] = false
end

.sem_exclusaoObject



305
306
307
# File 'app/raro_crud/raro_crud.rb', line 305

def self.sem_exclusao
  @@destroy_action[self.to_s.to_sym] = false
end

.sem_visualizacaoObject



289
290
291
# File 'app/raro_crud/raro_crud.rb', line 289

def self.sem_visualizacao
  @@view_action[self.to_s.to_sym] = false
end

.separar_formularioObject



358
359
360
# File 'app/raro_crud/raro_crud.rb', line 358

def self.separar_formulario
  @@form_fields[self.to_s.to_sym].last[:sf][:separador] = true
end

.set_layout(desc, proc = nil) ⇒ Object



59
60
61
62
# File 'app/raro_crud/raro_crud.rb', line 59

def self.set_layout(desc, proc = nil)
  @@layout[self.to_s.to_sym] = [] unless @@layout[self.to_s.to_sym]
  @@layout[self.to_s.to_sym] = [desc, proc]
end

.subtitle(type) ⇒ Object



120
121
122
123
124
125
# File 'app/raro_crud/raro_crud.rb', line 120

def self.subtitle(type)
  case type
  when :index
    @@subtitle_index[self.to_s.to_sym]
  end
end

.test_fieldsObject



198
199
200
# File 'app/raro_crud/raro_crud.rb', line 198

def self.test_fields
  @@test_fields[self.to_s.to_sym] || []
end

.titleObject



43
44
45
# File 'app/raro_crud/raro_crud.rb', line 43

def self.title
  I18n.t("rarocrud.#{self.modelo.underscore}.title")
end

.titulo_printing_fieldObject



190
191
192
# File 'app/raro_crud/raro_crud.rb', line 190

def self.titulo_printing_field
  @@titulo_printing_field[self.to_s.to_sym]
end


134
135
136
# File 'app/raro_crud/raro_crud.rb', line 134

def self.top_links
  @@top_links[self.to_s.to_sym] || []
end

.view_actionObject



80
81
82
83
84
85
86
# File 'app/raro_crud/raro_crud.rb', line 80

def self.view_action
  if @@view_action[self.to_s.to_sym] == false
    return false
  else
    return true
  end
end

.view_fieldsObject



174
175
176
# File 'app/raro_crud/raro_crud.rb', line 174

def self.view_fields
  @@view_fields[self.to_s.to_sym] || []
end

.visualizacao(condicao) ⇒ Object



293
294
295
# File 'app/raro_crud/raro_crud.rb', line 293

def self.visualizacao(condicao)
  @@condition_view_action[self.to_s.to_sym] = condicao
end

Instance Method Details

#modeloObject



39
40
41
# File 'app/raro_crud/raro_crud.rb', line 39

def modelo
  self.to_s.gsub("Crud", "").constantize
end