Compare commits

...

2 commits

Author SHA1 Message Date
5944686d1d
feat: allow deleting via the ui. 2025-03-09 20:44:23 +01:00
7a590ade7e
feat: allow deleting of smart playlists. 2025-03-09 20:27:45 +01:00
6 changed files with 59 additions and 0 deletions

View file

@ -58,5 +58,13 @@ namespace Jellyfin.Plugin.SmartPlaylist.Api {
await _store.SaveSmartCollectionAsync(smartCollection);
return Created();
}
[HttpDelete]
[Route("{smartCollectionId}")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
public async Task<ActionResult> DeleteCollection([FromRoute, Required] SmartCollectionId smartCollectionId) {
_store.DeleteSmartCollectionById(smartCollectionId);
return NoContent();
}
}
}

View file

@ -57,5 +57,13 @@ namespace Jellyfin.Plugin.SmartPlaylist.Api {
await _store.SaveSmartPlaylistAsync(smartPlaylist);
return Created();
}
[HttpDelete]
[Route("{smartPlaylistId}")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
public async Task<ActionResult> DeletePlaylist([FromRoute, Required] SmartPlaylistId smartPlaylistId) {
_store.DeleteSmartPlaylistById(smartPlaylistId);
return NoContent();
}
}
}

View file

@ -37,6 +37,9 @@
<button is="emby-button" type="submit" class="raised button-submit block emby-button">
<span>Save</span>
</button>
<button is="emby-button" type="reset" class="raised button-reset block emby-button">
<span>Delete</span>
</button>
</div>
</form>
</div>

View file

@ -73,6 +73,15 @@ ApiClient.setSmartCollection = function (c) {
data: JSON.stringify(c),
});
}
ApiClient.deleteSmartCollection = function (id) {
const url = ApiClient.getUrl(`SmartCollection/${id}`)
return this.ajax({
type: 'DELETE',
url: url,
});
}
function initial_load(selectedId) {
Dashboard.showLoadingMsg();
ApiClient.getSmartCollections().then(function (collections) {
@ -112,4 +121,14 @@ export default function (view, params) {
});
e.preventDefault();
});
document.querySelector('#SmartCollectionConfigForm')
.addEventListener('reset', function (e) {
Dashboard.showLoadingMsg();
const selection = document.querySelector('#SmartcollectionSelection');
const selectedId = COLLECTIONS[selection.selectedIndex].Id;
ApiClient.deleteSmartCollection(selectedId).then(function () {
initial_load(null);
});
e.preventDefault();
});
}

View file

@ -43,6 +43,9 @@
<button is="emby-button" type="submit" class="raised button-submit block emby-button">
<span>Save</span>
</button>
<button is="emby-button" type="reset" class="raised button-reset block emby-button">
<span>Delete</span>
</button>
</div>
</form>
</div>

View file

@ -97,6 +97,14 @@ ApiClient.setSmartPlaylist = function (p) {
});
}
ApiClient.deleteSmartPlaylist = function (id) {
const url = ApiClient.getUrl(`SmartPlaylist/${id}`)
return this.ajax({
type: 'DELETE',
url: url,
});
}
function initial_load(selectedId) {
Dashboard.showLoadingMsg();
ApiClient.getSmartPlaylists().then(function (playlists) {
@ -139,4 +147,14 @@ export default function (view, params) {
});
e.preventDefault();
});
document.querySelector('#SmartPlaylistConfigForm')
.addEventListener('reset', function (e) {
Dashboard.showLoadingMsg();
const selection = document.querySelector('#SmartplaylistSelection');
const selectedId = PLAYLISTS[selection.selectedIndex].Id;
ApiClient.deleteSmartPlaylist(selectedId).then(function () {
initial_load(null);
});
e.preventDefault();
});
}