diff --git a/PlexRequests.UI/Content/search.js b/PlexRequests.UI/Content/search.js index 0cd5aba48..37b41a95e 100644 --- a/PlexRequests.UI/Content/search.js +++ b/PlexRequests.UI/Content/search.js @@ -540,6 +540,8 @@ $(function () { }); $('#episodesModal').on('show.bs.modal', function (event) { + $("#episodesBody").html(""); // Clear out the modal body + $('#episodeModalLoading').removeAttr('hidden'); finishLoading("episodesRequest", "primary"); var button = $(event.relatedTarget); // Button that triggered the modal var id = button.data('identifier'); // Extract info from data-* attributes @@ -551,6 +553,7 @@ $(function () { data: { tvId: id }, dataType: "json", success: function (results) { + $('#episodeModalLoading').attr('hidden', "hidden"); var $content = $("#episodesBody"); $content.html(""); $('#selectedEpisodeId').val(id); @@ -576,9 +579,11 @@ $(function () { // Save Modal click $("#episodesRequest").click(function (e) { e.preventDefault(); + $("#episodesRequest").unbind(); + var origHtml = $('#episodesRequest').html(); + disableElement($('#episodeRequest')); loadingButton("episodesRequest", "primary"); - var origHtml = $('#episodesRequest').html(); var tvId = $('#selectedEpisodeId').val(); @@ -610,11 +615,13 @@ $(function () { dataType: "json", success: function (response) { finishLoading("episodesRequest", "primary", origHtml); + enableElement($('#episodeRequest')); if (response.result === true) { generateNotify(response.message, "success"); } else { generateNotify(response.message, "warning"); } + }, error: function(e) { console.log(e); diff --git a/PlexRequests.UI/Content/site.js b/PlexRequests.UI/Content/site.js index 1ffc4b591..85cae41f8 100644 --- a/PlexRequests.UI/Content/site.js +++ b/PlexRequests.UI/Content/site.js @@ -53,6 +53,13 @@ function checkJsonResponse(response) { } } +function disableElement(element) { + element.attr("disabled", "disabled"); +} +function enableElement(element) { + element.removeAttr("disabled"); +} + function loadingButton(elementId, originalCss) { var $element = $('#' + elementId); $element.removeClass("btn-" + originalCss + "-outline").addClass("btn-primary-outline").addClass('disabled').html(" Loading..."); diff --git a/PlexRequests.UI/Views/Search/Index.cshtml b/PlexRequests.UI/Views/Search/Index.cshtml index b27c6705b..17204abb1 100644 --- a/PlexRequests.UI/Views/Search/Index.cshtml +++ b/PlexRequests.UI/Views/Search/Index.cshtml @@ -305,8 +305,9 @@ +