forked from ManageIQ/manageiq
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tree_builder_services.rb
49 lines (44 loc) · 1.54 KB
/
tree_builder_services.rb
1
2
3
4
5
6
7
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
37
38
39
40
41
42
43
44
45
46
47
48
49
class TreeBuilderServices < TreeBuilder
# Services are returned in a tree - kids are discovered automatically
private
def tree_init_options(_tree_name)
{
:leaf => "Service",
:full_ids => true,
:add_root => false
}
end
def set_locals_for_render
locals = super
locals.merge!(:autoload => true)
end
# Get root nodes count/array for explorer tree
def x_get_tree_roots(count_only, _options)
objects = []
objects.push(:id => "asrv",
:text => _("Active Services"),
:icon => "pficon pficon-folder-close",
:load_children => true,
:tip => _("Active Services"))
objects.push(:id => "rsrv",
:text => _("Retired Services"),
:icon => "pficon pficon-folder-close",
:load_children => true,
:tip => _("Retired Services"))
count_only_or_objects(count_only, objects)
end
def x_get_tree_custom_kids(object, count_only, _options)
services =
if object[:id] == 'asrv'
Rbac.filtered(Service.where("(retired IS NULL OR retired IS false) AND (ancestry is NULL or ancestry = '')"))
else
Rbac.filtered(Service.where(:retired => true, :ancestry => [nil, ""]))
end
if count_only
services.size
else
MiqPreloader.preload(services.to_a, :picture)
Service.arrange_nodes(services.sort_by { |n| [n.ancestry.to_s, n.name.downcase] })
end
end
end