Alexander Ebert [Mon, 22 Aug 2022 13:50:07 +0000 (15:50 +0200)]
Overhauled the trophy badges
This commit includes a few different changes that are tied together:
(1) Changed the icon data format from `<string>\0<boolean>` to `<string>;<boolean>`, because browser refuse to submit null bytes.
(2) Completely rewrote the badge editor to use inline buttons instead of a dialog (avoids bad a11y caused by dialogs in dialogs).
Alexander Ebert [Sat, 20 Aug 2022 17:48:27 +0000 (19:48 +0200)]
Convert legacy icons
Alexander Ebert [Sat, 20 Aug 2022 17:24:14 +0000 (19:24 +0200)]
Convert legacy icons
Alexander Ebert [Sat, 20 Aug 2022 16:39:24 +0000 (18:39 +0200)]
Fade out disabled icons
Alexander Ebert [Fri, 19 Aug 2022 16:49:39 +0000 (18:49 +0200)]
Convert legacy icons
Alexander Ebert [Fri, 19 Aug 2022 15:50:54 +0000 (17:50 +0200)]
Replace legacy icons
Alexander Ebert [Thu, 18 Aug 2022 18:48:10 +0000 (20:48 +0200)]
Synchronize the templates
Alexander Ebert [Thu, 18 Aug 2022 18:46:21 +0000 (20:46 +0200)]
Apply the default text color to icons inside `.columnIcon`
Alexander Ebert [Thu, 18 Aug 2022 17:57:15 +0000 (19:57 +0200)]
Convert legacy icons
Alexander Ebert [Thu, 18 Aug 2022 16:41:28 +0000 (18:41 +0200)]
Simplify and convert the rating form field
Alexander Ebert [Thu, 18 Aug 2022 16:39:07 +0000 (18:39 +0200)]
Merge branch 'master' into font-awesome-6-migration
Alexander Ebert [Wed, 17 Aug 2022 18:39:18 +0000 (20:39 +0200)]
Add support for Font Awesome v6 icons in the admin panel menu
Alexander Ebert [Wed, 17 Aug 2022 17:33:36 +0000 (19:33 +0200)]
Fix the icon validation, better JSON data structure
The previous data structure was a plain string array with 1.8k elements. Using an associative array with a useless value allows a much faster lookup using `isset()` rather than `\in_array()`.
Alexander Ebert [Wed, 17 Aug 2022 16:58:16 +0000 (18:58 +0200)]
Convert the Font Awesome helper
Alexander Ebert [Wed, 17 Aug 2022 11:26:48 +0000 (13:26 +0200)]
Replace legacy icons
Alexander Ebert [Tue, 16 Aug 2022 15:19:07 +0000 (17:19 +0200)]
Use the non-solid style for `users`
Alexander Ebert [Tue, 16 Aug 2022 15:18:18 +0000 (17:18 +0200)]
Use `solid` style if it is requested and there is a non-solid version
This change will only force the `solid` style when it is requested and there is a non-solid variant.
Alexander Ebert [Tue, 16 Aug 2022 15:07:58 +0000 (17:07 +0200)]
Replace icon aliases with their primary name
Alexander Ebert [Tue, 16 Aug 2022 14:48:56 +0000 (16:48 +0200)]
Remove the `solid` flag when not required
Alexander Ebert [Tue, 16 Aug 2022 14:21:59 +0000 (16:21 +0200)]
Remove the explicit `solid` flag for icons that don‘t require it
Alexander Ebert [Tue, 16 Aug 2022 14:10:06 +0000 (16:10 +0200)]
Make solid an opt-in flag, disallow writing to `name` and `solid`
Force the usage of `setIcon()` to set the desired icon.
Marcel Werk [Tue, 16 Aug 2022 12:23:26 +0000 (14:23 +0200)]
Remove outdated gravatar-related columns from sql query
Marcel Werk [Tue, 16 Aug 2022 09:59:56 +0000 (11:59 +0200)]
Merge pull request #4962 from WoltLab/user-object-watch-overhaul
Overhaul of the user object watch button
Alexander Ebert [Mon, 15 Aug 2022 18:17:20 +0000 (20:17 +0200)]
Replace legacy icons
Alexander Ebert [Mon, 15 Aug 2022 17:25:20 +0000 (19:25 +0200)]
Allow toggle actions to contain an icon
Alexander Ebert [Mon, 15 Aug 2022 17:20:02 +0000 (19:20 +0200)]
Use Font Awesome 6 in file uploads
Marcel Werk [Mon, 15 Aug 2022 16:36:45 +0000 (18:36 +0200)]
Applied code suggestions
Marcel Werk [Mon, 15 Aug 2022 16:31:51 +0000 (18:31 +0200)]
Apply suggestions from code review
Co-authored-by: Alexander Ebert <ebert@woltlab.com>
Marcel Werk [Mon, 15 Aug 2022 16:24:03 +0000 (18:24 +0200)]
Merge pull request #4954 from WoltLab/page-object-cache
Add cache for page objects in menus
Marcel Werk [Mon, 15 Aug 2022 14:29:37 +0000 (16:29 +0200)]
Disable text selection in dropdown menus
Marcel Werk [Mon, 15 Aug 2022 14:18:47 +0000 (16:18 +0200)]
Overhaul of the user object watch button
Alexander Ebert [Mon, 15 Aug 2022 14:13:45 +0000 (16:13 +0200)]
Remove the legacy icon class
Alexander Ebert [Mon, 15 Aug 2022 13:44:46 +0000 (15:44 +0200)]
Add a custom spinner icon
Alexander Ebert [Sat, 13 Aug 2022 19:32:22 +0000 (21:32 +0200)]
Overhaul the message share providers and buttons
Alexander Ebert [Sat, 13 Aug 2022 18:31:41 +0000 (20:31 +0200)]
Replace legacy icons
Alexander Ebert [Sat, 13 Aug 2022 09:07:32 +0000 (11:07 +0200)]
Fix the property name for CSS classes
Alexander Ebert [Fri, 12 Aug 2022 19:32:10 +0000 (21:32 +0200)]
Use a native button element instead
Alexander Ebert [Fri, 12 Aug 2022 16:06:08 +0000 (18:06 +0200)]
Replace legacy icons
Alexander Ebert [Fri, 12 Aug 2022 15:40:34 +0000 (17:40 +0200)]
Replace legacy icon usage
Alexander Ebert [Fri, 12 Aug 2022 15:02:09 +0000 (17:02 +0200)]
Replace legacy icons in TypeScript
Alexander Ebert [Fri, 12 Aug 2022 14:38:26 +0000 (16:38 +0200)]
Replace legacy icons in JS files
Alexander Ebert [Fri, 12 Aug 2022 14:37:49 +0000 (16:37 +0200)]
Replace legacy icons in JS files
Alexander Ebert [Fri, 12 Aug 2022 14:36:28 +0000 (16:36 +0200)]
Replace legacy icons in ACP templates
Alexander Ebert [Fri, 12 Aug 2022 14:36:14 +0000 (16:36 +0200)]
Replace legacy icons in templates
Alexander Ebert [Fri, 12 Aug 2022 14:47:05 +0000 (16:47 +0200)]
Add typing support for the icon elements
Alexander Ebert [Thu, 11 Aug 2022 14:37:26 +0000 (16:37 +0200)]
Improve the code clarity
Co-authored-by: Tim Düsterhus <duesterhus@woltlab.com>
Alexander Ebert [Thu, 11 Aug 2022 13:58:56 +0000 (15:58 +0200)]
Enable the CLI functionality of the migration script
Alexander Ebert [Thu, 11 Aug 2022 13:36:58 +0000 (15:36 +0200)]
Enable the migration of templates again
Alexander Ebert [Thu, 11 Aug 2022 12:25:59 +0000 (14:25 +0200)]
Add support for icon migrations in JS/TS files
The JSON blob was moved back into the code flow, because the IDE broke when using `__halt_compiler()`.
Alexander Ebert [Wed, 10 Aug 2022 20:08:28 +0000 (22:08 +0200)]
Incorrect use of the `{icon}` helper for the `regular` style
Alexander Ebert [Wed, 10 Aug 2022 18:11:21 +0000 (20:11 +0200)]
Add prototype for a migration script
Alexander Ebert [Wed, 10 Aug 2022 20:08:46 +0000 (22:08 +0200)]
Add support for icon aliases
Alexander Ebert [Wed, 10 Aug 2022 16:27:30 +0000 (18:27 +0200)]
Restore the original user panel template
The extra icons were introduced for development purposes only.
Alexander Ebert [Wed, 10 Aug 2022 16:26:16 +0000 (18:26 +0200)]
Optimize the metadata JS
All free fonts have a `solid` variant, therefore we only need a flag to indicate if an icon _also_ has a free `regular` variant.
Alexander Ebert [Wed, 10 Aug 2022 15:06:40 +0000 (17:06 +0200)]
Clean up the old icon implementation
- Removed the TTF font files
- Removed the “brands” font (served using individual SVGs)
- Removed the shims for Font Awesome v4
- Remove the variables
- Render legacy `.icon` elements using a white question mark inside a purple box to make those easy to spot
- Define all icon variable names using an empty string to prevent compiler errors from unresolved variables.
Alexander Ebert [Wed, 10 Aug 2022 11:03:01 +0000 (13:03 +0200)]
Mark the icons as decorative only
Alexander Ebert [Wed, 10 Aug 2022 10:58:35 +0000 (12:58 +0200)]
Improve the behavior of the `<fa-icon>` name attribute
Alexander Ebert [Wed, 10 Aug 2022 10:53:37 +0000 (12:53 +0200)]
Handle changes to the requested size of an icon
Alexander Ebert [Tue, 9 Aug 2022 15:55:40 +0000 (17:55 +0200)]
Add the `setIcon()` method for `<fa-icon>`
Alexander Ebert [Tue, 9 Aug 2022 15:44:20 +0000 (17:44 +0200)]
Add the typings for the icon web components
Alexander Ebert [Tue, 9 Aug 2022 15:33:26 +0000 (17:33 +0200)]
Add support for changes to the icon name and FA6 Pro
Alexander Ebert [Tue, 9 Aug 2022 14:29:00 +0000 (16:29 +0200)]
Remove the `regular` flag of `<fa-icon>`
Tim Düsterhus [Tue, 9 Aug 2022 14:12:48 +0000 (16:12 +0200)]
Fix tsconfig.json for WebComponents
Alexander Ebert [Tue, 9 Aug 2022 13:55:48 +0000 (15:55 +0200)]
Fix the workflow for TypeScript checks
Alexander Ebert [Tue, 9 Aug 2022 13:03:56 +0000 (15:03 +0200)]
Split the TypeScript proejcts
Alexander Ebert [Tue, 9 Aug 2022 13:00:13 +0000 (15:00 +0200)]
Move the brand icons into a separate `<fa-brand>` element
Alexander Ebert [Mon, 8 Aug 2022 16:22:37 +0000 (18:22 +0200)]
Add the `--build` flag for the nested `tsconfig.json`
Alexander Ebert [Mon, 8 Aug 2022 16:15:38 +0000 (18:15 +0200)]
Register the extra `tsconfig.json` with ESLint
Alexander Ebert [Mon, 8 Aug 2022 16:13:22 +0000 (18:13 +0200)]
Rename the global helper function for the icon metadata
Alexander Ebert [Mon, 8 Aug 2022 16:06:49 +0000 (18:06 +0200)]
Add method `setIcon` to change the icon on runtime
Alexander Ebert [Mon, 8 Aug 2022 15:14:39 +0000 (17:14 +0200)]
Expose the Font Awesome codepoints to JavaScript
Alexander Ebert [Mon, 8 Aug 2022 12:37:39 +0000 (14:37 +0200)]
Add experimental support for `<fa-icon>`
Tim Düsterhus [Mon, 8 Aug 2022 10:37:36 +0000 (12:37 +0200)]
Mark Font Awesome SVGs as linguist-generated
Alexander Ebert [Mon, 8 Aug 2022 10:00:29 +0000 (12:00 +0200)]
Add the '{icon}' template helper to embed Font Awesome icons
Alexander Ebert [Mon, 8 Aug 2022 09:59:51 +0000 (11:59 +0200)]
Add Font Awesome 6.1.2 brand icons as SVG
Alexander Ebert [Fri, 5 Aug 2022 16:21:35 +0000 (18:21 +0200)]
Reduce the icon font size to match FA4
Alexander Ebert [Fri, 5 Aug 2022 15:58:58 +0000 (17:58 +0200)]
Remove the dynamic scaling of the ACP menu icon
It was always a bit of a gimmick, but introduces some noise to the page and the icons generally become blurry when scaled.
Alexander Ebert [Fri, 5 Aug 2022 15:56:29 +0000 (17:56 +0200)]
Reduce the size of the admin panel menu icons
Tim Düsterhus [Fri, 5 Aug 2022 13:44:22 +0000 (15:44 +0200)]
Add Font Awesome 6.1.2 assets
Tim Düsterhus [Tue, 7 Dec 2021 09:07:06 +0000 (10:07 +0100)]
Add Font Awesome 6.0.0-beta3 assets
Alexander Ebert [Sat, 13 Nov 2021 13:04:59 +0000 (14:04 +0100)]
Extract the icon names from the changed file path
Alexander Ebert [Fri, 12 Nov 2021 15:44:17 +0000 (16:44 +0100)]
Re-introduced icon helpers and the animated spinner
Alexander Ebert [Fri, 12 Nov 2021 12:16:47 +0000 (13:16 +0100)]
Applied the code style for SCSS files
Alexander Ebert [Fri, 12 Nov 2021 12:16:17 +0000 (13:16 +0100)]
Default icon color
Alexander Ebert [Fri, 12 Nov 2021 12:05:11 +0000 (13:05 +0100)]
Consistent icon width equal to 1.25 times the height
Tim Düsterhus [Fri, 1 Oct 2021 14:37:34 +0000 (16:37 +0200)]
Use icon sizes that are multiples of 16px
Tim Düsterhus [Fri, 1 Oct 2021 14:06:59 +0000 (16:06 +0200)]
Use FA 4 CSS for icon sizes
Tim Düsterhus [Fri, 1 Oct 2021 14:06:26 +0000 (16:06 +0200)]
Overwrite fa-size-scale-base
Tim Düsterhus [Fri, 1 Oct 2021 12:43:57 +0000 (14:43 +0200)]
Fix `.icon` compatibility by extending `.fas`
Some CSS rules were missing before.
Tim Düsterhus [Fri, 1 Oct 2021 10:15:17 +0000 (12:15 +0200)]
Add .prettierignore for font-awesome SCSS
Tim Düsterhus [Fri, 1 Oct 2021 10:10:49 +0000 (12:10 +0200)]
Add custom Font Awesome compatibility layer
Tim Düsterhus [Fri, 1 Oct 2021 10:10:22 +0000 (12:10 +0200)]
Remove Font Awesome 4
Tim Düsterhus [Fri, 1 Oct 2021 08:56:13 +0000 (10:56 +0200)]
Add Font Awesome 6.0.0-beta2 assets
Alexander Ebert [Fri, 12 Aug 2022 19:25:45 +0000 (21:25 +0200)]
Set the `pointer` cursor for buttons
Alexander Ebert [Fri, 12 Aug 2022 19:15:05 +0000 (21:15 +0200)]
Merge pull request #4955 from WoltLab/button-explicit-styling
Permit the use of the native `<button>` element
Alexander Ebert [Fri, 12 Aug 2022 16:16:14 +0000 (18:16 +0200)]
Update the compiled JS files
Marcel Werk [Fri, 12 Aug 2022 15:46:00 +0000 (17:46 +0200)]
Add cache for page objects in menus
If several articles were linked in the menu, this led to a lot of SQL queries.
Tim Düsterhus [Fri, 12 Aug 2022 13:08:54 +0000 (15:08 +0200)]
Merge branch '5.5'
Alexander Ebert [Fri, 12 Aug 2022 12:52:07 +0000 (14:52 +0200)]
Merge pull request #4953 from WoltLab/group-permission-check
Remove broken check for UserGroupPermissionCache consistency
Tim Düsterhus [Fri, 12 Aug 2022 12:22:37 +0000 (14:22 +0200)]
Remove broken check for UserGroupPermissionCache consistency
The purpose of this check is not entirely clear, as it exists since the very
first commit in git. Back then it was not yet broken, it got broken when the
caching system was refactored to reorder parameters, probably in order to
improve the cache hit rates:
When running the `worker`s using the CLI interface, for some reason, the cache
for guests gets rebuilt with the `$parameters` array (and thus by extension the
`groupIDs` value) being equal to `[2, 1]`, whereas everywhere else the
`$parameters` are consistently `[1, 2]`.
Now when rebuilding the data via the CLI, the cache will have the `[2, 1]`
order and when reloading the cache in a regular HTTP session this check will
fail, as `[2, 1] != [1, 2]`, thus completely disregarding the cache contents
and using an empty permissions array instead. This in turn leads to guests not
being able to access anything.
Fix this by removing the safety check:
- It's exceedingly unlikely for two unrelated `$parameters` to collide in the
cache filename, thus applying incorrect permissions.
- If the CacheBuilder itself is buggy, then all bets are off anyway.