Reduce repository size: remove FontAwesome (2.7 MB, 4 icons) and dead KingTable code (~200 KB)
Context
The repo is ~5.7 MB. Two chunks totalling ~3.0 MB (≈52%) can be removed with no framework change and no functional change, other than swapping four icons to Nextcloud-native equivalents. This issue is scoped to be low-risk and independently shippable.
Best landed after the testing/CI issue so the change is verified by CI, and before the @nextcloud/vue migration issue.
Part A — Delete dead KingTable code (zero behaviour change)
KingTable is shipped but imported nowhere; Tabulator is the table library actually in use across all data views. Confirmed: no references in js/src/*.js, templates/, js/webpack.config.js, js/package.json, or Makefile.
Part B — Remove FontAwesome, replace 4 icons with native
FontAwesome ships 2.7 MB of fonts + a 67 KB stylesheet but is used for only 4 distinct icons in 9 places.
B1 — Replace the icon usages
Suggested mapping to Nextcloud core icon-* CSS classes (these theme automatically and work in both PHP templates and JS-generated HTML strings). Verify each visually on the live instance — swap to an inline MDI SVG if any class doesn't match in the target NC version.
| FontAwesome |
Native class |
Meaning |
| fa fa-calendar |
icon-calendar-dark |
date-range picker trigger |
| fa fa-caret-down |
icon-triangle-s |
date-range picker caret |
| fa fa-edit |
icon-rename |
table row edit button |
| fas fa-folder |
icon-folder |
Select2 placeholder |
Exact locations to change:
PHP templates (calendar + caret-down, the date-range picker header):
JS (edit icon in Tabulator column formatters — HTML strings):
JS (folder placeholder):
B2 — Remove the assets and the include
Definition of Done
Testing (live instance)
Load each view and confirm the icons render and there are no 404s (for removed webfonts/all.css) or console errors:
Reduce repository size: remove FontAwesome (2.7 MB, 4 icons) and dead KingTable code (~200 KB)
Context
The repo is ~5.7 MB. Two chunks totalling ~3.0 MB (≈52%) can be removed with no framework change and no functional change, other than swapping four icons to Nextcloud-native equivalents. This issue is scoped to be low-risk and independently shippable.
Part A — Delete dead KingTable code (zero behaviour change)
KingTableis shipped but imported nowhere;Tabulatoris the table library actually in use across all data views. Confirmed: no references injs/src/*.js,templates/,js/webpack.config.js,js/package.json, orMakefile.js/src/kingtable.js(130 KB)css/kingtable.css(73 KB)kingtable/KingTableto confirm nothing else references itPart B — Remove FontAwesome, replace 4 icons with native
FontAwesome ships 2.7 MB of fonts + a 67 KB stylesheet but is used for only 4 distinct icons in 9 places.
B1 — Replace the icon usages
Suggested mapping to Nextcloud core
icon-*CSS classes (these theme automatically and work in both PHP templates and JS-generated HTML strings). Verify each visually on the live instance — swap to an inline MDI SVG if any class doesn't match in the target NC version.Exact locations to change:
PHP templates (calendar + caret-down, the date-range picker header):
templates/content/reports.php:24-25templates/content/dashboard.php:13-14templates/content/index.php:60-61templates/content/timelines.php:47-48JS (edit icon in Tabulator column formatters — HTML strings):
js/src/tags.js:94js/src/timelines-admin.js:97js/src/clients.js:104js/src/goals.js:98JS (folder placeholder):
js/src/timer.js:435B2 — Remove the assets and the include
style('timetracker', 'all');fromtemplates/index.php:5css/all.css(67 KB, FontAwesome CSS)webfonts/directory (2.7 MB)fa fa-/fas fa-/far fa-/webfonts/all.cssreferencesDefinition of Done
webfonts/,css/all.css,css/kingtable.css,js/src/kingtable.jsdeletedstyle('timetracker','all')removed fromtemplates/index.phpnpm run build(webpack) succeeds with no new errorsTesting (live instance)
Load each view and confirm the icons render and there are no 404s (for removed
webfonts/all.css) or console errors:templates/content/index.php): date-range picker shows calendar + caret icons; manual-entry dialog openswebfonts/*orcss/all.css, no new JS errorsicon-*classes should adapt automatically)