Merge branch 'feature/AddFailBubbleLinks' into develop

This commit is contained in:
JackDandy 2018-06-01 16:57:54 +01:00
commit 5565a2bfae
8 changed files with 118 additions and 82 deletions

View file

@ -1,6 +1,7 @@
### 0.17.0 (2018-xx-xx xx:xx:xx UTC) ### 0.17.0 (2018-xx-xx xx:xx:xx UTC)
* Add TVDB, TheXem, and GitHub buttons to page History/Layout "Provider fails" that fetches a site Up/Down report * Add TVDB, TheXem, and GitHub buttons to page History/Layout "Provider fails" that fetches a site Up/Down report
* Add bubble links to History/Provider fails when more than one provider has failures
* Add "Keep up to x most recent downloads" to Edit Show/Other * Add "Keep up to x most recent downloads" to Edit Show/Other
* Add "Keep up to x most recent downloads" to Manage/Bulk Change/Edit * Add "Keep up to x most recent downloads" to Manage/Bulk Change/Edit
* Change append number of downloads to keep to the number of file(s) at Display Show * Change append number of downloads to keep to the number of file(s) at Display Show

View file

@ -70,10 +70,12 @@ pre .prelight-num{
border-color:#222 border-color:#222
} }
.component-group.bubblelist a,
.ui-widget-content a{ .ui-widget-content a{
color:#2d8fbf color:#2d8fbf
} }
.component-group.bubblelist a:hover,
.ui-widget-content a:hover{ .ui-widget-content a:hover{
color:#09a2ff color:#09a2ff
} }
@ -990,7 +992,7 @@ fieldset[disabled] .navbar-default .btn-link:focus{
color:#ddd color:#ddd
} }
.component-group.typelist .bgcol, .component-group.bubblelist .bgcol,
.dropdown-menu{ .dropdown-menu{
background-color:#333; background-color:#333;
border:1px solid rgba(0, 0, 0, 0.15); border:1px solid rgba(0, 0, 0, 0.15);

View file

@ -65,10 +65,12 @@ pre .prelight-num{
border-color:#fff border-color:#fff
} }
.component-group.bubblelist a,
.ui-widget-content a{ .ui-widget-content a{
color:rgb(42, 100, 150) color:rgb(42, 100, 150)
} }
.component-group.bubblelist a:hover,
.ui-widget-content a:hover{ .ui-widget-content a:hover{
color:#09a2ff color:#09a2ff
} }
@ -963,7 +965,7 @@ fieldset[disabled] .navbar-default .btn-link:focus{
background-color:#333 background-color:#333
} }
.component-group.typelist .bgcol, .component-group.bubblelist .bgcol,
.dropdown-menu{ .dropdown-menu{
background-color:#f5f1e4; background-color:#f5f1e4;
border:1px solid rgba(0, 0, 0, 0.15); border:1px solid rgba(0, 0, 0, 0.15);

View file

@ -236,6 +236,7 @@ inc_top.tmpl
border:1px solid border:1px solid
} }
.component-group.bubblelist a,
.ui-widget-content a{ .ui-widget-content a{
text-decoration:none text-decoration:none
} }
@ -3802,6 +3803,18 @@ fieldset[disabled] .navbar-default .btn-link:focus{
color:#ccc color:#ccc
} }
.component-group.bubble.last{padding:0;margin:0;border-bottom:none}
.component-group.bubblelist{min-height:30px}
.component-group.bubblelist .type{padding:6px}
.component-group.bubblelist .item{display:inline-block}
.component-group.bubblelist .item img{margin-right:4px}
.component-group.bubblelist .item.text{font-size:12px; padding-right:3px}
.component-group.bubblelist .item a{font-size:16px;padding-right:20px}
.component-group.bubblelist .item.text,
.component-group.bubblelist .item a{line-height:16px;vertical-align:middle}
.component-group.bubblelist .item a img{vertical-align:bottom;opacity:0.65;filter:alpha(opacity=65)}
.component-group.bubblelist .item a:hover img{opacity:1;filter:alpha(opacity=1)}
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus{ .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus{
color:#262626; color:#262626;
text-decoration:none; text-decoration:none;

View file

@ -23,17 +23,6 @@
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<style>
.component-group.typelist{min-height:30px}
.component-group.typelist .type{padding:6px}
.component-group.typelist .item{display:inline-block}
.component-group.typelist .item img{margin-right:4px}
.component-group.typelist .item.text{font-size:12px; padding-right:3px}
.component-group.typelist .item a{font-size:16px;padding-right:20px}
.component-group.typelist .item.text,
.component-group.typelist .item a{line-height:16px;vertical-align:middle}
</style>
<img src="$sbRoot/images/loading16#echo ('', '-dark')['dark' == $sickbeard.THEME_NAME]#.gif" height="16" width="16" style="display:none"> <img src="$sbRoot/images/loading16#echo ('', '-dark')['dark' == $sickbeard.THEME_NAME]#.gif" height="16" width="16" style="display:none">
<div id="config"> <div id="config">
<div id="config-content"> <div id="config-content">
@ -52,17 +41,17 @@
<div id="tabs-1"> <div id="tabs-1">
<div class="component-group typelist"> <div class="component-group bubblelist">
<div class="type bgcol"> <div class="type bgcol">
<span class="list"><div class="item text">Bubble links:</div> <span class="list"><div class="item text">Bubble links:</div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/emby.png"><a href="#emby" rel="noreferrer">Emby</a></div> <div class="item"><a href="#emby" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/emby.png">Emby</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/kodi.png"><a href="#kodi" rel="noreferrer">Kodi</a></div> <div class="item"><a href="#kodi" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/kodi.png">Kodi</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/plex.png"><a href="#plex" rel="noreferrer">Plex</a></div> <div class="item"><a href="#plex" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/plex.png">Plex</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/nmj.png"><a href="#nmj" rel="noreferrer">NMJ</a></div> <div class="item"><a href="#nmj" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/nmj.png">NMJ</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/nmj.png"><a href="#nmjv2" rel="noreferrer">NMJv2</a></div> <div class="item"><a href="#nmjv2" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/nmj.png">NMJv2</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/synoindex.png"><a href="#synoindexer" rel="noreferrer">Syno Indexer</a></div> <div class="item"><a href="#synoindexer" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/synoindex.png">Syno Indexer</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/synologynotifier.png"><a href="#synonotifier" rel="noreferrer">Syno Notifier</a></div> <div class="item"><a href="#synonotifier" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/synologynotifier.png">Syno Notifier</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/pytivo.png"><a href="#pytivo" rel="noreferrer">pyTivo</a></div> <div class="item"><a href="#pytivo" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/pytivo.png">pyTivo</a></div>
</span> </span>
</div> </div>
</div> </div>
@ -841,18 +830,18 @@
<div id="tabs-2"> <div id="tabs-2">
<div class="component-group typelist"> <div class="component-group bubblelist">
<div class="type bgcol"> <div class="type bgcol">
<span class="list"><div class="item text">Bubble links:</div> <span class="list"><div class="item text">Bubble links:</div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/boxcar2.png"><a href="#boxcar2" rel="noreferrer">Boxcar2</a></div> <div class="item"><a href="#boxcar2" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/boxcar2.png">Boxcar2</a></div>
#if 'PUSHALOT' in NotifierFactory().notifiers #if 'PUSHALOT' in NotifierFactory().notifiers
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/pushalot.png"><a href="#pushalot" rel="noreferrer">Pushalot</a></div> <div class="item"><a href="#pushalot" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/pushalot.png">Pushalot</a></div>
#end if #end if
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/pushbullet.png"><a href="#pushbullet" rel="noreferrer">Pushbullet</a></div> <div class="item"><a href="#pushbullet" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/pushbullet.png">Pushbullet</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/pushover.png"><a href="#pushover" rel="noreferrer">Pushover</a></div> <div class="item"><a href="#pushover" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/pushover.png">Pushover</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/growl.png"><a href="#growl" rel="noreferrer">Growl</a></div> <div class="item"><a href="#growl" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/growl.png">Growl</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/prowl.png"><a href="#prowl" rel="noreferrer">Prowl</a></div> <div class="item"><a href="#prowl" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/prowl.png">Prowl</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/libnotify.png"><a href="#libnotify" rel="noreferrer">Libnotify</a></div> <div class="item"><a href="#libnotify" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/libnotify.png">Libnotify</a></div>
</span> </span>
</div> </div>
</div> </div>
@ -1437,15 +1426,15 @@
<div id="tabs-3"> <div id="tabs-3">
<div class="component-group typelist"> <div class="component-group bubblelist">
<div class="type bgcol"> <div class="type bgcol">
<span class="list"><div class="item text">Bubble links:</div> <span class="list"><div class="item text">Bubble links:</div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/trakt.png"><a href="#trakt" rel="noreferrer">Trakt</a></div> <div class="item"><a href="#trakt" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/trakt.png">Trakt</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/slack.png"><a href="#slack" rel="noreferrer">Slack</a></div> <div class="item"><a href="#slack" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/slack.png">Slack</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/discordapp.png"><a href="#discordapp" rel="noreferrer">Discordapp</a></div> <div class="item"><a href="#discordapp" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/discordapp.png">Discordapp</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/gitter.png"><a href="#gitter" rel="noreferrer">Gitter</a></div> <div class="item"><a href="#gitter" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/gitter.png">Gitter</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/twitter.png"><a href="#twitter" rel="noreferrer">Twitter</a></div> <div class="item"><a href="#twitter" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/twitter.png">Twitter</a></div>
<div class="item"><img height="16px" src="$sbRoot/images/notifiers/email.png"><a href="#email" rel="noreferrer">Email</a></div> <div class="item"><a href="#email" rel="noreferrer"><img height="16px" src="$sbRoot/images/notifiers/email.png">Email</a></div>
</span> </span>
</div> </div>
</div> </div>

View file

@ -589,6 +589,7 @@
## ##
## ##
<div id="provider-failures"> <div id="provider-failures">
<div style="padding-bottom:10px">
#for ($check, $check_name, $check_url) in [ #for ($check, $check_name, $check_url) in [
('tvdb', 'TVDB Api', 'api.thetvdb.com'), ('thexem', 'The Xem', 'thexem.de'), ('github', 'GitHub', 'github.com'), ('tvdb', 'TVDB Api', 'api.thetvdb.com'), ('thexem', 'The Xem', 'thexem.de'), ('github', 'GitHub', 'github.com'),
] ]
@ -599,16 +600,38 @@
</span> </span>
</div> </div>
#end for #end for
</div>
#if not $provider_fails #if not $provider_fails
<p>No current provider failures. Failure stats display here when appropriate.</p> <p>No current provider failures. Failure stats display here when appropriate.</p>
#else #else
<p>When a provider cannot be contacted over a period, SickGear backs off and waits an increasing interval between each retry</p> <style>
#for $prov in $provider_fail_stats .component-group{min-height:50px}
.component-group.bubblelist{padding:0;border-bottom:none}
.component-group.bubblelist .item a{font-size:14px;padding-right:14px}
</style>
#set dev = (1, 3)[False]
#if 1 < len([$prov for $prov in $provider_fail_stats * $dev if len($prov['fails'])])
<div class="component-group bubblelist" style="margin:0 0 3px">
<div class="type bgcol">
<span class="list"><div class="item text">Bubble links:</div>
#for $n, $prov in enumerate($provider_fail_stats * $dev)
#if $len($prov['fails'])
<div class="item"><a href="#$prov['prov_id']-section-$n" rel="noreferrer"><img height="16px" src="$sbRoot/images/providers/$prov['prov_img']">$prov['name']</a></div>
#end if
#end for
</span>
</div>
</div>
#end if
<p id="bubble-after">When a provider cannot be contacted over a period, SickGear backs off and waits an increasing interval between each retry</p>
#for $n, $prov in enumerate($provider_fail_stats * $dev)
#if $len($prov['fails']) #if $len($prov['fails'])
<!-- $prov['name'] --> <!-- $prov['name'] -->
<div> <div class="component-group bubble#if $n + 1 == $len($provider_fail_stats * $dev)# last#end if#">
<div name="$prov['prov_id']-section-$n" style="text-align:left">
#set $prov_class = '<span %sstyle="vertical-align:middle">' #set $prov_class = '<span %sstyle="vertical-align:middle">'
#if not $prov['active'] #if not $prov['active']
#set $prov_class = $prov_class % 'class="grey-text" ' #set $prov_class = $prov_class % 'class="grey-text" '
@ -674,7 +697,7 @@
#end for #end for
</tbody> </tbody>
</table> </table>
<!-- /$prov['name'] --> </div><!-- /$prov['name'] -->
#end if #end if
#end for #end for
#end if #end if

View file

@ -5,13 +5,6 @@
$(document).ready(function(){ $(document).ready(function(){
var loading = '<img src="' + sbRoot + '/images/loading16' + themeSpinner + '.gif" height="16" width="16" />'; var loading = '<img src="' + sbRoot + '/images/loading16' + themeSpinner + '.gif" height="16" width="16" />';
$('.typelist').on('click', '.list .item a', function(){
$(this).closest('.component-group').after(
$('[name=' + $(this).attr('href').replace('#','') + ']').closest('.component-group')
);
return !1;
});
$('#test-growl').click(function () { $('#test-growl').click(function () {
var growlHost = $.trim($('#growl-host').val()); var growlHost = $.trim($('#growl-host').val());
var growlPassword = $.trim($('#growl-password').val()); var growlPassword = $.trim($('#growl-password').val());

View file

@ -42,4 +42,17 @@ $(document).ready(function(){
$('#NAV' + topmenu).addClass('active'); $('#NAV' + topmenu).addClass('active');
$('.dropdown-toggle').dropdownHover(); $('.dropdown-toggle').dropdownHover();
(/undefined/i.test(document.createElement('input').placeholder)) && $('body').addClass('no-placeholders'); (/undefined/i.test(document.createElement('input').placeholder)) && $('body').addClass('no-placeholders');
$('.bubblelist').on('click', '.list .item a', function(){
var bubbleAfter$ = $('#bubble-after'),
lastBubble$ = $('.bubble.last'), toBubble = $(this).attr('href').replace('#', ''),
doLast = (lastBubble$.length && toBubble === lastBubble$.find('div[name*="section"]').attr('name'));
doLast && lastBubble$.removeClass('last');
(bubbleAfter$.length && bubbleAfter$ || $(this).closest('.component-group')).after(
$('[name=' + $(this).attr('href').replace('#','') + ']').closest('.component-group')
);
doLast && $('.bubble').last().addClass('last');
return !1;
});
}); });