summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/images/icons.svg352
-rw-r--r--app/assets/stylesheets/application.css127
-rw-r--r--app/assets/stylesheets/context_menu.css2
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--app/helpers/application_helper.rb19
-rw-r--r--app/helpers/icons_helper.rb40
-rw-r--r--app/helpers/issues_helper.rb4
-rw-r--r--app/helpers/journals_helper.rb16
-rw-r--r--app/helpers/my_helper.rb4
-rw-r--r--app/helpers/projects_helper.rb10
-rw-r--r--app/helpers/queries_helper.rb2
-rw-r--r--app/helpers/versions_helper.rb2
-rw-r--r--app/helpers/watchers_helper.rb7
-rw-r--r--app/views/admin/projects.html.erb2
-rw-r--r--app/views/attachments/_links.html.erb16
-rw-r--r--app/views/auth_sources/index.html.erb4
-rw-r--r--app/views/boards/index.html.erb2
-rw-r--r--app/views/boards/show.html.erb4
-rw-r--r--app/views/calendars/show.html.erb8
-rw-r--r--app/views/context_menus/issues.html.erb18
-rw-r--r--app/views/context_menus/projects.html.erb2
-rw-r--r--app/views/context_menus/time_entries.html.erb6
-rw-r--r--app/views/context_menus/users.html.erb2
-rw-r--r--app/views/custom_fields/_index.html.erb2
-rw-r--r--app/views/custom_fields/formats/_enumeration.erb2
-rw-r--r--app/views/custom_fields/index.html.erb4
-rw-r--r--app/views/documents/index.html.erb2
-rw-r--r--app/views/documents/show.html.erb2
-rw-r--r--app/views/enumerations/index.html.erb4
-rw-r--r--app/views/files/index.html.erb4
-rw-r--r--app/views/gantts/show.html.erb8
-rw-r--r--app/views/groups/_users.html.erb2
-rw-r--r--app/views/groups/index.html.erb4
-rw-r--r--app/views/groups/show.html.erb2
-rw-r--r--app/views/issue_statuses/index.html.erb4
-rw-r--r--app/views/issues/_action_menu.html.erb16
-rw-r--r--app/views/issues/_attributes.html.erb6
-rw-r--r--app/views/issues/_form.html.erb4
-rw-r--r--app/views/issues/index.html.erb8
-rw-r--r--app/views/issues/show.html.erb2
-rw-r--r--app/views/issues/tabs/_time_entries.html.erb10
-rw-r--r--app/views/messages/show.html.erb6
-rw-r--r--app/views/my/blocks/_issues.erb2
-rw-r--r--app/views/my/blocks/_timelog.html.erb4
-rw-r--r--app/views/news/index.html.erb2
-rw-r--r--app/views/news/show.html.erb4
-rw-r--r--app/views/principal_memberships/_index.html.erb4
-rw-r--r--app/views/projects/index.html.erb4
-rw-r--r--app/views/projects/settings/_activities.html.erb4
-rw-r--r--app/views/projects/settings/_boards.html.erb4
-rw-r--r--app/views/projects/settings/_issue_categories.html.erb4
-rw-r--r--app/views/projects/settings/_issues.html.erb4
-rw-r--r--app/views/projects/settings/_members.html.erb6
-rw-r--r--app/views/projects/settings/_repositories.html.erb6
-rw-r--r--app/views/projects/settings/_versions.html.erb8
-rw-r--r--app/views/projects/show.html.erb12
-rw-r--r--app/views/queries/_query_form.html.erb8
-rw-r--r--app/views/queries/index.html.erb2
-rw-r--r--app/views/repositories/_navigation.html.erb12
-rw-r--r--app/views/repositories/_related_issues.html.erb2
-rw-r--r--app/views/roles/index.html.erb6
-rw-r--r--app/views/settings/_repositories.html.erb2
-rw-r--r--app/views/timelog/_list.html.erb4
-rw-r--r--app/views/timelog/index.html.erb6
-rw-r--r--app/views/trackers/index.html.erb6
-rw-r--r--app/views/users/index.html.erb4
-rw-r--r--app/views/users/show.html.erb2
-rw-r--r--app/views/versions/index.html.erb6
-rw-r--r--app/views/wiki/_sidebar.html.erb2
-rw-r--r--app/views/wiki/annotate.html.erb4
-rw-r--r--app/views/wiki/date_index.html.erb2
-rw-r--r--app/views/wiki/index.html.erb4
-rw-r--r--app/views/wiki/show.html.erb16
-rw-r--r--app/views/workflows/_action_menu.html.erb4
74 files changed, 670 insertions, 233 deletions
diff --git a/app/assets/images/icons.svg b/app/assets/images/icons.svg
new file mode 100644
index 000000000..88f17e2ae
--- /dev/null
+++ b/app/assets/images/icons.svg
@@ -0,0 +1,352 @@
+<svg xmlns="http://www.w3.org/2000/svg" class="icon--sprite">
+ <defs>
+ <symbol viewBox="0 0 448 512" id="icon--3-bullets">
+ <path d="M8 256a56 56 0 1 1 112 0a56 56 0 1 1-112 0m160 0a56 56 0 1 1 112 0a56 56 0 1 1-112 0m216-56a56 56 0 1 1 0 112a56 56 0 1 1 0-112"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--add">
+ <path d="M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m-24-168v-64h-64c-13.3 0-24-10.7-24-24s10.7-24 24-24h64v-64c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24h-64v64c0 13.3-10.7 24-24 24s-24-10.7-24-24"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--angle-down">
+ <path d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7L86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/>
+ </symbol>
+ <symbol viewBox="0 0 320 512" id="icon--angle-right">
+ <path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256L73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--angle-up">
+ <path d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3L86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--application-pdf">
+ <path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-9.5 8.5c0 .8-.7 1.5-1.5 1.5H7v2H5.5V9H8c.8 0 1.5.7 1.5 1.5zm5 2c0 .8-.7 1.5-1.5 1.5h-2.5V9H13c.8 0 1.5.7 1.5 1.5zm4-3H17v1h1.5V13H17v2h-1.5V9h3zm-6.5 0h1v3h-1zm-5 0h1v1H7z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--application-x-gzip">
+ <path d="M12 17v-2h2v2zm2-4v-2h-2v2zm0-4V7h-2v2zm-4 2h2V9h-2zm0 4h2v-2h-2zM21 5v14c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2m-2 0h-7v2h-2V5H5v14h14z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--application-zip">
+ <path d="M12 17v-2h2v2zm2-4v-2h-2v2zm0-4V7h-2v2zm-4 2h2V9h-2zm0 4h2v-2h-2zM21 5v14c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2m-2 0h-7v2h-2V5H5v14h14z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--arrow-right">
+ <path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h306.7L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--atom">
+ <path d="M64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm32 104c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24m0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24m0 120a32 32 0 1 1 64 0a32 32 0 1 1-64 0"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--attachment">
+ <path d="M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--bg-angle-down">
+ <path fill="#999" d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7L86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/>
+ </symbol>
+ <symbol viewBox="0 0 320 512" id="icon--bg-angle-left">
+ <path fill="#999" d="M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256l137.3-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/>
+ </symbol>
+ <symbol viewBox="0 0 320 512" id="icon--bg-angle-right">
+ <path fill="#999" d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256L73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--bg-angle-up">
+ <path fill="#999" d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3L86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--bg-magnifier">
+ <path fill="#999" d="M416 208c0 45.9-14.9 88.3-40 122.7l126.6 126.7c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208M208 352a144 144 0 1 0 0-288a144 144 0 1 0 0 288"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--bq">
+ <path d="M0 64c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64m192 128c0-17.7 14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32m32 96h192c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32M0 448c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32m127.8-179.4l-102 79.3c-10.5 8.2-25.8.7-25.8-12.6V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--bullet-end">
+ <path d="M20 9v6h-8v4.84L4.16 12L12 4.16V9z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--bullet-go">
+ <path d="M4 15V9h8V4.16L19.84 12L12 19.84V15z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--bullet-go-end">
+ <path d="M8 14v4l-6-6l6-6v4h8V6l6 6l-6 6v-4z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--cancel">
+ <path d="M205 34.8c11.5 5.1 19 16.6 19 29.2v64h112c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96h-96v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4"/>
+ </symbol>
+ <symbol viewBox="0 0 640 512" id="icon--changeset">
+ <path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3l89.3 89.4l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--checked">
+ <path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7l233.4-233.3c12.5-12.5 32.8-12.5 45.3 0z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--clear-query">
+ <path d="M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m-81-337c9.4-9.4 24.6-9.4 33.9 0l47 47l47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47l-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47l-47-47c-9.4-9.4-9.4-24.6 0-33.9"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--close">
+ <path d="M64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47l47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47l-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47l-47-47c-9.4-9.4-9.4-24.6 0-33.9"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--comment">
+ <path d="M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160S380.7 80 256 80S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9q2.7-4.05 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8.2-1.6.3-2.4.5c-4.4.8-8.7 1.5-13.2 1.9c-.2 0-.5.1-.7.1c-5.1.5-10.2.8-15.3.8c-6.5 0-12.3-3.9-14.8-9.9S0 457.4 4.5 452.8c4.1-4.2 7.8-8.7 11.3-13.5q2.55-3.45 4.8-6.9l.3-.5z"/>
+ </symbol>
+ <symbol viewBox="0 0 640 512" id="icon--comments">
+ <path d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2q-6.15 3.15-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5m224 128c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5s2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1c28.8-30.3 46-68.6 46-110.4c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8v.6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18q-6.45-2.85-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--copy">
+ <path d="M288 448H64V224h64v-64H64c-35.3 0-64 28.7-64 64v224c0 35.3 28.7 64 64 64h224c35.3 0 64-28.7 64-64v-64h-64zm-64-96h224c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64v224c0 35.3 28.7 64 64 64"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--copy-link">
+ <path d="M280 64h40c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128c0-35.3 28.7-64 64-64h49.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64zM64 112c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h256c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16h-16v24c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24v-24zm128-8a24 24 0 1 0 0-48a24 24 0 1 0 0 48"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--del">
+ <path d="m170.5 51.6l-19 28.4h145l-19-28.4c-1.5-2.2-4-3.6-6.7-3.6h-93.7c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6l36.7 55H424c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v304c0 44.2-35.8 80-80 80H112c-44.2 0-80-35.8-80-80V128h-8c-13.3 0-24-10.7-24-24s10.7-24 24-24h69.8l36.7-55.1C140.9 9.4 158.4 0 177.1 0h93.7c18.7 0 36.2 9.4 46.6 24.9zM80 128v304c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V128zm80 64v208c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16m80 0v208c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16m80 0v208c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--del">
+ <path d="M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1.6-.2 1.1-.2 1.7c-2.8 23.9.5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h448c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1l-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zm187.6 193.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c24.9 8.5 63.6 21.7 87.6 25.6h.2c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1h-75.7c7 5.6 11.4 11.2 13.9 17.2z"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--document">
+ <path d="M320 464c8.8 0 16-7.2 16-16V160h-80c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16v384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0h165.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--download">
+ <path d="M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32v242.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64v-32c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352zm368 56a24 24 0 1 1 0 48a24 24 0 1 1 0-48"/>
+ </symbol>
+ <symbol viewBox="0 0 576 512" id="icon--duplicate">
+ <path d="M0 64C0 28.7 28.7 0 64 0h160v128c0 17.7 14.3 32 32 32h128v38.6c-73.9 20.9-128 88.8-128 169.4c0 59.1 29.1 111.3 73.7 143.3c-3.2.5-6.4.7-9.7.7H64c-35.3 0-64-28.7-64-64zm384 64H256V0zm48 96a144 144 0 1 1 0 288a144 144 0 1 1 0-288m16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48h-48c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16v-48h48c8.8 0 16-7.2 16-16s-7.2-16-16-16h-48z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--edit">
+ <path d="m410.3 231l11.3-11.3l-33.9-33.9l-62.1-62.1l-33.9-33.9l-11.3 11.3l-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2l199.2-199.2zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9l-78.2 23l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7l-14.4 14.5l-22.6 22.6l-11.4 11.3l33.9 33.9l62.1 62.1l33.9 33.9l11.3-11.3l22.6-22.6l14.5-14.5c25-25 25-65.5 0-90.5l-39.3-39.4c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--em">
+ <path d="M128 64c0-17.7 14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32h-58.7L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h58.7L224 96h-64c-17.7 0-32-14.3-32-32"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--email">
+ <path d="M64 112c-8.8 0-16 7.2-16 16v22.1l172.5 141.6c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16zM48 212.2V384c0 8.8 7.2 16 16 16h384c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0zM0 128c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v256c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--email-disabled">
+ <path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4l217.6 163.2c11.4 8.5 27 8.5 38.4 0l217.6-163.2c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48zM0 176v208c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V176L294.4 339.2a63.9 63.9 0 0 1-76.8 0z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--error">
+ <path d="M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m0-384c13.3 0 24 10.7 24 24v112c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24m-32 224a32 32 0 1 1 64 0a32 32 0 1 1-64 0"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--external">
+ <path d="M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32zM80 32C35.8 32 0 67.8 0 112v320c0 44.2 35.8 80 80 80h320c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v112c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h112c17.7 0 32-14.3 32-32s-14.3-32-32-32z"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--false">
+ <path d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7L86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256L41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3l105.4 105.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256z"/>
+ </symbol>
+ <symbol viewBox="0 0 576 512" id="icon--fav">
+ <path d="M316.9 18c-5.3-11-16.5-18-28.8-18s-23.4 7-28.8 18L195 150.3L51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329l-24.6 145.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5l128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329l104.2-103.1c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7l-143.7-21.2z"/>
+ </symbol>
+ <symbol viewBox="0 0 576 512" id="icon--fav-off">
+ <path d="M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3l153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4L459.8 484c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6l68.6-141.3C270.4 5.2 278.7 0 287.9 0m0 79l-52.5 108.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9l85.9 85.1c5.5 5.5 8.1 13.3 6.8 21l-20.3 119.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2l-20.2-119.6c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1l-118.3-17.5c-7.8-1.2-14.6-6.1-18.1-13.3z"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--file">
+ <path d="M320 464c8.8 0 16-7.2 16-16V160h-80c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16v384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0h165.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--folder">
+ <path d="M0 96c0-35.3 28.7-64 64-64h132.1c19.1 0 37.4 7.6 50.9 21.1L289.9 96H448c35.3 0 64 28.7 64 64v256c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm64-16c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h384c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16H286.6c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7z"/>
+ </symbol>
+ <symbol viewBox="0 0 576 512" id="icon--folder-open">
+ <path d="M88.7 223.8L0 375.8V96c0-35.3 28.7-64 64-64h117.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8m27.6 16.1c5.8-9.9 16.3-15.9 27.7-15.9h400c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2.1-32.1l112-192z"/>
+ </symbol>
+ <symbol viewBox="0 0 640 512" id="icon--group">
+ <path d="M96 128a128 128 0 1 1 256 0a128 128 0 1 1-256 0M0 482.3C0 383.8 79.8 304 178.3 304h91.4c98.5 0 178.3 79.8 178.3 178.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3M609.3 512H471.5c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4c89 0 161.2 72.2 161.2 161.3c0 17-13.8 30.7-30.7 30.7M432 256c-31 0-59-12.6-79.3-32.9c19.7-26.6 31.3-59.5 31.3-95.1c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--help">
+ <path d="M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m-40-176h24v-64h-24c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-80c-13.3 0-24-10.7-24-24s10.7-24 24-24m40-208a32 32 0 1 1 0 64a32 32 0 1 1 0-64"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--help">
+ <path d="M464 256a208 208 0 1 0-416 0a208 208 0 1 0 416 0M0 256a256 256 0 1 1 512 0a256 256 0 1 1-512 0m169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24v-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1h-58.3c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0a32 32 0 1 1-64 0"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--history">
+ <path d="M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24h110.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75m181 53c-13.3 0-24 10.7-24 24v104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--hourglass">
+ <path d="M0 32C0 14.3 14.3 0 32 0h320c17.7 0 32 14.3 32 32s-14.3 32-32 32v11c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32v-11c0-42.4 16.9-83.1 46.9-113.1l67.8-67.9l-67.8-67.9C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32m96 32v11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.8l67.9-67.9c18-18 28.1-42.4 28.1-67.9v-11zm0 384h192v-11c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--image-gif">
+ <path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-9 7.5H7.5v3h1V12H10v1.7c0 .7-.5 1.3-1.3 1.3H7.3c-.8 0-1.3-.7-1.3-1.3v-3.3C6 9.7 6.5 9 7.3 9h1.3c.9 0 1.4.7 1.4 1.3zm3 4.5h-1.5V9H13zm4.5-4.5H16v1h1.5V13H16v2h-1.5V9h3z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--image-jpeg">
+ <path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M9 13.5c0 1.1-.9 1.5-2 1.5s-2-.4-2-1.5V12h1.5v1.5h1V9H9zm5-2c0 .8-.7 1.5-1.5 1.5h-1v2H10V9h2.5c.8 0 1.5.7 1.5 1.5zm5-1h-2.5v3h1V12H19v1.7c0 .7-.5 1.3-1.3 1.3h-1.3c-.8 0-1.3-.7-1.3-1.3v-3.3c-.1-.7.4-1.4 1.2-1.4h1.3c.8 0 1.3.7 1.3 1.3v.2m-7.4 0h1v1h-1z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--image-png">
+ <path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M9 11.5c0 .8-.7 1.5-1.5 1.5h-1v2H5V9h2.5c.8 0 1.5.7 1.5 1.5zm5 3.5h-1.5l-1-2.5V15H10V9h1.5l1 2.5V9H14zm5-4.5h-2.5v3h1V12H19v1.7c0 .7-.5 1.3-1.3 1.3h-1.3c-.8 0-1.3-.7-1.3-1.3v-3.3c-.1-.7.4-1.4 1.2-1.4h1.3c.8 0 1.3.7 1.3 1.3v.2zm-12.5 0h1v1h-1z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--image-tiff">
+ <path d="m14 2l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm4 18V9h-5V4H6v16zm-1-7v6H7l5-5l2 2m-4-5.5A1.5 1.5 0 0 1 8.5 12A1.5 1.5 0 0 1 7 10.5A1.5 1.5 0 0 1 8.5 9a1.5 1.5 0 0 1 1.5 1.5"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--img">
+ <path d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6l-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7zM112 192a48 48 0 1 0 0-96a48 48 0 1 0 0 96"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--import">
+ <path d="M128 64c0-35.3 28.7-64 64-64h160v128c0 17.7 14.3 32 32 32h128v288c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336h174.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39l-174.1.1zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm384-160H384V0z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--ins">
+ <path d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v128c0 53 43 96 96 96s96-43 96-96V96h-16c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v128c0 88.4-71.6 160-160 160S64 312.4 64 224V96H48c-17.7 0-32-14.3-32-32M0 448c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--issue">
+ <path d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h224v-80c0-17.7 14.3-32 32-32h80V96c0-8.8-7.2-16-16-16zm224 400H64c-35.3 0-64-28.7-64-64V96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v229.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--issue-closed">
+ <path d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16zM0 96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm337 113L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--issue-edit">
+ <path d="M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0l-30.1 30l97.9 97.9l30.1-30.1c21.9-21.9 21.9-57.3 0-79.2zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5l167.3-167.4l-98-98zM96 64c-53 0-96 43-96 96v256c0 53 43 96 96 96h256c53 0 96-43 96-96v-96c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32z"/>
+ </symbol>
+ <symbol viewBox="0 0 640 512" id="icon--link">
+ <path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l112.2-112.3c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0z"/>
+ </symbol>
+ <symbol viewBox="0 0 640 512" id="icon--link-break">
+ <path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2s-6.3 25.5 4.1 33.7l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96l-31.9-25c24.3-53.8 13.5-118.3-29.6-161.4c-52.2-52.3-134.5-56.2-191.3-11.7zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5zm167.6 254.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5l-56.4 56.4c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8l-50.6-39.9z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--lock">
+ <path d="M144 144v48h160v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80m-64 48v-48C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64v192c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--magnifier">
+ <path d="M416 208c0 45.9-14.9 88.3-40 122.7l126.6 126.7c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208M208 352a144 144 0 1 0 0-288a144 144 0 1 0 0 288"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--move">
+ <path d="M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304c0 113.3 81.5 163.9 100.2 174.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5c-9.4-8.9-22.2-26.4-22.2-56.8c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144a31.76 31.76 0 0 0-34.4-5.4"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--news">
+ <path d="M168 80c-13.3 0-24 10.7-24 24v304c0 8.4-1.4 16.5-4.1 24H440c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24zM72 480c-39.8 0-72-32.2-72-72V112c0-13.3 10.7-24 24-24s24 10.7 24 24v296c0 13.3 10.7 24 24 24s24-10.7 24-24V104c0-39.8 32.2-72 72-72h272c39.8 0 72 32.2 72 72v304c0 39.8-32.2 72-72 72zm104-344c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24v80c0 13.3-10.7 24-24 24h-96c-13.3 0-24-10.7-24-24zm200-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24s10.7-24 24-24m0 80h32c13.3 0 24 10.7 24 24s-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24s10.7-24 24-24m-176 80h208c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24m0 80h208c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--ol">
+ <path d="M24 56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v120h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V80h-8c-13.3 0-24-10.7-24-24m62.7 285.2c-6.5-7.4-18.3-6.9-24 1.2l-11.2 15.5c-7.7 10.8-22.7 13.3-33.5 5.6S4.7 340.8 12.4 330l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6.3-20.5zM224 64h256c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32m0 160h256c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32m0 160h256c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--package">
+ <path d="M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6c25.4 9.1 42.4 33.2 42.4 60.3v242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3zM256 66L82.3 128L256 190l173.7-62zm32 368.6l160-57.1v-188l-160 57.1z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--plugin">
+ <path d="M192 104.8c0-9.2-5.8-17.3-13.2-22.8c-11.6-8.7-18.8-20.7-18.8-34c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48h-56.8c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2c8.7 11.6 20.7 18.8 34 18.8c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8c-5.5 7.4-13.6 13.2-22.8 13.2C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48h120.8c12.8 0 23.2-10.4 23.2-23.2"/>
+ </symbol>
+ <symbol viewBox="0 0 640 512" id="icon--precode">
+ <path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3l89.3 89.4l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3"/>
+ </symbol>
+ <symbol viewBox="0 0 576 512" id="icon--projects">
+ <path d="m290.8 48.6l78.4 29.7l-81.2 31.2l-81.2-31.2l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5v112.2c-1.3.4-2.6.8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7v119.2c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.8c0-23.3-14.4-44.1-36.1-52.4L444 206c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4L308 3.7c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5m256 118.1l-82.4 31.2v-89.2L392 121zm-237.2 40.3l78.4 29.7l-81.2 31.1l-81.2-31.1l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8l82.4-31.6v95.9zm247.6-204.4c1.8-.7 3.8-.7 5.7 0l78.4 29.7l-81.3 31.1l-81.2-31.1zm102 170.3l-77.6 34.1V354.8l82.4-31.6v90.7c0 3.2-1.9 6-4.8 7.3"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--reload">
+ <path d="m440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26a175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57M255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432"/>
+ </symbol>
+ <symbol viewBox="0 0 320 512" id="icon--reorder">
+ <path d="M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4v293.5l-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.2l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"/>
+ </symbol>
+ <symbol viewBox="0 0 32 32" id="icon--report">
+ <path d="M8 2a3 3 0 0 0-3 3v8.763c.34-.17.721-.263 1.117-.263H7V5a1 1 0 0 1 1-1h9v5a3 3 0 0 0 3 3h5v15a1 1 0 0 1-1 1H10.982l-2.076 2H24a3 3 0 0 0 3-3V10.828a3 3 0 0 0-.879-2.12l-5.828-5.83A3 3 0 0 0 18.172 2zm16.586 8H20a1 1 0 0 1-1-1V4.414zM6.119 15h8.382a.5.5 0 0 1 .427.76L11.748 21h2.491a.75.75 0 0 1 .52 1.29l-8.746 8.427c-.758.73-1.985-.055-1.639-1.05L6 25H1.748a.75.75 0 0 1-.672-1.083l4.147-8.361A1 1 0 0 1 6.12 15"/>
+ </symbol>
+ <symbol viewBox="0 0 576 512" id="icon--roles">
+ <path d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32M144 256a144 144 0 1 1 288 0a144 144 0 1 1-288 0m144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--save">
+ <path d="M48 96v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V170.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96c0-35.3 28.7-64 64-64h245.5c17 0 33.3 6.7 45.3 18.7l74.5 74.5l-33.9 33.9l-74.6-74.4l-.8-.8V184c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24V80H64c-8.8 0-16 7.2-16 16m80-16v80h144V80zm32 240a64 64 0 1 1 128 0a64 64 0 1 1-128 0"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--scm-change">
+ <path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2m3.1 5.07c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1l-2.05-2.05l1-1c.1-.11.24-.16.38-.16m-1.97 1.74l2.06 2.06l-6.06 6.06H7.07v-2.06z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--scm-move">
+ <path d="M0 256a256 256 0 1 0 512 0a256 256 0 1 0-512 0m297 129c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24h214.1l-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--server-authentication">
+ <path d="M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24v-40h40c13.3 0 24-10.7 24-24v-40h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3m40-256a40 40 0 1 1 0 80a40 40 0 1 1 0-80"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--settings">
+ <path d="M495.9 166.6c3.2 8.7.5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4l-55.6 17.8c-8.8 2.8-18.6.3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4c-1.1-8.4-1.7-16.9-1.7-25.5s.6-17.1 1.7-25.4l-43.3-39.4c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160a80 80 0 1 0 0 160"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--stats">
+ <path d="M24 32c13.3 0 24 10.7 24 24v352c0 13.3 10.7 24 24 24h416c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-39.8 0-72-32.2-72-72V56c0-13.3 10.7-24 24-24m104 104c0-13.3 10.7-24 24-24h208c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24m24 72h144c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24m0 96h272c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--strong">
+ <path d="M0 64c0-17.7 14.3-32 32-32h192c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H32C14.3 96 0 81.7 0 64m224 160c35.3 0 64-28.7 64-64s-28.7-64-64-64H112v128zm-112 64v128h144c35.3 0 64-28.7 64-64s-28.7-64-64-64z"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--summary">
+ <path d="M0 256L28.5 28c2-16 15.6-28 31.8-28h168.6c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160h139.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5q0-3.45.9-6.9L176 288H32c-17.7 0-32-14.3-32-32"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--table">
+ <path d="M64 256v-96h160v96zm0 64h160v96H64zm224 96v-96h160v96zm160-160H288v-96h160zM64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--table-multiple">
+ <path d="M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85c-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28c77.418-.07 144.315-53.144 162.787-126.849c1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--bookmark">
+ <path d="M0 48C0 21.5 21.5 0 48 0v441.4l130.1-92.9c8.3-6 19.6-6 27.9 0l130 92.9V48H48V0h288c26.5 0 48 21.5 48 48v440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5l-154.1 110c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488z"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--bookmark-off">
+ <path d="M0 48v439.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400l153.7 107.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--bookmarked">
+ <path d="M0 48v439.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400l153.7 107.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-css">
+ <path d="m5 3l-.65 3.34h13.59L17.5 8.5H3.92l-.66 3.33h13.59l-.76 3.81l-5.48 1.81l-4.75-1.81l.33-1.64H2.85l-.79 4l7.85 3l9.05-3l1.2-6.03l.24-1.21L21.94 3z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-html">
+ <path d="m12.89 3l1.96.4L11.11 21l-1.96-.4zm6.7 9L16 8.41V5.58L22.42 12L16 18.41v-2.83zM1.58 12L8 5.58v2.83L4.41 12L8 15.58v2.83z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--list">
+ <path d="M64 144a48 48 0 1 0 0-96a48 48 0 1 0 0 96m128-80c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 464a48 48 0 1 0 0-96a48 48 0 1 0 0 96m48-208a48 48 0 1 0-96 0a48 48 0 1 0 96 0"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-plain">
+ <path d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm0 2h7v5h5v11H6zm2 8v2h8v-2zm0 4v2h5v-2z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-x-c">
+ <path d="m15.45 15.97l.42 2.44c-.26.14-.68.27-1.24.39c-.57.13-1.24.2-2.01.2c-2.21-.04-3.87-.7-4.98-1.96c-1.14-1.27-1.68-2.88-1.68-4.83C6 9.9 6.68 8.13 8 6.89C9.28 5.64 10.92 5 12.9 5c.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.6 2.49l-1.04-.34c-.4-.1-.87-.15-1.4-.15c-1.15-.01-2.11.36-2.86 1.1c-.76.73-1.14 1.85-1.18 3.34c.01 1.36.37 2.42 1.08 3.2c.71.77 1.7 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.09-.32"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-x-csharp">
+ <path d="m11.5 15.97l.41 2.44c-.26.14-.68.27-1.24.39c-.57.13-1.24.2-2.01.2c-2.21-.04-3.87-.7-4.98-1.96Q2 15.135 2 12.21c.05-2.31.72-4.08 2-5.32C5.32 5.64 6.96 5 8.94 5c.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.58 2.49l-1.06-.34c-.4-.1-.86-.15-1.39-.15c-1.16-.01-2.12.36-2.87 1.1c-.76.73-1.15 1.85-1.18 3.34c0 1.36.37 2.42 1.08 3.2c.71.77 1.71 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.1-.32M13.89 19l.61-4H13l.34-2h1.5l.32-2h-1.5L14 9h1.5l.61-4h2l-.61 4h1l.61-4h2l-.61 4H22l-.34 2h-1.5l-.32 2h1.5L21 15h-1.5l-.61 4h-2l.61-4h-1l-.61 4zm2.95-6h1l.32-2h-1z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-x-java">
+ <path d="M16.5 6.08s-6.84 1.71-3.56 5.48c.97 1.11-.25 2.11-.25 2.11s2.45-1.25 1.31-2.85c-1.06-1.47-1.86-2.2 2.5-4.74m-4.47 1.2C16.08 4.08 14 2 14 2c.84 3.3-2.96 4.3-4.33 6.36c-.94 1.4.46 2.91 2.33 4.64c-.71-1.7-3.22-3.16.03-5.72M9.37 17.47c-3.08.86 1.88 2.63 5.79.96c-.38-.15-.75-.33-1.1-.54c-1.36.31-2.76.37-4.14.18c-1.31-.16-.55-.6-.55-.6m5.32-1.68c-1.75.38-3.56.47-5.34.26c-1.31-.13-.45-.77-.45-.77c-3.4 1.13 1.88 2.4 6.6 1.02c-.29-.11-.57-.3-.81-.51m3.42 3.3s.57.47-.61.83c-2.28.68-9.43.89-11.41.03c-.71-.31.63-.74 1.05-.83c.23-.06.46-.08.69-.08c-.79-.54-5.13 1.1-2.19 1.56c7.97 1.3 14.54-.6 12.47-1.51m-2.74-4.86c.29-.19.6-.35.92-.49c0 0-1.51.26-3.02.4c-1.6.16-3.21.18-4.81.06c-2.35-.31 1.29-1.2 1.29-1.2c-1.1 0-2.18.26-3.16.75c-2.05 1 5.1 1.45 8.78.48m.9 2.42c-.02.04-.04.07-.08.1c5.01-1.31 3.17-4.64.77-3.81c-.13.06-.24.14-.31.25c.14-.05.28-.09.43-.12c1.2-.24 2.92 1.63-.81 3.58m.13 4.61c-3.01.52-6.09.56-9.12.14c0 0 .46.38 2.81.53c3.6.23 9.13-.13 9.26-1.83c.03.01-.23.65-2.95 1.16"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-x-javascript">
+ <path d="M3 3h18v18H3zm4.73 15.04c.4.85 1.19 1.55 2.54 1.55c1.5 0 2.53-.8 2.53-2.55v-5.78h-1.7V17c0 .86-.35 1.08-.9 1.08c-.58 0-.82-.4-1.09-.87zm5.98-.18c.5.98 1.51 1.73 3.09 1.73c1.6 0 2.8-.83 2.8-2.36c0-1.41-.81-2.04-2.25-2.66l-.42-.18c-.73-.31-1.04-.52-1.04-1.02c0-.41.31-.73.81-.73c.48 0 .8.21 1.09.73l1.31-.87c-.55-.96-1.33-1.33-2.4-1.33c-1.51 0-2.48.96-2.48 2.23c0 1.38.81 2.03 2.03 2.55l.42.18c.78.34 1.24.55 1.24 1.13c0 .48-.45.83-1.15.83c-.83 0-1.31-.43-1.67-1.03z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-x-php">
+ <path d="M12 18.08c-6.63 0-12-2.72-12-6.08s5.37-6.08 12-6.08S24 8.64 24 12s-5.37 6.08-12 6.08m-5.19-7.95c.54 0 .91.1 1.09.31c.18.2.22.56.13 1.03c-.1.53-.29.87-.58 1.09q-.42.33-1.29.33h-.87l.53-2.76zm-3.5 5.55h1.44l.34-1.75h1.23c.54 0 .98-.06 1.33-.17c.35-.12.67-.31.96-.58c.24-.22.43-.46.58-.73c.15-.26.26-.56.31-.88c.16-.78.05-1.39-.33-1.82c-.39-.44-.99-.65-1.82-.65H4.59zm7.25-8.33l-1.28 6.58h1.42l.74-3.77h1.14c.36 0 .6.06.71.18s.13.34.07.66l-.57 2.93h1.45l.59-3.07c.13-.62.03-1.07-.27-1.36c-.3-.27-.85-.4-1.65-.4h-1.27L12 7.35zM18 10.13c.55 0 .91.1 1.09.31c.18.2.22.56.13 1.03c-.1.53-.29.87-.57 1.09c-.29.22-.72.33-1.3.33h-.85l.5-2.76zm-3.5 5.55h1.44l.34-1.75h1.22c.55 0 1-.06 1.35-.17c.35-.12.65-.31.95-.58c.24-.22.44-.46.58-.73c.15-.26.26-.56.32-.88c.15-.78.04-1.39-.34-1.82c-.36-.44-.99-.65-1.82-.65h-2.75z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-x-ruby">
+ <path d="M18.8 2.07c2.52.43 3.24 2.16 3.2 3.97V6l-1.14 14.93l-14.78 1.01h.01c-1.23-.05-3.96-.17-4.09-3.99l1.37-2.5l2.77 6.46l2.36-7.62l-.05.01l.02-.02l7.71 2.46l-1.99-7.78l7.35-.46l-5.79-4.74l3.05-1.7zM2 17.91v.02zM6.28 6.23c2.96-2.95 6.79-4.69 8.26-3.2c1.46 1.47-.08 5.09-3.04 8.03c-3 2.94-6.77 4.78-8.24 3.3c-1.47-1.49.04-5.19 3.01-8.13z"/>
+ </symbol>
+ <symbol viewBox="0 0 24 24" id="icon--text-xml">
+ <path d="m12.89 3l1.96.4L11.11 21l-1.96-.4zm6.7 9L16 8.41V5.58L22.42 12L16 18.41v-2.83zM1.58 12L8 5.58v2.83L4.41 12L8 15.58v2.83z"/>
+ </symbol>
+ <symbol viewBox="0 0 384 512" id="icon--textfield">
+ <path d="M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h160v80c0 17.7 14.3 32 32 32h80v288c0 8.8-7.2 16-16 16zM64 0C28.7 0 0 28.7 0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3l-90.6-90.5C262.7 6.7 246.5 0 229.5 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24h144c13.3 0 24-10.7 24-24s-10.7-24-24-24zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h144c13.3 0 24-10.7 24-24s-10.7-24-24-24z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--textfield-key">
+ <path d="M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24v-40h40c13.3 0 24-10.7 24-24v-40h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3m40-256a40 40 0 1 1 0 80a40 40 0 1 1 0-80"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--time">
+ <path d="M464 256a208 208 0 1 1-416 0a208 208 0 1 1 416 0M0 256a256 256 0 1 0 512 0a256 256 0 1 0-512 0m232-136v136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--tl">
+ <path d="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113c-9.3-9.4-9.3-24.6 0-34s24.6-9.4 33.9 0L63 101.1l55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L63 261.2l55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32h224c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32m0 160c0-17.7 14.3-32 32-32h224c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32m-64 160c0-17.7 14.3-32 32-32h288c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32M48 368a48 48 0 1 1 0 96a48 48 0 1 1 0-96"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--toggle-minus">
+ <path d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16zM0 96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm152 136h144c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--toggle-plus">
+ <path d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16zM0 96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm200 248v-64h-64c-13.3 0-24-10.7-24-24s10.7-24 24-24h64v-64c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24h-64v64c0 13.3-10.7 24-24 24s-24-10.7-24-24"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--true">
+ <path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7l233.4-233.3c12.5-12.5 32.8-12.5 45.3 0z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--ul">
+ <path d="M64 144a48 48 0 1 0 0-96a48 48 0 1 0 0 96m128-80c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 464a48 48 0 1 0 0-96a48 48 0 1 0 0 96m48-208a48 48 0 1 0-96 0a48 48 0 1 0 96 0"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--unbq">
+ <path d="M0 64c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64m192 128c0-17.7 14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32m32 96h192c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32M0 448c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32m.2-179.4c-8.2-6.4-8.2-18.9 0-25.3L102.1 164c10.5-8.2 25.8-.7 25.8 12.6v158.6c0 13.3-15.3 20.8-25.8 12.6z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--unlock">
+ <path d="M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64v192c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144z"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--user">
+ <path d="M224 256a128 128 0 1 0 0-256a128 128 0 1 0 0 256m-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512h388.6c16.4 0 29.7-13.3 29.7-29.7c0-98.5-79.8-178.3-178.3-178.3z"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--warning">
+ <path d="M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32m0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24m32 224a32 32 0 1 0-64 0a32 32 0 1 0 64 0"/>
+ </symbol>
+ <symbol viewBox="0 0 448 512" id="icon--wiki-edit">
+ <path d="M96 0C43 0 0 43 0 96v320c0 53 43 96 96 96h320c17.7 0 32-14.3 32-32s-14.3-32-32-32v-64c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32zm0 384h256v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32m32-240c0-8.8 7.2-16 16-16h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16m16 48h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16"/>
+ </symbol>
+ <symbol viewBox="0 0 640 512" id="icon--workflows">
+ <path d="M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5l-3.1-5.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1L241.3 77c-10.7-8.8-23-16-36.2-20.9l-6.1-29c-1.9-9.3-9.1-16.7-18.5-17.8c-6.6-.9-13.3-1.3-20.1-1.3h-.7q-10.2 0-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9l-28.3-9.2c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8c-1.1 6.7-1.7 13.7-1.7 20.8s.6 14.1 1.7 20.9l-22.2 19.8c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8q10.05 1.2 20.4 1.2c10.35 0 13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7.9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0a48 48 0 1 1-96 0m392.7 324.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2L613 391c9.3-1.9 16.7-9.1 17.8-18.5q1.2-10.05 1.2-20.4c0-10.35-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5l-29.1-6.2c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1.6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2l-29.1 6c-9.3 1.9-16.7 9.1-17.8 18.5q-1.2 10.05-1.2 20.4c0 10.35.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6.9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96a48 48 0 1 1 0-96"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--zoom-in">
+ <path d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12m201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34M344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136s136-60.8 136-136"/>
+ </symbol>
+ <symbol viewBox="0 0 512 512" id="icon--zoom-out">
+ <path d="M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12m201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34M344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136s136-60.8 136-136"/>
+ </symbol>
+ </defs>
+</svg>
diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css
index 8ab85f269..5dd96340d 100644
--- a/app/assets/stylesheets/application.css
+++ b/app/assets/stylesheets/application.css
@@ -121,8 +121,8 @@ pre, code {font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace;}
#sidebar ul li, ul.flat li {list-style-type:none;margin: 0px 2px 0px 0px; padding: 0px 0px 0px 0px;}
#sidebar div.wiki ul {margin:inherit; padding-left:40px;}
#sidebar div.wiki ul li {list-style-type:inherit;}
-#sidebar a.icon-only {opacity: 0.4; margin-left: 5px;}
-#sidebar a.icon-only:hover {opacity: 1;}
+#sidebar a.icon-only svg {opacity: 0.2; margin-left: 5px;}
+#sidebar a.icon-only:hover svg {opacity: 1;}
#sidebar span.icon-warning {margin-left: 5px;}
#sidebar li input[type=checkbox] {height: 20px;}
@@ -238,8 +238,8 @@ div + .drdn-items {border-top:1px solid #ccc;}
.contextual .drdn-content {top:18px;}
.contextual .drdn-items {padding:2px; min-width: 160px;}
-.contextual .drdn-items>a {padding: 5px 8px;}
-.contextual .drdn-items>a.icon {padding-left: 24px; background-position-x: 4px;}
+.contextual .drdn-items>a {display: flex; padding: 5px 8px;}
+.contextual .drdn-items>a.icon:not(:has(svg)) {padding-left: 24px; background-position-x: 4px;}
.contextual .drdn-items>a:hover {color:#2A5685; border:1px solid #628db6; background-color:#eef5fd; border-radius:3px;}
#project-jump.drdn {width:200px;display:inline-block;}
@@ -275,7 +275,7 @@ table.list td.tick {width:15%}
table.list td.checkbox { width: 15px; padding: 2px 0 0 0; }
table.list .checkbox input {padding:0px; height: initial;}
table.list td.buttons, div.buttons { white-space:nowrap; text-align: right; }
-table.list td.buttons a, div.buttons a { margin-right: 0.6em; }
+table.list td.buttons a, div.buttons a, table.list td.buttons span.icon-only { margin-right: 0.6em; }
table.list td.buttons a:last-child, div.buttons a:last-child { margin-right: 0; }
table.list td.buttons img, div.buttons img {vertical-align:middle;}
table.list td.reorder {width:15%; white-space:nowrap; text-align:center; }
@@ -336,7 +336,7 @@ tr.changeset td.author { text-align: center; width: 15%; white-space:nowrap;}
tr.changeset td.committed_on { text-align: center; width: 15%; white-space:nowrap;}
table.files tbody th {text-align:left;}
-table.files tr.file td.filename { text-align: left; padding-left: 24px; }
+table.files tr.file td.filename { text-align: left; }
table.files tr.file td.digest { font-size: 80%; }
table.members td.roles, table.memberships td.roles { width: 45%; }
@@ -640,7 +640,6 @@ fieldset#date-range p { margin: 2px 0 2px 0; }
#issue_is_private_wrap {float:right; margin-right:1em;}
.toggle-multiselect { margin-right:5px; cursor:pointer;}
.buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; }
-.buttons .icon {padding-bottom:3px; padding-top:1px;}
div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;}
div#issue-changesets div.changeset {border-bottom: 1px solid #ddd; padding: 4px;}
@@ -815,7 +814,7 @@ select.expandable {vertical-align:top;}
textarea#custom_field_possible_values {width: 95%; resize:vertical}
textarea#custom_field_default_value {width: 95%; resize:vertical}
-.sort-handle {display:inline-block; vertical-align:middle; cursor: move;}
+.sort-handle { cursor: move; }
input#content_comments {width: 99%}
@@ -1621,13 +1620,51 @@ td.gantt_selected_column .gantt_hdr,.gantt_selected_column_container {
white-space: pre-wrap;
}
-/***** Icons *****/
-.icon {
+/***** SVG Icons *****/
+.icon, .icon-only {
+ display: inline-flex;
+}
+
+a.icon svg, a.icon-only svg {
+ fill: #169;
+}
+
+a.icon:hover svg, a.icon-only:hover svg {
+ fill: #c61a1a;
+}
+
+.icon-only span {
+ display: none;
+}
+
+svg {
+ width: 0;
+ height: 0;
+
+ &.s14 {
+ width: 14px;
+ height: 14px;
+ }
+}
+
+span.icon-label {
+ margin-left: 4px;
+}
+
+.icon-bookmarked-project svg {
+ fill: #169;
+}
+.icon-user svg {
+ fill: #169;
+}
+
+/***** Legacy icons *****/
+.icon:not(:has(svg)) {
background-position: 0% 50%;
background-repeat: no-repeat;
padding-left: 20px;
}
-.icon-only {
+.icon-only:not(:has(svg)) {
background-position: 0% 50%;
background-repeat: no-repeat;
padding-left: 16px;
@@ -1640,59 +1677,59 @@ td.gantt_selected_column .gantt_hdr,.gantt_selected_column_container {
font-size: 8px;
vertical-align: middle;
}
-.icon-only::after {
+.icon-only:not(:has(svg))::after {
content: "\a0";
}
-.icon-add { background-image: url(/add.png); }
-.icon-edit { background-image: url(/edit.png); }
-.icon-copy { background-image: url(/copy.png); }
+.icon-add:not(:has(svg)) { background-image: url(/add.png); }
+.icon-edit:not(:has(svg)) { background-image: url(/edit.png); }
+.icon-copy:not(:has(svg)) { background-image: url(/copy.png); }
.icon-duplicate { background-image: url(/duplicate.png); }
-.icon-del { background-image: url(/delete.png); }
-.icon-move { background-image: url(/move.png); }
-.icon-save { background-image: url(/save.png); }
-.icon-download { background-image: url(/download.png); }
+.icon-del:not(:has(svg)) { background-image: url(/delete.png); }
+.icon-move:not(:has(svg)) { background-image: url(/move.png); }
+.icon-save:not(:has(svg)) { background-image: url(/save.png); }
+.icon-download:not(:has(svg)) { background-image: url(/download.png); }
.icon-cancel { background-image: url(/cancel.png); }
.icon-multiple { background-image: url(/table_multiple.png); }
.icon-folder { background-image: url(/folder.png); }
.open .icon-folder { background-image: url(/folder_open.png); }
.icon-package { background-image: url(/package.png); }
-.icon-user { background-image: url(/user.png); }
+.icon-user:not(:has(svg)) { background-image: url(/user.png); }
.icon-project, .icon-projects { background-image: url(/projects.png); }
-.icon-help { background-image: url(/help.png); }
-.icon-attachment { background-image: url(/attachment.png); }
-.icon-history { background-image: url(/history.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-add { background-image: url(/time_add.png); }
-.icon-stats { background-image: url(/stats.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); }
.icon-error { background-image: url(/exclamation.png); }
.icon-fav { background-image: url(/fav.png); }
.icon-fav-off { background-image: url(/fav_off.png); }
-.icon-reload { background-image: url(/reload.png); }
-.icon-lock, .icon-locked { background-image: url(/locked.png); }
-.icon-unlock { background-image: url(/unlock.png); }
-.icon-checked { background-image: url(/toggle_check.png); }
+.icon-reload:not(:has(svg)) { background-image: url(/reload.png); }
+.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-comment, .icon-comments { background-image: url(/comment.png); }
-.icon-summary { background-image: url(/lightning.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-zoom-in { background-image: url(/zoom_in.png); }
.icon-zoom-out { background-image: url(/zoom_out.png); }
.icon-magnifier { background-image: url(/magnifier.png); }
.icon-passwd { background-image: url(/textfield_key.png); }
-.icon-arrow-right, .icon-test, .icon-sticky { background-image: url(/bullet_go.png); }
+.icon-arrow-right, .icon-test:not(:has(svg)), .icon-sticky { background-image: url(/bullet_go.png); }
.icon-email { background-image: url(/email.png); }
.icon-email-disabled { background-image: url(/email_disabled.png); }
.icon-email-add { background-image: url(/email_add.png); }
.icon-ok { background-image: url(/true.png); }
.icon-not-ok { background-image: url(/false.png); }
-.icon-link-break { background-image: url(/link_break.png); }
-.icon-list { background-image: url(/text_list_bullets.png); }
-.icon-close { background-image: url(/close.png); }
-.icon-close:hover { background-image: url(/close_hl.png); }
-.icon-settings { background-image: url(/changeset.png); }
+.icon-link-break:not(:has(svg)) { background-image: url(/link_break.png); }
+.icon-list:not(:has(svg)) { background-image: url(/text_list_bullets.png); }
+.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-roles { background-image: url(/database_key.png); }
.icon-issue-edit { background-image: url(/ticket_edit.png); }
@@ -1710,19 +1747,19 @@ td.gantt_selected_column .gantt_hdr,.gantt_selected_column_container {
.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 { background-image: url(/3_bullets.png); }
-.icon-sort-handle { background-image: url(/reorder.png); }
+.icon-actions:not(:has(svg)) { background-image: url(/3_bullets.png); }
+.icon-sort-handle:not(:has(svg)) { background-image: url(/reorder.png); }
.icon-expanded { background-image: url(/arrow_down.png); }
.icon-collapsed { background-image: url(/arrow_right.png); }
-.icon-bookmark { background-image: url(/tag_blue_delete.png); }
-.icon-bookmark-off { background-image: url(/tag_blue_add.png); }
-.icon-bookmarked-project { background-image: url(/tag_blue.png); }
+.icon-bookmark:not(:has(svg)) { background-image: url(/tag_blue_delete.png); }
+.icon-bookmark-off:not(:has(svg)) { background-image: url(/tag_blue_add.png); }
+.icon-bookmarked-project:not(:has(svg)) { background-image: url(/tag_blue.png); }
.icon-sorted-asc { background-image: url(/arrow_down.png); }
.icon-sorted-desc { background-image: url(/arrow_up.png); }
.icon-toggle-plus { background-image: url(/bullet_toggle_plus.png) }
.icon-toggle-minus { background-image: url(/bullet_toggle_minus.png) }
-.icon-clear-query { background-image: url(/close_hl.png); }
-.icon-import { background-image: url(/database_go.png); }
+.icon-clear-query:not(:has(svg)) { background-image: url(/close_hl.png); }
+.icon-import:not(:has(svg)) { background-image: url(/database_go.png); }
.icon-file { background-image: url(/files/default.png); }
.icon-file.text-plain { background-image: url(/files/text.png); }
@@ -1742,7 +1779,7 @@ td.gantt_selected_column .gantt_hdr,.gantt_selected_column_container {
.icon-file.application-pdf { background-image: url(/files/pdf.png); }
.icon-file.application-zip { background-image: url(/files/zip.png); }
.icon-file.application-gzip { background-image: url(/files/zip.png); }
-.icon-copy-link { background-image: url(/copy_link.png); }
+.icon-copy-link:not(:has(svg)) { background-image: url(/copy_link.png); }
.sort-handle.ajax-loading { background-image: url(/loading.gif); }
tr.ui-sortable-helper { border:1px solid #e4e4e4; }
diff --git a/app/assets/stylesheets/context_menu.css b/app/assets/stylesheets/context_menu.css
index b0acdcca9..ca25697f6 100644
--- a/app/assets/stylesheets/context_menu.css
+++ b/app/assets/stylesheets/context_menu.css
@@ -41,7 +41,7 @@
#context-menu a {
text-decoration:none !important;
- padding: 2px 0px 2px 20px;
+ padding: 4px 8px;
width:100%; /* IE */
}
#context-menu li>a { width:auto; } /* others */
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 15d2ff72b..111c85bc5 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -28,9 +28,11 @@ class ApplicationController < ActionController::Base
include Redmine::Hook::Helper
include RoutesHelper
include AvatarsHelper
+ include IconsHelper
helper :routes
helper :avatars
+ helper :icons
class_attribute :accept_api_auth_actions
class_attribute :accept_atom_auth_actions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index ca8e1c266..315868de9 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -127,7 +127,9 @@ module ApplicationHelper
# * :download - Force download (default: false)
def link_to_attachment(attachment, options={})
text = options.delete(:text) || attachment.filename
+ icon = 'attachment'
if options.delete(:download)
+ icon = 'download'
route_method = :download_named_attachment_url
options[:filename] = attachment.filename
else
@@ -136,9 +138,10 @@ module ApplicationHelper
options.delete(:filename)
end
html_options = options.slice!(:only_path, :filename)
+
options[:only_path] = true unless options.key?(:only_path)
url = send(route_method, attachment, options)
- link_to text, url, html_options
+ link_to icon_with_label(icon, text), url, html_options
end
# Generates a link to a SCM revision
@@ -744,7 +747,7 @@ module ApplicationHelper
:reorder_url => options[:url] || url_for(object),
:reorder_param => options[:param] || object.class.name.underscore
}
- content_tag('span', '',
+ content_tag('span', icon_with_label('reorder', ''),
:class => "icon-only icon-sort-handle sort-handle",
:data => data,
:title => l(:button_sort))
@@ -824,7 +827,7 @@ module ApplicationHelper
content = capture(&)
if content.present?
trigger =
- content_tag('span', l(:button_actions), :class => 'icon-only icon-actions',
+ content_tag('span', icon_with_label('3-bullets', l(:button_actions)), :class => 'icon-only icon-actions ',
:title => l(:button_actions))
trigger = content_tag('span', trigger, :class => 'drdn-trigger')
content = content_tag('div', content, :class => 'drdn-items')
@@ -1365,7 +1368,7 @@ module ApplicationHelper
content_tag(
'div',
link_to(
- l(:button_edit_section),
+ icon_with_label('edit', l(:button_edit_section)),
options[:edit_section_links].merge(
:section => @current_section),
:class => 'icon-only icon-edit'),
@@ -1559,7 +1562,7 @@ module ApplicationHelper
:class => 'icon icon-del'
}.merge(options)
- link_to button_name, url, options
+ link_to icon_with_label('del', button_name), url, options
end
def link_to_function(name, function, html_options={})
@@ -1567,7 +1570,7 @@ module ApplicationHelper
end
def link_to_context_menu
- link_to l(:button_actions), '#', title: l(:button_actions), class: 'icon-only icon-actions js-contextmenu'
+ link_to icon_with_label('3-bullets', l(:button_actions)), '#', title: l(:button_actions), class: 'icon-only icon-actions js-contextmenu '
end
# Helper to render JSON in views
@@ -1897,8 +1900,8 @@ module ApplicationHelper
def copy_object_url_link(url)
link_to_function(
- l(:button_copy_link), 'copyTextToClipboard(this);',
- class: 'icon icon-copy-link',
+ icon_with_label('copy-link', l(:button_copy_link)), 'copyTextToClipboard(this);',
+ class: 'icon icon-copy-link ',
data: {'clipboard-text' => url}
)
end
diff --git a/app/helpers/icons_helper.rb b/app/helpers/icons_helper.rb
new file mode 100644
index 000000000..d82a74611
--- /dev/null
+++ b/app/helpers/icons_helper.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+# Redmine - project management software
+# Copyright (C) 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.
+
+module IconsHelper
+ DEFAULT_ICON_SIZE = "14"
+ 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")
+ end
+
+ def sprite_icon(icon_name, size: DEFAULT_ICON_SIZE, sprite: DEFAULT_SPRITE)
+ sprite_path = "#{sprite}.svg"
+
+ content_tag(
+ :svg,
+ content_tag(:use, '', { 'href' => "#{asset_path(sprite_path)}#icon--#{icon_name}" }),
+ class: "s#{size}",
+ aria: {
+ hidden: true
+ }
+ )
+ end
+end
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index 1455fa1c5..c92dd75e7 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -101,7 +101,7 @@ module IssuesHelper
buttons =
if manage_relations
link_to(
- l(:label_delete_link_to_subtask),
+ icon_with_label('link-break', l(:label_delete_link_to_subtask)),
issue_path(
{:id => child.id, :issue => {:parent_issue_id => ''},
:back_url => issue_path(issue.id), :no_flash => '1'}
@@ -207,7 +207,7 @@ module IssuesHelper
buttons =
if manage_relations
link_to(
- l(:label_relation_delete),
+ icon_with_label('link-break', l(:label_relation_delete)),
relation_path(relation, issue_id: issue.id),
:remote => true,
:method => :delete,
diff --git a/app/helpers/journals_helper.rb b/app/helpers/journals_helper.rb
index d5c996d87..c3ba50180 100644
--- a/app/helpers/journals_helper.rb
+++ b/app/helpers/journals_helper.rb
@@ -31,37 +31,37 @@ module JournalsHelper
dropbown_links << copy_object_url_link(issue_url(issue, anchor: "note-#{indice}", only_path: false))
if journal.attachments.size > 1
- dropbown_links << link_to(l(:label_download_all_attachments),
+ dropbown_links << link_to(icon_with_label('download', l(:label_download_all_attachments)),
container_attachments_download_path(journal),
:title => l(:label_download_all_attachments),
- :class => 'icon icon-download'
+ :class => 'icon icon-download '
)
end
if journal.notes.present?
if options[:reply_links]
- links << link_to(l(:button_quote),
+ links << link_to(icon_with_label('comment', l(:button_quote)),
quoted_issue_path(issue, :journal_id => journal, :journal_indice => indice),
:remote => true,
:method => 'post',
:title => l(:button_quote),
- :class => 'icon-only icon-comment'
+ :class => 'icon-only icon-comment '
)
end
if journal.editable_by?(User.current)
- links << link_to(l(:button_edit),
+ links << link_to(icon_with_label('edit', l(:button_edit)),
edit_journal_path(journal),
:remote => true,
:method => 'get',
:title => l(:button_edit),
- :class => 'icon-only icon-edit'
+ :class => 'icon-only icon-edit '
)
- dropbown_links << link_to(l(:button_delete),
+ dropbown_links << link_to(icon_with_label('del', l(:button_delete)),
journal_path(journal, :journal => {:notes => ""}),
:remote => true,
:method => 'put',
:data => {:confirm => l(:text_are_you_sure)},
- :class => 'icon icon-del'
+ :class => 'icon icon-del '
)
end
end
diff --git a/app/helpers/my_helper.rb b/app/helpers/my_helper.rb
index f65288de1..2957f4e90 100644
--- a/app/helpers/my_helper.rb
+++ b/app/helpers/my_helper.rb
@@ -34,8 +34,8 @@ module MyHelper
def render_block(block, user)
content = render_block_content(block, user)
if content.present?
- handle = content_tag('span', '', :class => 'icon-only icon-sort-handle sort-handle', :title => l(:button_move))
- close = link_to(l(:button_delete),
+ handle = content_tag('span', icon_with_label('reorder', ''), :class => 'icon-only icon-sort-handle sort-handle', :title => l(:button_move))
+ close = link_to(icon_with_label('close', l(:button_delete)),
{:action => "remove_block", :block => block},
:remote => true, :method => 'post',
:class => "icon-only icon-close", :title => l(:button_delete))
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index 5a8649dc3..bb05a3ef1 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -63,10 +63,10 @@ module ProjectsHelper
def render_project_action_links
links = (+"").html_safe
if User.current.allowed_to?(:add_project, nil, :global => true)
- links << link_to(l(:label_project_new), new_project_path, :class => 'icon icon-add')
+ links << link_to(icon_with_label('add', l(:label_project_new)), new_project_path, :class => 'icon icon-add')
end
if User.current.admin?
- links << link_to(l(:label_administration), admin_projects_path, :class => 'icon icon-settings')
+ links << link_to(icon_with_label('settings', l(:label_administration)), admin_projects_path, :class => 'icon icon-settings')
end
links
end
@@ -182,12 +182,14 @@ module ProjectsHelper
if bookmarked
css << "icon-bookmark"
+ icon = "bookmark"
method = "delete"
- text = l(:button_project_bookmark_delete)
+ text = icon_with_label(icon, l(:button_project_bookmark_delete))
else
css << "icon-bookmark-off"
+ icon = "bookmark-off"
method = "post"
- text = l(:button_project_bookmark)
+ text = icon_with_label(icon, l(:button_project_bookmark))
end
url = bookmark_project_path(project)
diff --git a/app/helpers/queries_helper.rb b/app/helpers/queries_helper.rb
index 516088f8d..26d1ee48b 100644
--- a/app/helpers/queries_helper.rb
+++ b/app/helpers/queries_helper.rb
@@ -517,7 +517,7 @@ module QueriesHelper
def link_to_clear_query(params = {:set_filter => 1, :sort => '', :project_id => @project})
link_to(
- l(:button_clear),
+ icon_with_label('clear-query', l(:button_clear)),
params,
:class => 'icon-only icon-clear-query',
:title => l(:button_clear)
diff --git a/app/helpers/versions_helper.rb b/app/helpers/versions_helper.rb
index 5ad319c7f..4f88ba5ee 100644
--- a/app/helpers/versions_helper.rb
+++ b/app/helpers/versions_helper.rb
@@ -101,7 +101,7 @@ module VersionsHelper
:tracker_id => new_issue_tracker,
:fixed_version_id => version.id
}
- link_to l(:label_issue_new), new_project_issue_path(project, :issue => attrs, :back_url => version_path(version)), :class => 'icon icon-add'
+ link_to icon_with_label('add', l(:label_issue_new)), new_project_issue_path(project, :issue => attrs, :back_url => version_path(version)), :class => 'icon icon-add'
end
end
end
diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb
index 8afd5af31..2071879e3 100644
--- a/app/helpers/watchers_helper.rb
+++ b/app/helpers/watchers_helper.rb
@@ -25,7 +25,8 @@ module WatchersHelper
return '' unless objects.any?
watched = Watcher.any_watched?(objects, user)
- css = [watcher_css(objects), watched ? 'icon icon-fav' : 'icon icon-fav-off'].join(' ')
+ icon = watched ? 'fav' : 'fav-off'
+ css = [watcher_css(objects), '', 'icon', icon].join(' ')
text = watched ? l(:button_unwatch) : l(:button_watch)
url = watch_path(
:object_type => objects.first.class.to_s.underscore,
@@ -33,7 +34,7 @@ module WatchersHelper
)
method = watched ? 'delete' : 'post'
- link_to text, url, :remote => true, :method => method, :class => css
+ link_to icon_with_label(icon, text), url, :remote => true, :method => method, :class => css
end
# Returns the css class used to identify watch links for a given +object+
@@ -61,7 +62,7 @@ module WatchersHelper
:object_id => object.id,
:user_id => user}
s << ' '
- s << link_to(l(:button_delete), url,
+ s << link_to(icon_with_label('del', l(:button_delete)), url,
:remote => true, :method => 'delete',
:class => "delete icon-only icon-del",
:title => l(:button_delete))
diff --git a/app/views/admin/projects.html.erb b/app/views/admin/projects.html.erb
index c0e2a713e..91a981a59 100644
--- a/app/views/admin/projects.html.erb
+++ b/app/views/admin/projects.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to l(:label_project_new), new_project_path, :class => 'icon icon-add' %>
+<%= link_to icon_with_label('add', l(:label_project_new)), new_project_path, :class => 'icon icon-add' %>
</div>
<h2><%= @query.new_record? ? l(:label_project_plural) : @query.name %></h2>
diff --git a/app/views/attachments/_links.html.erb b/app/views/attachments/_links.html.erb
index 25d022029..c90f0df7a 100644
--- a/app/views/attachments/_links.html.erb
+++ b/app/views/attachments/_links.html.erb
@@ -1,23 +1,23 @@
<div class="attachments">
<div class="contextual">
- <%= link_to(l(:label_edit_attachments),
+ <%= link_to(icon_with_label('edit', l(:label_edit_attachments)),
container_attachments_edit_path(container),
:title => l(:label_edit_attachments),
- :class => 'icon-only icon-edit'
+ :class => 'icon-only icon-edit '
) if options[:editable] %>
- <%= link_to(l(:label_download_all_attachments),
+ <%= link_to(icon_with_label('download', l(:label_download_all_attachments)),
container_attachments_download_path(container),
:title => l(:label_download_all_attachments),
- :class => 'icon-only icon-download'
+ :class => 'icon-only icon-download '
) if attachments.size > 1 %>
</div>
<table>
<% for attachment in attachments %>
<tr>
<td>
- <%= link_to_attachment attachment, class: 'icon icon-attachment' -%>
+ <%= link_to_attachment attachment, class: 'icon icon-attachment ' -%>
<span class="size">(<%= number_to_human_size attachment.filesize %>)</span>
- <%= link_to_attachment attachment, class: 'icon-only icon-download', title: l(:button_download), download: true -%>
+ <%= link_to_attachment attachment, class: 'icon-only icon-download ', title: l(:button_download), download: true -%>
</td>
<td><%= attachment.description unless attachment.description.blank? %></td>
<td>
@@ -27,10 +27,10 @@
</td>
<td>
<% if options[:deletable] %>
- <%= link_to l(:button_delete), attachment_path(attachment),
+ <%= link_to icon_with_label('del', l(:button_delete)), attachment_path(attachment),
:data => {:confirm => l(:text_are_you_sure)},
:method => :delete,
- :class => 'delete icon-only icon-del',
+ :class => 'delete icon-only icon-del ',
:title => l(:button_delete) %>
<% end %>
</td>
diff --git a/app/views/auth_sources/index.html.erb b/app/views/auth_sources/index.html.erb
index 7a0ffa59d..4d9634857 100644
--- a/app/views/auth_sources/index.html.erb
+++ b/app/views/auth_sources/index.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to l(:label_auth_source_new), {:action => 'new'}, :class => 'icon icon-add' %>
+<%= link_to icon_with_label('add', l(:label_auth_source_new)), {:action => 'new'}, :class => 'icon icon-add' %>
</div>
<%= title l(:label_auth_source_plural) %>
@@ -20,7 +20,7 @@
<td><%= source.host %></td>
<td><%= source.users.count %></td>
<td class="buttons">
- <%= link_to l(:button_test), try_connection_auth_source_path(source), :class => 'icon icon-test' %>
+ <%= link_to icon_with_label('arrow-right', l(:button_test)), try_connection_auth_source_path(source), :class => 'icon icon-test' %>
<%= delete_link auth_source_path(source) %>
</td>
</tr>
diff --git a/app/views/boards/index.html.erb b/app/views/boards/index.html.erb
index 63daeb535..e20c8f641 100644
--- a/app/views/boards/index.html.erb
+++ b/app/views/boards/index.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
- <%= link_to_if_authorized l(:label_settings),
+ <%= link_to_if_authorized icon_with_label('settings', l(:label_settings)),
{:controller => 'projects', :action => 'settings', :id => @project, :tab => 'boards'},
:class => 'icon icon-settings' if User.current.allowed_to?(:manage_boards, @project) %>
</div>
diff --git a/app/views/boards/show.html.erb b/app/views/boards/show.html.erb
index bc8c24c3d..96d6490c1 100644
--- a/app/views/boards/show.html.erb
+++ b/app/views/boards/show.html.erb
@@ -1,12 +1,12 @@
<%= board_breadcrumb(@board) %>
<div class="contextual">
-<%= link_to l(:label_message_new),
+<%= link_to icon_with_label('add', l(:label_message_new)),
new_board_message_path(@board),
:class => 'icon icon-add',
:onclick => 'showAndScrollTo("add-message", "message_subject"); return false;' if User.current.allowed_to?(:add_messages, @board.project) %>
<%= watcher_link(@board, User.current) %>
-<%= link_to_if_authorized l(:label_settings),
+<%= link_to_if_authorized icon_with_label('settings', l(:label_settings)),
{:controller => 'projects', :action => 'settings', :id => @project, :tab => 'boards'},
:class => 'icon icon-settings' if User.current.allowed_to?(:manage_boards, @project) %>
diff --git a/app/views/calendars/show.html.erb b/app/views/calendars/show.html.erb
index dfef117de..adfd288b9 100644
--- a/app/views/calendars/show.html.erb
+++ b/app/views/calendars/show.html.erb
@@ -32,15 +32,15 @@
<%= label_tag('year', l(:label_year)) %>
<%= select_year(@year, :prefix => "year", :discard_type => true) %>
- <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
- <%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 }, :class => 'icon icon-reload' %>
+ <%= link_to_function icon_with_label('checked', l(:button_apply)), '$("#query_form").submit()', :class => 'icon icon-checked' %>
+ <%= link_to icon_with_label('reload', l(:button_clear)), { :project_id => @project, :set_filter => 1 }, :class => 'icon icon-reload' %>
<% if @query.new_record? && User.current.allowed_to?(:save_queries, @project, :global => true) %>
- <%= link_to_function l(:button_save_object, object_name: l(:label_query).downcase),
+ <%= link_to_function icon_with_label('save', l(:button_save_object, object_name: l(:label_query).downcase)),
"$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit();",
:class => 'icon icon-save' %>
<% end %>
<% if !@query.new_record? && @query.editable_by?(User.current) %>
- <%= link_to l(:button_edit_object, object_name: l(:label_query).downcase), edit_query_path(@query, :calendar => 1), :class => 'icon icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit_object, object_name: l(:label_query).downcase)), edit_query_path(@query, :calendar => 1), :class => 'icon icon-edit' %>
<%= delete_link query_path(@query, :calendar => 1), {}, l(:button_delete_object, object_name: l(:label_query).downcase) %>
<% end %>
</p>
diff --git a/app/views/context_menus/issues.html.erb b/app/views/context_menus/issues.html.erb
index a61b951fa..9b9c7f07a 100644
--- a/app/views/context_menus/issues.html.erb
+++ b/app/views/context_menus/issues.html.erb
@@ -2,10 +2,10 @@
<%= call_hook(:view_issues_context_menu_start, {:issues => @issues, :can => @can, :back => @back }) %>
<% if @issue -%>
- <li><%= context_menu_link l(:button_edit), edit_issue_path(@issue),
+ <li><%= context_menu_link icon_with_label('edit', l(:button_edit)), edit_issue_path(@issue),
:class => 'icon icon-edit', :disabled => !@can[:edit] %></li>
<% else %>
- <li><%= context_menu_link l(:label_bulk_edit), bulk_edit_issues_path(:ids => @issue_ids),
+ <li><%= context_menu_link icon_with_label('edit', l(:label_bulk_edit)), bulk_edit_issues_path(:ids => @issue_ids),
:class => 'icon icon-edit', :disabled => !@can[:edit] %></li>
<% end %>
@@ -130,7 +130,7 @@
<li class="folder">
<a href="#" class="submenu"><%= l(:label_issue_watchers) %></a>
<ul>
- <li><%= context_menu_link l(:button_add),
+ <li><%= context_menu_link icon_with_label('add', l(:button_add)),
new_watchers_path(:object_type => 'issue', :object_id => @issue_ids),
:remote => true,
:class => 'icon icon-add' %></li>
@@ -143,28 +143,28 @@
<% end %>
<% unless @issue %>
- <li><%= context_menu_link l(:button_filter), _project_issues_path(@project, :set_filter => 1, :status_id => "*", :issue_id => @issue_ids.join(","), :c => @columns),
+ <li><%= context_menu_link icon_with_label('list', l(:button_filter)), _project_issues_path(@project, :set_filter => 1, :status_id => "*", :issue_id => @issue_ids.join(","), :c => @columns),
:class => 'icon icon-list' %></li>
<% end %>
<% if @issue.present? %>
<% if @can[:log_time] -%>
- <li><%= context_menu_link l(:button_log_time), new_issue_time_entry_path(@issue),
+ <li><%= context_menu_link icon_with_label('time', l(:button_log_time)), new_issue_time_entry_path(@issue),
:class => 'icon icon-time-add' %></li>
<% end %>
<% if @can[:add_subtask] -%>
- <li><%= context_menu_link l(:button_add_subtask), url_for_new_subtask(@issue),
+ <li><%= context_menu_link icon_with_label('add', l(:button_add_subtask)), url_for_new_subtask(@issue),
:class => 'icon icon-add' %></li>
<% end %>
<li><%= copy_object_url_link(issue_url(@issue)) %></li>
- <li><%= context_menu_link l(:button_copy), project_copy_issue_path(@project, @issue),
+ <li><%= context_menu_link icon_with_label('copy', l(:button_copy)), project_copy_issue_path(@project, @issue),
:class => 'icon icon-copy', :disabled => !@can[:copy] %></li>
<% else %>
<li><%= copy_object_url_link(_project_issues_url(@project, set_filter: 1, status_id: '*', issue_id: @issue_ids.join(','))) %></li>
- <li><%= context_menu_link l(:button_copy), bulk_edit_issues_path(:ids => @issue_ids, :copy => '1'),
+ <li><%= context_menu_link icon_with_label('copy', l(:button_copy)), bulk_edit_issues_path(:ids => @issue_ids, :copy => '1'),
:class => 'icon icon-copy', :disabled => !@can[:copy] %></li>
<% end %>
- <li><%= context_menu_link l(:button_delete_object, object_name: (@issue_ids.size > 1 ? l(:label_issue_plural) : l(:label_issue)).downcase), issues_path(:ids => @issue_ids, :back_url => @back),
+ <li><%= context_menu_link icon_with_label('del', l(:button_delete_object, object_name: (@issue_ids.size > 1 ? l(:label_issue_plural) : l(:label_issue)).downcase)), issues_path(:ids => @issue_ids, :back_url => @back),
:method => :delete, :data => {:confirm => issues_destroy_confirmation_message(@issues)}, :class => 'icon icon-del', :disabled => !@can[:delete] %></li>
<%= call_hook(:view_issues_context_menu_end, {:issues => @issues, :can => @can, :back => @back }) %>
diff --git a/app/views/context_menus/projects.html.erb b/app/views/context_menus/projects.html.erb
index c200311f2..ba18b4e06 100644
--- a/app/views/context_menus/projects.html.erb
+++ b/app/views/context_menus/projects.html.erb
@@ -6,7 +6,7 @@
<li><%= context_menu_link l(:button_archive), archive_project_path(@project), data: {confirm: l(:text_project_archive_confirmation, @project.to_s)}, method: :post, class: 'icon icon-lock' %></li>
<% end %>
<li>
- <%= context_menu_link l(:button_copy), copy_project_path(@projects), class: 'icon icon-copy' %>
+ <%= context_menu_link icon_with_label('copy', l(:button_copy)), copy_project_path(@projects), class: 'icon icon-copy' %>
</li>
<li>
<%= context_menu_link l(:button_delete), project_path(@project, back_url: @back), method: :delete, class: 'icon icon-del' %>
diff --git a/app/views/context_menus/time_entries.html.erb b/app/views/context_menus/time_entries.html.erb
index 3bf138e91..2282a6ea3 100644
--- a/app/views/context_menus/time_entries.html.erb
+++ b/app/views/context_menus/time_entries.html.erb
@@ -1,9 +1,9 @@
<ul>
<% if !@time_entry.nil? -%>
- <li><%= context_menu_link l(:button_edit), {:controller => 'timelog', :action => 'edit', :id => @time_entry},
+ <li><%= context_menu_link icon_with_label('edit', l(:button_edit)), {:controller => 'timelog', :action => 'edit', :id => @time_entry},
:class => 'icon icon-edit', :disabled => !@can[:edit] %></li>
<% else %>
- <li><%= context_menu_link l(:label_bulk_edit), {:controller => 'timelog', :action => 'bulk_edit', :ids => @time_entries.collect(&:id)},
+ <li><%= context_menu_link icon_with_label('edit', l(:label_bulk_edit)), {:controller => 'timelog', :action => 'bulk_edit', :ids => @time_entries.collect(&:id)},
:class => 'icon icon-edit', :disabled => !@can[:edit] %></li>
<% end %>
@@ -38,7 +38,7 @@
<%= call_hook(:view_time_entries_context_menu_end, {:time_entries => @time_entries, :can => @can, :back => @back }) %>
<li>
- <%= context_menu_link l(:button_delete),
+ <%= context_menu_link icon_with_label('del', l(:button_delete)),
{:controller => 'timelog', :action => 'destroy', :ids => @time_entries.collect(&:id), :back_url => @back},
:method => :delete, :data => {:confirm => l(:text_time_entries_destroy_confirmation)}, :class => 'icon icon-del', :disabled => !@can[:delete] %>
</li>
diff --git a/app/views/context_menus/users.html.erb b/app/views/context_menus/users.html.erb
index 93fe061e6..4fa60779b 100644
--- a/app/views/context_menus/users.html.erb
+++ b/app/views/context_menus/users.html.erb
@@ -11,7 +11,7 @@
<% end %>
<li>
- <%= context_menu_link l(:button_edit), edit_user_path(@user, back_url: @back), class: 'icon icon-edit' %>
+ <%= context_menu_link icon_with_label('edit', l(:button_edit)), edit_user_path(@user, back_url: @back), class: 'icon icon-edit' %>
</li>
<% unless User.current == @user %>
diff --git a/app/views/custom_fields/_index.html.erb b/app/views/custom_fields/_index.html.erb
index 81fe21404..b350d4734 100644
--- a/app/views/custom_fields/_index.html.erb
+++ b/app/views/custom_fields/_index.html.erb
@@ -22,7 +22,7 @@
<% end %>
<td class="buttons">
<%= reorder_handle(custom_field, :url => custom_field_path(custom_field), :param => 'custom_field') %>
- <%= link_to_function l(:button_copy), "location.href = '#{new_custom_field_path(:copy => custom_field)}&type=' + encodeURIComponent(($('.tabs a.selected').attr('id')||'').split('tab-').pop())", :class => 'icon icon-copy' %>
+ <%= link_to_function icon_with_label('copy', l(:button_copy)), "location.href = '#{new_custom_field_path(:copy => custom_field)}&type=' + encodeURIComponent(($('.tabs a.selected').attr('id')||'').split('tab-').pop())", :class => 'icon icon-copy' %>
<%= delete_link custom_field_path(custom_field) %>
</td>
</tr>
diff --git a/app/views/custom_fields/formats/_enumeration.erb b/app/views/custom_fields/formats/_enumeration.erb
index 07e4cf463..a0529e80d 100644
--- a/app/views/custom_fields/formats/_enumeration.erb
+++ b/app/views/custom_fields/formats/_enumeration.erb
@@ -1,7 +1,7 @@
<% unless @custom_field.new_record? %>
<p>
<label><%= l(:field_possible_values) %></label>
- <%= link_to l(:button_edit), custom_field_enumerations_path(@custom_field), :class => 'icon icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit)), custom_field_enumerations_path(@custom_field), :class => 'icon icon-edit' %>
</p>
<% if @custom_field.enumerations.active.any? %>
<p><%= f.select :default_value, @custom_field.enumerations.active.map{|v| [v.name, v.id.to_s]}, :include_blank => true %></p>
diff --git a/app/views/custom_fields/index.html.erb b/app/views/custom_fields/index.html.erb
index 0eecc6014..0af9c54ea 100644
--- a/app/views/custom_fields/index.html.erb
+++ b/app/views/custom_fields/index.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to_function l(:label_custom_field_new), "location.href = '#{new_custom_field_path}?tab=' + encodeURIComponent(($('.tabs a.selected').attr('id')||'').split('tab-').pop())", :class => 'icon icon-add' %>
+<%= link_to_function icon_with_label('add', l(:label_custom_field_new)), "location.href = '#{new_custom_field_path}?tab=' + encodeURIComponent(($('.tabs a.selected').attr('id')||'').split('tab-').pop())", :class => 'icon icon-add' %>
</div>
<%= title l(:label_custom_field_plural) %>
@@ -12,4 +12,4 @@
<%= javascript_tag do %>
$(function() { $("table.custom_fields tbody").positionedItems(); });
-<% end %> \ No newline at end of file
+<% end %>
diff --git a/app/views/documents/index.html.erb b/app/views/documents/index.html.erb
index aa5e5200d..b6458949d 100644
--- a/app/views/documents/index.html.erb
+++ b/app/views/documents/index.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to l(:label_document_new), new_project_document_path(@project), :class => 'icon icon-add',
+<%= link_to icon_with_label('add', l(:label_document_new)), new_project_document_path(@project), :class => 'icon icon-add',
:onclick => 'showAndScrollTo("add-document", "document_title"); return false;' if User.current.allowed_to?(:add_documents, @project) %>
</div>
diff --git a/app/views/documents/show.html.erb b/app/views/documents/show.html.erb
index 799803c9e..cce27281a 100644
--- a/app/views/documents/show.html.erb
+++ b/app/views/documents/show.html.erb
@@ -1,6 +1,6 @@
<div class="contextual">
<% if User.current.allowed_to?(:edit_documents, @project) %>
-<%= link_to l(:button_edit), edit_document_path(@document), :class => 'icon icon-edit', :accesskey => accesskey(:edit) %>
+<%= link_to icon_with_label('edit', l(:button_edit)), edit_document_path(@document), :class => 'icon icon-edit', :accesskey => accesskey(:edit) %>
<% end %>
<% if User.current.allowed_to?(:delete_documents, @project) %>
<%= delete_link document_path(@document) %>
diff --git a/app/views/enumerations/index.html.erb b/app/views/enumerations/index.html.erb
index 09d13a091..a516ccc44 100644
--- a/app/views/enumerations/index.html.erb
+++ b/app/views/enumerations/index.html.erb
@@ -5,7 +5,7 @@
<% enumerations = klass.shared %>
-<p><%= link_to l(:label_enumeration_new), new_enumeration_path(:type => klass.name), :class => 'icon icon-add' %></p>
+<p><%= link_to icon_with_label('add', l(:label_enumeration_new)), new_enumeration_path(:type => klass.name), :class => 'icon icon-add' %></p>
<% if enumerations.any? %>
<table class="list enumerations"><thead>
@@ -36,4 +36,4 @@
<%= javascript_tag do %>
$(function() { $("table.enumerations tbody").positionedItems(); });
-<% end %> \ No newline at end of file
+<% end %>
diff --git a/app/views/files/index.html.erb b/app/views/files/index.html.erb
index 3e8dda160..ff1aa5254 100644
--- a/app/views/files/index.html.erb
+++ b/app/views/files/index.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to(l(:label_attachment_new), new_project_file_path(@project), :class => 'icon icon-add') if User.current.allowed_to?(:manage_files, @project) %>
+<%= link_to(icon_with_label('add', l(:label_attachment_new)), new_project_file_path(@project), :class => 'icon icon-add') if User.current.allowed_to?(:manage_files, @project) %>
</div>
<h2><%=l(:label_attachment_plural)%></h2>
@@ -35,7 +35,7 @@
<td class="digest"><%= file.digest_type %>: <%= file.digest %></td>
<td class="buttons">
<%= link_to_attachment file, class: 'icon-only icon-download', title: l(:button_download), download: true %>
- <%= link_to(l(:button_delete), attachment_path(file), :class => 'icon-only icon-del',
+ <%= link_to(icon_with_label('del', l(:button_delete)), attachment_path(file), :class => 'icon-only icon-del',
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete) if delete_allowed %>
</td>
</tr>
diff --git a/app/views/gantts/show.html.erb b/app/views/gantts/show.html.erb
index ceca3d1a7..3e73d9d7a 100644
--- a/app/views/gantts/show.html.erb
+++ b/app/views/gantts/show.html.erb
@@ -83,17 +83,17 @@
<%= select_year(@gantt.year_from, :prefix => "year", :discard_type => true) %>
<%= hidden_field_tag 'zoom', @gantt.zoom %>
- <%= link_to_function l(:button_apply), '$("#query_form").submit()',
+ <%= link_to_function icon_with_label('checked', l(:button_apply)), '$("#query_form").submit()',
:class => 'icon icon-checked' %>
- <%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 },
+ <%= link_to icon_with_label('reload', l(:button_clear)), { :project_id => @project, :set_filter => 1 },
:class => 'icon icon-reload' %>
<% if @query.new_record? && User.current.allowed_to?(:save_queries, @project, :global => true) %>
- <%= link_to_function l(:button_save_object, object_name: l(:label_query).downcase),
+ <%= link_to_function icon_with_label('save', l(:button_save_object, object_name: l(:label_query).downcase)),
"$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit();",
:class => 'icon icon-save' %>
<% end %>
<% if !@query.new_record? && @query.editable_by?(User.current) %>
- <%= link_to l(:button_edit_object, object_name: l(:label_query).downcase), edit_query_path(@query, :gantt => 1), :class => 'icon icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit_object, object_name: l(:label_query).downcase)), edit_query_path(@query, :gantt => 1), :class => 'icon icon-edit' %>
<%= delete_link query_path(@query, :gantt => 1), {}, l(:button_delete_object, object_name: l(:label_query).downcase) %>
<% end %>
</p>
diff --git a/app/views/groups/_users.html.erb b/app/views/groups/_users.html.erb
index 8c2ab7e4b..73af9ee58 100644
--- a/app/views/groups/_users.html.erb
+++ b/app/views/groups/_users.html.erb
@@ -1,4 +1,4 @@
-<p><%= link_to l(:label_user_new), new_group_users_path(@group), :remote => true, :class => "icon icon-add" %></p>
+<p><%= link_to icon_with_label('add', l(:label_user_new)), new_group_users_path(@group), :remote => true, :class => "icon icon-add" %></p>
<% if @group.users.any? %>
<table class="list users">
diff --git a/app/views/groups/index.html.erb b/app/views/groups/index.html.erb
index 7b77fec22..4c5139362 100644
--- a/app/views/groups/index.html.erb
+++ b/app/views/groups/index.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to l(:label_group_new), new_group_path, :class => 'icon icon-add' %>
+<%= link_to icon_with_label('add', l(:label_group_new)), new_group_path, :class => 'icon icon-add' %>
</div>
<%= title l(:label_group_plural) %>
@@ -9,7 +9,7 @@
<label for='name'><%= l(:label_group) %>:</label>
<%= text_field_tag 'name', params[:name], :size => 30 %>
<%= submit_tag l(:button_apply), :class => "small", :name => nil %>
- <%= link_to l(:button_clear), groups_path, :class => 'icon icon-reload' %>
+ <%= link_to icon_with_label('reload', l(:button_clear)), groups_path, :class => 'icon icon-reload' %>
</fieldset>
<% end %>
&nbsp;
diff --git a/app/views/groups/show.html.erb b/app/views/groups/show.html.erb
index 9cb6363f5..136302ace 100644
--- a/app/views/groups/show.html.erb
+++ b/app/views/groups/show.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to(l(:button_edit), edit_group_path(@group), :class => 'icon icon-edit') if User.current.admin? %>
+<%= link_to(icon_with_label('edit', l(:button_edit)), edit_group_path(@group), :class => 'icon icon-edit') if User.current.admin? %>
</div>
<h2><%= @group.name %></h2>
diff --git a/app/views/issue_statuses/index.html.erb b/app/views/issue_statuses/index.html.erb
index 509abd831..16df17943 100644
--- a/app/views/issue_statuses/index.html.erb
+++ b/app/views/issue_statuses/index.html.erb
@@ -1,6 +1,6 @@
<div class="contextual">
-<%= link_to l(:label_issue_status_new), new_issue_status_path, :class => 'icon icon-add' %>
-<%= link_to(l(:label_update_issue_done_ratios), update_issue_done_ratio_issue_statuses_path, :class => 'icon icon-multiple', :method => 'post', :data => {:confirm => l(:text_are_you_sure)}) if Issue.use_status_for_done_ratio? %>
+<%= link_to(icon_with_label('add', l(:label_issue_status_new)), new_issue_status_path, :class => 'icon icon-add') %>
+<%= link_to(icon_with_label('multiple', l(:label_update_issue_done_ratios)), update_issue_done_ratio_issue_statuses_path, :class => 'icon icon-multiple', :method => 'post', :data => {:confirm => l(:text_are_you_sure)}) if Issue.use_status_for_done_ratio? %>
</div>
<h2><%=l(:label_issue_status_plural)%></h2>
diff --git a/app/views/issues/_action_menu.html.erb b/app/views/issues/_action_menu.html.erb
index 1904f2171..abb157d5a 100644
--- a/app/views/issues/_action_menu.html.erb
+++ b/app/views/issues/_action_menu.html.erb
@@ -1,16 +1,16 @@
<div class="contextual">
-<%= link_to l(:button_edit), edit_issue_path(@issue),
+<%= link_to icon_with_label('edit', l(:button_edit)), edit_issue_path(@issue),
:onclick => 'showAndScrollTo("update", "issue_notes"); return false;',
- :class => 'icon icon-edit', :accesskey => accesskey(:edit) if @issue.editable? %>
-<%= link_to l(:button_log_time), new_issue_time_entry_path(@issue),
- :class => 'icon icon-time-add' if User.current.allowed_to?(:log_time, @project) %>
+ :class => 'icon icon-edit ', :accesskey => accesskey(:edit) if @issue.editable? %>
+<%= link_to icon_with_label('time', l(:button_log_time)), new_issue_time_entry_path(@issue),
+ :class => 'icon icon-time-add ' if User.current.allowed_to?(:log_time, @project) %>
<%= watcher_link(@issue, User.current) %>
-<%= link_to l(:button_copy), project_copy_issue_path(@project, @issue),
- :class => 'icon icon-copy' if User.current.allowed_to?(:copy_issues, @project) && Issue.allowed_target_projects.any? %>
+<%= link_to icon_with_label('copy', l(:button_copy)), project_copy_issue_path(@project, @issue),
+ :class => 'icon icon-copy ' if User.current.allowed_to?(:copy_issues, @project) && Issue.allowed_target_projects.any? %>
<%= actions_dropdown do %>
<%= copy_object_url_link(issue_url(@issue, only_path: false)) %>
- <%= link_to l(:button_delete_object, object_name: l(:label_issue).downcase), issue_path(@issue),
+ <%= link_to icon_with_label('del', l(:button_delete_object, object_name: l(:label_issue).downcase)), issue_path(@issue),
:data => {:confirm => issues_destroy_confirmation_message(@issue)},
- :method => :delete, :class => 'icon icon-del' if @issue.deletable? %>
+ :method => :delete, :class => 'icon icon-del ' if @issue.deletable? %>
<% end %>
</div>
diff --git a/app/views/issues/_attributes.html.erb b/app/views/issues/_attributes.html.erb
index 517b67f95..3ee16fc66 100644
--- a/app/views/issues/_attributes.html.erb
+++ b/app/views/issues/_attributes.html.erb
@@ -7,7 +7,7 @@
<%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), {:required => true},
:onchange => "updateIssueFrom('#{escape_javascript(update_issue_form_path(@project, @issue))}', this)",
:title => @issue.status.description %>
- <%= content_tag 'a', l(:label_open_issue_statuses_description), :class => 'icon-only icon-help', :title => l(:label_open_issue_statuses_description), :onclick => "showModal('issue_statuses_description', '500px'); return false;", :href => '#' if @allowed_statuses.any? {|s| s.description.present? } %>
+ <%= content_tag 'a', icon_with_label('help', l(:label_open_issue_statuses_description)), :class => 'icon-only icon-help', :title => l(:label_open_issue_statuses_description), :onclick => "showModal('issue_statuses_description', '500px'); return false;", :href => '#' if @allowed_statuses.any? {|s| s.description.present? } %>
<% if @issue.transition_warning %>
<span class="icon-only icon-warning" title="<%= @issue.transition_warning %>"><%= @issue.transition_warning %></span>
<% end %>
@@ -36,7 +36,7 @@
<p><%= f.select :category_id, category_options,
{:include_blank => true, :required => @issue.required_attribute?('category_id')},
:onchange => ("updateIssueFrom('#{escape_javascript(update_issue_form_path(@project, @issue))}', this)" if @issue.new_record?) %>
-<%= link_to(l(:label_issue_category_new),
+<%= link_to(icon_with_label('add', l(:label_issue_category_new)),
new_project_issue_category_path(@issue.project),
:remote => true,
:method => 'get',
@@ -49,7 +49,7 @@
<% if @issue.safe_attribute?('fixed_version_id') && @issue.assignable_versions.any? %>
<p><%= f.select :fixed_version_id, version_options_for_select(@issue.assignable_versions, @issue.fixed_version),
:include_blank => true, :required => @issue.required_attribute?('fixed_version_id') %>
-<%= link_to(l(:label_version_new),
+<%= link_to(icon_with_label('add', l(:label_version_new)),
new_project_version_path(@issue.project),
:remote => true,
:method => 'get',
diff --git a/app/views/issues/_form.html.erb b/app/views/issues/_form.html.erb
index b1693f7b3..88e7a9a1f 100644
--- a/app/views/issues/_form.html.erb
+++ b/app/views/issues/_form.html.erb
@@ -20,7 +20,7 @@
<%= f.select :tracker_id, trackers_options_for_select(@issue), {:required => true},
:onchange => "updateIssueFrom('#{escape_javascript update_issue_form_path(@project, @issue)}', this)",
:title => @issue.tracker.description %>
- <%= content_tag 'a', l(:label_open_trackers_description), :class => 'icon-only icon-help', :title => l(:label_open_trackers_description), :onclick => "showModal('trackers_description', '500px'); return false;", :href => '#' if trackers_for_select(@issue).any? {|t| t.description.present? } %>
+ <%= content_tag 'a', icon_with_label('help', l(:label_open_trackers_description)), :class => 'icon-only icon-help', :title => l(:label_open_trackers_description), :onclick => "showModal('trackers_description', '500px'); return false;", :href => '#' if trackers_for_select(@issue).any? {|t| t.description.present? } %>
</p>
<%= render partial: 'issues/trackers_description', locals: {trackers: trackers_for_select(@issue)} %>
<% end %>
@@ -40,7 +40,7 @@
},
:no_label => true %>
<% end %>
- <%= link_to_function content_tag(:span, l(:button_edit), :class => 'icon icon-edit'), '$(this).hide(); $("#issue_description_and_toolbar").show()' unless @issue.new_record? %>
+ <%= link_to_function content_tag(:span, icon_with_label('edit', l(:button_edit)), :class => 'icon icon-edit'), '$(this).hide(); $("#issue_description_and_toolbar").show()' unless @issue.new_record? %>
</p>
<%= wikitoolbar_for 'issue_description', preview_issue_path(:project_id => @issue.project, :issue_id => @issue.id) %>
<% end %>
diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb
index 1ab5198a1..5d10f7473 100644
--- a/app/views/issues/index.html.erb
+++ b/app/views/issues/index.html.erb
@@ -1,17 +1,17 @@
<div class="contextual">
<% if User.current.allowed_to?(:add_issues, @project, :global => true) && (@project.nil? || Issue.allowed_target_trackers(@project).any?) %>
- <%= link_to l(:label_issue_new), _new_project_issue_path(@project), :class => 'icon icon-add new-issue' %>
+ <%= link_to icon_with_label('add', l(:label_issue_new)), _new_project_issue_path(@project), :class => 'icon icon-add new-issue' %>
<% end %>
<%= actions_dropdown do %>
<% if @project %>
- <%= link_to l(:field_summary), project_issues_report_path(@project), :class => 'icon icon-stats' %>
+ <%= link_to icon_with_label('summary', l(:field_summary)), project_issues_report_path(@project), :class => 'icon icon-stats' %>
<% end %>
<% if User.current.allowed_to?(:import_issues, @project, :global => true) %>
- <%= link_to l(:button_import), new_issues_import_path(:project_id => @project), :class => 'icon icon-import' %>
+ <%= link_to icon_with_label('import', l(:button_import)), new_issues_import_path(:project_id => @project), :class => 'icon icon-import' %>
<% end %>
- <%= link_to_if_authorized l(:label_settings),
+ <%= link_to_if_authorized icon_with_label('settings', l(:label_settings)),
{:controller => 'projects', :action => 'settings', :id => @project, :tab => 'issues'},
:class => 'icon icon-settings' if User.current.allowed_to?(:edit_project, @project) %>
<% end %>
diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb
index 3b713b4e7..13c1bc632 100644
--- a/app/views/issues/show.html.erb
+++ b/app/views/issues/show.html.erb
@@ -84,7 +84,7 @@ end %>
<hr />
<div class="description">
<div class="contextual">
- <%= link_to l(:button_quote), quoted_issue_path(@issue), :remote => true, :method => 'post', :class => 'icon icon-comment' if @issue.notes_addable? %>
+ <%= link_to icon_with_label('comment', l(:button_quote)), quoted_issue_path(@issue), :remote => true, :method => 'post', :class => 'icon icon-comment ' if @issue.notes_addable? %>
</div>
<p><strong><%=l(:field_description)%></strong></p>
diff --git a/app/views/issues/tabs/_time_entries.html.erb b/app/views/issues/tabs/_time_entries.html.erb
index 1807475bd..039f4b6a4 100644
--- a/app/views/issues/tabs/_time_entries.html.erb
+++ b/app/views/issues/tabs/_time_entries.html.erb
@@ -4,14 +4,14 @@
<% if time_entry.editable_by?(User.current) -%>
<div class="contextual">
<span class="journal-actions">
- <%= link_to l(:button_edit), edit_time_entry_path(time_entry),
+ <%= link_to icon_with_label('edit', l(:button_edit)), edit_time_entry_path(time_entry),
:title => l(:button_edit),
- :class => 'icon-only icon-edit' %>
- <%= link_to l(:button_delete), time_entry_path(time_entry),
+ :class => 'icon-only icon-edit ' %>
+ <%= link_to icon_with_label('del', l(:button_delete)), time_entry_path(time_entry),
:data => {:confirm => l(:text_are_you_sure)},
:method => :delete,
:title => l(:button_delete),
- :class => 'icon-only icon-del' %>
+ :class => 'icon-only icon-del ' %>
</span>
</div>
<% end -%>
@@ -29,4 +29,4 @@
</div>
</div>
<%= call_hook(:view_issues_history_time_entry_bottom, { :time_entry => time_entry }) %>
-<% end %> \ No newline at end of file
+<% end %>
diff --git a/app/views/messages/show.html.erb b/app/views/messages/show.html.erb
index 6c902d087..ba22f713c 100644
--- a/app/views/messages/show.html.erb
+++ b/app/views/messages/show.html.erb
@@ -3,18 +3,18 @@
<div class="contextual">
<%= watcher_link(@topic, User.current) %>
<%= link_to(
- l(:button_quote),
+ icon_with_label('comment', l(:button_quote)),
{:action => 'quote', :id => @topic},
:method => 'get',
:class => 'icon icon-comment',
:remote => true) if !@topic.locked? && authorize_for('messages', 'reply') %>
<%= link_to(
- l(:button_edit),
+ icon_with_label('edit', l(:button_edit)),
{:action => 'edit', :id => @topic},
:class => 'icon icon-edit'
) if @message.editable_by?(User.current) %>
<%= link_to(
- l(:button_delete),
+ icon_with_label('del', l(:button_delete)),
{:action => 'destroy', :id => @topic},
:method => :post,
:data => {:confirm => l(:text_are_you_sure)},
diff --git a/app/views/my/blocks/_issues.erb b/app/views/my/blocks/_issues.erb
index 953b5ed79..beed07224 100644
--- a/app/views/my/blocks/_issues.erb
+++ b/app/views/my/blocks/_issues.erb
@@ -1,5 +1,5 @@
<div class="contextual">
- <%= link_to_function l(:label_options), "$('##{block}-settings').toggle();", :class => 'icon-only icon-settings', :title => l(:label_options) %>
+ <%= link_to_function icon_with_label('settings', l(:label_options)), "$('##{block}-settings').toggle();", :class => 'icon-only icon-settings', :title => l(:label_options) %>
</div>
<h3>
diff --git a/app/views/my/blocks/_timelog.html.erb b/app/views/my/blocks/_timelog.html.erb
index 4736832e2..95dc15e49 100644
--- a/app/views/my/blocks/_timelog.html.erb
+++ b/app/views/my/blocks/_timelog.html.erb
@@ -1,11 +1,11 @@
<div class="contextual">
- <%= link_to_function l(:label_options), "$('#timelog-settings').toggle();", :class => 'icon-only icon-settings', :title => l(:label_options) %>
+ <%= link_to_function icon_with_label('settings', l(:label_options)), "$('#timelog-settings').toggle();", :class => 'icon-only icon-settings', :title => l(:label_options) %>
</div>
<h3>
<%= link_to l(:label_spent_time), time_entries_path(:user_id => 'me') %>
(<%= l(:label_last_n_days, days) %>: <%= l_hours_short entries.sum(&:hours) %>)
- <%= link_to l(:button_log_time), new_time_entry_path, :class => "icon-only icon-add", :title => l(:button_log_time) if User.current.allowed_to?(:log_time, nil, :global => true) %>
+ <%= link_to icon_with_label('add', l(:button_log_time)), new_time_entry_path, :class => "icon-only icon-add", :title => l(:button_log_time) if User.current.allowed_to?(:log_time, nil, :global => true) %>
</h3>
diff --git a/app/views/news/index.html.erb b/app/views/news/index.html.erb
index 64fbe578b..e71506f30 100644
--- a/app/views/news/index.html.erb
+++ b/app/views/news/index.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to(l(:label_news_new),
+<%= link_to(icon_with_label('add', l(:label_news_new)),
(@project ? project_news_index_path(@project) : news_index_path),
:class => 'icon icon-add add-news-link',
:onclick => 'showAndScrollTo("add-news", "news_title"); return false;') if User.current.allowed_to?(:manage_news, @project, global: true) %>
diff --git a/app/views/news/show.html.erb b/app/views/news/show.html.erb
index 9b54a66cb..c05f34976 100644
--- a/app/views/news/show.html.erb
+++ b/app/views/news/show.html.erb
@@ -1,7 +1,7 @@
<%= breadcrumb link_to(l(:label_news_plural), project_news_index_path(@project)) %>
<div class="contextual">
<%= watcher_link(@news, User.current) %>
-<%= link_to(l(:button_edit),
+<%= link_to(icon_with_label('edit', l(:button_edit)),
edit_news_path(@news),
:class => 'icon icon-edit',
:accesskey => accesskey(:edit),
@@ -38,7 +38,7 @@
<% @comments.each do |comment| %>
<% next if comment.new_record? %>
<div class="contextual">
- <%= link_to_if_authorized l(:button_delete), {:controller => 'comments', :action => 'destroy', :id => @news, :comment_id => comment},
+ <%= link_to_if_authorized icon_with_label('del', l(:button_delete)), {:controller => 'comments', :action => 'destroy', :id => @news, :comment_id => comment},
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete,
:title => l(:button_delete),
:class => 'icon-only icon-del' %>
diff --git a/app/views/principal_memberships/_index.html.erb b/app/views/principal_memberships/_index.html.erb
index c55a19543..d6ecaaa40 100644
--- a/app/views/principal_memberships/_index.html.erb
+++ b/app/views/principal_memberships/_index.html.erb
@@ -1,6 +1,6 @@
<% memberships = principal.memberships.preload(:member_roles, :roles).sorted_by_project.to_a %>
-<p><%= link_to l(:label_add_projects), new_principal_membership_path(principal), :remote => true, :class => "icon icon-add" %></p>
+<p><%= link_to icon_with_label('add', l(:label_add_projects)), new_principal_membership_path(principal), :remote => true, :class => "icon icon-add" %></p>
<% if memberships.any? %>
<table class="list memberships">
@@ -22,7 +22,7 @@
<div id="member-<%= membership.id %>-form"></div>
</td>
<td class="buttons">
- <%= link_to l(:button_edit),
+ <%= link_to icon_with_label('edit', l(:button_edit)),
edit_principal_membership_path(principal, membership),
:remote => true,
:class => 'icon icon-edit'
diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb
index d18cf6e47..f783e1daa 100644
--- a/app/views/projects/index.html.erb
+++ b/app/views/projects/index.html.erb
@@ -21,8 +21,8 @@
<% if User.current.logged? %>
<p style="text-align:right;">
-<span class="icon icon-user my-project"><%= l(:label_my_projects) %></span>
-<span class="icon icon-bookmarked-project"><%= l(:label_my_bookmarks) %></span>
+<span class="icon icon-user my-project"><%= icon_with_label('user', l(:label_my_projects)) %></span>
+<span class="icon icon-bookmarked-project"><%= icon_with_label('bookmarked', l(:label_my_bookmarks)) %></span>
</p>
<% end %>
diff --git a/app/views/projects/settings/_activities.html.erb b/app/views/projects/settings/_activities.html.erb
index dce68df2c..12e95c8d9 100644
--- a/app/views/projects/settings/_activities.html.erb
+++ b/app/views/projects/settings/_activities.html.erb
@@ -1,10 +1,10 @@
<div class="contextual">
-<%= link_to(l(:button_reset), project_enumerations_path(@project),
+<%= link_to(icon_with_label('del', l(:button_reset)), project_enumerations_path(@project),
:method => :delete,
:data => {:confirm => l(:text_are_you_sure)},
:class => 'icon icon-del') %>
<% if User.current.admin? %>
-<%= link_to l(:label_administration), enumerations_path, :class => "icon icon-settings" %>
+<%= link_to icon_with_label('settings', l(:label_administration)), enumerations_path, :class => "icon icon-settings" %>
<% end %>
</div>
diff --git a/app/views/projects/settings/_boards.html.erb b/app/views/projects/settings/_boards.html.erb
index bf0b786fd..b5a6f36d6 100644
--- a/app/views/projects/settings/_boards.html.erb
+++ b/app/views/projects/settings/_boards.html.erb
@@ -1,5 +1,5 @@
<% if User.current.allowed_to?(:manage_boards, @project) %>
-<p><%= link_to l(:label_board_new), new_project_board_path(@project), :class => 'icon icon-add' %></p>
+<p><%= link_to icon_with_label('add', l(:label_board_new)), new_project_board_path(@project), :class => 'icon icon-add' %></p>
<% end %>
<% if @project.boards.any? %>
@@ -16,7 +16,7 @@
<div class="table-list-cell buttons">
<% if User.current.allowed_to?(:manage_boards, @project) %>
<%= reorder_handle(board) %>
- <%= link_to l(:button_edit), edit_project_board_path(@project, board), :class => 'icon icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit)), edit_project_board_path(@project, board), :class => 'icon icon-edit' %>
<%= delete_link project_board_path(@project, board) %>
<% end %>
</div>
diff --git a/app/views/projects/settings/_issue_categories.html.erb b/app/views/projects/settings/_issue_categories.html.erb
index 3cd78e387..0123d7ce4 100644
--- a/app/views/projects/settings/_issue_categories.html.erb
+++ b/app/views/projects/settings/_issue_categories.html.erb
@@ -1,4 +1,4 @@
-<p><%= link_to l(:label_issue_category_new), new_project_issue_category_path(@project), :class => 'icon icon-add' if User.current.allowed_to?(:manage_categories, @project) %></p>
+<p><%= link_to icon_with_label('add', l(:label_issue_category_new)), new_project_issue_category_path(@project), :class => 'icon icon-add' if User.current.allowed_to?(:manage_categories, @project) %></p>
<% if @project.issue_categories.any? %>
<table class="list">
@@ -15,7 +15,7 @@
<td><%= category.assigned_to.name if category.assigned_to %></td>
<td class="buttons">
<% if User.current.allowed_to?(:manage_categories, @project) %>
- <%= link_to l(:button_edit), edit_issue_category_path(category), :class => 'icon icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit)), edit_issue_category_path(category), :class => 'icon icon-edit' %>
<%= delete_link issue_category_path(category) %>
<% end %>
</td>
diff --git a/app/views/projects/settings/_issues.html.erb b/app/views/projects/settings/_issues.html.erb
index 4fe977fb8..f7a84cdaa 100644
--- a/app/views/projects/settings/_issues.html.erb
+++ b/app/views/projects/settings/_issues.html.erb
@@ -4,7 +4,7 @@
<% unless @trackers.empty? %>
<fieldset class="box tabular" id="project_trackers"><legend><%= toggle_checkboxes_link('#project_trackers input[type=checkbox]') %><%= l(:label_tracker_plural)%></legend>
<% if User.current.admin? %>
- <div class="contextual"><%= link_to l(:label_administration), trackers_path, :class => "icon icon-settings" %></div>
+ <div class="contextual"><%= link_to icon_with_label('settings', l(:label_administration)), trackers_path, :class => "icon icon-settings" %></div>
<% end %>
<% @trackers.each do |tracker| %>
<label class="floating">
@@ -19,7 +19,7 @@
<% unless @issue_custom_fields.empty? %>
<fieldset class="box tabular" id="project_issue_custom_fields"><legend><%= toggle_checkboxes_link('#project_issue_custom_fields input[type=checkbox]:enabled') %><%=l(:label_custom_field_plural)%></legend>
<% if User.current.admin? %>
- <div class="contextual"><%= link_to l(:label_administration), custom_fields_path, :class => "icon icon-settings" %></div>
+ <div class="contextual"><%= link_to icon_with_label('settings', l(:label_administration)), custom_fields_path, :class => "icon icon-settings" %></div>
<% end %>
<% all_issue_custom_field_ids = @project.all_issue_custom_fields.ids %>
<% @issue_custom_fields.each do |custom_field| %>
diff --git a/app/views/projects/settings/_members.html.erb b/app/views/projects/settings/_members.html.erb
index 811b0051c..0582ef840 100644
--- a/app/views/projects/settings/_members.html.erb
+++ b/app/views/projects/settings/_members.html.erb
@@ -1,9 +1,9 @@
<% members = @project.memberships.preload(:project).sorted.to_a %>
<% if User.current.admin? %>
- <div class="contextual"><%= link_to l(:label_administration), users_path, :class => "icon icon-settings" %></div>
+ <div class="contextual"><%= link_to icon_with_label('settings', l(:label_administration)), users_path, :class => "icon icon-settings" %></div>
<% end %>
-<p><%= link_to l(:label_member_new), new_project_membership_path(@project), :remote => true, :class => "icon icon-add" %></p>
+<p><%= link_to icon_with_label('add', l(:label_member_new)), new_project_membership_path(@project), :remote => true, :class => "icon icon-add" %></p>
<% if members.any? %>
<table class="list members">
@@ -25,7 +25,7 @@
<div id="member-<%= member.id %>-form"></div>
</td>
<td class="buttons">
- <%= link_to l(:button_edit),
+ <%= link_to icon_with_label('edit', l(:button_edit)),
edit_membership_path(member),
:remote => true,
:class => 'icon icon-edit' %>
diff --git a/app/views/projects/settings/_repositories.html.erb b/app/views/projects/settings/_repositories.html.erb
index 8ae2ba25b..db1b992c8 100644
--- a/app/views/projects/settings/_repositories.html.erb
+++ b/app/views/projects/settings/_repositories.html.erb
@@ -1,5 +1,5 @@
<% if User.current.allowed_to?(:manage_repository, @project) %>
- <p><%= link_to l(:label_repository_new), new_project_repository_path(@project), :class => 'icon icon-add' %></p>
+ <p><%= link_to icon_with_label('add', l(:label_repository_new)), new_project_repository_path(@project), :class => 'icon icon-add' %></p>
<% end %>
<% if @project.repositories.any? %>
@@ -26,9 +26,9 @@
<td><%= repository.url %></td>
<td class="buttons">
<% if User.current.allowed_to?(:manage_repository, @project) %>
- <%= link_to(l(:label_user_plural), committers_repository_path(repository),
+ <%= link_to(icon_with_label('user', l(:label_user_plural)), committers_repository_path(repository),
:class => 'icon icon-user') %>
- <%= link_to(l(:button_edit), edit_repository_path(repository),
+ <%= link_to(icon_with_label('edit', l(:button_edit)), edit_repository_path(repository),
:class => 'icon icon-edit') %>
<%= delete_link repository_path(repository) %>
<% end %>
diff --git a/app/views/projects/settings/_versions.html.erb b/app/views/projects/settings/_versions.html.erb
index 80d67cc24..172d6e895 100644
--- a/app/views/projects/settings/_versions.html.erb
+++ b/app/views/projects/settings/_versions.html.erb
@@ -1,10 +1,10 @@
<% if @versions.any? %>
<div class="contextual">
- <%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :class => 'icon icon-locked', :method => :put %>
+ <%= link_to icon_with_label('lock', l(:label_close_versions)), close_completed_project_versions_path(@project), :class => 'icon icon-locked', :method => :put %>
</div>
<% end %>
<p>
- <%= link_to l(:label_version_new), new_project_version_path(@project, :back_url => ''), :class => 'icon icon-add' if User.current.allowed_to?(:manage_versions, @project) %>
+ <%= link_to icon_with_label('add', l(:label_version_new)), new_project_version_path(@project, :back_url => ''), :class => 'icon icon-add' if User.current.allowed_to?(:manage_versions, @project) %>
</p>
<%= form_tag(settings_project_path(@project, :tab => 'versions'), :method => :get) do %>
@@ -14,7 +14,7 @@
<label for='name'><%= l(:label_version) %>:</label>
<%= text_field_tag 'version_name', @version_name, :size => 30 %>
<%= submit_tag l(:button_apply), :name => nil %>
-<%= link_to l(:button_clear), settings_project_path(@project, :tab => 'versions'), :class => 'icon icon-reload' %>
+<%= link_to icon_with_label('reload', l(:button_clear)), settings_project_path(@project, :tab => 'versions'), :class => 'icon icon-reload' %>
</fieldset>
<% end %>
&nbsp;
@@ -43,7 +43,7 @@
<td><%= link_to_if_authorized(version.wiki_page_title, {:controller => 'wiki', :action => 'show', :project_id => version.project, :id => Wiki.titleize(version.wiki_page_title)}) || h(version.wiki_page_title) unless version.wiki_page_title.blank? || version.project.wiki.nil? %></td>
<td class="buttons">
<% if version.project == @project && User.current.allowed_to?(:manage_versions, @project) %>
- <%= link_to l(:button_edit), edit_version_path(version), :class => 'icon icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit)), edit_version_path(version), :class => 'icon icon-edit' %>
<%= delete_link version_path(version) %>
<% end %>
</td>
diff --git a/app/views/projects/show.html.erb b/app/views/projects/show.html.erb
index a1035927f..abb5ec23f 100644
--- a/app/views/projects/show.html.erb
+++ b/app/views/projects/show.html.erb
@@ -3,19 +3,19 @@
<%= actions_dropdown do %>
<% if User.current.allowed_to?(:add_subprojects, @project) %>
- <%= link_to l(:label_subproject_new), new_project_path(:parent_id => @project), :class => 'icon icon-add' %>
+ <%= link_to icon_with_label('add', l(:label_subproject_new)), new_project_path(:parent_id => @project), :class => 'icon icon-add' %>
<% end %>
<% if User.current.allowed_to?(:close_project, @project) %>
<% if @project.active? %>
- <%= link_to l(:button_close), close_project_path(@project), :data => {:confirm => l(:text_project_close_confirmation, @project.to_s)}, :method => :post, :class => 'icon icon-lock' %>
+ <%= link_to icon_with_label('lock', l(:button_close)), close_project_path(@project), :data => {:confirm => l(:text_project_close_confirmation, @project.to_s)}, :method => :post, :class => 'icon icon-lock' %>
<% else %>
- <%= link_to l(:button_reopen), reopen_project_path(@project), :data => {:confirm => l(:text_project_reopen_confirmation, @project.to_s)}, :method => :post, :class => 'icon icon-unlock' %>
+ <%= link_to icon_with_label('unlock', l(:button_reopen)), reopen_project_path(@project), :data => {:confirm => l(:text_project_reopen_confirmation, @project.to_s)}, :method => :post, :class => 'icon icon-unlock' %>
<% end %>
<% end %>
<% if @project.deletable? %>
- <%= link_to l(:button_delete), project_path(@project), :method => :delete, :class => 'icon icon-del' %>
+ <%= link_to icon_with_label('del', l(:button_delete)), project_path(@project), :method => :delete, :class => 'icon icon-del' %>
<% end %>
- <%= link_to_if_authorized l(:label_settings),
+ <%= link_to_if_authorized icon_with_label('settings', l(:label_settings)),
{:controller => 'projects', :action => 'settings', :id => @project},
:class => 'icon icon-settings' if User.current.allowed_to?(:edit_project, @project) %>
<% end %>
@@ -137,7 +137,7 @@
<ul class="subprojects">
<% @subprojects.each do |project| %>
<li><%= link_to(project.name, project_path(project), :class => project.css_classes).html_safe %></li>
- <% end %>
+ <% end %>
</ul>
</div>
<% end %>
diff --git a/app/views/queries/_query_form.html.erb b/app/views/queries/_query_form.html.erb
index f60fa7911..2e9aa0f25 100644
--- a/app/views/queries/_query_form.html.erb
+++ b/app/views/queries/_query_form.html.erb
@@ -53,18 +53,18 @@
</div>
<p class="buttons">
- <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
- <%= link_to l(:button_clear), { :set_filter => 1, :sort => '', :project_id => @project }, :class => 'icon icon-reload' %>
+ <%= link_to_function icon_with_label('checked', l(:button_apply)), '$("#query_form").submit()', :class => 'icon icon-checked' %>
+ <%= link_to icon_with_label('reload', l(:button_clear)), { :set_filter => 1, :sort => '', :project_id => @project }, :class => 'icon icon-reload' %>
<% if @query.new_record? %>
<% if User.current.allowed_to?(:save_queries, @project, :global => true) %>
- <%= link_to_function l(:button_save_object, object_name: l(:label_query).downcase),
+ <%= link_to_function icon_with_label('save', l(:button_save_object, object_name: l(:label_query).downcase)),
"$('#query_type').prop('disabled',false);$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit()",
:class => 'icon icon-save' %>
<% end %>
<% else %>
<% if @query.editable_by?(User.current) %>
<% redirect_params = (controller_name == 'admin' && action_name == 'projects') ? {:admin_projects => 1} : {} %>
- <%= link_to l(:button_edit_object, object_name: l(:label_query).downcase), edit_query_path(@query, redirect_params), :class => 'icon icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit_object, object_name: l(:label_query).downcase)), edit_query_path(@query, redirect_params), :class => 'icon icon-edit' %>
<%= delete_link query_path(@query, redirect_params), {}, l(:button_delete_object, object_name: l(:label_query).downcase) %>
<% end %>
<% end %>
diff --git a/app/views/queries/index.html.erb b/app/views/queries/index.html.erb
index c36c0ca1a..ca336dc41 100644
--- a/app/views/queries/index.html.erb
+++ b/app/views/queries/index.html.erb
@@ -15,7 +15,7 @@
</td>
<td class="buttons">
<% if query.editable_by?(User.current) %>
- <%= link_to l(:button_edit), edit_query_path(query), :class => 'icon icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit)), edit_query_path(query), :class => 'icon icon-edit' %>
<%= delete_link query_path(query) %>
<% end %>
</td>
diff --git a/app/views/repositories/_navigation.html.erb b/app/views/repositories/_navigation.html.erb
index 6653909d1..c897f91b1 100644
--- a/app/views/repositories/_navigation.html.erb
+++ b/app/views/repositories/_navigation.html.erb
@@ -11,15 +11,15 @@
:rev => @rev}, class: 'icon icon-download') %>
<% end %>
-<%= link_to l(:label_statistics),
+<%= link_to icon_with_label('stats', l(:label_statistics)),
{:action => 'stats', :id => @project, :repository_id => @repository.identifier_param},
:class => 'icon icon-stats' if @repository.supports_history? %>
<%= actions_dropdown do %>
- <%= link_to_if_authorized l(:label_settings),
+ <%= link_to_if_authorized icon_with_label('settings', l(:label_settings)),
{:controller => 'projects', :action => 'settings', :id => @project, :tab => 'repositories'},
:class => 'icon icon-settings' if User.current.allowed_to?(:manage_repository, @project) %>
- <%= link_to l(:button_fetch_changesets),
+ <%= link_to icon_with_label('reload', l(:button_fetch_changesets)),
{:action => :fetch_changesets, :id => @project, :repository_id => @repository.identifier_param},
:class => 'icon icon-reload', :method => :post if User.current.allowed_to?(:manage_repository, @project) && !Setting.autofetch_changesets? %>
<% end %>
@@ -32,21 +32,21 @@
{:method => :get, :id => 'revision_selector'}) do -%>
<!-- Branches Dropdown -->
<% if !@repository.branches.nil? && @repository.branches.length > 0 -%>
- | <%= l(:label_branch) %>:
+ | <%= l(:label_branch) %>:
<%= select_tag :branch,
options_for_select([''] + @repository.branches, @rev),
:id => 'branch' %>
<% end -%>
<% if !@repository.tags.nil? && @repository.tags.length > 0 -%>
- | <%= l(:label_tag) %>:
+ | <%= l(:label_tag) %>:
<%= select_tag :tag,
options_for_select([''] + @repository.tags, @rev),
:id => 'tag' %>
<% end -%>
<% if @repository.supports_history? %>
- | <%= l(:label_revision) %>:
+ | <%= l(:label_revision) %>:
<%= text_field_tag 'rev', @rev, :size => 8 %>
<% end %>
<% end -%>
diff --git a/app/views/repositories/_related_issues.html.erb b/app/views/repositories/_related_issues.html.erb
index a90fbc3b6..0da1c3369 100644
--- a/app/views/repositories/_related_issues.html.erb
+++ b/app/views/repositories/_related_issues.html.erb
@@ -11,7 +11,7 @@
<ul>
<% @changeset.issues.visible.each do |issue| %>
<li id="<%= "related-issue-#{issue.id}" %>"><%= link_to_issue issue %>
- <%= link_to(l(:label_relation_delete),
+ <%= link_to(icon_with_label('link-break', l(:label_relation_delete)),
{:controller => 'repositories', :action => 'remove_related_issue',
:id => @project, :repository_id => @repository.identifier_param,
:rev => @changeset.identifier, :issue_id => issue},
diff --git a/app/views/roles/index.html.erb b/app/views/roles/index.html.erb
index f76e90466..1c001cae4 100644
--- a/app/views/roles/index.html.erb
+++ b/app/views/roles/index.html.erb
@@ -1,6 +1,6 @@
<div class="contextual">
-<%= link_to l(:label_role_new), new_role_path, :class => 'icon icon-add' %>
-<%= link_to l(:label_permissions_report), permissions_roles_path, :class => 'icon icon-summary' %>
+<%= link_to icon_with_label('add', l(:label_role_new)), new_role_path, :class => 'icon icon-add' %>
+<%= link_to icon_with_label('summary', l(:label_permissions_report)), permissions_roles_path, :class => 'icon icon-summary' %>
</div>
<h2><%=l(:label_role_plural)%></h2>
@@ -24,7 +24,7 @@
</td>
<td class="buttons">
<%= reorder_handle(role) unless role.builtin? %>
- <%= link_to l(:button_copy), new_role_path(:copy => role), :class => 'icon icon-copy' %>
+ <%= link_to icon_with_label('copy', l(:button_copy)), new_role_path(:copy => role), :class => 'icon icon-copy' %>
<%= delete_link role_path(role) unless role.builtin? %>
</td>
</tr>
diff --git a/app/views/settings/_repositories.html.erb b/app/views/settings/_repositories.html.erb
index f89a27944..d06c9c6e1 100644
--- a/app/views/settings/_repositories.html.erb
+++ b/app/views/settings/_repositories.html.erb
@@ -132,7 +132,7 @@
<td></td>
<td></td>
<td class="buttons">
- <%= link_to(l(:button_add), '#',
+ <%= link_to(icon_with_label('add', l(:button_add)), '#',
:class => 'add-commit-keywords icon-only icon-add',
:title => l(:button_add)) %>
</td>
diff --git a/app/views/timelog/_list.html.erb b/app/views/timelog/_list.html.erb
index af8dd1fa5..f0e14418f 100644
--- a/app/views/timelog/_list.html.erb
+++ b/app/views/timelog/_list.html.erb
@@ -38,10 +38,10 @@
<% end %>
<td class="buttons">
<% if entry.editable_by?(User.current) -%>
- <%= link_to l(:button_edit), edit_time_entry_path(entry),
+ <%= link_to icon_with_label('edit', l(:button_edit)), edit_time_entry_path(entry),
:title => l(:button_edit),
:class => 'icon-only icon-edit' %>
- <%= link_to l(:button_delete), time_entry_path(entry),
+ <%= link_to icon_with_label('del', l(:button_delete)), time_entry_path(entry),
:data => {:confirm => l(:text_are_you_sure)},
:method => :delete,
:title => l(:button_delete),
diff --git a/app/views/timelog/index.html.erb b/app/views/timelog/index.html.erb
index ec7580b9a..9259c97b6 100644
--- a/app/views/timelog/index.html.erb
+++ b/app/views/timelog/index.html.erb
@@ -1,13 +1,13 @@
<div class="contextual">
-<%= link_to l(:button_log_time),
+<%= link_to icon_with_label('time', l(:button_log_time)),
_new_time_entry_path(@project, @query.filtered_issue_id),
:class => 'icon icon-time-add' if User.current.allowed_to?(:log_time, @project, :global => true) %>
<%= actions_dropdown do %>
<% if User.current.allowed_to?(:import_time_entries, @project, :global => true) %>
- <%= link_to l(:button_import), new_time_entries_import_path(:project_id => @project), :class => 'icon icon-import' %>
+ <%= link_to icon_with_label('import', l(:button_import)), new_time_entries_import_path(:project_id => @project), :class => 'icon icon-import' %>
<% end %>
- <%= link_to_if_authorized l(:label_settings),
+ <%= link_to_if_authorized icon_with_label('settings', l(:label_settings)),
{:controller => 'projects', :action => 'settings', :id => @project, :tab => 'activities'},
:class => 'icon icon-settings' if User.current.allowed_to?(:manage_project_activities, @project) %>
<% end %>
diff --git a/app/views/trackers/index.html.erb b/app/views/trackers/index.html.erb
index 84093e943..40739a443 100644
--- a/app/views/trackers/index.html.erb
+++ b/app/views/trackers/index.html.erb
@@ -1,6 +1,6 @@
<div class="contextual">
-<%= link_to l(:label_tracker_new), new_tracker_path, :class => 'icon icon-add' %>
-<%= link_to l(:field_summary), fields_trackers_path, :class => 'icon icon-summary' %>
+<%= link_to icon_with_label('add', l(:label_tracker_new)), new_tracker_path, :class => 'icon icon-add' %>
+<%= link_to icon_with_label('summary', l(:field_summary)), fields_trackers_path, :class => 'icon icon-summary' %>
</div>
<h2><%=l(:label_tracker_plural)%></h2>
@@ -28,7 +28,7 @@
</td>
<td class="buttons">
<%= reorder_handle(tracker) %>
- <%= link_to l(:button_copy), new_tracker_path(:copy => tracker), :class => 'icon icon-copy' %>
+ <%= link_to icon_with_label('copy', l(:button_copy)), new_tracker_path(:copy => tracker), :class => 'icon icon-copy' %>
<%= delete_link tracker_path(tracker) %>
</td>
</tr>
diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb
index 9071dba19..2211d6707 100644
--- a/app/views/users/index.html.erb
+++ b/app/views/users/index.html.erb
@@ -1,8 +1,8 @@
<div class="contextual">
-<%= link_to l(:label_user_new), new_user_path, :class => 'icon icon-add' %>
+<%= link_to icon_with_label('add', l(:label_user_new)), new_user_path, :class => 'icon icon-add' %>
<%= actions_dropdown do %>
<% if User.current.allowed_to?(:import_users, nil, :global => true) %>
- <%= link_to l(:button_import), new_users_import_path, :class => 'icon icon-import' %>
+ <%= link_to icon_with_label('import', l(:button_import)), new_users_import_path, :class => 'icon icon-import' %>
<% end %>
<% end %>
</div>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index 16a6c3414..7ff252945 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -1,5 +1,5 @@
<div class="contextual">
-<%= link_to(l(:button_edit), edit_user_path(@user), :class => 'icon icon-edit') if User.current.admin? && @user.logged? %>
+<%= link_to(icon_with_label('edit', l(:button_edit)), edit_user_path(@user), :class => 'icon icon-edit') if User.current.admin? && @user.logged? %>
</div>
<h2><%= avatar @user, :size => "50" %> <%= @user.name %></h2>
diff --git a/app/views/versions/index.html.erb b/app/views/versions/index.html.erb
index 382133e93..fdaff1657 100644
--- a/app/views/versions/index.html.erb
+++ b/app/views/versions/index.html.erb
@@ -1,8 +1,8 @@
<div class="contextual">
- <%= link_to(l(:label_version_new), new_project_version_path(@project),
+ <%= link_to(icon_with_label('add', l(:label_version_new)), new_project_version_path(@project),
:class => 'icon icon-add') if User.current.allowed_to?(:manage_versions, @project) %>
<%= actions_dropdown do %>
- <%= link_to_if_authorized l(:label_settings),
+ <%= link_to_if_authorized icon_with_label('settings', l(:label_settings)),
{:controller => 'projects', :action => 'settings', :id => @project, :tab => 'versions'},
:class => 'icon icon-settings' if User.current.allowed_to?(:manage_versions, @project) %>
<% end %>
@@ -18,7 +18,7 @@
<article class="version-article <%= version.css_classes %>">
<% if User.current.allowed_to?(:manage_versions, version.project) %>
<div class="contextual">
- <%= link_to l(:button_edit), edit_version_path(version), :title => l(:button_edit), :class => 'icon-only icon-edit' %>
+ <%= link_to icon_with_label('edit', l(:button_edit)), edit_version_path(version), :title => l(:button_edit), :class => 'icon-only icon-edit' %>
</div>
<% end %>
<header>
diff --git a/app/views/wiki/_sidebar.html.erb b/app/views/wiki/_sidebar.html.erb
index e849919c4..e0ed4f360 100644
--- a/app/views/wiki/_sidebar.html.erb
+++ b/app/views/wiki/_sidebar.html.erb
@@ -1,7 +1,7 @@
<% if User.current.allowed_to?(:edit_wiki_pages, @project) &&
(@wiki && @wiki.find_or_new_page('Sidebar').editable_by?(User.current)) %>
<div class="contextual">
- <%= link_to l(:button_edit), edit_project_wiki_page_path(@project, 'sidebar'),
+ <%= link_to icon_with_label('edit', l(:button_edit)), edit_project_wiki_page_path(@project, 'sidebar'),
:class => 'icon icon-edit' %>
</div>
<% end -%>
diff --git a/app/views/wiki/annotate.html.erb b/app/views/wiki/annotate.html.erb
index 1b48f5db8..d717992cc 100644
--- a/app/views/wiki/annotate.html.erb
+++ b/app/views/wiki/annotate.html.erb
@@ -1,6 +1,6 @@
<div class="contextual">
-<%= link_to(l(:button_edit), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit') %>
-<%= link_to(l(:label_history),
+<%= link_to(icon_with_label('edit', l(:button_edit)), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit') %>
+<%= link_to(icon_with_label('history', l(:label_history)),
{:action => 'history', :id => @page.title}, :class => 'icon icon-history') %>
</div>
diff --git a/app/views/wiki/date_index.html.erb b/app/views/wiki/date_index.html.erb
index 496411b7f..b58ae1fcb 100644
--- a/app/views/wiki/date_index.html.erb
+++ b/app/views/wiki/date_index.html.erb
@@ -1,6 +1,6 @@
<div class="contextual">
<% if User.current.allowed_to?(:edit_wiki_pages, @project) %>
-<%= link_to l(:label_wiki_page_new), new_project_wiki_page_path(@project), :remote => true, :class => 'icon icon-add' %>
+<%= link_to icon_with_label('add', l(:label_wiki_page_new)), new_project_wiki_page_path(@project), :remote => true, :class => 'icon icon-add' %>
<% end %>
<%= watcher_link(@wiki, User.current) %>
<% if User.current.allowed_to?(:manage_wiki, @project) %>
diff --git a/app/views/wiki/index.html.erb b/app/views/wiki/index.html.erb
index 3c7f55dab..0a44639fe 100644
--- a/app/views/wiki/index.html.erb
+++ b/app/views/wiki/index.html.erb
@@ -1,10 +1,10 @@
<div class="contextual">
<% if User.current.allowed_to?(:edit_wiki_pages, @project) %>
-<%= link_to l(:label_wiki_page_new), new_project_wiki_page_path(@project), :remote => true, :class => 'icon icon-add' %>
+<%= link_to icon_with_label('add', l(:label_wiki_page_new)), new_project_wiki_page_path(@project), :remote => true, :class => 'icon icon-add' %>
<% end %>
<%= watcher_link(@wiki, User.current) %>
<% if User.current.allowed_to?(:manage_wiki, @project) %>
-<%= link_to l(:button_delete), {:controller => 'wikis', :action => 'destroy', :id => @project}, :class => 'icon icon-del' %>
+<%= link_to icon_with_label('del', l(:button_delete)), {:controller => 'wikis', :action => 'destroy', :id => @project}, :class => 'icon icon-del' %>
<% end %>
</div>
diff --git a/app/views/wiki/show.html.erb b/app/views/wiki/show.html.erb
index be0d7355a..8acb0abdc 100644
--- a/app/views/wiki/show.html.erb
+++ b/app/views/wiki/show.html.erb
@@ -2,27 +2,27 @@
<% if @editable %>
<% if @content.current_version? %>
- <%= link_to_if_authorized(l(:button_edit), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit', :accesskey => accesskey(:edit)) %>
+ <%= link_to_if_authorized(icon_with_label('edit', l(:button_edit)), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit', :accesskey => accesskey(:edit)) %>
<%= watcher_link(@page, User.current) %>
<% end %>
<% end %>
<%= actions_dropdown do %>
- <%= link_to_if_authorized(l(:label_history), {:action => 'history', :id => @page.title}, :class => 'icon icon-history') %>
+ <%= link_to_if_authorized(icon_with_label('history', l(:label_history)), {:action => 'history', :id => @page.title}, :class => 'icon icon-history') %>
<% if @editable %>
<% if @content.current_version? %>
- <%= link_to_if_authorized(l(:button_lock), {:action => 'protect', :id => @page.title, :protected => 1}, :method => :post, :class => 'icon icon-lock') if !@page.protected? %>
- <%= link_to_if_authorized(l(:button_unlock), {:action => 'protect', :id => @page.title, :protected => 0}, :method => :post, :class => 'icon icon-unlock') if @page.protected? %>
- <%= link_to_if_authorized(l(:button_rename), {:action => 'rename', :id => @page.title}, :class => 'icon icon-move') %>
- <%= link_to_if_authorized(l(:button_delete), {:action => 'destroy', :id => @page.title}, :method => :delete, :data => {:confirm => l(:text_are_you_sure)}, :class => 'icon icon-del') %>
+ <%= link_to_if_authorized(icon_with_label('lock', l(:button_lock)), {:action => 'protect', :id => @page.title, :protected => 1}, :method => :post, :class => 'icon icon-lock') if !@page.protected? %>
+ <%= link_to_if_authorized(icon_with_label('unlock', l(:button_unlock)), {:action => 'protect', :id => @page.title, :protected => 0}, :method => :post, :class => 'icon icon-unlock') if @page.protected? %>
+ <%= link_to_if_authorized(icon_with_label('move', l(:button_rename)), {:action => 'rename', :id => @page.title}, :class => 'icon icon-move') %>
+ <%= link_to_if_authorized(icon_with_label('del', l(:button_delete)), {:action => 'destroy', :id => @page.title}, :method => :delete, :data => {:confirm => l(:text_are_you_sure)}, :class => 'icon icon-del') %>
<% else %>
- <%= link_to_if_authorized(l(:button_rollback), {:action => 'edit', :id => @page.title, :version => @content.version }, :class => 'icon icon-cancel') %>
+ <%= link_to_if_authorized(icon_with_label('cancel', l(:button_rollback)), {:action => 'edit', :id => @page.title, :version => @content.version }, :class => 'icon icon-cancel') %>
<% end %>
<% end %>
<% if User.current.allowed_to?(:edit_wiki_pages, @project) %>
- <%= link_to l(:label_wiki_page_new), new_project_wiki_page_path(@project, :parent => @page.title), :remote => true, :class => 'icon icon-add' %>
+ <%= link_to icon_with_label('add', l(:label_wiki_page_new)), new_project_wiki_page_path(@project, :parent => @page.title), :remote => true, :class => 'icon icon-add' %>
<% end %>
<% end %>
</div>
diff --git a/app/views/workflows/_action_menu.html.erb b/app/views/workflows/_action_menu.html.erb
index 6961b2776..71677ecf8 100644
--- a/app/views/workflows/_action_menu.html.erb
+++ b/app/views/workflows/_action_menu.html.erb
@@ -1,4 +1,4 @@
<div class="contextual">
-<%= link_to l(:button_copy), {:action => 'copy'}, :class => 'icon icon-copy' %>
-<%= link_to l(:field_summary), {:action => 'index'}, :class => 'icon icon-summary' %>
+<%= link_to icon_with_label('copy', l(:button_copy)), {:action => 'copy'}, :class => 'icon icon-copy' %>
+<%= link_to icon_with_label('summary', l(:field_summary)), {:action => 'index'}, :class => 'icon icon-summary' %>
</div>