瀏覽代碼

add new notification options

Luke Pulverenti 11 年之前
父節點
當前提交
42145c86e8

+ 20 - 0
MediaBrowser.Model/Configuration/ServerConfiguration.cs

@@ -225,6 +225,8 @@ namespace MediaBrowser.Model.Configuration
 
         public double DownMixAudioBoost { get; set; }
 
+        public NotificationOptions NotificationOptions { get; set; }
+
         /// <summary>
         /// Initializes a new instance of the <see cref="ServerConfiguration" /> class.
         /// </summary>
@@ -288,6 +290,8 @@ namespace MediaBrowser.Model.Configuration
             DlnaOptions = new DlnaOptions();
 
             UICulture = "en-us";
+
+            NotificationOptions = new NotificationOptions();
         }
     }
 
@@ -315,4 +319,20 @@ namespace MediaBrowser.Model.Configuration
         public string From { get; set; }
         public string To { get; set; }
     }
+
+    public class NotificationOptions
+    {
+        public bool SendOnUpdates { get; set; }
+        public bool SendOnPlayback { get; set; }
+        public bool SendOnFailedTasks { get; set; }
+        public bool SendOnNewLibraryContent { get; set; }
+
+        public NotificationOptions()
+        {
+            SendOnUpdates = true;
+            SendOnPlayback = true;
+            SendOnFailedTasks = true;
+            SendOnNewLibraryContent = true;
+        }
+    }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifier.cs

@@ -2,6 +2,7 @@
 using MediaBrowser.Common.Plugins;
 using MediaBrowser.Common.ScheduledTasks;
 using MediaBrowser.Common.Updates;
+using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Notifications;
@@ -27,6 +28,8 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications
         private readonly ITaskManager _taskManager;
         private readonly INotificationManager _notificationManager;
 
+        private IServerConfigurationManager _config;
+
         public Notifications(IInstallationManager installationManager, IUserManager userManager, ILogger logger, ITaskManager taskManager, INotificationManager notificationManager)
         {
             _installationManager = installationManager;
@@ -75,7 +78,8 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications
         {
             var result = e.Argument;
 
-            if (result.Status == TaskCompletionStatus.Failed)
+            if (result.Status == TaskCompletionStatus.Failed && 
+                _config.Configuration.NotificationOptions.SendOnFailedTasks)
             {
                 var userIds = _userManager
                   .Users
@@ -130,6 +134,11 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications
 
         async void _installationManager_PackageInstallationCompleted(object sender, InstallationEventArgs e)
         {
+            if (!_config.Configuration.NotificationOptions.SendOnUpdates)
+            {
+                return;
+            }
+
             var installationInfo = e.InstallationInfo;
 
             var userIds = _userManager

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/Server/server.json

@@ -55,6 +55,7 @@
 	"TabProfile": "Profile",
 	"TabMetadata": "Metadata",
 	"TabImages": "Images",
+	"TabNotifications": "Notifications"
 	"TabCollectionTitles": "Titles",
 	"LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons",
 	"LabelUnairedMissingEpisodesWithinSeasons": "Display unaired episodes within seasons",
@@ -554,5 +555,11 @@
 	"HeaderRequireManualLogin": "Require manual username entry for:",
 	"HeaderRequireManualLoginHelp": "When disabled clients may present a login screen with a visual selection of users.",
 	"OptionOtherApps": "Other apps",
-	"OptionMobileApps": "Mobile apps"
+	"OptionMobileApps": "Mobile apps",
+	"HeaderEnableNotificationForEvents": "Send notifications for the following events:",
+	"OptionNotifyOnUpdates": "When updates are available",
+	"OptionNotifyOnPlayback": "When users play content",
+	"OptionNotifyOnFailedTasks": "When scheduled tasks fail",
+	"OptionNotifyOnNewLibraryContent": "When new library content is added",
+	"SendNotificationHelp": "Notifications are delivered to the dashboard inbox. Browse the plugin catalog to install additional notification formats such as email and text messaging."
 }

+ 1 - 0
MediaBrowser.WebDashboard/Api/DashboardService.cs

@@ -597,6 +597,7 @@ namespace MediaBrowser.WebDashboard.Api
                                 "musicrecommended.js",
                                 "musicvideos.js",
                                 "notifications.js",
+                                "notificationsettings.js",
                                 "playlist.js",
                                 "plugincatalogpage.js",
                                 "pluginspage.js",

+ 6 - 0
MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj

@@ -508,6 +508,9 @@
     <Content Include="dashboard-ui\livetvrecordings.html">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Include="dashboard-ui\notificationsettings.html">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="dashboard-ui\nowplaying.html">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
@@ -631,6 +634,9 @@
     <Content Include="dashboard-ui\scripts\livetvrecordings.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Include="dashboard-ui\scripts\notificationsettings.js">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="dashboard-ui\scripts\nowplayingbar.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>