debian-mirror-gitlab/app/helpers/icons_helper.rb

104 lines
3 KiB
Ruby
Raw Normal View History

2014-09-02 18:07:02 +05:30
module IconsHelper
2015-09-11 14:41:01 +05:30
include FontAwesome::Rails::IconHelper
2015-04-26 12:48:37 +05:30
# Creates an icon tag given icon name(s) and possible icon modifiers.
#
# Right now this method simply delegates directly to `fa_icon` from the
# font-awesome-rails gem, but should we ever use a different icon pack in the
# future we won't have to change hundreds of method calls.
def icon(names, options = {})
2017-08-17 22:00:37 +05:30
if (options.keys & %w[aria-hidden aria-label]).empty?
# Add `aria-hidden` if there are no aria's set
options['aria-hidden'] = true
end
2016-04-02 18:10:28 +05:30
options.include?(:base) ? fa_stacked_icon(names, options) : fa_icon(names, options)
2015-04-26 12:48:37 +05:30
end
2016-06-02 11:05:42 +05:30
def audit_icon(names, options = {})
case names
when "standard"
names = "key"
end
options.include?(:base) ? fa_stacked_icon(names, options) : fa_icon(names, options)
end
2015-04-26 12:48:37 +05:30
def spinner(text = nil, visible = false)
css_class = 'loading'
css_class << ' hide' unless visible
content_tag :div, class: css_class do
icon('spinner spin') + text
end
end
2014-09-02 18:07:02 +05:30
def boolean_to_icon(value)
2015-09-25 12:07:36 +05:30
if value
2015-04-26 12:48:37 +05:30
icon('circle', class: 'cgreen')
2014-09-02 18:07:02 +05:30
else
2015-04-26 12:48:37 +05:30
icon('power-off', class: 'clgray')
2014-09-02 18:07:02 +05:30
end
end
2015-12-23 02:04:40 +05:30
def visibility_level_icon(level, fw: true)
name =
case level
when Gitlab::VisibilityLevel::PRIVATE
'lock'
when Gitlab::VisibilityLevel::INTERNAL
'shield'
else # Gitlab::VisibilityLevel::PUBLIC
'globe'
end
2016-06-02 11:05:42 +05:30
2015-12-23 02:04:40 +05:30
name << " fw" if fw
icon(name)
2015-04-26 12:48:37 +05:30
end
def file_type_icon_class(type, mode, name)
if type == 'folder'
icon_class = 'folder'
elsif mode == '120000'
icon_class = 'share'
else
# Guess which icon to choose based on file extension.
# If you think a file extension is missing, feel free to add it on PR
case File.extname(name).downcase
when '.pdf'
icon_class = 'file-pdf-o'
when '.jpg', '.jpeg', '.jif', '.jfif',
'.jp2', '.jpx', '.j2k', '.j2c',
'.png', '.gif', '.tif', '.tiff',
'.svg', '.ico', '.bmp'
icon_class = 'file-image-o'
when '.zip', '.zipx', '.tar', '.gz', '.bz', '.bzip',
'.xz', '.rar', '.7z'
icon_class = 'file-archive-o'
when '.mp3', '.wma', '.ogg', '.oga', '.wav', '.flac', '.aac'
icon_class = 'file-audio-o'
when '.mp4', '.m4p', '.m4v',
'.mpg', '.mp2', '.mpeg', '.mpe', '.mpv',
'.mpg', '.mpeg', '.m2v',
'.avi', '.mkv', '.flv', '.ogv', '.mov',
'.3gp', '.3g2'
icon_class = 'file-video-o'
when '.doc', '.dot', '.docx', '.docm', '.dotx', '.dotm', '.docb'
icon_class = 'file-word-o'
when '.xls', '.xlt', '.xlm', '.xlsx', '.xlsm', '.xltx', '.xltm',
'.xlsb', '.xla', '.xlam', '.xll', '.xlw'
icon_class = 'file-excel-o'
when '.ppt', '.pot', '.pps', '.pptx', '.pptm', '.potx', '.potm',
'.ppam', '.ppsx', '.ppsm', '.sldx', '.sldm'
icon_class = 'file-powerpoint-o'
else
icon_class = 'file-text-o'
end
end
icon_class
2014-09-02 18:07:02 +05:30
end
end