Module: Anoubis::Data::Setup

Included in:
Anoubis::DataController
Defined in:
app/controllers/anoubis/data/setup.rb

Overview

Module setups system parameters for Anoubis::DataController

Block of fields setup functions collapse

Instance Method Summary collapse

Instance Method Details

#setup_fieldsObject

Setups defined fields and places it into attribute self.etc.data.fields



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'app/controllers/anoubis/data/setup.rb', line 61

def setup_fields
  if !self.etc.data.fields
    self.etc.data.fields = {}

    fields = self.fields

    fields.each_key do |key|
      if fields[key].key? :edit
        if self.menu_access fields[key][:edit], false
          fields[key][:editable] = fields[key][:edit]
        end
      end
      self.etc.data.fields[key] = Anoubis::Etc::Field.new(key, self.get_model, fields[key].merge(action: self.etc.action))
    end
    self.setup_order if %w[index export].include? self.etc.action
  end
end

#setup_fields_datetime(key) ⇒ Object

Setups additional parameters for table field with type ‘datetime’ Resulting data placed in self.etc.data.fields (Hash)

Parameters:

  • key (Symbol)

    key of table field.



83
84
85
86
# File 'app/controllers/anoubis/data/setup.rb', line 83

def setup_fields_datetime (key)
  self.etc.data.fields[key][:format] = 'full' if !self.etc.data.fields[key].has_key? :format
  self.etc.data.fields[key][:format] = 'full' if !['full', 'month', 'date', 'datetime'].include? self.etc.data.fields[key][:format]
end

#setup_fields_float(key) ⇒ Object

Setups additional parameters for table field with type ‘float’ Resulting data placed in self.etc.data.fields (Hash)

Parameters:

  • key (Symbol)

    key of table field.



94
95
96
97
98
# File 'app/controllers/anoubis/data/setup.rb', line 94

def setup_fields_float (key)
  self.etc.data.fields[key][:precision] = 2 if !self.etc.data.fields[key][:precision]
  self.etc.data.fields[key][:point] = ',' if !self.etc.data.fields[key][:point]
  self.etc.data.fields[key][:separator] = '' if !self.etc.data.fields[key][:separator]
end

#setup_frameObject

Setups frame data information. It loads menu data, sets titles and tabs of the frame.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/anoubis/data/setup.rb', line 10

def setup_frame
  self.load_menu_data
  if self.etc.menu
    self.get_parent_data
    if self.etc.data.parent
      self.output.title = self.etc.menu.page_title.sub '%{title}', self.etc.data.parent.sys_title.to_s
    else
      self.output.title = self.etc.menu.page_title
    end
    self.output.short = self.etc.menu.short_title
    self.output.mode = self.etc.menu.mode
    self.output.access = self.etc.menu.access
  end
  tabs = self.tabs
  tabs.each do |key, item|
    item = self.get_tab key, item
    self.output.addTab(item)
  end
end

#setup_orderObject

Setups order for current tab. Parameters is set into self.etc.tab.sort and self.etc.tab.order attributes.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'app/controllers/anoubis/data/setup.rb', line 33

def setup_order
  sort = nil
  first = nil
  self.etc.data.fields.each do |key, field|
    if field.order
      first = key if !first
      first = key if field.order.default
      if params.key? :sort
        sort = key if params[:sort] == key.to_s
      end
    end
  end
  sort = first if !sort
  if sort
    self.etc.tab.sort = sort.to_s
    self.etc.tab.order = self.etc.data.fields[sort].order.order
    if params.key? :order
      self.etc.tab.order = :desc if params[:order] == 'desc'
      self.etc.tab.order = :asc if params[:order] == 'asc'
    end
  end
end