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