Project

General

Profile

Download (4.12 KB) Statistics
| Branch: | Tag: | Revision:
module SmartProxiesHelper
TABBED_FEATURES = ["Puppet", "Puppet CA", "Logs"]

def proxy_actions(proxy, authorizer)
actions = []
actions << display_link_if_authorized(_("Edit"), hash_for_edit_smart_proxy_path(:id => proxy))
actions << display_delete_if_authorized(hash_for_smart_proxy_path(:id => proxy).merge(:auth_object => proxy, :authorizer => authorizer),
:data => {:confirm => _("Delete %s?") % proxy.name}, :class => 'delete')
actions << feature_actions(proxy, authorizer)
actions
end

def feature_actions(proxy, authorizer)
actions = []

actions << display_link_if_authorized(_("Refresh"), hash_for_refresh_smart_proxy_path(:id => proxy).
merge(:auth_object => proxy, :permission => 'edit_smart_proxies', :authorizer => authorizer), :method => :put)

if proxy.has_feature?('Puppet CA')
actions << display_link_if_authorized(_("Certificates"), hash_for_smart_proxy_path(:id => proxy).
merge(:auth_object => proxy, :permission => 'view_smart_proxies_puppetca', :authorizer => authorizer, :anchor => 'certificates'))

actions << display_link_if_authorized(_("Autosign"), hash_for_smart_proxy_path(:id => proxy).
merge(:auth_object => proxy, :permission => 'view_smart_proxies_autosign', :authorizer => authorizer, :anchor => 'autosign'))
end

if SETTINGS[:unattended] && proxy.has_feature?('DHCP')
actions << display_link_if_authorized(_("Import IPv4 subnets"), hash_for_import_subnets_path(:smart_proxy_id => proxy))
end

if proxy.has_feature?('Logs')
actions << link_to_function_if_authorized(_('Expire logs'), "expireLogs(this, (new Date).getTime() / 1000);",
hash_for_expire_logs_smart_proxy_path(:id => proxy), {
:data => {
:"url" => expire_logs_smart_proxy_path(:id => proxy),
:"url-errors" => errors_card_smart_proxy_path(:id => proxy),
:"url-modules" => modules_card_smart_proxy_path(:id => proxy)
}
})
end

actions << render_pagelets_for(:smart_proxy_title_actions, :subject => proxy)

actions
end

def smart_proxy_title_actions(proxy, authorizer)
title_actions(
button_group(
link_to(_("Back"), smart_proxies_path, :class => 'btn btn-default')
),
select_action_button(_("Actions"), {}, feature_actions(proxy, authorizer)),
button_group(
display_link_if_authorized(_("Edit"), hash_for_edit_smart_proxy_path(:id => proxy), :class => 'btn btn-default')
),
button_group(
display_delete_if_authorized(hash_for_smart_proxy_path(:id => proxy).merge(:auth_object => proxy, :authorizer => authorizer),
:data => {:confirm => _("Delete %s?") % proxy.name}, :class => 'btn btn-danger')
)
)
end

def refresh_proxy_button(proxy, authorizer)
display_link_if_authorized('Refresh features', hash_for_refresh_smart_proxy_path(:id => proxy).
merge(:auth_object => proxy, :permission => 'edit_smart_proxies', :authorizer => authorizer), :method => :put, :class => 'btn btn-default')
end

def services_tab_features(proxy)
proxy.features.where('features.name NOT IN (?)', TABBED_FEATURES).distinct.pluck("name").sort
end

def tabbed_features(proxy)
proxy.features.where('features.name IN (?)', TABBED_FEATURES).distinct.pluck("name").sort
end

def show_feature_version(feature)
render :partial => 'smart_proxies/plugins/plugin_version', :locals => { :feature => feature }
end

def logs_color_map
{
'DEBUG' => 'success',
'INFO' => 'info',
'WARN' => 'warning',
'ERROR' => 'danger',
'FATAL' => 'danger'
}
end

def logs_filter_tag
select_tag "Filter", options_for_select(
[[_('All'), '']] +
[[_('ERROR or FATAL'), 'ERROR|FATAL']] +
[[_('WARNING'), 'WARN']] +
[[_('INFO or DEBUG'), 'INFO|DEBUG']]), :class => "datatable-filter", :id => "logs-filter"
end
end
(41-41/50)