diff --git a/app/Values/UserPreferences.php b/app/Values/UserPreferences.php
index 59380e02..5b54f1fa 100644
--- a/app/Values/UserPreferences.php
+++ b/app/Values/UserPreferences.php
@@ -16,6 +16,7 @@ final class UserPreferences implements Arrayable, JsonSerializable
'show_album_art_overlay' => 'boolean',
'lyrics_zoom_level' => 'integer',
'make_uploads_public' => 'boolean',
+ 'continuous_playback' => 'boolean',
];
private const CUSTOMIZABLE_KEYS = [
@@ -34,6 +35,7 @@ final class UserPreferences implements Arrayable, JsonSerializable
'lyrics_zoom_level',
'visualizer',
'active_extra_panel_tab',
+ 'continuous_playback',
];
private const ALL_KEYS = self::CUSTOMIZABLE_KEYS + ['lastfm_session_key'];
@@ -51,6 +53,7 @@ final class UserPreferences implements Arrayable, JsonSerializable
public bool $showAlbumArtOverlay,
public bool $makeUploadsPublic,
public bool $supportBarNoBugging,
+ public bool $continuousPlayback,
public int $lyricsZoomLevel,
public string $visualizer,
public ?string $activeExtraPanelTab,
@@ -77,6 +80,7 @@ final class UserPreferences implements Arrayable, JsonSerializable
showAlbumArtOverlay: $data['show_album_art_overlay'] ?? true,
makeUploadsPublic: $data['make_uploads_public'] ?? false,
supportBarNoBugging: $data['support_bar_no_bugging'] ?? false,
+ continuousPlayback: $data['continuous_playback'] ?? false,
lyricsZoomLevel: $data['lyrics_zoom_level'] ?? 1,
visualizer: $data['visualizer'] ?? 'default',
activeExtraPanelTab: $data['active_extra_panel_tab'] ?? null,
@@ -133,6 +137,7 @@ final class UserPreferences implements Arrayable, JsonSerializable
'lyrics_zoom_level' => $this->lyricsZoomLevel,
'visualizer' => $this->visualizer,
'active_extra_panel_tab' => $this->activeExtraPanelTab,
+ 'continuous_playback' => $this->continuousPlayback,
];
}
diff --git a/docs/development.md b/docs/development.md
index 995cfdd7..0cd92a16 100644
--- a/docs/development.md
+++ b/docs/development.md
@@ -19,15 +19,20 @@ composer install
yarn install
```
-You can now start the development server with `yarn dev`, which is simply a wrapper around `php artisan serve`:
+You can now start the development server with `yarn dev`:
```bash
-yarn dev
- $ php artisan serve
+$ yarn dev
- INFO Server running on [http://127.0.0.1:8000].
+ VITE v5.1.6 ready in 1549 ms
- Press Ctrl+C to stop the server
+ ➜ Local: http://localhost:5173/
+ ➜ Network: use --host to expose
+ ➜ press h + enter to show help
+
+ LARAVEL v9.52.0 plugin v1.0.2
+
+ ➜ APP_URL: http://localhost:8000
```
A development version of Koel should now be available at `http://localhost:8000` with full HMR support.
diff --git a/docs/usage/profile-preferences.md b/docs/usage/profile-preferences.md
index a6d48af0..689e239d 100644
--- a/docs/usage/profile-preferences.md
+++ b/docs/usage/profile-preferences.md
@@ -35,6 +35,7 @@ More themes are to be added in the future, along with the ability to create your
Koel allows you to set a couple of preferences:
+* Whether playing a song should trigger continuous playback of the entire playlist, album, artist, or genre
* Whether to show a notification whenever a new song starts playing
* Whether to confirm before closing Koel’s browser tab
* Whether to show a translucent, blurred overlay of the current album’s art
diff --git a/resources/assets/js/components/profile-preferences/PreferencesForm.vue b/resources/assets/js/components/profile-preferences/PreferencesForm.vue
index a569634c..9d87ba3a 100644
--- a/resources/assets/js/components/profile-preferences/PreferencesForm.vue
+++ b/resources/assets/js/components/profile-preferences/PreferencesForm.vue
@@ -6,6 +6,12 @@
Make uploaded songs public by default
+