Page Menu
Home
GRNET
Search
Configure Global Search
Log In
Files
F462275
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, May 18, 9:13 PM
Size
3 KB
Mime Type
text/x-diff
Expires
Tue, May 20, 9:13 PM (19 h, 26 m)
Engine
blob
Format
Raw Data
Handle
220567
Attached To
rARCHIVING archiving
View Options
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 6379307..522ca64 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1,53 +1,81 @@
module ApplicationHelper
# Custom helper for better display of big numbers
# @example number_by_magnitude(4242)
# "4.2K"
#
# @param number[Numeric]
# @return [String] human friendly respresentation
def number_by_magnitude(number)
number_to_human(number, units: { thousand: :K, million: :M, billion: :G })
end
# Creates a bootstrap form-group div with an additional 'Add' button next to the select field
#
# @param object[ActiveRecord::Object] the form's subject
# @param resource[Symbol] the objects class
# @param attr[Symbol] the select box's attribute
# @param attr_name[String] the attribute's display name
# @param options[Array] the select box options
# @param path[String] the add button's path
def select_with_errors_and_button(object, resource, attr, attr_name, options, path)
has_errors = object.errors[attr].present?
content_tag(:div, class: "form-group #{' has-error' if has_errors }") do
attr_label = label(resource, attr, attr_name, class: 'control-label col-xs-5 required')
select_div = content_tag(:div, class: 'col-xs-5') do
select_part = select_tag([resource, attr].join('_').to_sym,
options,
name: "#{resource}[#{attr}]",
class: 'form-control'
)
if has_errors
select_part.concat(content_tag(:span, class: 'help-block') { object.errors[attr].first })
end
select_part
end
button_part = content_tag(:div, class: 'col-xs-1') do
link_to 'Add', path, class: 'btn btn-primary', role: 'button'
end
attr_label.concat(select_div).concat(button_part)
end
end
# Returns a style class depending on the given parameter
#
# @param status[Char]
def success_class(status)
case status
when 'T' then 'success'
when 'E' then 'danger'
end
end
+
+ # Fetches the html class for a given path
+ #
+ # @param path[String] the path to check for
+ # @param partial[Boolean] forces a left partial match
+ #
+ # @return [Hash] { class: 'active' } if the given path is the current page
+ def active_class(path, partial = false)
+ if current_page?(path) || (partial && request.path.starts_with?(path))
+ { class: 'active' }
+ else
+ {}
+ end
+ end
+
+ # Constructs a breadcrumb out the given options
+ #
+ # @param options[Hash] a hash containing the breadcrumb links in name: path sets
+ # @return an html ol breadcrumb
+ def breadcrumb_with(options)
+ content_tag(:ol, class: 'breadcrumb') do
+ options.map { |name, path|
+ content_tag(:li, active_class(path)) do
+ link_to_if !current_page?(path), name, path
+ end
+ }.inject { |result, element| result.concat(element) }
+ end
+ end
end
Event Timeline
Log In to Comment