delete playlist buttons to frontend

This commit is contained in:
simon 2021-11-20 18:27:10 +07:00
parent b292a5e309
commit 220d020c76
No known key found for this signature in database
GPG Key ID: 2C15AA5E89985DD4
4 changed files with 43 additions and 1 deletions

View File

@ -31,12 +31,19 @@
false
{% endif %}
</p>
<button onclick="deleteConfirm()" id="delete-item">Delete Playlist</button>
<div class="delete-confirm" id="delete-button">
<span>Delete {{ playlist_info.playlist_name }}?</span>
<button onclick="deletePlaylist(this)" data-action="metadata" data-id="{{ playlist_info.playlist_id }}">Delete metadata</button>
<button onclick="deletePlaylist(this)" data-action="all" class="danger-button" data-id="{{ playlist_info.playlist_id }}">Delete all</button><br>
<button onclick="cancelDelete()">Cancel</button>
</div>
</div>
</div>
<div class="info-box-item">
<div>
{% if max_hits %}
<p>Total Videos archived: {{ playlist_info.playlist_entries|length }}/{{ max_hits }}</p>
<p>Total Videos archived: {{ max_hits }}/{{ playlist_info.playlist_entries|length }}</p>
<p>Watched: <button title="Mark all videos from {{ playlist_info.playlist_name }} as watched" type="button" id="watched-button" data-id="{{ playlist_info.playlist_id }}" onclick="isWatchedButton(this)">Mark as watched</button></p>
{% endif %}
</div>

View File

@ -1009,6 +1009,7 @@ class PostData:
"channel-search": self.channel_search,
"delete-video": self.delete_video,
"delete-channel": self.delete_channel,
"delete-playlist": self.delete_playlist,
"find-playlists": self.find_playlists,
}
@ -1202,6 +1203,19 @@ class PostData:
YoutubeChannel(channel_id).delete_channel()
return {"success": True}
def delete_playlist(self):
"""delete playlist, only metadata or incl all videos"""
playlist_dict = self.exec_val
playlist_id = playlist_dict["playlist-id"]
playlist_action = playlist_dict["playlist-action"]
print(f"delete {playlist_action} from playlist {playlist_id}")
if playlist_action == "metadata":
YoutubePlaylist(playlist_id).delete_metadata()
elif playlist_action == "all":
YoutubePlaylist(playlist_id).delete_videos_playlist()
return {"success": True}
def find_playlists(self):
"""add all playlists of a channel"""
channel_id = self.exec_val

View File

@ -209,6 +209,10 @@ button:hover {
display: none;
}
.delete-confirm button {
margin: 3px 0;
}
.danger-button {
background-color: var(--highlight-error);
}

View File

@ -239,6 +239,23 @@ function deleteChannel(button) {
}, 1000);
}
function deletePlaylist(button) {
var playlist_id = button.getAttribute("data-id");
var playlist_action = button.getAttribute("data-action");
var payload = JSON.stringify({
"delete-playlist": {
"playlist-id": playlist_id,
"playlist-action": playlist_action
}
});
console.log(payload);
sendPost(payload);
setTimeout(function(){
window.location.replace("/playlist/");
return false;
}, 1000);
}
function cancelDelete() {
document.getElementById("delete-button").style.display = 'none';
document.getElementById("delete-item").style.display = 'block';