mirror of
https://github.com/lidarr/Lidarr
synced 2024-12-25 17:17:02 +00:00
Adding a root dir will not add it to the DB until after it is saved, also will not save if the path is blank.
This commit is contained in:
parent
1fbf9a1416
commit
c3d4732baa
3 changed files with 41 additions and 26 deletions
|
@ -187,9 +187,16 @@ public SelectList GetSuggestionList(string searchString)
|
|||
[HttpPost]
|
||||
public JsonResult SaveRootDir(int id, string path)
|
||||
{
|
||||
if (String.IsNullOrWhiteSpace(path))
|
||||
return new JsonResult { Data = "failed" };
|
||||
|
||||
try
|
||||
{
|
||||
_rootFolderProvider.Update(new RootDir { Id = id, Path = path });
|
||||
if (id == 0)
|
||||
id = _rootFolderProvider.Add(new RootDir { Path = path });
|
||||
|
||||
else
|
||||
_rootFolderProvider.Update(new RootDir { Id = id, Path = path });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -199,30 +206,33 @@ public JsonResult SaveRootDir(int id, string path)
|
|||
return new JsonResult { Data = "failed" };
|
||||
}
|
||||
|
||||
return new JsonResult { Data = "ok" };
|
||||
return new JsonResult { Data = id };
|
||||
}
|
||||
|
||||
public PartialViewResult AddRootDir()
|
||||
{
|
||||
var rootDir = new RootDir { Path = String.Empty };
|
||||
var model = new RootDirModel
|
||||
{
|
||||
Id = 0,
|
||||
Path = "",
|
||||
SelectList = new SelectList(new List<string> { "" }, "")
|
||||
};
|
||||
|
||||
var id = _rootFolderProvider.Add(rootDir);
|
||||
rootDir.Id = id;
|
||||
|
||||
var model = new RootDirModel();
|
||||
model.Id = rootDir.Id;
|
||||
model.Path = rootDir.Path;
|
||||
model.SelectList = new SelectList(new List<string> { rootDir.Path }, rootDir.Path);
|
||||
ViewData["guid"] = Guid.NewGuid();
|
||||
|
||||
return PartialView("RootDir", model);
|
||||
}
|
||||
|
||||
public ActionResult GetRootDirView(RootDir rootDir)
|
||||
{
|
||||
var model = new RootDirModel();
|
||||
model.Id = rootDir.Id;
|
||||
model.Path = rootDir.Path;
|
||||
model.SelectList = new SelectList(new List<string> { rootDir.Path }, rootDir.Path);
|
||||
var model = new RootDirModel
|
||||
{
|
||||
Id = rootDir.Id,
|
||||
Path = rootDir.Path,
|
||||
SelectList = new SelectList(new List<string> { rootDir.Path }, rootDir.Path)
|
||||
};
|
||||
|
||||
ViewData["guid"] = Guid.NewGuid();
|
||||
|
||||
return PartialView("RootDir", model);
|
||||
}
|
||||
|
|
|
@ -132,11 +132,12 @@
|
|||
|
||||
var deleteRootDirUrl = '@Url.Action("DeleteRootDir", "AddSeries")';
|
||||
|
||||
function deleteRootDir(id) {
|
||||
sendDeleteToServer(id);
|
||||
function deleteRootDir(guid) {
|
||||
var id = $('#id_' + guid).val();
|
||||
sendDeleteToServer(id, guid);
|
||||
}
|
||||
|
||||
function sendDeleteToServer(id) {
|
||||
function sendDeleteToServer(id, guid) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: deleteRootDirUrl,
|
||||
|
@ -145,15 +146,16 @@
|
|||
alert("Sorry! We could not delete your Root Directory at this time. " + error);
|
||||
},
|
||||
success: function () {
|
||||
$("#rootDir_" + id).remove();
|
||||
$("#rootDir_" + guid).remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var saveRootDirUrl = '@Url.Action("SaveRootDir", "AddSeries")';
|
||||
|
||||
function saveRootDir(id) {
|
||||
var path = $("#path_" + id).data("tComboBox").value();
|
||||
function saveRootDir(guid) {
|
||||
var path = $("#path_" + guid).data("tComboBox").value();
|
||||
var id = $("#id_" + guid).val();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
|
@ -163,8 +165,11 @@
|
|||
alert("Sorry! We could not save " + path + " at this time. " + error);
|
||||
},
|
||||
success: function (data, textStatus, jqXHR) {
|
||||
if (data != 'ok')
|
||||
if (data == 'failed')
|
||||
alert("An error occurred while saving Root Directory: " + path);
|
||||
else {
|
||||
$("#id_" + guid).val(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
Layout = null;
|
||||
}
|
||||
|
||||
<div class="rootDirSection" id="rootDir_@(Model.Id)" style="padding: 7px; padding-left: 3px;">
|
||||
<div class="rootDirSection" id="rootDir_@(ViewData["guid"])" style="padding: 7px; padding-left: 3px;">
|
||||
<fieldset style="padding: 5px; height: 40px;">
|
||||
@{Html.Telerik().ComboBox()
|
||||
.Name("path_" + Model.Id)
|
||||
.Name("path_" + ViewData["guid"])
|
||||
.BindTo(Model.SelectList)
|
||||
.DataBinding(binding => binding.Ajax().Select("_autoCompletePath", "Directory").Delay(400).Cache(false))
|
||||
.Filterable(f => f.FilterMode(AutoCompleteFilterMode.StartsWith))
|
||||
|
@ -16,10 +16,10 @@
|
|||
.Render();}
|
||||
|
||||
|
||||
<a href="#RemoveRootDir" class="deleteRow" onclick="deleteRootDir(@Model.Id); return false;">
|
||||
<a href="#RemoveRootDir" class="deleteRow" onclick="deleteRootDir('@ViewData["guid"]'); return false;">
|
||||
<img src="../../Content/Images/X.png" alt="Delete" width="20px" height="20px" style="vertical-align: middle; margin-top: 7px;"/></a>
|
||||
<button style="padding: 2px 10px 2px 10px; vertical-align: middle; margin: 0px; margin-top: 7px;" onclick="saveRootDir(@Model.Id)">Save</button>
|
||||
<button style="padding: 2px 10px 2px 10px; vertical-align: middle; margin: 0px; margin-top: 7px;" onclick="saveRootDir('@ViewData["guid"]')">Save</button>
|
||||
|
||||
@Html.HiddenFor(x => x.Id, new { id = "id_" + Model.Id })
|
||||
@Html.HiddenFor(x => x.Id, new { id = "id_" + ViewData["guid"] })
|
||||
</fieldset>
|
||||
</div>
|
Loading…
Reference in a new issue