mirror of https://github.com/lidarr/Lidarr
New: Optionally disable notifications for upgraded episode files
This commit is contained in:
parent
bc908e0440
commit
3d3390187e
|
@ -7,6 +7,7 @@ namespace NzbDrone.Api.Notifications
|
||||||
public String Link { get; set; }
|
public String Link { get; set; }
|
||||||
public Boolean OnGrab { get; set; }
|
public Boolean OnGrab { get; set; }
|
||||||
public Boolean OnDownload { get; set; }
|
public Boolean OnDownload { get; set; }
|
||||||
|
public Boolean OnUpgrade { get; set; }
|
||||||
public String TestCommand { get; set; }
|
public String TestCommand { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
using FluentMigrator;
|
||||||
|
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Datastore.Migration
|
||||||
|
{
|
||||||
|
[Migration(38)]
|
||||||
|
public class add_on_upgrade_to_notifications : NzbDroneMigrationBase
|
||||||
|
{
|
||||||
|
protected override void MainDbUpgrade()
|
||||||
|
{
|
||||||
|
Alter.Table("Notifications").AddColumn("OnUpgrade").AsBoolean().Nullable();
|
||||||
|
|
||||||
|
Execute.Sql("UPDATE Notifications SET OnUpgrade = OnDownload");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,5 +7,6 @@ namespace NzbDrone.Core.Notifications
|
||||||
{
|
{
|
||||||
public Boolean OnGrab { get; set; }
|
public Boolean OnGrab { get; set; }
|
||||||
public Boolean OnDownload { get; set; }
|
public Boolean OnDownload { get; set; }
|
||||||
|
public Boolean OnUpgrade { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,6 +10,7 @@ namespace NzbDrone.Core.Notifications
|
||||||
{
|
{
|
||||||
List<INotification> OnGrabEnabled();
|
List<INotification> OnGrabEnabled();
|
||||||
List<INotification> OnDownloadEnabled();
|
List<INotification> OnDownloadEnabled();
|
||||||
|
List<INotification> OnUpgradeEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
public class NotificationFactory : ProviderFactory<INotification, NotificationDefinition>, INotificationFactory
|
public class NotificationFactory : ProviderFactory<INotification, NotificationDefinition>, INotificationFactory
|
||||||
|
@ -28,5 +29,10 @@ namespace NzbDrone.Core.Notifications
|
||||||
{
|
{
|
||||||
return GetAvailableProviders().Where(n => ((NotificationDefinition)n.Definition).OnDownload).ToList();
|
return GetAvailableProviders().Where(n => ((NotificationDefinition)n.Definition).OnDownload).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<INotification> OnUpgradeEnabled()
|
||||||
|
{
|
||||||
|
return GetAvailableProviders().Where(n => ((NotificationDefinition)n.Definition).OnUpgrade).ToList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -80,6 +80,11 @@ namespace NzbDrone.Core.Notifications
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (downloadMessage.OldFiles.Any() && !((NotificationDefinition) notification.Definition).OnUpgrade)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
notification.OnDownload(downloadMessage);
|
notification.OnDownload(downloadMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -194,6 +194,7 @@
|
||||||
<Compile Include="Datastore\Migration\035_add_series_folder_format_to_naming_config.cs" />
|
<Compile Include="Datastore\Migration\035_add_series_folder_format_to_naming_config.cs" />
|
||||||
<Compile Include="Datastore\Migration\036_update_with_quality_converters.cs" />
|
<Compile Include="Datastore\Migration\036_update_with_quality_converters.cs" />
|
||||||
<Compile Include="Datastore\Migration\037_add_configurable_qualities.cs" />
|
<Compile Include="Datastore\Migration\037_add_configurable_qualities.cs" />
|
||||||
|
<Compile Include="Datastore\Migration\038_add_on_upgrade_to_notifications.cs" />
|
||||||
<Compile Include="Datastore\Migration\Framework\MigrationContext.cs" />
|
<Compile Include="Datastore\Migration\Framework\MigrationContext.cs" />
|
||||||
<Compile Include="Datastore\Migration\Framework\MigrationController.cs" />
|
<Compile Include="Datastore\Migration\Framework\MigrationController.cs" />
|
||||||
<Compile Include="Datastore\Migration\Framework\MigrationExtension.cs" />
|
<Compile Include="Datastore\Migration\Framework\MigrationExtension.cs" />
|
||||||
|
|
|
@ -24,10 +24,11 @@ define([
|
||||||
}
|
}
|
||||||
|
|
||||||
this.model.set({
|
this.model.set({
|
||||||
id: undefined,
|
id : undefined,
|
||||||
name: this.model.get('implementationName'),
|
name : this.model.get('implementationName'),
|
||||||
onGrab: true,
|
onGrab : true,
|
||||||
onDownload: true
|
onDownload : true,
|
||||||
|
onUpgrade : true
|
||||||
});
|
});
|
||||||
|
|
||||||
var editView = new EditView({ model: this.model, notificationCollection: this.notificationCollection });
|
var editView = new EditView({ model: this.model, notificationCollection: this.notificationCollection });
|
||||||
|
|
|
@ -16,18 +16,28 @@ define(
|
||||||
var model = Marionette.ItemView.extend({
|
var model = Marionette.ItemView.extend({
|
||||||
template: 'Settings/Notifications/NotificationEditViewTemplate',
|
template: 'Settings/Notifications/NotificationEditViewTemplate',
|
||||||
|
|
||||||
|
ui: {
|
||||||
|
onDownloadToggle: '.x-on-download',
|
||||||
|
onUpgradeSection: '.x-on-upgrade'
|
||||||
|
},
|
||||||
|
|
||||||
events: {
|
events: {
|
||||||
'click .x-save' : '_saveNotification',
|
'click .x-save' : '_saveNotification',
|
||||||
'click .x-save-and-add': '_saveAndAddNotification',
|
'click .x-save-and-add': '_saveAndAddNotification',
|
||||||
'click .x-delete' : '_deleteNotification',
|
'click .x-delete' : '_deleteNotification',
|
||||||
'click .x-back' : '_back',
|
'click .x-back' : '_back',
|
||||||
'click .x-test' : '_test'
|
'click .x-test' : '_test',
|
||||||
|
'change .x-on-download': '_onDownloadChanged'
|
||||||
},
|
},
|
||||||
|
|
||||||
initialize: function (options) {
|
initialize: function (options) {
|
||||||
this.notificationCollection = options.notificationCollection;
|
this.notificationCollection = options.notificationCollection;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onRender: function () {
|
||||||
|
this._onDownloadChanged();
|
||||||
|
},
|
||||||
|
|
||||||
_saveNotification: function () {
|
_saveNotification: function () {
|
||||||
var self = this;
|
var self = this;
|
||||||
var promise = this.model.saveSettings();
|
var promise = this.model.saveSettings();
|
||||||
|
@ -71,6 +81,18 @@ define(
|
||||||
});
|
});
|
||||||
|
|
||||||
CommandController.Execute(testCommand, properties);
|
CommandController.Execute(testCommand, properties);
|
||||||
|
},
|
||||||
|
|
||||||
|
_onDownloadChanged: function () {
|
||||||
|
var checked = this.ui.onDownloadToggle.prop('checked');
|
||||||
|
|
||||||
|
if (checked) {
|
||||||
|
this.ui.onUpgradeSection.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
this.ui.onUpgradeSection.hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,9 @@
|
||||||
<div class="btn btn-primary slide-button"/>
|
<div class="btn btn-primary slide-button"/>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<span class="help-inline-checkbox">
|
<span class="help-inline-checkbox">
|
||||||
<i class="icon-nd-form-info" title="Do you want to get notifications when episodes are grabbed?"/>
|
<i class="icon-nd-form-info" title="Do you want to get notifications when episodes are grabbed?"/>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
|
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<label class="checkbox toggle well">
|
<label class="checkbox toggle well">
|
||||||
<input type="checkbox" name="onDownload"/>
|
<input type="checkbox" name="onDownload" class="x-on-download"/>
|
||||||
<p>
|
<p>
|
||||||
<span>Yes</span>
|
<span>Yes</span>
|
||||||
<span>No</span>
|
<span>No</span>
|
||||||
|
@ -50,9 +50,29 @@
|
||||||
<div class="btn btn-primary slide-button"/>
|
<div class="btn btn-primary slide-button"/>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<span class="help-inline-checkbox">
|
<span class="help-inline-checkbox">
|
||||||
<i class="icon-nd-form-info" title="Do you want to get notifications when episodes are downloaded?"/>
|
<i class="icon-nd-form-info" title="Do you want to get notifications when episodes are downloaded?"/>
|
||||||
</span>
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="control-group x-on-upgrade">
|
||||||
|
<label class="control-label">On Upgrade</label>
|
||||||
|
|
||||||
|
<div class="controls">
|
||||||
|
<label class="checkbox toggle well">
|
||||||
|
<input type="checkbox" name="onUpgrade"/>
|
||||||
|
<p>
|
||||||
|
<span>Yes</span>
|
||||||
|
<span>No</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="btn btn-primary slide-button"/>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<span class="help-inline-checkbox">
|
||||||
|
<i class="icon-nd-form-info" title="Do you want to get notifications when episodes are upgraded to a better quality?"/>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ define(
|
||||||
'click .x-notifications-tab' : '_showNotifications',
|
'click .x-notifications-tab' : '_showNotifications',
|
||||||
'click .x-general-tab' : '_showGeneral',
|
'click .x-general-tab' : '_showGeneral',
|
||||||
'click .x-save-settings' : '_save',
|
'click .x-save-settings' : '_save',
|
||||||
'change .x-advanced-settings' : '_toggleAdvancedSettings'
|
'change .x-advanced-settings' : '_toggleAdvancedSettings'
|
||||||
},
|
},
|
||||||
|
|
||||||
initialize: function (options) {
|
initialize: function (options) {
|
||||||
|
|
Loading…
Reference in New Issue