GitHub/WoltLab/WCF.git
2 years agoOverhauled the trophy badges
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).

2 years agoConvert legacy icons
Alexander Ebert [Sat, 20 Aug 2022 17:48:27 +0000 (19:48 +0200)]
Convert legacy icons

2 years agoConvert legacy icons
Alexander Ebert [Sat, 20 Aug 2022 17:24:14 +0000 (19:24 +0200)]
Convert legacy icons

2 years agoFade out disabled icons
Alexander Ebert [Sat, 20 Aug 2022 16:39:24 +0000 (18:39 +0200)]
Fade out disabled icons

2 years agoConvert legacy icons
Alexander Ebert [Fri, 19 Aug 2022 16:49:39 +0000 (18:49 +0200)]
Convert legacy icons

2 years agoReplace legacy icons
Alexander Ebert [Fri, 19 Aug 2022 15:50:54 +0000 (17:50 +0200)]
Replace legacy icons

2 years agoSynchronize the templates
Alexander Ebert [Thu, 18 Aug 2022 18:48:10 +0000 (20:48 +0200)]
Synchronize the templates

2 years agoApply the default text color to icons inside `.columnIcon`
Alexander Ebert [Thu, 18 Aug 2022 18:46:21 +0000 (20:46 +0200)]
Apply the default text color to icons inside `.columnIcon`

2 years agoConvert legacy icons
Alexander Ebert [Thu, 18 Aug 2022 17:57:15 +0000 (19:57 +0200)]
Convert legacy icons

2 years agoSimplify and convert the rating form field
Alexander Ebert [Thu, 18 Aug 2022 16:41:28 +0000 (18:41 +0200)]
Simplify and convert the rating form field

2 years agoMerge branch 'master' into font-awesome-6-migration
Alexander Ebert [Thu, 18 Aug 2022 16:39:07 +0000 (18:39 +0200)]
Merge branch 'master' into font-awesome-6-migration

2 years agoAdd support for Font Awesome v6 icons in the admin panel menu
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

2 years agoFix the icon validation, better JSON data structure
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()`.

2 years agoConvert the Font Awesome helper
Alexander Ebert [Wed, 17 Aug 2022 16:58:16 +0000 (18:58 +0200)]
Convert the Font Awesome helper

2 years agoReplace legacy icons
Alexander Ebert [Wed, 17 Aug 2022 11:26:48 +0000 (13:26 +0200)]
Replace legacy icons

2 years agoUse the non-solid style for `users`
Alexander Ebert [Tue, 16 Aug 2022 15:19:07 +0000 (17:19 +0200)]
Use the non-solid style for `users`

2 years agoUse `solid` style if it is requested and there is a non-solid version
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.

2 years agoReplace icon aliases with their primary name
Alexander Ebert [Tue, 16 Aug 2022 15:07:58 +0000 (17:07 +0200)]
Replace icon aliases with their primary name

2 years agoRemove the `solid` flag when not required
Alexander Ebert [Tue, 16 Aug 2022 14:48:56 +0000 (16:48 +0200)]
Remove the `solid` flag when not required

2 years agoRemove the explicit `solid` flag for icons that don‘t require it
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

2 years agoMake solid an opt-in flag, disallow writing to `name` and `solid`
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.

2 years agoRemove outdated gravatar-related columns from sql query
Marcel Werk [Tue, 16 Aug 2022 12:23:26 +0000 (14:23 +0200)]
Remove outdated gravatar-related columns from sql query

2 years agoMerge pull request #4962 from WoltLab/user-object-watch-overhaul
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

2 years agoReplace legacy icons
Alexander Ebert [Mon, 15 Aug 2022 18:17:20 +0000 (20:17 +0200)]
Replace legacy icons

2 years agoAllow toggle actions to contain an icon
Alexander Ebert [Mon, 15 Aug 2022 17:25:20 +0000 (19:25 +0200)]
Allow toggle actions to contain an icon

2 years agoUse Font Awesome 6 in file uploads
Alexander Ebert [Mon, 15 Aug 2022 17:20:02 +0000 (19:20 +0200)]
Use Font Awesome 6 in file uploads

2 years agoApplied code suggestions
Marcel Werk [Mon, 15 Aug 2022 16:36:45 +0000 (18:36 +0200)]
Applied code suggestions

2 years agoApply suggestions from code review
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>
2 years agoMerge pull request #4954 from WoltLab/page-object-cache
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

2 years agoDisable text selection in dropdown menus
Marcel Werk [Mon, 15 Aug 2022 14:29:37 +0000 (16:29 +0200)]
Disable text selection in dropdown menus

2 years agoOverhaul of the user object watch button
Marcel Werk [Mon, 15 Aug 2022 14:18:47 +0000 (16:18 +0200)]
Overhaul of the user object watch button

2 years agoRemove the legacy icon class
Alexander Ebert [Mon, 15 Aug 2022 14:13:45 +0000 (16:13 +0200)]
Remove the legacy icon class

2 years agoAdd a custom spinner icon
Alexander Ebert [Mon, 15 Aug 2022 13:44:46 +0000 (15:44 +0200)]
Add a custom spinner icon

2 years agoOverhaul the message share providers and buttons
Alexander Ebert [Sat, 13 Aug 2022 19:32:22 +0000 (21:32 +0200)]
Overhaul the message share providers and buttons

2 years agoReplace legacy icons
Alexander Ebert [Sat, 13 Aug 2022 18:31:41 +0000 (20:31 +0200)]
Replace legacy icons

2 years agoFix the property name for CSS classes
Alexander Ebert [Sat, 13 Aug 2022 09:07:32 +0000 (11:07 +0200)]
Fix the property name for CSS classes

2 years agoUse a native button element instead
Alexander Ebert [Fri, 12 Aug 2022 19:32:10 +0000 (21:32 +0200)]
Use a native button element instead

2 years agoReplace legacy icons
Alexander Ebert [Fri, 12 Aug 2022 16:06:08 +0000 (18:06 +0200)]
Replace legacy icons

2 years agoReplace legacy icon usage
Alexander Ebert [Fri, 12 Aug 2022 15:40:34 +0000 (17:40 +0200)]
Replace legacy icon usage

2 years agoReplace legacy icons in TypeScript
Alexander Ebert [Fri, 12 Aug 2022 15:02:09 +0000 (17:02 +0200)]
Replace legacy icons in TypeScript

2 years agoReplace legacy icons in JS files
Alexander Ebert [Fri, 12 Aug 2022 14:38:26 +0000 (16:38 +0200)]
Replace legacy icons in JS files

2 years agoReplace legacy icons in JS files
Alexander Ebert [Fri, 12 Aug 2022 14:37:49 +0000 (16:37 +0200)]
Replace legacy icons in JS files

2 years agoReplace legacy icons in ACP templates
Alexander Ebert [Fri, 12 Aug 2022 14:36:28 +0000 (16:36 +0200)]
Replace legacy icons in ACP templates

2 years agoReplace legacy icons in templates
Alexander Ebert [Fri, 12 Aug 2022 14:36:14 +0000 (16:36 +0200)]
Replace legacy icons in templates

2 years agoAdd typing support for the icon elements
Alexander Ebert [Fri, 12 Aug 2022 14:47:05 +0000 (16:47 +0200)]
Add typing support for the icon elements

2 years agoImprove the code clarity
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>
2 years agoEnable the CLI functionality of the migration script
Alexander Ebert [Thu, 11 Aug 2022 13:58:56 +0000 (15:58 +0200)]
Enable the CLI functionality of the migration script

2 years agoEnable the migration of templates again
Alexander Ebert [Thu, 11 Aug 2022 13:36:58 +0000 (15:36 +0200)]
Enable the migration of templates again

2 years agoAdd support for icon migrations in JS/TS files
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()`.

2 years agoIncorrect use of the `{icon}` helper for the `regular` style
Alexander Ebert [Wed, 10 Aug 2022 20:08:28 +0000 (22:08 +0200)]
Incorrect use of the `{icon}` helper for the `regular` style

2 years agoAdd prototype for a migration script
Alexander Ebert [Wed, 10 Aug 2022 18:11:21 +0000 (20:11 +0200)]
Add prototype for a migration script

2 years agoAdd support for icon aliases
Alexander Ebert [Wed, 10 Aug 2022 20:08:46 +0000 (22:08 +0200)]
Add support for icon aliases

2 years agoRestore the original user panel template
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.

2 years agoOptimize the metadata JS
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.

2 years agoClean up the old icon implementation
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.

2 years agoMark the icons as decorative only
Alexander Ebert [Wed, 10 Aug 2022 11:03:01 +0000 (13:03 +0200)]
Mark the icons as decorative only

2 years agoImprove the behavior of the `<fa-icon>` name attribute
Alexander Ebert [Wed, 10 Aug 2022 10:58:35 +0000 (12:58 +0200)]
Improve the behavior of the `<fa-icon>` name attribute

2 years agoHandle changes to the requested size of an icon
Alexander Ebert [Wed, 10 Aug 2022 10:53:37 +0000 (12:53 +0200)]
Handle changes to the requested size of an icon

2 years agoAdd the `setIcon()` method for `<fa-icon>`
Alexander Ebert [Tue, 9 Aug 2022 15:55:40 +0000 (17:55 +0200)]
Add the `setIcon()` method for `<fa-icon>`

2 years agoAdd the typings for the icon web components
Alexander Ebert [Tue, 9 Aug 2022 15:44:20 +0000 (17:44 +0200)]
Add the typings for the icon web components

2 years agoAdd support for changes to the icon name and FA6 Pro
Alexander Ebert [Tue, 9 Aug 2022 15:33:26 +0000 (17:33 +0200)]
Add support for changes to the icon name and FA6 Pro

2 years agoRemove the `regular` flag of `<fa-icon>`
Alexander Ebert [Tue, 9 Aug 2022 14:29:00 +0000 (16:29 +0200)]
Remove the `regular` flag of `<fa-icon>`

2 years agoFix tsconfig.json for WebComponents
Tim Düsterhus [Tue, 9 Aug 2022 14:12:48 +0000 (16:12 +0200)]
Fix tsconfig.json for WebComponents

2 years agoFix the workflow for TypeScript checks
Alexander Ebert [Tue, 9 Aug 2022 13:55:48 +0000 (15:55 +0200)]
Fix the workflow for TypeScript checks

2 years agoSplit the TypeScript proejcts
Alexander Ebert [Tue, 9 Aug 2022 13:03:56 +0000 (15:03 +0200)]
Split the TypeScript proejcts

2 years agoMove the brand icons into a separate `<fa-brand>` element
Alexander Ebert [Tue, 9 Aug 2022 13:00:13 +0000 (15:00 +0200)]
Move the brand icons into a separate `<fa-brand>` element

2 years agoAdd the `--build` flag for the nested `tsconfig.json`
Alexander Ebert [Mon, 8 Aug 2022 16:22:37 +0000 (18:22 +0200)]
Add the `--build` flag for the nested `tsconfig.json`

2 years agoRegister the extra `tsconfig.json` with ESLint
Alexander Ebert [Mon, 8 Aug 2022 16:15:38 +0000 (18:15 +0200)]
Register the extra `tsconfig.json` with ESLint

2 years agoRename the global helper function for the icon metadata
Alexander Ebert [Mon, 8 Aug 2022 16:13:22 +0000 (18:13 +0200)]
Rename the global helper function for the icon metadata

2 years agoAdd method `setIcon` to change the icon on runtime
Alexander Ebert [Mon, 8 Aug 2022 16:06:49 +0000 (18:06 +0200)]
Add method `setIcon` to change the icon on runtime

2 years agoExpose the Font Awesome codepoints to JavaScript
Alexander Ebert [Mon, 8 Aug 2022 15:14:39 +0000 (17:14 +0200)]
Expose the Font Awesome codepoints to JavaScript

2 years agoAdd experimental support for `<fa-icon>`
Alexander Ebert [Mon, 8 Aug 2022 12:37:39 +0000 (14:37 +0200)]
Add experimental support for `<fa-icon>`

2 years agoMark Font Awesome SVGs as linguist-generated
Tim Düsterhus [Mon, 8 Aug 2022 10:37:36 +0000 (12:37 +0200)]
Mark Font Awesome SVGs as linguist-generated

2 years agoAdd the '{icon}' template helper to embed Font Awesome icons
Alexander Ebert [Mon, 8 Aug 2022 10:00:29 +0000 (12:00 +0200)]
Add the '{icon}' template helper to embed Font Awesome icons

2 years agoAdd Font Awesome 6.1.2 brand icons as SVG
Alexander Ebert [Mon, 8 Aug 2022 09:59:51 +0000 (11:59 +0200)]
Add Font Awesome 6.1.2 brand icons as SVG

2 years agoReduce the icon font size to match FA4
Alexander Ebert [Fri, 5 Aug 2022 16:21:35 +0000 (18:21 +0200)]
Reduce the icon font size to match FA4

2 years agoRemove the dynamic scaling of the ACP menu icon
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.

2 years agoReduce the size of the admin panel menu icons
Alexander Ebert [Fri, 5 Aug 2022 15:56:29 +0000 (17:56 +0200)]
Reduce the size of the admin panel menu icons

2 years agoAdd Font Awesome 6.1.2 assets
Tim Düsterhus [Fri, 5 Aug 2022 13:44:22 +0000 (15:44 +0200)]
Add Font Awesome 6.1.2 assets

2 years agoAdd Font Awesome 6.0.0-beta3 assets
Tim Düsterhus [Tue, 7 Dec 2021 09:07:06 +0000 (10:07 +0100)]
Add Font Awesome 6.0.0-beta3 assets

2 years agoExtract the icon names from the changed file path
Alexander Ebert [Sat, 13 Nov 2021 13:04:59 +0000 (14:04 +0100)]
Extract the icon names from the changed file path

2 years agoRe-introduced icon helpers and the animated spinner
Alexander Ebert [Fri, 12 Nov 2021 15:44:17 +0000 (16:44 +0100)]
Re-introduced icon helpers and the animated spinner

2 years agoApplied the code style for SCSS files
Alexander Ebert [Fri, 12 Nov 2021 12:16:47 +0000 (13:16 +0100)]
Applied the code style for SCSS files

2 years agoDefault icon color
Alexander Ebert [Fri, 12 Nov 2021 12:16:17 +0000 (13:16 +0100)]
Default icon color

2 years agoConsistent icon width equal to 1.25 times the height
Alexander Ebert [Fri, 12 Nov 2021 12:05:11 +0000 (13:05 +0100)]
Consistent icon width equal to 1.25 times the height

2 years agoUse icon sizes that are multiples of 16px
Tim Düsterhus [Fri, 1 Oct 2021 14:37:34 +0000 (16:37 +0200)]
Use icon sizes that are multiples of 16px

2 years agoUse FA 4 CSS for icon sizes
Tim Düsterhus [Fri, 1 Oct 2021 14:06:59 +0000 (16:06 +0200)]
Use FA 4 CSS for icon sizes

2 years agoOverwrite fa-size-scale-base
Tim Düsterhus [Fri, 1 Oct 2021 14:06:26 +0000 (16:06 +0200)]
Overwrite fa-size-scale-base

2 years agoFix `.icon` compatibility by extending `.fas`
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.

2 years agoAdd .prettierignore for font-awesome SCSS
Tim Düsterhus [Fri, 1 Oct 2021 10:15:17 +0000 (12:15 +0200)]
Add .prettierignore for font-awesome SCSS

2 years agoAdd custom Font Awesome compatibility layer
Tim Düsterhus [Fri, 1 Oct 2021 10:10:49 +0000 (12:10 +0200)]
Add custom Font Awesome compatibility layer

2 years agoRemove Font Awesome 4
Tim Düsterhus [Fri, 1 Oct 2021 10:10:22 +0000 (12:10 +0200)]
Remove Font Awesome 4

2 years agoAdd Font Awesome 6.0.0-beta2 assets
Tim Düsterhus [Fri, 1 Oct 2021 08:56:13 +0000 (10:56 +0200)]
Add Font Awesome 6.0.0-beta2 assets

2 years agoSet the `pointer` cursor for buttons
Alexander Ebert [Fri, 12 Aug 2022 19:25:45 +0000 (21:25 +0200)]
Set the `pointer` cursor for buttons

2 years agoMerge pull request #4955 from WoltLab/button-explicit-styling
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

2 years agoUpdate the compiled JS files
Alexander Ebert [Fri, 12 Aug 2022 16:16:14 +0000 (18:16 +0200)]
Update the compiled JS files

2 years agoAdd cache for page objects in menus
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.

2 years agoMerge branch '5.5'
Tim Düsterhus [Fri, 12 Aug 2022 13:08:54 +0000 (15:08 +0200)]
Merge branch '5.5'

2 years agoMerge pull request #4953 from WoltLab/group-permission-check
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

2 years agoRemove 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.