Replaced save notifications for settings on page with AJAX Notifications.

pull/4/head
Mark McDowall 13 years ago
parent 3cc052e9b6
commit d65d79a5c9

@ -155,7 +155,7 @@ namespace NzbDrone.Core.Providers.Jobs
var timerClass = _jobs.Where(t => t.GetType() == jobType).FirstOrDefault(); var timerClass = _jobs.Where(t => t.GetType() == jobType).FirstOrDefault();
if (timerClass == null) if (timerClass == null)
{ {
Logger.Error("Unable to locate implantation for '{0}'. Make sure its properly registered.", jobType.ToString()); Logger.Error("Unable to locate implementation for '{0}'. Make sure its properly registered.", jobType.ToString());
return; return;
} }

@ -278,6 +278,11 @@ button, input[type="button"], input[type="submit"], input[type="reset"]
border-bottom-color: #3C3C3C; border-bottom-color: #3C3C3C;
} }
.hiddenResult
{
display: none;
}
/* Add Series */ /* Add Series */
.tvDbSearchResults .tvDbSearchResults

@ -18,9 +18,21 @@ namespace NzbDrone.Web.Controllers
public JsonResult Index() public JsonResult Index()
{ {
string message = string.Empty; string message = string.Empty;
if (_notifications.GetProgressNotifications.Count != 0)
var basic = _notifications.BasicNotifications;
if (basic.Count != 0)
{
message = basic[0].Title;
if (basic[0].AutoDismiss)
_notifications.Dismiss(basic[0].Id);
}
else
{ {
message = _notifications.GetProgressNotifications[0].CurrentMessage; if (_notifications.GetProgressNotifications.Count != 0)
message = _notifications.GetProgressNotifications[0].CurrentMessage;
} }
return Json(message, JsonRequestBehavior.AllowGet); return Json(message, JsonRequestBehavior.AllowGet);

@ -5,6 +5,7 @@ using System.Web.Mvc;
using NLog; using NLog;
using NzbDrone.Core.Helpers; using NzbDrone.Core.Helpers;
using NzbDrone.Core.Model; using NzbDrone.Core.Model;
using NzbDrone.Core.Model.Notification;
using NzbDrone.Core.Providers; using NzbDrone.Core.Providers;
using NzbDrone.Core.Providers.Core; using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Providers.Indexer; using NzbDrone.Core.Providers.Indexer;
@ -25,16 +26,18 @@ namespace NzbDrone.Web.Controllers
private readonly QualityProvider _qualityProvider; private readonly QualityProvider _qualityProvider;
private readonly RootDirProvider _rootDirProvider; private readonly RootDirProvider _rootDirProvider;
private readonly AutoConfigureProvider _autoConfigureProvider; private readonly AutoConfigureProvider _autoConfigureProvider;
private readonly NotificationProvider _notificationProvider;
public SettingsController(ConfigProvider configProvider, IndexerProvider indexerProvider, public SettingsController(ConfigProvider configProvider, IndexerProvider indexerProvider,
QualityProvider qualityProvider, RootDirProvider rootDirProvider, QualityProvider qualityProvider, RootDirProvider rootDirProvider,
AutoConfigureProvider autoConfigureProvider) AutoConfigureProvider autoConfigureProvider, NotificationProvider notificationProvider)
{ {
_configProvider = configProvider; _configProvider = configProvider;
_indexerProvider = indexerProvider; _indexerProvider = indexerProvider;
_qualityProvider = qualityProvider; _qualityProvider = qualityProvider;
_rootDirProvider = rootDirProvider; _rootDirProvider = rootDirProvider;
_autoConfigureProvider = autoConfigureProvider; _autoConfigureProvider = autoConfigureProvider;
_notificationProvider = notificationProvider;
} }
public ActionResult Index(string viewName) public ActionResult Index(string viewName)
@ -313,6 +316,10 @@ namespace NzbDrone.Web.Controllers
[HttpPost] [HttpPost]
public ActionResult SaveGeneral(SettingsModel data) public ActionResult SaveGeneral(SettingsModel data)
{ {
var basicNotification = new BasicNotification();
basicNotification.Type = BasicNotificationType.Info;
basicNotification.AutoDismiss = true;
try try
{ {
foreach (var dir in data.Directories) foreach (var dir in data.Directories)
@ -324,15 +331,26 @@ namespace NzbDrone.Web.Controllers
{ {
Logger.Debug("Failed to save Root Dirs"); Logger.Debug("Failed to save Root Dirs");
Logger.DebugException(ex.Message, ex); Logger.DebugException(ex.Message, ex);
basicNotification.Title = SETTINGS_FAILED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_FAILED); return Content(SETTINGS_FAILED);
} }
basicNotification.Title = SETTINGS_SAVED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_SAVED); return Content(SETTINGS_SAVED);
} }
[HttpPost] [HttpPost]
public ActionResult SaveIndexers(IndexerSettingsModel data) public ActionResult SaveIndexers(IndexerSettingsModel data)
{ {
var basicNotification = new BasicNotification();
basicNotification.Type = BasicNotificationType.Info;
basicNotification.AutoDismiss = true;
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
var nzbsOrgSettings = _indexerProvider.GetSettings(typeof(NzbsOrgProvider)); var nzbsOrgSettings = _indexerProvider.GetSettings(typeof(NzbsOrgProvider));
@ -363,15 +381,23 @@ namespace NzbDrone.Web.Controllers
_configProvider.NewzbinUsername = data.NewzbinUsername; _configProvider.NewzbinUsername = data.NewzbinUsername;
_configProvider.NewzbinPassword = data.NewzbinPassword; _configProvider.NewzbinPassword = data.NewzbinPassword;
basicNotification.Title = SETTINGS_SAVED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_SAVED); return Content(SETTINGS_SAVED);
} }
basicNotification.Title = SETTINGS_FAILED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_FAILED); return Content(SETTINGS_FAILED);
} }
[HttpPost] [HttpPost]
public ActionResult SaveDownloads(DownloadSettingsModel data) public ActionResult SaveDownloads(DownloadSettingsModel data)
{ {
var basicNotification = new BasicNotification();
basicNotification.Type = BasicNotificationType.Info;
basicNotification.AutoDismiss = true;
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
_configProvider.SyncFrequency = data.SyncFrequency.ToString(); _configProvider.SyncFrequency = data.SyncFrequency.ToString();
@ -387,15 +413,23 @@ namespace NzbDrone.Web.Controllers
_configProvider.UseBlackhole = data.UseBlackHole; _configProvider.UseBlackhole = data.UseBlackHole;
_configProvider.BlackholeDirectory = data.BlackholeDirectory; _configProvider.BlackholeDirectory = data.BlackholeDirectory;
basicNotification.Title = SETTINGS_SAVED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_SAVED); return Content(SETTINGS_SAVED);
} }
basicNotification.Title = SETTINGS_FAILED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_FAILED); return Content(SETTINGS_FAILED);
} }
[HttpPost] [HttpPost]
public ActionResult SaveQuality(QualityModel data) public ActionResult SaveQuality(QualityModel data)
{ {
var basicNotification = new BasicNotification();
basicNotification.Type = BasicNotificationType.Info;
basicNotification.AutoDismiss = true;
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
_configProvider.SetValue("DefaultQualityProfile", data.DefaultQualityProfileId.ToString()); _configProvider.SetValue("DefaultQualityProfile", data.DefaultQualityProfileId.ToString());
@ -422,15 +456,23 @@ namespace NzbDrone.Web.Controllers
_qualityProvider.Update(profile); _qualityProvider.Update(profile);
} }
basicNotification.Title = SETTINGS_SAVED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_SAVED); return Content(SETTINGS_SAVED);
} }
basicNotification.Title = SETTINGS_FAILED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_FAILED); return Content(SETTINGS_FAILED);
} }
[HttpPost] [HttpPost]
public ActionResult SaveNotifications(NotificationSettingsModel data) public ActionResult SaveNotifications(NotificationSettingsModel data)
{ {
var basicNotification = new BasicNotification();
basicNotification.Type = BasicNotificationType.Info;
basicNotification.AutoDismiss = true;
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
_configProvider.SetValue("XbmcEnabled", data.XbmcEnabled.ToString()); _configProvider.SetValue("XbmcEnabled", data.XbmcEnabled.ToString());
@ -448,15 +490,23 @@ namespace NzbDrone.Web.Controllers
_configProvider.SetValue("XbmcUsername", data.XbmcUsername); _configProvider.SetValue("XbmcUsername", data.XbmcUsername);
_configProvider.SetValue("XbmcPassword", data.XbmcPassword); _configProvider.SetValue("XbmcPassword", data.XbmcPassword);
basicNotification.Title = SETTINGS_SAVED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_SAVED); return Content(SETTINGS_SAVED);
} }
basicNotification.Title = SETTINGS_FAILED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_FAILED); return Content(SETTINGS_FAILED);
} }
[HttpPost] [HttpPost]
public ActionResult SaveEpisodeSorting(EpisodeSortingModel data) public ActionResult SaveEpisodeSorting(EpisodeSortingModel data)
{ {
var basicNotification = new BasicNotification();
basicNotification.Type = BasicNotificationType.Info;
basicNotification.AutoDismiss = true;
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
_configProvider.SetValue("Sorting_ShowName", data.ShowName.ToString()); _configProvider.SetValue("Sorting_ShowName", data.ShowName.ToString());
@ -470,9 +520,13 @@ namespace NzbDrone.Web.Controllers
_configProvider.SetValue("Sorting_NumberStyle", data.NumberStyle.ToString()); _configProvider.SetValue("Sorting_NumberStyle", data.NumberStyle.ToString());
_configProvider.SetValue("Sorting_MultiEpisodeStyle", data.MultiEpisodeStyle.ToString()); _configProvider.SetValue("Sorting_MultiEpisodeStyle", data.MultiEpisodeStyle.ToString());
basicNotification.Title = SETTINGS_SAVED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_SAVED); return Content(SETTINGS_SAVED);
} }
basicNotification.Title = SETTINGS_FAILED;
_notificationProvider.Register(basicNotification);
return Content(SETTINGS_FAILED); return Content(SETTINGS_FAILED);
} }
} }

@ -216,7 +216,7 @@
</fieldset> </fieldset>
} }
<div id="result"></div> <div id="result" class="hiddenResult"></div>
<script type="text/javascript"> <script type="text/javascript">
var autoConfigureSabUrl = '@Url.Action("AutoConfigureSab", "Settings")'; var autoConfigureSabUrl = '@Url.Action("AutoConfigureSab", "Settings")';

@ -121,4 +121,4 @@
</fieldset> </fieldset>
} }
<div id="result"></div> <div id="result" class="hiddenResult"></div>

@ -50,7 +50,7 @@
</p> </p>
</fieldset> </fieldset>
} }
<div id="result"></div> <div id="result" class="hiddenResult"></div>
<script type="text/javascript"> <script type="text/javascript">

@ -206,4 +206,4 @@
</div> </div>
</fieldset> </fieldset>
} }
<div id="result"></div> <div id="result" class="hiddenResult"></div>

@ -158,4 +158,4 @@
</fieldset> </fieldset>
} }
<div id="result"></div> <div id="result" class="hiddenResult"></div>

@ -63,7 +63,7 @@
</fieldset> </fieldset>
} }
<div id="result"></div> <div id="result" class="hiddenResult"></div>
<script type="text/javascript"> <script type="text/javascript">

Loading…
Cancel
Save