Project

General

Profile

Actions

Patch #42966

closed

Replace legacy loader.gif with SVG icon in attachment upload form and in ajax indicator

Added by Mizuki ISHIKAWA 3 months ago. Updated 1 day ago.

Status:
Closed
Priority:
Normal
Category:
UI
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

This patch replaces the existing loading.gif with an SVG-based loading icon using Tabler Icons' loader-2 (https://tabler.io/icons/icon/loader-2).
The original loading.gif was an animated GIF that rotated, and the SVG replacement replicates this behavior using CSS animation.

Since this change affects various parts of the UI, the update has been split into multiple patches as follows:

0001-Replace-loading-and-hourglass-icons-with-SVG-version.patch

Replaces loading.gif and hourglass.gif shown during file uploads.
Demo:

0002-Replace-autocomplete-input-loading-icon-with-SVG.patch

Replaces loading.gif shown during autocomplete inputs (e.g., parent_id).
Also moves the search icon from inside the input field to outside, consistent with the file upload UI.

Demo:

0003-Replace-ajax-indicator-loading-icon-with-SVG.patch

Replaces loading.gif inside the Ajax indicator element.

0004-Replace-sort-handle-loading-icon-with-SVG.patch

Replaces loading.gif shown in sorting UIs (e.g., Enumerations, Trackers).

0005-Replace-loading-icon-with-SVG-during-CSV-import.patch

Replaces loading.gif shown during CSV import.


Files


Related issues

Related to Redmine - Patch #43219: Replace legacy loader.gif with SVG icon in autocomplete inputNew

Actions
Actions #1

Updated by Marius BĂLTEANU 3 months ago

  • Assignee set to Marius BĂLTEANU
Actions #2

Updated by Marius BĂLTEANU 3 months ago

  • Target version set to 6.1.0

Thanks Mizuki for the nice work, I will the patches in the following days.

Actions #3

Updated by Michael M 2 months ago

hello, just a question, is this a good idea? SVGs are know in the security community as extremely dangerous as they can contain embedded code for remote execution etc. This would create another layer of potential attack for redmine installations.

Just a question.
Some basic information about the issue from CloudFlares blog: https://www.cloudflare.com/en-gb/threat-intelligence/research/report/svgs-the-hackers-canvas/

Actions #4

Updated by Go MAEDA about 2 months ago

Michael M wrote in #note-3:

hello, just a question, is this a good idea? SVGs are know in the security community as extremely dangerous as they can contain embedded code for remote execution etc. This would create another layer of potential attack for redmine installations.

Thank you for raising this point.

However, in this case, Redmine uses only a bundled SVG image that is included in the official Redmine distribution. This image is trusted and does not contain scripts or any malicious contents, as shown in the patch file 0001-Replace-loading-and-hourglass-icons-with-SVG-version.patch.

Therefore, I believe that this series of patches does not pose the kind of risk described in the article.

Actions #5

Updated by Marius BĂLTEANU 3 days ago

  • Subject changed from Replace legacy loader.gif with SVG icon to Replace legacy loader.gif with SVG icon in attachment upload form and in ajax indicator
Actions #6

Updated by Marius BĂLTEANU 3 days ago

  • Tracker changed from Defect to Patch
  • Affected version deleted (6.0.4)
Actions #7

Updated by Marius BĂLTEANU 3 days ago

  • Related to Patch #43219: Replace legacy loader.gif with SVG icon in autocomplete input added
Actions #8

Updated by Marius BĂLTEANU 3 days ago

  • Status changed from New to Resolved

I've committed only the first and the third patch, thanks!

For the second and for the fourth I've opened new issues to handle them in 7.0.0. I don't think that adding so many JS lines just to handle the loader is worth it.

For the last one, I'm not able to reproduce the change.

Actions #9

Updated by Marius BĂLTEANU 1 day ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF