diff --git a/src/components/PlaylistsPage.vue b/src/components/PlaylistsPage.vue
index 3b048a64..28554e0d 100644
--- a/src/components/PlaylistsPage.vue
+++ b/src/components/PlaylistsPage.vue
@@ -16,7 +16,8 @@
v-text="playlist.name"
/>
-
+
+
@@ -46,6 +47,31 @@ export default {
this.playlists = json;
});
},
+ renamePlaylist(id) {
+ const newName = prompt(this.$t("actions.new_playlist_name"));
+ if (!newName) return;
+ this.fetchJson(this.authApiUrl() + "/user/playlists/rename", null, {
+ method: "POST",
+ body: JSON.stringify({
+ playlist: id,
+ newName: newName,
+ }),
+ headers: {
+ Authorization: this.getAuthToken(),
+ "Content-Type": "application/json",
+ },
+ }).then(json => {
+ if (json.error) alert(json.error);
+ else {
+ this.playlists.forEach((playlist, index) => {
+ if (playlist.id == id) {
+ this.playlists[index].name = newName;
+ return;
+ }
+ });
+ }
+ });
+ },
deletePlaylist(id) {
if (confirm(this.$t("actions.delete_playlist_confirm")))
this.fetchJson(this.authApiUrl() + "/user/playlists/delete", null, {
diff --git a/src/locales/en.json b/src/locales/en.json
index ac4e4322..7bfd50e7 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -97,7 +97,9 @@
"confirm_reset_preferences": "Are you sure you want to reset your preferences?",
"backup_preferences": "Backup preferences",
"restore_preferences": "Restore preferences",
- "back_to_home": "Back to home"
+ "back_to_home": "Back to home",
+ "rename_playlist": "Rename playlist",
+ "new_playlist_name": "New playlist name"
},
"comment": {
"pinned_by": "Pinned by",
@@ -146,4 +148,4 @@
"preferences_note": "Note: preferences are saved in the local storage of your browser. Deleting your browser data will reset them.",
"page_not_found": "Page not found"
}
-}
\ No newline at end of file
+}