RootDir Adds/Deletes update the database when the action occurs, no more awkward saving tactic.

This commit is contained in:
Mark McDowall 2011-04-27 08:34:53 -07:00
parent fbdc752f77
commit 3a6cf56db1
4 changed files with 62 additions and 49 deletions

View file

@ -234,7 +234,36 @@ namespace NzbDrone.Web.Controllers
public ViewResult AddRootDir()
{
return View("RootDir", new RootDir());
var rootDir = new RootDir { Path = String.Empty };
var id = _rootDirProvider.Add(rootDir);
rootDir.Id = id;
ViewData["RootDirId"] = id;
return View("RootDir", rootDir);
}
public ActionResult GetRootDirView(RootDir rootDir)
{
ViewData["RootDirId"] = rootDir.Id;
return PartialView("RootDir", rootDir);
}
public JsonResult DeleteRootDir(int rootDirId)
{
try
{
_rootDirProvider.Remove(rootDirId);
}
catch (Exception)
{
return new JsonResult { Data = "failed" };
}
return new JsonResult { Data = "ok" };
}
public ActionResult SubMenu()
@ -292,37 +321,21 @@ namespace NzbDrone.Web.Controllers
[HttpPost]
public ActionResult SaveGeneral(SettingsModel data)
{
if (data.Directories != null && data.Directories.Count > 0)
try
{
//If the Javascript was beaten we need to return an error
/*
* Kay.one: I can't see what its doing, all it does it dooesn't let me s.
* if (!data.Directories.Exists(d => d.Default))
return Content(SETTINGS_FAILED);*/
var currentRootDirs = _rootDirProvider.GetAll();
foreach (var currentRootDir in currentRootDirs)
{
var closureRootDir = currentRootDir;
if (!data.Directories.Exists(d => d.Id == closureRootDir.Id))
_rootDirProvider.Remove(closureRootDir.Id);
}
foreach (var dir in data.Directories)
{
if (dir.Id == 0)
_rootDirProvider.Add(dir);
else
_rootDirProvider.Update(dir);
_rootDirProvider.Update(dir);
}
return Content(SETTINGS_SAVED);
}
catch (Exception ex)
{
Logger.Debug("Failed to save Root Dirs");
Logger.DebugException(ex.Message, ex);
return Content(SETTINGS_FAILED);
}
return Content(SETTINGS_FAILED);
return Content(SETTINGS_SAVED);
}
[HttpPost]