@using Ombi.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<Ombi.Core.SettingModels.RadarrSettings> @Html.Partial("Shared/Partial/_Sidebar") @{ int port; if (Model.Port == 0) { port = 7878; } else { port = Model.Port; } } <div class="col-sm-8 col-sm-push-1"> <form class="form-horizontal" method="POST" id="mainForm"> <fieldset> <legend>Radarr Settings</legend> @Html.Checkbox(Model.Enabled, "Enabled", "Enabled") <div class="form-group"> <label for="Ip" class="control-label">Radarr Hostname or IP</label> <div class=""> <input type="text" class="form-control form-control-custom " id="Ip" name="Ip" placeholder="localhost" value="@Model.Ip"> </div> </div> <div class="form-group"> <label for="portNumber" class="control-label">Port</label> <div class=""> <input type="text" class="form-control form-control-custom " id="portNumber" name="Port" placeholder="Port Number" value="@port"> </div> </div> <div class="form-group"> <label for="ApiKey" class="control-label">Radarr API Key</label> <div> <input type="text" class="form-control form-control-custom " id="ApiKey" name="ApiKey" value="@Model.ApiKey"> </div> </div> @Html.Checkbox(Model.Ssl, "Ssl", "Ssl") <div class="form-group"> <label for="SubDir" class="control-label">Radarr Base Url</label> <div> <input type="text" class="form-control form-control-custom " id="SubDir" name="SubDir" value="@Model.SubDir"> </div> </div> <div class="form-group"> <div> <button type="submit" id="getProfiles" class="btn btn-primary-outline">Get Quality Profiles <div id="getSpinner"/></button> </div> </div> <div class="form-group"> <label for="select" class="control-label">Quality Profiles</label> <div id="profiles"> <select class="form-control form-control-custom" id="select"></select> </div> </div> <div class="form-group"> <label for="RootPath" class="control-label">Root save directory for TV shows</label> <div> <input type="text" class="form-control form-control-custom " placeholder="C:\Media\Tv" id="RootPath" name="RootPath" value="@Model.RootPath"> <label>Enter the root folder where movies are saved. For example <strong>C:\Media\TV</strong>.</label> </div> </div> <div class="form-group"> <div> <button id="testRadarr" type="button" class="btn btn-primary-outline">Test Connectivity <div id="spinner"/></button> </div> </div> <div class="form-group"> <div> <button id="save" type="submit" class="btn btn-primary-outline ">Submit</button> </div> </div> </fieldset> </form> </div> <script> $(function () { @if (!string.IsNullOrEmpty(Model.QualityProfile)) { <text> preLoad(); function preLoad() { var qualitySelected = @Model.QualityProfile; if (!qualitySelected) { return; } var $form = $("#mainForm"); $.ajax({ type: $form.prop("method"), data: $form.serialize(), url: "radarrprofiles", dataType: "json", success: function(response) { response.forEach(function(result) { if (result.id == qualitySelected) { $("#select").append("<option selected='selected' value='" + result.id + "'>" + result.name + "</option>"); } else { $("#select").append("<option value='" + result.id + "'>" + result.name + "</option>"); } }); }, error: function(e) { console.log(e); generateNotify("Something went wrong!", "danger"); } }); } </text> } $('#save').click(function(e) { e.preventDefault(); var port = $('#portNumber').val(); if (isNaN(port)) { generateNotify("You must specify a Port.", "warning"); return; } var qualityProfile = $("#profiles option:selected").val(); var $form = $("#mainForm"); var data = $form.serialize(); data = data + "&qualityProfile=" + qualityProfile; $.ajax({ type: $form.prop("method"), data: data, url: $form.prop("action"), dataType: "json", success: function (response) { if (response.result === true) { generateNotify("Success!", "success"); } else { generateNotify(response.message, "warning"); } }, error: function (e) { console.log(e); generateNotify("Something went wrong!", "danger"); } }); }); $('#getProfiles').click(function (e) { $('#getSpinner').attr("class", "fa fa-spinner fa-spin"); e.preventDefault(); if (!$('#Ip').val()) { generateNotify("Please enter a valid IP/Hostname.", "warning"); $('#getSpinner').attr("class", "fa fa-times"); return; } if (!$('#portNumber').val()) { generateNotify("Please enter a valid Port Number.", "warning"); $('#getSpinner').attr("class", "fa fa-times"); return; } if (!$('#ApiKey').val()) { generateNotify("Please enter a valid ApiKey.", "warning"); $('#getSpinner').attr("class", "fa fa-times"); return; } var $form = $("#mainForm"); $.ajax({ type: $form.prop("method"), data: $form.serialize(), url: "radarrprofiles", dataType: "json", success: function (response) { response.forEach(function (result) { $('#getSpinner').attr("class", "fa fa-check"); $("#select").append("<option value='" + result.id + "'>" + result.name + "</option>"); }); }, error: function (e) { console.log(e); $('#getSpinner').attr("class", "fa fa-times"); generateNotify("Something went wrong!", "danger"); } }); }); var base = '@Html.GetBaseUrl()'; $('#testRadarr').click(function (e) { $('#spinner').attr("class", "fa fa-spinner fa-spin"); e.preventDefault(); var qualityProfile = $("#profiles option:selected").val(); var $form = $("#mainForm"); var data = $form.serialize(); data = data + "&qualityProfile=" + qualityProfile; var url = createBaseUrl(base, '/test/radarr'); $.ajax({ type: $form.prop("method"), url: url, data: data, dataType: "json", success: function (response) { console.log(response); if (response.result === true) { generateNotify(response.message, "success"); $('#spinner').attr("class", "fa fa-check"); } else { generateNotify(response.message, "warning"); $('#spinner').attr("class", "fa fa-times"); } }, error: function (e) { console.log(e); generateNotify("Something went wrong!", "danger"); $('#spinner').attr("class", "fa fa-times"); } }); }); }) </script>