Module: IconsHelper

Included in:
ApplicationController, ApplicationHelper
Defined in:
app/helpers/icons_helper.rb

Overview

Redmine - project management software Copyright © 2006- Jean-Philippe Lang

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Constant Summary collapse

DEFAULT_ICON_SIZE =
"18"
DEFAULT_SPRITE =
"icons"

Instance Method Summary collapse

Instance Method Details

#activity_event_type_icon(event_type) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'app/helpers/icons_helper.rb', line 55

def activity_event_type_icon(event_type, **)
  icon_name = case event_type
              when 'reply'
                'comments'
              when 'time-entry'
                'time'
              when 'message'
                'comment'
              else
                event_type
              end

  sprite_icon(icon_name, **)
end

#file_icon(entry, name) ⇒ Object



39
40
41
42
43
44
45
46
# File 'app/helpers/icons_helper.rb', line 39

def file_icon(entry, name, **)
  if entry.is_dir?
    sprite_icon("folder", name, **)
  else
    icon_name = icon_for_mime_type(Redmine::MimeType.css_class_of(name))
    sprite_icon(icon_name, name, **)
  end
end

#notice_icon(type) ⇒ Object



82
83
84
85
86
87
88
89
90
91
# File 'app/helpers/icons_helper.rb', line 82

def notice_icon(type, **)
  icon_name = case type
              when 'notice'
                'checked'
              when 'warning', 'error'
                'warning'
              end

  sprite_icon(icon_name, **)
end

#principal_icon(principal) ⇒ Object

Raises:

  • (ArgumentError)


48
49
50
51
52
53
# File 'app/helpers/icons_helper.rb', line 48

def principal_icon(principal, **)
  raise ArgumentError, "First argument has to be a Principal, was #{principal.inspect}" unless principal.is_a?(Principal)

  principal_class = principal.class.name.downcase
  sprite_icon('group', **) if ['groupanonymous', 'groupnonmember', 'group'].include?(principal_class)
end

#scm_change_icon(action, name, **options) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
# File 'app/helpers/icons_helper.rb', line 70

def scm_change_icon(action, name, **options)
  icon_name = case action
              when 'A'
                "add"
              when 'D'
                "circle-minus"
              else
                "circle-dot-filled"
              end
  sprite_icon(icon_name, name, size: 14)
end

#sprite_icon(icon_name, label = nil, icon_only: false, size: DEFAULT_ICON_SIZE, style: :outline, css_class: nil, sprite: DEFAULT_SPRITE, plugin: nil, rtl: false) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/helpers/icons_helper.rb', line 24

def sprite_icon(icon_name, label = nil, icon_only: false, size: DEFAULT_ICON_SIZE, style: :outline, css_class: nil, sprite: DEFAULT_SPRITE, plugin: nil, rtl: false)
  sprite = plugin ? "plugin_assets/#{plugin}/#{sprite}.svg" : "#{sprite}.svg"

  svg_icon = svg_sprite_icon(icon_name, size: size, style: style, css_class: css_class, sprite: sprite, rtl: rtl)

  if label
    label_classes = ["icon-label"]
    label_classes << "hidden" if icon_only

    svg_icon + (:span, label, class: label_classes.join(' '))
  else
    svg_icon
  end
end