Module: ForemanDatacenter::RacksHelper

Defined in:
app/helpers/foreman_datacenter/racks_helper.rb

Instance Method Summary collapse

Instance Method Details

#grid_empty_style(cell, id) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'app/helpers/foreman_datacenter/racks_helper.rb', line 38

def grid_empty_style(cell, id)
  case cell[1]
  when ["right"]
    column = "grid-area: rack-#{id}-row-#{cell[0]}-right-empty"
  when ["left"]
    column = "grid-area: rack-#{id}-row-#{cell[0]}-left-empty"
  when ["left", "right"] || ["right", "left"]
    column = "grid-area: rack-#{id}-row-#{cell[0]}-full-empty"
  end
  return column
end

#grid_rack_height(height) ⇒ Object



71
72
73
# File 'app/helpers/foreman_datacenter/racks_helper.rb', line 71

def grid_rack_height(height)
  return (height + 1)
end

#grid_rack_style(device) ⇒ Object



66
67
68
69
# File 'app/helpers/foreman_datacenter/racks_helper.rb', line 66

def grid_rack_style(device)
  css_class_name = device.name.gsub(/[.@#\s]/, "_")
  return "grid-area: #{css_class_name}"
end

#grid_template(grid, id, order) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'app/helpers/foreman_datacenter/racks_helper.rb', line 75

def grid_template(grid, id, order)
  result = []
  gr = JSON.parse(grid)
  gr = gr.to_a.reverse.to_h if order == "desc"

  gr.each do |k,v|
    row = "rack-#{id}-u#{k}"
    if v.instance_of? Array
      if k == "0"
        row += " rack-#{id}-unpos-devs rack-#{id}-unpos-devs"
      else
        row += " rack-#{id}-row-#{k}-full-empty rack-#{id}-row-#{k}-full-empty"
      end
    else
      if v.size > 1
        row += " #{v['left']} #{v['right']}"
      else
        row += " #{v['left']} rack-#{id}-row-#{k}-right-empty" if v.key?("left")
        row += " rack-#{id}-row-#{k}-left-empty #{v['right']}" if v.key?("right")
        row += " #{v['full']} #{v['full']}" if v.key?("full")
      end
    end
    result << row
  end
  final = result.join("' '").prepend("'") + "'"
  return "grid-template-areas: #{final}; grid-template-columns: 22% 39% 39%"
end

#grid_u_desc(rack) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/helpers/foreman_datacenter/racks_helper.rb', line 8

def grid_u_desc(rack)
  i = rack.height + 1
  limit = 0
  result = ""

  while limit <= i do
    if i == 0 && !rack.unpositioned_devices.empty?
      concat (:div, "Unpositioned Devices")
    else
      if i != 0
        if rack.child_devices.any? { |d| d.position == i }
          concat  :div, &-> do
            concat "#{i}U"
            rack.child_devices.each do |d|
              if d.position == i
                concat  :strong, &-> do
                  concat link_to("Child", device_path(d))
                end
              end
            end
          end
        else
          concat (:div, "#{i}U")
        end
      end
    end
    i -= 1
  end
end

#margin_style(height) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'app/helpers/foreman_datacenter/racks_helper.rb', line 50

def margin_style(height)
  result = "top: "
  case height
  when 1
    result += "7%"
  when 2
    result += "30%"
  when 3
    result += "35%"
  when 4
    result += "40%"
  else
    result += "45%"
  end
end

#rack_groups_for_select(rack) ⇒ Object



3
4
5
6
# File 'app/helpers/foreman_datacenter/racks_helper.rb', line 3

def rack_groups_for_select(rack)
  collection = rack.site ? rack.site.rack_groups : []
  options_from_collection_for_select(collection, 'id', 'name', rack.rack_group_id)
end