Added links and api key links to notifications
This commit is contained in:
parent
35d29df864
commit
625acef635
|
@ -8,6 +8,7 @@ namespace NzbDrone.Api.ClientSchema
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Label { get; set; }
|
public string Label { get; set; }
|
||||||
public string HelpText { get; set; }
|
public string HelpText { get; set; }
|
||||||
|
public string HelpLink { get; set; }
|
||||||
public object Value { get; set; }
|
public object Value { get; set; }
|
||||||
public string Type { get; set; }
|
public string Type { get; set; }
|
||||||
public List<SelectOption> SelectOptions { get; set; }
|
public List<SelectOption> SelectOptions { get; set; }
|
||||||
|
|
|
@ -26,6 +26,7 @@ namespace NzbDrone.Api.ClientSchema
|
||||||
Name = propertyInfo.Name,
|
Name = propertyInfo.Name,
|
||||||
Label = fieldAttribute.Label,
|
Label = fieldAttribute.Label,
|
||||||
HelpText = fieldAttribute.HelpText,
|
HelpText = fieldAttribute.HelpText,
|
||||||
|
HelpLink = fieldAttribute.HelpLink,
|
||||||
Order = fieldAttribute.Order,
|
Order = fieldAttribute.Order,
|
||||||
Type = fieldAttribute.Type.ToString().ToLowerInvariant()
|
Type = fieldAttribute.Type.ToString().ToLowerInvariant()
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,6 +9,7 @@ namespace NzbDrone.Api.Notifications
|
||||||
{
|
{
|
||||||
public String Name { get; set; }
|
public String Name { get; set; }
|
||||||
public String ImplementationName { get; set; }
|
public String ImplementationName { 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 List<Field> Fields { get; set; }
|
public List<Field> Fields { get; set; }
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace NzbDrone.Core.Annotations
|
||||||
public int Order { get; private set; }
|
public int Order { get; private set; }
|
||||||
public string Label { get; set; }
|
public string Label { get; set; }
|
||||||
public string HelpText { get; set; }
|
public string HelpText { get; set; }
|
||||||
|
public string HelpLink { get; set; }
|
||||||
public FieldType Type { get; set; }
|
public FieldType Type { get; set; }
|
||||||
public Type SelectOptions { get; set; }
|
public Type SelectOptions { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,11 @@ namespace NzbDrone.Core.Notifications.Email
|
||||||
get { return "Email"; }
|
get { return "Email"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string Link
|
||||||
|
{
|
||||||
|
get { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnGrab(string message)
|
public override void OnGrab(string message)
|
||||||
{
|
{
|
||||||
const string subject = "NzbDrone [TV] - Grabbed";
|
const string subject = "NzbDrone [TV] - Grabbed";
|
||||||
|
|
|
@ -21,6 +21,11 @@ namespace NzbDrone.Core.Notifications.Growl
|
||||||
get { return "Growl"; }
|
get { return "Growl"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string Link
|
||||||
|
{
|
||||||
|
get { return "http://growl.info/"; }
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnGrab(string message)
|
public override void OnGrab(string message)
|
||||||
{
|
{
|
||||||
const string title = "Episode Grabbed";
|
const string title = "Episode Grabbed";
|
||||||
|
|
|
@ -6,6 +6,7 @@ namespace NzbDrone.Core.Notifications
|
||||||
{
|
{
|
||||||
string Name { get; }
|
string Name { get; }
|
||||||
string ImplementationName { get; }
|
string ImplementationName { get; }
|
||||||
|
string Link { get; }
|
||||||
|
|
||||||
NotificationDefinition InstanceDefinition { get; set; }
|
NotificationDefinition InstanceDefinition { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string ImplementationName { get; set; }
|
public string ImplementationName { get; set; }
|
||||||
|
public string Link { get; set; }
|
||||||
public bool OnGrab { get; set; }
|
public bool OnGrab { get; set; }
|
||||||
public bool OnDownload { get; set; }
|
public bool OnDownload { get; set; }
|
||||||
public INotifcationSettings Settings { get; set; }
|
public INotifcationSettings Settings { get; set; }
|
||||||
|
|
|
@ -7,6 +7,7 @@ namespace NzbDrone.Core.Notifications
|
||||||
{
|
{
|
||||||
public abstract string Name { get; }
|
public abstract string Name { get; }
|
||||||
public abstract string ImplementationName { get; }
|
public abstract string ImplementationName { get; }
|
||||||
|
public abstract string Link { get; }
|
||||||
|
|
||||||
public NotificationDefinition InstanceDefinition { get; set; }
|
public NotificationDefinition InstanceDefinition { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@ namespace NzbDrone.Core.Notifications
|
||||||
newNotification.Instance = (INotification)_container.Resolve(type);
|
newNotification.Instance = (INotification)_container.Resolve(type);
|
||||||
newNotification.Id = i;
|
newNotification.Id = i;
|
||||||
newNotification.ImplementationName = notification.ImplementationName;
|
newNotification.ImplementationName = notification.ImplementationName;
|
||||||
|
newNotification.Link = notification.Link;
|
||||||
|
|
||||||
var instanceType = newNotification.Instance.GetType();
|
var instanceType = newNotification.Instance.GetType();
|
||||||
var baseGenArgs = instanceType.BaseType.GetGenericArguments();
|
var baseGenArgs = instanceType.BaseType.GetGenericArguments();
|
||||||
|
|
|
@ -21,6 +21,11 @@ namespace NzbDrone.Core.Notifications.Plex
|
||||||
get { return "Plex Client"; }
|
get { return "Plex Client"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string Link
|
||||||
|
{
|
||||||
|
get { return "http://www.plexapp.com/"; }
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnGrab(string message)
|
public override void OnGrab(string message)
|
||||||
{
|
{
|
||||||
const string header = "NzbDrone [TV] - Grabbed";
|
const string header = "NzbDrone [TV] - Grabbed";
|
||||||
|
|
|
@ -21,6 +21,11 @@ namespace NzbDrone.Core.Notifications.Plex
|
||||||
get { return "Plex Server"; }
|
get { return "Plex Server"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string Link
|
||||||
|
{
|
||||||
|
get { return "http://www.plexapp.com/"; }
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnGrab(string message)
|
public override void OnGrab(string message)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,11 @@ namespace NzbDrone.Core.Notifications.Prowl
|
||||||
get { return "Prowl"; }
|
get { return "Prowl"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string Link
|
||||||
|
{
|
||||||
|
get { return "http://www.prowlapp.com/"; }
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnGrab(string message)
|
public override void OnGrab(string message)
|
||||||
{
|
{
|
||||||
const string title = "Episode Grabbed";
|
const string title = "Episode Grabbed";
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespace NzbDrone.Core.Notifications.Prowl
|
||||||
{
|
{
|
||||||
public class ProwlSettings : INotifcationSettings
|
public class ProwlSettings : INotifcationSettings
|
||||||
{
|
{
|
||||||
[FieldDefinition(0, Label = "API Key")]
|
[FieldDefinition(0, Label = "API Key", HelpLink = "https://www.prowlapp.com/api_settings.php")]
|
||||||
public String ApiKey { get; set; }
|
public String ApiKey { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(1, Label = "Priority", Type = FieldType.Select, SelectOptions= typeof(ProwlPriority) )]
|
[FieldDefinition(1, Label = "Priority", Type = FieldType.Select, SelectOptions= typeof(ProwlPriority) )]
|
||||||
|
|
|
@ -23,6 +23,11 @@ namespace NzbDrone.Core.Notifications.Pushover
|
||||||
get { return "Pushover"; }
|
get { return "Pushover"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string Link
|
||||||
|
{
|
||||||
|
get { return "https://pushover.net/"; }
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnGrab(string message)
|
public override void OnGrab(string message)
|
||||||
{
|
{
|
||||||
const string title = "Episode Grabbed";
|
const string title = "Episode Grabbed";
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespace NzbDrone.Core.Notifications.Pushover
|
||||||
{
|
{
|
||||||
public class PushoverSettings : INotifcationSettings
|
public class PushoverSettings : INotifcationSettings
|
||||||
{
|
{
|
||||||
[FieldDefinition(0, Label = "User Key")]
|
[FieldDefinition(0, Label = "User Key", HelpLink = "https://pushover.net/")]
|
||||||
public String UserKey { get; set; }
|
public String UserKey { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(1, Label = "Priority", Type = FieldType.Select, SelectOptions = typeof(PushoverPriority) )]
|
[FieldDefinition(1, Label = "Priority", Type = FieldType.Select, SelectOptions = typeof(PushoverPriority) )]
|
||||||
|
|
|
@ -22,6 +22,11 @@ namespace NzbDrone.Core.Notifications.Xbmc
|
||||||
get { return "XBMC"; }
|
get { return "XBMC"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string Link
|
||||||
|
{
|
||||||
|
get { return "http://xbmc.org/"; }
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnGrab(string message)
|
public override void OnGrab(string message)
|
||||||
{
|
{
|
||||||
const string header = "NzbDrone [TV] - Grabbed";
|
const string header = "NzbDrone [TV] - Grabbed";
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
.control-group {
|
@import "../Shared/Styles/clickable.less";
|
||||||
|
|
||||||
|
.control-group {
|
||||||
.controls {
|
.controls {
|
||||||
i {
|
i {
|
||||||
font-size : 16px;
|
font-size : 16px;
|
||||||
|
@ -31,3 +33,11 @@
|
||||||
textarea.release-restrictions {
|
textarea.release-restrictions {
|
||||||
width : 260px;
|
width : 260px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.help-link {
|
||||||
|
text-decoration: none !important;
|
||||||
|
|
||||||
|
i {
|
||||||
|
.clickable;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{{#if helpText}}
|
||||||
|
<span class="help-inline">
|
||||||
|
<i class="icon-question-sign" title="{{helpText}}"/>
|
||||||
|
</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if helpLink}}
|
||||||
|
<span class="help-inline">
|
||||||
|
<a href="{{helpLink}}" class="help-link"><i class="icon-info-sign"/></a>
|
||||||
|
</span>
|
||||||
|
{{/if}}
|
|
@ -3,10 +3,6 @@
|
||||||
|
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" name="fields.{{order}}.value" spellcheck="false"/>
|
<input type="text" name="fields.{{order}}.value" spellcheck="false"/>
|
||||||
{{#if helpText}}
|
{{> FormHelpPartial}}
|
||||||
<span class="help-inline">
|
|
||||||
<i class="icon-question-sign" title="{{helpText}}"/>
|
|
||||||
</span>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="span3">
|
<div class="span3">
|
||||||
{{implementationName}}
|
{{implementationName}}
|
||||||
|
{{#if link}}
|
||||||
|
<a href="{{link}}"><i class="icon-info-sign"/></a>
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -18,7 +18,11 @@ define([
|
||||||
this.notificationCollection = options.notificationCollection;
|
this.notificationCollection = options.notificationCollection;
|
||||||
},
|
},
|
||||||
|
|
||||||
addNotification: function () {
|
addNotification: function (e) {
|
||||||
|
if ($(e.target).hasClass('icon-info-sign')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.model.set('id', undefined);
|
this.model.set('id', undefined);
|
||||||
var editView = new EditView({ model: this.model, notificationCollection: this.notificationCollection });
|
var editView = new EditView({ model: this.model, notificationCollection: this.notificationCollection });
|
||||||
App.modalRegion.show(editView);
|
App.modalRegion.show(editView);
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
@import "../../Shared/Styles/card.less";
|
@import "../../Shared/Styles/card.less";
|
||||||
|
@import "../../Shared/Styles/clickable.less";
|
||||||
|
|
||||||
.add-notification-item {
|
.add-notification-item {
|
||||||
.card;
|
.card;
|
||||||
|
@ -6,6 +7,19 @@
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
font-weight: lighter;
|
font-weight: lighter;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
|
a {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #595959;
|
||||||
|
|
||||||
|
i {
|
||||||
|
.clickable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.add-notifications {
|
.add-notifications {
|
||||||
|
|
Loading…
Reference in New Issue