GitHub/WoltLab/WCF.git
16 months agoMerge pull request #5468 from WoltLab/autoload-revert
Tim Düsterhus [Wed, 3 May 2023 14:08:57 +0000 (16:08 +0200)]
Merge pull request #5468 from WoltLab/autoload-revert

Remove `file_exists()` check from production autoloader

16 months agoRemove `file_exists()` check from production autoloader
Tim Düsterhus [Wed, 3 May 2023 13:05:35 +0000 (15:05 +0200)]
Remove `file_exists()` check from production autoloader

Resolves #5002

16 months agoIncrease the default font weight of section and page titles
Alexander Ebert [Wed, 3 May 2023 14:01:02 +0000 (16:01 +0200)]
Increase the default font weight of section and page titles

16 months agoUse new generic share button position
Marcel Werk [Wed, 3 May 2023 12:49:20 +0000 (14:49 +0200)]
Use new generic share button position

16 months agoSuppress the forced alignment of elements on desktop
Alexander Ebert [Wed, 3 May 2023 12:44:47 +0000 (14:44 +0200)]
Suppress the forced alignment of elements on desktop

The change 33420e94314be013a48d6fecb1a8a38c1635e6d1 was targeted at touch devices, but affected desktop environments too.

16 months agoUpdate CKEditor npm dependencies
Tim Düsterhus [Wed, 3 May 2023 12:01:33 +0000 (14:01 +0200)]
Update CKEditor npm dependencies

16 months agoForce a synchronous recalculation of the position
Alexander Ebert [Wed, 3 May 2023 09:33:09 +0000 (11:33 +0200)]
Force a synchronous recalculation of the position

The inconsistent updates add a lot of visual noice when scrolling the page.

16 months agoFix the tooltip position and alignment of the date picker
Alexander Ebert [Wed, 3 May 2023 08:50:29 +0000 (10:50 +0200)]
Fix the tooltip position and alignment of the date picker

Fixes #5214

16 months agoMerge pull request #5465 from WoltLab/migrate-poll-api
Alexander Ebert [Tue, 2 May 2023 13:22:16 +0000 (15:22 +0200)]
Merge pull request #5465 from WoltLab/migrate-poll-api

Use the new poll API in inline editor, integrate with CKEditor 5

16 months agoMerge branch '5.5'
Tim Düsterhus [Tue, 2 May 2023 10:16:28 +0000 (12:16 +0200)]
Merge branch '5.5'

16 months agoAdd missing “Address” for “Email Address” in wcf.user.email in en.xml
Tim Düsterhus [Tue, 2 May 2023 10:15:40 +0000 (12:15 +0200)]
Add missing “Address” for “Email Address” in wcf.user.email in en.xml

Fixes #5466

16 months agoUpdate composer dependencies
Tim Düsterhus [Tue, 2 May 2023 08:54:22 +0000 (10:54 +0200)]
Update composer dependencies

16 months agoMerge pull request #5467 from SoftCreatR/bugfix/language-import-el
Tim Düsterhus [Tue, 2 May 2023 08:08:22 +0000 (10:08 +0200)]
Merge pull request #5467 from SoftCreatR/bugfix/language-import-el

Fix LanguageImportForm

16 months agoFixed LanguageImportForm
Sascha Greuel [Mon, 1 May 2023 18:34:14 +0000 (20:34 +0200)]
Fixed LanguageImportForm

The LanguageImported listener requires an object of type `wcf\data\language\Language`, but receives an object of type `wcf\data\language\LanguageEditor`.

16 months agoFix the poll bar colors in dark mode
Alexander Ebert [Fri, 28 Apr 2023 14:46:21 +0000 (16:46 +0200)]
Fix the poll bar colors in dark mode

Fixes #5432

16 months agoSync the templates for the poll options form field
Alexander Ebert [Fri, 28 Apr 2023 14:32:01 +0000 (16:32 +0200)]
Sync the templates for the poll options form field

16 months agoInject poll data into the editor’s meta data
Alexander Ebert [Fri, 28 Apr 2023 14:03:27 +0000 (16:03 +0200)]
Inject poll data into the editor’s meta data

16 months agoMerge remote-tracking branch 'origin/master'
Tim Düsterhus [Fri, 28 Apr 2023 14:02:57 +0000 (16:02 +0200)]
Merge remote-tracking branch 'origin/master'

16 months agoMerge branch '5.5'
Tim Düsterhus [Fri, 28 Apr 2023 14:02:26 +0000 (16:02 +0200)]
Merge branch '5.5'

16 months agoMerge branch '5.4' into 5.5
Tim Düsterhus [Fri, 28 Apr 2023 14:01:11 +0000 (16:01 +0200)]
Merge branch '5.4' into 5.5

16 months agoUpdate to `actions/upload-artifact@v3` in wcfsetup.yml
Tim Düsterhus [Fri, 28 Apr 2023 14:00:48 +0000 (16:00 +0200)]
Update to `actions/upload-artifact@v3` in wcfsetup.yml

This is required, because node.js 12 actions are deprecated.

16 months agoRemove the legacy poll implementation
Alexander Ebert [Fri, 28 Apr 2023 13:30:09 +0000 (15:30 +0200)]
Remove the legacy poll implementation

16 months agoMigrate the inline poll management to the newer API
Alexander Ebert [Fri, 28 Apr 2023 13:29:33 +0000 (15:29 +0200)]
Migrate the inline poll management to the newer API

16 months agoDiscard the draft before destroying the editor instance
Alexander Ebert [Fri, 28 Apr 2023 13:56:23 +0000 (15:56 +0200)]
Discard the draft before destroying the editor instance

Fixes #5462

16 months agoImplement mention support for user groups
Alexander Ebert [Fri, 28 Apr 2023 12:24:55 +0000 (14:24 +0200)]
Implement mention support for user groups

Fixes #5439

16 months agoRemove an obsolete reference to a previous status code
Alexander Ebert [Thu, 27 Apr 2023 17:21:27 +0000 (19:21 +0200)]
Remove an obsolete reference to a previous status code

Closes #4388

16 months agoForce suppress pointer events for the system notification overlay
Alexander Ebert [Thu, 27 Apr 2023 16:33:38 +0000 (18:33 +0200)]
Force suppress pointer events for the system notification overlay

Fixes #5442

16 months agoGracefully handle a missing CKEditor instance
Alexander Ebert [Thu, 27 Apr 2023 16:29:09 +0000 (18:29 +0200)]
Gracefully handle a missing CKEditor instance

Fixes #5441

16 months agoCustom icon for search result items (#5461)
Marcel Werk [Thu, 27 Apr 2023 16:06:18 +0000 (18:06 +0200)]
Custom icon for search result items (#5461)

Closes #5109

16 months agoUpdate the CKEditor bundle
Alexander Ebert [Thu, 27 Apr 2023 16:05:46 +0000 (18:05 +0200)]
Update the CKEditor bundle

16 months agoAdd the phrase for the spoiler button
Alexander Ebert [Thu, 27 Apr 2023 15:15:04 +0000 (17:15 +0200)]
Add the phrase for the spoiler button

See WoltLab/editor#35

16 months agoMerge branch 'master' of https://github.com/WoltLab/WCF
Marcel Werk [Thu, 27 Apr 2023 15:03:45 +0000 (17:03 +0200)]
Merge branch 'master' of https://github.com/WoltLab/WCF

16 months agoAdd missing PHPDoc
Marcel Werk [Thu, 27 Apr 2023 15:03:43 +0000 (17:03 +0200)]
Add missing PHPDoc

16 months agoMerge pull request #5460 from WoltLab/input-type-url
Marcel Werk [Thu, 27 Apr 2023 14:22:14 +0000 (16:22 +0200)]
Merge pull request #5460 from WoltLab/input-type-url

Change URL form field to `input type="url"`

16 months agoUnify the output format of `|date` and `|plainTime` with `{time}`
Tim Düsterhus [Thu, 27 Apr 2023 14:21:17 +0000 (16:21 +0200)]
Unify the output format of `|date` and `|plainTime` with `{time}`

see dbdc39a240f6e2e09550bab547e38d7aadba573a

16 months agoFix deprecation note for `|date` and `|plainTime` modifiers
Tim Düsterhus [Thu, 27 Apr 2023 14:17:34 +0000 (16:17 +0200)]
Fix deprecation note for `|date` and `|plainTime` modifiers

see dbdc39a240f6e2e09550bab547e38d7aadba573a

16 months agoFix missing caching of article in notifications about comment responses
Marcel Werk [Thu, 27 Apr 2023 14:08:39 +0000 (16:08 +0200)]
Fix missing caching of article in notifications about comment responses

16 months agoMove generic cache preparing to `AbstractCommentResponseUserNotificationEvent`
Marcel Werk [Thu, 27 Apr 2023 14:06:50 +0000 (16:06 +0200)]
Move generic cache preparing to `AbstractCommentResponseUserNotificationEvent`

16 months agoFix event hash for notifications about comment responses
Marcel Werk [Thu, 27 Apr 2023 14:05:53 +0000 (16:05 +0200)]
Fix event hash for notifications about comment responses

16 months agoEnable inputmode for URL form fields by default
Marcel Werk [Thu, 27 Apr 2023 11:33:21 +0000 (13:33 +0200)]
Enable inputmode for URL form fields by default

16 months agoChange URL form field to `input type="url"`
Marcel Werk [Thu, 27 Apr 2023 11:32:10 +0000 (13:32 +0200)]
Change URL form field to `input type="url"`

Closes #5266

16 months agoRemove obsolete code
Marcel Werk [Thu, 27 Apr 2023 13:58:04 +0000 (15:58 +0200)]
Remove obsolete code

The same event hash is already generated in `AbstractUserNotificationEvent`.

16 months agoFix inconsistency of the English version of `wcf.acp.option.url_omit_index_php.descri...
Marcel Werk [Thu, 27 Apr 2023 13:25:28 +0000 (15:25 +0200)]
Fix inconsistency of the English version of `wcf.acp.option.url_omit_index_php.description`

Closes #5227

16 months agoMerge pull request #5454 from WoltLab/abstract-comment-user-notification-event
Marcel Werk [Thu, 27 Apr 2023 11:39:05 +0000 (13:39 +0200)]
Merge pull request #5454 from WoltLab/abstract-comment-user-notification-event

Add default implementation for user notifications about comments

16 months agoApply suggestions from code review
Marcel Werk [Thu, 27 Apr 2023 11:38:30 +0000 (13:38 +0200)]
Apply suggestions from code review

16 months agoPrevent iOS from zooming when focusing the editor
Alexander Ebert [Thu, 27 Apr 2023 11:29:26 +0000 (13:29 +0200)]
Prevent iOS from zooming when focusing the editor

Fixes WoltLab/editor#39

16 months agoMerge pull request #5459 from WoltLab/time-template-function
Marcel Werk [Thu, 27 Apr 2023 11:20:03 +0000 (13:20 +0200)]
Merge pull request #5459 from WoltLab/time-template-function

Replace |time modifier by {time} function

16 months agoImprove API for `{time}`
Tim Düsterhus [Thu, 27 Apr 2023 10:47:08 +0000 (12:47 +0200)]
Improve API for `{time}`

16 months agoSynchronize the `wysiwyg` template
Alexander Ebert [Wed, 26 Apr 2023 17:44:28 +0000 (19:44 +0200)]
Synchronize the `wysiwyg` template

16 months agoExport custom bbcode icons as image src
Alexander Ebert [Wed, 26 Apr 2023 17:43:01 +0000 (19:43 +0200)]
Export custom bbcode icons as image src

See #5182

16 months agoAllow custom images as the icon for the bbcode button
Alexander Ebert [Wed, 26 Apr 2023 17:29:19 +0000 (19:29 +0200)]
Allow custom images as the icon for the bbcode button

See #5182

16 months agoMark time modifier functions as deprecated
Marcel Werk [Wed, 26 Apr 2023 16:21:26 +0000 (18:21 +0200)]
Mark time modifier functions as deprecated

16 months agoReplace |time modifier by {time} function
Marcel Werk [Wed, 26 Apr 2023 16:21:11 +0000 (18:21 +0200)]
Replace |time modifier by {time} function

Closes #5277

16 months agoFix documentation of the icon template plugin
Marcel Werk [Wed, 26 Apr 2023 16:06:42 +0000 (18:06 +0200)]
Fix documentation of the icon template plugin

It's not a compiler plugin.

16 months agoEnable `inputmode` for email form fields by default
Marcel Werk [Wed, 26 Apr 2023 15:57:22 +0000 (17:57 +0200)]
Enable `inputmode` for email form fields by default

16 months agoAdd default implementation for user notifications about comment responses
Marcel Werk [Wed, 26 Apr 2023 13:59:42 +0000 (15:59 +0200)]
Add default implementation for user notifications about comment responses

16 months agoMerge pull request #5455 from WoltLab/relative-time-weekday-not-first
Tim Düsterhus [Wed, 26 Apr 2023 11:56:10 +0000 (13:56 +0200)]
Merge pull request #5455 from WoltLab/relative-time-weekday-not-first

Fix “today or yesterday” rendering for languages that do not put the weekday first

16 months agoDisallow changing the languageCode of existing languages
Tim Düsterhus [Wed, 26 Apr 2023 10:07:54 +0000 (12:07 +0200)]
Disallow changing the languageCode of existing languages

Changing the language code for an existing language effectively invalidates
everything that is already stored within that language and thus is not a useful
operation. Changing the country code or locale should be compatible with
existing phrases or contents and thus is still allowed.

16 months agoFix checks for form mode in LanguageAddForm
Tim Düsterhus [Wed, 26 Apr 2023 10:07:28 +0000 (12:07 +0200)]
Fix checks for form mode in LanguageAddForm

16 months agoFix “today or yesterday” rendering for languages that do not put the weekday first
Tim Düsterhus [Wed, 26 Apr 2023 09:54:31 +0000 (11:54 +0200)]
Fix “today or yesterday” rendering for languages that do not put the weekday first

The previous version was broken, because it just returned the name of the
weekday (`value`), but the time was missing entirely. The code was refactored
to move the “weekday first” check into refresh(), allowing languages that put
the weekday first to proceed as previously without any visual changes and other
languages to just use the absolute date + time. The diff likely looks larger
than it is for that reason.

Rendering was verified with de, en_US, en_GB, ar, he, el, ru, ja.

16 months agoMerge branch 'language-add-formbuilder'
Tim Düsterhus [Wed, 26 Apr 2023 09:03:00 +0000 (11:03 +0200)]
Merge branch 'language-add-formbuilder'

Closes #5252

16 months agoImplement `LanguageContentCopying` event
mutec [Tue, 31 Jan 2023 19:55:26 +0000 (20:55 +0100)]
Implement `LanguageContentCopying` event

This event is meant to give 3rd-party developers the possibility to copy i18n
contents in every case contents should be copied to another language.

[Tim: Renamed the event to match the event naming scheme]

see #5252

16 months agoConvert `Language*Form` to form builder
mutec [Sun, 29 Jan 2023 12:36:08 +0000 (13:36 +0100)]
Convert `Language*Form` to form builder

see #5252

[Tim: Performed some final adjustments]

16 months agoAllow for custom workflows that do not rely on passwords
Alexander Ebert [Tue, 25 Apr 2023 16:05:09 +0000 (18:05 +0200)]
Allow for custom workflows that do not rely on passwords

16 months agoAdd default implementation for user notifications about comments
Marcel Werk [Tue, 25 Apr 2023 14:06:04 +0000 (16:06 +0200)]
Add default implementation for user notifications about comments

16 months agoMerge pull request #5453 from WoltLab/datepicker-disabled
Tim Düsterhus [Tue, 25 Apr 2023 13:44:04 +0000 (15:44 +0200)]
Merge pull request #5453 from WoltLab/datepicker-disabled

Add `.disabled` class to Date/Picker cells before or after the legal date range

16 months agoMerge pull request #5452 from WoltLab/devtools-sync
Tim Düsterhus [Tue, 25 Apr 2023 13:39:20 +0000 (15:39 +0200)]
Merge pull request #5452 from WoltLab/devtools-sync

Fix visuals in devtoolsProjectSync if the first non-important PIP has no target

16 months agoMerge pull request #5450 from WoltLab/user-notification-mail-title
Marcel Werk [Tue, 25 Apr 2023 12:04:14 +0000 (14:04 +0200)]
Merge pull request #5450 from WoltLab/user-notification-mail-title

Remove the "New Notification:" prefix from notification e-mails

16 months agoFix CSS to disable the datePicker hover effect on unclickable cells
Tim Düsterhus [Tue, 25 Apr 2023 10:49:41 +0000 (12:49 +0200)]
Fix CSS to disable the datePicker hover effect on unclickable cells

16 months agoAdd `.disabled` class to Date/Picker cells before or after the legal date range
Tim Düsterhus [Tue, 25 Apr 2023 10:45:19 +0000 (12:45 +0200)]
Add `.disabled` class to Date/Picker cells before or after the legal date range

And then reduce the opacity to make it more clear that these are unselectable.
Valid dates in a different month will still not be clickable, but their opacity
will not be reduced to not be misleading.

see https://www.woltlab.com/community/thread/294117-datepicker-ausw%C3%A4hlbare-daten-eindeutiger-darstellen/

16 months agoFix visuals in devtoolsProjectSync if the first non-important PIP has no target
Tim Düsterhus [Tue, 25 Apr 2023 10:24:31 +0000 (12:24 +0200)]
Fix visuals in devtoolsProjectSync if the first non-important PIP has no target

The thicker border was missing, because the element having the border was
visually hidden.

16 months agoMerge branch '5.5'
Tim Düsterhus [Tue, 25 Apr 2023 09:34:29 +0000 (11:34 +0200)]
Merge branch '5.5'

16 months agoImprove phrasing for `user_authentication_failure_*` descriptions
Tim Düsterhus [Tue, 25 Apr 2023 09:33:59 +0000 (11:33 +0200)]
Improve phrasing for `user_authentication_failure_*` descriptions

16 months agoRemove the "New Notification:" prefix from notification e-mails
Marcel Werk [Mon, 24 Apr 2023 16:04:48 +0000 (18:04 +0200)]
Remove the "New Notification:" prefix from notification e-mails

The prefix had little use and caused that in many e-mail clients little of the actual subject of the e-mails was immediately visible.

16 months agoMerge branch '5.5'
Tim Düsterhus [Mon, 24 Apr 2023 13:08:26 +0000 (15:08 +0200)]
Merge branch '5.5'

16 months agoFix creating menuItem PIP entries without parent using dev tools
Tim Düsterhus [Mon, 24 Apr 2023 13:07:17 +0000 (15:07 +0200)]
Fix creating menuItem PIP entries without parent using dev tools

Fixes #4754

16 months agoUse `intdiv()` in `ExifUtil::simplifyRational()`
Tim Düsterhus [Mon, 24 Apr 2023 12:19:24 +0000 (14:19 +0200)]
Use `intdiv()` in `ExifUtil::simplifyRational()`

16 months agoMerge pull request #5449 from WoltLab/exifutil-simplify-exposure
Tim Düsterhus [Mon, 24 Apr 2023 12:00:14 +0000 (14:00 +0200)]
Merge pull request #5449 from WoltLab/exifutil-simplify-exposure

Simplify the ExposureTime fraction in ExifUtil::getFormattedExifData()

16 months agoSimplify the ExposureTime fraction in ExifUtil::getFormattedExifData()
Tim Düsterhus [Mon, 24 Apr 2023 11:25:19 +0000 (13:25 +0200)]
Simplify the ExposureTime fraction in ExifUtil::getFormattedExifData()

see https://www.woltlab.com/community/thread/298320-fehlerhafte-exif-daten/

16 months agoMerge pull request #5437 from WoltLab/random-cronjob
Tim Düsterhus [Mon, 24 Apr 2023 08:55:26 +0000 (10:55 +0200)]
Merge pull request #5437 from WoltLab/random-cronjob

Support randomized cronjobs in cronjob PIP

16 months agoRemove obsolete manual cronjob randomization.
Tim Düsterhus [Fri, 21 Apr 2023 11:03:00 +0000 (13:03 +0200)]
Remove obsolete manual cronjob randomization.

16 months agoUse `<expression type="random">` for randomized cronjobs
Tim Düsterhus [Fri, 21 Apr 2023 11:01:36 +0000 (13:01 +0200)]
Use `<expression type="random">` for randomized cronjobs

see #5202

16 months agoGenerate WCF_UUID earlier during installation
Tim Düsterhus [Fri, 21 Apr 2023 11:07:24 +0000 (13:07 +0200)]
Generate WCF_UUID earlier during installation

This is required for cronjob randomization. Some additional changes needed to
be performed to not break WCFSetup. As the options.inc.php is rewritten, the
cookie prefix update needs to be moved into the install script from
PackageInstallationDispatcher.

16 months agoFix the styling of the overflow toolbar
Alexander Ebert [Sun, 23 Apr 2023 09:05:10 +0000 (11:05 +0200)]
Fix the styling of the overflow toolbar

16 months agoFix the overflow behavior of the grouped toolbar
Alexander Ebert [Sun, 23 Apr 2023 09:02:13 +0000 (11:02 +0200)]
Fix the overflow behavior of the grouped toolbar

See #18

16 months agoEnable the automatic grouping of items in the toolbar
Alexander Ebert [Sat, 22 Apr 2023 10:30:16 +0000 (12:30 +0200)]
Enable the automatic grouping of items in the toolbar

Fixes WoltLab/editor#18

16 months agoUse a darker shade to separate split buttons
Alexander Ebert [Fri, 21 Apr 2023 14:05:17 +0000 (16:05 +0200)]
Use a darker shade to separate split buttons

16 months agoFix version variable in INVALID_REQUIRED_PACKAGE_VERSION_NUMBER error message
Tim Düsterhus [Fri, 21 Apr 2023 14:04:05 +0000 (16:04 +0200)]
Fix version variable in INVALID_REQUIRED_PACKAGE_VERSION_NUMBER error message

Fixes #5443

16 months agoMerge pull request #5438 from WoltLab/quit-more-often
Tim Düsterhus [Fri, 21 Apr 2023 13:35:22 +0000 (15:35 +0200)]
Merge pull request #5438 from WoltLab/quit-more-often

Run the userQuit cronjob every 4 hours

17 months agoMerge pull request #5440 from WoltLab/ckeditor5-styling
Alexander Ebert [Fri, 21 Apr 2023 13:27:17 +0000 (15:27 +0200)]
Merge pull request #5440 from WoltLab/ckeditor5-styling

Align the styling of CKEditor 5 with the regular style

17 months agoRemove the border radius from the table creation widget
Alexander Ebert [Fri, 21 Apr 2023 13:18:19 +0000 (15:18 +0200)]
Remove the border radius from the table creation widget

17 months agoApply `cursor: pointer` to all non-disabled buttons
Alexander Ebert [Fri, 21 Apr 2023 13:18:07 +0000 (15:18 +0200)]
Apply `cursor: pointer` to all non-disabled buttons

17 months agoImprove the color scheme of focus indicators
Alexander Ebert [Fri, 21 Apr 2023 12:57:53 +0000 (14:57 +0200)]
Improve the color scheme of focus indicators

17 months agoAdd the missing border to the pseudo dialog for draft restores
Alexander Ebert [Fri, 21 Apr 2023 11:27:34 +0000 (13:27 +0200)]
Add the missing border to the pseudo dialog for draft restores

17 months agoApply the framework’s style to CKEditor
Alexander Ebert [Thu, 20 Apr 2023 17:19:10 +0000 (19:19 +0200)]
Apply the framework’s style to CKEditor

17 months agoApply the style variables for the editor toolbar
Alexander Ebert [Thu, 20 Apr 2023 13:53:00 +0000 (15:53 +0200)]
Apply the style variables for the editor toolbar

17 months agoDelete some remaining `@package` tags in *.php
Tim Düsterhus [Fri, 21 Apr 2023 12:39:38 +0000 (14:39 +0200)]
Delete some remaining `@package` tags in *.php

These were likely sitting in PRs when the tags were removed originally in
bb349f5cfb64ec93ad08f1485a938f851e891cee.

17 months agoRun the userQuit cronjob every 4 hours
Tim Düsterhus [Fri, 21 Apr 2023 12:10:32 +0000 (14:10 +0200)]
Run the userQuit cronjob every 4 hours

Users that initiated their quit reported more than once that their user account
was not yet deleted, even though their quit time already expired. This is
especially pronounced if the planned quit time was in the morning, as the
cronjob previously only ran during night.

Run the cronjob every 4 hours, reducing the time window where the quit time
already expired, but the account is not actually deleted yet. A delay of a few
hours is likely reasonable even for layman users.

17 months agoMerge pull request #5436 from WoltLab/mfa-code-visuals
Tim Düsterhus [Fri, 21 Apr 2023 11:42:29 +0000 (13:42 +0200)]
Merge pull request #5436 from WoltLab/mfa-code-visuals

Improve visuals for MFA code inputs

17 months agoSupport randomized cronjobs in cronjob PIP
Tim Düsterhus [Fri, 21 Apr 2023 10:59:09 +0000 (12:59 +0200)]
Support randomized cronjobs in cronjob PIP

This uses an additional attribute on the `<expression>` for a clear migration
path forward, if the cron expression library gains native support.

With PHP 8.2+ a seedable engine is used, ensuring the values stay the same
after a reimport of the same cronjob.

Resolves #5202