diff --git a/CHANGES.md b/CHANGES.md index 44c0ad46..c82dfcdd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -61,6 +61,13 @@ * Add setting "Update shows during hour" to General Config/Misc * Add max-width to prevent ui glitch on Pull request and Branch Version selectors on config/General/Advanced and change tags to html5 * Change order of some settings on Config/General/Interface/Web Interface and tweak texts +* Change overhaul UI of editShow and anime release groups, refactor and simplify code +* Change list order of option on the right of the displayShow page to be mostly inline with the order of options on editShow +* Change legend wording and text colour on the displayShow page +* Add output message if no release group results are available +* Add cleansing of text used in the processes to a add a show +* Add sorting of AniDB available group results +* Add error handling and related UI feedback to reflect result of AniDB communications [develop changelog] * Change uT params from unicode to str.format as magnet URLs worked but sending files in POST bodies failed @@ -68,6 +75,7 @@ * Fix validation of release groups when no group is detected * Fix missed html tag replacing in notifications * Add history module to pnotify lib +* Change the remove show notification to properly send the title and message parameters to PNotify ### 0.6.4 (2015-02-10 20:20:00 UTC) diff --git a/gui/slick/css/style.css b/gui/slick/css/style.css index 85699822..7f79fa44 100644 --- a/gui/slick/css/style.css +++ b/gui/slick/css/style.css @@ -950,7 +950,8 @@ div.formpaginate { } #addShowForm #blackwhitelist, -#addShowForm #blackwhitelist h4 { +#addShowForm #blackwhitelist h4, +#addShowForm #blackwhitelist p { font-size: 13px; } @@ -1372,6 +1373,17 @@ td.col-search { padding-right: 6px; padding-bottom: 1px; width: 150px; + vertical-align: top; +} +.options-on-right { + width:180px; + float: right; + vertical-align: middle; + height: 100%; +} +.options-on-right .showLegendRight { + padding-right: 6px; + padding-bottom: 1px; } .input-scene { @@ -1381,10 +1393,11 @@ td.col-search { } #editShow { - width: 700px; - padding-top: 10px; + /*width: 700px; + padding-top: 10px;*/ margin-right: auto; margin-left: auto; + padding: 15px 0 0 } /* ======================================================================= @@ -1867,6 +1880,15 @@ select .selected { line-height: 24px; } +#editShow .field-pair #SceneException h4, +#editShow .field-pair #customQuality h4 { + font-size: 13px !important; + margin-bottom: 10px +} +#editShow .field-pair #customQuality h4 { + margin-bottom:1px; +} + .testNotification { padding: 5px; margin-bottom: 10px; @@ -2293,44 +2315,59 @@ option.flag { } #Anime div.component-group-desc p { - margin-bottom: 0.4em; - margin-left: 0; - margin-right: 0; - margin-top: 0.4em; + margin: 0.4em 0; width: 95%; } +div.blackwhitelist h4 { + margin-top:0 +} div.blackwhitelist{ - float:left; - text-align: center; -} - -div.blackwhitelist input { - margin: 5px 5px; -} - -div.blackwhitelist.pool select{ - width: 300px; -} - -div.blackwhitelist.pool { - margin:5px; -} - -div.blackwhitelist.white select, div.blackwhitelist.black select { - width: 180px; -} - -div.blackwhitelist.white, div.blackwhitelist.black { - margin:5px; -} - -div.blackwhitelist span { - display: block; text-align: center; } -div.blackwhitelist.anidb, div.blackwhitelist.manual { +div.blackwhitelist.white input, +div.blackwhitelist.black input, +div.blackwhitelist.pool input { + margin: 5px 0 !important; +} +div.blackwhitelist select { + margin : 0 !important +} + +div.blackwhitelist .inuse { + margin-right: 5px; + width: 243px; + float: left +} + +div.blackwhitelist.white, +div.blackwhitelist.black { + width: 243px; +} +div.blackwhitelist.white select, +div.blackwhitelist.black select{ + margin:0; + width: 215px; +/* clear:both*/ +} +div.blackwhitelist.white select, +div.blackwhitelist.black select { + height: 110px; +} +div.blackwhitelist.pool, +div.blackwhitelist.pool select{ + width: 330px; + height: 265px; + float:right +} + +div.blackwhitelist span { + text-align: center; +} + +div#blackwhitelist, +div.blackwhitelist.manual { margin: 7px 0; } diff --git a/gui/slick/interfaces/default/config_search.tmpl b/gui/slick/interfaces/default/config_search.tmpl index 812ea942..5d43ffb0 100755 --- a/gui/slick/interfaces/default/config_search.tmpl +++ b/gui/slick/interfaces/default/config_search.tmpl @@ -110,20 +110,20 @@
diff --git a/gui/slick/interfaces/default/displayShow.tmpl b/gui/slick/interfaces/default/displayShow.tmpl index 11096eaa..1c051949 100644 --- a/gui/slick/interfaces/default/displayShow.tmpl +++ b/gui/slick/interfaces/default/displayShow.tmpl @@ -196,70 +196,69 @@
#if $show.network and $show.airs: - + #else if $show.network: - + #else if $show.airs: - + #end if - + #if $showLoc[1]: - + #else: - + #end if #set $anyQualities, $bestQualities = $Quality.splitQuality(int($show.quality)) - + - #if $show.rls_require_words: - - #end if #if $show.rls_ignore_words: - + + #end if + #if $show.rls_require_words: + #end if #if $bwl and $bwl.whitelist: - + #end if #if $bwl and $bwl.blacklist: - + #end if - - +
Originally Airs: $show.airs #if not $network_timezones.test_timeformat($show.airs) then " (invalid Timeformat) " else ""# on $show.network
Originally airs$show.airs #if not $network_timezones.test_timeformat($show.airs) then ' (invalid Timeformat) ' else ''# on $show.network
Originally Airs: $show.network
Originally airs$show.network
Originally Airs: >$show.airs #if not $network_timezones.test_timeformat($show.airs) then " (invalid Timeformat) " else ""#
Originally airs$show.airs #if not $network_timezones.test_timeformat($show.airs) then ' (invalid Timeformat) ' else ''#
Status: $show.status
Status$show.status
Location: $showLoc[0]
Location$showLoc[0]
Location: $showLoc[0] (dir is missing)
Location$showLoc[0] (dir is missing)
Quality: +
Quality #if $show.quality in $qualityPresets: $qualityPresetStrings[$show.quality] #else: #if $anyQualities: - Initial: <%=", ".join([Quality.qualityStrings[x] for x in sorted(anyQualities)])%> #if $bestQualities then "
" else ""# + Initial ... <%= ', '.join([Quality.qualityStrings[x] for x in sorted(anyQualities)])%> #if $bestQualities then "
" else ""# #end if #if $bestQualities: - Replace with: <%=", ".join([Quality.qualityStrings[x] for x in sorted(bestQualities)])%> + Replace with ... <%= ', '.join([Quality.qualityStrings[x] for x in sorted(bestQualities)])%> #end if #end if -
Scene Name:#if $show.exceptions then $exceptions_string else $show.name#
Scene name#if $show.exceptions then $exceptions_string else $show.name#
Required Words: #echo $show.rls_require_words#
Ignored Words: #echo $show.rls_ignore_words#
Ignore with any of#echo $show.rls_ignore_words#
Require one of#echo $show.rls_require_words#
Wanted Group#if len($bwl.whitelist)>1 then "s" else ""#:
Whitelist group#if len($bwl.whitelist)>1 then 's' else ''# #echo ', '.join($bwl.whitelist)#
Unwanted Group#if len($bwl.blacklist)>1 then "s" else ""#:
Blacklist group#if len($bwl.blacklist)>1 then 's' else ''# #echo ', '.join($bwl.blacklist)#
Size:$sickbeard.helpers.human(sickbeard.helpers.get_size($showLoc[0]))
Size$sickbeard.helpers.human(sickbeard.helpers.get_size($showLoc[0]))
- - - #if $sickbeard.USE_SUBTITLES - - #end if - - - - - - - +
Info Language:$show.lang
Subtitles: \"Y"
Flat Folders: \"Y"
Paused: \"Y"
Air-by-Date: \"Y"
Sports: \"Y"
Anime: \"Y"
DVD Order: \"Y"
Scene Numbering: \"Y"
+ #if $anyQualities + $bestQualities - + #end if + + + + + #if $sickbeard.USE_SUBTITLES + + #end if + + +
PausedYes' else 'no16.png
Archive First Match: \"Y"
Archive on first matchYes' else 'no16.png
Flat folder structureYes' else 'no16.png
Air by date namingYes' else 'no16.png
Use DVD orderYes' else 'no16.png
Scene numberingYes' else 'no16.png
SubtitlesYes' else 'no16.png
Show is sportsYes' else 'no16.png
Show is animeYes' else 'no16.png
Info language$show.lang
diff --git a/gui/slick/interfaces/default/editShow.tmpl b/gui/slick/interfaces/default/editShow.tmpl index 0832e8df..d6fbcc13 100644 --- a/gui/slick/interfaces/default/editShow.tmpl +++ b/gui/slick/interfaces/default/editShow.tmpl @@ -3,221 +3,303 @@ #from sickbeard import common #from sickbeard import exceptions #from sickbeard import scene_exceptions -#from sickbeard.blackandwhitelist import * -#set global $title="Edit " + $show.name -#set global $header="Edit " + $show.name +#import sickbeard.blackandwhitelist -#set global $sbPath=".." +#set global $title = 'Edit ' + $show.name +#set global $header = 'Edit ' + $show.name -#set global $topmenu="home" +#set global $sbPath = '..' +#set html_checked = ' checked="checked"' +#set html_disabled = ' disabled="disabled"' + +#set global $topmenu = 'home' #import os.path -#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl") +#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_top.tmpl') -#if $varExists('header') -

$header

-#else -

$title

-#end if - -
-
+#if $varExists('header') +

$header

+#else +

$title

+#end if -
- -Location:
-
+ + + +
+ +
+ +
+ +
#set $qualities = $common.Quality.splitQuality(int($show.quality)) #set global $anyQualities = $qualities[0] #set global $bestQualities = $qualities[1] -#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_qualityChooser.tmpl") -
+#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_qualityChooser.tmpl') #if $anyQualities + $bestQualities -Archive on first match: -
-(check this to have the episode archived after the first best match is found from your archive quality list) -
-
+
+ +
#end if +
-Scene Exception: - -
+
+ +
 
+
-
+
+ +
-
-

This will affect the episode show search on nzb and torrent provider.
- This list overrides the original name, it doesn't append to it.
-

-
- -
-

Exceptions List

- -
- -
-
-
-
-
-
+
+ +
-Info Language:
-Note: This will only affect the language of the retrieved metadata file contents and episode filenames.
-This DOES NOT allow SickGear to download non-english TV episodes!
-
+
+ +
-Flatten files (no folders):

-Paused:

-Subtitles:

+
+ +
-Scene Numbering: -
-(check this if you wish to search by scene numbering, uncheck to search by indexer numbering) -

-Air by date: -
-(check this if the show is released as Show.03.02.2010 rather than Show.S02E03) -

-Sports: -
-(check this if the show is a sporting or MMA event) -

-Anime: -
-(check this if the show is released as Show.265 rather than Show.S02E03, this show is an anime) -

-DVD Order: -
-(check this if you wish to use the DVD order instead of the Airing order) -

+
+ +
-Ignored Words:
-Results with any of these words in the title will be filtered out
-Separate words with a comma, e.g. "word1,word2,word3" -

+
+ +
-Required Words:
-Results without one of these words in the title will be filtered out
-Separate words with a comma, e.g. "word1,word2,word3" -

+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
#if $show.is_anime: - #from sickbeard.blackandwhitelist import * - #include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_blackwhitelist.tmpl") - + #import sickbeard.blackandwhitelist + #include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_blackwhitelist.tmpl') + #end if - - - + +
-#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl") +#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl') diff --git a/gui/slick/interfaces/default/home_newShow.tmpl b/gui/slick/interfaces/default/home_newShow.tmpl index 81362fe6..eb9d8a50 100644 --- a/gui/slick/interfaces/default/home_newShow.tmpl +++ b/gui/slick/interfaces/default/home_newShow.tmpl @@ -64,7 +64,7 @@
-

* SickGear supports english episodes. The language choice is used for fetching metadata and episode filenames

+

* SickGear supports english episodes. The language choice is used for fetching show data and episode filenames

#end if diff --git a/gui/slick/interfaces/default/inc_addShowOptions.tmpl b/gui/slick/interfaces/default/inc_addShowOptions.tmpl index 897e8471..e3d82c6f 100644 --- a/gui/slick/interfaces/default/inc_addShowOptions.tmpl +++ b/gui/slick/interfaces/default/inc_addShowOptions.tmpl @@ -20,6 +20,33 @@

Tip: The following options are editable later in the detail view of the show

+
+#set $qualities = $Quality.splitQuality($sickbeard.QUALITY_DEFAULT) +#set global $anyQualities = $qualities[0] +#set global $bestQualities = $qualities[1] +#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_qualityChooser.tmpl') +
+ +
+ +
+ +
+ +
+ #if $sickbeard.USE_SUBTITLES:
#end if -
- -
-
-
- -
- -#set $qualities = $Quality.splitQuality($sickbeard.QUALITY_DEFAULT) -#set global $anyQualities = $qualities[0] -#set global $bestQualities = $qualities[1] -#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_qualityChooser.tmpl") - -
+
-#from sickbeard.blackandwhitelist import * -#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_blackwhitelist.tmpl") \ No newline at end of file +#import sickbeard.blackandwhitelist +#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_blackwhitelist.tmpl') \ No newline at end of file diff --git a/gui/slick/interfaces/default/inc_blackwhitelist.tmpl b/gui/slick/interfaces/default/inc_blackwhitelist.tmpl index 0dc00c69..04430615 100644 --- a/gui/slick/interfaces/default/inc_blackwhitelist.tmpl +++ b/gui/slick/interfaces/default/inc_blackwhitelist.tmpl @@ -1,58 +1,68 @@ -
- - +
+ + -Fansub Groups: -
-

Select your preferred fansub groups from the Available Groups and add them to the Whitelist. Add groups to the Blacklist to ignore them.

-

The Whitelist is checked before the Blacklist.

-

Groups are shown as Name | Rating | Number of subbed episodes.

-

You may also add any fansub group not listed to either list manually.

-
-
-
-
-
-

Whitelist

- -
- -
-
-

Available Groups

- -
- - -
-
-

Blacklist

- -
- + Fansub groups + + +
+
+ +
+
+
+

Whitelist
Only snatch releases by group(s)

+
+ +
+ + +
+
+
+ +
+

Blacklist
Ignore releases by group(s)

+
+ +
+ + +
+
+
+
+
+

Available groups
Name (Rating) Number of subbed episodes

+ +
+
+ +
 
+
+
+ + + +
+ add a custom item to either the whitelist or blacklist +
 
+
-
-
- - - -
-
-
-
-
\ No newline at end of file + +
\ No newline at end of file diff --git a/gui/slick/interfaces/default/inc_qualityChooser.tmpl b/gui/slick/interfaces/default/inc_qualityChooser.tmpl index 8941e253..699274b7 100644 --- a/gui/slick/interfaces/default/inc_qualityChooser.tmpl +++ b/gui/slick/interfaces/default/inc_qualityChooser.tmpl @@ -26,7 +26,7 @@
-

Initial

+

Initial

#set $anyQualityList = filter(lambda x: x > $Quality.NONE, $Quality.qualityStrings) #for $curQuality in sorted($bestQualityList): diff --git a/gui/slick/js/blackwhite.js b/gui/slick/js/blackwhite.js index 19a8889f..277e77fa 100644 --- a/gui/slick/js/blackwhite.js +++ b/gui/slick/js/blackwhite.js @@ -1,54 +1,30 @@ function generate_bwlist() { - var realvalues = []; + $.each(['white', 'black'], function(i, list) { + var group_list = []; - $('#white option').each(function(i, selected) { - realvalues[i] = $(selected).val(); + $('#' + list + ' option').each(function(i, option) { + group_list.push($(option).val()); }); - $("#whitelist").val(realvalues.join(",")); - realvalues = []; - $('#black option').each(function(i, selected) { - realvalues[i] = $(selected).val(); - }); - $("#blacklist").val(realvalues.join(",")); -}; + $('#' + list + 'list').val(group_list.join(',')); + }); +} -$('#removeW').click(function() { - !$('#white option:selected').remove().appendTo('#pool'); +$('#add-white, #add-black').click(function() { + !$('#pool option:selected').remove().appendTo('#' + $(this).attr('id').replace(/add[-]/i, '')); }); -$('#addW').click(function() { - !$('#pool option:selected').remove().appendTo('#white'); +$('#remove-white, #remove-black').click(function() { + !$('#' + $(this).attr('id').replace(/remove[-]/i, '') + ' option:selected').remove().appendTo('#pool'); }); -$('#addB').click(function() { - !$('#pool option:selected').remove().appendTo('#black'); +$('#new-white, #new-black').click(function() { + var group = $('#addToPoolText').attr('value'); + if ('' != group) { + var option = $('