1
0
mirror of https://github.com/SuperBFG7/ympd synced 2024-12-27 03:10:26 +00:00

Feat: confirm dialog for delete playlist #47

This commit is contained in:
jcorporation 2018-10-14 22:08:10 +01:00
parent bb5bf87dbd
commit 41a46b3656
4 changed files with 42 additions and 4 deletions

View File

@ -647,6 +647,29 @@
</div> </div>
</div> </div>
<div class="modal fade" id="modalDeletePlaylist" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><span class="material-icons title-icon">delete</span>Delete playlist</h5>
<button type="button" class="close" data-dismiss="modal">&times;</button>
</div>
<div class="modal-body">
<form id="deletePlaylistFrm">
<div class="form-group">
<label for="deletePlaylist">Playlist</label>
<input type="text" class="form-control" id="deletePlaylist" readonly>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-success" data-href='{"cmd": "delPlaylist", "options": []}'>Delete</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalSaveSmartPlaylist" tabindex="-1"> <div class="modal fade" id="modalSaveSmartPlaylist" tabindex="-1">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">

View File

@ -92,6 +92,7 @@ var modalAddToPlaylist = new Modal(document.getElementById('modalAddToPlaylist')
var modalRenamePlaylist = new Modal(document.getElementById('modalRenamePlaylist')); var modalRenamePlaylist = new Modal(document.getElementById('modalRenamePlaylist'));
var modalUpdateDB = new Modal(document.getElementById('modalUpdateDB')); var modalUpdateDB = new Modal(document.getElementById('modalUpdateDB'));
var modalSaveSmartPlaylist = new Modal(document.getElementById('modalSaveSmartPlaylist')); var modalSaveSmartPlaylist = new Modal(document.getElementById('modalSaveSmartPlaylist'));
var modalDeletePlaylist = new Modal(document.getElementById('modalDeletePlaylist'));
function appPrepare(scrollPos) { function appPrepare(scrollPos) {
if (app.current.app != app.last.app || app.current.tab != app.last.tab || app.current.view != app.last.view) { if (app.current.app != app.last.app || app.current.tab != app.last.tab || app.current.view != app.last.view) {
@ -1958,7 +1959,7 @@ function showMenu(el, event) {
(type == 'smartpls' ? addMenuItem({"cmd": "showSmartPlaylist", "options": [uri]}, 'Edit smart playlist') : '') + (type == 'smartpls' ? addMenuItem({"cmd": "showSmartPlaylist", "options": [uri]}, 'Edit smart playlist') : '') +
(uri.indexOf('myMPDsmart') != 0 ? (uri.indexOf('myMPDsmart') != 0 ?
addMenuItem({"cmd": "showRenamePlaylist", "options": [uri]}, 'Rename playlist') + addMenuItem({"cmd": "showRenamePlaylist", "options": [uri]}, 'Rename playlist') +
addMenuItem({"cmd": "delPlaylist", "options": [uri]}, 'Delete playlist') : ''); addMenuItem({"cmd": "showDelPlaylist", "options": [uri]}, 'Delete playlist') : '');
} }
else if (app.current.app == 'Browse' && app.current.tab == 'Playlists' && app.current.view == 'Detail') { else if (app.current.app == 'Browse' && app.current.tab == 'Playlists' && app.current.view == 'Detail') {
var x = document.getElementById('BrowsePlaylistsDetailList'); var x = document.getElementById('BrowsePlaylistsDetailList');
@ -2118,9 +2119,15 @@ function delQueueSong(mode, start, end) {
sendAPI({"cmd": "MPD_API_QUEUE_RM_TRACK", "data": { "track": start}}); sendAPI({"cmd": "MPD_API_QUEUE_RM_TRACK", "data": { "track": start}});
} }
function delPlaylist(uri) { function showDelPlaylist(uri) {
sendAPI({"cmd": "MPD_API_PLAYLIST_RM", "data": {"uri": uri}}); document.getElementById('deletePlaylist').value = uri;
sendAPI({"cmd": "MPD_API_PLAYLIST_LIST","data": {"offset": app.current.page, "filter": app.current.filter}}, parsePlaylists); modalDeletePlaylist.show();
}
function delPlaylist() {
var uri = document.getElementById('deletePlaylist').value;
sendAPI({"cmd": "MPD_API_PLAYLIST_RM_AND_LIST", "data": {"uri": uri, "offset": app.current.page, "filter": app.current.filter}}, parsePlaylists);
modalDeletePlaylist.hide();
} }
function confirmSettings() { function confirmSettings() {

View File

@ -546,6 +546,7 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
n = snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"result\", \"data\": \"ok\"}"); n = snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"result\", \"data\": \"ok\"}");
} }
break; break;
case MPD_API_PLAYLIST_RM_AND_LIST:
case MPD_API_PLAYLIST_RM: case MPD_API_PLAYLIST_RM:
je = json_scanf(msg.p, msg.len, "{data: {uri:%Q}}", &p_charbuf1); je = json_scanf(msg.p, msg.len, "{data: {uri:%Q}}", &p_charbuf1);
if (je == 1) { if (je == 1) {
@ -559,6 +560,12 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
free(p_charbuf1); free(p_charbuf1);
n = snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"result\", \"data\": \"ok\"}"); n = snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"result\", \"data\": \"ok\"}");
} }
//AND_LIST
je = json_scanf(msg.p, msg.len, "{data: {offset:%u, filter:%Q}}", &uint_buf1, &p_charbuf1);
if (je == 2) {
n = mympd_put_playlists(mpd.buf, uint_buf1, p_charbuf1);
free(p_charbuf1);
}
break; break;
case MPD_API_SETTINGS_GET: case MPD_API_SETTINGS_GET:
n = mympd_put_settings(mpd.buf); n = mympd_put_settings(mpd.buf);

View File

@ -65,6 +65,7 @@
X(MPD_API_QUEUE_ADD_PLAYLIST) \ X(MPD_API_QUEUE_ADD_PLAYLIST) \
X(MPD_API_QUEUE_REPLACE_PLAYLIST) \ X(MPD_API_QUEUE_REPLACE_PLAYLIST) \
X(MPD_API_QUEUE_SHUFFLE) \ X(MPD_API_QUEUE_SHUFFLE) \
X(MPD_API_PLAYLIST_RM_AND_LIST) \
X(MPD_API_PLAYLIST_RM) \ X(MPD_API_PLAYLIST_RM) \
X(MPD_API_PLAYLIST_CLEAR) \ X(MPD_API_PLAYLIST_CLEAR) \
X(MPD_API_PLAYLIST_RENAME) \ X(MPD_API_PLAYLIST_RENAME) \