Website Header is too large after updating #4387

Closed
opened 2026-02-05 08:45:40 +03:00 by OVERLORD · 10 comments
Owner

Originally created by @DarkZoneSD on GitHub (Jan 4, 2024).

Attempted Debugging

  • I have read the debugging page

Searched GitHub Issues

  • I have searched GitHub for the issue.

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.

bs-before
bs-after

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.

Originally created by @DarkZoneSD on GitHub (Jan 4, 2024). ### Attempted Debugging - [X] I have read the debugging page ### Searched GitHub Issues - [X] I have searched GitHub for the issue. ### 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. ![bs-before](https://github.com/BookStackApp/BookStack/assets/113187443/fba5b604-8023-40aa-926e-79e9484ed74b) ![bs-after](https://github.com/BookStackApp/BookStack/assets/113187443/9f1aee42-88dc-4e63-8319-db0b956c148a) 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.
OVERLORD added the 🐕 Support label 2026-02-05 08:45:40 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Jan 4, 2024):

This could happen if you have a mix of new/old files, or have active customizations tweaking the header.

  • What's the current output of running git status from your BookStack install directory?
  • What's the current output of running ls -alh themes/ from your BookStack install directory?
@ssddanbrown commented on GitHub (Jan 4, 2024): This could happen if you have a mix of new/old files, or have active customizations tweaking the header. - What's the current output of running `git status` from your BookStack install directory? - What's the current output of running `ls -alh themes/` from your BookStack install directory?
Author
Owner

@DarkZoneSD commented on GitHub (Jan 4, 2024):

  • What's the current output of running git status from your BookStack install directory?
Details

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 <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   .env.example.complete
        modified:   .github/ISSUE_TEMPLATE/bug_report.yml
        modified:   .github/ISSUE_TEMPLATE/feature_request.yml
        modified:   .github/ISSUE_TEMPLATE/support_request.yml
        modified:   .github/SECURITY.md
        modified:   .github/translators.txt
        modified:   .github/workflows/analyse-php.yml
        modified:   .github/workflows/lint-js.yml
        modified:   .github/workflows/lint-php.yml
        modified:   .github/workflows/test-migrations.yml
        modified:   .github/workflows/test-php.yml
        modified:   .gitignore
        modified:   app/Access/Controllers/ForgotPasswordController.php
        modified:   app/Access/Controllers/LoginController.php
        modified:   app/Access/Controllers/OidcController.php
        modified:   app/Access/Controllers/RegisterController.php
        modified:   app/Access/Controllers/ResetPasswordController.php
        modified:   app/Access/Controllers/Saml2Controller.php
        modified:   app/Access/Controllers/SocialController.php
        modified:   app/Access/Controllers/ThrottlesLogins.php
        modified:   app/Access/EmailConfirmationService.php
        modified:   app/Access/LoginService.php
        modified:   app/Access/Oidc/OidcOAuthProvider.php
        modified:   app/Access/Oidc/OidcProviderSettings.php
        modified:   app/Access/Oidc/OidcService.php
        modified:   app/Access/Saml2Service.php
        modified:   app/Access/SocialAuthService.php
        modified:   app/Access/UserInviteService.php
        modified:   app/Activity/ActivityType.php
        modified:   app/Activity/CommentRepo.php
        modified:   app/Activity/Controllers/FavouriteController.php
        modified:   app/Activity/DispatchWebhookJob.php
        modified:   app/Activity/Models/Activity.php
        modified:   app/Activity/Models/Comment.php
        modified:   app/Activity/Models/View.php
        modified:   app/Activity/Tools/ActivityLogger.php
        modified:   app/Api/ApiDocsController.php
        modified:   app/Api/ApiDocsGenerator.php
        modified:   app/Api/ApiEntityListFormatter.php
        modified:   app/Api/ApiToken.php
        modified:   app/Api/UserApiTokenController.php
        modified:   app/App/HomeController.php
        modified:   app/App/Providers/AppServiceProvider.php
        modified:   app/App/Providers/AuthServiceProvider.php
        modified:   app/App/Providers/EventServiceProvider.php
        modified:   app/App/Providers/RouteServiceProvider.php
        modified:   app/App/Providers/ThemeServiceProvider.php
        modified:   app/App/Providers/ViewTweaksServiceProvider.php
        modified:   app/App/helpers.php
        modified:   app/Config/app.php
        modified:   app/Config/mail.php
        modified:   app/Config/oidc.php
        modified:   app/Console/Commands/CleanupImagesCommand.php
        modified:   app/Console/Commands/RegenerateReferencesCommand.php
        modified:   app/Console/Commands/ResetMfaCommand.php
        modified:   app/Console/Commands/UpdateUrlCommand.php
        modified:   app/Entities/BreadcrumbsViewComposer.php
        modified:   app/Entities/Controllers/BookApiController.php
        modified:   app/Entities/Controllers/BookController.php
        modified:   app/Entities/Controllers/BookshelfApiController.php
        modified:   app/Entities/Controllers/BookshelfController.php
        modified:   app/Entities/Controllers/ChapterApiController.php
        modified:   app/Entities/Controllers/ChapterController.php
        modified:   app/Entities/Controllers/PageApiController.php
        modified:   app/Entities/Controllers/PageController.php
        modified:   app/Entities/EntityProvider.php
        modified:   app/Entities/Models/Book.php
        modified:   app/Entities/Models/BookChild.php
        modified:   app/Entities/Models/Bookshelf.php
        modified:   app/Entities/Models/Chapter.php
        modified:   app/Entities/Models/Entity.php
        modified:   app/Entities/Models/Page.php
        modified:   app/Entities/Queries/RecentlyViewed.php
        modified:   app/Entities/Queries/TopFavourites.php
        modified:   app/Entities/Repos/BaseRepo.php
        modified:   app/Entities/Repos/BookRepo.php
        modified:   app/Entities/Repos/ChapterRepo.php
        modified:   app/Entities/Repos/PageRepo.php
        modified:   app/Entities/Tools/ExportFormatter.php
        modified:   app/Entities/Tools/PageContent.php
        modified:   app/Entities/Tools/TrashCan.php
        modified:   app/Exceptions/Handler.php
        modified:   app/Http/Controller.php
        modified:   app/Http/Kernel.php
        modified:   app/Http/Middleware/ApiAuthenticate.php
        modified:   app/Http/Middleware/Authenticate.php
        modified:   app/Http/Middleware/Localization.php
        deleted:    app/Http/Middleware/PreventAuthenticatedResponseCaching.php
        deleted:    app/Notifications/ConfirmEmail.php
        deleted:    app/Notifications/MailNotification.php
        deleted:    app/Notifications/ResetPassword.php
        deleted:    app/Notifications/TestEmail.php
        deleted:    app/Notifications/UserInvite.php
        modified:   app/Permissions/EntityPermissionEvaluator.php
        modified:   app/Permissions/JointPermissionBuilder.php
        modified:   app/Permissions/PermissionApplicator.php
        modified:   app/Permissions/PermissionsRepo.php
        modified:   app/References/CrossLinkParser.php
        modified:   app/References/ReferenceController.php
        modified:   app/References/ReferenceFetcher.php
        modified:   app/References/ReferenceStore.php
        modified:   app/References/ReferenceUpdater.php
        modified:   app/Search/SearchController.php
        modified:   app/Search/SearchIndex.php
        modified:   app/Search/SearchOptions.php
        modified:   app/Search/SearchRunner.php
        modified:   app/Settings/MaintenanceController.php
        modified:   app/Settings/SettingController.php
        modified:   app/Settings/SettingService.php
        modified:   app/Settings/StatusController.php
        modified:   app/Theming/CustomHtmlHeadContentProvider.php
        modified:   app/Theming/ThemeEvents.php
        modified:   app/Theming/ThemeService.php
        deleted:    app/Translation/LanguageManager.php
        modified:   app/Uploads/Controllers/DrawioImageController.php
        modified:   app/Uploads/Controllers/GalleryImageController.php
        modified:   app/Uploads/Controllers/ImageController.php
        modified:   app/Uploads/Controllers/ImageGalleryApiController.php
        modified:   app/Uploads/FaviconHandler.php
        deleted:    app/Uploads/HttpFetcher.php
        modified:   app/Uploads/Image.php
        modified:   app/Uploads/ImageRepo.php
        modified:   app/Uploads/ImageService.php
        modified:   app/Uploads/UserAvatars.php
        modified:   app/Users/Controllers/RoleController.php
        modified:   app/Users/Controllers/UserApiController.php
        modified:   app/Users/Controllers/UserController.php
        modified:   app/Users/Controllers/UserPreferencesController.php
        modified:   app/Users/Controllers/UserSearchController.php
        modified:   app/Users/Models/User.php
        modified:   app/Users/UserRepo.php
        modified:   app/Util/HtmlContentFilter.php
        modified:   app/Util/HtmlNonceApplicator.php
        modified:   composer.json
        modified:   composer.lock
        modified:   database/factories/Entities/Models/BookFactory.php
        modified:   database/factories/Entities/Models/BookshelfFactory.php
        modified:   database/factories/Entities/Models/ChapterFactory.php
        modified:   database/seeders/DummyContentSeeder.php
        modified:   database/seeders/LargeContentSeeder.php
        modified:   dev/api/requests/books-create.json
        modified:   dev/api/requests/books-update.json
        modified:   dev/api/requests/chapters-create.json
        modified:   dev/api/requests/chapters-update.json
        modified:   dev/api/requests/pages-create.json
        modified:   dev/api/requests/pages-update.json
        modified:   dev/api/requests/shelves-create.json
        modified:   dev/api/requests/shelves-update.json
        modified:   dev/api/responses/books-create.json
        modified:   dev/api/responses/books-read.json
        modified:   dev/api/responses/books-update.json
        modified:   dev/api/responses/chapters-create.json
        modified:   dev/api/responses/chapters-read.json
        modified:   dev/api/responses/chapters-update.json
        modified:   dev/api/responses/pages-create.json
        modified:   dev/api/responses/shelves-create.json
        modified:   dev/api/responses/shelves-read.json
        modified:   dev/api/responses/shelves-update.json
        modified:   dev/build/esbuild.js
        modified:   dev/docs/development.md
        modified:   dev/docs/javascript-code.md
        modified:   dev/docs/javascript-public-events.md
        modified:   lang/ar/activities.php
        modified:   lang/ar/auth.php
        modified:   lang/ar/common.php
        modified:   lang/ar/components.php
        modified:   lang/ar/entities.php
        modified:   lang/ar/errors.php
        modified:   lang/ar/preferences.php
        modified:   lang/ar/settings.php
        modified:   lang/ar/validation.php
        modified:   lang/bg/activities.php
        modified:   lang/bg/common.php
        modified:   lang/bg/components.php
        modified:   lang/bg/entities.php
        modified:   lang/bg/errors.php
        modified:   lang/bg/preferences.php
        modified:   lang/bg/settings.php
        modified:   lang/bs/activities.php
        modified:   lang/bs/common.php
        modified:   lang/bs/components.php
        modified:   lang/bs/entities.php
        modified:   lang/bs/errors.php
        modified:   lang/bs/preferences.php
        modified:   lang/bs/settings.php
        modified:   lang/ca/activities.php
        modified:   lang/ca/auth.php
        modified:   lang/ca/common.php
        modified:   lang/ca/components.php
        modified:   lang/ca/editor.php
        modified:   lang/ca/entities.php
        modified:   lang/ca/errors.php
        modified:   lang/ca/passwords.php
        modified:   lang/ca/preferences.php
        modified:   lang/ca/settings.php
        modified:   lang/ca/validation.php
        modified:   lang/cs/activities.php
        modified:   lang/cs/common.php
        modified:   lang/cs/components.php
        modified:   lang/cs/entities.php
        modified:   lang/cs/errors.php
        modified:   lang/cs/preferences.php
        modified:   lang/cs/settings.php
        modified:   lang/cy/activities.php
        modified:   lang/cy/common.php
        modified:   lang/cy/components.php
        modified:   lang/cy/entities.php
        modified:   lang/cy/errors.php
        modified:   lang/cy/preferences.php
        modified:   lang/cy/settings.php
        modified:   lang/da/activities.php
        modified:   lang/da/common.php
        modified:   lang/da/components.php
        modified:   lang/da/entities.php
        modified:   lang/da/errors.php
        modified:   lang/da/preferences.php
        modified:   lang/da/settings.php
        modified:   lang/de/activities.php
        modified:   lang/de/common.php
        modified:   lang/de/components.php
        modified:   lang/de/editor.php
        modified:   lang/de/entities.php
        modified:   lang/de/errors.php
        modified:   lang/de/preferences.php
        modified:   lang/de/settings.php
        modified:   lang/de_informal/activities.php
        modified:   lang/de_informal/common.php
        modified:   lang/de_informal/components.php
        modified:   lang/de_informal/entities.php
        modified:   lang/de_informal/errors.php
        modified:   lang/de_informal/passwords.php
        modified:   lang/de_informal/preferences.php
        modified:   lang/de_informal/settings.php
        modified:   lang/el/activities.php
        modified:   lang/el/common.php
        modified:   lang/el/components.php
        modified:   lang/el/entities.php
        modified:   lang/el/errors.php
        modified:   lang/el/preferences.php
        modified:   lang/el/settings.php
        modified:   lang/en/activities.php
        modified:   lang/en/common.php
        modified:   lang/en/components.php
        modified:   lang/en/entities.php
        modified:   lang/en/errors.php
        modified:   lang/en/preferences.php
        modified:   lang/en/settings.php
        modified:   lang/es/activities.php
        modified:   lang/es/common.php
        modified:   lang/es/components.php
        modified:   lang/es/entities.php
        modified:   lang/es/errors.php
        modified:   lang/es/preferences.php
        modified:   lang/es/settings.php
        modified:   lang/es_AR/activities.php
        modified:   lang/es_AR/common.php
        modified:   lang/es_AR/components.php
        modified:   lang/es_AR/entities.php
        modified:   lang/es_AR/errors.php
        modified:   lang/es_AR/preferences.php
        modified:   lang/es_AR/settings.php
        modified:   lang/et/activities.php
        modified:   lang/et/common.php
        modified:   lang/et/components.php
        modified:   lang/et/entities.php
        modified:   lang/et/errors.php
        modified:   lang/et/preferences.php
        modified:   lang/et/settings.php
        modified:   lang/eu/activities.php
        modified:   lang/eu/common.php
        modified:   lang/eu/components.php
        modified:   lang/eu/entities.php
        modified:   lang/eu/errors.php
        modified:   lang/eu/preferences.php
        modified:   lang/eu/settings.php
        modified:   lang/fa/activities.php
        modified:   lang/fa/common.php
        modified:   lang/fa/components.php
        modified:   lang/fa/entities.php
        modified:   lang/fa/errors.php
        modified:   lang/fa/preferences.php
        modified:   lang/fa/settings.php
        modified:   lang/fr/activities.php
        modified:   lang/fr/common.php
        modified:   lang/fr/components.php
        modified:   lang/fr/entities.php
        modified:   lang/fr/errors.php
        modified:   lang/fr/preferences.php
        modified:   lang/fr/settings.php
        modified:   lang/he/activities.php
        modified:   lang/he/common.php
        modified:   lang/he/components.php
        modified:   lang/he/entities.php
        modified:   lang/he/errors.php
        modified:   lang/he/preferences.php
        modified:   lang/he/settings.php
        modified:   lang/hr/activities.php
        modified:   lang/hr/common.php
        modified:   lang/hr/components.php
        modified:   lang/hr/entities.php
        modified:   lang/hr/errors.php
        modified:   lang/hr/preferences.php
        modified:   lang/hr/settings.php
        modified:   lang/hu/activities.php
        modified:   lang/hu/common.php
        modified:   lang/hu/components.php
        modified:   lang/hu/editor.php
        modified:   lang/hu/entities.php
        modified:   lang/hu/errors.php
        modified:   lang/hu/preferences.php
        modified:   lang/hu/settings.php
        modified:   lang/id/activities.php
        modified:   lang/id/common.php
        modified:   lang/id/components.php
        modified:   lang/id/entities.php
        modified:   lang/id/errors.php
        modified:   lang/id/preferences.php
        modified:   lang/id/settings.php
        modified:   lang/it/activities.php
        modified:   lang/it/common.php
        modified:   lang/it/components.php
        modified:   lang/it/entities.php
        modified:   lang/it/errors.php
        modified:   lang/it/preferences.php
        modified:   lang/it/settings.php
        modified:   lang/ja/activities.php
        modified:   lang/ja/common.php
        modified:   lang/ja/components.php
        modified:   lang/ja/entities.php
        modified:   lang/ja/errors.php
        modified:   lang/ja/preferences.php
        modified:   lang/ja/settings.php
        modified:   lang/ka/activities.php
        modified:   lang/ka/common.php
        modified:   lang/ka/components.php
        modified:   lang/ka/entities.php
        modified:   lang/ka/errors.php
        modified:   lang/ka/preferences.php
        modified:   lang/ka/settings.php
        modified:   lang/ko/activities.php
        modified:   lang/ko/common.php
        modified:   lang/ko/components.php
        modified:   lang/ko/entities.php
        modified:   lang/ko/errors.php
        modified:   lang/ko/preferences.php
        modified:   lang/ko/settings.php
        modified:   lang/lt/activities.php
        modified:   lang/lt/common.php
        modified:   lang/lt/components.php
        modified:   lang/lt/entities.php
        modified:   lang/lt/errors.php
        modified:   lang/lt/preferences.php
        modified:   lang/lt/settings.php
        modified:   lang/lv/activities.php
        modified:   lang/lv/common.php
        modified:   lang/lv/components.php
        modified:   lang/lv/entities.php
        modified:   lang/lv/errors.php
        modified:   lang/lv/preferences.php
        modified:   lang/lv/settings.php
        modified:   lang/nb/activities.php
        modified:   lang/nb/common.php
        modified:   lang/nb/components.php
        modified:   lang/nb/entities.php
        modified:   lang/nb/errors.php
        modified:   lang/nb/preferences.php
        modified:   lang/nb/settings.php
        modified:   lang/nl/activities.php
        modified:   lang/nl/common.php
        modified:   lang/nl/components.php
        modified:   lang/nl/entities.php
        modified:   lang/nl/errors.php
        modified:   lang/nl/preferences.php
        modified:   lang/nl/settings.php
        modified:   lang/pl/activities.php
        modified:   lang/pl/common.php
        modified:   lang/pl/components.php
        modified:   lang/pl/entities.php
        modified:   lang/pl/errors.php
        modified:   lang/pl/preferences.php
        modified:   lang/pl/settings.php
        modified:   lang/pt/activities.php
        modified:   lang/pt/common.php
        modified:   lang/pt/components.php
        modified:   lang/pt/entities.php
        modified:   lang/pt/errors.php
        modified:   lang/pt/preferences.php
        modified:   lang/pt/settings.php
        modified:   lang/pt_BR/activities.php
        modified:   lang/pt_BR/common.php
        modified:   lang/pt_BR/components.php
        modified:   lang/pt_BR/entities.php
        modified:   lang/pt_BR/errors.php
        modified:   lang/pt_BR/preferences.php
        modified:   lang/pt_BR/settings.php
        modified:   lang/ro/activities.php
        modified:   lang/ro/common.php
        modified:   lang/ro/components.php
        modified:   lang/ro/entities.php
        modified:   lang/ro/errors.php
        modified:   lang/ro/preferences.php
        modified:   lang/ro/settings.php
        modified:   lang/ru/activities.php
        modified:   lang/ru/auth.php
        modified:   lang/ru/common.php
        modified:   lang/ru/components.php
        modified:   lang/ru/entities.php
        modified:   lang/ru/errors.php
        modified:   lang/ru/preferences.php
        modified:   lang/ru/settings.php
        modified:   lang/sk/activities.php
        modified:   lang/sk/common.php
        modified:   lang/sk/components.php
        modified:   lang/sk/entities.php
        modified:   lang/sk/errors.php
        modified:   lang/sk/preferences.php
        modified:   lang/sk/settings.php
        modified:   lang/sl/activities.php
        modified:   lang/sl/common.php
        modified:   lang/sl/components.php
        modified:   lang/sl/entities.php
        modified:   lang/sl/errors.php
        modified:   lang/sl/preferences.php
        modified:   lang/sl/settings.php
        modified:   lang/sv/activities.php
        modified:   lang/sv/auth.php
        modified:   lang/sv/common.php
        modified:   lang/sv/components.php
        modified:   lang/sv/entities.php
        modified:   lang/sv/errors.php
        modified:   lang/sv/preferences.php
        modified:   lang/sv/settings.php
        modified:   lang/tr/activities.php
        modified:   lang/tr/common.php
        modified:   lang/tr/components.php
        modified:   lang/tr/entities.php
        modified:   lang/tr/errors.php
        modified:   lang/tr/preferences.php
        modified:   lang/tr/settings.php
        modified:   lang/uk/activities.php
        modified:   lang/uk/common.php
        modified:   lang/uk/components.php
        modified:   lang/uk/entities.php
        modified:   lang/uk/errors.php
        modified:   lang/uk/preferences.php
        modified:   lang/uk/settings.php
        modified:   lang/uz/activities.php
        modified:   lang/uz/auth.php
        modified:   lang/uz/common.php
        modified:   lang/uz/components.php
        modified:   lang/uz/editor.php
        modified:   lang/uz/entities.php
        modified:   lang/uz/errors.php
        modified:   lang/uz/pagination.php
        modified:   lang/uz/passwords.php
        modified:   lang/uz/preferences.php
        modified:   lang/uz/settings.php
        modified:   lang/uz/validation.php
        modified:   lang/vi/activities.php
        modified:   lang/vi/common.php
        modified:   lang/vi/components.php
        modified:   lang/vi/entities.php
        modified:   lang/vi/errors.php
        modified:   lang/vi/preferences.php
        modified:   lang/vi/settings.php
        modified:   lang/zh_CN/activities.php
        modified:   lang/zh_CN/common.php
        modified:   lang/zh_CN/components.php
        modified:   lang/zh_CN/entities.php
        modified:   lang/zh_CN/errors.php
        modified:   lang/zh_CN/preferences.php
        modified:   lang/zh_CN/settings.php
        modified:   lang/zh_TW/activities.php
        modified:   lang/zh_TW/common.php
        modified:   lang/zh_TW/components.php
        modified:   lang/zh_TW/entities.php
        modified:   lang/zh_TW/errors.php
        modified:   lang/zh_TW/preferences.php
        modified:   lang/zh_TW/settings.php
        modified:   package-lock.json
        modified:   package.json
        modified:   phpstan.neon.dist
        modified:   phpunit.xml
        deleted:    public/.htaccess
        modified:   readme.md
        deleted:    resources/icons/view.svg
        modified:   resources/js/code/index.mjs
        modified:   resources/js/code/views.js
        modified:   resources/js/components/auto-suggest.js
        modified:   resources/js/components/dropdown.js
        modified:   resources/js/components/editor-toolbox.js
        modified:   resources/js/components/entity-selector-popup.js
        modified:   resources/js/components/entity-selector.js
        modified:   resources/js/components/image-manager.js
        modified:   resources/js/components/index.js
        modified:   resources/js/components/page-comments.js
        modified:   resources/js/components/page-display.js
        modified:   resources/js/components/page-picker.js
        modified:   resources/js/components/shortcuts.js
        modified:   resources/js/components/wysiwyg-editor.js
        modified:   resources/js/markdown/actions.js
        modified:   resources/js/services/drawio.js
        modified:   resources/js/services/util.js
        modified:   resources/js/wysiwyg/config.js
        modified:   resources/js/wysiwyg/drop-paste-handling.js
        modified:   resources/js/wysiwyg/plugin-drawio.js
        modified:   resources/js/wysiwyg/plugins-imagemanager.js
        modified:   resources/js/wysiwyg/shortcuts.js
        modified:   resources/sass/_blocks.scss
        modified:   resources/sass/_buttons.scss
        modified:   resources/sass/_components.scss
        modified:   resources/sass/_content.scss
        modified:   resources/sass/_forms.scss
        modified:   resources/sass/_header.scss
        modified:   resources/sass/_layout.scss
        modified:   resources/sass/_lists.scss
        modified:   resources/sass/_pages.scss
        modified:   resources/sass/_text.scss
        modified:   resources/sass/_tinymce.scss
        modified:   resources/sass/_variables.scss
        deleted:    resources/sass/print-styles.scss
        modified:   resources/sass/styles.scss
        modified:   resources/views/api-docs/parts/getting-started.blade.php
        modified:   resources/views/books/create.blade.php
        modified:   resources/views/books/edit.blade.php
        modified:   resources/views/books/index.blade.php
        modified:   resources/views/books/parts/form.blade.php
        modified:   resources/views/books/parts/list.blade.php
        modified:   resources/views/books/show.blade.php
        modified:   resources/views/chapters/parts/form.blade.php
        modified:   resources/views/chapters/show.blade.php
        modified:   resources/views/common/activity-list.blade.php
        modified:   resources/views/common/confirm-dialog.blade.php
        deleted:    resources/views/common/custom-head.blade.php
        deleted:    resources/views/common/custom-styles.blade.php
        modified:   resources/views/common/dark-mode-toggle.blade.php
        deleted:    resources/views/common/footer.blade.php
        deleted:    resources/views/common/header.blade.php
        deleted:    resources/views/common/notifications.blade.php
        deleted:    resources/views/common/skip-to-content.blade.php
        modified:   resources/views/common/sort.blade.php
        modified:   resources/views/entities/favourite-action.blade.php
        modified:   resources/views/entities/list.blade.php
        modified:   resources/views/entities/meta.blade.php
        modified:   resources/views/entities/selector-popup.blade.php
        modified:   resources/views/entities/selector.blade.php
        modified:   resources/views/entities/view-toggle.blade.php
        modified:   resources/views/errors/404.blade.php
        modified:   resources/views/exports/book.blade.php
        modified:   resources/views/exports/chapter.blade.php
        modified:   resources/views/exports/parts/chapter-item.blade.php
        modified:   resources/views/home/books.blade.php
        modified:   resources/views/home/default.blade.php
        modified:   resources/views/home/shelves.blade.php
        modified:   resources/views/layouts/base.blade.php
        modified:   resources/views/layouts/export.blade.php
        modified:   resources/views/layouts/plain.blade.php
        modified:   resources/views/layouts/tri.blade.php
        modified:   resources/views/pages/delete.blade.php
        modified:   resources/views/pages/edit.blade.php
        modified:   resources/views/pages/guest-create.blade.php
        modified:   resources/views/pages/parts/editor-toolbar.blade.php
        modified:   resources/views/pages/parts/editor-toolbox.blade.php
        deleted:    resources/views/pages/parts/editor-translations.blade.php
        modified:   resources/views/pages/parts/form.blade.php
        modified:   resources/views/pages/parts/image-manager-form.blade.php
        modified:   resources/views/pages/parts/image-manager-list.blade.php
        modified:   resources/views/pages/parts/markdown-editor.blade.php
        modified:   resources/views/pages/parts/template-manager.blade.php
        modified:   resources/views/pages/parts/wysiwyg-editor.blade.php
        modified:   resources/views/pages/revision.blade.php
        modified:   resources/views/pages/show.blade.php
        modified:   resources/views/search/all.blade.php
        modified:   resources/views/settings/audit.blade.php
        modified:   resources/views/settings/customization.blade.php
        modified:   resources/views/settings/layout.blade.php
        deleted:    resources/views/settings/parts/page-picker.blade.php
        modified:   resources/views/settings/roles/parts/form.blade.php
        modified:   resources/views/shelves/index.blade.php
        modified:   resources/views/shelves/parts/form.blade.php
        modified:   resources/views/shelves/parts/list.blade.php
        modified:   resources/views/shelves/show.blade.php
        modified:   resources/views/users/api-tokens/create.blade.php
        modified:   resources/views/users/api-tokens/delete.blade.php
        modified:   resources/views/users/api-tokens/edit.blade.php
        modified:   resources/views/users/api-tokens/parts/list.blade.php
        modified:   resources/views/users/create.blade.php
        modified:   resources/views/users/delete.blade.php
        modified:   resources/views/users/edit.blade.php
        modified:   resources/views/users/parts/form.blade.php
        deleted:    resources/views/users/preferences/parts/shortcut-control.blade.php
        deleted:    resources/views/users/preferences/shortcuts.blade.php
        modified:   resources/views/vendor/notifications/email.blade.php
        modified:   routes/web.php
        modified:   tests/Actions/WebhookCallTest.php
        modified:   tests/Api/BooksApiTest.php
        modified:   tests/Api/ChaptersApiTest.php
        modified:   tests/Api/PagesApiTest.php
        modified:   tests/Api/SearchApiTest.php
        modified:   tests/Api/ShelvesApiTest.php
        modified:   tests/Api/UsersApiTest.php
        modified:   tests/Auth/OidcTest.php
        modified:   tests/Auth/RegistrationTest.php
        modified:   tests/Auth/ResetPasswordTest.php
        modified:   tests/Auth/Saml2Test.php
        modified:   tests/Auth/SocialAuthTest.php
        modified:   tests/Auth/UserInviteTest.php
        modified:   tests/Commands/CleanupImagesCommandTest.php
        modified:   tests/Commands/ResetMfaCommandTest.php
        modified:   tests/Commands/UpdateUrlCommandTest.php
        modified:   tests/DebugViewTest.php
        modified:   tests/Entity/BookShelfTest.php
        modified:   tests/Entity/BookTest.php
        modified:   tests/Entity/ChapterTest.php
        modified:   tests/Entity/CommentTest.php
        modified:   tests/Entity/ConvertTest.php
        modified:   tests/Entity/EntitySearchTest.php
        modified:   tests/Entity/ExportTest.php
        modified:   tests/Entity/PageContentTest.php
        modified:   tests/Entity/PageRevisionTest.php
        modified:   tests/Entity/SearchOptionsTest.php
        modified:   tests/ErrorTest.php
        modified:   tests/FavouriteTest.php
        modified:   tests/Helpers/EntityProvider.php
        modified:   tests/Helpers/FileProvider.php
        modified:   tests/Helpers/PermissionsProvider.php
        modified:   tests/Helpers/UserRoleProvider.php
        modified:   tests/HomepageTest.php
        modified:   tests/LanguageTest.php
        modified:   tests/Permissions/RolePermissionsTest.php
        modified:   tests/PublicActionTest.php
        modified:   tests/References/ReferencesTest.php
        modified:   tests/SecurityHeaderTest.php
        modified:   tests/Settings/RegenerateReferencesTest.php
        modified:   tests/Settings/TestEmailTest.php
        modified:   tests/TestCase.php
        modified:   tests/ThemeTest.php
        modified:   tests/Uploads/AvatarTest.php
        modified:   tests/Uploads/ImageTest.php
        modified:   tests/User/RoleManagementTest.php
        modified:   tests/User/UserApiTokenTest.php
        modified:   tests/User/UserManagementTest.php
        modified:   tests/User/UserPreferencesTest.php
        modified:   tests/User/UserSearchTest.php
        modified:   version

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .env.bak
        app/Access/Notifications/
        app/Access/SocialDriverManager.php
        app/Activity/Controllers/WatchController.php
        app/Activity/Models/Watch.php
        app/Activity/Notifications/
        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/
        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/
        lang/pl/notifications.php
        lang/pt/notifications.php
        lang/pt_BR/notifications.php
        lang/ro/notifications.php
        lang/ru/notifications.php
        lang/sk/notifications.php
        lang/sl/notifications.php
        lang/sq/
        lang/sv/notifications.php
        lang/tr/notifications.php
        lang/uk/notifications.php
        lang/uz/notifications.php
        lang/vi/notifications.php
        lang/zh_CN/notifications.php
        lang/zh_TW/notifications.php
        resources/icons/notifications.svg
        resources/icons/security.svg
        resources/icons/user-preferences.svg
        resources/icons/watch-ignore.svg
        resources/icons/watch.svg
        resources/js/components/wysiwyg-input.js
        resources/js/services/store.js
        resources/js/wysiwyg/filters.js
        resources/js/wysiwyg/fixes.js
        resources/sass/_print.scss
        resources/views/entities/icon-link.blade.php
        resources/views/entities/watch-action.blade.php
        resources/views/entities/watch-controls.blade.php
        resources/views/form/description-html-input.blade.php
        resources/views/form/editor-translations.blade.php
        resources/views/form/page-picker.blade.php
        resources/views/layouts/parts/custom-head.blade.php
        resources/views/layouts/parts/custom-styles.blade.php
        resources/views/layouts/parts/footer.blade.php
        resources/views/layouts/parts/header-links-start.blade.php
        resources/views/layouts/parts/header-links.blade.php
        resources/views/layouts/parts/header-logo.blade.php
        resources/views/layouts/parts/header-search.blade.php
        resources/views/layouts/parts/header-user-menu.blade.php
        resources/views/layouts/parts/header.blade.php
        resources/views/layouts/parts/notifications.blade.php
        resources/views/layouts/parts/skip-to-content.blade.php
        resources/views/users/account/
        tests/Activity/
        tests/Commands/RefreshAvatarCommandTest.php
        tests/Entity/BookDefaultTemplateTest.php
        tests/PwaManifestTest.php
        tests/Unit/PageIncludeParserTest.php
        tests/Unit/SsrUrlValidatorTest.php
        tests/User/UserMyAccountTest.php

no changes added to commit (use "git add" and/or "git commit -a")

  • 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

@DarkZoneSD commented on GitHub (Jan 4, 2024): > * What's the current output of running `git status` from your BookStack install directory? <details><summary>Details</summary> <p> ``` 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 <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: .env.example.complete modified: .github/ISSUE_TEMPLATE/bug_report.yml modified: .github/ISSUE_TEMPLATE/feature_request.yml modified: .github/ISSUE_TEMPLATE/support_request.yml modified: .github/SECURITY.md modified: .github/translators.txt modified: .github/workflows/analyse-php.yml modified: .github/workflows/lint-js.yml modified: .github/workflows/lint-php.yml modified: .github/workflows/test-migrations.yml modified: .github/workflows/test-php.yml modified: .gitignore modified: app/Access/Controllers/ForgotPasswordController.php modified: app/Access/Controllers/LoginController.php modified: app/Access/Controllers/OidcController.php modified: app/Access/Controllers/RegisterController.php modified: app/Access/Controllers/ResetPasswordController.php modified: app/Access/Controllers/Saml2Controller.php modified: app/Access/Controllers/SocialController.php modified: app/Access/Controllers/ThrottlesLogins.php modified: app/Access/EmailConfirmationService.php modified: app/Access/LoginService.php modified: app/Access/Oidc/OidcOAuthProvider.php modified: app/Access/Oidc/OidcProviderSettings.php modified: app/Access/Oidc/OidcService.php modified: app/Access/Saml2Service.php modified: app/Access/SocialAuthService.php modified: app/Access/UserInviteService.php modified: app/Activity/ActivityType.php modified: app/Activity/CommentRepo.php modified: app/Activity/Controllers/FavouriteController.php modified: app/Activity/DispatchWebhookJob.php modified: app/Activity/Models/Activity.php modified: app/Activity/Models/Comment.php modified: app/Activity/Models/View.php modified: app/Activity/Tools/ActivityLogger.php modified: app/Api/ApiDocsController.php modified: app/Api/ApiDocsGenerator.php modified: app/Api/ApiEntityListFormatter.php modified: app/Api/ApiToken.php modified: app/Api/UserApiTokenController.php modified: app/App/HomeController.php modified: app/App/Providers/AppServiceProvider.php modified: app/App/Providers/AuthServiceProvider.php modified: app/App/Providers/EventServiceProvider.php modified: app/App/Providers/RouteServiceProvider.php modified: app/App/Providers/ThemeServiceProvider.php modified: app/App/Providers/ViewTweaksServiceProvider.php modified: app/App/helpers.php modified: app/Config/app.php modified: app/Config/mail.php modified: app/Config/oidc.php modified: app/Console/Commands/CleanupImagesCommand.php modified: app/Console/Commands/RegenerateReferencesCommand.php modified: app/Console/Commands/ResetMfaCommand.php modified: app/Console/Commands/UpdateUrlCommand.php modified: app/Entities/BreadcrumbsViewComposer.php modified: app/Entities/Controllers/BookApiController.php modified: app/Entities/Controllers/BookController.php modified: app/Entities/Controllers/BookshelfApiController.php modified: app/Entities/Controllers/BookshelfController.php modified: app/Entities/Controllers/ChapterApiController.php modified: app/Entities/Controllers/ChapterController.php modified: app/Entities/Controllers/PageApiController.php modified: app/Entities/Controllers/PageController.php modified: app/Entities/EntityProvider.php modified: app/Entities/Models/Book.php modified: app/Entities/Models/BookChild.php modified: app/Entities/Models/Bookshelf.php modified: app/Entities/Models/Chapter.php modified: app/Entities/Models/Entity.php modified: app/Entities/Models/Page.php modified: app/Entities/Queries/RecentlyViewed.php modified: app/Entities/Queries/TopFavourites.php modified: app/Entities/Repos/BaseRepo.php modified: app/Entities/Repos/BookRepo.php modified: app/Entities/Repos/ChapterRepo.php modified: app/Entities/Repos/PageRepo.php modified: app/Entities/Tools/ExportFormatter.php modified: app/Entities/Tools/PageContent.php modified: app/Entities/Tools/TrashCan.php modified: app/Exceptions/Handler.php modified: app/Http/Controller.php modified: app/Http/Kernel.php modified: app/Http/Middleware/ApiAuthenticate.php modified: app/Http/Middleware/Authenticate.php modified: app/Http/Middleware/Localization.php deleted: app/Http/Middleware/PreventAuthenticatedResponseCaching.php deleted: app/Notifications/ConfirmEmail.php deleted: app/Notifications/MailNotification.php deleted: app/Notifications/ResetPassword.php deleted: app/Notifications/TestEmail.php deleted: app/Notifications/UserInvite.php modified: app/Permissions/EntityPermissionEvaluator.php modified: app/Permissions/JointPermissionBuilder.php modified: app/Permissions/PermissionApplicator.php modified: app/Permissions/PermissionsRepo.php modified: app/References/CrossLinkParser.php modified: app/References/ReferenceController.php modified: app/References/ReferenceFetcher.php modified: app/References/ReferenceStore.php modified: app/References/ReferenceUpdater.php modified: app/Search/SearchController.php modified: app/Search/SearchIndex.php modified: app/Search/SearchOptions.php modified: app/Search/SearchRunner.php modified: app/Settings/MaintenanceController.php modified: app/Settings/SettingController.php modified: app/Settings/SettingService.php modified: app/Settings/StatusController.php modified: app/Theming/CustomHtmlHeadContentProvider.php modified: app/Theming/ThemeEvents.php modified: app/Theming/ThemeService.php deleted: app/Translation/LanguageManager.php modified: app/Uploads/Controllers/DrawioImageController.php modified: app/Uploads/Controllers/GalleryImageController.php modified: app/Uploads/Controllers/ImageController.php modified: app/Uploads/Controllers/ImageGalleryApiController.php modified: app/Uploads/FaviconHandler.php deleted: app/Uploads/HttpFetcher.php modified: app/Uploads/Image.php modified: app/Uploads/ImageRepo.php modified: app/Uploads/ImageService.php modified: app/Uploads/UserAvatars.php modified: app/Users/Controllers/RoleController.php modified: app/Users/Controllers/UserApiController.php modified: app/Users/Controllers/UserController.php modified: app/Users/Controllers/UserPreferencesController.php modified: app/Users/Controllers/UserSearchController.php modified: app/Users/Models/User.php modified: app/Users/UserRepo.php modified: app/Util/HtmlContentFilter.php modified: app/Util/HtmlNonceApplicator.php modified: composer.json modified: composer.lock modified: database/factories/Entities/Models/BookFactory.php modified: database/factories/Entities/Models/BookshelfFactory.php modified: database/factories/Entities/Models/ChapterFactory.php modified: database/seeders/DummyContentSeeder.php modified: database/seeders/LargeContentSeeder.php modified: dev/api/requests/books-create.json modified: dev/api/requests/books-update.json modified: dev/api/requests/chapters-create.json modified: dev/api/requests/chapters-update.json modified: dev/api/requests/pages-create.json modified: dev/api/requests/pages-update.json modified: dev/api/requests/shelves-create.json modified: dev/api/requests/shelves-update.json modified: dev/api/responses/books-create.json modified: dev/api/responses/books-read.json modified: dev/api/responses/books-update.json modified: dev/api/responses/chapters-create.json modified: dev/api/responses/chapters-read.json modified: dev/api/responses/chapters-update.json modified: dev/api/responses/pages-create.json modified: dev/api/responses/shelves-create.json modified: dev/api/responses/shelves-read.json modified: dev/api/responses/shelves-update.json modified: dev/build/esbuild.js modified: dev/docs/development.md modified: dev/docs/javascript-code.md modified: dev/docs/javascript-public-events.md modified: lang/ar/activities.php modified: lang/ar/auth.php modified: lang/ar/common.php modified: lang/ar/components.php modified: lang/ar/entities.php modified: lang/ar/errors.php modified: lang/ar/preferences.php modified: lang/ar/settings.php modified: lang/ar/validation.php modified: lang/bg/activities.php modified: lang/bg/common.php modified: lang/bg/components.php modified: lang/bg/entities.php modified: lang/bg/errors.php modified: lang/bg/preferences.php modified: lang/bg/settings.php modified: lang/bs/activities.php modified: lang/bs/common.php modified: lang/bs/components.php modified: lang/bs/entities.php modified: lang/bs/errors.php modified: lang/bs/preferences.php modified: lang/bs/settings.php modified: lang/ca/activities.php modified: lang/ca/auth.php modified: lang/ca/common.php modified: lang/ca/components.php modified: lang/ca/editor.php modified: lang/ca/entities.php modified: lang/ca/errors.php modified: lang/ca/passwords.php modified: lang/ca/preferences.php modified: lang/ca/settings.php modified: lang/ca/validation.php modified: lang/cs/activities.php modified: lang/cs/common.php modified: lang/cs/components.php modified: lang/cs/entities.php modified: lang/cs/errors.php modified: lang/cs/preferences.php modified: lang/cs/settings.php modified: lang/cy/activities.php modified: lang/cy/common.php modified: lang/cy/components.php modified: lang/cy/entities.php modified: lang/cy/errors.php modified: lang/cy/preferences.php modified: lang/cy/settings.php modified: lang/da/activities.php modified: lang/da/common.php modified: lang/da/components.php modified: lang/da/entities.php modified: lang/da/errors.php modified: lang/da/preferences.php modified: lang/da/settings.php modified: lang/de/activities.php modified: lang/de/common.php modified: lang/de/components.php modified: lang/de/editor.php modified: lang/de/entities.php modified: lang/de/errors.php modified: lang/de/preferences.php modified: lang/de/settings.php modified: lang/de_informal/activities.php modified: lang/de_informal/common.php modified: lang/de_informal/components.php modified: lang/de_informal/entities.php modified: lang/de_informal/errors.php modified: lang/de_informal/passwords.php modified: lang/de_informal/preferences.php modified: lang/de_informal/settings.php modified: lang/el/activities.php modified: lang/el/common.php modified: lang/el/components.php modified: lang/el/entities.php modified: lang/el/errors.php modified: lang/el/preferences.php modified: lang/el/settings.php modified: lang/en/activities.php modified: lang/en/common.php modified: lang/en/components.php modified: lang/en/entities.php modified: lang/en/errors.php modified: lang/en/preferences.php modified: lang/en/settings.php modified: lang/es/activities.php modified: lang/es/common.php modified: lang/es/components.php modified: lang/es/entities.php modified: lang/es/errors.php modified: lang/es/preferences.php modified: lang/es/settings.php modified: lang/es_AR/activities.php modified: lang/es_AR/common.php modified: lang/es_AR/components.php modified: lang/es_AR/entities.php modified: lang/es_AR/errors.php modified: lang/es_AR/preferences.php modified: lang/es_AR/settings.php modified: lang/et/activities.php modified: lang/et/common.php modified: lang/et/components.php modified: lang/et/entities.php modified: lang/et/errors.php modified: lang/et/preferences.php modified: lang/et/settings.php modified: lang/eu/activities.php modified: lang/eu/common.php modified: lang/eu/components.php modified: lang/eu/entities.php modified: lang/eu/errors.php modified: lang/eu/preferences.php modified: lang/eu/settings.php modified: lang/fa/activities.php modified: lang/fa/common.php modified: lang/fa/components.php modified: lang/fa/entities.php modified: lang/fa/errors.php modified: lang/fa/preferences.php modified: lang/fa/settings.php modified: lang/fr/activities.php modified: lang/fr/common.php modified: lang/fr/components.php modified: lang/fr/entities.php modified: lang/fr/errors.php modified: lang/fr/preferences.php modified: lang/fr/settings.php modified: lang/he/activities.php modified: lang/he/common.php modified: lang/he/components.php modified: lang/he/entities.php modified: lang/he/errors.php modified: lang/he/preferences.php modified: lang/he/settings.php modified: lang/hr/activities.php modified: lang/hr/common.php modified: lang/hr/components.php modified: lang/hr/entities.php modified: lang/hr/errors.php modified: lang/hr/preferences.php modified: lang/hr/settings.php modified: lang/hu/activities.php modified: lang/hu/common.php modified: lang/hu/components.php modified: lang/hu/editor.php modified: lang/hu/entities.php modified: lang/hu/errors.php modified: lang/hu/preferences.php modified: lang/hu/settings.php modified: lang/id/activities.php modified: lang/id/common.php modified: lang/id/components.php modified: lang/id/entities.php modified: lang/id/errors.php modified: lang/id/preferences.php modified: lang/id/settings.php modified: lang/it/activities.php modified: lang/it/common.php modified: lang/it/components.php modified: lang/it/entities.php modified: lang/it/errors.php modified: lang/it/preferences.php modified: lang/it/settings.php modified: lang/ja/activities.php modified: lang/ja/common.php modified: lang/ja/components.php modified: lang/ja/entities.php modified: lang/ja/errors.php modified: lang/ja/preferences.php modified: lang/ja/settings.php modified: lang/ka/activities.php modified: lang/ka/common.php modified: lang/ka/components.php modified: lang/ka/entities.php modified: lang/ka/errors.php modified: lang/ka/preferences.php modified: lang/ka/settings.php modified: lang/ko/activities.php modified: lang/ko/common.php modified: lang/ko/components.php modified: lang/ko/entities.php modified: lang/ko/errors.php modified: lang/ko/preferences.php modified: lang/ko/settings.php modified: lang/lt/activities.php modified: lang/lt/common.php modified: lang/lt/components.php modified: lang/lt/entities.php modified: lang/lt/errors.php modified: lang/lt/preferences.php modified: lang/lt/settings.php modified: lang/lv/activities.php modified: lang/lv/common.php modified: lang/lv/components.php modified: lang/lv/entities.php modified: lang/lv/errors.php modified: lang/lv/preferences.php modified: lang/lv/settings.php modified: lang/nb/activities.php modified: lang/nb/common.php modified: lang/nb/components.php modified: lang/nb/entities.php modified: lang/nb/errors.php modified: lang/nb/preferences.php modified: lang/nb/settings.php modified: lang/nl/activities.php modified: lang/nl/common.php modified: lang/nl/components.php modified: lang/nl/entities.php modified: lang/nl/errors.php modified: lang/nl/preferences.php modified: lang/nl/settings.php modified: lang/pl/activities.php modified: lang/pl/common.php modified: lang/pl/components.php modified: lang/pl/entities.php modified: lang/pl/errors.php modified: lang/pl/preferences.php modified: lang/pl/settings.php modified: lang/pt/activities.php modified: lang/pt/common.php modified: lang/pt/components.php modified: lang/pt/entities.php modified: lang/pt/errors.php modified: lang/pt/preferences.php modified: lang/pt/settings.php modified: lang/pt_BR/activities.php modified: lang/pt_BR/common.php modified: lang/pt_BR/components.php modified: lang/pt_BR/entities.php modified: lang/pt_BR/errors.php modified: lang/pt_BR/preferences.php modified: lang/pt_BR/settings.php modified: lang/ro/activities.php modified: lang/ro/common.php modified: lang/ro/components.php modified: lang/ro/entities.php modified: lang/ro/errors.php modified: lang/ro/preferences.php modified: lang/ro/settings.php modified: lang/ru/activities.php modified: lang/ru/auth.php modified: lang/ru/common.php modified: lang/ru/components.php modified: lang/ru/entities.php modified: lang/ru/errors.php modified: lang/ru/preferences.php modified: lang/ru/settings.php modified: lang/sk/activities.php modified: lang/sk/common.php modified: lang/sk/components.php modified: lang/sk/entities.php modified: lang/sk/errors.php modified: lang/sk/preferences.php modified: lang/sk/settings.php modified: lang/sl/activities.php modified: lang/sl/common.php modified: lang/sl/components.php modified: lang/sl/entities.php modified: lang/sl/errors.php modified: lang/sl/preferences.php modified: lang/sl/settings.php modified: lang/sv/activities.php modified: lang/sv/auth.php modified: lang/sv/common.php modified: lang/sv/components.php modified: lang/sv/entities.php modified: lang/sv/errors.php modified: lang/sv/preferences.php modified: lang/sv/settings.php modified: lang/tr/activities.php modified: lang/tr/common.php modified: lang/tr/components.php modified: lang/tr/entities.php modified: lang/tr/errors.php modified: lang/tr/preferences.php modified: lang/tr/settings.php modified: lang/uk/activities.php modified: lang/uk/common.php modified: lang/uk/components.php modified: lang/uk/entities.php modified: lang/uk/errors.php modified: lang/uk/preferences.php modified: lang/uk/settings.php modified: lang/uz/activities.php modified: lang/uz/auth.php modified: lang/uz/common.php modified: lang/uz/components.php modified: lang/uz/editor.php modified: lang/uz/entities.php modified: lang/uz/errors.php modified: lang/uz/pagination.php modified: lang/uz/passwords.php modified: lang/uz/preferences.php modified: lang/uz/settings.php modified: lang/uz/validation.php modified: lang/vi/activities.php modified: lang/vi/common.php modified: lang/vi/components.php modified: lang/vi/entities.php modified: lang/vi/errors.php modified: lang/vi/preferences.php modified: lang/vi/settings.php modified: lang/zh_CN/activities.php modified: lang/zh_CN/common.php modified: lang/zh_CN/components.php modified: lang/zh_CN/entities.php modified: lang/zh_CN/errors.php modified: lang/zh_CN/preferences.php modified: lang/zh_CN/settings.php modified: lang/zh_TW/activities.php modified: lang/zh_TW/common.php modified: lang/zh_TW/components.php modified: lang/zh_TW/entities.php modified: lang/zh_TW/errors.php modified: lang/zh_TW/preferences.php modified: lang/zh_TW/settings.php modified: package-lock.json modified: package.json modified: phpstan.neon.dist modified: phpunit.xml deleted: public/.htaccess modified: readme.md deleted: resources/icons/view.svg modified: resources/js/code/index.mjs modified: resources/js/code/views.js modified: resources/js/components/auto-suggest.js modified: resources/js/components/dropdown.js modified: resources/js/components/editor-toolbox.js modified: resources/js/components/entity-selector-popup.js modified: resources/js/components/entity-selector.js modified: resources/js/components/image-manager.js modified: resources/js/components/index.js modified: resources/js/components/page-comments.js modified: resources/js/components/page-display.js modified: resources/js/components/page-picker.js modified: resources/js/components/shortcuts.js modified: resources/js/components/wysiwyg-editor.js modified: resources/js/markdown/actions.js modified: resources/js/services/drawio.js modified: resources/js/services/util.js modified: resources/js/wysiwyg/config.js modified: resources/js/wysiwyg/drop-paste-handling.js modified: resources/js/wysiwyg/plugin-drawio.js modified: resources/js/wysiwyg/plugins-imagemanager.js modified: resources/js/wysiwyg/shortcuts.js modified: resources/sass/_blocks.scss modified: resources/sass/_buttons.scss modified: resources/sass/_components.scss modified: resources/sass/_content.scss modified: resources/sass/_forms.scss modified: resources/sass/_header.scss modified: resources/sass/_layout.scss modified: resources/sass/_lists.scss modified: resources/sass/_pages.scss modified: resources/sass/_text.scss modified: resources/sass/_tinymce.scss modified: resources/sass/_variables.scss deleted: resources/sass/print-styles.scss modified: resources/sass/styles.scss modified: resources/views/api-docs/parts/getting-started.blade.php modified: resources/views/books/create.blade.php modified: resources/views/books/edit.blade.php modified: resources/views/books/index.blade.php modified: resources/views/books/parts/form.blade.php modified: resources/views/books/parts/list.blade.php modified: resources/views/books/show.blade.php modified: resources/views/chapters/parts/form.blade.php modified: resources/views/chapters/show.blade.php modified: resources/views/common/activity-list.blade.php modified: resources/views/common/confirm-dialog.blade.php deleted: resources/views/common/custom-head.blade.php deleted: resources/views/common/custom-styles.blade.php modified: resources/views/common/dark-mode-toggle.blade.php deleted: resources/views/common/footer.blade.php deleted: resources/views/common/header.blade.php deleted: resources/views/common/notifications.blade.php deleted: resources/views/common/skip-to-content.blade.php modified: resources/views/common/sort.blade.php modified: resources/views/entities/favourite-action.blade.php modified: resources/views/entities/list.blade.php modified: resources/views/entities/meta.blade.php modified: resources/views/entities/selector-popup.blade.php modified: resources/views/entities/selector.blade.php modified: resources/views/entities/view-toggle.blade.php modified: resources/views/errors/404.blade.php modified: resources/views/exports/book.blade.php modified: resources/views/exports/chapter.blade.php modified: resources/views/exports/parts/chapter-item.blade.php modified: resources/views/home/books.blade.php modified: resources/views/home/default.blade.php modified: resources/views/home/shelves.blade.php modified: resources/views/layouts/base.blade.php modified: resources/views/layouts/export.blade.php modified: resources/views/layouts/plain.blade.php modified: resources/views/layouts/tri.blade.php modified: resources/views/pages/delete.blade.php modified: resources/views/pages/edit.blade.php modified: resources/views/pages/guest-create.blade.php modified: resources/views/pages/parts/editor-toolbar.blade.php modified: resources/views/pages/parts/editor-toolbox.blade.php deleted: resources/views/pages/parts/editor-translations.blade.php modified: resources/views/pages/parts/form.blade.php modified: resources/views/pages/parts/image-manager-form.blade.php modified: resources/views/pages/parts/image-manager-list.blade.php modified: resources/views/pages/parts/markdown-editor.blade.php modified: resources/views/pages/parts/template-manager.blade.php modified: resources/views/pages/parts/wysiwyg-editor.blade.php modified: resources/views/pages/revision.blade.php modified: resources/views/pages/show.blade.php modified: resources/views/search/all.blade.php modified: resources/views/settings/audit.blade.php modified: resources/views/settings/customization.blade.php modified: resources/views/settings/layout.blade.php deleted: resources/views/settings/parts/page-picker.blade.php modified: resources/views/settings/roles/parts/form.blade.php modified: resources/views/shelves/index.blade.php modified: resources/views/shelves/parts/form.blade.php modified: resources/views/shelves/parts/list.blade.php modified: resources/views/shelves/show.blade.php modified: resources/views/users/api-tokens/create.blade.php modified: resources/views/users/api-tokens/delete.blade.php modified: resources/views/users/api-tokens/edit.blade.php modified: resources/views/users/api-tokens/parts/list.blade.php modified: resources/views/users/create.blade.php modified: resources/views/users/delete.blade.php modified: resources/views/users/edit.blade.php modified: resources/views/users/parts/form.blade.php deleted: resources/views/users/preferences/parts/shortcut-control.blade.php deleted: resources/views/users/preferences/shortcuts.blade.php modified: resources/views/vendor/notifications/email.blade.php modified: routes/web.php modified: tests/Actions/WebhookCallTest.php modified: tests/Api/BooksApiTest.php modified: tests/Api/ChaptersApiTest.php modified: tests/Api/PagesApiTest.php modified: tests/Api/SearchApiTest.php modified: tests/Api/ShelvesApiTest.php modified: tests/Api/UsersApiTest.php modified: tests/Auth/OidcTest.php modified: tests/Auth/RegistrationTest.php modified: tests/Auth/ResetPasswordTest.php modified: tests/Auth/Saml2Test.php modified: tests/Auth/SocialAuthTest.php modified: tests/Auth/UserInviteTest.php modified: tests/Commands/CleanupImagesCommandTest.php modified: tests/Commands/ResetMfaCommandTest.php modified: tests/Commands/UpdateUrlCommandTest.php modified: tests/DebugViewTest.php modified: tests/Entity/BookShelfTest.php modified: tests/Entity/BookTest.php modified: tests/Entity/ChapterTest.php modified: tests/Entity/CommentTest.php modified: tests/Entity/ConvertTest.php modified: tests/Entity/EntitySearchTest.php modified: tests/Entity/ExportTest.php modified: tests/Entity/PageContentTest.php modified: tests/Entity/PageRevisionTest.php modified: tests/Entity/SearchOptionsTest.php modified: tests/ErrorTest.php modified: tests/FavouriteTest.php modified: tests/Helpers/EntityProvider.php modified: tests/Helpers/FileProvider.php modified: tests/Helpers/PermissionsProvider.php modified: tests/Helpers/UserRoleProvider.php modified: tests/HomepageTest.php modified: tests/LanguageTest.php modified: tests/Permissions/RolePermissionsTest.php modified: tests/PublicActionTest.php modified: tests/References/ReferencesTest.php modified: tests/SecurityHeaderTest.php modified: tests/Settings/RegenerateReferencesTest.php modified: tests/Settings/TestEmailTest.php modified: tests/TestCase.php modified: tests/ThemeTest.php modified: tests/Uploads/AvatarTest.php modified: tests/Uploads/ImageTest.php modified: tests/User/RoleManagementTest.php modified: tests/User/UserApiTokenTest.php modified: tests/User/UserManagementTest.php modified: tests/User/UserPreferencesTest.php modified: tests/User/UserSearchTest.php modified: version Untracked files: (use "git add <file>..." to include in what will be committed) .env.bak app/Access/Notifications/ app/Access/SocialDriverManager.php app/Activity/Controllers/WatchController.php app/Activity/Models/Watch.php app/Activity/Notifications/ 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/ 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/ lang/pl/notifications.php lang/pt/notifications.php lang/pt_BR/notifications.php lang/ro/notifications.php lang/ru/notifications.php lang/sk/notifications.php lang/sl/notifications.php lang/sq/ lang/sv/notifications.php lang/tr/notifications.php lang/uk/notifications.php lang/uz/notifications.php lang/vi/notifications.php lang/zh_CN/notifications.php lang/zh_TW/notifications.php resources/icons/notifications.svg resources/icons/security.svg resources/icons/user-preferences.svg resources/icons/watch-ignore.svg resources/icons/watch.svg resources/js/components/wysiwyg-input.js resources/js/services/store.js resources/js/wysiwyg/filters.js resources/js/wysiwyg/fixes.js resources/sass/_print.scss resources/views/entities/icon-link.blade.php resources/views/entities/watch-action.blade.php resources/views/entities/watch-controls.blade.php resources/views/form/description-html-input.blade.php resources/views/form/editor-translations.blade.php resources/views/form/page-picker.blade.php resources/views/layouts/parts/custom-head.blade.php resources/views/layouts/parts/custom-styles.blade.php resources/views/layouts/parts/footer.blade.php resources/views/layouts/parts/header-links-start.blade.php resources/views/layouts/parts/header-links.blade.php resources/views/layouts/parts/header-logo.blade.php resources/views/layouts/parts/header-search.blade.php resources/views/layouts/parts/header-user-menu.blade.php resources/views/layouts/parts/header.blade.php resources/views/layouts/parts/notifications.blade.php resources/views/layouts/parts/skip-to-content.blade.php resources/views/users/account/ tests/Activity/ tests/Commands/RefreshAvatarCommandTest.php tests/Entity/BookDefaultTemplateTest.php tests/PwaManifestTest.php tests/Unit/PageIncludeParserTest.php tests/Unit/SsrUrlValidatorTest.php tests/User/UserMyAccountTest.php no changes added to commit (use "git add" and/or "git commit -a") ``` </p> </details> > * 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
Author
Owner

@ssddanbrown commented on GitHub (Jan 4, 2024):

Okay, looks like the update failed to use the latest code, but it's not clear why that is.

  • Could you confirm the output of running git log -n 1 from your BookStack directory.
  • Have you made any intentional changes to the BookStack installation files since install?
@ssddanbrown commented on GitHub (Jan 4, 2024): Okay, looks like the update failed to use the latest code, but it's not clear why that is. - Could you confirm the output of running `git log -n 1` from your BookStack directory. - Have you made any intentional changes to the BookStack installation files since install?
Author
Owner

@DarkZoneSD commented on GitHub (Jan 4, 2024):

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:

Details

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$

@DarkZoneSD commented on GitHub (Jan 4, 2024): ``` 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: <details><summary>Details</summary> <p> ``` 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$ ``` </p> </details>
Author
Owner

@ssddanbrown commented on GitHub (Jan 4, 2024):

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.

@ssddanbrown commented on GitHub (Jan 4, 2024): 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. ```bash 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.
Author
Owner

@DarkZoneSD commented on GitHub (Jan 4, 2024):

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
Update Details

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/)

@DarkZoneSD commented on GitHub (Jan 4, 2024): 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 ``` <details><summary>Update Details</summary> <p> ``` 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$ ``` </p> </details> 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/)
Author
Owner

@ssddanbrown commented on GitHub (Jan 24, 2024):

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?
  • Do you see the same on our demo site?
@ssddanbrown commented on GitHub (Jan 24, 2024): 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? - Do you see the same [on our demo site](https://demo.bookstackapp.com/)?
Author
Owner

@DarkZoneSD commented on GitHub (Jan 25, 2024):

  • 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.

No, the Demo site has the regular GUI.

I've tried it with and without costumized HTML Head Content, no luck.

@DarkZoneSD commented on GitHub (Jan 25, 2024): > * 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](https://demo.bookstackapp.com/)? No, the Demo site has the regular GUI. I've tried it with and without costumized HTML Head Content, no luck.
Author
Owner

@ssddanbrown commented on GitHub (Jan 25, 2024):

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.

@ssddanbrown commented on GitHub (Jan 25, 2024): 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.
Author
Owner

@DarkZoneSD commented on GitHub (Jan 25, 2024):

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.

@DarkZoneSD commented on GitHub (Jan 25, 2024): > 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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#4387