Closed DarkZoneSD closed 6 months ago
This could happen if you have a mix of new/old files, or have active customizations tweaking the header.
git status
from your BookStack install directory?ls -alh themes/
from your BookStack install directory?
- What's the current output of running
git status
from your BookStack install directory?
```
On branch release
Your branch is behind 'origin/release' by 290 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add/rm
- What's the current output of running
ls -alh themes/
from your BookStack install directory?
total 12K drwxr-xr-x 2 administrator www-data 4.0K Nov 14 14:22 . drwxr-xr-x 16 administrator www-data 4.0K Jan 4 09:47 .. -rwxr-xr-x 1 administrator www-data 14 Aug 14 10:58 .gitignore
Okay, looks like the update failed to use the latest code, but it's not clear why that is.
git log -n 1
from your BookStack directory.commit f563a005f5335eb12906409a0010719bb9b2d278 (HEAD -> release, tag: v23.06.2)
Author: Dan Brown <ssddanbrown@googlemail.com>
Date: Wed Jul 12 22:34:25 2023 +0100
Updated version and assets for release v23.06.2
As far as I am aware, no.
Here is the Console log of the update process:
``` administrator@Company-BookStack:~$ ls BookStack.config bookstack_install_1692010647.log DefaultInstallationScripts installation.sh installation-ubuntu-22.04.sh PHP.conf public administrator@Company-BookStack:~$ nano BookStack.config administrator@Company-BookStack:~$ cd /var/www/bookstack/ administrator@Company-BookStack:/var/www/bookstack$ ls app bootstrap crowdin.yml docker-compose.yml package.json phpstan.neon.dist readme.md storage vendor artisan composer.json database lang package-lock.json phpunit.xml resources tests version bookstack-system-cli composer.lock dev LICENSE phpcs.xml public routes themes administrator@Company-BookStack:/var/www/bookstack$ nano version administrator@Company-BookStack:/var/www/bookstack$ git pull origin release remote: Enumerating objects: 4306, done. remote: Counting objects: 100% (2830/2830), done. remote: Compressing objects: 100% (1310/1310), done. remote: Total 4306 (delta 1772), reused 2119 (delta 1475), pack-reused 1476 Receiving objects: 100% (4306/4306), 4.47 MiB | 7.90 MiB/s, done. Resolving deltas: 100% (2538/2538), completed with 220 local objects. From https://github.com/BookStackApp/BookStack * branch release -> FETCH_HEAD f563a005..457adc1f release -> origin/release Updating f563a005..457adc1f warning: unable to unlink 'public/dist/print-styles.css': Permission denied warning: unable to unlink 'public/libs/tinymce/plugins/help/plugin.min.js': Permission denied error: unable to unlink old 'public/dist/app.js': Permission denied error: unable to unlink old 'public/dist/code.js': Permission denied error: unable to unlink old 'public/dist/export-styles.css': Permission denied error: unable to unlink old 'public/dist/legacy-modes.js': Permission denied error: unable to unlink old 'public/dist/styles.css': Permission denied error: unable to unlink old 'public/libs/tinymce/icons/default/icons.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/models/dom/model.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/advlist/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/anchor/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/autolink/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/autoresize/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/autosave/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/charmap/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/code/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/codesample/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/directionality/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/fullscreen/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/image/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/importcss/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/insertdatetime/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/link/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/lists/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/media/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/nonbreaking/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/pagebreak/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/preview/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/quickbars/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/save/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/searchreplace/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/table/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/template/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/visualblocks/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/visualchars/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/plugins/wordcount/plugin.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/oxide-dark/content.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/oxide-dark/skin.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/oxide/content.inline.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/oxide/content.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/oxide/skin.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/tinymce-5/content.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/skins/ui/tinymce-5/skin.min.css': Permission denied error: unable to unlink old 'public/libs/tinymce/themes/silver/theme.min.js': Permission denied error: unable to unlink old 'public/libs/tinymce/tinymce.d.ts': Permission denied error: unable to unlink old 'public/libs/tinymce/tinymce.min.js': Permission denied administrator@Company-BookStack:/var/www/bookstack$ sudo git pull origin release From https://github.com/BookStackApp/BookStack * branch release -> FETCH_HEAD Updating f563a005..457adc1f error: Your local changes to the following files would be overwritten by merge: .env.example.complete .github/ISSUE_TEMPLATE/bug_report.yml .github/ISSUE_TEMPLATE/feature_request.yml .github/ISSUE_TEMPLATE/support_request.yml .github/SECURITY.md .github/translators.txt .github/workflows/analyse-php.yml .github/workflows/lint-js.yml .github/workflows/lint-php.yml .github/workflows/test-migrations.yml .github/workflows/test-php.yml .gitignore app/Access/Controllers/ForgotPasswordController.php app/Access/Controllers/LoginController.php app/Access/Controllers/OidcController.php app/Access/Controllers/RegisterController.php app/Access/Controllers/ResetPasswordController.php app/Access/Controllers/Saml2Controller.php app/Access/Controllers/SocialController.php app/Access/Controllers/ThrottlesLogins.php app/Access/EmailConfirmationService.php app/Access/LoginService.php app/Access/Oidc/OidcOAuthProvider.php app/Access/Oidc/OidcProviderSettings.php app/Access/Oidc/OidcService.php app/Access/Saml2Service.php app/Access/SocialAuthService.php app/Access/UserInviteService.php app/Activity/ActivityType.php app/Activity/CommentRepo.php app/Activity/Controllers/FavouriteController.php app/Activity/DispatchWebhookJob.php app/Activity/Models/Activity.php app/Activity/Models/Comment.php app/Activity/Models/View.php app/Activity/Tools/ActivityLogger.php app/Api/ApiDocsController.php app/Api/ApiDocsGenerator.php app/Api/ApiEntityListFormatter.php app/Api/ApiToken.php app/Api/UserApiTokenController.php app/App/HomeController.php app/App/Providers/AppServiceProvider.php app/App/Providers/AuthServiceProvider.php app/App/Providers/EventServiceProvider.php app/App/Providers/RouteServiceProvider.php app/App/Providers/ThemeServiceProvider.php app/App/Providers/ViewTweaksServiceProvider.php app/App/helpers.php app/Config/app.php app/Config/mail.php app/Config/oidc.php app/Console/Commands/CleanupImagesCommand.php app/Console/Commands/RegenerateReferencesCommand.php app/Console/Commands/ResetMfaCommand.php app/Console/Commands/UpdateUrlCommand.php app/Entities/BreadcrumbsViewComposer.php app/Entities/Controllers/BookApiController.php app/Entities/Controllers/BookController.php app/Entities/Controllers/BookshelfApiController.php app/Entities/Controllers/BookshelfController.php app/Entities/Controllers/ChapterApiController.php app/Entities/Controllers/ChapterController.php app/Entities/Controllers/PageApiController.php app/Entities/Controllers/PageController.php app/Entities/EntityProvider.php app/Entities/Models/Book.php app/Entities/Models/BookChild.php app/Entities/Models/Bookshelf.php app/Entities/Models/Chapter.php app/Entities/Models/Entity.php app/Entities/Models/Page.php app/Entities/Queries/RecentlyViewed.php app/Entities/Queries/TopFavourites.php app/Entities/Repos/BaseRepo.php app/Entities/Repos/BookRepo.php app/Entities/Repos/ChapterRepo.php app/Entities/Repos/PageRepo.php app/Entities/Tools/ExportFormatter.php app/Entities/Tools/PageContent.php app/Entities/Tools/TrashCan.php app/Exceptions/Handler.php app/Http/Controller.php app/Http/Kernel.php app/Http/Middleware/ApiAuthenticate.php app/Http/Middleware/Authenticate.php app/Http/Middleware/Localization.php app/Permissions/EntityPermissionEvaluator.php app/Permissions/JointPermissionBuilder.php app/Permissions/PermissionApplicator.php app/Permissions/PermissionsRepo.php app/References/CrossLinkParser.php app/References/ReferenceController.php app/References/ReferenceFetcher.php app/References/ReferenceStore.php app/References/ReferenceUpdater.php app/Search/SearchController.php app/Search/SearchIndex.php app/Search/SearchOptions.php app/Search/SearchRunner.php app/Settings/MaintenanceController.php app/Settings/SettingController.php app/Settings/SettingService.php app/Settings/StatusController.php app/Theming/CustomHtmlHeadContentProvider.php app/Theming/ThemeEvents.php app/Theming/ThemeService.php app/Uploads/Controllers/DrawioImageController.php app/Uploads/Controllers/GalleryI error: The following untracked working tree files would be overwritten by merge: app/Access/Notifications/ConfirmEmailNotification.php app/Access/Notifications/ResetPasswordNotification.php app/Access/Notifications/UserInviteNotification.php app/Access/SocialDriverManager.php app/Activity/Controllers/WatchController.php app/Activity/Models/Watch.php app/Activity/Notifications/Handlers/BaseNotificationHandler.php app/Activity/Notifications/Handlers/CommentCreationNotificationHandler.php app/Activity/Notifications/Handlers/NotificationHandler.php app/Activity/Notifications/Handlers/PageCreationNotificationHandler.php app/Activity/Notifications/Handlers/PageUpdateNotificationHandler.php app/Activity/Notifications/MessageParts/EntityLinkMessageLine.php app/Activity/Notifications/MessageParts/EntityPathMessageLine.php app/Activity/Notifications/MessageParts/LinkedMailMessageLine.php app/Activity/Notifications/MessageParts/ListMessageLine.php app/Activity/Notifications/Messages/BaseActivityNotification.php app/Activity/Notifications/Messages/CommentCreationNotification.php app/Activity/Notifications/Messages/PageCreationNotification.php app/Activity/Notifications/Messages/PageUpdateNotification.php app/Activity/Notifications/NotificationManager.php app/Activity/Tools/EntityWatchers.php app/Activity/Tools/UserEntityWatchOptions.php app/Activity/Tools/WatchedParentDetails.php app/Activity/WatchLevels.php app/App/MailNotification.php app/App/PwaManifestBuilder.php app/Console/Commands/HandlesSingleUser.php app/Console/Commands/RefreshAvatarCommand.php app/Entities/Models/HasHtmlDescription.php app/Entities/Tools/MixedEntityListLoader.php app/Entities/Tools/MixedEntityRequestHelper.php app/Entities/Tools/PageIncludeContent.php app/Entities/Tools/PageIncludeParser.php app/Entities/Tools/PageIncludeTag.php app/Exceptions/ThemeException.php app/Http/HttpClientHistory.php app/Http/HttpRequestService.php app/Http/Middleware/PreventResponseCaching.php app/Settings/TestEmailNotification.php app/Settings/UserNotificationPreferences.php app/Translation/LocaleDefinition.php app/Translation/LocaleManager.php app/Uploads/ImageResizer.php app/Uploads/ImageStorage.php app/Uploads/ImageStorageDisk.php app/Users/Controllers/UserAccountController.php app/Util/HtmlDescriptionFilter.php app/Util/HtmlDocument.php app/Util/OutOfMemoryHandler.php app/Util/SsrUrlValidator.php app/Util/SvgIcon.php database/migrations/2023_07_25_124945_add_receive_notifications_role_permissions.php database/migrations/2023_07_31_104430_create_watches_table.php database/migrations/2023_08_21_174248_increase_cache_size.php database/migrations/2023_12_02_104541_add_default_template_to_books.php database/migrations/2023_12_17_140913_add_description_html_to_entities.php dev/docs/php-testing.md lang/ar/notifications.php lang/bg/notifications.php lang/bs/notifications.php lang/ca/notifications.php lang/cs/notifications.php lang/cy/notifications.php lang/da/notifications.php lang/de/notifications.php lang/de_informal/notifications.php lang/el/notifications.php lang/en/notifications.php lang/es/notifications.php lang/es_AR/notifications.php lang/et/notifications.php lang/eu/notifications.php lang/fa/notifications.php lang/fi/activities.php lang/fi/auth.php lang/fi/common.php lang/fi/components.php lang/fi/editor.php lang/fi/entities.php lang/fi/errors.php lang/fi/notifications.php lang/fi/pagination.php lang/fi/passwords.php lang/fi/preferences.php lang/fi/settings.php lang/fi/validation.php lang/fr/notifications.php lang/he/notifications.php lang/hr/notifications.php lang/hu/notifications.php lang/id/notifications.php lang/it/notifications.php lang/ja/notifications.php lang/ka/notifications.php lang/ko/notifications.php lang/lt/notifications.php lang/lv/notifications.php lang/nb/notifications.php lang/nl/notifications.php lang/nn/activities.php lang/nn/auth.php lang/nn/common.php lang/nn/components.php lang/nn/editor.php lang/nn/entities.php lang/nn/errors.php lang/nn/notif Aborting administrator@Company-BookStack:/var/www/bookstack$ composer install --no-dev > @php -r "!file_exists('bootstrap/cache/services.php') || @unlink('bootstrap/cache/services.php');" Installing dependencies from lock file Verifying lock file contents can be installed on current platform. Package operations: 2 installs, 52 updates, 1 removal - Downloading aws/aws-crt-php (v1.2.4) - Downloading dasprid/enum (1.0.5) - Downloading symfony/polyfill-php80 (v1.28.0) - Downloading symfony/polyfill-mbstring (v1.28.0) - Downloading symfony/polyfill-ctype (v1.28.0) - Downloading phpoption/phpoption (1.9.2) - Downloading graham-campbell/result-type (v1.1.2) - Downloading vlucas/phpdotenv (v5.6.0) - Downloading tijsverkoyen/css-to-inline-styles (v2.2.7) - Downloading symfony/polyfill-uuid (v1.28.0) - Downloading symfony/polyfill-php72 (v1.28.0) - Downloading symfony/polyfill-intl-normalizer (v1.28.0) - Downloading symfony/polyfill-intl-idn (v1.28.0) - Downloading doctrine/deprecations (1.1.2) - Downloading symfony/polyfill-intl-grapheme (v1.28.0) - Downloading symfony/polyfill-php81 (v1.28.0) - Downloading ramsey/uuid (4.7.5) - Downloading psr/clock (1.0.0) - Downloading carbonphp/carbon-doctrine-types (2.1.0) - Downloading nesbot/carbon (2.72.1) - Downloading monolog/monolog (2.9.2) - Downloading league/mime-type-detection (1.14.0) - Downloading league/flysystem (3.23.0) - Downloading league/flysystem-local (3.23.0) - Downloading nette/utils (v4.0.3) - Downloading nette/schema (v1.2.5) - Downloading league/commonmark (2.4.1) - Downloading laravel/serializable-closure (v1.3.3) - Downloading guzzlehttp/uri-template (v1.0.3) - Downloading fruitcake/php-cors (v1.3.0) - Downloading dragonmantank/cron-expression (v3.3.3) - Downloading laravel/framework (v9.52.16) - Downloading phenx/php-svg-lib (0.5.1) - Downloading masterminds/html5 (2.8.1) - Downloading dompdf/dompdf (v2.0.4) - Downloading knplabs/knp-snappy (v1.4.4) - Downloading doctrine/dbal (3.7.2) - Downloading guzzlehttp/promises (2.0.2) - Downloading guzzlehttp/psr7 (2.6.2) - Downloading psr/http-client (1.0.3) - Downloading guzzlehttp/guzzle (7.8.1) - Downloading laravel/socialite (v5.11.0) - Downloading nikic/php-parser (v4.18.0) - Downloading psy/psysh (v0.11.22) - Downloading laravel/tinker (v2.8.2) - Downloading mtdowling/jmespath.php (2.7.0) - Downloading aws/aws-sdk-php (3.294.5) - Downloading league/flysystem-aws-s3-v3 (3.22.0) - Downloading league/html-to-markdown (5.1.1) - Downloading phpseclib/phpseclib (3.0.34) - Downloading predis/predis (v2.2.2) - Downloading socialiteproviders/manager (v4.4.0) - Downloading socialiteproviders/discord (4.2.0) - Downloading socialiteproviders/okta (4.4.0) - Removing socialiteproviders/slack (4.1.1) - Upgrading aws/aws-crt-php (v1.2.1 => v1.2.4): Extracting archive - Upgrading dasprid/enum (1.0.4 => 1.0.5): Extracting archive - Upgrading symfony/polyfill-php80 (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-mbstring (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-ctype (v1.27.0 => v1.28.0): Extracting archive - Upgrading phpoption/phpoption (1.9.1 => 1.9.2): Extracting archive - Upgrading graham-campbell/result-type (v1.1.1 => v1.1.2): Extracting archive - Upgrading vlucas/phpdotenv (v5.5.0 => v5.6.0): Extracting archive - Upgrading tijsverkoyen/css-to-inline-styles (2.2.6 => v2.2.7): Extracting archive - Upgrading symfony/polyfill-uuid (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-php72 (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-intl-normalizer (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-intl-idn (v1.27.0 => v1.28.0): Extracting archive - Upgrading doctrine/deprecations (v1.1.1 => 1.1.2): Extracting archive - Upgrading symfony/polyfill-intl-grapheme (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-php81 (v1.27.0 => v1.28.0): Extracting archive - Upgrading ramsey/uuid (4.7.4 => 4.7.5): Extracting archive - Installing psr/clock (1.0.0): Extracting archive - Installing carbonphp/carbon-doctrine-types (2.1.0): Extracting archive - Upgrading nesbot/carbon (2.68.1 => 2.72.1): Extracting archive - Upgrading monolog/monolog (2.9.1 => 2.9.2): Extracting archive - Upgrading league/mime-type-detection (1.11.0 => 1.14.0): Extracting archive - Upgrading league/flysystem (3.15.1 => 3.23.0): Extracting archive - Upgrading league/flysystem-local (3.15.0 => 3.23.0): Extracting archive - Upgrading nette/utils (v4.0.0 => v4.0.3): Extracting archive - Upgrading nette/schema (v1.2.3 => v1.2.5): Extracting archive - Upgrading league/commonmark (2.4.0 => 2.4.1): Extracting archive - Upgrading laravel/serializable-closure (v1.3.0 => v1.3.3): Extracting archive - Upgrading guzzlehttp/uri-template (v1.0.1 => v1.0.3): Extracting archive - Upgrading fruitcake/php-cors (v1.2.0 => v1.3.0): Extracting archive - Upgrading dragonmantank/cron-expression (v3.3.2 => v3.3.3): Extracting archive - Upgrading laravel/framework (v9.52.10 => v9.52.16): Extracting archive - Upgrading phenx/php-svg-lib (0.5.0 => 0.5.1): Extracting archive - Upgrading masterminds/html5 (2.8.0 => 2.8.1): Extracting archive - Upgrading dompdf/dompdf (v2.0.3 => v2.0.4): Extracting archive - Upgrading knplabs/knp-snappy (v1.4.2 => v1.4.4): Extracting archive - Upgrading doctrine/dbal (3.6.4 => 3.7.2): Extracting archive - Upgrading guzzlehttp/promises (1.5.3 => 2.0.2): Extracting archive - Upgrading guzzlehttp/psr7 (2.5.0 => 2.6.2): Extracting archive - Upgrading psr/http-client (1.0.2 => 1.0.3): Extracting archive - Upgrading guzzlehttp/guzzle (7.7.0 => 7.8.1): Extracting archive - Upgrading laravel/socialite (v5.6.3 => v5.11.0): Extracting archive - Upgrading nikic/php-parser (v4.16.0 => v4.18.0): Extracting archive - Upgrading psy/psysh (v0.11.18 => v0.11.22): Extracting archive - Upgrading laravel/tinker (v2.8.1 => v2.8.2): Extracting archive - Upgrading mtdowling/jmespath.php (2.6.1 => 2.7.0): Extracting archive - Upgrading aws/aws-sdk-php (3.269.0 => 3.294.5): Extracting archive - Upgrading league/flysystem-aws-s3-v3 (3.15.0 => 3.22.0): Extracting archive - Upgrading league/html-to-markdown (5.1.0 => 5.1.1): Extracting archive - Upgrading phpseclib/phpseclib (3.0.20 => 3.0.34): Extracting archive - Upgrading predis/predis (v2.2.0 => v2.2.2): Extracting archive - Upgrading socialiteproviders/manager (v4.3.0 => v4.4.0): Extracting archive - Upgrading socialiteproviders/discord (4.1.2 => 4.2.0): Extracting archive - Upgrading socialiteproviders/okta (4.2.1 => 4.4.0): Extracting archive Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi In StreamHandler.php line 149: The stream or file "/var/www/bookstack/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: The stream or file "/var/www/bookstack/storage/logs/laravel.log" could not be opened in append mode: Fa iled to open stream: Permission denied The exception occurred while attempting to log: The /var/www/bookstack/bootstrap/cache directory must be present and writable. Context: {"exception":{}} Context: {"exception":{}} Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1 administrator@Company-BookStack:/var/www/bookstack$ php artisan migrate APPLICATION IN PRODUCTION. Do you really wish to run this command? (yes/no) [no] ❯ yes INFO Running migrations. 2023_07_25_124945_add_receive_notifications_role_permissions ........................................................................... 13ms DONE 2023_07_31_104430_create_watches_table ................................................................................................ 141ms DONE 2023_08_21_174248_increase_cache_size ................................................................................................. 102ms DONE 2023_12_02_104541_add_default_template_to_books ........................................................................................ 33ms DONE 2023_12_17_140913_add_description_html_to_entities .................................................................................... 109ms DONE administrator@Company-BookStack:/var/www/bookstack$ php artisan cache:clear ERROR Failed to clear cache. Make sure you have the appropriate permissions. administrator@Company-BookStack:/var/www/bookstack$ sudo php artisan migrate [sudo] password for administrator: APPLICATION IN PRODUCTION. Do you really wish to run this command? (yes/no) [no] ❯ yes INFO Nothing to migrate. administrator@Company-BookStack:/var/www/bookstack$ sudo php artisan cache:clear INFO Application cache cleared successfully. administrator@Company-BookStack:/var/www/bookstack$ sudo php artisan config:clear INFO Configuration cache cleared successfully. administrator@Company-BookStack:/var/www/bookstack$ sudo php artisan view:clear INFO Compiled views cleared successfully. administrator@Company-BookStack:/var/www/bookstack$ ```
Okay, we can attempt to reset things back to original source state before then re-upgrading.
Before anything, make sure you backup your whole BookStack directory to a different system. The following can be destructive.
Once you have a backup, you can try the following commands from your BookStack install directory. These will reset all files to their original state, and remove any unexpected files.
git reset --hard
git clean -f
After running those, running git status
should not list any files. If it does, stop and report back the output here.
Otherwise, you can re-attempt the upgrade commands, one at a time.
It seems I was missing some directory permissions, I restored it from backup and redid the git pull and it executed without any errors, same resulsts sadly.
On branch release
Your branch is up to date with 'origin/release'.
nothing to commit, working tree clean
``` administrator@Company-BookStack:~$ cd /var/www/bookstack/ administrator@Company-BookStack:/var/www/bookstack$ git pull origin release remote: Enumerating objects: 4306, done. remote: Counting objects: 100% (2819/2819), done. remote: Compressing objects: 100% (1294/1294), done. remote: Total 4306 (delta 1765), reused 2131 (delta 1480), pack-reused 1487 Receiving objects: 100% (4306/4306), 4.46 MiB | 11.34 MiB/s, done. Resolving deltas: 100% (2548/2548), completed with 222 local objects. From https://github.com/BookStackApp/BookStack * branch release -> FETCH_HEAD f563a005..457adc1f release -> origin/release Updating f563a005..457adc1f Fast-forward .env.example.complete | 12 +- .github/ISSUE_TEMPLATE/bug_report.yml | 33 +- .github/ISSUE_TEMPLATE/feature_request.yml | 8 +- .github/ISSUE_TEMPLATE/support_request.yml | 12 +- .github/SECURITY.md | 15 +- .github/translators.txt | 48 +- .github/workflows/analyse-php.yml | 8 +- .github/workflows/lint-js.yml | 10 +- .github/workflows/lint-php.yml | 8 +- .github/workflows/test-migrations.yml | 12 +- .github/workflows/test-php.yml | 12 +- .gitignore | 3 +- app/Access/Controllers/ForgotPasswordController.php | 13 +- app/Access/Controllers/LoginController.php | 48 +- app/Access/Controllers/OidcController.php | 11 +- app/Access/Controllers/RegisterController.php | 10 +- app/Access/Controllers/ResetPasswordController.php | 6 +- app/Access/Controllers/Saml2Controller.php | 20 +- app/Access/Controllers/SocialController.php | 24 +- app/Access/Controllers/ThrottlesLogins.php | 2 +- app/Access/EmailConfirmationService.php | 4 +- app/Access/LoginService.php | 41 +- app/Access/Notifications/ConfirmEmailNotification.php | 26 + app/Access/Notifications/ResetPasswordNotification.php | 24 + app/Access/Notifications/UserInviteNotification.php | 27 + app/Access/Oidc/OidcOAuthProvider.php | 13 +- app/Access/Oidc/OidcProviderSettings.php | 7 +- app/Access/Oidc/OidcService.php | 50 +- app/Access/Saml2Service.php | 52 +- app/Access/SocialAuthService.php | 174 +---- app/Access/SocialDriverManager.php | 147 +++++ app/Access/UserInviteService.php | 4 +- app/Activity/ActivityType.php | 4 + app/Activity/CommentRepo.php | 5 + app/Activity/Controllers/FavouriteController.php | 60 +- app/Activity/Controllers/WatchController.php | 29 + app/Activity/DispatchWebhookJob.php | 32 +- app/Activity/Models/Activity.php | 1 + app/Activity/Models/Comment.php | 32 +- app/Activity/Models/View.php | 2 +- app/Activity/Models/Watch.php | 45 ++ app/Activity/Notifications/Handlers/BaseNotificationHandler.php | 42 ++ app/Activity/Notifications/Handlers/CommentCreationNotificationHandler.php | 48 ++ app/Activity/Notifications/Handlers/NotificationHandler.php | 17 + app/Activity/Notifications/Handlers/PageCreationNotificationHandler.php | 24 + app/Activity/Notifications/Handlers/PageUpdateNotificationHandler.php | 51 ++ app/Activity/Notifications/MessageParts/EntityLinkMessageLine.php | 29 + app/Activity/Notifications/MessageParts/EntityPathMessageLine.php | 35 + app/Activity/Notifications/MessageParts/LinkedMailMessageLine.php | 33 + app/Activity/Notifications/MessageParts/ListMessageLine.php | 36 ++ app/Activity/Notifications/Messages/BaseActivityNotification.php | 67 ++ app/Activity/Notifications/Messages/CommentCreationNotification.php | 37 ++ app/Activity/Notifications/Messages/PageCreationNotification.php | 33 + app/Activity/Notifications/Messages/PageUpdateNotification.php | 34 + app/Activity/Notifications/NotificationManager.php | 52 ++ app/Activity/Tools/ActivityLogger.php | 21 +- app/Activity/Tools/EntityWatchers.php | 86 +++ app/Activity/Tools/UserEntityWatchOptions.php | 131 ++++ app/Activity/Tools/WatchedParentDetails.php | 19 + app/Activity/WatchLevels.php | 91 +++ app/Api/ApiDocsController.php | 2 + app/Api/ApiDocsGenerator.php | 14 +- app/Api/ApiEntityListFormatter.php | 8 +- app/Api/ApiToken.php | 8 + app/Api/UserApiTokenController.php | 48 +- app/App/HomeController.php | 12 +- app/{Notifications => App}/MailNotification.php | 19 +- app/App/Providers/AppServiceProvider.php | 17 +- app/App/Providers/AuthServiceProvider.php | 7 + app/App/Providers/EventServiceProvider.php | 16 +- app/App/Providers/RouteServiceProvider.php | 12 +- app/App/Providers/ThemeServiceProvider.php | 1 + app/App/Providers/ViewTweaksServiceProvider.php | 2 +- app/App/PwaManifestBuilder.php | 64 ++ app/App/helpers.php | 59 +- app/Config/app.php | 22 +- app/Config/mail.php | 2 +- app/Config/oidc.php | 10 +- app/Console/Commands/CleanupImagesCommand.php | 9 +- app/Console/Commands/HandlesSingleUser.php | 40 ++ app/Console/Commands/RefreshAvatarCommand.php | 116 ++++ app/Console/Commands/RegenerateReferencesCommand.php | 2 +- app/Console/Commands/ResetMfaCommand.php | 27 +- app/Console/Commands/UpdateUrlCommand.php | 3 + app/Entities/BreadcrumbsViewComposer.php | 20 +- app/Entities/Controllers/BookApiController.php | 48 +- app/Entities/Controllers/BookController.php | 36 +- app/Entities/Controllers/BookshelfApiController.php | 54 +- app/Entities/Controllers/BookshelfController.php | 32 +- app/Entities/Controllers/ChapterApiController.php | 50 +- app/Entities/Controllers/ChapterController.php | 40 +- app/Entities/Controllers/PageApiController.php | 2 + app/Entities/Controllers/PageController.php | 14 +- app/Entities/EntityProvider.php | 2 +- app/Entities/Models/Book.php | 32 +- app/Entities/Models/BookChild.php | 2 +- app/Entities/Models/Bookshelf.php | 25 +- app/Entities/Models/Chapter.php | 5 +- app/Entities/Models/Entity.php | 18 +- app/Entities/Models/HasHtmlDescription.php | 21 + app/Entities/Models/Page.php | 3 +- app/Entities/Queries/RecentlyViewed.php | 2 +- app/Entities/Queries/TopFavourites.php | 2 +- app/Entities/Repos/BaseRepo.php | 41 +- app/Entities/Repos/BookRepo.php | 50 +- app/Entities/Repos/ChapterRepo.php | 11 +- app/Entities/Repos/PageRepo.php | 50 +- app/Entities/Tools/ExportFormatter.php | 115 ++-- app/Entities/Tools/MixedEntityListLoader.php | 103 +++ app/Entities/Tools/MixedEntityRequestHelper.php | 39 ++ app/Entities/Tools/PageContent.php | 243 +++---- app/Entities/Tools/PageIncludeContent.php | 85 +++ app/Entities/Tools/PageIncludeParser.php | 220 +++++++ app/Entities/Tools/PageIncludeTag.php | 30 + app/Entities/Tools/TrashCan.php | 7 +- app/Exceptions/Handler.php | 43 +- app/Exceptions/ThemeException.php | 7 + app/Http/Controller.php | 28 + app/Http/HttpClientHistory.php | 33 + app/Http/HttpRequestService.php | 70 ++ app/Http/Kernel.php | 3 +- app/Http/Middleware/ApiAuthenticate.php | 4 +- app/Http/Middleware/Authenticate.php | 2 +- app/Http/Middleware/Localization.php | 31 +- app/Http/Middleware/{PreventAuthenticatedResponseCaching.php => PreventResponseCaching.php} | 9 +- app/Notifications/ConfirmEmail.php | 36 -- app/Notifications/ResetPassword.php | 37 -- app/Notifications/UserInvite.php | 34 - app/Permissions/EntityPermissionEvaluator.php | 56 +- app/Permissions/JointPermissionBuilder.php | 4 +- app/Permissions/PermissionApplicator.php | 47 +- app/Permissions/PermissionsRepo.php | 7 +- app/References/CrossLinkParser.php | 12 +- app/References/ReferenceController.php | 16 +- app/References/ReferenceFetcher.php | 58 +- app/References/ReferenceStore.php | 77 ++- app/References/ReferenceUpdater.php | 69 +- app/Search/SearchController.php | 27 + app/Search/SearchIndex.php | 12 +- app/Search/SearchOptions.php | 66 +- app/Search/SearchRunner.php | 9 +- app/Settings/MaintenanceController.php | 5 +- app/Settings/SettingController.php | 2 +- app/Settings/SettingService.php | 4 +- app/Settings/StatusController.php | 7 +- app/{Notifications/TestEmail.php => Settings/TestEmailNotification.php} | 17 +- app/Settings/UserNotificationPreferences.php | 46 ++ app/Theming/CustomHtmlHeadContentProvider.php | 2 +- app/Theming/ThemeEvents.php | 25 +- app/Theming/ThemeService.php | 40 +- app/Translation/LanguageManager.php | 137 ---- app/Translation/LocaleDefinition.php | 53 ++ app/Translation/LocaleManager.php | 122 ++++ app/Uploads/Controllers/DrawioImageController.php | 27 +- app/Uploads/Controllers/GalleryImageController.php | 25 +- app/Uploads/Controllers/ImageController.php | 57 +- app/Uploads/Controllers/ImageGalleryApiController.php | 7 +- app/Uploads/FaviconHandler.php | 15 +- app/Uploads/HttpFetcher.php | 38 -- app/Uploads/Image.php | 7 +- app/Uploads/ImageRepo.php | 49 +- app/Uploads/ImageResizer.php | 222 +++++++ app/Uploads/ImageService.php | 454 ++----------- app/Uploads/ImageStorage.php | 136 ++++ app/Uploads/ImageStorageDisk.php | 140 ++++ app/Uploads/UserAvatars.php | 36 +- app/Users/Controllers/RoleController.php | 10 +- app/Users/Controllers/UserAccountController.php | 227 +++++++ app/Users/Controllers/UserApiController.php | 2 +- app/Users/Controllers/UserController.php | 20 +- app/Users/Controllers/UserPreferencesController.php | 56 +- app/Users/Controllers/UserSearchController.php | 2 +- app/Users/Models/User.php | 61 +- app/Users/UserRepo.php | 16 +- app/Util/HtmlContentFilter.php | 49 +- app/Util/HtmlDescriptionFilter.php | 79 +++ app/Util/HtmlDocument.php | 152 +++++ app/Util/HtmlNonceApplicator.php | 26 +- app/Util/OutOfMemoryHandler.php | 58 ++ app/Util/SsrUrlValidator.php | 64 ++ app/Util/SvgIcon.php | 39 ++ composer.json | 11 +- composer.lock | 1347 ++++++++++++++++++++------------------ database/factories/Entities/Models/BookFactory.php | 4 +- database/factories/Entities/Models/BookshelfFactory.php | 4 +- database/factories/Entities/Models/ChapterFactory.php | 4 +- database/migrations/2023_07_25_124945_add_receive_notifications_role_permissions.php | 51 ++ database/migrations/2023_07_31_104430_create_watches_table.php | 37 ++ database/migrations/2023_08_21_174248_increase_cache_size.php | 32 + database/migrations/2023_12_02_104541_add_default_template_to_books.php | 32 + database/migrations/2023_12_17_140913_add_description_html_to_entities.php | 36 ++ database/seeders/DummyContentSeeder.php | 7 +- database/seeders/LargeContentSeeder.php | 14 +- dev/api/requests/books-create.json | 7 +- dev/api/requests/books-update.json | 6 +- dev/api/requests/chapters-create.json | 5 +- dev/api/requests/chapters-update.json | 5 +- dev/api/requests/pages-create.json | 3 +- dev/api/requests/pages-update.json | 3 +- dev/api/requests/shelves-create.json | 7 +- dev/api/requests/shelves-update.json | 2 +- dev/api/responses/books-create.json | 27 +- dev/api/responses/books-read.json | 2 + dev/api/responses/books-update.json | 24 +- dev/api/responses/chapters-create.json | 11 +- dev/api/responses/chapters-read.json | 1 + dev/api/responses/chapters-update.json | 12 +- dev/api/responses/pages-create.json | 2 +- dev/api/responses/shelves-create.json | 15 +- dev/api/responses/shelves-read.json | 1 + dev/api/responses/shelves-update.json | 17 +- dev/build/esbuild.js | 6 +- dev/docs/development.md | 10 +- dev/docs/javascript-code.md | 10 +- dev/docs/javascript-public-events.md | 68 +- dev/docs/php-testing.md | 87 +++ lang/ar/activities.php | 76 ++- lang/ar/auth.php | 22 +- lang/ar/common.php | 40 +- lang/ar/components.php | 2 + lang/ar/entities.php | 35 +- lang/ar/errors.php | 31 +- lang/ar/notifications.php | 27 + lang/ar/preferences.php | 37 +- lang/ar/settings.php | 38 +- lang/ar/validation.php | 6 +- lang/bg/activities.php | 10 +- lang/bg/common.php | 2 + lang/bg/components.php | 2 + lang/bg/entities.php | 35 +- lang/bg/errors.php | 7 +- lang/bg/notifications.php | 27 + lang/bg/preferences.php | 37 +- lang/bg/settings.php | 14 +- lang/bs/activities.php | 10 +- lang/bs/common.php | 2 + lang/bs/components.php | 2 + lang/bs/entities.php | 35 +- lang/bs/errors.php | 7 +- lang/bs/notifications.php | 27 + lang/bs/preferences.php | 37 +- lang/bs/settings.php | 14 +- lang/ca/activities.php | 130 ++-- lang/ca/auth.php | 116 ++-- lang/ca/common.php | 58 +- lang/ca/components.php | 30 +- lang/ca/editor.php | 302 ++++----- lang/ca/entities.php | 321 +++++----- lang/ca/errors.php | 133 ++-- lang/ca/notifications.php | 27 + lang/ca/passwords.php | 10 +- lang/ca/preferences.php | 55 +- lang/ca/settings.php | 292 +++++---- lang/ca/validation.php | 28 +- lang/cs/activities.php | 70 +- lang/cs/common.php | 4 +- lang/cs/components.php | 24 +- lang/cs/entities.php | 65 +- lang/cs/errors.php | 13 +- lang/cs/notifications.php | 27 + lang/cs/preferences.php | 37 +- lang/cs/settings.php | 16 +- lang/cy/activities.php | 10 +- lang/cy/common.php | 2 + lang/cy/components.php | 2 + lang/cy/entities.php | 35 +- lang/cy/errors.php | 7 +- lang/cy/notifications.php | 27 + lang/cy/preferences.php | 37 +- lang/cy/settings.php | 14 +- lang/da/activities.php | 10 +- lang/da/common.php | 2 + lang/da/components.php | 2 + lang/da/entities.php | 35 +- lang/da/errors.php | 7 +- lang/da/notifications.php | 27 + lang/da/preferences.php | 37 +- lang/da/settings.php | 14 +- lang/de/activities.php | 10 +- lang/de/common.php | 4 +- lang/de/components.php | 2 + lang/de/editor.php | 2 +- lang/de/entities.php | 39 +- lang/de/errors.php | 7 +- lang/de/notifications.php | 27 + lang/de/preferences.php | 37 +- lang/de/settings.php | 14 +- lang/de_informal/activities.php | 40 +- lang/de_informal/common.php | 4 +- lang/de_informal/components.php | 2 + lang/de_informal/entities.php | 41 +- lang/de_informal/errors.php | 7 +- lang/de_informal/notifications.php | 27 + lang/de_informal/passwords.php | 2 +- lang/de_informal/preferences.php | 37 +- lang/de_informal/settings.php | 14 +- lang/el/activities.php | 62 +- lang/el/common.php | 2 + lang/el/components.php | 2 + lang/el/entities.php | 35 +- lang/el/errors.php | 7 +- lang/el/notifications.php | 27 + lang/el/preferences.php | 37 +- lang/el/settings.php | 14 +- lang/en/activities.php | 10 +- lang/en/common.php | 2 + lang/en/components.php | 2 + lang/en/entities.php | 35 +- lang/en/errors.php | 7 +- lang/en/notifications.php | 27 + lang/en/preferences.php | 37 +- lang/en/settings.php | 14 +- lang/es/activities.php | 10 +- lang/es/common.php | 2 + lang/es/components.php | 2 + lang/es/entities.php | 35 +- lang/es/errors.php | 7 +- lang/es/notifications.php | 27 + lang/es/preferences.php | 37 +- lang/es/settings.php | 14 +- lang/es_AR/activities.php | 10 +- lang/es_AR/common.php | 2 + lang/es_AR/components.php | 2 + lang/es_AR/entities.php | 37 +- lang/es_AR/errors.php | 7 +- lang/es_AR/notifications.php | 27 + lang/es_AR/preferences.php | 37 +- lang/es_AR/settings.php | 14 +- lang/et/activities.php | 10 +- lang/et/common.php | 2 + lang/et/components.php | 2 + lang/et/entities.php | 61 +- lang/et/errors.php | 7 +- lang/et/notifications.php | 27 + lang/et/preferences.php | 37 +- lang/et/settings.php | 14 +- lang/eu/activities.php | 10 +- lang/eu/common.php | 2 + lang/eu/components.php | 2 + lang/eu/entities.php | 35 +- lang/eu/errors.php | 7 +- lang/eu/notifications.php | 27 + lang/eu/preferences.php | 37 +- lang/eu/settings.php | 14 +- lang/fa/activities.php | 70 +- lang/fa/common.php | 8 +- lang/fa/components.php | 24 +- lang/fa/entities.php | 91 ++- lang/fa/errors.php | 13 +- lang/fa/notifications.php | 27 + lang/fa/preferences.php | 37 +- lang/fa/settings.php | 24 +- lang/fi/activities.php | 124 ++++ lang/fi/auth.php | 117 ++++ lang/fi/common.php | 110 ++++ lang/fi/components.php | 46 ++ lang/fi/editor.php | 174 +++++ lang/fi/entities.php | 437 +++++++++++++ lang/fi/errors.php | 120 ++++ lang/fi/notifications.php | 27 + lang/fi/pagination.php | 12 + lang/fi/passwords.php | 15 + lang/fi/preferences.php | 51 ++ lang/fi/settings.php | 329 ++++++++++ lang/fi/validation.php | 117 ++++ lang/fr/activities.php | 10 +- lang/fr/common.php | 2 + lang/fr/components.php | 2 + lang/fr/entities.php | 37 +- lang/fr/errors.php | 7 +- lang/fr/notifications.php | 27 + lang/fr/preferences.php | 37 +- lang/fr/settings.php | 14 +- lang/he/activities.php | 10 +- lang/he/common.php | 2 + lang/he/components.php | 2 + lang/he/entities.php | 35 +- lang/he/errors.php | 7 +- lang/he/notifications.php | 27 + lang/he/preferences.php | 37 +- lang/he/settings.php | 14 +- lang/hr/activities.php | 10 +- lang/hr/common.php | 2 + lang/hr/components.php | 2 + lang/hr/entities.php | 37 +- lang/hr/errors.php | 7 +- lang/hr/notifications.php | 29 + lang/hr/preferences.php | 39 +- lang/hr/settings.php | 14 +- lang/hu/activities.php | 20 +- lang/hu/common.php | 16 +- lang/hu/components.php | 2 + lang/hu/editor.php | 6 +- lang/hu/entities.php | 35 +- lang/hu/errors.php | 7 +- lang/hu/notifications.php | 27 + lang/hu/preferences.php | 37 +- lang/hu/settings.php | 14 +- lang/id/activities.php | 10 +- lang/id/common.php | 2 + lang/id/components.php | 2 + lang/id/entities.php | 35 +- lang/id/errors.php | 7 +- lang/id/notifications.php | 27 + lang/id/preferences.php | 37 +- lang/id/settings.php | 14 +- lang/it/activities.php | 10 +- lang/it/common.php | 2 + lang/it/components.php | 2 + lang/it/entities.php | 37 +- lang/it/errors.php | 7 +- lang/it/notifications.php | 27 + lang/it/preferences.php | 37 +- lang/it/settings.php | 14 +- lang/ja/activities.php | 10 +- lang/ja/common.php | 2 + lang/ja/components.php | 2 + lang/ja/entities.php | 42 +- lang/ja/errors.php | 7 +- lang/ja/notifications.php | 27 + lang/ja/preferences.php | 39 +- lang/ja/settings.php | 14 +- lang/ka/activities.php | 10 +- lang/ka/common.php | 2 + lang/ka/components.php | 2 + lang/ka/entities.php | 35 +- lang/ka/errors.php | 7 +- lang/ka/notifications.php | 27 + lang/ka/preferences.php | 37 +- lang/ka/settings.php | 14 +- lang/ko/activities.php | 42 +- lang/ko/common.php | 2 + lang/ko/components.php | 18 +- lang/ko/entities.php | 35 +- lang/ko/errors.php | 7 +- lang/ko/notifications.php | 27 + lang/ko/preferences.php | 37 +- lang/ko/settings.php | 14 +- lang/lt/activities.php | 10 +- lang/lt/common.php | 2 + lang/lt/components.php | 2 + lang/lt/entities.php | 35 +- lang/lt/errors.php | 7 +- lang/lt/notifications.php | 27 + lang/lt/preferences.php | 37 +- lang/lt/settings.php | 14 +- lang/lv/activities.php | 20 +- lang/lv/common.php | 2 + lang/lv/components.php | 4 +- lang/lv/entities.php | 35 +- lang/lv/errors.php | 7 +- lang/lv/notifications.php | 27 + lang/lv/preferences.php | 37 +- lang/lv/settings.php | 14 +- lang/nb/activities.php | 70 +- lang/nb/common.php | 6 +- lang/nb/components.php | 4 +- lang/nb/entities.php | 53 +- lang/nb/errors.php | 9 +- lang/nb/notifications.php | 27 + lang/nb/preferences.php | 37 +- lang/nb/settings.php | 14 +- lang/nl/activities.php | 10 +- lang/nl/common.php | 2 + lang/nl/components.php | 2 + lang/nl/entities.php | 37 +- lang/nl/errors.php | 7 +- lang/nl/notifications.php | 27 + lang/nl/preferences.php | 37 +- lang/nl/settings.php | 14 +- lang/nn/activities.php | 124 ++++ lang/nn/auth.php | 117 ++++ lang/nn/common.php | 110 ++++ lang/nn/components.php | 46 ++ lang/nn/editor.php | 174 +++++ lang/nn/entities.php | 437 +++++++++++++ lang/nn/errors.php | 119 ++++ lang/nn/notifications.php | 27 + lang/nn/pagination.php | 12 + lang/nn/passwords.php | 15 + lang/nn/preferences.php | 51 ++ lang/nn/settings.php | 329 ++++++++++ lang/nn/validation.php | 117 ++++ lang/pl/activities.php | 10 +- lang/pl/common.php | 2 + lang/pl/components.php | 2 + lang/pl/entities.php | 47 +- lang/pl/errors.php | 7 +- lang/pl/notifications.php | 27 + lang/pl/preferences.php | 37 +- lang/pl/settings.php | 14 +- lang/pt/activities.php | 10 +- lang/pt/common.php | 2 + lang/pt/components.php | 2 + lang/pt/entities.php | 37 +- lang/pt/errors.php | 7 +- lang/pt/notifications.php | 27 + lang/pt/preferences.php | 37 +- lang/pt/settings.php | 14 +- lang/pt_BR/activities.php | 72 ++- lang/pt_BR/common.php | 4 +- lang/pt_BR/components.php | 16 +- lang/pt_BR/entities.php | 61 +- lang/pt_BR/errors.php | 11 +- lang/pt_BR/notifications.php | 27 + lang/pt_BR/preferences.php | 37 +- lang/pt_BR/settings.php | 14 +- lang/ro/activities.php | 10 +- lang/ro/common.php | 2 + lang/ro/components.php | 4 +- lang/ro/entities.php | 53 +- lang/ro/errors.php | 7 +- lang/ro/notifications.php | 27 + lang/ro/preferences.php | 39 +- lang/ro/settings.php | 28 +- lang/ru/activities.php | 56 +- lang/ru/auth.php | 14 +- lang/ru/common.php | 4 +- lang/ru/components.php | 16 +- lang/ru/entities.php | 63 +- lang/ru/errors.php | 9 +- lang/ru/notifications.php | 27 + lang/ru/preferences.php | 37 +- lang/ru/settings.php | 20 +- lang/sk/activities.php | 10 +- lang/sk/common.php | 2 + lang/sk/components.php | 2 + lang/sk/entities.php | 35 +- lang/sk/errors.php | 7 +- lang/sk/notifications.php | 27 + lang/sk/preferences.php | 37 +- lang/sk/settings.php | 14 +- lang/sl/activities.php | 10 +- lang/sl/common.php | 2 + lang/sl/components.php | 2 + lang/sl/entities.php | 35 +- lang/sl/errors.php | 7 +- lang/sl/notifications.php | 27 + lang/sl/preferences.php | 37 +- lang/sl/settings.php | 14 +- lang/sq/activities.php | 124 ++++ lang/sq/auth.php | 117 ++++ lang/sq/common.php | 110 ++++ lang/sq/components.php | 46 ++ lang/sq/editor.php | 174 +++++ lang/sq/entities.php | 437 +++++++++++++ lang/sq/errors.php | 119 ++++ lang/sq/notifications.php | 27 + lang/sq/pagination.php | 12 + lang/sq/passwords.php | 15 + lang/sq/preferences.php | 51 ++ lang/sq/settings.php | 329 ++++++++++ lang/sq/validation.php | 117 ++++ lang/sv/activities.php | 24 +- lang/sv/auth.php | 2 +- lang/sv/common.php | 4 +- lang/sv/components.php | 2 + lang/sv/entities.php | 35 +- lang/sv/errors.php | 7 +- lang/sv/notifications.php | 27 + lang/sv/preferences.php | 39 +- lang/sv/settings.php | 14 +- lang/tr/activities.php | 22 +- lang/tr/common.php | 2 + lang/tr/components.php | 2 + lang/tr/entities.php | 35 +- lang/tr/errors.php | 7 +- lang/tr/notifications.php | 27 + lang/tr/preferences.php | 37 +- lang/tr/settings.php | 14 +- lang/uk/activities.php | 70 +- lang/uk/common.php | 4 +- lang/uk/components.php | 24 +- lang/uk/entities.php | 65 +- lang/uk/errors.php | 13 +- lang/uk/notifications.php | 27 + lang/uk/preferences.php | 37 +- lang/uk/settings.php | 18 +- lang/uz/activities.php | 56 +- lang/uz/auth.php | 166 ++--- lang/uz/common.php | 168 ++--- lang/uz/components.php | 50 +- lang/uz/editor.php | 300 ++++----- lang/uz/entities.php | 695 ++++++++++---------- lang/uz/errors.php | 167 ++--- lang/uz/notifications.php | 27 + lang/uz/pagination.php | 4 +- lang/uz/passwords.php | 10 +- lang/uz/preferences.php | 55 +- lang/uz/settings.php | 494 +++++++------- lang/uz/validation.php | 162 ++--- lang/vi/activities.php | 54 +- lang/vi/common.php | 4 +- lang/vi/components.php | 16 +- lang/vi/entities.php | 61 +- lang/vi/errors.php | 7 +- lang/vi/notifications.php | 27 + lang/vi/preferences.php | 37 +- lang/vi/settings.php | 14 +- lang/zh_CN/activities.php | 62 +- lang/zh_CN/common.php | 2 + lang/zh_CN/components.php | 2 + lang/zh_CN/entities.php | 57 +- lang/zh_CN/errors.php | 7 +- lang/zh_CN/notifications.php | 27 + lang/zh_CN/preferences.php | 37 +- lang/zh_CN/settings.php | 14 +- lang/zh_TW/activities.php | 16 +- lang/zh_TW/common.php | 2 + lang/zh_TW/components.php | 2 + lang/zh_TW/entities.php | 37 +- lang/zh_TW/errors.php | 7 +- lang/zh_TW/notifications.php | 27 + lang/zh_TW/preferences.php | 37 +- lang/zh_TW/settings.php | 18 +- package-lock.json | 1921 ++++++++++++++++++++++++++++++++----------------------- package.json | 39 +- phpstan.neon.dist | 2 +- phpunit.xml | 1 + public/dist/app.js | 54 +- public/dist/code.js | 38 +- public/dist/export-styles.css | 2 +- public/dist/legacy-modes.js | 2 +- public/dist/print-styles.css | 1 - public/dist/styles.css | 2 +- public/libs/tinymce/icons/default/icons.min.js | 2 +- public/libs/tinymce/models/dom/model.min.js | 2 +- public/libs/tinymce/plugins/advlist/plugin.min.js | 2 +- public/libs/tinymce/plugins/anchor/plugin.min.js | 2 +- public/libs/tinymce/plugins/autolink/plugin.min.js | 2 +- public/libs/tinymce/plugins/autoresize/plugin.min.js | 2 +- public/libs/tinymce/plugins/autosave/plugin.min.js | 2 +- public/libs/tinymce/plugins/charmap/plugin.min.js | 2 +- public/libs/tinymce/plugins/code/plugin.min.js | 2 +- public/libs/tinymce/plugins/codesample/plugin.min.js | 2 +- public/libs/tinymce/plugins/directionality/plugin.min.js | 2 +- public/libs/tinymce/plugins/fullscreen/plugin.min.js | 2 +- public/libs/tinymce/plugins/help/plugin.min.js | 4 - public/libs/tinymce/plugins/image/plugin.min.js | 4 +- public/libs/tinymce/plugins/importcss/plugin.min.js | 2 +- public/libs/tinymce/plugins/insertdatetime/plugin.min.js | 2 +- public/libs/tinymce/plugins/link/plugin.min.js | 2 +- public/libs/tinymce/plugins/lists/plugin.min.js | 4 +- public/libs/tinymce/plugins/media/plugin.min.js | 4 +- public/libs/tinymce/plugins/nonbreaking/plugin.min.js | 2 +- public/libs/tinymce/plugins/pagebreak/plugin.min.js | 2 +- public/libs/tinymce/plugins/preview/plugin.min.js | 2 +- public/libs/tinymce/plugins/quickbars/plugin.min.js | 4 +- public/libs/tinymce/plugins/save/plugin.min.js | 2 +- public/libs/tinymce/plugins/searchreplace/plugin.min.js | 2 +- public/libs/tinymce/plugins/table/plugin.min.js | 4 +- public/libs/tinymce/plugins/template/plugin.min.js | 2 +- public/libs/tinymce/plugins/visualblocks/plugin.min.js | 2 +- public/libs/tinymce/plugins/visualchars/plugin.min.js | 2 +- public/libs/tinymce/plugins/wordcount/plugin.min.js | 2 +- public/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css | 2 +- public/libs/tinymce/skins/ui/oxide-dark/content.min.css | 2 +- public/libs/tinymce/skins/ui/oxide-dark/skin.min.css | 2 +- public/libs/tinymce/skins/ui/oxide/content.inline.min.css | 2 +- public/libs/tinymce/skins/ui/oxide/content.min.css | 2 +- public/libs/tinymce/skins/ui/oxide/skin.min.css | 2 +- public/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css | 2 +- public/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css | 2 +- public/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css | 2 +- public/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css | 2 +- public/libs/tinymce/skins/ui/tinymce-5/content.min.css | 2 +- public/libs/tinymce/skins/ui/tinymce-5/skin.min.css | 2 +- public/libs/tinymce/themes/silver/theme.min.js | 4 +- public/libs/tinymce/tinymce.d.ts | 22 +- public/libs/tinymce/tinymce.min.js | 4 +- readme.md | 36 +- resources/icons/notifications.svg | 1 + resources/icons/security.svg | 1 + resources/icons/user-preferences.svg | 1 + resources/icons/watch-ignore.svg | 1 + resources/icons/{view.svg => watch.svg} | 1 - resources/js/code/index.mjs | 15 +- resources/js/code/views.js | 20 +- resources/js/components/auto-suggest.js | 5 +- resources/js/components/dropdown.js | 7 + resources/js/components/editor-toolbox.js | 6 +- resources/js/components/entity-selector-popup.js | 14 +- resources/js/components/entity-selector.js | 47 +- resources/js/components/image-manager.js | 35 +- resources/js/components/index.js | 1 + resources/js/components/page-comments.js | 14 +- resources/js/components/page-display.js | 11 - resources/js/components/page-picker.js | 9 +- resources/js/components/shortcuts.js | 7 +- resources/js/components/wysiwyg-editor.js | 12 +- resources/js/components/wysiwyg-input.js | 26 + resources/js/markdown/actions.js | 31 +- resources/js/services/drawio.js | 44 +- resources/js/services/store.js | 1 + resources/js/services/util.js | 47 +- resources/js/wysiwyg/config.js | 84 ++- resources/js/wysiwyg/drop-paste-handling.js | 2 +- resources/js/wysiwyg/filters.js | 43 ++ resources/js/wysiwyg/fixes.js | 55 ++ resources/js/wysiwyg/plugin-drawio.js | 35 +- resources/js/wysiwyg/plugins-imagemanager.js | 2 +- resources/js/wysiwyg/shortcuts.js | 5 + resources/sass/_blocks.scss | 4 +- resources/sass/_buttons.scss | 8 +- resources/sass/_components.scss | 14 +- resources/sass/_content.scss | 8 +- resources/sass/_forms.scss | 42 +- resources/sass/_header.scss | 43 +- resources/sass/_layout.scss | 140 ++-- resources/sass/_lists.scss | 11 +- resources/sass/_pages.scss | 173 ++++- resources/sass/{print-styles.scss => _print.scss} | 7 - resources/sass/_text.scss | 1 + resources/sass/_tinymce.scss | 37 ++ resources/sass/_variables.scss | 1 + resources/sass/styles.scss | 12 + resources/views/api-docs/parts/getting-started.blade.php | 10 +- resources/views/books/create.blade.php | 6 +- resources/views/books/edit.blade.php | 5 +- resources/views/books/index.blade.php | 6 +- resources/views/books/parts/form.blade.php | 35 +- resources/views/books/parts/list.blade.php | 10 +- resources/views/books/show.blade.php | 13 +- resources/views/chapters/parts/form.blade.php | 13 +- resources/views/chapters/show.blade.php | 9 +- resources/views/common/activity-list.blade.php | 2 +- resources/views/common/confirm-dialog.blade.php | 3 +- resources/views/common/dark-mode-toggle.blade.php | 1 + resources/views/common/header.blade.php | 121 ---- resources/views/common/sort.blade.php | 1 + resources/views/entities/favourite-action.blade.php | 2 +- resources/views/entities/icon-link.blade.php | 7 + resources/views/entities/list.blade.php | 2 +- resources/views/entities/meta.blade.php | 20 +- resources/views/entities/selector-popup.blade.php | 4 +- resources/views/entities/selector.blade.php | 3 +- resources/views/entities/view-toggle.blade.php | 7 +- resources/views/entities/watch-action.blade.php | 13 + resources/views/entities/watch-controls.blade.php | 46 ++ resources/views/errors/404.blade.php | 78 +-- resources/views/exports/book.blade.php | 2 +- resources/views/exports/chapter.blade.php | 2 +- resources/views/exports/parts/chapter-item.blade.php | 2 +- resources/views/form/description-html-input.blade.php | 8 + resources/views/{pages/parts => form}/editor-translations.blade.php | 0 resources/views/form/page-picker.blade.php | 14 + resources/views/home/books.blade.php | 4 + resources/views/home/default.blade.php | 30 +- resources/views/home/shelves.blade.php | 4 + resources/views/layouts/base.blade.php | 29 +- resources/views/layouts/export.blade.php | 4 +- resources/views/{common => layouts/parts}/custom-head.blade.php | 0 resources/views/{common => layouts/parts}/custom-styles.blade.php | 0 resources/views/{common => layouts/parts}/footer.blade.php | 2 +- resources/views/layouts/parts/header-links-start.blade.php | 2 + resources/views/layouts/parts/header-links.blade.php | 25 + resources/views/layouts/parts/header-logo.blade.php | 8 + resources/views/layouts/parts/header-search.blade.php | 20 + resources/views/layouts/parts/header-user-menu.blade.php | 48 ++ resources/views/layouts/parts/header.blade.php | 25 + resources/views/{common => layouts/parts}/notifications.blade.php | 0 resources/views/{common => layouts/parts}/skip-to-content.blade.php | 0 resources/views/layouts/plain.blade.php | 11 +- resources/views/layouts/tri.blade.php | 24 +- resources/views/pages/delete.blade.php | 3 + resources/views/pages/edit.blade.php | 3 +- resources/views/pages/guest-create.blade.php | 2 +- resources/views/pages/parts/editor-toolbar.blade.php | 183 +++--- resources/views/pages/parts/editor-toolbox.blade.php | 22 +- resources/views/pages/parts/form.blade.php | 52 +- resources/views/pages/parts/image-manager-form.blade.php | 12 + resources/views/pages/parts/image-manager-list.blade.php | 8 +- resources/views/pages/parts/markdown-editor.blade.php | 6 +- resources/views/pages/parts/template-manager.blade.php | 2 +- resources/views/pages/parts/wysiwyg-editor.blade.php | 6 +- resources/views/pages/revision.blade.php | 2 +- resources/views/pages/show.blade.php | 9 +- resources/views/search/all.blade.php | 2 +- resources/views/settings/audit.blade.php | 10 +- resources/views/settings/customization.blade.php | 11 +- resources/views/settings/layout.blade.php | 2 +- resources/views/settings/parts/page-picker.blade.php | 13 - resources/views/settings/roles/parts/form.blade.php | 1 + resources/views/shelves/index.blade.php | 4 +- resources/views/shelves/parts/form.blade.php | 14 +- resources/views/shelves/parts/list.blade.php | 9 +- resources/views/shelves/show.blade.php | 10 +- resources/views/users/account/auth.blade.php | 87 +++ resources/views/users/account/delete.blade.php | 43 ++ resources/views/users/account/layout.blade.php | 29 + resources/views/users/account/notifications.blade.php | 71 ++ resources/views/users/{preferences => account}/parts/shortcut-control.blade.php | 0 resources/views/users/account/profile.blade.php | 91 +++ resources/views/users/account/shortcuts.blade.php | 71 ++ resources/views/users/api-tokens/create.blade.php | 6 +- resources/views/users/api-tokens/delete.blade.php | 8 +- resources/views/users/api-tokens/edit.blade.php | 10 +- resources/views/users/api-tokens/parts/list.blade.php | 7 +- resources/views/users/create.blade.php | 2 +- resources/views/users/delete.blade.php | 26 +- resources/views/users/edit.blade.php | 53 +- resources/views/users/parts/form.blade.php | 39 +- resources/views/users/preferences/shortcuts.blade.php | 75 --- resources/views/vendor/notifications/email.blade.php | 14 +- routes/web.php | 38 +- tests/Actions/WebhookCallTest.php | 68 +- tests/Activity/WatchTest.php | 440 +++++++++++++ tests/Api/BooksApiTest.php | 62 +- tests/Api/ChaptersApiTest.php | 54 +- tests/Api/PagesApiTest.php | 2 + tests/Api/SearchApiTest.php | 2 +- tests/Api/ShelvesApiTest.php | 51 +- tests/Api/UsersApiTest.php | 21 +- tests/Auth/OidcTest.php | 167 ++++- tests/Auth/RegistrationTest.php | 6 +- tests/Auth/ResetPasswordTest.php | 8 +- tests/Auth/Saml2Test.php | 73 ++- tests/Auth/SocialAuthTest.php | 43 +- tests/Auth/UserInviteTest.php | 6 +- tests/Commands/CleanupImagesCommandTest.php | 17 +- tests/Commands/RefreshAvatarCommandTest.php | 246 +++++++ tests/Commands/ResetMfaCommandTest.php | 2 +- tests/Commands/UpdateUrlCommandTest.php | 23 + tests/DebugViewTest.php | 6 +- tests/Entity/BookDefaultTemplateTest.php | 185 ++++++ tests/Entity/BookShelfTest.php | 43 +- tests/Entity/BookTest.php | 55 +- tests/Entity/ChapterTest.php | 15 +- tests/Entity/CommentTest.php | 19 + tests/Entity/ConvertTest.php | 2 + tests/Entity/EntitySearchTest.php | 37 +- tests/Entity/ExportTest.php | 77 ++- tests/Entity/PageContentTest.php | 106 ++- tests/Entity/PageRevisionTest.php | 2 +- tests/Entity/SearchOptionsTest.php | 35 + tests/ErrorTest.php | 13 + tests/FavouriteTest.php | 25 +- tests/Helpers/EntityProvider.php | 20 + tests/Helpers/FileProvider.php | 19 +- tests/Helpers/PermissionsProvider.php | 11 +- tests/Helpers/UserRoleProvider.php | 8 + tests/HomepageTest.php | 17 +- tests/LanguageTest.php | 19 +- tests/Permissions/RolePermissionsTest.php | 16 +- tests/PublicActionTest.php | 16 +- tests/PwaManifestTest.php | 72 +++ tests/References/ReferencesTest.php | 76 ++- tests/SecurityHeaderTest.php | 11 +- tests/Settings/RegenerateReferencesTest.php | 4 +- tests/Settings/TestEmailTest.php | 6 +- tests/TestCase.php | 38 +- tests/ThemeTest.php | 78 ++- tests/Unit/PageIncludeParserTest.php | 240 +++++++ tests/Unit/SsrUrlValidatorTest.php | 62 ++ tests/Uploads/AvatarTest.php | 62 +- tests/Uploads/ImageTest.php | 28 +- tests/User/RoleManagementTest.php | 2 +- tests/User/UserApiTokenTest.php | 86 ++- tests/User/UserManagementTest.php | 6 +- tests/User/UserMyAccountTest.php | 339 ++++++++++ tests/User/UserPreferencesTest.php | 62 +- tests/User/UserSearchTest.php | 3 +- version | 2 +- 863 files changed, 25268 insertions(+), 7904 deletions(-) create mode 100644 app/Access/Notifications/ConfirmEmailNotification.php create mode 100644 app/Access/Notifications/ResetPasswordNotification.php create mode 100644 app/Access/Notifications/UserInviteNotification.php create mode 100644 app/Access/SocialDriverManager.php create mode 100644 app/Activity/Controllers/WatchController.php create mode 100644 app/Activity/Models/Watch.php create mode 100644 app/Activity/Notifications/Handlers/BaseNotificationHandler.php create mode 100644 app/Activity/Notifications/Handlers/CommentCreationNotificationHandler.php create mode 100644 app/Activity/Notifications/Handlers/NotificationHandler.php create mode 100644 app/Activity/Notifications/Handlers/PageCreationNotificationHandler.php create mode 100644 app/Activity/Notifications/Handlers/PageUpdateNotificationHandler.php create mode 100644 app/Activity/Notifications/MessageParts/EntityLinkMessageLine.php create mode 100644 app/Activity/Notifications/MessageParts/EntityPathMessageLine.php create mode 100644 app/Activity/Notifications/MessageParts/LinkedMailMessageLine.php create mode 100644 app/Activity/Notifications/MessageParts/ListMessageLine.php create mode 100644 app/Activity/Notifications/Messages/BaseActivityNotification.php create mode 100644 app/Activity/Notifications/Messages/CommentCreationNotification.php create mode 100644 app/Activity/Notifications/Messages/PageCreationNotification.php create mode 100644 app/Activity/Notifications/Messages/PageUpdateNotification.php create mode 100644 app/Activity/Notifications/NotificationManager.php create mode 100644 app/Activity/Tools/EntityWatchers.php create mode 100644 app/Activity/Tools/UserEntityWatchOptions.php create mode 100644 app/Activity/Tools/WatchedParentDetails.php create mode 100644 app/Activity/WatchLevels.php rename app/{Notifications => App}/MailNotification.php (56%) create mode 100644 app/App/PwaManifestBuilder.php create mode 100644 app/Console/Commands/HandlesSingleUser.php create mode 100644 app/Console/Commands/RefreshAvatarCommand.php create mode 100644 app/Entities/Models/HasHtmlDescription.php create mode 100644 app/Entities/Tools/MixedEntityListLoader.php create mode 100644 app/Entities/Tools/MixedEntityRequestHelper.php create mode 100644 app/Entities/Tools/PageIncludeContent.php create mode 100644 app/Entities/Tools/PageIncludeParser.php create mode 100644 app/Entities/Tools/PageIncludeTag.php create mode 100644 app/Exceptions/ThemeException.php create mode 100644 app/Http/HttpClientHistory.php create mode 100644 app/Http/HttpRequestService.php rename app/Http/Middleware/{PreventAuthenticatedResponseCaching.php => PreventResponseCaching.php} (59%) delete mode 100644 app/Notifications/ConfirmEmail.php delete mode 100644 app/Notifications/ResetPassword.php delete mode 100644 app/Notifications/UserInvite.php rename app/{Notifications/TestEmail.php => Settings/TestEmailNotification.php} (50%) create mode 100644 app/Settings/UserNotificationPreferences.php delete mode 100644 app/Translation/LanguageManager.php create mode 100644 app/Translation/LocaleDefinition.php create mode 100644 app/Translation/LocaleManager.php delete mode 100644 app/Uploads/HttpFetcher.php create mode 100644 app/Uploads/ImageResizer.php create mode 100644 app/Uploads/ImageStorage.php create mode 100644 app/Uploads/ImageStorageDisk.php create mode 100644 app/Users/Controllers/UserAccountController.php create mode 100644 app/Util/HtmlDescriptionFilter.php create mode 100644 app/Util/HtmlDocument.php create mode 100644 app/Util/OutOfMemoryHandler.php create mode 100644 app/Util/SsrUrlValidator.php create mode 100644 app/Util/SvgIcon.php create mode 100644 database/migrations/2023_07_25_124945_add_receive_notifications_role_permissions.php create mode 100644 database/migrations/2023_07_31_104430_create_watches_table.php create mode 100644 database/migrations/2023_08_21_174248_increase_cache_size.php create mode 100644 database/migrations/2023_12_02_104541_add_default_template_to_books.php create mode 100644 database/migrations/2023_12_17_140913_add_description_html_to_entities.php create mode 100644 dev/docs/php-testing.md create mode 100644 lang/ar/notifications.php create mode 100644 lang/bg/notifications.php create mode 100644 lang/bs/notifications.php create mode 100644 lang/ca/notifications.php create mode 100644 lang/cs/notifications.php create mode 100644 lang/cy/notifications.php create mode 100644 lang/da/notifications.php create mode 100644 lang/de/notifications.php create mode 100644 lang/de_informal/notifications.php create mode 100644 lang/el/notifications.php create mode 100644 lang/en/notifications.php create mode 100644 lang/es/notifications.php create mode 100644 lang/es_AR/notifications.php create mode 100644 lang/et/notifications.php create mode 100644 lang/eu/notifications.php create mode 100644 lang/fa/notifications.php create mode 100644 lang/fi/activities.php create mode 100644 lang/fi/auth.php create mode 100644 lang/fi/common.php create mode 100644 lang/fi/components.php create mode 100644 lang/fi/editor.php create mode 100644 lang/fi/entities.php create mode 100644 lang/fi/errors.php create mode 100644 lang/fi/notifications.php create mode 100644 lang/fi/pagination.php create mode 100644 lang/fi/passwords.php create mode 100644 lang/fi/preferences.php create mode 100644 lang/fi/settings.php create mode 100644 lang/fi/validation.php create mode 100644 lang/fr/notifications.php create mode 100644 lang/he/notifications.php create mode 100644 lang/hr/notifications.php create mode 100644 lang/hu/notifications.php create mode 100644 lang/id/notifications.php create mode 100644 lang/it/notifications.php create mode 100644 lang/ja/notifications.php create mode 100644 lang/ka/notifications.php create mode 100644 lang/ko/notifications.php create mode 100644 lang/lt/notifications.php create mode 100644 lang/lv/notifications.php create mode 100644 lang/nb/notifications.php create mode 100644 lang/nl/notifications.php create mode 100644 lang/nn/activities.php create mode 100644 lang/nn/auth.php create mode 100644 lang/nn/common.php create mode 100644 lang/nn/components.php create mode 100644 lang/nn/editor.php create mode 100644 lang/nn/entities.php create mode 100644 lang/nn/errors.php create mode 100644 lang/nn/notifications.php create mode 100644 lang/nn/pagination.php create mode 100644 lang/nn/passwords.php create mode 100644 lang/nn/preferences.php create mode 100644 lang/nn/settings.php create mode 100644 lang/nn/validation.php create mode 100644 lang/pl/notifications.php create mode 100644 lang/pt/notifications.php create mode 100644 lang/pt_BR/notifications.php create mode 100644 lang/ro/notifications.php create mode 100644 lang/ru/notifications.php create mode 100644 lang/sk/notifications.php create mode 100644 lang/sl/notifications.php create mode 100644 lang/sq/activities.php create mode 100644 lang/sq/auth.php create mode 100644 lang/sq/common.php create mode 100644 lang/sq/components.php create mode 100644 lang/sq/editor.php create mode 100644 lang/sq/entities.php create mode 100644 lang/sq/errors.php create mode 100644 lang/sq/notifications.php create mode 100644 lang/sq/pagination.php create mode 100644 lang/sq/passwords.php create mode 100644 lang/sq/preferences.php create mode 100644 lang/sq/settings.php create mode 100644 lang/sq/validation.php create mode 100644 lang/sv/notifications.php create mode 100644 lang/tr/notifications.php create mode 100644 lang/uk/notifications.php create mode 100644 lang/uz/notifications.php create mode 100644 lang/vi/notifications.php create mode 100644 lang/zh_CN/notifications.php create mode 100644 lang/zh_TW/notifications.php delete mode 100644 public/dist/print-styles.css delete mode 100644 public/libs/tinymce/plugins/help/plugin.min.js create mode 100644 resources/icons/notifications.svg create mode 100644 resources/icons/security.svg create mode 100644 resources/icons/user-preferences.svg create mode 100644 resources/icons/watch-ignore.svg rename resources/icons/{view.svg => watch.svg} (85%) create mode 100644 resources/js/components/wysiwyg-input.js create mode 100644 resources/js/services/store.js create mode 100644 resources/js/wysiwyg/filters.js create mode 100644 resources/js/wysiwyg/fixes.js rename resources/sass/{print-styles.scss => _print.scss} (85%) delete mode 100644 resources/views/common/header.blade.php create mode 100644 resources/views/entities/icon-link.blade.php create mode 100644 resources/views/entities/watch-action.blade.php create mode 100644 resources/views/entities/watch-controls.blade.php create mode 100644 resources/views/form/description-html-input.blade.php rename resources/views/{pages/parts => form}/editor-translations.blade.php (100%) create mode 100644 resources/views/form/page-picker.blade.php rename resources/views/{common => layouts/parts}/custom-head.blade.php (100%) rename resources/views/{common => layouts/parts}/custom-styles.blade.php (100%) rename resources/views/{common => layouts/parts}/footer.blade.php (89%) create mode 100644 resources/views/layouts/parts/header-links-start.blade.php create mode 100644 resources/views/layouts/parts/header-links.blade.php create mode 100644 resources/views/layouts/parts/header-logo.blade.php create mode 100644 resources/views/layouts/parts/header-search.blade.php create mode 100644 resources/views/layouts/parts/header-user-menu.blade.php create mode 100644 resources/views/layouts/parts/header.blade.php rename resources/views/{common => layouts/parts}/notifications.blade.php (100%) rename resources/views/{common => layouts/parts}/skip-to-content.blade.php (100%) delete mode 100644 resources/views/settings/parts/page-picker.blade.php create mode 100644 resources/views/users/account/auth.blade.php create mode 100644 resources/views/users/account/delete.blade.php create mode 100644 resources/views/users/account/layout.blade.php create mode 100644 resources/views/users/account/notifications.blade.php rename resources/views/users/{preferences => account}/parts/shortcut-control.blade.php (100%) create mode 100644 resources/views/users/account/profile.blade.php create mode 100644 resources/views/users/account/shortcuts.blade.php delete mode 100644 resources/views/users/preferences/shortcuts.blade.php create mode 100644 tests/Activity/WatchTest.php create mode 100644 tests/Commands/RefreshAvatarCommandTest.php create mode 100644 tests/Entity/BookDefaultTemplateTest.php create mode 100644 tests/PwaManifestTest.php create mode 100644 tests/Unit/PageIncludeParserTest.php create mode 100644 tests/Unit/SsrUrlValidatorTest.php create mode 100644 tests/User/UserMyAccountTest.php administrator@Company-BookStack:/var/www/bookstack$ composer install --no-dev > @php -r "!file_exists('bootstrap/cache/services.php') || @unlink('bootstrap/cache/services.php');" Installing dependencies from lock file Verifying lock file contents can be installed on current platform. Package operations: 2 installs, 52 updates, 1 removal - Downloading aws/aws-crt-php (v1.2.4) - Downloading dasprid/enum (1.0.5) - Downloading symfony/polyfill-php80 (v1.28.0) - Downloading symfony/polyfill-mbstring (v1.28.0) - Downloading symfony/polyfill-ctype (v1.28.0) - Downloading phpoption/phpoption (1.9.2) - Downloading graham-campbell/result-type (v1.1.2) - Downloading vlucas/phpdotenv (v5.6.0) - Downloading tijsverkoyen/css-to-inline-styles (v2.2.7) - Downloading symfony/polyfill-uuid (v1.28.0) - Downloading symfony/polyfill-php72 (v1.28.0) - Downloading symfony/polyfill-intl-normalizer (v1.28.0) - Downloading symfony/polyfill-intl-idn (v1.28.0) - Downloading doctrine/deprecations (1.1.2) - Downloading symfony/polyfill-intl-grapheme (v1.28.0) - Downloading symfony/polyfill-php81 (v1.28.0) - Downloading ramsey/uuid (4.7.5) - Downloading psr/clock (1.0.0) - Downloading carbonphp/carbon-doctrine-types (2.1.0) - Downloading nesbot/carbon (2.72.1) - Downloading monolog/monolog (2.9.2) - Downloading league/mime-type-detection (1.14.0) - Downloading league/flysystem (3.23.0) - Downloading league/flysystem-local (3.23.0) - Downloading nette/utils (v4.0.3) - Downloading nette/schema (v1.2.5) - Downloading league/commonmark (2.4.1) - Downloading laravel/serializable-closure (v1.3.3) - Downloading guzzlehttp/uri-template (v1.0.3) - Downloading fruitcake/php-cors (v1.3.0) - Downloading dragonmantank/cron-expression (v3.3.3) - Downloading laravel/framework (v9.52.16) - Downloading phenx/php-svg-lib (0.5.1) - Downloading masterminds/html5 (2.8.1) - Downloading dompdf/dompdf (v2.0.4) - Downloading knplabs/knp-snappy (v1.4.4) - Downloading doctrine/dbal (3.7.2) - Downloading guzzlehttp/promises (2.0.2) - Downloading guzzlehttp/psr7 (2.6.2) - Downloading psr/http-client (1.0.3) - Downloading guzzlehttp/guzzle (7.8.1) - Downloading laravel/socialite (v5.11.0) - Downloading nikic/php-parser (v4.18.0) - Downloading psy/psysh (v0.11.22) - Downloading laravel/tinker (v2.8.2) - Downloading mtdowling/jmespath.php (2.7.0) - Downloading aws/aws-sdk-php (3.294.5) - Downloading league/flysystem-aws-s3-v3 (3.22.0) - Downloading league/html-to-markdown (5.1.1) - Downloading phpseclib/phpseclib (3.0.34) - Downloading predis/predis (v2.2.2) - Downloading socialiteproviders/manager (v4.4.0) - Downloading socialiteproviders/discord (4.2.0) - Downloading socialiteproviders/okta (4.4.0) - Removing socialiteproviders/slack (4.1.1) - Upgrading aws/aws-crt-php (v1.2.1 => v1.2.4): Extracting archive - Upgrading dasprid/enum (1.0.4 => 1.0.5): Extracting archive - Upgrading symfony/polyfill-php80 (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-mbstring (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-ctype (v1.27.0 => v1.28.0): Extracting archive - Upgrading phpoption/phpoption (1.9.1 => 1.9.2): Extracting archive - Upgrading graham-campbell/result-type (v1.1.1 => v1.1.2): Extracting archive - Upgrading vlucas/phpdotenv (v5.5.0 => v5.6.0): Extracting archive - Upgrading tijsverkoyen/css-to-inline-styles (2.2.6 => v2.2.7): Extracting archive - Upgrading symfony/polyfill-uuid (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-php72 (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-intl-normalizer (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-intl-idn (v1.27.0 => v1.28.0): Extracting archive - Upgrading doctrine/deprecations (v1.1.1 => 1.1.2): Extracting archive - Upgrading symfony/polyfill-intl-grapheme (v1.27.0 => v1.28.0): Extracting archive - Upgrading symfony/polyfill-php81 (v1.27.0 => v1.28.0): Extracting archive - Upgrading ramsey/uuid (4.7.4 => 4.7.5): Extracting archive - Installing psr/clock (1.0.0): Extracting archive - Installing carbonphp/carbon-doctrine-types (2.1.0): Extracting archive - Upgrading nesbot/carbon (2.68.1 => 2.72.1): Extracting archive - Upgrading monolog/monolog (2.9.1 => 2.9.2): Extracting archive - Upgrading league/mime-type-detection (1.11.0 => 1.14.0): Extracting archive - Upgrading league/flysystem (3.15.1 => 3.23.0): Extracting archive - Upgrading league/flysystem-local (3.15.0 => 3.23.0): Extracting archive - Upgrading nette/utils (v4.0.0 => v4.0.3): Extracting archive - Upgrading nette/schema (v1.2.3 => v1.2.5): Extracting archive - Upgrading league/commonmark (2.4.0 => 2.4.1): Extracting archive - Upgrading laravel/serializable-closure (v1.3.0 => v1.3.3): Extracting archive - Upgrading guzzlehttp/uri-template (v1.0.1 => v1.0.3): Extracting archive - Upgrading fruitcake/php-cors (v1.2.0 => v1.3.0): Extracting archive - Upgrading dragonmantank/cron-expression (v3.3.2 => v3.3.3): Extracting archive - Upgrading laravel/framework (v9.52.10 => v9.52.16): Extracting archive - Upgrading phenx/php-svg-lib (0.5.0 => 0.5.1): Extracting archive - Upgrading masterminds/html5 (2.8.0 => 2.8.1): Extracting archive - Upgrading dompdf/dompdf (v2.0.3 => v2.0.4): Extracting archive - Upgrading knplabs/knp-snappy (v1.4.2 => v1.4.4): Extracting archive - Upgrading doctrine/dbal (3.6.4 => 3.7.2): Extracting archive - Upgrading guzzlehttp/promises (1.5.3 => 2.0.2): Extracting archive - Upgrading guzzlehttp/psr7 (2.5.0 => 2.6.2): Extracting archive - Upgrading psr/http-client (1.0.2 => 1.0.3): Extracting archive - Upgrading guzzlehttp/guzzle (7.7.0 => 7.8.1): Extracting archive - Upgrading laravel/socialite (v5.6.3 => v5.11.0): Extracting archive - Upgrading nikic/php-parser (v4.16.0 => v4.18.0): Extracting archive - Upgrading psy/psysh (v0.11.18 => v0.11.22): Extracting archive - Upgrading laravel/tinker (v2.8.1 => v2.8.2): Extracting archive - Upgrading mtdowling/jmespath.php (2.6.1 => 2.7.0): Extracting archive - Upgrading aws/aws-sdk-php (3.269.0 => 3.294.5): Extracting archive - Upgrading league/flysystem-aws-s3-v3 (3.15.0 => 3.22.0): Extracting archive - Upgrading league/html-to-markdown (5.1.0 => 5.1.1): Extracting archive - Upgrading phpseclib/phpseclib (3.0.20 => 3.0.34): Extracting archive - Upgrading predis/predis (v2.2.0 => v2.2.2): Extracting archive - Upgrading socialiteproviders/manager (v4.3.0 => v4.4.0): Extracting archive - Upgrading socialiteproviders/discord (4.1.2 => 4.2.0): Extracting archive - Upgrading socialiteproviders/okta (4.2.1 => 4.4.0): Extracting archive Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi INFO Discovering packages. barryvdh/laravel-dompdf ..................................................................................................................... DONE barryvdh/laravel-snappy ..................................................................................................................... DONE intervention/image .......................................................................................................................... DONE laravel/socialite ........................................................................................................................... DONE laravel/tinker .............................................................................................................................. DONE nesbot/carbon ............................................................................................................................... DONE nunomaduro/termwind ......................................................................................................................... DONE socialiteproviders/manager .................................................................................................................. DONE 63 packages you are using are looking for funding. Use the `composer fund` command to find out more! > @php artisan cache:clear INFO Application cache cleared successfully. > @php artisan view:clear INFO Compiled views cleared successfully. administrator@Company-BookStack:/var/www/bookstack$ php artisan migrate APPLICATION IN PRODUCTION. Do you really wish to run this command? (yes/no) [no] ❯ yes INFO Running migrations. 2023_07_25_124945_add_receive_notifications_role_permissions ........................................................................... 16ms DONE 2023_07_31_104430_create_watches_table ................................................................................................ 125ms DONE 2023_08_21_174248_increase_cache_size ................................................................................................. 105ms DONE 2023_12_02_104541_add_default_template_to_books ........................................................................................ 50ms DONE 2023_12_17_140913_add_description_html_to_entities ..................................................................................... 93ms DONE administrator@Company-BookStack:/var/www/bookstack$ ```
git status doesn't report any out of date files, my packages are up-to-date aswell. Which upgrade commands are you referring to, the ones from the Update Instructions? (https://www.bookstackapp.com/docs/admin/updates/)
Sorry, missed the response here.
Which upgrade commands are you referring to, the ones from the Update Instructions?
Yeah, those ones, which you ran. Otherwise:
- What browser are you using when you see this issue?
I'm using regular old Chrome, I've tried it in Edge and Firefox, same issue.
- Do you see the same on our demo site?
No, the Demo site has the regular GUI.
I've tried it with and without costumized HTML Head Content, no luck.
Does the header look okay when on the "Settings > Customization" view? If it's possible to access the instance (even just a login page) that would help a lot here to see what's going on.
Does the header look okay when on the "Settings > Customization" view? If it's possible to access the instance (even just a login page) that would help a lot here to see what's going on.
Okay this is pretty weird. I once again went through the procedure as described by https://www.bookstackapp.com/docs/admin/updates/ and now it works. I have done the same thing earlier today to ensure that the error still persisted and it did, now it doesn't...
I will not close this issue for now because I can't guarantee it will stay this way, however I will look at it again on monday when I'm back in office and close this issue then if my instance is still running fine.
Thank you for your patience.
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
After updating to 23.12, my header of the website suddenly increased in size, about three times as large as the original. Also the menus like "Actions", Details" and "Book Navigation" all align to the left of the page, whereas it used to be just the navigation on the left which was way more comfortable to use.
I Haven't changed the costumization of the page and i dont have any costum HTML Headers.
Any ideas as to how this happened?
Exact BookStack Version
23.12
Log Content
No response
Hosting Environment
PHP Version - 8.1.12-1ubuntu4.3, OS: Ubuntu 23.04 x86_64, installed using the official installation script.