Repository navigation
Font Awesome Modernization
sebiboga edited this page Aug 16, 2026
·
1 revision
Modernize TestLink UI from legacy GIF icons to Font Awesome icons.
Partial Completion
- Template icons modernized (containerViewTestSuiteTextButtons.inc.tpl, containerView.tpl)
- Smarty integration updated (tlsmarty.inc.php refactored)
- Modern icon approach implemented in templates
- Drag-and-drop folder tree system modernization
Before:
<img src="images/add.gif" />
<img src="images/delete.gif" />After:
<i class="fas fa-plus-circle"></i>
<i class="fas fa-times-circle"></i>- gui/templates/dashio/testcases/include/containerViewTestSuiteTextButtons.inc.tpl
- gui/templates/dashio/testcases/containerView.tpl
- Plus/Add:
fa-plus-circle - Delete:
fa-times-circle - Edit:
fa-pencil-alt - Copy/Move:
fa-copy - Export:
fa-file-export - Import:
fa-file-import - Report/Document:
fa-book - Settings/Cog:
fa-cog
The drag-and-drop folder tree system (/gui/drag_and_drop/) still uses legacy GIF icons:
- dhtmlgoodies_folder.gif
- dhtmlgoodies_plus.gif
- dhtmlgoodies_minus.gif
- dhtmlgoodies_sheet.gif
- folder_close.gif, folder_open.gif
- And 8+ more GIF files
-
gui/drag_and_drop/js/drag-drop-folder-tree.js
- Replace hardcoded GIF references with CSS classes
- Update image loading logic
-
gui/drag_and_drop/css/drag-drop-folder-tree.css
- Add Font Awesome styling via ::before pseudo-elements
- Remove image-based styling
-
gui/drag_and_drop/js/context-menu.js
- Review and update if necessary
Option 1: Font Awesome Migration
// Old
this.folderImage = 'dhtmlgoodies_folder.gif';
this.plusImage = 'dhtmlgoodies_plus.gif';
// New
this.folderClass = 'fa-folder';
this.expandClass = 'fa-plus';Option 2: CSS-Based Icons
.folder-icon::before {
content: '\f07b'; /* Font Awesome folder */
font-family: 'Font Awesome 6 Free';
}- Cleaner, scalable UI
- Reduced HTTP requests
- Better theme integration
- Responsive icon sizing
- Consistent icon system across entire UI
- Eliminating 64+ legacy GIF files
- Better performance
- Modern design language
gui/drag_and_drop/
├── images/
│ ├── dhtmlgoodies_folder.gif
│ ├── dhtmlgoodies_plus.gif
│ ├── dhtmlgoodies_minus.gif
│ └── ... (10+ more GIF files)
├── css/
│ └── drag-drop-folder-tree.css
└── js/
├── drag-drop-folder-tree.js
└── context-menu.js
gui/drag_and_drop/
├── images/
│ └── [removed - use Font Awesome instead]
├── css/
│ └── drag-drop-folder-tree.css (Font Awesome styling)
└── js/
├── drag-drop-folder-tree.js (updated)
└── context-menu.js (if needed)
Current: Font Awesome 6.2.0
Available Icons:
- Folders:
fa-folder,fa-folder-open,fa-folder-plus - Trees:
fa-tree,fa-sitemap - Documents:
fa-file,fa-file-alt - Navigation:
fa-chevron-right,fa-chevron-down,fa-plus,fa-minus
- Test drag-and-drop with Font Awesome icons
- Update JavaScript to use CSS classes instead of image URLs
- Update CSS for icon styling
- Verify functionality in all browsers
- Remove legacy GIF files
- Test context menus
- Test keyboard navigation
- Performance testing
To complete this modernization:
- Create updated drag-drop-folder-tree.js with CSS class support
- Update drag-drop-folder-tree.css with Font Awesome styling
- Comprehensive testing of drag-and-drop functionality
- Remove legacy GIF files from version control
- Update build/deployment scripts if needed
- Font Awesome Icons
- Font Awesome Free License
- Developer-Guide - Development setup
Status: 🔄 Partial
Issue: #139
Completed: 2 of 3 areas
Priority: Medium (functionality, not blocking)
Recommended: Complete as part of next UI refresh