more javascript fixes,

UI is still pretty much fucked.
pull/4/head
kay.one 13 years ago
parent 3d961654d8
commit 206144d7e3

@ -1,27 +1,24 @@
@using NzbDrone.Web.Models @using NzbDrone.Web.Models
@{ @{
Layout = null; Layout = null;
} }
<div> <div>
<fieldset> <fieldset>
<legend>Root Directory</legend> <legend>Root Directory</legend>
@{int d = 0; @{int d = 0;
foreach (var dir in ViewData["RootDirs"] as List<RootDirModel>) foreach (var dir in ViewData["RootDirs"] as List<RootDirModel>)
{ {
<div> <div>
@Html.RadioButton("selectedRootDir", dir.CleanPath, d == 0, new { @class = "dirList examplePart", id = "dirRadio_" + d }) @Html.RadioButton("selectedRootDir", dir.CleanPath, d == 0, new { @class = "dirList examplePart", id = "dirRadio_" + d })
@Html.Label(dir.Path) @Html.Label(dir.Path)
@{ d++; } @{ d++; }
</div> </div>
} }
} }
</fieldset> </fieldset>
</div> </div>
<br/> <br />
<div> <div>
@{Html.Telerik().ComboBox() @{Html.Telerik().ComboBox()
.Name("seriesList_new") .Name("seriesList_new")
@ -34,37 +31,38 @@
<button class="listButton" onclick="addNewSeries()"> <button class="listButton" onclick="addNewSeries()">
Add</button> Add</button>
</div> </div>
@section Scripts{
<script type="text/javascript" language="javascript">
var addNewSeriesUrl = '@Url.Action("AddNewSeries", "AddSeries")';
<script type="text/javascript" language="javascript"> function addNewSeries() {
var addNewSeriesUrl = '@Url.Action("AddNewSeries", "AddSeries")'; var seriesComboBox = $("#seriesList_new").data("tComboBox");
var qualityComboBox = $("#qualityList_new").data("tDropDownList");
var path = $("input[name='selectedRootDir']:checked").val();
sendToServerNew(seriesComboBox.value(), path, seriesComboBox.text(), qualityComboBox.value());
}
function addNewSeries() { function sendToServerNew(id, rootPath, seriesName, quality) {
var seriesComboBox = $("#seriesList_new").data("tComboBox"); $.ajax({
var qualityComboBox = $("#qualityList_new").data("tDropDownList"); type: "POST",
var path = $("input[name='selectedRootDir']:checked").val(); url: addNewSeriesUrl,
data: jQuery.param({ rootPath: rootPath, seriesName: seriesName, seriesId: id, qualityProfileId: quality }),
sendToServerNew(seriesComboBox.value(), path, seriesComboBox.text(), qualityComboBox.value()); error: function (req, status, error) {
} alert("Sorry! We could not add " + seriesName + " at this time. " + error);
},
success: function (data, textStatus, jqXHR) {
//Clear the search box
$("#seriesList_new").data("tComboBox").text('');
function sendToServerNew(id, rootPath, seriesName, quality) { //Through up an alert if we failed to add the series
$.ajax({ if (data != 'ok')
type: "POST", alert("Sorry! We could not add " + seriesName + ", does it already exist?");
url: addNewSeriesUrl,
data: jQuery.param({ rootPath: rootPath, seriesName: seriesName, seriesId: id, qualityProfileId: quality }), else
error: function (req, status, error) { closeAddNewSeries(); //Close the Window!
alert("Sorry! We could not add " + seriesName + " at this time. " + error); }
}, });
success: function (data, textStatus, jqXHR){ }
//Clear the search box </script>
$("#seriesList_new").data("tComboBox").text(''); }
//Through up an alert if we failed to add the series
if (data != 'ok')
alert("Sorry! We could not add " + seriesName + ", does it already exist?");
else
closeAddNewSeries(); //Close the Window!
}
});
}
</script>

@ -1,30 +1,18 @@
@model List<RootDir> @model List<RootDir>
@using NzbDrone.Core.Repository @using NzbDrone.Core.Repository
@{ Html.Telerik().ScriptRegistrar().DefaultGroup(group => group
.Add("telerik.common.js")
.Add("telerik.draganddrop.js")
.Add("telerik.window.js")
.Add("telerik.panelbar.js")
.Add("telerik.list.js")
.Add("telerik.combobox.js")); }
<style> <style>
.root_dir_text .root_dir_text
{ {
width: 300px; width: 300px;
margin-top: 8px; margin-top: 8px;
margin-left: 3px; margin-left: 3px;
vertical-align: middle; vertical-align: middle;
} }
</style> </style>
@section TitleContent{ @section TitleContent{
Add Series Add Series
} }
@section MainContent{ @section MainContent{
@{ Html.Telerik().Window() @{ Html.Telerik().Window()
.Name("Window") .Name("Window")
.Title("Add New Series") .Title("Add New Series")
@ -37,8 +25,7 @@
.Resizable(resizing => resizing.Enabled(false)) .Resizable(resizing => resizing.Enabled(false))
.LoadContentFrom("AddNew", "AddSeries") .LoadContentFrom("AddNew", "AddSeries")
.Render(); .Render();
} }
@{ Html.Telerik().PanelBar() @{ Html.Telerik().PanelBar()
.Name("RootDirPanel") .Name("RootDirPanel")
.HtmlAttributes(new { style = "margin: 0px;" }) .HtmlAttributes(new { style = "margin: 0px;" })
@ -51,142 +38,146 @@
.Selected((bool)ViewData["ShowRootDirs"]) .Selected((bool)ViewData["ShowRootDirs"])
.Expanded((bool)ViewData["ShowRootDirs"]) .Expanded((bool)ViewData["ShowRootDirs"])
.Content(@<text> .Content(@<text>
<div style="padding-top: 10px;"> <div style="padding-top: 10px;">
<div style="padding-left: 7px; margin-bottom: 5px;"> <div style="padding-left: 7px; margin-bottom: 5px;">
<a id="addItem" style="text-decoration:none;" href="@Url.Action("AddRootDir", "AddSeries")"> <a id="addItem" style="text-decoration:none;" href="@Url.Action("AddRootDir", "AddSeries")">
<img src="../../Content/Images/Plus.png" alt="Add New Profile" width="20px" height="20px" /> <img src="../../Content/Images/Plus.png" alt="Add New Profile" width="20px" height="20px" />
<h4 style="margin-left: 3px; display: inline; color: Black;">Add New Root Directory</h4></a> <h4 style="margin-left: 3px; display: inline; color: Black;">
</div> Add New Root Directory</h4>
</a>
<div id="root-dirs"> </div>
@foreach (var root in Model) <div id="root-dirs">
{ @foreach (var root in Model)
Html.RenderAction("GetRootDirView", root); {
} Html.RenderAction("GetRootDirView", root);
</div> }
<button onclick="reloadExistingSeries()" style="padding: 2px 10px 2px 10px; margin: 5px; margin-bottom: 10px;">Refresh Unmapped</button> </div>
<span id="reloadAjax" style="display: none"><img src="../../Content/Images/ajax-loader.gif" width="22px" height="22px" style="margin-bottom: -6px;"/></span> <button onclick="reloadExistingSeries()" style="padding: 2px 10px 2px 10px; margin: 5px;
</div> margin-bottom: 10px;">
</text>); Refresh Unmapped</button>
}).Render(); <span id="reloadAjax" style="display: none">
<img src="../../Content/Images/ajax-loader.gif" width="22px" height="22px" style="margin-bottom: -6px;" /></span>
</div>
</text>);
}).Render();
} }
<div style="padding-bottom: 10px; padding-top: 15px;"> <div style="padding-bottom: 10px; padding-top: 15px;">
<button onclick="openAddNewSeries(); return false;" class="listButton" style="margin-left:5px">Add New</button> <button onclick="openAddNewSeries(); return false;" class="listButton" style="margin-left: 5px">
Add New</button>
@Html.Telerik().DropDownList().Name("masterDropbox").BindTo((SelectList) ViewData["qualities"]).HtmlAttributes( @Html.Telerik().DropDownList().Name("masterDropbox").BindTo((SelectList)ViewData["qualities"]).HtmlAttributes(
new {style = "width: 100px; margin-left:224px;"}).ClientEvents(events => events.OnChange("masterChanged")) new { style = "width: 100px; margin-left:224px;" }).ClientEvents(events => events.OnChange("masterChanged"))
</div> </div>
<div id="existingSeries"> <div id="existingSeries">
@{ Html.RenderAction("AddExisting", "AddSeries"); } @{ Html.RenderAction("AddExisting", "AddSeries"); }
</div> </div>
} }
<script type="text/javascript"> @section Scripts
function openAddNewSeries() { {
var window = $('#Window').data('tWindow'); <script type="text/javascript">
window.center().open(); function openAddNewSeries() {
window.refresh(); var window = $('#Window').data('tWindow');
window.center().open();
} window.refresh();
function closeAddNewSeries() {
var window = $('#Window').data("tWindow");
window.close();
}
function masterChanged() {
var masterQuality = $('#masterDropbox').data("tDropDownList").value();
var qualityDropbox = $(".qualityDropbox");
qualityDropbox.each(function () {
var child = $(this).children("[id^='qualityList']");
var comboBox = child.data("tDropDownList");
comboBox.value(masterQuality);
});
}
var addSeriesUrl = '@Url.Action("AddSeries", "AddSeries")'; }
function addSeries(guid, path) { function closeAddNewSeries() {
var seriesComboBox = $("#seriesList_" + guid).data("tComboBox"); var window = $('#Window').data("tWindow");
var qualityComboBox = $("#qualityList_" + guid).data("tDropDownList"); window.close();
sendToServer(seriesComboBox.value(), path, qualityComboBox.value()); }
$("#div_" + guid).hide();
}
function sendToServer(id, path, quality) {
$.ajax({
type: "POST",
url: addSeriesUrl,
data: jQuery.param({ path: path, seriesId: id, qualityProfileId: quality }),
error: function (req, status, error) {
alert("Sorry! We could not add " + path + " at this time. " + error);
}
});
}
$("#addItem").click(function () { function masterChanged() {
$.ajax({ var masterQuality = $('#masterDropbox').data("tDropDownList").value();
url: this.href,
cache: false,
success: function (html) { $("#root-dirs").append(html); }
});
return false;
});
var deleteRootDirUrl = '@Url.Action("DeleteRootDir", "AddSeries")'; var qualityDropbox = $(".qualityDropbox");
function deleteRootDir(guid) { qualityDropbox.each(function () {
var id = $('#id_' + guid).val(); var child = $(this).children("[id^='qualityList']");
sendDeleteToServer(id, guid); var comboBox = child.data("tDropDownList");
} comboBox.value(masterQuality);
});
}
var addSeriesUrl = '@Url.Action("AddSeries", "AddSeries")';
function addSeries(guid, path) {
var seriesComboBox = $("#seriesList_" + guid).data("tComboBox");
var qualityComboBox = $("#qualityList_" + guid).data("tDropDownList");
sendToServer(seriesComboBox.value(), path, qualityComboBox.value());
$("#div_" + guid).hide();
}
function sendToServer(id, path, quality) {
$.ajax({
type: "POST",
url: addSeriesUrl,
data: jQuery.param({ path: path, seriesId: id, qualityProfileId: quality }),
error: function (req, status, error) {
alert("Sorry! We could not add " + path + " at this time. " + error);
}
});
}
function sendDeleteToServer(id, guid) { $("#addItem").click(function () {
$.ajax({ $.ajax({
type: "POST", url: this.href,
url: deleteRootDirUrl, cache: false,
data: jQuery.param({ rootDirId: id }), success: function (html) { $("#root-dirs").append(html); }
error: function (req, status, error) { });
alert("Sorry! We could not delete your Root Directory at this time. " + error); return false;
},
success: function () {
$("#rootDir_" + guid).remove();
}
}); });
}
var saveRootDirUrl = '@Url.Action("SaveRootDir", "AddSeries")'; var deleteRootDirUrl = '@Url.Action("DeleteRootDir", "AddSeries")';
function saveRootDir(guid) { function deleteRootDir(guid) {
var path = $("#path_" + guid).data("tComboBox").value(); var id = $('#id_' + guid).val();
var id = $("#id_" + guid).val(); sendDeleteToServer(id, guid);
}
$.ajax({
type: "POST", function sendDeleteToServer(id, guid) {
url: saveRootDirUrl, $.ajax({
data: jQuery.param({ id: id, path: path }), type: "POST",
error: function (req, status, error) { url: deleteRootDirUrl,
alert("Sorry! We could not save " + path + " at this time. " + error); data: jQuery.param({ rootDirId: id }),
}, error: function (req, status, error) {
success: function (data, textStatus, jqXHR) { alert("Sorry! We could not delete your Root Directory at this time. " + error);
if (data == 'failed') },
alert("An error occurred while saving Root Directory: " + path); success: function () {
else { $("#rootDir_" + guid).remove();
$("#id_" + guid).val(data);
} }
} });
}); }
}
var saveRootDirUrl = '@Url.Action("SaveRootDir", "AddSeries")';
function saveRootDir(guid) {
var path = $("#path_" + guid).data("tComboBox").value();
var id = $("#id_" + guid).val();
$.ajax({
type: "POST",
url: saveRootDirUrl,
data: jQuery.param({ id: id, path: path }),
error: function (req, status, error) {
alert("Sorry! We could not save " + path + " at this time. " + error);
},
success: function (data, textStatus, jqXHR) {
if (data == 'failed')
alert("An error occurred while saving Root Directory: " + path);
else {
$("#id_" + guid).val(data);
}
}
});
}
function reloadExistingSeries() { function reloadExistingSeries() {
$('#reloadAjax').show(); $('#reloadAjax').show();
$('#existingSeries').load('@Url.Action("AddExisting", "AddSeries")', $('#existingSeries').load('@Url.Action("AddExisting", "AddSeries")',
function (responseText, textStatus, XMLHttpRequest) { function (responseText, textStatus, XMLHttpRequest) {
$('#reloadAjax').hide(); $('#reloadAjax').hide();
}); });
} }
</script> </script>
}

@ -1,37 +1,36 @@
@using NzbDrone.Web.Models; @using NzbDrone.Web.Models;
@model List<SeasonEditModel> @model List<SeasonEditModel>
@{ @{
Layout = null; Layout = null;
} }
<div style="vertical-align: middle"> <div style="vertical-align: middle">
@foreach (var season in Model) @foreach (var season in Model)
{ {
Html.RenderAction("GetSingleSeasonView", "Series", season); Html.RenderAction("GetSingleSeasonView", "Series", season);
} }
</div> </div>
@section Scripts{
<script type="text/javascript">
var lastChecked = null;
<script type="text/javascript"> $(document).ready(function () {
var lastChecked = null; $('.chkbox').click(function (event) {
if (!lastChecked) {
$(document).ready(function () { lastChecked = this;
$('.chkbox').click(function (event) { return;
if (!lastChecked) { }
lastChecked = this;
return;
}
if (event.shiftKey) { if (event.shiftKey) {
var start = $('.chkbox').index(this); var start = $('.chkbox').index(this);
var end = $('.chkbox').index(lastChecked); var end = $('.chkbox').index(lastChecked);
for (i = Math.min(start, end); i <= Math.max(start, end); i++) { for (i = Math.min(start, end); i <= Math.max(start, end); i++) {
$('.chkbox')[i].checked = lastChecked.checked; $('.chkbox')[i].checked = lastChecked.checked;
}
} }
}
lastChecked = this; lastChecked = this;
});
}); });
}); </script>
</script> }

@ -1,253 +1,242 @@
@using NzbDrone.Web.Helpers @using NzbDrone.Web.Helpers
@model NzbDrone.Web.Models.EpisodeSortingModel @model NzbDrone.Web.Models.EpisodeSortingModel
<script type="text/javascript">
$(document).ready(function () {
var options = {
target: '#result',
beforeSubmit: showRequest,
success: showResponse,
type: 'post',
resetForm: false
};
$('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
createExamples();
});
function showRequest(formData, jqForm, options) {
$("#result").empty().html('Saving...');
$("#form :input").attr("disabled", true);
}
function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
$("#form :input").attr("disabled", false);
}
</script>
@using (Html.BeginForm("SaveEpisodeSorting", "Settings", FormMethod.Post, new { id = "form", name = "form" })) @using (Html.BeginForm("SaveEpisodeSorting", "Settings", FormMethod.Post, new { id = "form", name = "form" }))
{ {
@Html.ValidationSummary(true, "Unable to save your settings. Please correct the errors and try again.") @Html.ValidationSummary(true, "Unable to save your settings. Please correct the errors and try again.")
<fieldset> <fieldset>
<legend>Episode Sorting</legend> <legend>Episode Sorting</legend>
<div class="config-section">
<div class="config-section"> <div class="config-group">
<div class="config-group"> <div class="config-title">@Html.LabelFor(m => m.SeriesName)</div>
<div class="config-title">@Html.LabelFor(m => m.SeriesName)</div> <div class="config-value">@Html.CheckBoxFor(m => m.SeriesName)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.SeriesName)</div> </div>
</div> <div class="config-group2">
<div class="config-group2"> <div class="config-validation">@Html.ValidationMessageFor(m => m.SeriesName)</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.SeriesName)</div> <div class="config-description">@Html.DescriptionFor(m => m.SeriesName)</div>
<div class="config-description">@Html.DescriptionFor(m => m.SeriesName)</div> </div>
</div> </div>
</div> <div class="config-section">
<div class="config-group">
<div class="config-section"> <div class="config-title">@Html.LabelFor(m => m.EpisodeName)</div>
<div class="config-group"> <div class="config-value">@Html.CheckBoxFor(m => m.EpisodeName)</div>
<div class="config-title">@Html.LabelFor(m => m.EpisodeName)</div> </div>
<div class="config-value">@Html.CheckBoxFor(m => m.EpisodeName)</div> <div class="config-group2">
</div> <div class="config-validation">@Html.ValidationMessageFor(m => m.EpisodeName)</div>
<div class="config-group2"> <div class="config-description">@Html.DescriptionFor(m => m.EpisodeName)</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.EpisodeName)</div> </div>
<div class="config-description">@Html.DescriptionFor(m => m.EpisodeName)</div> </div>
</div> <div class="config-section">
</div> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.ReplaceSpaces)</div>
<div class="config-section"> <div class="config-value">@Html.CheckBoxFor(m => m.ReplaceSpaces)</div>
<div class="config-group"> </div>
<div class="config-title">@Html.LabelFor(m => m.ReplaceSpaces)</div> <div class="config-group2">
<div class="config-value">@Html.CheckBoxFor(m => m.ReplaceSpaces)</div> <div class="config-validation">@Html.ValidationMessageFor(m => m.ReplaceSpaces)</div>
</div> <div class="config-description">@Html.DescriptionFor(m => m.ReplaceSpaces)</div>
<div class="config-group2"> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.ReplaceSpaces)</div> </div>
<div class="config-description">@Html.DescriptionFor(m => m.ReplaceSpaces)</div> <div class="config-section">
</div> <div class="config-group">
</div> <div class="config-title">@Html.LabelFor(m => m.AppendQuality)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.AppendQuality)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-group2">
<div class="config-title">@Html.LabelFor(m => m.AppendQuality)</div> <div class="config-validation">@Html.ValidationMessageFor(m => m.AppendQuality)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.AppendQuality)</div> <div class="config-description">@Html.DescriptionFor(m => m.AppendQuality)</div>
</div> </div>
<div class="config-group2"> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.AppendQuality)</div> <div class="config-section">
<div class="config-description">@Html.DescriptionFor(m => m.AppendQuality)</div> <div class="config-group">
</div> <div class="config-title">@Html.LabelFor(m => m.SeasonFolders)</div>
</div> <div class="config-value">@Html.CheckBoxFor(m => m.SeasonFolders)</div>
</div>
<div class="config-section"> <div class="config-group2">
<div class="config-group"> <div class="config-validation">@Html.ValidationMessageFor(m => m.SeasonFolders)</div>
<div class="config-title">@Html.LabelFor(m => m.SeasonFolders)</div> <div class="config-description">@Html.DescriptionFor(m => m.SeasonFolders)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.SeasonFolders)</div> </div>
</div> </div>
<div class="config-group2"> <div class="config-section">
<div class="config-validation">@Html.ValidationMessageFor(m => m.SeasonFolders)</div> <div class="config-group">
<div class="config-description">@Html.DescriptionFor(m => m.SeasonFolders)</div> <div class="config-title">@Html.LabelFor(m => m.SeasonFolderFormat)</div>
</div> <div class="config-value">@Html.TextBoxFor(m => m.SeasonFolderFormat)</div>
</div> </div>
<div class="config-group2">
<div class="config-section"> <div class="config-validation">@Html.ValidationMessageFor(m => m.SeasonFolderFormat)</div>
<div class="config-group"> <div class="config-description">@Html.DescriptionFor(m => m.SeasonFolderFormat)</div>
<div class="config-title">@Html.LabelFor(m => m.SeasonFolderFormat)</div> </div>
<div class="config-value">@Html.TextBoxFor(m => m.SeasonFolderFormat)</div> </div>
</div> <div class="config-section">
<div class="config-group2"> <div class="config-group">
<div class="config-validation">@Html.ValidationMessageFor(m => m.SeasonFolderFormat)</div> <div class="config-title">@Html.LabelFor(m => m.SeparatorStyle)</div>
<div class="config-description">@Html.DescriptionFor(m => m.SeasonFolderFormat)</div> <div class="config-value">@Html.DropDownListFor(m => m.SeparatorStyle, Model.SeparatorStyles)</div>
</div> </div>
</div> <div class="config-group2">
<div class="config-validation">@Html.ValidationMessageFor(m => m.SeparatorStyle)</div>
<div class="config-section"> <div class="config-description">@Html.DescriptionFor(m => m.SeparatorStyle)</div>
<div class="config-group"> </div>
<div class="config-title">@Html.LabelFor(m => m.SeparatorStyle)</div> </div>
<div class="config-value">@Html.DropDownListFor(m => m.SeparatorStyle, Model.SeparatorStyles)</div> <div class="config-section">
</div> <div class="config-group">
<div class="config-group2"> <div class="config-title">@Html.LabelFor(m => m.NumberStyle)</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.SeparatorStyle)</div> <div class="config-value">@Html.DropDownListFor(m => m.NumberStyle, Model.NumberStyles)</div>
<div class="config-description">@Html.DescriptionFor(m => m.SeparatorStyle)</div> </div>
</div> <div class="config-group2">
</div> <div class="config-validation">@Html.ValidationMessageFor(m => m.NumberStyle)</div>
<div class="config-description">@Html.DescriptionFor(m => m.NumberStyle)</div>
<div class="config-section"> </div>
<div class="config-group"> </div>
<div class="config-title">@Html.LabelFor(m => m.NumberStyle)</div> <div class="config-section">
<div class="config-value">@Html.DropDownListFor(m => m.NumberStyle, Model.NumberStyles)</div> <div class="config-group">
</div> <div class="config-title">@Html.LabelFor(m => m.MultiEpisodeStyle)</div>
<div class="config-group2"> <div class="config-value">@Html.DropDownListFor(m => m.MultiEpisodeStyle, Model.MultiEpisodeStyles)</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.NumberStyle)</div> </div>
<div class="config-description">@Html.DescriptionFor(m => m.NumberStyle)</div> <div class="config-group2">
</div> <div class="config-validation">@Html.ValidationMessageFor(m => m.MultiEpisodeStyle)</div>
</div> <div class="config-description">@Html.DescriptionFor(m => m.MultiEpisodeStyle)</div>
</div>
<div class="config-section"> </div>
<div class="config-group"> <div id="singleEpisodeExample">
<div class="config-title">@Html.LabelFor(m => m.MultiEpisodeStyle)</div> </div>
<div class="config-value">@Html.DropDownListFor(m => m.MultiEpisodeStyle, Model.MultiEpisodeStyles)</div> <div id="multiEpisodeExample">
</div> </div>
<div class="config-group2"> <input type="submit" id="save_button" value="Save" disabled="disabled" />
<div class="config-validation">@Html.ValidationMessageFor(m => m.MultiEpisodeStyle)</div>
<div class="config-description">@Html.DescriptionFor(m => m.MultiEpisodeStyle)</div>
</div>
</div>
<div id="singleEpisodeExample"></div>
<div id="multiEpisodeExample"></div>
<input type="submit" id="save_button" value="Save" disabled="disabled" />
</fieldset> </fieldset>
} }
<div id="result" class="hiddenResult"></div> <div id="result" class="hiddenResult">
</div>
<script type="text/javascript"> @section Scripts{
<script type="text/javascript">
$('#SeriesName').live('change', function () { createExamples(); }); $(document).ready(function () {
$('#EpisodeName').live('change', function () { createExamples(); }); var options = {
$('#ReplaceSpaces').live('change', function () { createExamples(); }); target: '#result',
$('#AppendQuality').live('change', function () { createExamples(); }); beforeSubmit: showRequest,
$('#SeparatorStyle').live('change', function () { createExamples(); }); success: showResponse,
$('#NumberStyle').live('change', function () { createExamples(); }); type: 'post',
$('#MultiEpisodeStyle').live('change', function () { createExamples(); }); resetForm: false
};
function createExamples() { $('#form').ajaxForm(options);
createSingleEpisodeExample(); $('#save_button').attr('disabled', '');
createMultiEpisodeExample(); createExamples();
} });
function createSingleEpisodeExample() { function showRequest(formData, jqForm, options) {
var result = ''; $("#result").empty().html('Saving...');
$("#form :input").attr("disabled", true);
var separator = ' - ';
if ($("#SeparatorStyle option:selected").val() == 1)
separator = ' ';
if ($('#SeriesName').attr('checked')) {
result += 'Series Name';
result += separator;
} }
result += $("#NumberStyle option:selected").text();
if ($('#EpisodeName').attr('checked')) { function showResponse(responseText, statusText, xhr, $form) {
result += separator; $("#result").empty().html(responseText);
result += 'Episode Name'; $("#form :input").attr("disabled", false);
} }
if ($('#AppendQuality').attr('checked')) $('#SeriesName').live('change', function () { createExamples(); });
result += ' [TV]'; $('#EpisodeName').live('change', function () { createExamples(); });
$('#ReplaceSpaces').live('change', function () { createExamples(); });
if ($('#ReplaceSpaces').attr('checked')) $('#AppendQuality').live('change', function () { createExamples(); });
result = result.replace(/\s/g, '.'); $('#SeparatorStyle').live('change', function () { createExamples(); });
$('#NumberStyle').live('change', function () { createExamples(); });
result = '<b>Single Episode Example: </b>' + result; $('#MultiEpisodeStyle').live('change', function () { createExamples(); });
function createExamples() {
createSingleEpisodeExample();
createMultiEpisodeExample();
}
$('#singleEpisodeExample').html(result); function createSingleEpisodeExample() {
} var result = '';
function createMultiEpisodeExample() { var separator = ' - ';
var result = '';
var separator = ' - '; if ($("#SeparatorStyle option:selected").val() == 1)
separator = ' ';
if ($("#SeparatorStyle option:selected").val() == 1) if ($('#SeriesName').attr('checked')) {
separator = ' '; result += 'Series Name';
result += separator;
}
if ($('#SeriesName').attr('checked')) { result += $("#NumberStyle option:selected").text();
result += 'Series Name';
result += separator;
}
var numberStyle = $("#NumberStyle option:selected").text();
var numberId = $("#NumberStyle option:selected").val();
var style = $("#MultiEpisodeStyle option:selected").val();
result += numberStyle; if ($('#EpisodeName').attr('checked')) {
result += separator;
result += 'Episode Name';
}
if (style == 0) if ($('#AppendQuality').attr('checked'))
result += '-06'; result += ' [TV]';
if (style == 1) { if ($('#ReplaceSpaces').attr('checked'))
result += separator; result = result.replace(/\s/g, '.');
result += numberStyle.replace('5', '6');
}
if (style == 2) {
if (numberId <= 1)
result += 'x06';
if (numberId == 2) result = '<b>Single Episode Example: </b>' + result;
result += 'E06';
if (numberId == 3) $('#singleEpisodeExample').html(result);
result += 'e06';
} }
if (style == 3) { function createMultiEpisodeExample() {
if (numberId <= 1) var result = '';
result += '-x06';
if (numberId == 2) var separator = ' - ';
result += '-E06';
if (numberId == 3) if ($("#SeparatorStyle option:selected").val() == 1)
result += '-e06'; separator = ' ';
}
if ($('#EpisodeName').attr('checked')) { if ($('#SeriesName').attr('checked')) {
result += separator; result += 'Series Name';
result += 'Episode Name'; result += separator;
} }
var numberStyle = $("#NumberStyle option:selected").text();
var numberId = $("#NumberStyle option:selected").val();
var style = $("#MultiEpisodeStyle option:selected").val();
result += numberStyle;
if (style == 0)
result += '-06';
if (style == 1) {
result += separator;
result += numberStyle.replace('5', '6');
}
if ($('#AppendQuality').attr('checked')) if (style == 2) {
result += ' [TV]'; if (numberId <= 1)
result += 'x06';
if ($('#ReplaceSpaces').attr('checked')) if (numberId == 2)
result = result.replace(/\s/g, '.'); result += 'E06';
result = '<b>Multi-Episode Example: </b>' + result; if (numberId == 3)
result += 'e06';
}
$('#multiEpisodeExample').html(result); if (style == 3) {
} if (numberId <= 1)
</script> result += '-x06';
if (numberId == 2)
result += '-E06';
if (numberId == 3)
result += '-e06';
}
if ($('#EpisodeName').attr('checked')) {
result += separator;
result += 'Episode Name';
}
if ($('#AppendQuality').attr('checked'))
result += ' [TV]';
if ($('#ReplaceSpaces').attr('checked'))
result = result.replace(/\s/g, '.');
result = '<b>Multi-Episode Example: </b>' + result;
$('#multiEpisodeExample').html(result);
}
</script>
}

@ -1,28 +1,5 @@
@model NzbDrone.Web.Models.IndexerSettingsModel @model NzbDrone.Web.Models.IndexerSettingsModel
<script type="text/javascript">
$(document).ready(function () {
var options = {
target: '#result',
beforeSubmit: showRequest,
success: showResponse,
type: 'post',
resetForm: false
};
$('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
});
function showRequest(formData, jqForm, options) {
$("#result").empty().html('Saving...');
$("#form :input").attr("disabled", true);
}
function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
$("#form :input").attr("disabled", false);
}
</script>
<style> <style>
@ -193,4 +170,32 @@
</div> </div>
</fieldset> </fieldset>
} }
<div id="result" class="hiddenResult"></div> <div id="result" class="hiddenResult"></div>
@section Scripts{
<script type="text/javascript">
$(document).ready(function () {
var options = {
target: '#result',
beforeSubmit: showRequest,
success: showResponse,
type: 'post',
resetForm: false
};
$('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
});
function showRequest(formData, jqForm, options) {
$("#result").empty().html('Saving...');
$("#form :input").attr("disabled", true);
}
function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
$("#form :input").attr("disabled", false);
}
</script>
}

@ -1,161 +1,136 @@
@model NzbDrone.Web.Models.NotificationSettingsModel @model NzbDrone.Web.Models.NotificationSettingsModel
@using (Html.BeginForm("SaveNotifications", "Settings", FormMethod.Post, new { id = "form", name = "form" }))
<script type="text/javascript">
$(document).ready(function () {
var options = {
target: '#result',
beforeSubmit: showRequest,
success: showResponse,
type: 'post',
resetForm: false
};
$('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
});
function showRequest(formData, jqForm, options) {
$("#result").empty().html('Saving...');
$("#form :input").attr("disabled", true);
}
function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
$("#form :input").attr("disabled", false);
}
</script>
@using (Html.BeginForm("SaveNotifications", "Settings", FormMethod.Post, new {id = "form", name = "form"}))
{ {
<fieldset> <fieldset>
<legend>Notification Settings</legend> <legend>Notification Settings</legend>
<fieldset class="sub-field">
<fieldset class="sub-field"> <legend>XBMC</legend>
<legend>XBMC</legend> <div class="config-section">
<div class="config-section"> <div class="config-group">
<div class="config-group"> <div class="config-title">@Html.LabelFor(m => m.XbmcEnabled)</div>
<div class="config-title">@Html.LabelFor(m => m.XbmcEnabled)</div> <div class="config-value">@Html.CheckBoxFor(m => m.XbmcEnabled)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcEnabled)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcEnabled)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcEnabled)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcNotifyOnGrab)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcNotifyOnGrab)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcNotifyOnGrab)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcNotifyOnGrab)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcNotifyOnGrab)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcNotifyOnGrab)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcNotifyOnDownload)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcNotifyOnDownload)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcNotifyOnDownload)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcNotifyOnDownload)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcNotifyOnDownload)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcNotifyOnDownload)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcNotifyOnRename)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcNotifyOnRename)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcNotifyOnRename)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcNotifyOnRename)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcNotifyOnRename)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcNotifyOnRename)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcNotificationImage)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcNotificationImage)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcNotificationImage)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcNotificationImage)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcNotificationImage)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcNotificationImage)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcDisplayTime)</div> <div class="config-group">
<div class="config-value">@Html.TextBoxFor(m => m.XbmcDisplayTime)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcDisplayTime)</div>
</div> <div class="config-value">@Html.TextBoxFor(m => m.XbmcDisplayTime)</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcDisplayTime)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcDisplayTime)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcUpdateOnDownload)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcUpdateOnDownload)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcUpdateOnDownload)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcUpdateOnDownload)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcUpdateOnDownload)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcUpdateOnDownload)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcUpdateOnRename)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcUpdateOnRename)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcUpdateOnRename)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcUpdateOnRename)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcUpdateOnRename)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcUpdateOnRename)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcFullUpdate)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcFullUpdate)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcFullUpdate)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcFullUpdate)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcFullUpdate)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcFullUpdate)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcCleanOnDownload)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcCleanOnDownload)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcCleanOnDownload)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcCleanOnDownload)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcCleanOnDownload)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcCleanOnDownload)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcCleanOnRename)</div> <div class="config-group">
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcCleanOnRename)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcCleanOnRename)</div>
<div class="config-value">@Html.CheckBoxFor(m => m.XbmcCleanOnRename)</div>
</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcCleanOnRename)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcCleanOnRename)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcHosts)</div> <div class="config-group">
<div class="config-value">@Html.TextBoxFor(m => m.XbmcHosts)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcHosts)</div>
</div> <div class="config-value">@Html.TextBoxFor(m => m.XbmcHosts)</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcHosts)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcHosts)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcUsername)</div> <div class="config-group">
<div class="config-value">@Html.TextBoxFor(m => m.XbmcUsername)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcUsername)</div>
</div> <div class="config-value">@Html.TextBoxFor(m => m.XbmcUsername)</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcUsername)</div>
</div> </div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcUsername)</div>
<div class="config-section"> </div>
<div class="config-group"> <div class="config-section">
<div class="config-title">@Html.LabelFor(m => m.XbmcPassword)</div> <div class="config-group">
<div class="config-value">@Html.TextBoxFor(m => m.XbmcPassword)</div> <div class="config-title">@Html.LabelFor(m => m.XbmcPassword)</div>
</div> <div class="config-value">@Html.TextBoxFor(m => m.XbmcPassword)</div>
<div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcPassword)</div>
</div> </div>
</fieldset> <div class="config-validation">@Html.ValidationMessageFor(m => m.XbmcPassword)</div>
</div>
<input type="submit" id="save_button" value="Save" disabled="disabled" /> </fieldset>
<input type="submit" id="save_button" value="Save" disabled="disabled" />
</fieldset> </fieldset>
} }
<div id="result" class="hiddenResult"></div> <div id="result" class="hiddenResult">
</div>
@section Scripts{
<script type="text/javascript">
$(document).ready(function () {
var options = {
target: '#result',
beforeSubmit: showRequest,
success: showResponse,
type: 'post',
resetForm: false
};
$('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
});
function showRequest(formData, jqForm, options) {
$("#result").empty().html('Saving...');
$("#form :input").attr("disabled", true);
}
function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
$("#form :input").attr("disabled", false);
}
</script>
}

@ -1,122 +1,121 @@
@using NzbDrone.Web.Helpers; @using NzbDrone.Web.Helpers;
@model NzbDrone.Web.Models.QualityModel @model NzbDrone.Web.Models.QualityModel
@using (Html.BeginForm("SaveQuality", "Settings", FormMethod.Post, new { id = "form", name = "form" }))
{
<fieldset style="position: relative;">
<legend>Quality</legend>
<div id="top">
<div class="config-section">
<div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.DefaultQualityProfileId)</div>
<div class="config-value">@Html.DropDownListFor(m => m.DefaultQualityProfileId, Model.QualityProfileSelectList)</div>
</div>
<div class="config-group2">
<div class="config-validation">@Html.ValidationMessageFor(m => m.DefaultQualityProfileId)</div>
<div class="config-description">@Html.DescriptionFor(m => m.DefaultQualityProfileId)</div>
</div>
</div>
</div>
<div id="bottom" style="float: left; padding-bottom: 55px;">
<div style="padding-left: 7px; margin-bottom: 5px;">
<a id="addItem" style="text-decoration:none;" href="@Url.Action("AddProfile", "Settings")">
<img src="../../Content/Images/Plus.png" alt="Add New Profile" width="20px" height="20px" />
<h4 style="margin-left: 3px; display: inline; color: Black;">
Add New Profile</h4>
</a>
</div>
<div id="profiles">
@foreach (var item in Model.Profiles)
{
Html.RenderAction("GetQualityProfileView", item);
}
</div>
</div>
<input type="submit" id="save_button" value="Save" disabled="disabled" style="position: absolute;
bottom: 0px; display: block; padding-left: 5px;" />
</fieldset>
}
<div id="result" class="hiddenResult">
</div>
@section Scripts{
<script type="text/javascript">
$(document).ready(function () {
var options = {
target: '#result',
beforeSubmit: showRequest,
success: showResponse,
type: 'post',
resetForm: false
};
$('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
});
<script type="text/javascript"> function showRequest(formData, jqForm, options) {
$(document).ready(function () { $("#result").empty().html('Saving...');
var options = { $("#form :input").attr("disabled", true);
target: '#result', }
beforeSubmit: showRequest,
success: showResponse,
type: 'post',
resetForm: false
};
$('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
});
function showRequest(formData, jqForm, options) {
$("#result").empty().html('Saving...');
$("#form :input").attr("disabled", true);
}
function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
$("#form :input").attr("disabled", false);
}
function addOption(text, value) {
var myCombo = $('#DefaultQualityProfileId');
var exists = $("#DefaultQualityProfileId option[value='" + value + "']"); function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
if (exists.length == 0) $("#form :input").attr("disabled", false);
myCombo.append($('\<option\> \</option\>').val(value).html(text)); }
}
function removeOption(value) { function addOption(text, value) {
$("#DefaultQualityProfileId option[value='" + value + "']").remove(); var myCombo = $('#DefaultQualityProfileId');
}
function renameOption(text, value) { var exists = $("#DefaultQualityProfileId option[value='" + value + "']");
$("#DefaultQualityProfileId option[value='" + value + "']").html(text);
}
</script>
@using (Html.BeginForm("SaveQuality", "Settings", FormMethod.Post, new {id = "form", name = "form"})) if (exists.length == 0)
{ myCombo.append($('\<option\> \</option\>').val(value).html(text));
<fieldset style="position: relative;"> }
<legend>Quality</legend>
<div id="top"> function removeOption(value) {
<div class="config-section"> $("#DefaultQualityProfileId option[value='" + value + "']").remove();
<div class="config-group"> }
<div class="config-title">@Html.LabelFor(m => m.DefaultQualityProfileId)</div>
<div class="config-value">@Html.DropDownListFor(m => m.DefaultQualityProfileId, Model.QualityProfileSelectList)</div>
</div>
<div class="config-group2">
<div class="config-validation">@Html.ValidationMessageFor(m => m.DefaultQualityProfileId)</div>
<div class="config-description">@Html.DescriptionFor(m => m.DefaultQualityProfileId)</div>
</div>
</div>
</div>
<div id="bottom" style="float: left; padding-bottom: 55px;">
<div style="padding-left: 7px; margin-bottom: 5px;">
<a id="addItem" style="text-decoration:none;" href="@Url.Action("AddProfile", "Settings")">
<img src="../../Content/Images/Plus.png" alt="Add New Profile" width="20px" height="20px" />
<h4 style="margin-left: 3px; display: inline; color: Black;">Add New Profile</h4></a>
</div>
<div id="profiles"> function renameOption(text, value) {
@foreach (var item in Model.Profiles) $("#DefaultQualityProfileId option[value='" + value + "']").html(text);
{ }
Html.RenderAction("GetQualityProfileView", item);
}
</div>
</div>
<input type="submit" id="save_button" value="Save" disabled="disabled" style="position: absolute; bottom: 0px; display: block; padding-left: 5px;"/>
</fieldset>
}
<div id="result" class="hiddenResult"></div>
<script type="text/javascript"> $("#addItem").click(function () {
$.ajax({
url: this.href,
cache: false,
success: function (html) {
$("#profiles").append(html);
$("#addItem").click(function () { }
$.ajax({ });
url: this.href, return false;
cache: false,
success: function (html) {
$("#profiles").append(html);
}
}); });
return false;
});
var deleteQualityProfileUrl = '@Url.Action("DeleteQualityProfile", "Settings")';
function deleteProfile(id) { var deleteQualityProfileUrl = '@Url.Action("DeleteQualityProfile", "Settings")';
sendToServer(id);
} function deleteProfile(id) {
sendToServer(id);
function sendToServer(id) { }
$.ajax({
type: "POST", function sendToServer(id) {
url: deleteQualityProfileUrl, $.ajax({
data: jQuery.param({ profileId: id }), type: "POST",
error: function (req, status, error) { url: deleteQualityProfileUrl,
alert("Sorry! We could not delete your Profile at this time. " + error); data: jQuery.param({ profileId: id }),
}, error: function (req, status, error) {
success: function (data, textStatus, jqXHR) { alert("Sorry! We could not delete your Profile at this time. " + error);
if (data == "ok") { },
$("#profile_" + id).remove(); success: function (data, textStatus, jqXHR) {
removeOption(id); if (data == "ok") {
} $("#profile_" + id).remove();
removeOption(id);
else { }
alert(data);
else {
alert(data);
}
} }
} });
}); }
} </script>
</script> }

@ -1,48 +1,21 @@
@using NzbDrone.Web.Helpers; @using NzbDrone.Web.Helpers;
@model NzbDrone.Web.Models.SabnzbdSettingsModel @model NzbDrone.Web.Models.SabnzbdSettingsModel
<script type="text/javascript">
$(document).ready(function () {
var options = {
target: '#result',
beforeSubmit: showRequest,
success: showResponse,
type: 'post',
resetForm: false
};
$('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
});
function showRequest(formData, jqForm, options) {
$("#result").empty().html('Saving...');
$("#form :input").attr("disabled", true);
}
function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
$("#form :input").attr("disabled", false);
}
</script>
@using (Html.BeginForm("SaveSabnzbd", "Settings", FormMethod.Post, new { id = "form", name = "form" })) @using (Html.BeginForm("SaveSabnzbd", "Settings", FormMethod.Post, new { id = "form", name = "form" }))
{ {
<fieldset> <fieldset>
<legend>SABnzbd</legend> <legend>SABnzbd</legend>
<button type="button" onclick="autoConfigureSab()">
<button type="button" onclick="autoConfigureSab()">Auto-Configure</button> Auto-Configure</button>
<div class="config-section"> <div class="config-section">
<div class="config-group"> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.SabHost)</div> <div class="config-title">@Html.LabelFor(m => m.SabHost)</div>
<div class="config-value">@Html.TextBoxFor(m => m.SabHost)</div> <div class="config-value">@Html.TextBoxFor(m => m.SabHost)</div>
</div> </div>
<div class="config-group2"> <div class="config-group2">
<div class="config-validation">@Html.ValidationMessageFor(m => m.SabHost)</div> <div class="config-validation">@Html.ValidationMessageFor(m => m.SabHost)</div>
<div class="config-description">@Html.DescriptionFor(m => m.SabHost)</div> <div class="config-description">@Html.DescriptionFor(m => m.SabHost)</div>
</div> </div>
</div> </div>
<div class="config-section"> <div class="config-section">
<div class="config-group"> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.SabPort)</div> <div class="config-title">@Html.LabelFor(m => m.SabPort)</div>
@ -53,7 +26,6 @@
<div class="config-description">@Html.DescriptionFor(m => m.SabPort)</div> <div class="config-description">@Html.DescriptionFor(m => m.SabPort)</div>
</div> </div>
</div> </div>
<div class="config-section"> <div class="config-section">
<div class="config-group"> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.SabApiKey)</div> <div class="config-title">@Html.LabelFor(m => m.SabApiKey)</div>
@ -64,7 +36,6 @@
<div class="config-description">@Html.DescriptionFor(m => m.SabApiKey)</div> <div class="config-description">@Html.DescriptionFor(m => m.SabApiKey)</div>
</div> </div>
</div> </div>
<div class="config-section"> <div class="config-section">
<div class="config-group"> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.SabUsername)</div> <div class="config-title">@Html.LabelFor(m => m.SabUsername)</div>
@ -75,7 +46,6 @@
<div class="config-description">@Html.DescriptionFor(m => m.SabUsername)</div> <div class="config-description">@Html.DescriptionFor(m => m.SabUsername)</div>
</div> </div>
</div> </div>
<div class="config-section"> <div class="config-section">
<div class="config-group"> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.SabPassword)</div> <div class="config-title">@Html.LabelFor(m => m.SabPassword)</div>
@ -86,7 +56,6 @@
<div class="config-description">@Html.DescriptionFor(m => m.SabPassword)</div> <div class="config-description">@Html.DescriptionFor(m => m.SabPassword)</div>
</div> </div>
</div> </div>
<div class="config-section"> <div class="config-section">
<div class="config-group"> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.SabTvCategory)</div> <div class="config-title">@Html.LabelFor(m => m.SabTvCategory)</div>
@ -97,7 +66,6 @@
<div class="config-description">@Html.DescriptionFor(m => m.SabTvCategory)</div> <div class="config-description">@Html.DescriptionFor(m => m.SabTvCategory)</div>
</div> </div>
</div> </div>
<div class="config-section"> <div class="config-section">
<div class="config-group"> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.SabTvPriority)</div> <div class="config-title">@Html.LabelFor(m => m.SabTvPriority)</div>
@ -108,48 +76,71 @@
<div class="config-description">@Html.DescriptionFor(m => m.SabTvPriority)</div> <div class="config-description">@Html.DescriptionFor(m => m.SabTvPriority)</div>
</div> </div>
</div> </div>
<div class="config-section"> <div class="config-section">
<div class="config-group"> <div class="config-group">
<div class="config-title">@Html.LabelFor(m => m.SabDropDirectory)</div> <div class="config-title">@Html.LabelFor(m => m.SabDropDirectory)</div>
<div class="config-value">@{Html.Telerik().ComboBoxFor(m => m.SabDropDirectory) <div class="config-value">
@{Html.Telerik().ComboBoxFor(m => m.SabDropDirectory)
.BindTo(Model.SabDropDirectorySelectList) .BindTo(Model.SabDropDirectorySelectList)
.DataBinding(binding => binding.Ajax().Select("_autoCompletePath", "Directory").Delay(400).Cache(false)) .DataBinding(binding => binding.Ajax().Select("_autoCompletePath", "Directory").Delay(400).Cache(false))
.Filterable(f => f.FilterMode(AutoCompleteFilterMode.StartsWith)) .Filterable(f => f.FilterMode(AutoCompleteFilterMode.StartsWith))
.HighlightFirstMatch(true) .HighlightFirstMatch(true)
.HtmlAttributes(new { style = "margin-left: -2px; width: 220px;" }) .HtmlAttributes(new { style = "margin-left: -2px; width: 220px;" })
.Render();}</div> .Render();}
</div>
</div> </div>
<div class="config-group2"> <div class="config-group2">
<div class="config-validation">@Html.ValidationMessageFor(m => m.SabDropDirectory)</div> <div class="config-validation">@Html.ValidationMessageFor(m => m.SabDropDirectory)</div>
<div class="config-description">@Html.DescriptionFor(m => m.SabDropDirectory)</div> <div class="config-description">@Html.DescriptionFor(m => m.SabDropDirectory)</div>
</div> </div>
</div> </div>
<input type="submit" id="save_button" value="Save" disabled="disabled" /> <input type="submit" id="save_button" value="Save" disabled="disabled" />
</fieldset> </fieldset>
} }
<div id="result" class="hiddenResult"></div> <div id="result" class="hiddenResult">
</div>
<script type="text/javascript"> @section Scripts{
var autoConfigureSabUrl = '@Url.Action("AutoConfigureSab", "Settings")'; <script type="text/javascript">
var autoConfigureSabUrl = '@Url.Action("AutoConfigureSab", "Settings")';
function autoConfigureSab() {
$.ajax({
type: "GET",
url: autoConfigureSabUrl,
//data: jQuery.param({ username: $('#SabUsername').val(), password: $('#SabPassword').val() }),
error: function (req, status, error) {
alert("Sorry! We could not autoconfigure SABnzbd for you");
},
success: autoConfigureSuccess
});
function autoConfigureSuccess(data) {
$('#SabHost').val(data.Host);
$('#SabPort').val(data.Port);
$('#SabApiKey').val(data.ApiKey);
}
}
function autoConfigureSab() { $(document).ready(function () {
$.ajax({ var options = {
type: "GET", target: '#result',
url: autoConfigureSabUrl, beforeSubmit: showRequest,
//data: jQuery.param({ username: $('#SabUsername').val(), password: $('#SabPassword').val() }), success: showResponse,
error: function (req, status, error) { type: 'post',
alert("Sorry! We could not autoconfigure SABnzbd for you"); resetForm: false
}, };
success: autoConfigureSuccess $('#form').ajaxForm(options);
$('#save_button').attr('disabled', '');
}); });
function autoConfigureSuccess(data) { function showRequest(formData, jqForm, options) {
$('#SabHost').val(data.Host); $("#result").empty().html('Saving...');
$('#SabPort').val(data.Port); $("#form :input").attr("disabled", true);
$('#SabApiKey').val(data.ApiKey);
} }
}
</script> function showResponse(responseText, statusText, xhr, $form) {
$("#result").empty().html(responseText);
$("#form :input").attr("disabled", false);
}
</script>
}

@ -51,26 +51,23 @@
<div id="msgBox"> <div id="msgBox">
<span id="msgText">Scanning Series Folder...</span> <span id="msgText">Scanning Series Folder...</span>
</div> </div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" /> @(Html.Telerik().ScriptRegistrar().jQuery(true).Scripts(
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js" /> c => c.AddGroup("CDN", group => group
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js" /> .Add("http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js")
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.common.min.js" /> .Add("http://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"))
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.textbox.min.js" />
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.grid.min.js" /> .AddGroup("3rdParty", group => group
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.grid.filtering.min.js" /> .Add("jquery.form.js")
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.grid.grouping.min.js" /> .Add("jquery.jgrowl.js")
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.tabstrip.min.js" /> .Add("jquery-tgc-countdown-1.0.js")
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.panelbar.min.js" /> .Add("MicrosoftMvcValidation.js").Combined(true).Compress(true))
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.list.min.js" />
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.combobox.min.js" /> .AddGroup("NzbDrone", group => group
<script type="text/javascript" src="http://aspnet-scripts.telerikstatic.com/mvcz/2011.1.414/telerik.menu.min.js" /> .Add("Notification.js")
<script type="text/javascript" src="/Scripts/jquery-tgc-countdown-1.0.js" /> .Add("gridLoad.js")
<script type="text/javascript" src="/Scripts/jquery.form.js" /> .Add("episodeSearch.js"))
<script type="text/javascript" src="/Scripts/jquery.jgrowl.js" />
<script type="text/javascript" src="/Scripts/Notification.js" /> ))
<script type="text/javascript" src="/Scripts/MicrosoftMvcValidation.js" />
<script type="text/javascript" src="/Scripts/episodeSearch.js" />
<script type="text/javascript"> <script type="text/javascript">
jQuery(document).ready(function () { jQuery(document).ready(function () {

Loading…
Cancel
Save