add new notification options

This commit is contained in:
Luke Pulverenti 2014-04-25 16:47:56 -04:00
parent 547291f048
commit 42145c86e8
5 changed files with 45 additions and 2 deletions

View file

@ -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;
}
}
}

View file

@ -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

View file

@ -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."
}

View file

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

View file

@ -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>