Page Menu
Home
GRNET
Search
Configure Global Search
Log In
Files
F1426863
application_helper.rb
No One
Temporary
Actions
Download 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
Sat, Jan 17, 12:41 PM
Size
3 KB
Mime Type
text/x-ruby
Expires
Mon, Jan 19, 12:41 PM (1 d, 18 h)
Engine
blob
Format
Raw Data
Handle
326593
Attached To
rARCHIVING archiving
application_helper.rb
View Options
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
,
include_blank
:
true
,
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
path
do
content_tag
(
:span
,
class
:
'glyphicon glyphicon-plus text-success'
)
{}
end
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'
when
'f'
then
'fatal'
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
# Constructs a list with the given array elements
#
# @example:
# inline_list([:foo, :bar])
#
# <ul class="list-inline'>
# <li><span class="label label-default">foo</span></li>
# <li><span class="label label-default">bar</span></li>
# </ul>
#
# @param arr[Array]
# @return an html ul list
def
inline_list
(
arr
)
content_tag
(
:ul
,
class
:
'list-inline'
)
do
arr
.
map
{
|
element
|
content_tag
(
:li
)
do
content_tag
(
:span
,
class
:
'label label-default'
)
do
element
end
end
}
.
inject
{
|
result
,
element
|
result
.
concat
(
element
)
}
end
end
end
Event Timeline
Log In to Comment