From 794fe6a7cd4738178da545e03dab02e9c89bd168 Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Fri, 6 Sep 2024 20:40:27 +0000 Subject: Replaces icons in administration menu with SVG icons (#23980). git-svn-id: https://svn.redmine.org/redmine/trunk@23028 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/assets/images/icons.svg | 4 +++- app/assets/stylesheets/application.css | 10 +++++----- lib/redmine/menu_manager.rb | 12 ++++++++++-- lib/redmine/preparation.rb | 13 +++++++++++++ 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/app/assets/images/icons.svg b/app/assets/images/icons.svg index 7875ea782..294811c04 100644 --- a/app/assets/images/icons.svg +++ b/app/assets/images/icons.svg @@ -132,6 +132,8 @@ + + @@ -207,7 +209,7 @@ - + diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index a77f33215..abb5e1b2b 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -1713,7 +1713,7 @@ span.icon-label { .icon-report { background-image: url(/report.png); } .icon-comment:not(:has(svg)), .icon-comments:not(:has(svg)) { background-image: url(/comment.png); } .icon-summary:not(:has(svg)) { background-image: url(/lightning.png); } -.icon-server-authentication { background-image: url(/server_key.png); } +.icon-server-authentication:not(:has(svg)) { background-image: url(/server_key.png); } .icon-issue:not(:has(svg)) { background-image: url(/ticket.png); } .icon-zoom-in:not(:has(svg)) { background-image: url(/zoom_in.png); } .icon-zoom-out:not(:has(svg)) { background-image: url(/zoom_out.png); } @@ -1731,11 +1731,11 @@ span.icon-label { .icon-close:hover:not(:has(svg)) { background-image: url(/close_hl.png); } .icon-settings:not(:has(svg)) { background-image: url(/changeset.png); } .icon-group:not(:has(svg)),.icon-groupnonmember, .icon-groupanonymous { background-image: url(/group.png); } -.icon-roles { background-image: url(/database_key.png); } +.icon-roles:not(:has(svg)) { background-image: url(/database_key.png); } .icon-issue-edit:not(:has(svg)) { background-image: url(/ticket_edit.png); } -.icon-workflows { background-image: url(/ticket_go.png); } -.icon-custom-fields { background-image: url(/textfield.png); } -.icon-plugins { background-image: url(/plugin.png); } +.icon-workflows:not(:has(svg)) { background-image: url(/ticket_go.png); } +.icon-custom-fields:not(:has(svg)) { background-image: url(/textfield.png); } +.icon-plugins:not(:has(svg)) { background-image: url(/plugin.png); } .icon-news:not(:has(svg)) { background-image: url(/news.png); } .icon-issue-closed:not(:has(svg)) { background-image: url(/ticket_checked.png); } .icon-issue-note:not(:has(svg)) { background-image: url(/ticket_note.png); } diff --git a/lib/redmine/menu_manager.rb b/lib/redmine/menu_manager.rb index 5846011e2..7b7b4a809 100644 --- a/lib/redmine/menu_manager.rb +++ b/lib/redmine/menu_manager.rb @@ -180,7 +180,14 @@ module Redmine url = '#' options.reverse_merge!(:onclick => 'return false;') end - link_to(h(caption), use_absolute_controller(url), options) + + label = if item.icon.present? + icon_with_label(item.icon, h(caption)) + else + h(caption) + end + + link_to(label, use_absolute_controller(url), options) end def render_unattached_menu_item(menu_item, project) @@ -424,7 +431,7 @@ module Redmine class MenuItem < MenuNode include Redmine::I18n attr_reader :name, :url, :param, :condition, :parent, - :child_menus, :last, :permission + :child_menus, :last, :permission, :icon def initialize(name, url, options={}) if options[:if] && !options[:if].respond_to?(:call) @@ -447,6 +454,7 @@ module Redmine @permission ||= false if options.key?(:permission) @param = options[:param] || :id @caption = options[:caption] + @icon = options[:icon] @html_options = options[:html] || {} # Adds a unique class to each menu item based on its name @html_options[:class] = [@html_options[:class], @name.to_s.dasherize].compact.join(' ') diff --git a/lib/redmine/preparation.rb b/lib/redmine/preparation.rb index ab6cbdff6..553f8693a 100644 --- a/lib/redmine/preparation.rb +++ b/lib/redmine/preparation.rb @@ -242,38 +242,51 @@ module Redmine MenuManager.map :admin_menu do |menu| menu.push :projects, {:controller => 'admin', :action => 'projects'}, :caption => :label_project_plural, + :icon => 'projects', :html => {:class => 'icon icon-projects'} menu.push :users, {:controller => 'users'}, :caption => :label_user_plural, + :icon => 'user', :html => {:class => 'icon icon-user'} menu.push :groups, {:controller => 'groups'}, :caption => :label_group_plural, + :icon => 'group', :html => {:class => 'icon icon-group'} menu.push :roles, {:controller => 'roles'}, :caption => :label_role_and_permissions, + :icon => 'roles', :html => {:class => 'icon icon-roles'} menu.push :trackers, {:controller => 'trackers'}, :caption => :label_tracker_plural, + :icon => 'issue', :html => {:class => 'icon icon-issue'} menu.push :issue_statuses, {:controller => 'issue_statuses'}, :caption => :label_issue_status_plural, + :icon => 'issue-edit', :html => {:class => 'icon icon-issue-edit'} menu.push :workflows, {:controller => 'workflows', :action => 'edit'}, :caption => :label_workflow, + :icon => 'workflows', :html => {:class => 'icon icon-workflows'} menu.push :custom_fields, {:controller => 'custom_fields'}, :caption => :label_custom_field_plural, + :icon => 'custom-fields', :html => {:class => 'icon icon-custom-fields'} menu.push :enumerations, {:controller => 'enumerations'}, + :icon => 'list', :html => {:class => 'icon icon-list'} menu.push :settings, {:controller => 'settings'}, + :icon => 'settings', :html => {:class => 'icon icon-settings'} menu.push :ldap_authentication, {:controller => 'auth_sources', :action => 'index'}, + :icon => 'server-authentication', :html => {:class => 'icon icon-server-authentication'} menu.push :plugins, {:controller => 'admin', :action => 'plugins'}, :last => true, + :icon => 'plugins', :html => {:class => 'icon icon-plugins'} menu.push :info, {:controller => 'admin', :action => 'info'}, :caption => :label_information_plural, + :icon => 'help', :last => true, :html => {:class => 'icon icon-help'} end -- cgit v1.2.3