Previously AzuraCast had two very similar `$settings` variables, one that was from environment and the other from the database. This refactor distinguishes the two much more clearly.
This migration adds "Storage Locations", managed via a new System Administration panel, that can hold Station Media data, live broadcast recordings, and backups. These storage locations can be local (as they are by default) or remote via any S3-compatible service.
* Remove redundant test log.
* Set function return type on tests.
* Don't manage translations on branch/PR requests.
* Separate locale and static asset steps.
* Make sure npm ci runs even when translations don't run.
* Fixed user based locale not working bug due to calling initLocale() before getting user
* Add frontend test case to check if user based locale works correctly
* Look for logged in user's e-mail instead of the word "Logged In" in tests.
* Don't overwrite the LANG env var with user locale.
Co-authored-by: Buster "Silver Eagle" Neece <buster@busterneece.com>
Create a new "StationQueue" entity that contains the upcoming song queue, and split the important AutoDJ functionality across multiple classes (Annotations, Queue and Scheduler).
- Switch to EntityManagerInterface for EM uses
- Wrap EntityManager in close-resilient wrapper
- Close/clear/reopen EM with every request
- Rework tests to be em->clear() resilient.
* Commit new Schedule entity changes and new API endpoints.
* Fix possible cause of API POST errors.
* Fix syntax with JSON return slashes.
* Add "Schedule View" and "Enforce Schedule" settings to Streamers.
* Add "Scheduled" panel to Profile.
- Switch to "storageless sessions" middleware
- Update azuracore/azuraforms to apply necessary changes
- Switch form CSRF handling to use Session's CSRF handler
- Avoid using "magic" string in flash messages, switch to using constants.
Implement an upgrade of the codebase to use Slim Framework version 4, which includes the following changes:
- Updating to Slim version 4 and the corresponding AzuraCore updates.
- Making all objects PSR-7 Request/Response agnostic (and creating RequestHelper and ResponseHelper objects to interact with the PSR-7 Req/Resp objects).
- Moving to PHP-DI as a DI container and implementing its autowiring support.
* Initial entity and dependency commit.
* Create migration test for album art move.
* File management controller refactor and further wiring of Flysystem.
* Form/UI fixes and refactors related to Flysystem.
* Update composer deps and add merge plugin to avoid dep overlap.
* Fix batch moving/directory listing, add lightboxing to files manager.
* Fix album art writing, use special upload method to skip disk round-trip.
* Migrate StationRepository to be DI-driven, update unit tests and the setup controller.
* Initial renaming to a single global App\ namespace.
* Move CSRF/Flash under Session, move Session under Request
* Use new Request Station helper
* Unify App/Acl and App/Acl/StationAcl
* Alphabetize composer.json
- Expand the ManyToMany relationship between StationMedia and StationPlaylist to include both a "weight" and "last_played" parameter, to allow for sequential playlists.
- Implement Sequential playlist support
- Create new "reorder playlist" page
* Initial (non-working) commit of new middleware infrastructure.
* Begin massive refactor for Slimification: move controllers and views
* Begin refactor on controllers
* Finish refactor for admin pages.
* Initial refactor of API section finished.
* Going fully idiomatic with it: initial commit of infrastructure
* Mid-morning break commit of refactor to DI-ize *everything*
* Station adapter and config DI rewrite.
* Finish DI-ification refactor of admin pages.
* Finish DI-ification refactor of API controllers.
* Finish DI-ification refactor of frontend/setup controllers.
* Station index and profile controller refactors.
* Refactor all station controllers except Files.
* All files refactored, ready for testing!
* Update Codeception exclusions
* Green-light on functional tests, include forgotten controller page, etc.
* First set of rewritten entities. Not ready for use!
* More work on the massive overhaul of Doctrine entities.
* Bulk of the rewrite work completed.
* More bug and sync fixes.
* More fixes, Doctrine Proxy improvements.
* Fixing more tests.
* Console/CLI and API response fixes.
* Bug fixes.
* Missed a spot
* Fix uploading and bug with dupes.
* Fix automation bugs
* More bug fixes.