crowbar_framework/app/helpers/barclamps_helper.rb
#
# Copyright 2011-2013, Dell
# Copyright 2013-2014, SUSE LINUX Products GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
module BarclampsHelper
def barclamp_collapse_list(title, collapsed = false)
icon_class = if collapsed
"chevron-down"
else
"chevron-right"
end
"#{icon_tag(icon_class)} #{title}".html_safe
end
def display_led_for(state, property, path = false)
options = {
class: "led #{state}",
id: property,
title: t(state.to_s, scope: "proposal.status")
}
options["data-ledupdate"] = path if path
content_tag(
:span,
"",
options
)
end
def display_name_for(barclamp)
@display_name_for ||= {}
@display_name_for[barclamp] ||= begin
if barclamp.respond_to? :display_name
barclamp.display_name
else
BarclampCatalog.display_name(barclamp)
end
end
end
def show_barclamp_button(barclamp, inst, options = {})
link_to t(".show"), "/crowbar/#{barclamp}/1.0/#{inst}", { class: "btn btn-default show" }.merge(options)
end
def edit_barclamp_button(barclamp, inst, options = {})
link_to t(".edit"), "/crowbar/#{barclamp}/1.0/proposals/#{inst}", { class: "btn btn-default edit" }.merge(options)
end
def cancel_barclamp_button(barclamp)
link_to t("cancel"), barclamp_modules_path(id: barclamp), class: "btn btn-default cancel"
end
def render_barclamp_show_attributes(barclamp)
if show_raw_attributes?
render partial: "barclamp/show_attributes_raw"
else
render partial: "barclamp/#{barclamp}/show_attributes"
end
rescue ::ActionView::MissingTemplate
render partial: "barclamp/show_attributes_raw"
end
def render_barclamp_show_deployment(barclamp)
if show_raw_deployment?
render partial: "barclamp/show_deployment_raw"
else
render partial: "barclamp/#{barclamp}/show_deployment"
end
rescue ::ActionView::MissingTemplate
render partial: "barclamp/show_deployment_raw"
end
def render_barclamp_edit_attributes(proposal)
if show_raw_attributes?
render partial: "barclamp/edit_attributes_raw"
else
if Rails.root.join("app", "views", "barclamp", proposal.barclamp, "_edit_attributes.html.haml").file?
render partial: "barclamp/#{proposal.barclamp}/edit_attributes"
else
# Currently this view does not exist, but should be the
# fallback way to show a generic form or message
render partial: "barclamp/general/edit_attributes"
end
end
rescue ::ActionView::MissingTemplate
render partial: "barclamp/edit_attributes_raw"
rescue ::StandardError => e
puts "Attribute Exception #{e.class}: #{e.message}"
puts e.backtrace.join("\n")
raise e if Rails.env.development?
render partial: "barclamp/edit_attributes_raw"
rescue ::SyntaxError => e
raise e
end
def render_barclamp_edit_deployment(proposal)
if show_raw_deployment?
render partial: "barclamp/edit_deployment_raw"
else
if Rails.root.join("app", "views", "barclamp", proposal.barclamp, "_edit_deployment.html.haml").file?
render partial: "barclamp/#{proposal.barclamp}/edit_deployment"
else
render partial: "barclamp/general/edit_deployment"
end
end
rescue ::ActionView::MissingTemplate
render partial: "barclamp/edit_deployment_raw"
rescue ::StandardError => e
puts "Deployment Exception #{e.class}: #{e.message}"
puts e.backtrace.join("\n")
raise e if Rails.env.development?
render partial: "barclamp/edit_deployment_raw"
rescue ::SyntaxError => e
raise e
end
def render_barclamp_index(barclamp)
render partial: "barclamp/#{barclamp}/index"
rescue ::ActionView::MissingTemplate
render partial: "barclamp/index"
end
def show_raw_attributes?
params[:attr_raw].to_s == "true" || false
end
def show_raw_deployment?
params[:dep_raw].to_s == "true" || false
end
end