1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-02-01 03:57:15 +00:00

Replaces icons from projects listing and project overview tab with SVG icons (#23980).

git-svn-id: https://svn.redmine.org/redmine/trunk@23017 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Marius Balteanu 2024-09-05 20:06:04 +00:00
parent 622bfcde9d
commit 31c4eddfbf
6 changed files with 28 additions and 21 deletions

View File

@ -778,12 +778,15 @@ ul.projects div.description ul li {list-style-type:initial;}
#projects-index ul.projects div.description {
padding-top: 0.5em;
}
#projects-index a.icon-user, a.icon-bookmarked-project {padding-left:0; padding-right:20px; background-position:98% 50%;}
#projects-index a.icon-user.icon-bookmarked-project {
background-image: url(/tag_blue.png), url(/user.png);
background-position: bottom 0px right 0px, bottom 0px right 20px;
padding-right: 40px;
padding-top: 4px;
background-image: none;
padding-left: 0;
}
#projects-index a.project ~ svg, table.projects tr.project td.name svg {
margin-left: 4px;
}
#projects-index a.project ~ svg {
fill: #169;
}
#notified-projects>ul, #tracker_project_ids>ul, #custom_field_project_ids>ul {max-height:250px; overflow-y:auto;}
@ -1621,7 +1624,7 @@ td.gantt_selected_column .gantt_hdr,.gantt_selected_column_container {
}
/***** SVG Icons *****/
.icon, .icon-only {
a.icon, a.icon-only {
display: inline-flex;
}
@ -1695,11 +1698,11 @@ span.icon-label {
.open .icon-folder:not(:has(svg)) { background-image: url(/folder_open.png); }
.icon-package { background-image: url(/package.png); }
.icon-user:not(:has(svg)) { background-image: url(/user.png); }
.icon-project, .icon-projects { background-image: url(/projects.png); }
.icon-project, .icon-projects:not(:has(svg)) { background-image: url(/projects.png); }
.icon-help:not(:has(svg)) { background-image: url(/help.png); }
.icon-attachment:not(:has(svg)) { background-image: url(/attachment.png); }
.icon-history:not(:has(svg)) { background-image: url(/history.png); }
.icon-time-entry, .icon-time { background-image: url(/time.png); }
.icon-time-entry, .icon-time:not(:has(svg)) { background-image: url(/time.png); }
.icon-time-add:not(:has(svg)) { background-image: url(/time_add.png); }
.icon-stats:not(:has(svg)) { background-image: url(/stats.png); }
.icon-warning { background-image: url(/warning.png); }
@ -1710,11 +1713,11 @@ span.icon-label {
.icon-lock:not(:has(svg)), .icon-locked:not(:has(svg)) { background-image: url(/locked.png); }
.icon-unlock:not(:has(svg)) { background-image: url(/unlock.png); }
.icon-checked:not(:has(svg)) { background-image: url(/toggle_check.png); }
.icon-report { background-image: url(/report.png); }
.icon-report { background-image: url(/report.png); }
.icon-comment:not(:has(svg)), .icon-comments { 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-issue { background-image: url(/ticket.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); }
.icon-magnifier { background-image: url(/magnifier.png); }
@ -1730,7 +1733,7 @@ span.icon-label {
.icon-close:not(:has(svg)) { background-image: url(/close.png); }
.icon-close:hover:not(:has(svg)) { background-image: url(/close_hl.png); }
.icon-settings:not(:has(svg)) { background-image: url(/changeset.png); }
.icon-group, .icon-groupnonmember, .icon-groupanonymous { background-image: url(/group.png); }
.icon-group:not(:has(svg)),.icon-groupnonmember, .icon-groupanonymous { background-image: url(/group.png); }
.icon-roles { background-image: url(/database_key.png); }
.icon-issue-edit { background-image: url(/ticket_edit.png); }
.icon-workflows { background-image: url(/ticket_go.png); }
@ -1744,7 +1747,6 @@ span.icon-label {
.icon-reply { background-image: url(/comments.png); }
.icon-wiki-page { background-image: url(/wiki_edit.png); }
.icon-document { background-image: url(/document.png); }
.icon-project { background-image: url(/projects.png); }
.icon-add-bullet { background-image: url(/bullet_add.png); }
.icon-shared { background-image: url(/link.png); }
.icon-actions:not(:has(svg)) { background-image: url(/3_bullets.png); }

View File

@ -22,7 +22,9 @@ module IconsHelper
DEFAULT_SPRITE = "icons"
def icon_with_label(icon_name, label_text, icon_only: false)
sprite_icon(icon_name) + content_tag(:span, label_text, class: "icon-label")
label_classes = ["icon-label"]
label_classes << "hidden" if icon_only
sprite_icon(icon_name) + content_tag(:span, label_text, class: label_classes.join(' '))
end
def icon_for_file(entry, name)

View File

@ -78,7 +78,10 @@ module ProjectsHelper
classes = project.css_classes.split
classes += %w(icon icon-user my-project) if User.current.member_of?(project)
classes += %w(icon icon-bookmarked-project) if bookmarked_project_ids.include?(project.id)
s = link_to_project(project, {}, :class => classes.uniq.join(' '))
s << icon_with_label('user', l(:label_my_projects), icon_only: true) if User.current.member_of?(project)
s << icon_with_label('bookmarked', l(:label_my_bookmarks), icon_only: true) if bookmarked_project_ids.include?(project.id)
if project.description.present?
s << content_tag('div', textilizable(project.short_description, :project => project), :class => 'wiki description')
end

View File

@ -24,8 +24,8 @@ module ProjectsQueriesHelper
case column.name
when :name
link_to_project(item) +
(tag.span(class: 'icon icon-user my-project', title: l(:label_my_projects)) if User.current.member_of?(item)) +
(tag.span(class: 'icon icon-bookmarked-project', title: l(:label_my_bookmarks)) if User.current.bookmarked_project_ids.include?(item.id))
(tag.span(icon_with_label('user', l(:label_my_projects), icon_only: true), class: 'icon-only icon-user my-project') if User.current.member_of?(item)) +
(tag.span(icon_with_label('bookmarked', l(:label_my_bookmarks), icon_only: true), class: 'icon-only icon-bookmarked-project') if User.current.bookmarked_project_ids.include?(item.id))
when :short_description
if item.description?
# Sets :inline_attachments to false to avoid performance issues

View File

@ -1,6 +1,6 @@
<% if @principals_by_role.any? %>
<div class="members box">
<h3 class="icon icon-group"><%=l(:label_member_plural)%></h3>
<h3 class="icon icon-group"><%= icon_with_label('group', l(:label_member_plural)) %></h3>
<% @principals_by_role.keys.sort.each do |role| %>
<p><span class="label"><%= role %>:</span> <%= @principals_by_role[role].sort.collect{|p| link_to_principal(p, :class => p.is_a?(Group) ? 'icon icon-group' : nil)}.join(", ").html_safe %></p>
<% end %>

View File

@ -24,7 +24,7 @@
<h2><%=l(:label_overview)%></h2>
<% unless @project.active? %>
<p class="warning"><span class="icon icon-lock"><%= l(:text_project_closed) %></span></p>
<p class="warning"><span class="icon icon-lock"><%= icon_with_label('lock', l(:text_project_closed)) %></span></p>
<% end %>
<div class="splitcontent">
@ -48,8 +48,8 @@
<% if User.current.allowed_to?(:view_issues, @project) %>
<div class="issues box">
<h3 class="icon icon-issue">
<%=l(:label_issue_tracking)%>&nbsp;
<%= link_to l(:label_details),
<%= icon_with_label('issue', l(:label_issue_tracking)) %>&nbsp;
<%= link_to icon_with_label('zoom-in', l(:label_details)),
project_issues_report_details_path(@project, :detail => 'tracker'),
:class => 'icon-only icon-zoom-in',
:title => l(:label_details) %>
@ -99,7 +99,7 @@
<% if User.current.allowed_to?(:view_time_entries, @project) %>
<div class="spent_time box">
<h3 class="icon icon-time"><%= l(:label_time_tracking) %></h3>
<h3 class="icon icon-time"><%= icon_with_label('time', l(:label_time_tracking)) %></h3>
<ul>
<% if @total_estimated_hours.present? %>
<li><%= l(:field_estimated_hours) %>: <%= l_hours(@total_estimated_hours) %>
@ -133,7 +133,7 @@
<% if @subprojects.any? %>
<div class="projects box">
<h3 class="icon icon-projects"><%=l(:label_subproject_plural)%></h3>
<h3 class="icon icon-projects"><%= icon_with_label('projects', l(:label_subproject_plural)) %></h3>
<ul class="subprojects">
<% @subprojects.each do |project| %>
<li><%= link_to(project.name, project_path(project), :class => project.css_classes).html_safe %></li>