From 6da2eb94fc70b77b1b8b7dad6289d60dbf79bcc2 Mon Sep 17 00:00:00 2001 From: JackDandy Date: Fri, 1 Jun 2018 16:57:40 +0100 Subject: [PATCH] Add bubble links to History/Provider fails when more than one provider has failures. --- CHANGES.md | 1 + gui/slick/css/dark.css | 4 +- gui/slick/css/light.css | 4 +- gui/slick/css/style.css | 13 +++ .../default/config_notifications.tmpl | 59 +++++------ gui/slick/interfaces/default/history.tmpl | 99 ++++++++++++------- gui/slick/js/configNotifications.js | 7 -- gui/slick/js/inc_top.js | 13 +++ 8 files changed, 118 insertions(+), 82 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 43371985..a1a8f458 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,7 @@ ### 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 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 Manage/Bulk Change/Edit * Change append number of downloads to keep to the number of file(s) at Display Show diff --git a/gui/slick/css/dark.css b/gui/slick/css/dark.css index 6fd24a68..3730947d 100644 --- a/gui/slick/css/dark.css +++ b/gui/slick/css/dark.css @@ -70,10 +70,12 @@ pre .prelight-num{ border-color:#222 } +.component-group.bubblelist a, .ui-widget-content a{ color:#2d8fbf } +.component-group.bubblelist a:hover, .ui-widget-content a:hover{ color:#09a2ff } @@ -990,7 +992,7 @@ fieldset[disabled] .navbar-default .btn-link:focus{ color:#ddd } -.component-group.typelist .bgcol, +.component-group.bubblelist .bgcol, .dropdown-menu{ background-color:#333; border:1px solid rgba(0, 0, 0, 0.15); diff --git a/gui/slick/css/light.css b/gui/slick/css/light.css index 4952ae3f..3baeb8bf 100644 --- a/gui/slick/css/light.css +++ b/gui/slick/css/light.css @@ -65,10 +65,12 @@ pre .prelight-num{ border-color:#fff } +.component-group.bubblelist a, .ui-widget-content a{ color:rgb(42, 100, 150) } +.component-group.bubblelist a:hover, .ui-widget-content a:hover{ color:#09a2ff } @@ -963,7 +965,7 @@ fieldset[disabled] .navbar-default .btn-link:focus{ background-color:#333 } -.component-group.typelist .bgcol, +.component-group.bubblelist .bgcol, .dropdown-menu{ background-color:#f5f1e4; border:1px solid rgba(0, 0, 0, 0.15); diff --git a/gui/slick/css/style.css b/gui/slick/css/style.css index 9d5aa02b..52be93d0 100644 --- a/gui/slick/css/style.css +++ b/gui/slick/css/style.css @@ -236,6 +236,7 @@ inc_top.tmpl border:1px solid } +.component-group.bubblelist a, .ui-widget-content a{ text-decoration:none } @@ -3802,6 +3803,18 @@ fieldset[disabled] .navbar-default .btn-link:focus{ 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{ color:#262626; text-decoration:none; diff --git a/gui/slick/interfaces/default/config_notifications.tmpl b/gui/slick/interfaces/default/config_notifications.tmpl index 3e31b01f..e1d9b920 100644 --- a/gui/slick/interfaces/default/config_notifications.tmpl +++ b/gui/slick/interfaces/default/config_notifications.tmpl @@ -23,17 +23,6 @@

$title

#end if - -
@@ -52,17 +41,17 @@
-
+ @@ -841,18 +830,18 @@
-
+
Bubble links:
- + #if 'PUSHALOT' in NotifierFactory().notifiers - + #end if - - - - - + + + + +
@@ -1437,15 +1426,15 @@
-
+
Bubble links:
- - - - - - + + + + + +
diff --git a/gui/slick/interfaces/default/history.tmpl b/gui/slick/interfaces/default/history.tmpl index 371bd732..29910a62 100644 --- a/gui/slick/interfaces/default/history.tmpl +++ b/gui/slick/interfaces/default/history.tmpl @@ -589,57 +589,80 @@ ## ##
+
#for ($check, $check_name, $check_url) in [ ('tvdb', 'TVDB Api', 'api.thetvdb.com'), ('thexem', 'The Xem', 'thexem.de'), ('github', 'GitHub', 'github.com'), ] -
- - Test if site is up - - -
+
+ + Test if site is up + + +
#end for +
#if not $provider_fails

No current provider failures. Failure stats display here when appropriate.

#else -

When a provider cannot be contacted over a period, SickGear backs off and waits an increasing interval between each retry

- #for $prov in $provider_fail_stats + + #set dev = (1, 3)[False] + #if 1 < len([$prov for $prov in $provider_fail_stats * $dev if len($prov['fails'])]) +
+
+
Bubble links:
+ #for $n, $prov in enumerate($provider_fail_stats * $dev) + #if $len($prov['fails']) + + #end if + #end for +
+
+
+ #end if +

When a provider cannot be contacted over a period, SickGear backs off and waits an increasing interval between each retry

+ + #for $n, $prov in enumerate($provider_fail_stats * $dev) #if $len($prov['fails']) -
+
+
#set $prov_class = '' #if not $prov['active'] #set $prov_class = $prov_class % 'class="grey-text" ' #else #set $prov_class = $prov_class % '' #end if - $prov_class$prov['name'] + $prov_class$prov['name'] #if $prov['active'] #if $prov['next_try'] #set nt = $str($prov['next_try']).split('.', 2)[0][::-1].replace(':', ' m', 1).replace(':', ' h', 1)[::-1] - ... is paused until $sbdatetime.sbdatetime.sbftime($sbdatetime.sbdatetime.now() + $prov['next_try'], markup=True) (in ${nt}s) + ... is paused until $sbdatetime.sbdatetime.sbftime($sbdatetime.sbdatetime.now() + $prov['next_try'], markup=True) (in ${nt}s) #end if #else - ... is not enabled + ... is not enabled #end if - -
- - - - - - - - + + +
period of 1hrserver/timeoutnetworkno dataother
+ + + + + + + #if $prov['has_limit'] #end if - - - + + + #set $day = [] #for $fail in $prov['fails'] #set $child = True @@ -648,33 +671,33 @@ #set $child = False #end if #slurp# - + #if $fail['multirow'] #if not $child - + #else - + #end if #else - + #end if #set $blank = '-' #set $title=None #if $fail['http']['count'] #set $title=$fail['http']['code'] #end if - - - - + + + + #if $prov['has_limit'] - + #end if - + #end for - -
period of 1hrserver/timeoutnetworkno dataotherhit limit
$sbdatetime.sbdatetime.sbfdate($fail['date_time'])$sbdatetime.sbdatetime.sbfdate($fail['date_time'])$sbdatetime.sbdatetime.sbftime($fail['date_time'], markup=True)$sbdatetime.sbdatetime.sbftime($fail['date_time'], markup=True)$sbdatetime.sbdatetime.sbfdatetime($fail['date_time'], markup=True)$sbdatetime.sbdatetime.sbfdatetime($fail['date_time'], markup=True)#if $fail['http']['count']#$fail['http']['count']#else#$blank#end if# / #echo $fail['timeout'].get('count', 0) or $blank##echo ($fail['connection'].get('count', 0) + $fail['connection_timeout'].get('count', 0)) or $blank##echo $fail['nodata'].get('count', 0) or $blank##echo $fail['other'].get('count', 0) or $blank##if $fail['http']['count']#$fail['http']['count']#else#$blank#end if# / #echo $fail['timeout'].get('count', 0) or $blank##echo ($fail['connection'].get('count', 0) + $fail['connection_timeout'].get('count', 0)) or $blank##echo $fail['nodata'].get('count', 0) or $blank##echo $fail['other'].get('count', 0) or $blank##echo $fail.get('limit', {}).get('count', 0) or $blank##echo $fail.get('limit', {}).get('count', 0) or $blank#
- + + +
#end if #end for #end if diff --git a/gui/slick/js/configNotifications.js b/gui/slick/js/configNotifications.js index ae423a26..08fd90ad 100644 --- a/gui/slick/js/configNotifications.js +++ b/gui/slick/js/configNotifications.js @@ -5,13 +5,6 @@ $(document).ready(function(){ var loading = ''; - $('.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 () { var growlHost = $.trim($('#growl-host').val()); var growlPassword = $.trim($('#growl-password').val()); diff --git a/gui/slick/js/inc_top.js b/gui/slick/js/inc_top.js index 953353e8..484d5c10 100644 --- a/gui/slick/js/inc_top.js +++ b/gui/slick/js/inc_top.js @@ -42,4 +42,17 @@ $(document).ready(function(){ $('#NAV' + topmenu).addClass('active'); $('.dropdown-toggle').dropdownHover(); (/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; + }); });