All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Document javascript library versions in package.json (info only)
- Dark default theme as "darksoha" templates - from .zip file in issue #8 created by @sohanev
- Update epub loader config to align with latest version 3.5.6
- Deal with empty book.pubdate in templates - see issue #6 by @sohanev
- Support callback from EPub Loader to set author, book or series info in BBS data.db
- Show Calibre link & notes as alternative to links & notes stored in BBS data.db
- Add warning if Calibre DB version is out of date - upgrade it with Calibre v6.15+
- Add ExtraActions class with EPub Loader under /extra/ (dev only)
- Rename actions methods to camelCase and add route names
- Fix updating id templates in admin + add admin action tests
- Refactor AppData classes with entities and traits
- Fix uploading author thumbnail + show BBS author notes if any
- Run tests in separate process for LoginMiddleware - see auraphp/Aura.Session#80
- Migrate phpunit.xml.dist to phpunit 11.x format
- Update aura/session package to recent release 4.0
- Drop deprecated methods for releases older than 3.6.0
- Clean up ActionsCallableResolver deprecated since 3.4.1
- Include composer.json in release *.zip for SynoCommunity package
- Fix mailer tests for new phpmailer/phpmailer release (dev only)
- Replace alchemy/zippy with phing for packaging (dev only)
- Fix url encoding of files in OPDS feeds - see issue #4 by @Borogroves
- Use requester and move getAuth(), isAuthenticated() etc. methods to RequestUtil
- Use responder and move mkResponse() etc. methods to ResponseUtil
- Move request() and response() to DefaultActions
- Use setRequester() in DefaultMiddleware
- Rename mk*() methods in ResponseUtil
- Replace $_FILES with requester->files()
- Drop deprecated methods for releases older than 3.5.0
- Return response instead of void from mkSomething() and render() methods
- Support returning response from callable action in ActionsWrapperStrategy
- Show returning response (new-style) or void (old-style) in DefaultActions::hello()
- Change other actions to return response instead of void
- Deprecate use of AppTrait::request() in middleware and actions
- Clean up settings() and response() (partial)
- Drop deprecated methods for releases older than 3.4.0
- Split auth() and session() with getter in DefaultActions + setter in LoginMiddleware
- Split flash() with getter and setter in DefaultActions
- Pass along $request to auth and session methods (partial)
- Move url and path methods from AppTrait to RequestUtil helper
- Move identification of run mode to settings instead of container definition
- Pass auth and session as request attribute instead of using container
- Use gatekeeper middleware instead of wrapped check_admin() action
- Align uri methods with symfony http foundation helpers
- Revise middleware vs container setup for bbs and calibre configuration
- Add CORS options route and Allow-Control-* headers for json response
- Use FilesystemAdapter as fallback of ApcuAdapter for cache - see issue #3
- Enable basic json api interface by configuring $settings['hasapi'] = true;
- Make $settings['hasapi'] configurable via environment variable 'BBS_HAS_API'
- Make initial app name configurable via environment variable 'BBS_APP_NAME'
- Make base path configurable via environment variable 'BBS_BASE_PATH'
- Make debug mode configurable via environment variable 'BBS_DEBUG_MODE'
- Move default settings to Settings class + use properties to access
- Split config/config.php file based on configuration mode
- Move identification of current language + loading L10n to login middleware
- Split config/langs.php file into lang/messages.{lang}.php files for L10n
- Rename most source class files + adapt RedBeanPHP models in line with PSR-4
- Invoke callable actions via ActionsWrapperStrategy instead of using wrapper for each action in routes
- Updated dependencies + switched to phpunit 10.5
- Updated middlewares/cache package to new release 4.0
- Replaced abandoned package swiftmailer/swiftmailer with phpmailer/phpmailer
- Added tailwind css templates from v2.x frontend
- Added support for custom template directories
- Aligned template extension with v2.x frontend (.twig)
- Updated javascript library versions a little bit (limited by jQuery Mobile)
- Fixed e-mail validation check - see #2
- Dropped unused epiceditor js and related themes
- Switched to PSR-3/7/11/15/17 + Slim 4 framework
- Dropped incompatible package slim/logger from composer.json
- Removed abandoned package slim/views from lib/SlimViews
- Added BicBucStriim\Session and BicBucStriim\Utilities namespaces
- Clean up actions and middleware to prepare framework switch
- Split utilities and move files to BicBucStriim\Utilities namespace
- Moved lib/BicBucStriim to src directory to clarify source code
- Moved session files to lib/BicBucStriim/Session
- Moved config files to config directory and split to clarify source code
- Changed mapping of routes to actions to make it more adaptable
- Moved Slim 2 app dependencies to trait and added standard responses
- Adapted Twig files from abandoned slim/views package in lib/SlimViews for maintenance
- Updated twig/twig package to version 2.15 and then 3.8 for maintenance
- Dropped abandoned package slim/views from composer.json
- Add namespaces to AppData, Calibre and Middleware classes
- New RedBeanPHP FUSE model for artefact, idtemplate, link and note
- Split off actions by group from index.php
- Split off config and routes from index.php
- Moved middleware files to lib/BicBucStriim/Middleware
- Moved Calibre items and searchtype from utilities.php to lib/BicBucStriim/Calibre
- Moved calibre_thing.php, config.php and user.php to lib/BicBucStriim/AppData
- Fixed one-to-many relations for 'calibrething' authors with tests
- Updated gabordemooij/redbean package to version 5.7 for PHP 8.x
- Fixed a few more phpstan level 3 issues
- Moved vendor/rb.php to lib/BicBucStriim using gabordemooij/redbean package
- Moved vendor/epub.php to lib/BicBucStriim
- Replaced vendor/DateTimeFileWriter.php with package slim/logger
- Replaced abandoned package dflydev/markdown with michelf/php-markdown
- Removed package ircmaxell/password-compat as no longer relevant (PHP < 5.5)
- Merged #1 by @Tocamadera, Amazon will start winding down MOBI format
- Use production mode by default
- Added placeholders in data/titles and data/authors
- Adapted Dockerfile for permissions
- Updated version and changelog
- Added docker files
- Added fixes for PHP 8.2
- Run php-cs-fixer with PHP80Migration rule
- Added deprecated.php file for get_magic_quotes_gpc()
- Updated package versions in composer.json
- Replaced JS packaging library with PHP version due to packaging error, #369
- installcheck: Check for Sodium when using PHP 7.4+
- Changed packaging script to avoid duplicate files and reduce archive size
- Fixed packaging script, #367
- JS dependencies for build
- ChangeLog to CHANGELOG.md
- Added workaround for PHP 7.4 and Aura Auth, see #348
- Ruby dependencies for build
- Merged Polish translation by @xro, #299
- Updated infrastructure
- Updated MIME type for AZW3 download, #265
- Enabled language processing für ES, GL, HU
- Merged code by @rand82 for showing series in author pages, #255
- Merged #260 by @ramsnerm, human readable filesize for book download
- Added forwarding-sensitive url generation to login middleware, #210
- Added Hungarian translation by @gersey, #202
- Merged #257 by @josefglatz, .htaccess for Apache 2.3+
- Fixed #262, added unicode handling for ID templates
- Integrated spanish translation updates by @Tocamadera, #223
- Integrated french translation updates by @Draky50110, #220, #222
- Corrected OPDS navigation links for series, fixes #215
- Search fields in panels will now get automatic focus on desktops, #183
- Added workaround to search for items with non-ascii names, #206
- Fixed #204, failing GD test in installation check due to new phpinfo format
- Fixed #208, Problems due to strict error handling in newer PHP versions
- Fixed #200, bad parameter tests for id templates
- Handled more edge cases for old or incorrect session cookies to make the transition easier
- Fixed tag resolution and easy mode, #190
- Merged fixes by @Chouchen for installcheck.php (Calibre library problem detection)
- Fixed authentication for OPDS request
- Fixed bad SQL for OPDS tag handling
- Merged improved counter handling for empty DBs by @OzzieIsaacs
- More SQL changes for QNAP users
- Correction for configuration loading in PHP 5.5+
- Added sorting by date to books view #116 #99 #50
- Added admin configuration to specify the kind of date used for sorting (timestamp, pubdate or modified)
- Added Aura\Session library to handle sessions properly, #173
- Users can switch between title and date sorting in titles view
- Updated layout
- Replaced outdated auth library Slim\Strong with Aura\Auth
- Added workaround for SQL statements due to outdated SQLITE libs on QNAP devices, #146
- Security changes: protection against SQL injection, see #175
- Added a switch for disabling the multi-user login requirement, #88
- Added icon for Apple home screens etc, #97
- Updated dependencies: Slim 2.4.3, Twig 1.16
- Updated jQuery Mobile dependency
- Added french typo corrections, #111 by @murdos
- Added pull request #102 (@jampot), all series in OPDS
- Added pull request #140 (@alexandregz), Galician language
- Modified book download, added headers for better Tolino compatibility
- Fixed issue #107, the app returns now 401 for unauthorized download requests via OPDS
- Added pull request #103 (@jampot), add series name/number to emailed files
- Clarified the requirements for the ap, #122
- Added pull request #104 (@jampot), set user roles in admin menu
- Fixes issue #101 etc. undeclared function "fnmatch" in configuration page
- Fixes issue #101 etc. incorrect display for URL reqriting in installcheck
- Included fix for issue #90 (@OzzieIsaacs), changing the clipping of image thumbnails
- Included fixes for searches with embedded apostophes (@OzzieIsaacs)
- Included deletion of thumbnails on library change (@OzzieIsaacs)
- Fixed issue #85
- Included fix for issue #68 (@janeczku)
- Included fix for issue #68 (@janeczku)
- Added author metadata handling (thumbnail, links)
- Added cache-control for admin pages, see issue #81
- Added ID links to title details and link management to admin section, issue #60
- Added dependeny slim/views, removed slim/extras
- Separated Calibre and BicBucStriim DB handling
- Replaced PHP mail support with more flexible SwiftMailer
- Add book languages to the listviews and title details page, issue #56
- The series index number is now displayed in the series and title details scrrens, issuea #58, #71
- Dropped download protection and added login system, issue #47
- Upgraded dependency jQuery Mobile to 1.4.0
- Upgraded dependency jQuery to 1.10.2
- Upgraded dependency Slim to version 2.3.1
- Upgraded dependency Twig to 1.13.1
- PHP mcrypt extension is now required? (php5-mcrypt)
- Added custom columns display to title details page, issue #33
- Added a global search, displaying the first X results for every category, issue #17
- Added link to installation check page if the admin page has errors, issue #28
- Added tag based download protection (@blowk, issue #39)
- Upgraded Javascript dependencies
- Fixed: display of back button, issue #31
- Fixed: database file was accessible (@janeczku, issue #45)
- Added sending books via e-mail (@janeczku)
- Internal DB will be created if it doesn't exist
- Fixed: Logging configuration (@janeczku, issue #34)
- new: app title is now configurable
- new: title search for OPDS
- new: installation check page, installcheck.php
- new: dutch translation
- changed: title entries now show available formats
- updated dependencies (jQuery 1.8.3, jQuery Mobile 1.2.0)
- security fix: issue #12, admin password was displayed in password dialog
- fixed issue #4, sort order of books in series now according to field series_index
- updated dependencies (jQuery 1.7.2, jQuery Mobile 1.2.0 alpha 1)
- new: french translation, thanks to Thomas Parvais
- new: display of book series, thanks to DarkHunter85 (https://github.com/DarkHunter85)
- new: pagination for titles, authors, series and tags makes navigation in larger libraries easier
- new: OPDS catalog support
- updated: added more details to list views, thanks to DarkHunter85
- new: admin section for configuration, no config.php editing anymore
- new: thumbnail support for book title listings
- new: author and tags listings show the number of books per item
- changed: removed the RedBean PHP dependency
- new: support for Calibre book tags, code donated by mapero (https://github.com/mapero)
- new: optional download protection (password)
- updated dependencies (Slim 162, Redbean PHP 3.2.1)