Merge branch 'release/v3.0.0'

Conflicts:
	gui/slick/interfaces/default/config.tmpl
	sickbeard/__init__.py
	sickbeard/versionChecker.py
This commit is contained in:
echel0n 2014-11-20 02:21:02 -08:00
commit 36c7831992
723 changed files with 50758 additions and 14962 deletions

View File

@ -1,9 +1,93 @@
### 0.x.x (2014-11-11 xx:xx:xx UTC)
* Add Bootstrap for UI features
* Change UI to resize fluidly on different display sizes, fixes the issue where top menu items would disappear on smaller screens
* Add date formats "dd/mm/yy", "dd/mm/yyyy", "day, dd/mm/yy" and "day, dd/mm/yyyy"
* Remove imdb watchlist feature from General Configuration/"Misc" tab as it wasn't ready for prime time
* Change rename tab General Configuration/"Web Interface" to "Interface"
* Add "User Interface" section to the General Configuration/"Interface" tab
* Change combine "Date and Time" and "Theme" tab content to "User Interface" section
* Add field in Advanced setting for a custom remote name used to populate branch versions
* Change theme name "original" to "light"
* Change text wording on all UI options under General Configuration
* Change reduce over use of capitals on all General Configuration tabs
* Change streamline UI layout, mark-up and some CSS styling on General Configuration tabs
* Fix imdb and three other images rejected by IExplorer because they were corrupt. Turns out that they were .ico files renamed to either .gif or .png instead of being properly converted
* Change cleanup Subtitles Search settings text, correct quotations, use spaces for code lines, tabs for html
* Add save sorting options automatically on Show List/Layout Poster
* Change clarify description for backlog searches option on provider settings page
* Fix sort mode "Next Episode" on Show List/Layout:Poster with show statuses that are Paused, Ended, and Continuing as they were random
* Fix sort of tvrage show statuses "New" and "Returning" on Show List/Layout:Simple by changing status column text to "Continuing"
* Add dark spinner to "Add New Show" (searching indexers), "Add existing shows" (Loading Folders), Coming Eps and all config pages (when saving)
* Change Config/Notifications test buttons to stop and highlight input fields that lack required values
* Change Test Plex Media Server to Test Plex Client as it only tests the client and not the server
* Change style config_notifications to match new config_general styling
* Change style config_providers to match new config_general styling
* Change move Providers Priorities qtip options to a new Search Providers/Provider Options tab
* Remove superfish-1.4.8.js and supersubs-0.2b.js as they are no longer required with new UI
* Change overhaul Config Search Settings in line with General Configuration
* Fix error when a show folder is deleted outside of SickRage
* Change combine the delete button function into the remove button on the display show page
* Change other small UI tweaks
* Fix keyerrors on backlog overview preventing the page to load
* Fix exception raised when converting 12pm to 24hr format and handle 12am when setting file modify time (e.g. used during PP)
* Fix proxy_indexers setting not loading from config file
* Add subtitle information to the cmd show and cmd shows api output
* Remove http login requirement for API when an API key is provided
* Change API now uses Timezone setting at General Config/Interface/User Interface at relevant endpoints
* Fix changing root dirs on the mass edit page
* Add use trash (or Recycle Bin) for selected actions on General Config/Misc/Send to trash
* Add handling for when deleting a show and the show folder no longer exists
* Fix Coming Episodes/Layout Calender/View Paused and tweak its UI text
* Made all init scripts executable
* Fix invalid responses when using sickbeard.searchtvdb api command
* Fixes unicode issues during searches on newznab providers when rid mapping occur
* Fix white screen of death when trying to add a show that is already in library on Add Show/Add Trending Show page
* Add show sorting options to Add Show/Add Trending Show page
* Add handler for when Trakt returns no results for Add Show/Add Trending Show page
* Fix image links when anchor child images are not found at Trakt on Add Show/Add Trending Show page
* Add image to be used when Trakt posters are void on Add Show/Add Trending Show page
* Fix growl registration not sending sickrage an update notification registration
* Add an anonymous redirect builder for external links
* Update xbmc link to Kodi at Config Notifications
* Fix missing url for kickasstorrents in config_providers
* Fix post processing when using tvrage indexer and mediabrowser metadata generation
* Change reporting failed network_timezones.txt updates from an error to a warning
* Fix missing header and "on <missing text>" when network is none and Layout "Poster" with Sort By "Network" on coming episodes page.
* Change how the "local/network" setting is handled to address some issues
[develop changelog]
* Change improve display of progress bars in the Downloads columns of the show list page
* Change improve display of progress bars under the images in Layout Poster of the show list page
* Fix default top navbar background white-out behaviour on browsers that don't support gradients
* Change improve top navbar gradient use for greater cross browser compatibility (e.g. Safari)
* Fix dark theme divider between Season numbers on display show page
* Fix main background and border colour of logs on log page
* Fix "Subtitle Language" drop down font colour when entering text on the Subtitles Search settings
* Add confirmation dialogs back in that were missed due to new UI changes
* Fix the home page from failing to load if a show status contains nothing
* Fix and repositioned show_message on display show to use bootstrap styling
* Remove commented out html from display show accidently left in during UI changes
* Fix display issue of season tables in displayShow view / Display Specials
* Change to suppress reporting of Tornado exception error 1
* Fix progress sort direction for poster layout view on home page
* Fix invalid use of str() in the Send2Trash library for platforms other
* Fix dropdown confirm dialogs for restart and shutdown
* Fix parsing utf8 data from tvdb and tvrage
* Fix display show status and subtitle searches to use new column class names
* Fix API response header for JSON content type and the return of JSONP data
* Update PNotify to version [2.0.1]
* Change the notification popups to always show the close button.
* Fix issue where popups did not show if multiple tabs are used. Popups now queue and display when a tab is brought into focus.
* Fix missing HTML in notifications resulting in incorrect formatting.
### 0.2.1 (2014-10-22 06:41:00 UTC) ### 0.2.1 (2014-10-22 06:41:00 UTC)
[full changelog](https://github.com/SiCKRAGETV/SickRage/compare/release_0.2.0...release_0.2.1) [full changelog](https://github.com/SiCKRAGETV/SickRage/compare/release_0.2.0...release_0.2.1)
* Fix HDtorrents provider screen scraping * Fix HDtorrents provider screen scraping
### 0.2.0 (2014-10-21 12:36:50 UTC) ### 0.2.0 (2014-10-21 12:36:50 UTC)
[full changelog](https://github.com/SiCKRAGETV/SickRage/compare/release_0.1.0...release_0.2.0) [full changelog](https://github.com/SiCKRAGETV/SickRage/compare/release_0.1.0...release_0.2.0)
@ -15,8 +99,8 @@
* Add subcentre subtitle provider * Add subcentre subtitle provider
* Add return code from hardlinking error to log * Add return code from hardlinking error to log
* Fix ABD regex for certain filenames * Fix ABD regex for certain filenames
* Miscellaneous UI fixes * Change miscellaneous UI fixes
* Update Tornado webserver to 4.1dev1 and add the certifi lib dependency. * Update Tornado webserver to 4.1dev1 and add the certifi lib dependency
* Fix trending shows page from loading full size poster images * Fix trending shows page from loading full size poster images
* Add "Archive on first match" to Manage, Mass Update, Edit Selected page * Add "Archive on first match" to Manage, Mass Update, Edit Selected page
* Fix searching IPTorrentsProvider * Fix searching IPTorrentsProvider
@ -25,4 +109,4 @@
### 0.1.0 (2014-10-16 12:35:15 UTC) ### 0.1.0 (2014-10-16 12:35:15 UTC)
* Initial release * Initial release

3
HACKS.txt Normal file
View File

@ -0,0 +1,3 @@
Libs with customisations...
/tornado

View File

@ -56,7 +56,7 @@ import threading
import getopt import getopt
import sickbeard import sickbeard
from sickbeard import db, logger, network_timezones, failed_history, name_cache, versionChecker from sickbeard import db, logger, network_timezones, failed_history, name_cache
from sickbeard.tv import TVShow from sickbeard.tv import TVShow
from sickbeard.webserveInit import SRWebServer from sickbeard.webserveInit import SRWebServer
from sickbeard.databases.mainDB import MIN_DB_VERSION, MAX_DB_VERSION from sickbeard.databases.mainDB import MIN_DB_VERSION, MAX_DB_VERSION
@ -68,7 +68,6 @@ throwaway = datetime.datetime.strptime('20110101', '%Y%m%d')
signal.signal(signal.SIGINT, sickbeard.sig_handler) signal.signal(signal.SIGINT, sickbeard.sig_handler)
signal.signal(signal.SIGTERM, sickbeard.sig_handler) signal.signal(signal.SIGTERM, sickbeard.sig_handler)
class SickRage(object): class SickRage(object):
def __init__(self): def __init__(self):
# system event callback for shutdown/restart # system event callback for shutdown/restart
@ -127,8 +126,10 @@ class SickRage(object):
sickbeard.SYS_ENCODING = None sickbeard.SYS_ENCODING = None
try: try:
locale.setlocale(locale.LC_ALL, "UTF-8") locale.setlocale(locale.LC_ALL, "")
locale.setlocale(locale.LC_CTYPE, "UTF-8") except (locale.Error, IOError):
pass
try:
sickbeard.SYS_ENCODING = locale.getpreferredencoding() sickbeard.SYS_ENCODING = locale.getpreferredencoding()
except (locale.Error, IOError): except (locale.Error, IOError):
pass pass

View File

@ -1,13 +1,10 @@
2014-10-02 2014-10-02
-[done] Fix fuzzy dates on new skin
-Move the sql from the *.tmpl files -Move the sql from the *.tmpl files
-Add anidb indexer -Add anidb indexer
-Add supplemental data from anidb during postprocessing -Add supplemental data from anidb during postprocessing
-Fix grabbing non-propers as propers for certain air-by-date shows -Fix grabbing non-propers as propers for certain air-by-date shows
-[done] Allow customization of skin colours
-Add prefer torrents/usenet and allow custom delay between grabs from torrents/usenet -Add prefer torrents/usenet and allow custom delay between grabs from torrents/usenet
-Better postprocessing handling for torrents -Better postprocessing handling for torrents
-[DONE] Add global required words
2014-10-07 2014-10-07
-Add release groups/require words/ignore words to add show page -Add release groups/require words/ignore words to add show page
@ -19,4 +16,9 @@
2014-10-13 2014-10-13
-Fix broken backlog -Fix broken backlog
-Fix season searches -Fix season searches
2014-10-21
-Remove qtip from config providers and go back to tab
-Find out why superfish & supersubs js breaks provider sorting
-Ability to save poster sorting and asc/desc in config

View File

@ -23,11 +23,7 @@
margin: 0 4px; margin: 0 4px;
float: left; float: left;
} }
/*
.browserDialog.busy .ui-dialog-buttonpane {
background: url("/images/loading.gif") 10px 50% no-repeat;
}
*/
/* jquery ui autocomplete overrides to make it look more like the old autocomplete */ /* jquery ui autocomplete overrides to make it look more like the old autocomplete */
.ui-autocomplete { .ui-autocomplete {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +0,0 @@
body {
width: 100%;
padding: 0;
margin: 0;
font-size: 10px;
line-height:10px;
}
.MainMenu a, .SubMenu a { padding: 2px; font-weight: normal; }
#btnExistingShow, #btnNewShow { min-height: 150px; }
.sickbeardTable {
margin-left:1%;
margin-right:1%;
width:98%;
}
table {
margin:0;
font-size: 10px;
}
#outerWrapper { width: 98%; padding-left: 1%; padding-right: 1%; }

View File

@ -1,536 +0,0 @@
/*
* qTip2 - Pretty powerful tooltips
* http://craigsworks.com/projects/qtip2/
*
* Version: nightly
* Copyright 2009-2010 Craig Michael Thompson - http://craigsworks.com
*
* Dual licensed under MIT or GPLv2 licenses
* http://en.wikipedia.org/wiki/MIT_License
* http://en.wikipedia.org/wiki/GNU_General_Public_License
*
* Date: Thu Nov 17 12:01:03.0000000000 2011
*/
/* Core qTip styles */
.ui-tooltip, .qtip{
position: absolute;
left: -28000px;
top: -28000px;
display: none;
max-width: 280px;
min-width: 50px;
font-size: 10.5px;
line-height: 12px;
z-index: 15000;
}
/* Fluid class for determining actual width in IE */
.ui-tooltip-fluid{
display: block;
visibility: hidden;
position: static !important;
float: left !important;
}
.ui-tooltip-content{
position: relative;
padding: 5px 9px;
overflow: hidden;
border-width: 1px;
border-style: solid;
text-align: left;
word-wrap: break-word;
overflow: hidden;
}
.ui-tooltip-titlebar{
position: relative;
min-height: 14px;
padding: 5px 35px 5px 10px;
overflow: hidden;
border-width: 1px 1px 0;
border-style: solid;
font-weight: bold;
}
.ui-tooltip-titlebar + .ui-tooltip-content{ border-top-width: 0px !important; }
/*! Default close button class */
.ui-tooltip-titlebar .ui-state-default{
position: absolute;
right: 4px;
top: 50%;
margin-top: -9px;
cursor: pointer;
outline: medium none;
border-width: 1px;
border-style: solid;
}
* html .ui-tooltip-titlebar .ui-state-default{ top: 16px; } /* IE fix */
.ui-tooltip-titlebar .ui-icon,
.ui-tooltip-icon .ui-icon{
display: block;
text-indent: -1000em;
}
.ui-tooltip-icon, .ui-tooltip-icon .ui-icon{
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}
.ui-tooltip-icon .ui-icon{
width: 18px;
height: 14px;
text-align: center;
text-indent: 0;
font: normal bold 10px/13px Tahoma,sans-serif;
color: inherit;
background: transparent none no-repeat -100em -100em;
}
/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */
.ui-tooltip-focus{
}
/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */
.ui-tooltip-hover{
}
/*! Default tooltip style */
.ui-tooltip-default .ui-tooltip-titlebar,
.ui-tooltip-default .ui-tooltip-content{
border-color: #F1D031;
background-color: #FFFFA3;
color: #555;
}
.ui-tooltip-default .ui-tooltip-titlebar{
background-color: #FFEF93;
}
.ui-tooltip-default .ui-tooltip-icon{
border-color: #CCC;
background: #F1F1F1;
color: #777;
}
.ui-tooltip-default .ui-tooltip-titlebar .ui-state-hover{
border-color: #AAA;
color: #111;
}
/* Tips plugin */
.ui-tooltip .ui-tooltip-tip{
margin: 0 auto;
overflow: hidden;
z-index: 10;
}
.ui-tooltip .ui-tooltip-tip,
.ui-tooltip .ui-tooltip-tip *{
position: absolute;
line-height: 0.1px !important;
font-size: 0.1px !important;
color: #123456;
background: transparent;
border: 0px dashed transparent;
}
.ui-tooltip .ui-tooltip-tip canvas{ top: 0; left: 0; }
/*! Light tooltip style */
.ui-tooltip-light .ui-tooltip-titlebar,
.ui-tooltip-light .ui-tooltip-content{
border-color: #E2E2E2;
color: #454545;
}
.ui-tooltip-light .ui-tooltip-content{
background-color: white;
}
.ui-tooltip-light .ui-tooltip-titlebar{
background-color: #f1f1f1;
}
/*! Dark tooltip style */
.ui-tooltip-dark .ui-tooltip-titlebar,
.ui-tooltip-dark .ui-tooltip-content{
border-color: #303030;
color: #f3f3f3;
}
.ui-tooltip-dark .ui-tooltip-content{
background-color: #505050;
}
.ui-tooltip-dark .ui-tooltip-titlebar{
background-color: #404040;
}
.ui-tooltip-dark .ui-tooltip-icon{
border-color: #444;
}
.ui-tooltip-dark .ui-tooltip-titlebar .ui-state-hover{
border-color: #303030;
}
/*! Cream tooltip style */
.ui-tooltip-cream .ui-tooltip-titlebar,
.ui-tooltip-cream .ui-tooltip-content{
border-color: #F9E98E;
color: #A27D35;
}
.ui-tooltip-cream .ui-tooltip-content{
background-color: #FBF7AA;
}
.ui-tooltip-cream .ui-tooltip-titlebar{
background-color: #F0DE7D;
}
.ui-tooltip-cream .ui-state-default .ui-tooltip-icon{
background-position: -82px 0;
}
/*! Red tooltip style */
.ui-tooltip-red .ui-tooltip-titlebar,
.ui-tooltip-red .ui-tooltip-content{
border-color: #D95252;
color: #912323;
}
.ui-tooltip-red .ui-tooltip-content{
background-color: #F78B83;
}
.ui-tooltip-red .ui-tooltip-titlebar{
background-color: #F06D65;
}
.ui-tooltip-red .ui-state-default .ui-tooltip-icon{
background-position: -102px 0;
}
.ui-tooltip-red .ui-tooltip-icon{
border-color: #D95252;
}
.ui-tooltip-red .ui-tooltip-titlebar .ui-state-hover{
border-color: #D95252;
}
/*! Green tooltip style */
.ui-tooltip-green .ui-tooltip-titlebar,
.ui-tooltip-green .ui-tooltip-content{
border-color: #90D93F;
color: #3F6219;
}
.ui-tooltip-green .ui-tooltip-content{
background-color: #CAED9E;
}
.ui-tooltip-green .ui-tooltip-titlebar{
background-color: #B0DE78;
}
.ui-tooltip-green .ui-state-default .ui-tooltip-icon{
background-position: -42px 0;
}
/*! Blue tooltip style */
.ui-tooltip-blue .ui-tooltip-titlebar,
.ui-tooltip-blue .ui-tooltip-content{
border-color: #ADD9ED;
color: #5E99BD;
}
.ui-tooltip-blue .ui-tooltip-content{
background-color: #E5F6FE;
}
.ui-tooltip-blue .ui-tooltip-titlebar{
background-color: #D0E9F5;
}
.ui-tooltip-blue .ui-state-default .ui-tooltip-icon{
background-position: -2px 0;
}
/*! Add shadows to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE6+, Safari 2+ */
.ui-tooltip-shadow{
-webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
-moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
}
.ui-tooltip-shadow .ui-tooltip-titlebar,
.ui-tooltip-shadow .ui-tooltip-content{
filter: progid:DXImageTransform.Microsoft.Shadow(Color='gray', Direction=135, Strength=3);
-ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Color='gray', Direction=135, Strength=3)";
_margin-bottom: -3px; /* IE6 */
.margin-bottom: -3px; /* IE7 */
}
/*! Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
.ui-tooltip-rounded,
.ui-tooltip-rounded .ui-tooltip-content,
.ui-tooltip-tipsy,
.ui-tooltip-tipsy .ui-tooltip-content,
.ui-tooltip-youtube,
.ui-tooltip-youtube .ui-tooltip-content{
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.ui-tooltip-rounded .ui-tooltip-titlebar,
.ui-tooltip-tipsy .ui-tooltip-titlebar,
.ui-tooltip-youtube .ui-tooltip-titlebar{
-moz-border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
.ui-tooltip-rounded .ui-tooltip-titlebar + .ui-tooltip-content,
.ui-tooltip-tipsy .ui-tooltip-titlebar + .ui-tooltip-content,
.ui-tooltip-youtube .ui-tooltip-titlebar + .ui-tooltip-content{
-moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
}
/*! Youtube tooltip style */
.ui-tooltip-youtube{
-webkit-box-shadow: 0 0 3px #333;
-moz-box-shadow: 0 0 3px #333;
box-shadow: 0 0 3px #333;
}
.ui-tooltip-youtube .ui-tooltip-titlebar,
.ui-tooltip-youtube .ui-tooltip-content{
_margin-bottom: 0; /* IE6 */
.margin-bottom: 0; /* IE7 */
background: transparent;
background: rgba(0, 0, 0, 0.85);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000)";
color: white;
border-color: #CCCCCC;
}
.ui-tooltip-youtube .ui-tooltip-icon{
border-color: #222;
}
.ui-tooltip-youtube .ui-tooltip-titlebar .ui-state-hover{
border-color: #303030;
}
/* jQuery TOOLS Tooltip style */
.ui-tooltip-jtools{
background: #232323;
background: rgba(0, 0, 0, 0.7);
background-image: -moz-linear-gradient(top, #717171, #232323);
background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));
border: 2px solid #ddd;
border: 2px solid rgba(241,241,241,1);
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
-webkit-box-shadow: 0 0 12px #333;
-moz-box-shadow: 0 0 12px #333;
box-shadow: 0 0 12px #333;
}
/* IE Specific */
.ui-tooltip-jtools .ui-tooltip-titlebar{
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)";
}
.ui-tooltip-jtools .ui-tooltip-content{
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)";
}
.ui-tooltip-jtools .ui-tooltip-titlebar,
.ui-tooltip-jtools .ui-tooltip-content{
background: transparent;
color: white;
border: 0 dashed transparent;
}
.ui-tooltip-jtools .ui-tooltip-icon{
border-color: #555;
}
.ui-tooltip-jtools .ui-tooltip-titlebar .ui-state-hover{
border-color: #333;
}
/* Cluetip style */
.ui-tooltip-cluetip{
-webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
-moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
}
.ui-tooltip-cluetip .ui-tooltip-titlebar{
background-color: #87876A;
color: white;
border: 0 dashed transparent;
}
.ui-tooltip-cluetip .ui-tooltip-content{
background-color: #D9D9C2;
color: #111;
border: 0 dashed transparent;
}
.ui-tooltip-cluetip .ui-tooltip-icon{
border-color: #808064;
}
.ui-tooltip-cluetip .ui-tooltip-titlebar .ui-state-hover{
border-color: #696952;
color: #696952;
}
/* Tipsy style */
.ui-tooltip-tipsy{
border: 0;
}
.ui-tooltip-tipsy .ui-tooltip-titlebar,
.ui-tooltip-tipsy .ui-tooltip-content{
_margin-bottom: 0; /* IE6 */
.margin-bottom: 0; /* IE7 */
background: transparent;
background: rgba(0, 0, 0, .87);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#D9000000,endColorstr=#D9000000)";
color: white;
border: 0px transparent;
font-size: 11px;
font-family: 'Lucida Grande', sans-serif;
font-weight: bold;
line-height: 16px;
text-shadow: 0 1px black;
}
.ui-tooltip-tipsy .ui-tooltip-titlebar{
padding: 6px 35px 0 10;
}
.ui-tooltip-tipsy .ui-tooltip-content{
padding: 6px 10;
}
.ui-tooltip-tipsy .ui-tooltip-icon{
border-color: #222;
text-shadow: none;
}
.ui-tooltip-tipsy .ui-tooltip-titlebar .ui-state-hover{
border-color: #303030;
}
/* Tipped style */
.ui-tooltip-tipped{
}
.ui-tooltip-tipped .ui-tooltip-titlebar,
.ui-tooltip-tipped .ui-tooltip-content{
border: 3px solid #959FA9;
filter: none; -ms-filter: none;
}
.ui-tooltip-tipped .ui-tooltip-titlebar{
background: #3A79B8;
background-image: -moz-linear-gradient(top, #3A79B8, #2E629D);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)";
color: white;
font-weight: normal;
font-family: serif;
border-bottom-width: 0;
-moz-border-radius: 3px 3px 0 0;
-webkit-border-radius: 3px 3px 0 0;
border-radius: 3px 3px 0 0;
}
.ui-tooltip-tipped .ui-tooltip-content{
background-color: #F9F9F9;
color: #454545;
-moz-border-radius: 0 0 3px 3px;
-webkit-border-radius: 0 0 3px 3px;
border-radius: 0 0 3px 3px;
}
.ui-tooltip-tipped .ui-tooltip-icon{
border: 2px solid #285589;
background: #285589;
}
.ui-tooltip-tipped .ui-tooltip-icon .ui-icon{
background-color: #FBFBFB;
color: #555;
}
/* IE9 fix - removes all filters */
.ui-tooltip:not(.ie9haxors) div.ui-tooltip-content,
.ui-tooltip:not(.ie9haxors) div.ui-tooltip-titlebar{
filter: none;
-ms-filter: none;
}

6200
gui/slick/css/lib/bootstrap.css vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,855 @@
/*! jQuery UI - v1.10.4 - 2014-02-03
* http://jqueryui.com
* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.tabs.css, jquery.ui.theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=%23ffffff&bgTextureHeader=flat&bgImgOpacityHeader=0&borderColorHeader=%23aaaaaa&fcHeader=%23222222&iconColorHeader=%23222222&bgColorContent=%23dcdcdc&bgTextureContent=highlight_soft&bgImgOpacityContent=75&borderColorContent=%23aaaaaa&fcContent=%23222222&iconColorContent=%23222222&bgColorDefault=%23efefef&bgTextureDefault=highlight_soft&bgImgOpacityDefault=75&borderColorDefault=%23aaaaaa&fcDefault=%23222222&iconColorDefault=%238c291d&bgColorHover=%23dddddd&bgTextureHover=highlight_soft&bgImgOpacityHover=75&borderColorHover=%23999999&fcHover=%23222222&iconColorHover=%23222222&bgColorActive=%23dfdfdf&bgTextureActive=inset_soft&bgImgOpacityActive=75&borderColorActive=%23aaaaaa&fcActive=%23140f06&iconColorActive=%238c291d&bgColorHighlight=%23fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=%23aaaaaa&fcHighlight=%23363636&iconColorHighlight=%232e83ff&bgColorError=%23fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=%23aaaaaa&fcError=%238c291d&iconColorError=%23cd0a0a&bgColorOverlay=%23aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=35&bgColorShadow=%23000000&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=35&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px&ctl=themeroller
* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
display: none;
}
.ui-helper-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.ui-helper-reset {
margin: 0;
padding: 0;
border: 0;
outline: 0;
line-height: 1.3;
text-decoration: none;
font-size: 100%;
list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
content: "";
display: table;
border-collapse: collapse;
}
.ui-helper-clearfix:after {
clear: both;
}
.ui-helper-clearfix {
min-height: 0; /* support: IE7 */
}
.ui-helper-zfix {
width: 100%;
height: 100%;
top: 0;
left: 0;
position: absolute;
opacity: 0;
filter:Alpha(Opacity=0);
}
.ui-front {
z-index: 100;
}
/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
cursor: default !important;
}
/* Icons
----------------------------------*/
/* states and images */
.ui-icon {
display: block;
text-indent: -99999px;
overflow: hidden;
background-repeat: no-repeat;
}
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.ui-resizable {
position: relative;
}
.ui-resizable-handle {
position: absolute;
font-size: 0.1px;
display: block;
}
.ui-resizable-disabled .ui-resizable-handle,
.ui-resizable-autohide .ui-resizable-handle {
display: none;
}
.ui-resizable-n {
cursor: n-resize;
height: 7px;
width: 100%;
top: -5px;
left: 0;
}
.ui-resizable-s {
cursor: s-resize;
height: 7px;
width: 100%;
bottom: -5px;
left: 0;
}
.ui-resizable-e {
cursor: e-resize;
width: 7px;
right: -5px;
top: 0;
height: 100%;
}
.ui-resizable-w {
cursor: w-resize;
width: 7px;
left: -5px;
top: 0;
height: 100%;
}
.ui-resizable-se {
cursor: se-resize;
width: 12px;
height: 12px;
right: 1px;
bottom: 1px;
}
.ui-resizable-sw {
cursor: sw-resize;
width: 9px;
height: 9px;
left: -5px;
bottom: -5px;
}
.ui-resizable-nw {
cursor: nw-resize;
width: 9px;
height: 9px;
left: -5px;
top: -5px;
}
.ui-resizable-ne {
cursor: ne-resize;
width: 9px;
height: 9px;
right: -5px;
top: -5px;
}
.ui-selectable-helper {
position: absolute;
z-index: 100;
border: 1px dotted black;
}
.ui-autocomplete {
position: absolute;
top: 0;
left: 0;
cursor: default;
}
.ui-button {
display: inline-block;
position: relative;
padding: 0;
line-height: normal;
margin-right: .1em;
cursor: pointer;
vertical-align: middle;
text-align: center;
overflow: visible; /* removes extra width in IE */
}
.ui-button,
.ui-button:link,
.ui-button:visited,
.ui-button:hover,
.ui-button:active {
text-decoration: none;
}
/* to make room for the icon, a width needs to be set here */
.ui-button-icon-only {
width: 2.2em;
}
/* button elements seem to need a little more width */
button.ui-button-icon-only {
width: 2.4em;
}
.ui-button-icons-only {
width: 3.4em;
}
button.ui-button-icons-only {
width: 3.7em;
}
/* button text element */
.ui-button .ui-button-text {
display: block;
line-height: normal;
}
.ui-button-text-only .ui-button-text {
padding: .4em 1em;
}
.ui-button-icon-only .ui-button-text,
.ui-button-icons-only .ui-button-text {
padding: .4em;
text-indent: -9999999px;
}
.ui-button-text-icon-primary .ui-button-text,
.ui-button-text-icons .ui-button-text {
padding: .4em 1em .4em 2.1em;
}
.ui-button-text-icon-secondary .ui-button-text,
.ui-button-text-icons .ui-button-text {
padding: .4em 2.1em .4em 1em;
}
.ui-button-text-icons .ui-button-text {
padding-left: 2.1em;
padding-right: 2.1em;
}
/* no icon support for input elements, provide padding by default */
input.ui-button {
padding: .4em 1em;
}
/* button icon element(s) */
.ui-button-icon-only .ui-icon,
.ui-button-text-icon-primary .ui-icon,
.ui-button-text-icon-secondary .ui-icon,
.ui-button-text-icons .ui-icon,
.ui-button-icons-only .ui-icon {
position: absolute;
top: 50%;
margin-top: -8px;
}
.ui-button-icon-only .ui-icon {
left: 50%;
margin-left: -8px;
}
.ui-button-text-icon-primary .ui-button-icon-primary,
.ui-button-text-icons .ui-button-icon-primary,
.ui-button-icons-only .ui-button-icon-primary {
left: .5em;
}
.ui-button-text-icon-secondary .ui-button-icon-secondary,
.ui-button-text-icons .ui-button-icon-secondary,
.ui-button-icons-only .ui-button-icon-secondary {
right: .5em;
}
/* button sets */
.ui-buttonset {
margin-right: 7px;
}
.ui-buttonset .ui-button {
margin-left: 0;
margin-right: -.3em;
}
/* workarounds */
/* reset extra padding in Firefox, see h5bp.com/l */
input.ui-button::-moz-focus-inner,
button.ui-button::-moz-focus-inner {
border: 0;
padding: 0;
}
.ui-dialog {
overflow: hidden;
position: absolute;
top: 0;
left: 0;
padding: .2em;
outline: 0;
}
.ui-dialog .ui-dialog-titlebar {
padding: .4em 1em;
position: relative;
}
.ui-dialog .ui-dialog-title {
float: left;
margin: .1em 0;
white-space: nowrap;
width: 90%;
overflow: hidden;
text-overflow: ellipsis;
}
.ui-dialog .ui-dialog-titlebar-close {
position: absolute;
right: .3em;
top: 50%;
width: 20px;
margin: -10px 0 0 0;
padding: 1px;
height: 20px;
}
.ui-dialog .ui-dialog-content {
position: relative;
border: 0;
padding: .5em 1em;
background: none;
overflow: auto;
}
.ui-dialog .ui-dialog-buttonpane {
text-align: left;
border-width: 1px 0 0 0;
background-image: none;
margin-top: .5em;
padding: .3em 1em .5em .4em;
}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
float: right;
}
.ui-dialog .ui-dialog-buttonpane button {
margin: .5em .4em .5em 0;
cursor: pointer;
}
.ui-dialog .ui-resizable-se {
width: 12px;
height: 12px;
right: -5px;
bottom: -5px;
background-position: 16px 16px;
}
.ui-draggable .ui-dialog-titlebar {
cursor: move;
}
.ui-menu {
list-style: none;
padding: 2px;
margin: 0;
display: block;
outline: none;
}
.ui-menu .ui-menu {
margin-top: -3px;
position: absolute;
}
.ui-menu .ui-menu-item {
margin: 0;
padding: 0;
width: 100%;
/* support: IE10, see #8844 */
list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
}
.ui-menu .ui-menu-divider {
margin: 5px -2px 5px -2px;
height: 0;
font-size: 0;
line-height: 0;
border-width: 1px 0 0 0;
}
.ui-menu .ui-menu-item a {
text-decoration: none;
display: block;
padding: 2px .4em;
line-height: 1.5;
min-height: 0; /* support: IE7 */
font-weight: normal;
}
.ui-menu .ui-menu-item a.ui-state-focus,
.ui-menu .ui-menu-item a.ui-state-active {
font-weight: normal;
margin: -1px;
}
.ui-menu .ui-state-disabled {
font-weight: normal;
margin: .4em 0 .2em;
line-height: 1.5;
}
.ui-menu .ui-state-disabled a {
cursor: default;
}
/* icon support */
.ui-menu-icons {
position: relative;
}
.ui-menu-icons .ui-menu-item a {
position: relative;
padding-left: 2em;
}
/* left-aligned */
.ui-menu .ui-icon {
position: absolute;
top: .2em;
left: .2em;
}
/* right-aligned */
.ui-menu .ui-menu-icon {
position: static;
float: right;
}
.ui-progressbar {
height: 2em;
text-align: left;
overflow: hidden;
}
.ui-progressbar .ui-progressbar-value {
margin: -1px;
height: 100%;
}
.ui-progressbar .ui-progressbar-overlay {
/* background: url("images/animated-overlay.gif"); */
height: 100%;
filter: alpha(opacity=25);
opacity: 0.25;
}
.ui-progressbar-indeterminate .ui-progressbar-value {
background-image: none;
}
.ui-tabs {
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
padding: .2em;
}
.ui-tabs .ui-tabs-nav {
margin: 0;
padding: .2em .2em 0;
}
.ui-tabs .ui-tabs-nav li {
list-style: none;
float: left;
position: relative;
top: 0;
margin: 1px .2em 0 0;
border-bottom-width: 0;
padding: 0;
white-space: nowrap;
}
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
float: left;
padding: .5em 1em;
text-decoration: none;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
margin-bottom: -1px;
padding-bottom: 1px;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
cursor: text;
}
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
cursor: pointer;
}
.ui-tabs .ui-tabs-panel {
display: block;
border-width: 0;
background: none;
}
/* Component containers
----------------------------------*/
.ui-widget {
}
.ui-widget .ui-widget {
}
.ui-widget input,
.ui-widget select,
.ui-widget textarea,
.ui-widget button {
}
.ui-widget-content {
border: 1px solid #aaaaaa;
/* background: #dcdcdc url(images/ui-bg_highlight-soft_75_dcdcdc_1x100.png) 50% top repeat-x; */
color: #222222;
}
.ui-widget-content a {
color: #222222;
}
.ui-widget-header {
border: 1px solid #aaaaaa;
/* background: #ffffff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x; */
color: #222222;
font-weight: bold;
}
.ui-widget-header a {
color: #222222;
}
/* Interaction states
----------------------------------*/
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default {
border: 1px solid #aaaaaa;
/* background: #efefef url(images/ui-bg_highlight-soft_75_efefef_1x100.png) 50% 50% repeat-x; */
font-weight: bold;
color: #222222;
}
.ui-state-default a,
.ui-state-default a:link,
.ui-state-default a:visited {
color: #222222;
text-decoration: none;
}
.ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus {
border: 1px solid #999999;
/* background: #dddddd url(images/ui-bg_highlight-soft_75_dddddd_1x100.png) 50% 50% repeat-x; */
font-weight: bold;
color: #222222;
}
.ui-state-hover a,
.ui-state-hover a:hover,
.ui-state-hover a:link,
.ui-state-hover a:visited,
.ui-state-focus a,
.ui-state-focus a:hover,
.ui-state-focus a:link,
.ui-state-focus a:visited {
color: #222222;
text-decoration: none;
}
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active {
border: 1px solid #aaaaaa;
background: #dfdfdf url(images/ui-bg_inset-soft_75_dfdfdf_1x100.png) 50% 50% repeat-x;
font-weight: bold;
color: #140f06;
}
.ui-state-active a,
.ui-state-active a:link,
.ui-state-active a:visited {
color: #140f06;
text-decoration: none;
}
/* Interaction Cues
----------------------------------*/
.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight {
border: 1px solid #aaaaaa;
/* background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; */
color: #363636;
}
.ui-state-highlight a,
.ui-widget-content .ui-state-highlight a,
.ui-widget-header .ui-state-highlight a {
color: #363636;
}
.ui-state-error,
.ui-widget-content .ui-state-error,
.ui-widget-header .ui-state-error {
border: 1px solid #aaaaaa;
/* background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; */
color: #8c291d;
}
.ui-state-error a,
.ui-widget-content .ui-state-error a,
.ui-widget-header .ui-state-error a {
color: #8c291d;
}
.ui-state-error-text,
.ui-widget-content .ui-state-error-text,
.ui-widget-header .ui-state-error-text {
color: #8c291d;
}
.ui-priority-primary,
.ui-widget-content .ui-priority-primary,
.ui-widget-header .ui-priority-primary {
font-weight: bold;
}
.ui-priority-secondary,
.ui-widget-content .ui-priority-secondary,
.ui-widget-header .ui-priority-secondary {
opacity: .7;
filter:Alpha(Opacity=70);
font-weight: normal;
}
.ui-state-disabled,
.ui-widget-content .ui-state-disabled,
.ui-widget-header .ui-state-disabled {
opacity: .35;
filter:Alpha(Opacity=35);
background-image: none;
}
.ui-state-disabled .ui-icon {
filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
}
/* Icons
----------------------------------*/
/* states and images */
.ui-icon {
width: 16px;
height: 16px;
}
/*
.ui-icon,
.ui-widget-content .ui-icon {
background-image: url(images/ui-icons_222222_256x240.png);
}
.ui-widget-header .ui-icon {
background-image: url(images/ui-icons_222222_256x240.png);
}
.ui-state-default .ui-icon {
background-image: url(images/ui-icons_8c291d_256x240.png);
}
.ui-state-hover .ui-icon,
.ui-state-focus .ui-icon {
background-image: url(images/ui-icons_222222_256x240.png);
}
.ui-state-active .ui-icon {
background-image: url(images/ui-icons_8c291d_256x240.png);
}
.ui-state-highlight .ui-icon {
background-image: url(images/ui-icons_2e83ff_256x240.png);
}
.ui-state-error .ui-icon,
.ui-state-error-text .ui-icon {
background-image: url(images/ui-icons_cd0a0a_256x240.png);
}
*/
/* positioning */
.ui-icon-blank { background-position: 16px 16px; }
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-on { background-position: -96px -144px; }
.ui-icon-radio-off { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all,
.ui-corner-top,
.ui-corner-left,
.ui-corner-tl {
border-top-left-radius: 4px;
}
.ui-corner-all,
.ui-corner-top,
.ui-corner-right,
.ui-corner-tr {
border-top-right-radius: 4px;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-left,
.ui-corner-bl {
border-bottom-left-radius: 4px;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-right,
.ui-corner-br {
border-bottom-right-radius: 4px;
}
/* Overlays */
.ui-widget-overlay {
/* background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; */
opacity: .35;
filter: Alpha(Opacity=35);
}
.ui-widget-shadow {
margin: -8px 0 0 -8px;
padding: 8px;
/* background: #000000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x; */
opacity: .35;
filter: Alpha(Opacity=35);
border-radius: 8px;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
.ui-pnotify{top:25px;right:25px;position:absolute;height:auto;z-index:9999}html>body>.ui-pnotify{position:fixed}.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:0 2px 10px rgba(50,50,50,.5);-moz-box-shadow:0 2px 10px rgba(50,50,50,.5);box-shadow:0 2px 10px rgba(50,50,50,.5)}.ui-pnotify-container{background-position:0 0;padding:.8em;height:100%;margin:0}.ui-pnotify-sharp{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-title{display:block;margin-bottom:.4em;margin-top:0}.ui-pnotify-text{display:block}.ui-pnotify-icon,.ui-pnotify-icon span{display:block;float:left;margin-right:.2em}.ui-pnotify.stack-bottomleft,.ui-pnotify.stack-topleft{left:25px;right:auto}.ui-pnotify.stack-bottomleft,.ui-pnotify.stack-bottomright{bottom:25px;top:auto}.ui-pnotify-closer,.ui-pnotify-sticker{float:right;margin-left:.2em}

3001
gui/slick/css/light.css Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3136
gui/slick/css/style.css Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,122 +0,0 @@
/* Example tokeninput style #2: Facebook style */
ul.token-input-list-facebook {
overflow: hidden;
height: auto !important;
height: 1%;
width: auto;
border: 1px solid #8496ba;
cursor: text;
font-size: 12px;
font-family: Verdana !important;
min-height: 1px;
z-index: 999;
margin: 0 !important;
padding: 0 !important;
background-color: #fff;
list-style-type: none;
/* clear: left; */
}
ul.token-input-list-facebook li input {
border: 0 !important;
width: 100px !important;
padding: 3px 8px !important;
background-color: white;
margin: 2px 0 !important;
-webkit-appearance: caret;
}
li.token-input-token-facebook {
overflow: hidden;
height: auto !important;
height: 15px;
margin: 3px !important;
padding: 1px 3px !important;
background-color: #eff2f7;
color: #000;
cursor: default;
border: 1px solid #ccd5e4;
font-size: 11px !important;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
float: left;
white-space: nowrap;
}
li.token-input-token-facebook p {
display: inline;
padding: 0 !important;
margin: 0 !important;
}
li.token-input-token-facebook span {
color: #a6b3cf;
margin-left: 5px;
font-weight: bold;
cursor: pointer;
}
li.token-input-selected-token-facebook {
background-color: #5670a6;
border: 1px solid #3b5998;
color: #fff;
}
li.token-input-input-token-facebook {
float: left;
margin: 0;
padding: 0;
list-style-type: none;
}
div.token-input-dropdown-facebook {
position: absolute;
width: auto;
background-color: #fff;
overflow: hidden;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
cursor: default;
font-size: 11px;
font-family: Verdana;
z-index: 1;
}
div.token-input-dropdown-facebook p {
margin: 0;
padding: 5px;
font-weight: bold;
color: #777;
}
div.token-input-dropdown-facebook ul {
margin: 0;
padding: 0;
}
div.token-input-dropdown-facebook ul li {
background-color: #fff;
padding: 3px;
margin: 0;
list-style-type: none;
}
div.token-input-dropdown-facebook ul li.token-input-dropdown-item-facebook {
background-color: #fff;
}
div.token-input-dropdown-facebook ul li.token-input-dropdown-item2-facebook {
background-color: #fff;
}
div.token-input-dropdown-facebook ul li em {
font-weight: bold;
font-style: normal;
}
div.token-input-dropdown-facebook ul li.token-input-selected-dropdown-item-facebook {
background-color: #3b5998;
color: #fff;
}

View File

@ -1,204 +0,0 @@
/* Example tokeninput style #2: Mac Style */
fieldset.token-input-mac {
position: relative;
padding: 0;
margin: 5px 0;
background: #fff;
width: 400px;
border: 1px solid #A4BDEC;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
fieldset.token-input-mac.token-input-dropdown-mac {
border-radius: 10px 10px 0 0;
-moz-border-radius: 10px 10px 0 0;
-webkit-border-radius: 10px 10px 0 0;
box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25);
-moz-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25);
-webkit-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25);
}
ul.token-input-list-mac {
overflow: hidden;
height: auto !important;
height: 1%;
cursor: text;
font-size: 12px;
font-family: Verdana;
min-height: 1px;
z-index: 999;
margin: 0;
padding: 3px;
background: transparent;
}
ul.token-input-list-mac.error {
border: 1px solid #C52020;
}
ul.token-input-list-mac li {
list-style-type: none;
}
li.token-input-token-mac p {
display: inline;
padding: 0;
margin: 0;
}
li.token-input-token-mac span {
color: #a6b3cf;
margin-left: 5px;
font-weight: bold;
cursor: pointer;
}
/* TOKENS */
li.token-input-token-mac {
font-family: "Lucida Grande", Arial, serif;
font-size: 9pt;
line-height: 12pt;
overflow: hidden;
height: 16px;
margin: 3px;
padding: 0 10px;
background: none;
background-color: #dee7f8;
color: #000;
cursor: default;
border: 1px solid #a4bdec;
border-radius: 15px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
float: left;
}
li.token-input-highlighted-token-mac {
background-color: #bbcef1;
border: 1px solid #598bec;
color: #000;
}
li.token-input-selected-token-mac {
background-color: #598bec;
border: 1px solid transparent;
color: #fff;
}
li.token-input-highlighted-token-mac span.token-input-delete-token-mac {
color: #000;
}
li.token-input-selected-token-mac span.token-input-delete-token-mac {
color: #fff;
}
li.token-input-input-token-mac {
border: none;
background: transparent;
float: left;
padding: 0;
margin: 0;
}
li.token-input-input-token-mac input {
border: 0;
width: 100px;
padding: 3px;
background-color: transparent;
margin: 0;
}
div.token-input-dropdown-mac {
position: absolute;
border: 1px solid #A4BDEC;
border-top: none;
left: -1px;
right: -1px;
background-color: #fff;
overflow: hidden;
cursor: default;
font-size: 10pt;
font-family: "Lucida Grande", Arial, serif;
padding: 5px;
border-radius: 0 0 10px 10px;
-moz-border-radius: 0 0 10px 10px;
-webkit-border-radius: 0 0 10px 10px;
box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25);
-moz-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25);
-webkit-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25);
clip:rect(0px, 1000px, 1000px, -10px);
}
div.token-input-dropdown-mac p {
font-size: 8pt;
margin: 0;
padding: 0 5px;
font-style: italic;
color: #aaa;
}
div.token-input-dropdown-mac h3.token-input-dropdown-category-mac {
font-family: "Lucida Grande", Arial, serif;
font-size: 10pt;
font-weight: bold;
border: none;
padding: 0 5px;
margin: 0;
}
div.token-input-dropdown-mac ul {
margin: 0;
padding: 0;
}
div.token-input-dropdown-mac ul li {
list-style-type: none;
cursor: pointer;
background: none;
background-color: #fff;
margin: 0;
padding: 0 0 0 25px;
}
div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac {
background-color: #fff;
}
div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac.odd {
background-color: #ECF4F9;
border-radius: 15px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
}
div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac span.token-input-dropdown-item-description-mac {
float: right;
font-size: 8pt;
font-style: italic;
padding: 0 10px 0 0;
color: #999;
}
div.token-input-dropdown-mac ul li strong {
font-weight: bold;
text-decoration: underline;
font-style: none;
}
div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac,
div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac.odd {
background-color: #598bec;
color: #fff;
border-radius: 15px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
}
div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac span.token-input-dropdown-item-description-mac,
div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac.odd span.token-input-dropdown-item-description-mac {
color: #fff;
}

View File

@ -1,133 +0,0 @@
/* Example tokeninput style #1: Token vertical list*/
ul.token-input-list {
overflow: hidden;
height: auto !important;
height: 1%;
width: 273px;
cursor: text;
font-size: 10px;
font-family: Verdana;
z-index: 999;
margin: 0;
padding: 0 0 1px 0;
list-style-type: none;
/* clear: left; */
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
}
ul.token-input-list li {
list-style-type: none;
}
ul.token-input-list li input {
border: 0;
padding: 3px 4px;
background-color: white;
/* -webkit-appearance: caret; */
}
li.token-input-token {
overflow: hidden;
height: auto !important;
height: 1%;
margin: 3px;
padding: 0px 5px 0 5px;
background-color: #d0efa0;
color: #000;
font-weight: bold;
cursor: default;
display: block;
border-radius: 3px;
}
li.token-input-token img {
padding-top: 7px;
padding-right: 4px;
float: left;
}
li.token-input-token input {
padding-top: 2px !important;
padding-right: 4px !important;
float: left;
}
li.token-input-token p {
float: left;
padding: 0;
margin: 0;
line-height: 2.0 !important;
}
li.token-input-token span {
float: right;
color: #000;
cursor: pointer;
}
li.token-input-selected-token {
background-color: #08844e;
color: #fff;
}
li.token-input-selected-token span {
color: #bbb;
}
li.token-input-input-token input {
margin: 3px 3px 3px 3px !important;
}
div.token-input-dropdown {
position: absolute;
width: 273px;
background-color: #3d3d3d;
overflow: hidden;
border: 1px solid #111;
cursor: default;
font-size: 11px;
font-family: Verdana;
z-index: 1;
}
div.token-input-dropdown p {
margin: 0;
padding: 3px;
font-weight: bold;
color: #fff;
}
div.token-input-dropdown ul {
margin: 0;
padding: 0;
}
div.token-input-dropdown ul li {
background-color: #3d3d3d;
padding: 3px;
list-style-type: none;
}
div.token-input-dropdown ul li.token-input-dropdown-item {
background-color: #3d3d3d;
}
div.token-input-dropdown ul li.token-input-dropdown-item2 {
background-color: #3d3d3d;
}
div.token-input-dropdown ul li em {
font-weight: bold;
font-style: normal;
}
div.token-input-dropdown ul li.token-input-selected-dropdown-item {
background-color: #6196c2;
}
span.token-input-delete-token {
margin: 0 1px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 984 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -2,78 +2,110 @@
#import datetime #import datetime
#from sickbeard.common import * #from sickbeard.common import *
#from sickbeard import sbdatetime #from sickbeard import sbdatetime
#from sickbeard.helpers import anon_url
#set global $title="Coming Episodes" #set global $title = 'Coming Episodes'
#set global $header="Coming Episodes" #set global $header = 'Coming Episodes'
#set global $sbPath=".." #set global $sbPath = '..'
#set global $topmenu="comingEpisodes" #set global $topmenu = 'comingEpisodes'
#import os.path #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')
#set $sort = $sickbeard.COMING_EPS_SORT #set $sort = $sickbeard.COMING_EPS_SORT
<script type="text/javascript" src="$sbRoot/js/ajaxEpSearch.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/ajaxEpSearch.js?$sbPID"></script>
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<style type="text/css"> <style type="text/css">
.sort_data {display:none} #SubMenu {display:none}
#contentWrapper {padding-top:30px}
</style> </style>
<div class="h2footer align-right"> <div class="h2footer pull-right">
#if $layout != 'calendar': <span>Layout:
<b>Key:</b> <select name="layout" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;">
<span class="listing_overdue">Missed</span> <option value="$sbRoot/setComingEpsLayout/?layout=poster" #if 'poster' == $sickbeard.COMING_EPS_LAYOUT then 'selected="selected"' else ''#>Poster</option>
<span class="listing_current">Current</span> <option value="$sbRoot/setComingEpsLayout/?layout=calendar" #if 'calendar' == $sickbeard.COMING_EPS_LAYOUT then 'selected="selected"' else ''#>Calendar</option>
<span class="listing_default">Future</span> <option value="$sbRoot/setComingEpsLayout/?layout=banner" #if 'banner' == $sickbeard.COMING_EPS_LAYOUT then 'selected="selected"' else ''#>Banner</option>
<span class="listing_toofar">Distant</span> <option value="$sbRoot/setComingEpsLayout/?layout=list" #if 'list' == $sickbeard.COMING_EPS_LAYOUT then 'selected="selected"' else ''#>List</option>
#end if </select>
<a class="btn forceBacklog" href="webcal://$sbHost:$sbHttpPort/calendar"> </span>
<i class="icon-calendar icon-white"></i>Subscribe</a> &nbsp;
<!-- <span class="listing_unknown">Unknown</span> //-->
<span>Sort By:
<select name="sort" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;">
<option value="$sbRoot/setComingEpsSort/?sort=date" #if 'date' == $sickbeard.COMING_EPS_SORT then 'selected="selected"' else ''#>Date</option>
<option value="$sbRoot/setComingEpsSort/?sort=network" #if 'network' == $sickbeard.COMING_EPS_SORT then 'selected="selected"' else ''#>Network</option>
<option value="$sbRoot/setComingEpsSort/?sort=show" #if 'show' == $sickbeard.COMING_EPS_SORT then 'selected="selected"' else ''#>Show</option>
</select>
</span>
&nbsp;
<span>View Paused:
<select name="viewpaused" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;">
<option value="$sbRoot/toggleComingEpsDisplayPaused"<%= (' selected="selected"', '')[True == sickbeard.COMING_EPS_DISPLAY_PAUSED] %>>Hidden</option>
<option value="$sbRoot/toggleComingEpsDisplayPaused"<%= ('', ' selected="selected"')[True == sickbeard.COMING_EPS_DISPLAY_PAUSED] %>>Shown</option>
</select>
</span>
</div> </div>
#if $layout == 'list': <div class="key pull-right">
#if 'calendar' != $layout:
<b>Key:</b>
<span class="listing-key listing-overdue">Missed</span>
<span class="listing-key listing-current">Current</span>
<span class="listing-key listing-default">Future</span>
<span class="listing-key listing-toofar">Distant</span>
#end if
<a class="btn btn-inline forceBacklog" href="webcal://$sbHost:$sbHttpPort/calendar">
<i class="icon-calendar icon-white"></i>Subscribe</a>
</div>
<br>
#if 'list' == $layout:
<!-- start list view //--> <!-- start list view //-->
<script type="text/javascript" src="$sbRoot/js/plotTooltip.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/plotTooltip.js?$sbPID"></script>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
<!-- <!--
\$.tablesorter.addParser({ \$.tablesorter.addParser({
id: 'loadingNames', id: 'loadingNames',
is: function(s) { is: function(s) {
return false; return false
}, },
format: function(s) { format: function(s) {
if (s.indexOf('Loading...') == 0) if (0 == s.indexOf('Loading...'))
return s.replace('Loading...','000'); return s.replace('Loading...', '000')
#if not $sickbeard.SORT_ARTICLE: #if not $sickbeard.SORT_ARTICLE:
return (s || '').replace(/^(The|A|An)\s/i,''); return (s || '').replace(/^(The|A|An)\s/i, '')
#else: #else:
return (s || ''); return (s || '')
#end if #end if
}, },
type: 'text' type: 'text'
}); });
\$.tablesorter.addParser({ \$.tablesorter.addParser({
id: 'quality', id: 'quality',
is: function(s) { is: function(s) {
return false; return false
}, },
format: function(s) { format: function(s) {
return s.replace('hd1080p',5).replace('hd720p',4).replace('hd',3).replace('sd',2).replace('any',1).replace('best',0).replace('custom',7); return s.replace('hd1080p', 5).replace('hd720p', 4).replace('hd', 3).replace('sd', 2).replace('any', 1).replace('best', 0).replace('custom', 7)
}, },
type: 'numeric' type: 'numeric'
}); });
\$.tablesorter.addParser({ \$.tablesorter.addParser({
id: 'cDate', id: 'cDate',
is: function(s) { is: function(s) {
return false; return false
}, },
format: function(s) { format: function(s) {
return s; return s
}, },
type: 'numeric' type: 'numeric'
}); });
@ -84,15 +116,16 @@
#if $sort not in $sort_codes: #if $sort not in $sort_codes:
$sort = 'date' $sort = 'date'
#end if #end if
sortList = [[$sort_codes[$sort],0]];
\$("#showListTable:has(tbody tr)").tablesorter({ sortList = [[$sort_codes[$sort], 0]];
\$('#showListTable:has(tbody tr)').tablesorter({
widgets: ['stickyHeaders'], widgets: ['stickyHeaders'],
sortList: sortList, sortList: sortList,
textExtraction: { textExtraction: {
0: function(node) { return \$(node).find("span").text().toLowerCase(); }, 0: function(node) { return \$(node).find('span').text().toLowerCase() },
4: function(node) { return \$(node).find("img").attr("alt"); }, 4: function(node) { return \$(node).find('img').attr('alt') },
5: function(node) { return \$(node).find("span").text().toLowerCase(); } 5: function(node) { return \$(node).find('span').text().toLowerCase() }
}, },
headers: { headers: {
0: { sorter: 'cDate' }, 0: { sorter: 'cDate' },
@ -116,7 +149,7 @@
dateHasTime : true, dateHasTime : true,
dateFormat : '${sickbeard.DATE_PRESET}', dateFormat : '${sickbeard.DATE_PRESET}',
timeFormat : '${sickbeard.TIME_PRESET}', timeFormat : '${sickbeard.TIME_PRESET}',
trimZero : #if $sickbeard.TRIM_ZERO then "true" else "false"# trimZero : #if $sickbeard.TRIM_ZERO then 'true' else 'false'#
}); });
#end if #end if
@ -124,13 +157,13 @@
//--> //-->
</script> </script>
#set $show_div = "listing_default" #set $show_div = 'listing-default'
<input type="hidden" id="sbRoot" value="$sbRoot" /> <input type="hidden" id="sbRoot" value="$sbRoot" />
<table id="showListTable" class="sickbeardTable tablesorter seasonstyle" cellspacing="1" border="0" cellpadding="0"> <table id="showListTable" class="sickbeardTable tablesorter seasonstyle" cellspacing="1" border="0" cellpadding="0">
<thead> <thead>
<tr> <tr>
<th>Airdate</th> <th>Airdate</th>
<th>Show</th> <th>Show</th>
@ -142,108 +175,110 @@
<th>Search</th> <th>Search</th>
</tr> </tr>
</thead> </thead>
<tbody style="text-shadow:none;">
#for $cur_result in $sql_results: <tbody style="text-shadow:none;">
#set $cur_indexer = int($cur_result["indexer"])
#set $runtime = $cur_result["runtime"]
#if int($cur_result["paused"]) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED: #for $cur_result in $sql_results:
#continue #set $cur_indexer = int($cur_result['indexer'])
#end if #set $runtime = $cur_result['runtime']
#set $cur_ep_airdate = $cur_result["localtime"].date() #if int($cur_result['paused']) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
#continue
#end if
#if $runtime: #set $cur_ep_airdate = $cur_result['localtime'].date()
#set $cur_ep_enddate = $cur_result["localtime"] + datetime.timedelta(minutes=$runtime)
#if $cur_ep_enddate < $today: #if $runtime:
#set $show_div = "listing_overdue" #set $cur_ep_enddate = $cur_result['localtime'] + datetime.timedelta(minutes = $runtime)
#elif $cur_ep_airdate >= $next_week.date(): #if $cur_ep_enddate < $today:
#set $show_div = "listing_toofar" #set $show_div = 'listing-overdue'
#elif $cur_ep_airdate >= $today.date() and $cur_ep_airdate < $next_week.date(): #elif $cur_ep_airdate >= $next_week.date():
#if $cur_ep_airdate == $today.date(): #set $show_div = 'listing-toofar'
#set $show_div = "listing_current" #elif $cur_ep_airdate >= $today.date() and $cur_ep_airdate < $next_week.date():
#else: #if $cur_ep_airdate == $today.date():
#set $show_div = "listing_default" #set $show_div = 'listing-current'
#end if #else:
#set $show_div = 'listing-default'
#end if #end if
#end if #end if
#end if
<!-- start $cur_result["show_name"] //--> <!-- start $cur_result['show_name'] //-->
<tr class="$show_div"> <tr class="$show_div">
## forced to use a div to wrap airdate, the column sort went crazy with a span ## forced to use a div to wrap airdate, the column sort went crazy with a span
<td align="center" class="nowrap"> <td align="center" class="nowrap">
<div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($cur_result["localtime"]).decode($sickbeard.SYS_ENCODING)</div><span class="sort_data">$time.mktime($cur_result["localtime"].timetuple())</span> <div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($cur_result['localtime']).decode($sickbeard.SYS_ENCODING)</div><span class="sort_data">$time.mktime($cur_result['localtime'].timetuple())</span>
</td> </td>
<td class="comingtvShow"><a href="$sbRoot/home/displayShow?show=${cur_result["showid"]}">$cur_result["show_name"]</a> <td class="tvShow"><a href="$sbRoot/home/displayShow?show=${cur_result['showid']}">$cur_result['show_name']</a>
#if int($cur_result["paused"]): #if int($cur_result['paused']):
<span class="pause">[paused]</span> <span class="pause">[paused]</span>
#end if #end if
</td> </td>
<td class="nowrap" align="center"> <td class="nowrap" align="center">
<%="S%02i" % int(cur_result["season"])+"E%02i" % int(cur_result["episode"]) %> <%= 'S%02iE%02i' % (int(cur_result['season']), int(cur_result['episode'])) %>
</td> </td>
<td> <td>
#if $cur_result["description"] != "" and $cur_result["description"] != None: #if $cur_result['description']:
<img alt="" src="$sbRoot/images/info32.png" height="16" width="16" class="plotInfo" id="plot_info_<%=str(cur_result["showid"])+"_"+str(cur_result["season"])+"_"+str(cur_result["episode"])%>" style="padding-top: 7px;" /> <img alt='' src='$sbRoot/images/info32.png' height='16' width='16' class='plotInfo' id="plot_info_<%= '%s_%s_%s' % (str(cur_result['showid']), str(cur_result['season']), str(cur_result['episode'])) %>" />
#else: #else:
<img src="$sbRoot/images/info32.png" width="16" height="16" class="plotInfoNone" alt="" style="padding-top: 7px;" /> <img alt="" src="$sbRoot/images/info32.png" width="16" height="16" class="plotInfoNone" />
#end if #end if
$cur_result["name"] $cur_result['name']
</td> </td>
<td align="center"> <td align="center">
$cur_result["network"] $cur_result['network']
</td> </td>
<td align="center"> <td align="center">
#if int($cur_result["quality"]) in $qualityPresets: #if int($cur_result['quality']) in $qualityPresets:
<span class="quality $qualityPresetStrings[int($cur_result["quality"])]">$qualityPresetStrings[int($cur_result["quality"])]</span> <span class="quality $qualityPresetStrings[int($cur_result['quality'])]">$qualityPresetStrings[int($cur_result['quality'])]</span>
#else: #else:
<span class="quality Custom">Custom</span> <span class="quality Custom">Custom</span>
#end if #end if
</td> </td>
<td align="center" style="vertical-align: middle;"> <td align="center" style="vertical-align: middle;">
#if $cur_result["imdb_id"]: #if $cur_result['imdb_id']:
<a href="http://www.imdb.com/title/${cur_result["imdb_id"]}" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;" title="http://www.imdb.com/title/${cur_result["imdb_id"]}"><img alt="[imdb]" height="16" width="16" src="$sbRoot/images/imdb.png" /> <a href="<%= anon_url('http://www.imdb.com/title/', cur_result['imdb_id']) %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false" title="http://www.imdb.com/title/${cur_result['imdb_id']}"><img alt="[imdb]" height="16" width="16" src="$sbRoot/images/imdb.png" />
#end if #end if
<a href="$sickbeard.indexerApi($cur_indexer).config["show_url"]${cur_result["showid"]}" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;" title="$sickbeard.indexerApi($cur_indexer).config["show_url"]${cur_result["showid"]}"><img alt="$sickbeard.indexerApi($cur_indexer).name" height="16" width="16" src="$sbRoot/images/$sickbeard.indexerApi($cur_indexer).config["icon"]" /></a> <a href="<%= anon_url(sickbeard.indexerApi(cur_indexer).config['show_url'], cur_result['showid']) %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false" title="$sickbeard.indexerApi($cur_indexer).config['show_url']${cur_result['showid']}"><img alt="$sickbeard.indexerApi($cur_indexer).name" height="16" width="16" src="$sbRoot/images/$sickbeard.indexerApi($cur_indexer).config['icon']" /></a>
</td> </td>
<td align="center"> <td align="center">
<a href="$sbRoot/home/searchEpisode?show=${cur_result["showid"]}&amp;season=$cur_result["season"]&amp;episode=$cur_result["episode"]" title="Manual Search" id="forceUpdate-${cur_result["showid"]}" class="forceUpdate epSearch"><img alt="[search]" height="16" width="16" src="$sbRoot/images/search16.png" id="forceUpdateImage-${cur_result["showid"]}" /></a> <a href="$sbRoot/home/searchEpisode?show=${cur_result['showid']}&amp;season=$cur_result['season']&amp;episode=$cur_result['episode']" title="Manual Search" id="forceUpdate-${cur_result['showid']}" class="forceUpdate epSearch"><img alt="[search]" height="16" width="16" src="$sbRoot/images/search16.png" id="forceUpdateImage-${cur_result['showid']}" /></a>
</td> </td>
</tr> </tr>
<!-- end $cur_result["show_name"] //--> <!-- end $cur_result['show_name'] //-->
#end for #end for
</tbody> </tbody>
<tfoot> <tfoot>
<tr> <tr>
<th rowspan="1" colspan="10" align="center">&nbsp</th> <th rowspan="1" colspan="10" align="center">&nbsp</th>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>
<!-- end list view //--> <!-- end list view //-->
#else if $layout in ['banner', 'poster']: #else if $layout in ['banner', 'poster']:
<!-- start non list view //--> <!-- start non list view //-->
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
<!-- <!--
\$(document).ready(function(){ \$(document).ready(function(){
\$('#sbRoot').ajaxEpSearch({'size': 16, 'loadingImage': 'loading16.gif'}); \$('#sbRoot').ajaxEpSearch({'size': 16, 'loadingImage': 'loading16' + themeSpinner + '.gif'});
\$(".ep_summary").hide(); \$('.ep_summary').hide();
\$(".ep_summaryTrigger").click(function() { \$('.ep_summaryTrigger').click(function() {
\$(this).next(".ep_summary").slideToggle('normal', function() { \$(this).next('.ep_summary').slideToggle('normal', function() {
\$(this).prev(".ep_summaryTrigger").attr('src', function(i, src) { \$(this).prev('.ep_summaryTrigger').attr('src', function(i, src) {
return \$(this).next(".ep_summary").is(':visible') ? src.replace('plus','minus') : src.replace('minus','plus'); return \$(this).next('.ep_summary').is(':visible') ? src.replace('plus','minus') : src.replace('minus','plus')
}); });
}); });
}); });
@ -257,7 +292,7 @@
dateHasTime : true, dateHasTime : true,
dateFormat : '${sickbeard.DATE_PRESET}', dateFormat : '${sickbeard.DATE_PRESET}',
timeFormat : '${sickbeard.TIME_PRESET}', timeFormat : '${sickbeard.TIME_PRESET}',
trimZero : #if $sickbeard.TRIM_ZERO then "true" else "false"# trimZero : #if $sickbeard.TRIM_ZERO then 'true' else 'false'#
}); });
#end if #end if
@ -269,236 +304,245 @@
#set $too_late_header = False #set $too_late_header = False
#set $missed_header = False #set $missed_header = False
#set $today_header = False #set $today_header = False
#set $show_div = "ep_listing listing_default" #set $show_div = 'ep_listing listing-default'
#if $sort == "show": #if 'show' == $sort:
<br /><br /> <br /><br />
#end if #end if
#for $cur_result in $sql_results:
#set $cur_indexer = int($cur_result["indexer"])
<!-- start $cur_result["show_name"] //--> #for $cur_result in $sql_results:
#set $cur_indexer = int($cur_result['indexer'])
#if int($cur_result["paused"]) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
<!-- start $cur_result['show_name'] //-->
#if int($cur_result['paused']) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
#continue #continue
#end if #end if
#set $runtime = $cur_result["runtime"] #set $runtime = $cur_result['runtime']
#if $sort == "network": #if 'network' == $sort:
#if $cur_result["network"] and $cur_segment != $cur_result["network"]: #set $show_network = $cur_result['network'] if $cur_result['network'] else 'no network'
#if $cur_segment != $show_network:
<div class="comingepheader"> <div class="comingepheader">
<h1 class="network">$cur_result["network"]</h1> <br><h2 class="network">$show_network</h2>
#set $cur_segment = $cur_result["network"] #set $cur_segment = $cur_result['network']
#end if #end if
#set $cur_ep_airdate = $cur_result["localtime"].date() #set $cur_ep_airdate = $cur_result['localtime'].date()
#if $runtime: #if $runtime:
#set $cur_ep_enddate = $cur_result["localtime"] + datetime.timedelta(minutes=$runtime) #set $cur_ep_enddate = $cur_result['localtime'] + datetime.timedelta(minutes = $runtime)
#if $cur_ep_enddate < $today: #if $cur_ep_enddate < $today:
#set $show_div = "ep_listing listing_overdue" #set $show_div = 'ep_listing listing-overdue'
#elif $cur_ep_airdate >= $next_week.date(): #elif $cur_ep_airdate >= $next_week.date():
#set $show_div = "ep_listing listing_toofar" #set $show_div = 'ep_listing listing-toofar'
#elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date(): #elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date():
#if $cur_ep_airdate == $today.date(): #if $cur_ep_airdate == $today.date():
#set $show_div = "ep_listing listing_current" #set $show_div = 'ep_listing listing-current'
#else: #else:
#set $show_div = "ep_listing listing_default" #set $show_div = 'ep_listing listing-default'
#end if #end if
#end if #end if
#end if #end if
#elif $sort == "date": #elif 'date' == $sort:
#set $cur_ep_airdate = $cur_result["localtime"].date() #set $cur_ep_airdate = $cur_result['localtime'].date()
#if $cur_segment != $cur_ep_airdate: #if $cur_segment != $cur_ep_airdate:
#if $runtime: #if $runtime:
#set $cur_ep_enddate = $cur_result["localtime"] + datetime.timedelta(minutes=$runtime) #set $cur_ep_enddate = $cur_result['localtime'] + datetime.timedelta(minutes = $runtime)
#if $cur_ep_enddate < $today and $cur_ep_airdate != $today.date() and not $missed_header: #if $cur_ep_enddate < $today and $cur_ep_airdate != $today.date() and not $missed_header:
<div class="comingepheader"> <br /><h2 class="day">Missed</h2>
<br /><h1 class="day">Missed</h1>
#set $missed_header = True #set $missed_header = True
#elif $cur_ep_airdate >= $next_week.date() and not $too_late_header: #elif $cur_ep_airdate >= $next_week.date() and not $too_late_header:
<div class="comingepheader"> <br /><h2 class="day">Later</h2>
<br /><h1 class="day">Later</h1>
#set $too_late_header = True #set $too_late_header = True
#elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date(): #elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date():
#if $cur_ep_airdate == $today.date(): #if $cur_ep_airdate == $today.date():
<div class="comingepheader"> <br /><h2 class="day">$datetime.date.fromordinal($cur_ep_airdate.toordinal).strftime('%A').decode($sickbeard.SYS_ENCODING).capitalize() <span style="font-size: 14px; vertical-align: top;">[Today]</span></h2>
<br /><h1 class="day">$datetime.date.fromordinal($cur_ep_airdate.toordinal).strftime("%A").decode($sickbeard.SYS_ENCODING).capitalize() <span style="font-size: 12px;">[today]</span></h1>
#set $today_header = True #set $today_header = True
#else: #else:
<div class="comingepheader"> <br /><h2 class="day">$datetime.date.fromordinal($cur_ep_airdate.toordinal).strftime('%A').decode($sickbeard.SYS_ENCODING).capitalize()</h2>
<br /><h1 class="day">$datetime.date.fromordinal($cur_ep_airdate.toordinal).strftime("%A").decode($sickbeard.SYS_ENCODING).capitalize()</h1>
#end if #end if
#end if #end if
#end if #end if
#set $cur_segment = $cur_ep_airdate #set $cur_segment = $cur_ep_airdate
#end if #end if
#if $cur_ep_airdate == $today.date() and not $today_header: #if $cur_ep_airdate == $today.date() and not $today_header:
<div class="comingepheader"> <div class="comingepheader">
<br /><h1 class="day">$datetime.date.fromordinal($cur_ep_airdate.toordinal).strftime("%A").decode($sickbeard.SYS_ENCODING).capitalize() <span style="font-size: 12px;">[today]</span></h1> <br /><h2 class="day">$datetime.date.fromordinal($cur_ep_airdate.toordinal).strftime('%A').decode($sickbeard.SYS_ENCODING).capitalize() <span style="font-size: 14px; vertical-align: top;">[Today]</span></h2>
#set $today_header = True #set $today_header = True
#end if #end if
#if $runtime: #if $runtime:
#if $cur_ep_enddate < $today: #if $cur_ep_enddate < $today:
#set $show_div = "ep_listing listing_overdue" #set $show_div = 'ep_listing listing-overdue'
#elif $cur_ep_airdate >= $next_week.date(): #elif $cur_ep_airdate >= $next_week.date():
#set $show_div = "ep_listing listing_toofar" #set $show_div = 'ep_listing listing-toofar'
#elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date(): #elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date():
#if $cur_ep_airdate == $today.date(): #if $cur_ep_airdate == $today.date():
#set $show_div = "ep_listing listing_current" #set $show_div = 'ep_listing listing-current'
#else: #else:
#set $show_div = "ep_listing listing_default" #set $show_div = 'ep_listing listing-default'
#end if #end if
#end if #end if
#end if #end if
#elif $sort == "show": #elif 'show' == $sort:
#set $cur_ep_airdate = $cur_result["localtime"].date() #set $cur_ep_airdate = $cur_result['localtime'].date()
#if $runtime: #if $runtime:
#set $cur_ep_enddate = $cur_result["localtime"] + datetime.timedelta(minutes=$runtime) #set $cur_ep_enddate = $cur_result['localtime'] + datetime.timedelta(minutes = $runtime)
#if $cur_ep_enddate < $today: #if $cur_ep_enddate < $today:
#set $show_div = "ep_listing listing_overdue listingradius" #set $show_div = 'ep_listing listing-overdue listingradius'
#elif $cur_ep_airdate >= $next_week.date(): #elif $cur_ep_airdate >= $next_week.date():
#set $show_div = "ep_listing listing_toofar listingradius" #set $show_div = 'ep_listing listing-toofar listingradius'
#elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date(): #elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date():
#if $cur_ep_airdate == $today.date(): #if $cur_ep_airdate == $today.date():
#set $show_div = "ep_listing listing_current listingradius" #set $show_div = 'ep_listing listing-current listingradius'
#else: #else:
#set $show_div = "ep_listing listing_default listingradius" #set $show_div = 'ep_listing listing-default listingradius'
#end if #end if
#end if #end if
#end if #end if
#end if #end if
<div class="$show_div" id="listing_${cur_result["showid"]}"> <div class="$show_div" id="listing-${cur_result['showid']}">
<div class="tvshowDiv"> <div class="tvshowDiv">
<table width="100%" border="0" cellpadding="0" cellspacing="0"> <table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr> <tr>
<th #if $layout == 'banner' then "class=\"nobg\"" else "rowspan=\"2\""# valign="top"> <th #if 'banner' == $layout then 'class="nobg"' else 'rowspan="2"'# valign="top">
<a href="$sbRoot/home/displayShow?show=${cur_result["showid"]}"><img alt="" class="#if $layout == 'banner' then "bannerThumb" else "posterThumb"#" src="$sbRoot/showPoster/?show=${cur_result["showid"]}&amp;which=#if $layout == 'poster' then "poster_thumb" else $layout#" /></a> <a href="$sbRoot/home/displayShow?show=${cur_result['showid']}"><img alt="" class="#if 'banner' == $layout then 'bannerThumb' else 'posterThumb'#" src="$sbRoot/showPoster/?show=${cur_result['showid']}&amp;which=#if 'poster' == $layout then 'poster_thumb' else $layout#" /></a>
</th> </th>
#if $layout == 'banner': #if 'banner' == $layout:
</tr> </tr>
<tr> <tr>
#end if #end if
<td class="next_episode"> <td class="next_episode">
<div class="clearfix"> <div class="clearfix">
<h2 class="tvshowTitle"><a href="$sbRoot/home/displayShow?show=${cur_result["showid"]}">$cur_result["show_name"] <span class="tvshowTitle">
#if int($cur_result["paused"]): <a href="$sbRoot/home/displayShow?show=${cur_result['showid']}">$cur_result['show_name']
#if int($cur_result['paused']):
<span class="pause">[paused]</span> <span class="pause">[paused]</span>
#end if
</a></h2>
<span class="tvshowTitleIcons">
#if $cur_result["imdb_id"]:
<a href="http://www.imdb.com/title/${cur_result["imdb_id"]}" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;" title="http://www.imdb.com/title/${cur_result["imdb_id"]}"><img alt="[imdb]" height="16" width="16" src="$sbRoot/images/imdb.png" />
#end if #end if
<a href="$sickbeard.indexerApi($cur_indexer).config["show_url"]${cur_result["showid"]}" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;" title="$sickbeard.indexerApi($cur_indexer).config["show_url"]${cur_result["showid"]}"><img alt="$sickbeard.indexerApi($cur_indexer).name" height="16" width="16" src="$sbRoot/images/$sickbeard.indexerApi($cur_indexer).config["icon"]" /></a> </a></span>
<span><a href="$sbRoot/home/searchEpisode?show=${cur_result["showid"]}&amp;season=$cur_result["season"]&amp;episode=$cur_result["episode"]" title="Manual Search" id="forceUpdate-${cur_result["showid"]}" class="epSearch forceUpdate"><img alt="[search]" height="16" width="16" src="$sbRoot/images/search16.png" id="forceUpdateImage-${cur_result["showid"]}" /></a></span>
<span class="tvshowTitleIcons">
#if $cur_result['imdb_id']:
<a href="<%= anon_url('http://www.imdb.com/title/', cur_result['imdb_id']) %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false" title="http://www.imdb.com/title/${cur_result['imdb_id']}"><img alt="[imdb]" height="16" width="16" src="$sbRoot/images/imdb.png" />
#end if
<a href="<%= anon_url(sickbeard.indexerApi(cur_indexer).config['show_url'], cur_result['showid']) %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false" title="$sickbeard.indexerApi($cur_indexer).config['show_url']${cur_result['showid']}"><img alt="$sickbeard.indexerApi($cur_indexer).name" height="16" width="16" src="$sbRoot/images/$sickbeard.indexerApi($cur_indexer).config['icon']" /></a>
<span><a href="$sbRoot/home/searchEpisode?show=${cur_result['showid']}&amp;season=$cur_result['season']&amp;episode=$cur_result['episode']" title="Manual Search" id="forceUpdate-${cur_result['showid']}" class="epSearch forceUpdate"><img alt="[search]" height="16" width="16" src="$sbRoot/images/search16.png" id="forceUpdateImage-${cur_result['showid']}" /></a></span>
</span> </span>
</div> </div>
<span class="title">Next Episode:</span> <span><%="S%02i" % int(cur_result["season"])+"E%02i" % int(cur_result["episode"]) %> - $cur_result["name"]</span> <span class="title">Next Episode:</span> <span><%= 'S%02iE%02i' % (int(cur_result['season']), int(cur_result['episode'])) %> - $cur_result['name']</span>
<div class="clearfix"> <div class="clearfix">
<span class="title">Airs: </span><span class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($cur_result["localtime"]).decode($sickbeard.SYS_ENCODING)</span><span> on $cur_result["network"]</span> <span class="title">Airs: </span><span class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($cur_result['localtime']).decode($sickbeard.SYS_ENCODING)</span><%= ('', '<span> on %s</span>' % str(cur_result['network']))[None is not cur_result['network']] %>
</div> </div>
<div class="clearfix"> <div class="clearfix">
<span class="title">Quality:</span> <span class="title">Quality:</span>
#if int($cur_result["quality"]) in $qualityPresets: #if int($cur_result['quality']) in $qualityPresets:
<span class="quality $qualityPresetStrings[int($cur_result["quality"])]">$qualityPresetStrings[int($cur_result["quality"])]</span> <span class="quality $qualityPresetStrings[int($cur_result['quality'])]">$qualityPresetStrings[int($cur_result['quality'])]</span>
#else: #else:
<span class="quality Custom">Custom</span> <span class="quality Custom">Custom</span>
#end if #end if
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align: top;"> <td style="vertical-align: top;">
<div> <div>
#if $cur_result["description"] != "" and $cur_result["description"] != None: #if $cur_result['description']:
<span class="title" style="vertical-align:middle;">Plot:</span> <span class="title" style="vertical-align:middle;">Plot:</span>
<img class="ep_summaryTrigger" src="$sbRoot/images/plus.png" height="16" width="16" alt="" title="Toggle Summary" /><div class="ep_summary">$cur_result["description"]</div> <img class="ep_summaryTrigger" src="$sbRoot/images/plus.png" height="16" width="16" alt="" title="Toggle Summary" /><div class="ep_summary">$cur_result['description']</div>
#else: #else:
<span class="title ep_summaryTriggerNone" style="vertical-align:middle;">Plot:</span> <span class="title ep_summaryTriggerNone" style="vertical-align:middle;">Plot:</span>
<img class="ep_summaryTriggerNone" src="$sbRoot/images/plus.png" height="16" width="16" alt="" /> <img class="ep_summaryTriggerNone" src="$sbRoot/images/plus.png" height="16" width="16" alt="" />
#end if #end if
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
<!-- end $cur_result["show_name"] //--> <!-- end $cur_result['show_name'] //-->
#end for #end for
<!-- end non list view //--> <!-- end non list view //-->
#end if #end if
#if $layout == 'calendar': #if 'calendar' == $layout:
#set $today = datetime.date.today() #set $today = datetime.date.today()
#set $dates = [$today + datetime.timedelta(days=$i) for $i in range(7)] #set $dates = [$today + datetime.timedelta(days = $i) for $i in range(7)]
#set $tbl_day = 0
<br>
<br>
<div class="calendarWrapper">
<input type="hidden" id="sbRoot" value="$sbRoot" /> <input type="hidden" id="sbRoot" value="$sbRoot" />
#for $day in $dates #for $day in $dates
<table class="sickbeardTable tablesorter" cellspacing="0" border="0" cellpadding="0" style="float:left;width:146px;white-space: nowrap; table-layout: fixed; background-color:rgb(51,51,51)"> #set $tbl_day += 1
<thead><tr><th>$day.strftime("%A").decode($sickbeard.SYS_ENCODING).capitalize()</th></tr></thead> <table class="sickbeardTable tablesorter calendarTable <%= 'cal-%s' % (('even', 'odd')[1 == tbl_day % 2]) %>" cellspacing="0" border="0" cellpadding="0">
<tbody> <thead><tr><th>$day.strftime('%A').decode($sickbeard.SYS_ENCODING).capitalize()</th></tr></thead>
<tbody>
#set $day_has_show = False #set $day_has_show = False
#for $cur_result in $sql_results: #for $cur_result in $sql_results:
#set $cur_indexer = int($cur_result["indexer"]) #if int($cur_result['paused']) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
#set $runtime = $cur_result["runtime"] #continue
#set $airday = $cur_result["localtime"].date() #end if
#set $cur_indexer = int($cur_result['indexer'])
#set $runtime = $cur_result['runtime']
#set $airday = $cur_result['localtime'].date()
#if $airday == $day: #if $airday == $day:
#set $day_has_show = True #set $day_has_show = True
#set $airtime = $sbdatetime.sbdatetime.fromtimestamp($time.mktime($cur_result["localtime"].timetuple())).sbftime().decode($sickbeard.SYS_ENCODING) #set $airtime = $sbdatetime.sbdatetime.fromtimestamp($time.mktime($cur_result['localtime'].timetuple())).sbftime().decode($sickbeard.SYS_ENCODING)
#if $sickbeard.TRIM_ZERO: #if $sickbeard.TRIM_ZERO:
#set $airtime = re.sub(r"0(\d:\d\d)", r"\1", $airtime, 0, re.IGNORECASE | re.MULTILINE) #set $airtime = re.sub(r'0(\d:\d\d)', r'\1', $airtime, 0, re.IGNORECASE | re.MULTILINE)
#end if #end if
<tr> <tr>
<td style="padding:0"> <td class="calendarShow">
<div> <div class="poster">
<a title="${cur_result["show_name"]}" href="$sbRoot/home/displayShow?show=${cur_result["showid"]}"><img alt="" src="$sbRoot/showPoster/?show=${cur_result["showid"]}&amp;which=poster_thumb" width="144" style="padding-bottom: 5px;" /></a> <a title="${cur_result['show_name']}" href="$sbRoot/home/displayShow?show=${cur_result['showid']}"><img alt="" src="$sbRoot/showPoster/?show=${cur_result['showid']}&amp;which=poster_thumb" /></a>
</div> </div>
<div class="show-status" style="padding:0 5px 10px 5px"> <div class="text">
<span style="overflow: hidden; text-overflow: ellipsis; display:block"> <span class="airtime">
${airtime} on $cur_result["network"] ${airtime} on $cur_result["network"]
</span> </span>
<span style="overflow: hidden; text-overflow: ellipsis; display:block" title="$cur_result["name"]"> <span class="episode-title" title="$cur_result['name']">
<%= "S%02i" % int(cur_result["season"]) + "E%02i" % int(cur_result["episode"]) %> - $cur_result["name"] <%= 'S%02iE%02i' % (int(cur_result['season']), int(cur_result['episode'])) %> - $cur_result['name']
</span> </span>
</div> </div>
</td> <!-- end $cur_result["show_name"] //--> </td> <!-- end $cur_result['show_name'] -->
</tr> </tr>
#end if #end if
#end for #end for
#if not $day_has_show: #if not $day_has_show:
<tr><td style="padding:0"><span class="show-status" style="padding:5px 10px 10px; text-align:center">No shows for this day</span></td></tr> <tr><td class="calendarShow"><span class="show-status">No shows for this day</span></td></tr>
#end if #end if
</tbody> </tbody>
</table> </table>
#end for #end for
<!-- end calender view //--> <!-- end calender view //-->
</div>
#end if #end if
<div class="clearfix"></div>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
<!-- <!--
window.setInterval( "location.reload(true)", 600000); // Refresh every 10 minutes window.setInterval('location.reload(true)', 600000); // Refresh every 10 minutes
//--> //-->
</script> </script>
#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')

View File

@ -1,6 +1,8 @@
#import sickbeard #import sickbeard
#from sickbeard import db #from sickbeard import db
#from sickbeard.helpers import anon_url
#import os.path #import os.path
#set global $title="Configuration" #set global $title="Configuration"
#set global $header="Configuration" #set global $header="Configuration"
@ -8,7 +10,7 @@
#set global $topmenu="config"# #set global $topmenu="config"#
#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")
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
@ -27,7 +29,7 @@
##set disk_free = $disk.free / 2**30 ##set disk_free = $disk.free / 2**30
##set disk_percent_used = $disk.percent ##set disk_percent_used = $disk.percent
<div id="summary2" class="align-left"> <div id="config-content">
<table class="infoTable" cellspacing="1" border="0" cellpadding="0" width="100%"> <table class="infoTable" cellspacing="1" border="0" cellpadding="0" width="100%">
<tr><td class="infoTableHeader">SR Version: </td><td class="infoTableCell"> <tr><td class="infoTableHeader">SR Version: </td><td class="infoTableCell">
#if $sickbeard.VERSION_NOTIFY #if $sickbeard.VERSION_NOTIFY
@ -37,17 +39,17 @@
#end if #end if
<font color="red">You are using BETA software</font> <font color="red">You are using BETA software</font>
</td></tr> </td></tr>
<tr><td class="infoTableHeader">SR Config file: </td><td class="infoTableCell">$sickbeard.CONFIG_FILE</td></tr> <tr><td class="infoTableHeader">SR Config file:</td><td class="infoTableCell">$sickbeard.CONFIG_FILE</td></tr>
<tr><td class="infoTableHeader">SR Database file: </td><td class="infoTableCell">$db.dbFilename()</td></tr> <tr><td class="infoTableHeader">SR Database file:</td><td class="infoTableCell">$db.dbFilename()</td></tr>
<tr><td class="infoTableHeader">SR Cache Dir: </td><td class="infoTableCell">$sickbeard.CACHE_DIR</td></tr> <tr><td class="infoTableHeader">SR Cache Dir:</td><td class="infoTableCell">$sickbeard.CACHE_DIR</td></tr>
<tr><td class="infoTableHeader">SR Arguments: </td><td class="infoTableCell">$sickbeard.MY_ARGS</td></tr> <tr><td class="infoTableHeader">SR Arguments:</td><td class="infoTableCell">$sickbeard.MY_ARGS</td></tr>
<tr><td class="infoTableHeader">SR Web Root: </td><td class="infoTableCell">$sickbeard.WEB_ROOT</td></tr> <tr><td class="infoTableHeader">SR Web Root:</td><td class="infoTableCell">$sickbeard.WEB_ROOT</td></tr>
<tr><td class="infoTableHeader">Python Version: </td><td class="infoTableCell">$sys.version[:120]</td></tr> <tr><td class="infoTableHeader">Python Version:</td><td class="infoTableCell">$sys.version[:120]</td></tr>
<tr class="infoTableSeperator"><td class="infoTableHeader"><i class="icon16-sb"></i> Homepage </td><td><a href="http://www.sickrage.tv/" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;">http://www.sickrage.tv/</a></td></tr> <tr class="infoTableSeperator"><td class="infoTableHeader"><i class="icon16-sb"></i> Homepage</td><td class="infoTableCell"><a href="<%= anon_url('http://www.sickrage.tv/') %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;">http://www.sickrage.tv/</a></td></tr>
<tr><td class="infoTableHeader"><i class="icon16-web"></i> Forums </td><td><a href="http://sickrage.tv/forums/" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;">http://sickrage.tv/forums/</a></td></tr> <tr><td class="infoTableHeader"><i class="icon16-web"></i> Forums</td><td class="infoTableCell"><a href="<%= anon_url('http://sickrage.tv/forums/') %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;">http://sickrage.tv/forums/</a></td></tr>
<tr><td class="infoTableHeader"><i class="icon16-github"></i> Source </td><td><a href="https://github.com/SiCKRAGETV/SickRage/" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;">https://github.com/SiCKRAGETV/SickRage/</a></td></tr> <tr><td class="infoTableHeader"><i class="icon16-github"></i> Source</td><td class="infoTableCell"><a href="<%= anon_url('https://github.com/SiCKRAGETV/SickRage/') %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;">https://github.com/SiCKRAGETV/SickRage/</a></td></tr>
<tr><td class="infoTableHeader"><i class="icon16-mirc"></i> Internet Relay Chat </td><td><a href="irc://irc.freenode.net/#sickrage" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;"><i>#sickrage</i> on <i>irc.freenode.net</i></a></td></tr> <tr><td class="infoTableHeader"><i class="icon16-mirc"></i> Internet Relay Chat</td><td class="infoTableCell"><a href="irc://irc.freenode.net/#sickrage" rel="noreferrer"><i>#sickrage</i> on <i>irc.freenode.net</i></a></td></tr>
</table> </table>
</div></div> </div>
#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")

View File

@ -1,4 +1,6 @@
#import sickbeard #import sickbeard
#from sickbeard.helpers import anon_url
#set global $title="Config - Anime" #set global $title="Config - Anime"
#set global $header="Anime" #set global $header="Anime"
@ -16,9 +18,9 @@
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div id="config"> <div id="config">
<div id="config-content"> <div id="config-content">
<form id="configForm" action="saveAnime" method="post"> <form id="configForm" action="saveAnime" method="post">
<div id="config-components"> <div id="config-components">
@ -27,16 +29,17 @@
<li><a href="#core-component-group2">Look & Feel</a></li> <li><a href="#core-component-group2">Look & Feel</a></li>
</ul> </ul>
<div id="core-component-group1" class="component-group clearfix"> <div id="core-component-group1" class="tab-pane active component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3><a href="http://anidb.info" onclick="window.open(this.href, '_blank'); return false;"><img src="$sbRoot/images/providers/anidb.gif" alt="AniDB" title="AniDB" width="16" height="16" /> AniDB</a></h3> <img class="notifier-icon" src="$sbRoot/images/providers/anidb.gif" alt="AniDB" title="AniDB" width="24" height="24" />
<h3><a href="<%= anon_url('http://anidb.info') %>" onclick="window.open(this.href, '_blank'); return false;">AniDB</a></h3>
<p>AniDB is non-profit database of anime information that is freely open to the public</p> <p>AniDB is non-profit database of anime information that is freely open to the public</p>
</div> </div>
<fieldset class="component-group-list"> <fieldset class="component-group-list">
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" class="enabler" name="use_anidb" id="use_anidb" #if $sickbeard.USE_ANIDB then "checked=\"checked\"" else ""# /> <input type="checkbox" class="enabler" name="use_anidb" id="use_anidb" #if $sickbeard.USE_ANIDB then "checked=\"checked\"" else ""# />
<label class="clearfix" for="use_notifo"> <label for="use_notifo">
<span class="component-title">Enable</span> <span class="component-title">Enable</span>
<span class="component-desc">Should Sick Beard use data from AniDB?</span> <span class="component-desc">Should Sick Beard use data from AniDB?</span>
</label> </label>
@ -44,39 +47,40 @@
<div id="content_use_anidb"> <div id="content_use_anidb">
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">AniDB Username</span> <span class="component-title">AniDB Username</span>
<input type="text" name="anidb_username" id="anidb_username" value="$sickbeard.ANIDB_USERNAME" size="35" /> <input type="text" name="anidb_username" id="anidb_username" value="$sickbeard.ANIDB_USERNAME" class="form-control input-sm input350" />
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Username of your AniDB account</span> <span class="component-desc">Username of your AniDB account</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">AniDB Password</span> <span class="component-title">AniDB Password</span>
<input type="password" name="anidb_password" id="anidb_password" value="$sickbeard.ANIDB_PASSWORD" size="35" /> <input type="password" name="anidb_password" id="anidb_password" value="$sickbeard.ANIDB_PASSWORD" class="form-control input-sm input350" />
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Password of your AniDB account</span> <span class="component-desc">Password of your AniDB account</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="anidb_use_mylist" id="anidb_use_mylist" #if $sickbeard.ANIDB_USE_MYLIST then "checked=\"checked\"" else ""# /> <input type="checkbox" name="anidb_use_mylist" id="anidb_use_mylist" #if $sickbeard.ANIDB_USE_MYLIST then "checked=\"checked\"" else ""# />
<label class="nocheck clearfix"> <label>
<span class="component-title">AniDB MyList</span> <span class="component-title">AniDB MyList</span>
<span class="component-desc">Do you want to add the PostProcessed Episodes to the MyList ?</span> <span class="component-desc">Do you want to add the PostProcessed Episodes to the MyList ?</span>
</label> </label>
</div> </div>
</div> </div>
<input type="submit" class="btn" value="Save Changes" /> <input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset> </fieldset>
</div><!-- /component-group //--> </div><!-- /component-group //-->
<div id="core-component-group2" class="component-group clearfix">
<div id="core-component-group2" class="tab-pane component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Look and Feel</h3> <h3>Look and Feel</h3>
@ -84,22 +88,22 @@
<fieldset class="component-group-list"> <fieldset class="component-group-list">
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" class="enabler" name="split_home" id="split_home" #if $sickbeard.ANIME_SPLIT_HOME then "checked=\"checked\"" else ""# /> <input type="checkbox" class="enabler" name="split_home" id="split_home" #if $sickbeard.ANIME_SPLIT_HOME then "checked=\"checked\"" else ""# />
<label class="clearfix" for="use_notifo"> <label for="use_notifo">
<span class="component-title">Split show lists</span> <span class="component-title">Split show lists</span>
<span class="component-desc">Separate anime and normal shows in groups</span> <span class="component-desc">Separate anime and normal shows in groups</span>
</label> </label>
</div> </div>
<input type="submit" class="btn" value="Save Changes" /> <input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset> </fieldset>
</div><!-- /component-group //--> </div><!-- /component-group //-->
<br/><input type="submit" class="btn" value="Save Changes" /><br/>
<br/><input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</div><!-- /config-components //--> </div><!-- /config-components //-->
</form> </form>
</div>
</div>
</div></div></div>
<div class="clearfix"></div>
#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")

View File

@ -16,7 +16,7 @@
#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")
<script type="text/javascript" src="$sbRoot/js/configBackupRestore.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/configBackupRestore.js?$sbPID"></script>
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
@ -31,9 +31,9 @@
<script type="text/javascript" src="$sbRoot/js/config.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/config.js?$sbPID"></script>
<div id="config"> <div id="config">
<div id="config-content"> <div id="config-content">
<form name="configForm" method="post" action="backuprestore" style="line-height: 44px"> <form name="configForm" method="post" action="backuprestore">
<div id="config-components"> <div id="config-components">
<ul> <ul>
<li><a href="#core-component-group1">Backup</a></li> <li><a href="#core-component-group1">Backup</a></li>
@ -46,12 +46,21 @@
<p><b>Backup your main database file and config.</b></p> <p><b>Backup your main database file and config.</b></p>
</div> </div>
<b>Select the folder you wish to save your backup file to:</b> <fieldset class="component-group-list">
<br/> <div class="field-pair">
<input type="text" name="backupDir" id="backupDir" size="50" /><br/> Select the folder you wish to save your backup file to:
<br/>
<div class="Backup" id="Backup-result"></div> <br/><br/>
<input class="btn" type="button" value="Backup" id="Backup" />
<input type="text" name="backupDir" id="backupDir" class="form-control input-sm input350" />
<input class="btn btn-inline" type="button" value="Backup" id="Backup" />
<br/>
</div>
<div class="Backup" id="Backup-result"></div>
</fieldset>
</div><!-- /component-group1 //--> </div><!-- /component-group1 //-->
<div id="core-component-group2" class="component-group clearfix"> <div id="core-component-group2" class="component-group clearfix">
@ -60,16 +69,25 @@
<p><b>Restore your main database file and config.</b></p> <p><b>Restore your main database file and config.</b></p>
</div> </div>
<b>Select the backup file you wish to restore:</b> <fieldset class="component-group-list">
<br/> <div class="field-pair">
<input type="text" name="backupFile" id="backupFile" size="50" /><br/> Select the backup file you wish to restore:
<br/>
<div class="Restore" id="Restore-result"></div> <br/><br/>
<input class="btn" type="button" value="Restore" id="Restore" />
<input type="text" name="backupFile" id="backupFile" class="form-control input-sm input350" />
<input class="btn btn-inline" type="button" value="Restore" id="Restore" />
<br/>
</div>
<div class="Restore" id="Restore-result"></div>
</fieldset>
</div><!-- /component-group2 //--> </div><!-- /component-group2 //-->
</div><!-- /config-components --> </div><!-- /config-components -->
</form> </form>
</div></div></div> </div>
</div>
<div class="clearfix"></div> <div class="clearfix"></div>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -29,12 +29,12 @@
<div id="config-components"> <div id="config-components">
<ul> <ul>
<li><a href="#core-component-group3">Post-Processing</a></li> <li><a href="#core-component-group1">Post-Processing</a></li>
<li><a href="#core-component-group4">Episode Naming</a></li> <li><a href="#core-component-group2">Episode Naming</a></li>
<li><a href="#core-component-group2">Metadata</a></li> <li><a href="#core-component-group3">Metadata</a></li>
</ul> </ul>
<div id="core-component-group3" class="component-group clearfix"> <div id="core-component-group1" class="component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Post-Processing</h3> <h3>Post-Processing</h3>
@ -43,29 +43,29 @@
<fieldset class="component-group-list"> <fieldset class="component-group-list">
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix" for="tv_download_dir"> <label class="nocheck" for="tv_download_dir">
<span class="component-title">TV Download Dir</span> <span class="component-title">TV Download Dir</span>
<input type="text" name="tv_download_dir" id="tv_download_dir" value="$sickbeard.TV_DOWNLOAD_DIR" size="35" /> <input type="text" name="tv_download_dir" id="tv_download_dir" value="$sickbeard.TV_DOWNLOAD_DIR" class="form-control input-sm input350" />
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">The folder where your download client puts TV downloads.</span> <span class="component-desc">The folder where your download client puts TV downloads.</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Use only if not using SABnzbd+ post processing.</span> <span class="component-desc"><b>NOTE:</b> Use only if not using SABnzbd+ post processing.</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Or if SABnzbd+ and SickRage are on different PCs.</span> <span class="component-desc">Or if SABnzbd+ and SickRage are on different PCs.</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix" for="process_method"> <label class="nocheck" for="process_method">
<span class="component-title">Process Episode Method:</span> <span class="component-title">Process Episode Method:</span>
<span class="component-desc"> <span class="component-desc">
<select name="process_method" id="process_method" class="input-medium" > <select name="process_method" id="process_method" class="form-control input-sm">
#set $process_method_text = {'copy': "Copy", 'move': "Move", 'hardlink': "Hard Link", 'symlink' : "Symbolic Link"} #set $process_method_text = {'copy': "Copy", 'move': "Move", 'hardlink': "Hard Link", 'symlink' : "Symbolic Link"}
#for $curAction in ('copy', 'move', 'hardlink', 'symlink'): #for $curAction in ('copy', 'move', 'hardlink', 'symlink'):
#if $sickbeard.PROCESS_METHOD == $curAction: #if $sickbeard.PROCESS_METHOD == $curAction:
@ -78,32 +78,32 @@
</select> </select>
</span> </span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">What method should be used to put file in the TV directory?</span> <span class="component-desc">What method should be used to put file in the TV directory?</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="skip_removed_files" id="skip_removed_files" #if $sickbeard.SKIP_REMOVED_FILES == True then "checked=\"checked\"" else ""# /> <input type="checkbox" name="skip_removed_files" id="skip_removed_files" #if $sickbeard.SKIP_REMOVED_FILES == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="skip_removed_files"> <label for="skip_removed_files">
<span class="component-title">Skip Remove Detection</span> <span class="component-title">Skip Remove Detection</span>
<span class="component-desc">Skip detection of removed files, so they don't get set to ignored?</span> <span class="component-desc">Skip detection of removed files, so they don't get set to ignored?</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> This may mean SickRage misses renames as well</span> <span class="component-desc"><b>NOTE:</b> This may mean SickRage misses renames as well</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">Extra Scripts</span> <span class="component-title">Extra Scripts</span>
<input type="text" name="extra_scripts" value="<%='|'.join(sickbeard.EXTRA_SCRIPTS)%>" size="35" /> <input type="text" name="extra_scripts" value="<%='|'.join(sickbeard.EXTRA_SCRIPTS)%>" class="form-control input-sm input350" />
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Additional scripts separated by <b>|</b>.</span> <span class="component-desc">Additional scripts separated by <b>|</b>.</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Scripts are called after SickRage's own post-processing.</span> <span class="component-desc"><b>NOTE:</b> Scripts are called after SickRage's own post-processing.</span>
</label> </label>
@ -111,7 +111,7 @@
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="move_associated_files" id="move_associated_files" #if $sickbeard.MOVE_ASSOCIATED_FILES == True then "checked=\"checked\"" else ""# /> <input type="checkbox" name="move_associated_files" id="move_associated_files" #if $sickbeard.MOVE_ASSOCIATED_FILES == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="move_associated_files"> <label for="move_associated_files">
<span class="component-title">Move Associated Files</span> <span class="component-title">Move Associated Files</span>
<span class="component-desc">Move srr/srt/sfv/etc files with the episode when processed?</span> <span class="component-desc">Move srr/srt/sfv/etc files with the episode when processed?</span>
</label> </label>
@ -119,7 +119,7 @@
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="postpone_if_sync_files" id="postpone_if_sync_files" #if $sickbeard.POSTPONE_IF_SYNC_FILES == True then "checked=\"checked\"" else ""# /> <input type="checkbox" name="postpone_if_sync_files" id="postpone_if_sync_files" #if $sickbeard.POSTPONE_IF_SYNC_FILES == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="postpone_if_sync_files"> <label for="postpone_if_sync_files">
<span class="component-title">Postpone post processing</span> <span class="component-title">Postpone post processing</span>
<span class="component-desc">if !sync files are present in the TV download dir</span> <span class="component-desc">if !sync files are present in the TV download dir</span>
</label> </label>
@ -127,7 +127,7 @@
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="nfo_rename" id="nfo_rename" #if $sickbeard.NFO_RENAME == True then "checked=\"checked\"" else ""# /> <input type="checkbox" name="nfo_rename" id="nfo_rename" #if $sickbeard.NFO_RENAME == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="nfo_rename"> <label for="nfo_rename">
<span class="component-title">Rename .nfo file</span> <span class="component-title">Rename .nfo file</span>
<span class="component-desc">Rename the original .nfo file to .nfo-orig to avoid conflicts?</span> <span class="component-desc">Rename the original .nfo file to .nfo-orig to avoid conflicts?</span>
</label> </label>
@ -135,7 +135,7 @@
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="rename_episodes" id="rename_episodes" #if $sickbeard.RENAME_EPISODES == True then "checked=\"checked\"" else ""# /> <input type="checkbox" name="rename_episodes" id="rename_episodes" #if $sickbeard.RENAME_EPISODES == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="rename_episodes"> <label for="rename_episodes">
<span class="component-title">Rename Episodes</span> <span class="component-title">Rename Episodes</span>
<span class="component-desc">Rename episode using the Episode Naming settings?</span> <span class="component-desc">Rename episode using the Episode Naming settings?</span>
</label> </label>
@ -143,11 +143,11 @@
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="airdate_episodes" id="airdate_episodes" #if $sickbeard.AIRDATE_EPISODES == True then "checked=\"checked\"" else ""# /> <input type="checkbox" name="airdate_episodes" id="airdate_episodes" #if $sickbeard.AIRDATE_EPISODES == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="airdate_episodes"> <label for="airdate_episodes">
<span class="component-title">Change File Date</span> <span class="component-title">Change File Date</span>
<span class="component-desc">Set last modified filedate to the date that the episode aired?</span> <span class="component-desc">Set last modified filedate to the date that the episode aired?</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Some systems may ignore this feature.</span> <span class="component-desc"><b>NOTE:</b> Some systems may ignore this feature.</span>
</label> </label>
@ -155,26 +155,26 @@
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="process_automatically" id="process_automatically" #if $sickbeard.PROCESS_AUTOMATICALLY == True then "checked=\"checked\"" else ""# /> <input type="checkbox" name="process_automatically" id="process_automatically" #if $sickbeard.PROCESS_AUTOMATICALLY == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="process_automatically"> <label for="process_automatically">
<span class="component-title">Scan and Process</span> <span class="component-title">Scan and Process</span>
<span class="component-desc">Scan and post-process any files in your <i>TV Download Dir</i>?</span> <span class="component-desc">Scan and post-process any files in your <i>TV Download Dir</i>?</span>
</label> </label>
<label class="nocheck clearfix" for="process_automatically"> <label class="nocheck" for="process_automatically">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Do not use if you use PostProcesing external script</span> <span class="component-desc"><b>NOTE:</b> Do not use if you use PostProcesing external script</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">eg. NZBMedia w/ NZBGET, sabToSickbeard w/ SABnzbd+!</span> <span class="component-desc">eg. NZBMedia w/ NZBGET, sabToSickbeard w/ SABnzbd+!</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">Auto Post-Processing Frequency</span> <span class="component-title">Auto Post-Processing Frequency</span>
<input type="text" name="autopostprocesser_frequency" id="autopostprocesser_frequency" value="$sickbeard.AUTOPOSTPROCESSER_FREQUENCY" size="5" /> <input type="text" name="autopostprocesser_frequency" id="autopostprocesser_frequency" value="$sickbeard.AUTOPOSTPROCESSER_FREQUENCY" class="form-control input-sm input75" />
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Time in minutes to check for new files to auto post-process (eg. 10)</span> <span class="component-desc">Time in minutes to check for new files to auto post-process (eg. 10)</span>
</label> </label>
@ -182,11 +182,11 @@
<div class="field-pair"> <div class="field-pair">
<input id="unpack" type="checkbox" name="unpack" #if $sickbeard.UNPACK == True then "checked=\"checked\"" else ""# /> <input id="unpack" type="checkbox" name="unpack" #if $sickbeard.UNPACK == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="unpack"> <label for="unpack">
<span class="component-title">Unpack</span> <span class="component-title">Unpack</span>
<span class="component-desc">Unpack any TV releases in your <i>TV Download Dir</i>?</span> <span class="component-desc">Unpack any TV releases in your <i>TV Download Dir</i>?</span>
</label> </label>
<label class="nocheck clearfix" for="unpack"> <label class="nocheck" for="unpack">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Only working with RAR archive</span> <span class="component-desc"><b>NOTE:</b> Only working with RAR archive</span>
</label> </label>
@ -194,11 +194,11 @@
<div class="field-pair"> <div class="field-pair">
<input id="use_failed_downloads" type="checkbox" class="enabler" name="use_failed_downloads" #if $sickbeard.USE_FAILED_DOWNLOADS == True then "checked=\"checked\"" else ""# /> <input id="use_failed_downloads" type="checkbox" class="enabler" name="use_failed_downloads" #if $sickbeard.USE_FAILED_DOWNLOADS == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="use_failed_downloads"> <label for="use_failed_downloads">
<span class="component-title">Use Failed Downloads</span> <span class="component-title">Use Failed Downloads</span>
<span class="component-desc">Use Failed Download Handling?</span> <span class="component-desc">Use Failed Download Handling?</span>
</label> </label>
<label class="nocheck clearfix" for="use_failed_downloads"> <label class="nocheck" for="use_failed_downloads">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> See <i>readme-FailedDownloads.md</i> before enabling.</span> <span class="component-desc"><b>NOTE:</b> See <i>readme-FailedDownloads.md</i> before enabling.</span>
</label> </label>
@ -207,11 +207,11 @@
<div id="content_use_failed_downloads"> <div id="content_use_failed_downloads">
<div class="field-pair"> <div class="field-pair">
<input id="delete_failed" type="checkbox" name="delete_failed" #if $sickbeard.DELETE_FAILED == True then "checked=\"checked\"" else ""# /> <input id="delete_failed" type="checkbox" name="delete_failed" #if $sickbeard.DELETE_FAILED == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="delete_failed"> <label for="delete_failed">
<span class="component-title">Delete Failed</span> <span class="component-title">Delete Failed</span>
<span class="component-desc">Delete files left over from a failed download?</span> <span class="component-desc">Delete files left over from a failed download?</span>
</label> </label>
<label class="nocheck clearfix" for="delete_failed"> <label class="nocheck" for="delete_failed">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> This only works if Use Failed Downloads is enabled.</span> <span class="component-desc"><b>NOTE:</b> This only works if Use Failed Downloads is enabled.</span>
</label> </label>
@ -219,79 +219,12 @@
</div> </div>
<div class="clearfix"></div>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/> <input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</fieldset> </fieldset>
</div><!-- /component-group3 //--> </div><!-- /component-group1 //-->
<div id="core-component-group2" class="component-group clearfix"> <div id="core-component-group2" class="component-group">
<div class="component-group-desc">
<h3>Metadata</h3>
<p>The data associated to the data. These are files associated to a TV show in the form of images and text that, when supported, will enhance the viewing experience.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label class="clearfix">
<span class="component-title jumbo">Metadata Type:</span>
<span class="component-desc">
#set $m_dict = $metadata.get_metadata_generator_dict()
<select id="metadataType">
#for ($cur_name, $cur_generator) in sorted($m_dict.items()):
<option value="$cur_generator.get_id()">$cur_name</option>
#end for
</select>
</span>
</label>
<span>Toggle the metadata options that you wish to be created. <b>Multiple targets may be used.</b></span>
</div>
<div id="metadataLegend">
<div style="width: 50%; float: left;">Create:</div>
<div style="width: 50%; float: left;">Results:</div>
</div>
<div class="clearfix"></div>
#for ($cur_name, $cur_generator) in $m_dict.items():
#set $cur_metadata_inst = $sickbeard.metadata_provider_dict[$cur_generator.name]
#set $cur_id = $cur_generator.get_id()
<div class="metadataDiv" id="$cur_id">
<div class="metadata_options">
<label for="${cur_id}_show_metadata"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_show_metadata" #if $cur_metadata_inst.show_metadata then "checked=\"checked\"" else ""#/>&nbsp;Show Metadata</label>
<label for="${cur_id}_episode_metadata"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_episode_metadata" #if $cur_metadata_inst.episode_metadata then "checked=\"checked\"" else ""#/>&nbsp;Episode Metadata</label>
<label for="${cur_id}_fanart" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_fanart" #if $cur_metadata_inst.fanart then "checked=\"checked\"" else ""#/>&nbsp;Show Fanart</label>
<label for="${cur_id}_poster" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_poster" #if $cur_metadata_inst.poster then "checked=\"checked\"" else ""#/>&nbsp;Show Poster</label>
<label for="${cur_id}_banner" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_banner" #if $cur_metadata_inst.banner then "checked=\"checked\"" else ""#/>&nbsp;Show Banner</label>
<label for="${cur_id}_episode_thumbnails" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_episode_thumbnails" #if $cur_metadata_inst.episode_thumbnails then "checked=\"checked\"" else ""#/>&nbsp;Episode Thumbnails</label>
<label for="${cur_id}_season_posters" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_posters" #if $cur_metadata_inst.season_posters then "checked=\"checked\"" else ""#/>&nbsp;Season Posters</label>
<label for="${cur_id}_season_banners" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_banners" #if $cur_metadata_inst.season_banners then "checked=\"checked\"" else ""#/>&nbsp;Season Banners</label>
<label for="${cur_id}_season_all_poster" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_all_poster" #if $cur_metadata_inst.season_all_poster then "checked=\"checked\"" else ""#/>&nbsp;Season All Poster</label>
<label for="${cur_id}_season_all_banner" class="clearfix"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_all_banner" #if $cur_metadata_inst.season_all_banner then "checked=\"checked\"" else ""#/>&nbsp;Season All Banner</label>
</div>
<div class="metadata_example">
<label for="${cur_id}_show_metadata"><span id="${cur_id}_eg_show_metadata">$cur_metadata_inst.eg_show_metadata</span></label>
<label for="${cur_id}_episode_metadata"><span id="${cur_id}_eg_episode_metadata">$cur_metadata_inst.eg_episode_metadata</span></label>
<label for="${cur_id}_fanart"><span id="${cur_id}_eg_fanart">$cur_metadata_inst.eg_fanart</span></label>
<label for="${cur_id}_poster"><span id="${cur_id}_eg_poster">$cur_metadata_inst.eg_poster</span></label>
<label for="${cur_id}_banner"><span id="${cur_id}_eg_banner">$cur_metadata_inst.eg_banner</span></label>
<label for="${cur_id}_episode_thumbnails"><span id="${cur_id}_eg_episode_thumbnails">$cur_metadata_inst.eg_episode_thumbnails</span></label>
<label for="${cur_id}_season_posters"><span id="${cur_id}_eg_season_posters">$cur_metadata_inst.eg_season_posters</span></label>
<label for="${cur_id}_season_banners"><span id="${cur_id}_eg_season_banners">$cur_metadata_inst.eg_season_banners</span></label>
<label for="${cur_id}_season_all_poster"><span id="${cur_id}_eg_season_all_poster">$cur_metadata_inst.eg_season_all_poster</span></label>
<label for="${cur_id}_season_all_banner"><span id="${cur_id}_eg_season_all_banner">$cur_metadata_inst.eg_season_all_banner</span></label>
</div>
<input type="hidden" name="${cur_id}_data" id="${cur_id}_data" value="$cur_metadata_inst.get_config()" />
</div>
#end for
<div class="clearfix" style="clear:left;"></div><br/>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</fieldset>
</div><!-- /component-group2 //-->
<div id="core-component-group4" class="component-group clearfix">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Episode Naming</h3> <h3>Episode Naming</h3>
@ -301,10 +234,10 @@
<fieldset class="component-group-list"> <fieldset class="component-group-list">
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix" for="name_presets"> <label class="nocheck" for="name_presets">
<span class="component-title">Name Pattern:</span> <span class="component-title">Name Pattern:</span>
<span class="component-desc"> <span class="component-desc">
<select id="name_presets"> <select id="name_presets" class="form-control input-sm">
#set is_custom = True #set is_custom = True
#for $cur_preset in $naming.name_presets: #for $cur_preset in $naming.name_presets:
#set $tmp = $naming.test_name($cur_preset, anime_type=3) #set $tmp = $naming.test_name($cur_preset, anime_type=3)
@ -320,19 +253,19 @@
</div> </div>
<div id="naming_custom"> <div id="naming_custom">
<div class="field-pair clearfix" style="padding-top: 0;"> <div class="field-pair" style="padding-top: 0;">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title"> <span class="component-title">
&nbsp; &nbsp;
</span> </span>
<span class="component-desc"> <span class="component-desc">
<input type="text" size="45" name="naming_pattern" id="naming_pattern" class="custom-pattern" value="$sickbeard.NAMING_PATTERN" style="font-size: 13px; height: 18px; margin-top: -8px;" /> <input type="text" name="naming_pattern" id="naming_pattern" value="$sickbeard.NAMING_PATTERN" class="form-control input-sm input350" />
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_key" title="Toggle Naming Legend" style="padding: 0 0 0 3px; margin-top: -2px;" /> <img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_key" title="Toggle Naming Legend" class="legend" class="legend" />
</span> </span>
</label> </label>
</div> </div>
<div id="naming_key" class="nocheck clearfix" style="display: none;"> <div id="naming_key" class="nocheck" style="display: none;">
<table class="Key"> <table class="Key">
<thead> <thead>
<tr> <tr>
@ -442,7 +375,7 @@
<td>%RG</td> <td>%RG</td>
<td>RLSGROUP</td> <td>RLSGROUP</td>
</tr> </tr>
<tr> <tr class="even">
<td class="align-right"><i class="icon-info-sign" title="If episode is proper/repack add 'proper' to name."></i> <b>Release Type:</b></td> <td class="align-right"><i class="icon-info-sign" title="If episode is proper/repack add 'proper' to name."></i> <b>Release Type:</b></td>
<td>%RT</td> <td>%RT</td>
<td>PROPER</td> <td>PROPER</td>
@ -454,10 +387,10 @@
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix" for="naming_multi_ep"> <label class="nocheck" for="naming_multi_ep">
<span class="component-title">Multi-Episode Style:</span> <span class="component-title">Multi-Episode Style:</span>
<span class="component-desc"> <span class="component-desc">
<select id="naming_multi_ep" name="naming_multi_ep"> <select id="naming_multi_ep" name="naming_multi_ep" class="form-control input-sm">
#for $cur_multi_ep in sorted($multiEpStrings.items(), key=lambda x: x[1]): #for $cur_multi_ep in sorted($multiEpStrings.items(), key=lambda x: x[1]):
<option value="$cur_multi_ep[0]" #if $cur_multi_ep[0] == $sickbeard.NAMING_MULTI_EP then "selected=\"selected\" class=\"selected\"" else ""#>$cur_multi_ep[1]</option> <option value="$cur_multi_ep[0]" #if $cur_multi_ep[0] == $sickbeard.NAMING_MULTI_EP then "selected=\"selected\" class=\"selected\"" else ""#>$cur_multi_ep[1]</option>
#end for #end for
@ -467,7 +400,7 @@
</div> </div>
<div id="naming_example_div"> <div id="naming_example_div">
<h2>Single-EP Sample:</h2> <h3>Single-EP Sample:</h3>
<div class="example"> <div class="example">
<span class="jumbo" id="naming_example">&nbsp;</span> <span class="jumbo" id="naming_example">&nbsp;</span>
</div> </div>
@ -475,7 +408,7 @@
</div> </div>
<div id="naming_example_multi_div"> <div id="naming_example_multi_div">
<h2>Multi-EP sample:</h2> <h3>Multi-EP sample:</h3>
<div class="example"> <div class="example">
<span class="jumbo" id="naming_example_multi">&nbsp;</span> <span class="jumbo" id="naming_example_multi">&nbsp;</span>
</div> </div>
@ -484,19 +417,19 @@
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" id="naming_strip_year" name="naming_strip_year" #if $sickbeard.NAMING_STRIP_YEAR then "checked=\"checked\"" else ""#/> <input type="checkbox" id="naming_strip_year" name="naming_strip_year" #if $sickbeard.NAMING_STRIP_YEAR then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="naming_strip_year"> <label for="naming_strip_year">
<span class="component-title">Strip Show Year</span> <span class="component-title">Strip Show Year</span>
<span class="component-desc">Remove the TV show's year when renaming the file?</span> <span class="component-desc">Remove the TV show's year when renaming the file?</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Only applies to shows that have year inside parentheses</span> <span class="component-desc">Only applies to shows that have year inside parentheses</span>
</label> </label>
</div> </div>
<div class="field-pair clearfix"> <div class="field-pair">
<input type="checkbox" class="enabler" id="naming_custom_abd" name="naming_custom_abd" #if $sickbeard.NAMING_CUSTOM_ABD then "checked=\"checked\"" else ""#/> <input type="checkbox" class="enabler" id="naming_custom_abd" name="naming_custom_abd" #if $sickbeard.NAMING_CUSTOM_ABD then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="naming_custom_abd"> <label for="naming_custom_abd">
<span class="component-title">Custom Air-By-Date</span> <span class="component-title">Custom Air-By-Date</span>
<span class="component-desc">Name Air-By-Date shows differently than regular shows?</span> <span class="component-desc">Name Air-By-Date shows differently than regular shows?</span>
</label> </label>
@ -504,10 +437,10 @@
<div id="content_naming_custom_abd"> <div id="content_naming_custom_abd">
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix" for="name_abd_presets"> <label class="nocheck" for="name_abd_presets">
<span class="component-title">Name Pattern:</span> <span class="component-title">Name Pattern:</span>
<span class="component-desc"> <span class="component-desc">
<select id="name_abd_presets"> <select id="name_abd_presets" class="form-control input-sm">
#set is_abd_custom = True #set is_abd_custom = True
#for $cur_preset in $naming.name_abd_presets: #for $cur_preset in $naming.name_abd_presets:
#set $tmp = $naming.test_name($cur_preset) #set $tmp = $naming.test_name($cur_preset)
@ -523,19 +456,19 @@
</div> </div>
<div id="naming_abd_custom"> <div id="naming_abd_custom">
<div class="field-pair clearfix" style="padding-top: 0;"> <div class="field-pair">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title"> <span class="component-title">
&nbsp; &nbsp;
</span> </span>
<span class="component-desc"> <span class="component-desc">
<input type="text" size="45" name="naming_abd_pattern" id="naming_abd_pattern" class="custom-pattern" value="$sickbeard.NAMING_ABD_PATTERN" style="font-size: 13px; height: 18px; margin-top: -8px"/> <input type="text" name="naming_abd_pattern" id="naming_abd_pattern" value="$sickbeard.NAMING_ABD_PATTERN" class="form-control input-sm input350" />
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_abd_key" title="Toggle ABD Naming Legend" style="padding: 0 0 0 3px; margin-top: -2px;" /> <img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_abd_key" title="Toggle ABD Naming Legend" class="legend" />
</span> </span>
</label> </label>
</div> </div>
<div id="naming_abd_key" class="nocheck clearfix" style="display: none;"> <div id="naming_abd_key" class="nocheck" style="display: none;">
<table class="Key"> <table class="Key">
<thead> <thead>
<tr> <tr>
@ -662,7 +595,7 @@
</div><!-- /naming_abd_custom --> </div><!-- /naming_abd_custom -->
<div id="naming_abd_example_div"> <div id="naming_abd_example_div">
<h2>Sample:</h2> <h3>Sample:</h3>
<div class="example"> <div class="example">
<span class="jumbo" id="naming_abd_example">&nbsp;</span> <span class="jumbo" id="naming_abd_example">&nbsp;</span>
</div> </div>
@ -671,9 +604,9 @@
</div><!-- /naming_abd_different --> </div><!-- /naming_abd_different -->
<div class="field-pair clearfix"> <div class="field-pair">
<input type="checkbox" class="enabler" id="naming_custom_sports" name="naming_custom_sports" #if $sickbeard.NAMING_CUSTOM_SPORTS then "checked=\"checked\"" else ""#/> <input type="checkbox" class="enabler" id="naming_custom_sports" name="naming_custom_sports" #if $sickbeard.NAMING_CUSTOM_SPORTS then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="naming_custom_sports"> <label for="naming_custom_sports">
<span class="component-title">Custom Sports</span> <span class="component-title">Custom Sports</span>
<span class="component-desc">Name Sports shows differently than regular shows?</span> <span class="component-desc">Name Sports shows differently than regular shows?</span>
</label> </label>
@ -681,10 +614,10 @@
<div id="content_naming_custom_sports"> <div id="content_naming_custom_sports">
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix" for="name_sports_presets"> <label class="nocheck" for="name_sports_presets">
<span class="component-title">Name Pattern:</span> <span class="component-title">Name Pattern:</span>
<span class="component-desc"> <span class="component-desc">
<select id="name_sports_presets"> <select id="name_sports_presets" class="form-control input-sm">
#set is_sports_custom = True #set is_sports_custom = True
#for $cur_preset in $naming.name_sports_presets: #for $cur_preset in $naming.name_sports_presets:
#set $tmp = $naming.test_name($cur_preset) #set $tmp = $naming.test_name($cur_preset)
@ -700,19 +633,19 @@
</div> </div>
<div id="naming_sports_custom"> <div id="naming_sports_custom">
<div class="field-pair clearfix" style="padding-top: 0;"> <div class="field-pair" style="padding-top: 0;">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title"> <span class="component-title">
&nbsp; &nbsp;
</span> </span>
<span class="component-desc"> <span class="component-desc">
<input type="text" size="45" name="naming_sports_pattern" id="naming_sports_pattern" class="custom-pattern" value="$sickbeard.NAMING_SPORTS_PATTERN" style="font-size: 13px; height: 18px; margin-top: -8px"/> <input type="text" name="naming_sports_pattern" id="naming_sports_pattern" value="$sickbeard.NAMING_SPORTS_PATTERN" class="form-control input-sm input350" />
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_sports_key" title="Toggle Sports Naming Legend" style="padding: 0 0 0 3px; margin-top: -2px;" /> <img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_sports_key" title="Toggle Sports Naming Legend" class="legend" />
</span> </span>
</label> </label>
</div> </div>
<div id="naming_sports_key" class="nocheck clearfix" style="display: none;"> <div id="naming_sports_key" class="nocheck" style="display: none;">
<table class="Key"> <table class="Key">
<thead> <thead>
<tr> <tr>
@ -839,7 +772,7 @@
</div><!-- /naming_sports_custom --> </div><!-- /naming_sports_custom -->
<div id="naming_sports_example_div"> <div id="naming_sports_example_div">
<h2>Sample:</h2> <h3>Sample:</h3>
<div class="example"> <div class="example">
<span class="jumbo" id="naming_sports_example">&nbsp;</span> <span class="jumbo" id="naming_sports_example">&nbsp;</span>
</div> </div>
@ -849,9 +782,9 @@
</div><!-- /naming_sports_different --> </div><!-- /naming_sports_different -->
<!-- naming_anime_custom --> <!-- naming_anime_custom -->
<div class="field-pair clearfix"> <div class="field-pair">
<input type="checkbox" class="enabler" id="naming_custom_anime" name="naming_custom_anime" #if $sickbeard.NAMING_CUSTOM_ANIME then "checked=\"checked\"" else ""#/> <input type="checkbox" class="enabler" id="naming_custom_anime" name="naming_custom_anime" #if $sickbeard.NAMING_CUSTOM_ANIME then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="naming_custom_anime"> <label for="naming_custom_anime">
<span class="component-title">Custom Anime</span> <span class="component-title">Custom Anime</span>
<span class="component-desc">Name Anime shows differently than regular shows?</span> <span class="component-desc">Name Anime shows differently than regular shows?</span>
</label> </label>
@ -859,10 +792,10 @@
<div id="content_naming_custom_anime"> <div id="content_naming_custom_anime">
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix" for="name_anime_presets"> <label class="nocheck" for="name_anime_presets">
<span class="component-title">Name Pattern:</span> <span class="component-title">Name Pattern:</span>
<span class="component-desc"> <span class="component-desc">
<select id="name_anime_presets"> <select id="name_anime_presets" class="form-control input-sm">
#set is_anime_custom = True #set is_anime_custom = True
#for $cur_preset in $naming.name_anime_presets: #for $cur_preset in $naming.name_anime_presets:
#set $tmp = $naming.test_name($cur_preset) #set $tmp = $naming.test_name($cur_preset)
@ -878,19 +811,19 @@
</div> </div>
<div id="naming_anime_custom"> <div id="naming_anime_custom">
<div class="field-pair clearfix" style="padding-top: 0;"> <div class="field-pair" style="padding-top: 0;">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title"> <span class="component-title">
&nbsp; &nbsp;
</span> </span>
<span class="component-desc"> <span class="component-desc">
<input type="text" size="45" name="naming_anime_pattern" id="naming_anime_pattern" class="custom-pattern" value="$sickbeard.NAMING_ANIME_PATTERN" style="font-size: 13px; height: 18px; margin-top: -8px"/> <input type="text" name="naming_anime_pattern" id="naming_anime_pattern" value="$sickbeard.NAMING_ANIME_PATTERN" class="form-control input-sm input350" />
<img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_anime_key" title="Toggle Anime Naming Legend" style="padding: 0 0 0 3px; margin-top: -2px;" /> <img src="$sbRoot/images/legend16.png" width="16" height="16" alt="[Toggle Key]" id="show_naming_anime_key" title="Toggle Anime Naming Legend" class="legend" />
</span> </span>
</label> </label>
</div> </div>
<div id="naming_anime_key" class="nocheck clearfix" style="display: none;"> <div id="naming_anime_key" class="nocheck" style="display: none;">
<table class="Key"> <table class="Key">
<thead> <thead>
<tr> <tr>
@ -1000,7 +933,7 @@
<td>%RG</td> <td>%RG</td>
<td>RLSGROUP</td> <td>RLSGROUP</td>
</tr> </tr>
<tr> <tr class="even">
<td class="align-right"><i class="icon-info-sign" title="If episode is proper/repack add 'proper' to name."></i> <b>Release Type:</b></td> <td class="align-right"><i class="icon-info-sign" title="If episode is proper/repack add 'proper' to name."></i> <b>Release Type:</b></td>
<td>%RT</td> <td>%RT</td>
<td>PROPER</td> <td>PROPER</td>
@ -1012,10 +945,10 @@
</div><!-- /naming_anime_custom --> </div><!-- /naming_anime_custom -->
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix" for="naming_anime_multi_ep"> <label class="nocheck" for="naming_anime_multi_ep">
<span class="component-title">Multi-Episode Style:</span> <span class="component-title">Multi-Episode Style:</span>
<span class="component-desc"> <span class="component-desc">
<select id="naming_anime_multi_ep" name="naming_anime_multi_ep"> <select id="naming_anime_multi_ep" name="naming_anime_multi_ep" class="form-control input-sm">
#for $cur_multi_ep in sorted($multiEpStrings.items(), key=lambda x: x[1]): #for $cur_multi_ep in sorted($multiEpStrings.items(), key=lambda x: x[1]):
<option value="$cur_multi_ep[0]" #if $cur_multi_ep[0] == $sickbeard.NAMING_ANIME_MULTI_EP then "selected=\"selected\" class=\"selected\"" else ""#>$cur_multi_ep[1]</option> <option value="$cur_multi_ep[0]" #if $cur_multi_ep[0] == $sickbeard.NAMING_ANIME_MULTI_EP then "selected=\"selected\" class=\"selected\"" else ""#>$cur_multi_ep[1]</option>
#end for #end for
@ -1025,7 +958,7 @@
</div> </div>
<div id="naming_example_anime_div"> <div id="naming_example_anime_div">
<h2>Single-EP Anime Sample:</h2> <h3>Single-EP Anime Sample:</h3>
<div class="example"> <div class="example">
<span class="jumbo" id="naming_example_anime">&nbsp;</span> <span class="jumbo" id="naming_example_anime">&nbsp;</span>
</div> </div>
@ -1033,7 +966,7 @@
</div> </div>
<div id="naming_example_multi_anime_div"> <div id="naming_example_multi_anime_div">
<h2>Multi-EP Anime sample:</h2> <h3>Multi-EP Anime sample:</h3>
<div class="example"> <div class="example">
<span class="jumbo" id="naming_example_multi_anime">&nbsp;</span> <span class="jumbo" id="naming_example_multi_anime">&nbsp;</span>
</div> </div>
@ -1042,11 +975,11 @@
<div class="field-pair"> <div class="field-pair">
<input type="radio" name="naming_anime" id="naming_anime" value="1" #if $sickbeard.NAMING_ANIME == 1 then "checked=\"checked\"" else ""#/> <input type="radio" name="naming_anime" id="naming_anime" value="1" #if $sickbeard.NAMING_ANIME == 1 then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="naming_anime"> <label for="naming_anime">
<span class="component-title">Add Absolute Number</span> <span class="component-title">Add Absolute Number</span>
<span class="component-desc">Add the absolute number to the season/episode format?</span> <span class="component-desc">Add the absolute number to the season/episode format?</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Only applies to animes. (eg. S15E45 - 310 vs S15E45)</span> <span class="component-desc">Only applies to animes. (eg. S15E45 - 310 vs S15E45)</span>
</label> </label>
@ -1054,11 +987,11 @@
<div class="field-pair"> <div class="field-pair">
<input type="radio" name="naming_anime" id="naming_anime_only" value="2" #if $sickbeard.NAMING_ANIME == 2 then "checked=\"checked\"" else ""#/> <input type="radio" name="naming_anime" id="naming_anime_only" value="2" #if $sickbeard.NAMING_ANIME == 2 then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="naming_anime_only"> <label for="naming_anime_only">
<span class="component-title">Only Absolute Number</span> <span class="component-title">Only Absolute Number</span>
<span class="component-desc">Replace season/episode format with absolute number</span> <span class="component-desc">Replace season/episode format with absolute number</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Only applies to animes.</span> <span class="component-desc">Only applies to animes.</span>
</label> </label>
@ -1066,11 +999,11 @@
<div class="field-pair"> <div class="field-pair">
<input type="radio" name="naming_anime" id="naming_anime_none" value="3" #if $sickbeard.NAMING_ANIME == 3 then "checked=\"checked\"" else ""#/> <input type="radio" name="naming_anime" id="naming_anime_none" value="3" #if $sickbeard.NAMING_ANIME == 3 then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="naming_anime_none"> <label for="naming_anime_none">
<span class="component-title">No Absolute Number</span> <span class="component-title">No Absolute Number</span>
<span class="component-desc">Dont include the absolute number</span> <span class="component-desc">Dont include the absolute number</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Only applies to animes.</span> <span class="component-desc">Only applies to animes.</span>
</label> </label>
@ -1078,18 +1011,87 @@
</div><!-- /naming_anime_different --> </div><!-- /naming_anime_different -->
<div class="clearfix"></div> <div></div>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/> <input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</fieldset> </fieldset>
</div><!-- /component-naming //--> </div><!-- /component-group2 //-->
<br/> <div id="core-component-group3" class="component-group">
<small class="float-right"><b>All non-absolute folder locations are relative to <span class="path">$sickbeard.DATA_DIR</span></b> </small>
<input type="submit" class="btn config_submitter button" value="Save Changes" /><br/> <div class="component-group-desc">
<h3>Metadata</h3>
<p>The data associated to the data. These are files associated to a TV show in the form of images and text that, when supported, will enhance the viewing experience.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label>
<span class="component-title">Metadata Type:</span>
<span class="component-desc">
#set $m_dict = $metadata.get_metadata_generator_dict()
<select id="metadataType" class="form-control input-sm">
#for ($cur_name, $cur_generator) in sorted($m_dict.items()):
<option value="$cur_generator.get_id()">$cur_name</option>
#end for
</select>
</span>
</label>
<span>Toggle the metadata options that you wish to be created. <b>Multiple targets may be used.</b></span>
</div>
#for ($cur_name, $cur_generator) in $m_dict.items():
#set $cur_metadata_inst = $sickbeard.metadata_provider_dict[$cur_generator.name]
#set $cur_id = $cur_generator.get_id()
<div class="metadataDiv" id="$cur_id">
<div class="metadata_options_wrapper">
<h4>Create:</h4>
<div class="metadata_options">
<label for="${cur_id}_show_metadata"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_show_metadata" #if $cur_metadata_inst.show_metadata then "checked=\"checked\"" else ""#/>&nbsp;Show Metadata</label>
<label for="${cur_id}_episode_metadata"><input type="checkbox" class="metadata_checkbox" id="${cur_id}_episode_metadata" #if $cur_metadata_inst.episode_metadata then "checked=\"checked\"" else ""#/>&nbsp;Episode Metadata</label>
<label for="${cur_id}_fanart"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_fanart" #if $cur_metadata_inst.fanart then "checked=\"checked\"" else ""#/>&nbsp;Show Fanart</label>
<label for="${cur_id}_poster"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_poster" #if $cur_metadata_inst.poster then "checked=\"checked\"" else ""#/>&nbsp;Show Poster</label>
<label for="${cur_id}_banner"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_banner" #if $cur_metadata_inst.banner then "checked=\"checked\"" else ""#/>&nbsp;Show Banner</label>
<label for="${cur_id}_episode_thumbnails"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_episode_thumbnails" #if $cur_metadata_inst.episode_thumbnails then "checked=\"checked\"" else ""#/>&nbsp;Episode Thumbnails</label>
<label for="${cur_id}_season_posters"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_posters" #if $cur_metadata_inst.season_posters then "checked=\"checked\"" else ""#/>&nbsp;Season Posters</label>
<label for="${cur_id}_season_banners"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_banners" #if $cur_metadata_inst.season_banners then "checked=\"checked\"" else ""#/>&nbsp;Season Banners</label>
<label for="${cur_id}_season_all_poster"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_all_poster" #if $cur_metadata_inst.season_all_poster then "checked=\"checked\"" else ""#/>&nbsp;Season All Poster</label>
<label for="${cur_id}_season_all_banner"><input type="checkbox" class="float-left metadata_checkbox" id="${cur_id}_season_all_banner" #if $cur_metadata_inst.season_all_banner then "checked=\"checked\"" else ""#/>&nbsp;Season All Banner</label>
</div>
</div>
<div class="metadata_example_wrapper">
<h4>Results:</h4>
<div class="metadata_example">
<label for="${cur_id}_show_metadata"><span id="${cur_id}_eg_show_metadata">$cur_metadata_inst.eg_show_metadata</span></label>
<label for="${cur_id}_episode_metadata"><span id="${cur_id}_eg_episode_metadata">$cur_metadata_inst.eg_episode_metadata</span></label>
<label for="${cur_id}_fanart"><span id="${cur_id}_eg_fanart">$cur_metadata_inst.eg_fanart</span></label>
<label for="${cur_id}_poster"><span id="${cur_id}_eg_poster">$cur_metadata_inst.eg_poster</span></label>
<label for="${cur_id}_banner"><span id="${cur_id}_eg_banner">$cur_metadata_inst.eg_banner</span></label>
<label for="${cur_id}_episode_thumbnails"><span id="${cur_id}_eg_episode_thumbnails">$cur_metadata_inst.eg_episode_thumbnails</span></label>
<label for="${cur_id}_season_posters"><span id="${cur_id}_eg_season_posters">$cur_metadata_inst.eg_season_posters</span></label>
<label for="${cur_id}_season_banners"><span id="${cur_id}_eg_season_banners">$cur_metadata_inst.eg_season_banners</span></label>
<label for="${cur_id}_season_all_poster"><span id="${cur_id}_eg_season_all_poster">$cur_metadata_inst.eg_season_all_poster</span></label>
<label for="${cur_id}_season_all_banner"><span id="${cur_id}_eg_season_all_banner">$cur_metadata_inst.eg_season_all_banner</span></label>
</div>
</div>
<input type="hidden" name="${cur_id}_data" id="${cur_id}_data" value="$cur_metadata_inst.get_config()" />
</div>
#end for
<div class="clearfix"></div><br/>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</fieldset>
</div><!-- /component-group3 //-->
<br/>
<h6 class="pull-right"><b>All non-absolute folder locations are relative to <span class="path">$sickbeard.DATA_DIR</span></b> </h6>
<input type="submit" class="btn pull-left config_submitter button" value="Save Changes" />
</form>
</div>
</div>
</form>
</div></div></div></div>
<div class="clearfix"></div> <div class="clearfix"></div>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">

View File

@ -1,6 +1,8 @@
#import sickbeard #import sickbeard
#from sickbeard.providers.generic import GenericProvider #from sickbeard.providers.generic import GenericProvider
#from sickbeard.providers import thepiratebay #from sickbeard.providers import thepiratebay
#from sickbeard.helpers import anon_url
#set global $title="Config - Providers" #set global $title="Config - Providers"
#set global $header="Search Providers" #set global $header="Search Providers"
@ -9,11 +11,11 @@
#set global $topmenu="config"# #set global $topmenu="config"#
#import os.path #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")
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<script type="text/javascript" src="$sbRoot/js/configProviders.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/configProviders.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/config.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/config.js?$sbPID"></script>
@ -43,27 +45,27 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#end if #end if
<div id="config"> <div id="config">
<div id="config-content"> <div id="config-content">
<form id="configForm" action="saveProviders" method="post"> <form id="configForm" action="saveProviders" method="post">
<div id="config-components"> <div id="config-components">
<ul> <ul>
<li><a href="#core-component-group1">Provider Priorities</a></li> <li><a href="#core-component-group1">Provider Priorities</a></li>
<li><a href="#core-component-group2">Configure Built-In Providers</a></li> <li><a href="#core-component-group2">Provider Options</a></li>
#if $sickbeard.USE_NZBS #if $sickbeard.USE_NZBS
<li><a href="#core-component-group3">Configure Custom Newznab Providers</a></li> <li><a href="#core-component-group3">Configure Custom Newznab Providers</a></li>
#end if #end if
#if $sickbeard.USE_TORRENTS #if $sickbeard.USE_TORRENTS
<li><a href="#core-component-group4">Configure Custom Torrent Providers</a></li> <li><a href="#core-component-group4">Configure Custom Torrent Providers</a></li>
#end if #end if
</ul> </ul>
<div id="core-component-group1" class="component-group clearfix"> <div id="core-component-group1" class="component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Provider Priorities</h3> <h3>Provider Priorities</h3>
<p>Check off, configure and drag the providers into the order you want them to be used.</p> <p>Check off and drag the providers into the order you want them to be used.</p>
<p>At least one provider is required but two are recommended.</p> <p>At least one provider is required but two are recommended.</p>
#if not $sickbeard.USE_NZBS or not $sickbeard.USE_TORRENTS: #if not $sickbeard.USE_NZBS or not $sickbeard.USE_TORRENTS:
@ -75,11 +77,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
<div> <div>
<h4 class="note">*</h4><p class="note">Provider does not support backlog searches at this time.</p> <h4 class="note">*</h4><p class="note">Provider does not support backlog searches at this time.</p>
<h4 class="note">**</h4><p class="note">Provider supports <b>limited</b> backlog searches, all episodes/qualities may not be available.</p> <h4 class="note">**</h4><p class="note">Provider supports <b>limited</b> backlog searches, all episodes/qualities may not be available.</p>
<h4 class="note">!</h4><p class="note">Provider is <b>NOT WORKING</b>.</p> <h4 class="note">!</h4><p class="note">Provider is <b>NOT WORKING</b>.</p>
</div> </div>
</div> </div>
<fieldset class="component-group-list" style="margin-left: 50px; margin-top:36px"> <fieldset class="component-group-list">
<ul id="provider_order_list"> <ul id="provider_order_list">
#for $curProvider in $sickbeard.providers.sortedProviderList(): #for $curProvider in $sickbeard.providers.sortedProviderList():
#if $curProvider.providerType == $GenericProvider.NZB and not $sickbeard.USE_NZBS: #if $curProvider.providerType == $GenericProvider.NZB and not $sickbeard.USE_NZBS:
@ -90,7 +92,7 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#set $curName = $curProvider.getID() #set $curName = $curProvider.getID()
<li class="ui-state-default" id="$curName"> <li class="ui-state-default" id="$curName">
<input type="checkbox" id="enable_$curName" class="provider_enabler" #if $curProvider.isEnabled() then "checked=\"checked\"" else ""#/> <input type="checkbox" id="enable_$curName" class="provider_enabler" #if $curProvider.isEnabled() then "checked=\"checked\"" else ""#/>
<a href="$curProvider.url" class="imgLink" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;"><img src="$sbRoot/images/providers/$curProvider.imageName()" alt="$curProvider.name" title="$curProvider.name" width="16" height="16" style="vertical-align:middle;"/></a> <a href="<%= anon_url(curProvider.url) %>" class="imgLink" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;"><img src="$sbRoot/images/providers/$curProvider.imageName()" alt="$curProvider.name" title="$curProvider.name" width="16" height="16" style="vertical-align:middle;"/></a>
<span style="vertical-align:middle;">$curProvider.name</span> <span style="vertical-align:middle;">$curProvider.name</span>
#if not $curProvider.supportsBacklog then "*" else ""# #if not $curProvider.supportsBacklog then "*" else ""#
#if $curProvider.name == "EZRSS" then "**" else ""# #if $curProvider.name == "EZRSS" then "**" else ""#
@ -103,17 +105,18 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
</fieldset> </fieldset>
</div><!-- /component-group1 //--> </div><!-- /component-group1 //-->
<div id="core-component-group2" class="component-group clearfix"> <div id="core-component-group2" class="component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Configure Built-In<br />Providers</h3> <h3>Provider Options</h3>
<p>Configure individual provider settings here.</p>
<p>Check with provider's website on how to obtain an API key if needed.</p> <p>Check with provider's website on how to obtain an API key if needed.</p>
</div> </div>
<fieldset class="component-group-list"> <fieldset class="component-group-list">
<div class="field-pair"> <div class="field-pair">
<label class="clearfix" for="editAProvider"> <label for="editAProvider">
<span class="component-title jumbo">Configure Provider:</span> <span class="component-title">Configure provider:</span>
<span class="component-desc"> <span class="component-desc">
#set $provider_config_list = [] #set $provider_config_list = []
#for $curProvider in $sickbeard.providers.sortedProviderList(): #for $curProvider in $sickbeard.providers.sortedProviderList():
@ -126,8 +129,8 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#end for #end for
#if $provider_config_list: #if $provider_config_list:
<select id="editAProvider"> <select id="editAProvider" class="form-control input-sm">
#for $cur_provider in $provider_config_list + [$curProvider for $curProvider in $sickbeard.newznabProviderList if $sickbeard.USE_NZBS]: #for $cur_provider in $provider_config_list:
<option value="$cur_provider.getID()">$cur_provider.name</option> <option value="$cur_provider.getID()">$cur_provider.name</option>
#end for #end for
</select> </select>
@ -139,295 +142,301 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
</div> </div>
<!-- start div for editing providers //--> <!-- start div for editing providers //-->
#for $curNewznabProvider in [$curProvider for $curProvider in $sickbeard.newznabProviderList]: #for $curNewznabProvider in [$curProvider for $curProvider in $sickbeard.newznabProviderList]:
<div class="providerDiv" id="${curNewznabProvider.getID()}Div"> <div class="providerDiv" id="${curNewznabProvider.getID()}Div">
#if $curNewznabProvider.default and $curNewznabProvider.needs_auth #if $curNewznabProvider.default and $curNewznabProvider.needs_auth
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curNewznabProvider.getID()}_url">
<span class="component-title">URL:</span> <span class="component-title">URL:</span>
<input class="component-desc" type="text" id="${curNewznabProvider.getID()}_url" value="$curNewznabProvider.url" size="40" disabled/> <span class="component-desc">
<input type="text" id="${curNewznabProvider.getID()}_url" value="$curNewznabProvider.url" class="form-control input-sm input350" disabled/>
</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curNewznabProvider.getID()}_hash">
<span class="component-title">API Key:</span> <span class="component-title">API key:</span>
<input class="component-desc newznab_key" type="text" id="${curNewznabProvider.getID()}_hash" value="$curNewznabProvider.key" newznab_name="${curNewznabProvider.getID()}_hash" size="40" /> <span class="component-desc">
<input type="text" id="${curNewznabProvider.getID()}_hash" value="$curNewznabProvider.key" newznab_name="${curNewznabProvider.getID()}_hash" class="newznab_key form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNewznabProvider, 'enable_daily'): #if $hasattr($curNewznabProvider, 'enable_daily'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curNewznabProvider.getID()}_enable_daily" id="${curNewznabProvider.getID()}_enable_daily" #if $curNewznabProvider.enable_daily then "checked=\"checked\"" else ""#/> <label for="${curNewznabProvider.getID()}_enable_daily">
<label class="clearfix" for="${curNewznabProvider.getID()}_enable_daily"> <span class="component-title">Enable daily searches</span>
<span class="component-title">Enable Daily Searches</span>
<span class="component-desc"> <span class="component-desc">
Enables daily searches <input type="checkbox" name="${curNewznabProvider.getID()}_enable_daily" id="${curNewznabProvider.getID()}_enable_daily" #if $curNewznabProvider.enable_daily then "checked=\"checked\"" else ""#/>
</span> <p>enable provider to perform daily searches.</p>
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNewznabProvider, 'enable_backlog'): #if $hasattr($curNewznabProvider, 'enable_backlog'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curNewznabProvider.getID()}_enable_backlog" id="${curNewznabProvider.getID()}_enable_backlog" #if $curNewznabProvider.enable_backlog then "checked=\"checked\"" else ""#/> <label for="${curNewznabProvider.getID()}_enable_backlog">
<label class="clearfix" for="${curNewznabProvider.getID()}_enable_backlog"> <span class="component-title">Enable backlog searches</span>
<span class="component-title">Backlog Only</span>
<span class="component-desc"> <span class="component-desc">
Enables backlog searches <input type="checkbox" name="${curNewznabProvider.getID()}_enable_backlog" id="${curNewznabProvider.getID()}_enable_backlog" #if $curNewznabProvider.enable_backlog then "checked=\"checked\"" else ""#/>
</span> <p>enable provider to perform backlog searches.</p>
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNewznabProvider, 'search_fallback'): #if $hasattr($curNewznabProvider, 'search_fallback'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curNewznabProvider.getID()}_search_fallback" id="${curNewznabProvider.getID()}_search_fallback" #if $curNewznabProvider.search_fallback then "checked=\"checked\"" else ""#/> <label for="${curNewznabProvider.getID()}_search_fallback">
<label class="clearfix" for="${curNewznabProvider.getID()}_search_fallback"> <span class="component-title">Season search fallback</span>
<span class="component-title">Season Search Fallback</span>
<span class="component-desc"> <span class="component-desc">
When searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode. <input type="checkbox" name="${curNewznabProvider.getID()}_search_fallback" id="${curNewznabProvider.getID()}_search_fallback" #if $curNewznabProvider.search_fallback then "checked=\"checked\"" else ""#/>
</span> <p>when searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode.</p>
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNewznabProvider, 'search_mode'): #if $hasattr($curNewznabProvider, 'search_mode'):
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label>
<span class="component-title">Season Search Mode</span> <span class="component-title">Season search mode</span>
<span class="component-desc2"> <span class="component-desc">
When searching for complete seasons you can choose to have it look for season packs ONLY or choose to have it build a complete season from just single episodes. <p>when searching for complete seasons you can choose to have it look for season packs only, or choose to have it build a complete season from just single episodes.</p>
</span> </span>
</label>
<label>
<span class="component-title"></span> <span class="component-title"></span>
<input type="radio" name="${curNewznabProvider.getID()}_search_mode" id="${curNewznabProvider.getID()}_search_mode_sponly" value="sponly" class="radio" #if $curNewznabProvider.search_mode=="sponly" then "checked=\"checked\"" else ""# />Season Packs ONLY!<br /> <span class="component-desc">
<span class="component-title"></span> <input type="radio" name="${curNewznabProvider.getID()}_search_mode" id="${curNewznabProvider.getID()}_search_mode_sponly" value="sponly" #if $curNewznabProvider.search_mode=="sponly" then "checked=\"checked\"" else ""# />season packs only.
<input type="radio" name="${curNewznabProvider.getID()}_search_mode" id="${curNewznabProvider.getID()}_search_mode_eponly" value="eponly" class="radio" #if $curNewznabProvider.search_mode=="eponly" then "checked=\"checked\"" else ""# />Episodes ONLY!<br /> </span>
</span> </label>
<label>
<span class="component-title"></span>
<span class="component-desc">
<input type="radio" name="${curNewznabProvider.getID()}_search_mode" id="${curNewznabProvider.getID()}_search_mode_eponly" value="eponly" #if $curNewznabProvider.search_mode=="eponly" then "checked=\"checked\"" else ""# />episodes only.
</span>
</label> </label>
</div> </div>
#end if #end if
</div> </div>
#end for #end for
#for $curNzbProvider in [$curProvider for $curProvider in $sickbeard.providers.sortedProviderList() if $curProvider.providerType == $GenericProvider.NZB]: #for $curNzbProvider in [$curProvider for $curProvider in $sickbeard.providers.sortedProviderList() if $curProvider.providerType == $GenericProvider.NZB and $curProvider not in $sickbeard.newznabProviderList]:
<div class="providerDiv" id="${curNzbProvider.getID()}Div"> <div class="providerDiv" id="${curNzbProvider.getID()}Div">
#if $hasattr($curNzbProvider, 'username'): #if $hasattr($curNzbProvider, 'username'):
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curNzbProvider.getID()}_username">
<span class="component-title">UserName:</span> <span class="component-title">Username:</span>
<input class="component-desc" type="text" name="${curNzbProvider.getID()}_username" value="$curNzbProvider.username" size="40" /> <span class="component-desc">
<input type="text" name="${curNzbProvider.getID()}_username" value="$curNzbProvider.username" class="form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNzbProvider, 'api_key'): #if $hasattr($curNzbProvider, 'api_key'):
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curNzbProvider.getID()}_api_key">
<span class="component-title">API Key:</span> <span class="component-title">API key:</span>
<input class="component-desc" type="text" name="${curNzbProvider.getID()}_api_key" value="$curNzbProvider.api_key" size="40" /> <span class="component-desc">
<input type="text" name="${curNzbProvider.getID()}_api_key" value="$curNzbProvider.api_key" class="form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNzbProvider, 'enable_daily'): #if $hasattr($curNzbProvider, 'enable_daily'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curNzbProvider.getID()}_enable_daily" id="${curNzbProvider.getID()}_enable_daily" #if $curNzbProvider.enable_daily then "checked=\"checked\"" else ""#/> <label for="${curNzbProvider.getID()}_enable_daily">
<label class="clearfix" for="${curNzbProvider.getID()}_enable_daily"> <span class="component-title">Enable daily searches</span>
<span class="component-title">Enable Daily Searches</span> <span class="component-desc">
<span class="component-desc"> <input type="checkbox" name="${curNzbProvider.getID()}_enable_daily" id="${curNzbProvider.getID()}_enable_daily" #if $curNzbProvider.enable_daily then "checked=\"checked\"" else ""#/>
Enables daily searches <p>enable provider to perform daily searches.</p>
</span> </span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNzbProvider, 'enable_backlog'): #if $hasattr($curNzbProvider, 'enable_backlog'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curNzbProvider.getID()}_enable_backlog" id="${curNzbProvider.getID()}_enable_backlog" #if $curNzbProvider.enable_backlog then "checked=\"checked\"" else ""#/> <label for="${curNzbProvider.getID()}_enable_backlog">
<label class="clearfix" for="${curNzbProvider.getID()}_enable_backlog"> <span class="component-title">Enable backlog searches</span>
<span class="component-title">Enable Backlog Searches</span> <span class="component-desc">
<span class="component-desc"> <input type="checkbox" name="${curNzbProvider.getID()}_enable_backlog" id="${curNzbProvider.getID()}_enable_backlog" #if $curNzbProvider.enable_backlog then "checked=\"checked\"" else ""#/>
Enables backlog searches <p>enable provider to perform backlog searches.</p>
</span> </span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNzbProvider, 'search_fallback'): #if $hasattr($curNzbProvider, 'search_fallback'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curNzbProvider.getID()}_search_fallback" id="${curNzbProvider.getID()}_search_fallback" #if $curNzbProvider.search_fallback then "checked=\"checked\"" else ""#/> <label for="${curNzbProvider.getID()}_search_fallback">
<label class="clearfix" for="${curNzbProvider.getID()}_search_fallback"> <span class="component-title">Season search fallback</span>
<span class="component-title">Season Search Fallback</span>
<span class="component-desc"> <span class="component-desc">
When searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode. <input type="checkbox" name="${curNzbProvider.getID()}_search_fallback" id="${curNzbProvider.getID()}_search_fallback" #if $curNzbProvider.search_fallback then "checked=\"checked\"" else ""#/>
</span> <p>when searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode.</p>
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curNzbProvider, 'search_mode'): #if $hasattr($curNzbProvider, 'search_mode'):
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label>
<span class="component-title">Season Search Mode</span> <span class="component-title">Season search mode</span>
<span class="component-desc2"> <span class="component-desc">
When searching for complete seasons you can choose to have it look for season packs ONLY or choose to have it build a complete season from just single episodes. <p>when searching for complete seasons you can choose to have it look for season packs only, or choose to have it build a complete season from just single episodes.</p>
</span> </span>
</label>
<span class="component-title"></span> <label>
<input type="radio" style="margin-top: 2px !important;" name="${curNzbProvider.getID()}_search_mode" id="${curNzbProvider.getID()}_search_mode_sponly" value="sponly" class="radio" #if $curNzbProvider.search_mode=="sponly" then "checked=\"checked\"" else ""# />Season Packs ONLY!<br /> <span class="component-title"></span>
<span class="component-title"></span> <span class="component-desc">
<input type="radio" style="margin-top: 2px !important;" name="${curNzbProvider.getID()}_search_mode" id="${curNzbProvider.getID()}_search_mode_eponly" value="eponly" class="radio" #if $curNzbProvider.search_mode=="eponly" then "checked=\"checked\"" else ""# />Episodes ONLY!<br /> <input type="radio" name="${curNzbProvider.getID()}_search_mode" id="${curNzbProvider.getID()}_search_mode_sponly" value="sponly" #if $curNzbProvider.search_mode=="sponly" then "checked=\"checked\"" else ""# />season packs only.
</span>
</label>
<label>
<span class="component-title"></span>
<span class="component-desc">
<input type="radio" name="${curNzbProvider.getID()}_search_mode" id="${curNzbProvider.getID()}_search_mode_eponly" value="eponly" #if $curNzbProvider.search_mode=="eponly" then "checked=\"checked\"" else ""# />episodes only.
</span> </span>
</label> </label>
</div> </div>
#end if #end if
</div> </div>
#end for #end for
#for $curTorrentProvider in [$curProvider for $curProvider in $sickbeard.providers.sortedProviderList() if $curProvider.providerType == $GenericProvider.TORRENT]: #for $curTorrentProvider in [$curProvider for $curProvider in $sickbeard.providers.sortedProviderList() if $curProvider.providerType == $GenericProvider.TORRENT]:
<div class="providerDiv" id="${curTorrentProvider.getID()}Div"> <div class="providerDiv" id="${curTorrentProvider.getID()}Div">
#if $hasattr($curTorrentProvider, 'api_key'): #if $hasattr($curTorrentProvider, 'api_key'):
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curTorrentProvider.getID()}_api_key">
<span class="component-title">Api Key:</span> <span class="component-title">Api key:</span>
<input class="component-desc" type="text" name="${curTorrentProvider.getID()}_api_key" id="${curTorrentProvider.getID()}_api_key" value="$curTorrentProvider.api_key" size="40" /> <span class="component-desc">
<input type="text" name="${curTorrentProvider.getID()}_api_key" id="${curTorrentProvider.getID()}_api_key" value="$curTorrentProvider.api_key" class="form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'digest'): #if $hasattr($curTorrentProvider, 'digest'):
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curTorrentProvider.getID()}_digest">
<span class="component-title">Digest:</span> <span class="component-title">Digest:</span>
<input class="component-desc" type="text" name="${curTorrentProvider.getID()}_digest" id="${curTorrentProvider.getID()}_digest" value="$curTorrentProvider.digest" size="40" /> <span class="component-desc">
<input type="text" name="${curTorrentProvider.getID()}_digest" id="${curTorrentProvider.getID()}_digest" value="$curTorrentProvider.digest" class="form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'hash'): #if $hasattr($curTorrentProvider, 'hash'):
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curTorrentProvider.getID()}_hash">
<span class="component-title">Hash:</span> <span class="component-title">Hash:</span>
<input class="component-desc" type="text" name="${curTorrentProvider.getID()}_hash" id="${curTorrentProvider.getID()}_hash" value="$curTorrentProvider.hash" size="40" /> <span class="component-desc">
<input type="text" name="${curTorrentProvider.getID()}_hash" id="${curTorrentProvider.getID()}_hash" value="$curTorrentProvider.hash" class="form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'options'):
<div style="width: 340px; padding-bottom: 10px !important;">
<input type="hidden" id="tvtorrents_option_string" />
<fieldset style="display: block; border-width: 1px !important; border-radius: 5px !important; border-color: #D0D0D0 !important; border-style: solid !important;">
<legend id="seed_options">Advanced Options</legend>
<div class="field-pair" style="margin-top: -2px !important;">
<label class="clearfix" >
<span class="component-title" style="width: 130px !important;">Seeding Goal Ratio(%):</span>
<input class="seed_option" type="text" id="tvtorrents_seed_ratio" size="5" style="margin-left: -5px !important;"/>
</label>
</div>
<div class="field-pair" style="margin-top: -10px !important;">
<label class="clearfix">
<span class="component-title" style="width: 130px !important;">Seeding Goal Time(h):</span>
<input class="seed_option" type="text" id="tvtorrents_seed_time" size="5" style="margin-left: -5px !important;" />
</label>
</div>
<div style="display: block; text-align: center;margin-top: -10px !important;" class="float-left">
<label class="clearfix">
<span class="component-title" style="margin-left: -49px !important; width: 201px !important;">Process Method:</span>
<select class="seed_option" id="tvtorrents_process_method" class="input-medium" >
#set $process_method_text = {'': "", 'copy': "Copy", 'move': "Move", 'hardlink': "Hard Link", 'symlink' : "Symbolic Link"}
#for $curAction in ('', 'copy', 'move', 'hardlink', 'symlink'):
#set $process_method = ""
<option class="seed_option" value="$curAction" $process_method>$process_method_text[$curAction]</option>
#end for
</select>
</label>
</div>
</fieldset>
</div>
#end if
#if $hasattr($curTorrentProvider, 'username'): #if $hasattr($curTorrentProvider, 'username'):
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curTorrentProvider.getID()}_username">
<span class="component-title">Username:</span> <span class="component-title">Username:</span>
<input class="component-desc" type="text" name="${curTorrentProvider.getID()}_username" id="${curTorrentProvider.getID()}_username" value="$curTorrentProvider.username" size="40" /> <span class="component-desc">
<input type="text" name="${curTorrentProvider.getID()}_username" id="${curTorrentProvider.getID()}_username" value="$curTorrentProvider.username" class="form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'password'): #if $hasattr($curTorrentProvider, 'password'):
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curTorrentProvider.getID()}_password">
<span class="component-title">Password:</span> <span class="component-title">Password:</span>
<input class="component-desc" type="password" name="${curTorrentProvider.getID()}_password" id="${curTorrentProvider.getID()}_password" value="$curTorrentProvider.password" size="40" /> <span class="component-desc">
<input type="password" name="${curTorrentProvider.getID()}_password" id="${curTorrentProvider.getID()}_password" value="$curTorrentProvider.password" class="form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'passkey'): #if $hasattr($curTorrentProvider, 'passkey'):
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="${curTorrentProvider.getID()}_passkey">
<span class="component-title">Passkey:</span> <span class="component-title">Passkey:</span>
<input class="component-desc" type="text" name="${curTorrentProvider.getID()}_passkey" id="${curTorrentProvider.getID()}_passkey" value="$curTorrentProvider.passkey" size="40" /> <span class="component-desc">
<input type="text" name="${curTorrentProvider.getID()}_passkey" id="${curTorrentProvider.getID()}_passkey" value="$curTorrentProvider.passkey" class="form-control input-sm input350" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'ratio'): #if $hasattr($curTorrentProvider, 'ratio'):
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label for="${curTorrentProvider.getID()}_ratio">
<span class="component-title" id="${curTorrentProvider.getID()}_ratio_desc">Seed Ratio:</span> <span class="component-title" id="${curTorrentProvider.getID()}_ratio_desc">Seed ratio:</span>
<input type="number" step="0.1" name="${curTorrentProvider.getID()}_ratio" id="${curTorrentProvider.getID()}_ratio" value="$curTorrentProvider.ratio" size="2" style="margin-left: 3px !important;" /> <span class="component-desc">
<input type="number" step="0.1" name="${curTorrentProvider.getID()}_ratio" id="${curTorrentProvider.getID()}_ratio" value="$curTorrentProvider.ratio" class="form-control input-sm input75" />
</span>
</label> </label>
<label class="clearfix"> <label>
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"> <span class="component-desc">
Stop transfer when reaching ratio<br> <p>stop transfer when ratio is reached<br>(-1 SickRage default to seed forever, or leave blank for downloader default)</p>
(-1 SickRage default to seed forever)<br> </span>
(leave blank for downloader default)</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'minseed'): #if $hasattr($curTorrentProvider, 'minseed'):
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label for="${curTorrentProvider.getID()}_minseed">
<span class="component-title" id="${curTorrentProvider.getID()}_minseed_desc">Min Seeders:</span> <span class="component-title" id="${curTorrentProvider.getID()}_minseed_desc">Minimum seeders:</span>
<input type="number" name="${curTorrentProvider.getID()}_minseed" id="${curTorrentProvider.getID()}_minseed" value="$curTorrentProvider.minseed" size="40" style="margin-left: 3px !important;" /> <span class="component-desc">
<input type="number" name="${curTorrentProvider.getID()}_minseed" id="${curTorrentProvider.getID()}_minseed" value="$curTorrentProvider.minseed" class="form-control input-sm input75" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'minleech'): #if $hasattr($curTorrentProvider, 'minleech'):
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label for="${curTorrentProvider.getID()}_minleech">
<span class="component-title" id="${curTorrentProvider.getID()}_minleech_desc">Min Leechers:</span> <span class="component-title" id="${curTorrentProvider.getID()}_minleech_desc">Minimum leechers:</span>
<input type="number" name="${curTorrentProvider.getID()}_minleech" id="${curTorrentProvider.getID()}_minleech" value="$curTorrentProvider.minleech" size="40" style="margin-left: 3px !important;" /> <span class="component-desc">
<input type="number" name="${curTorrentProvider.getID()}_minleech" id="${curTorrentProvider.getID()}_minleech" value="$curTorrentProvider.minleech" class="form-control input-sm input75" />
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'proxy'): #if $hasattr($curTorrentProvider, 'proxy'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" class="enabler" name="${curTorrentProvider.getID()}_proxy" id="${curTorrentProvider.getID()}_proxy" #if $curTorrentProvider.proxy.enabled then "checked=\"checked\"" else ""#/> <label for="${curTorrentProvider.getID()}_proxy">
<label class="clearfix"> <span class="component-title">Access provider via proxy</span>
<span class="component-title">Access Provider via Proxy</span> <span class="component-desc">
<span class="component-desc">To bypass Country Blocking Mechanism</span> <input type="checkbox" class="enabler" name="${curTorrentProvider.getID()}_proxy" id="${curTorrentProvider.getID()}_proxy" #if $curTorrentProvider.proxy.enabled then "checked=\"checked\"" else ""#/>
<p>to bypass country blocking mechanisms</p>
</span>
</label> </label>
</div> </div>
#if $hasattr($curTorrentProvider.proxy, 'url'): #if $hasattr($curTorrentProvider.proxy, 'url'):
<div class="field-pair content_${curTorrentProvider.getID()}_proxy" id="content_${curTorrentProvider.getID()}_proxy"> <div class="field-pair content_${curTorrentProvider.getID()}_proxy" id="content_${curTorrentProvider.getID()}_proxy">
<label class="nocheck clearfix"> <label for="${curTorrentProvider.getID()}_proxy_url">
<span class="component-title">Proxy URL:</span> <span class="component-title">Proxy URL:</span>
<span class="component-desc"> <span class="component-desc">
<select name="${curTorrentProvider.getID()}_proxy_url" id="${curTorrentProvider.getID()}_proxy_url"> <select name="${curTorrentProvider.getID()}_proxy_url" id="${curTorrentProvider.getID()}_proxy_url" class="form-control input-sm">
#for $i in $curTorrentProvider.proxy.urls.keys(): #for $i in $curTorrentProvider.proxy.urls.keys():
<option value="$curTorrentProvider.proxy.urls[$i]" #if $curTorrentProvider.proxy.urls[$i] == $curTorrentProvider.proxy.url then "selected=\"selected\"" else ""#>$i</option> <option value="$curTorrentProvider.proxy.urls[$i]" #if $curTorrentProvider.proxy.urls[$i] == $curTorrentProvider.proxy.url then "selected=\"selected\"" else ""#>$i</option>
#end for #end for
@ -440,226 +449,269 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curTorrentProvider, 'confirmed'): #if $hasattr($curTorrentProvider, 'confirmed'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curTorrentProvider.getID()}_confirmed" id="${curTorrentProvider.getID()}_confirmed" #if $curTorrentProvider.confirmed then "checked=\"checked\"" else ""#/> <label for="${curTorrentProvider.getID()}_confirmed">
<label class="clearfix" for="${curTorrentProvider.getID()}_confirmed"> <span class="component-title">Confirmed download</span>
<span class="component-title">Confirmed Download</span> <span class="component-desc">
<span class="component-desc">Download torrent only from trusted/verified uploaders?</span> <input type="checkbox" name="${curTorrentProvider.getID()}_confirmed" id="${curTorrentProvider.getID()}_confirmed" #if $curTorrentProvider.confirmed then "checked=\"checked\"" else ""#/>
<p>only download torrents from trusted or verified uploaders ?</p>
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'freeleech'): #if $hasattr($curTorrentProvider, 'freeleech'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curTorrentProvider.getID()}_freeleech" id="${curTorrentProvider.getID()}_freeleech" #if $curTorrentProvider.freeleech then "checked=\"checked\"" else ""#/> <label for="${curTorrentProvider.getID()}_freeleech">
<label class="clearfix" for="${curTorrentProvider.getID()}_freeleech"> <span class="component-title">Freeleech</span>
<span class="component-title">FreeLeech</span> <span class="component-desc">
<span class="component-desc">This will only download <b>[FreeLeech]</b> torrents.</span> <input type="checkbox" name="${curTorrentProvider.getID()}_freeleech" id="${curTorrentProvider.getID()}_freeleech" #if $curTorrentProvider.freeleech then "checked=\"checked\"" else ""#/>
<p>only download <b>[FreeLeech]</b> torrents.</p>
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'enable_daily'): #if $hasattr($curTorrentProvider, 'enable_daily'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curTorrentProvider.getID()}_enable_daily" id="${curTorrentProvider.getID()}_enable_daily" #if $curTorrentProvider.enable_daily then "checked=\"checked\"" else ""#/> <label for="${curTorrentProvider.getID()}_enable_daily">
<label class="clearfix" for="${curTorrentProvider.getID()}_enable_daily"> <span class="component-title">Enable daily searches</span>
<span class="component-title">Enable Daily Searches</span> <span class="component-desc">
<span class="component-desc"> <input type="checkbox" name="${curTorrentProvider.getID()}_enable_daily" id="${curTorrentProvider.getID()}_enable_daily" #if $curTorrentProvider.enable_daily then "checked=\"checked\"" else ""#/>
Enables daily searches <p>enable provider to perform daily searches.</p>
</span> </span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'enable_backlog'): #if $hasattr($curTorrentProvider, 'enable_backlog'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curTorrentProvider.getID()}_enable_backlog" id="${curTorrentProvider.getID()}_enable_backlog" #if $curTorrentProvider.enable_backlog then "checked=\"checked\"" else ""#/> <label for="${curTorrentProvider.getID()}_enable_backlog">
<label class="clearfix" for="${curTorrentProvider.getID()}_enable_backlog"> <span class="component-title">Enable backlog searches</span>
<span class="component-title">Enable Backlog Searches</span> <span class="component-desc">
<span class="component-desc"> <input type="checkbox" name="${curTorrentProvider.getID()}_enable_backlog" id="${curTorrentProvider.getID()}_enable_backlog" #if $curTorrentProvider.enable_backlog then "checked=\"checked\"" else ""#/>
Enables backlog searches <p>enable provider to perform backlog searches.</p>
</span> </span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'search_fallback'): #if $hasattr($curTorrentProvider, 'search_fallback'):
<div class="field-pair"> <div class="field-pair">
<input type="checkbox" name="${curTorrentProvider.getID()}_search_fallback" id="${curTorrentProvider.getID()}_search_fallback" #if $curTorrentProvider.search_fallback then "checked=\"checked\"" else ""#/> <label for="${curTorrentProvider.getID()}_search_fallback">
<label class="clearfix" for="${curTorrentProvider.getID()}_search_fallback"> <span class="component-title">Season search fallback</span>
<span class="component-title">Season Search Fallback</span>
<span class="component-desc"> <span class="component-desc">
When searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode. <input type="checkbox" name="${curTorrentProvider.getID()}_search_fallback" id="${curTorrentProvider.getID()}_search_fallback" #if $curTorrentProvider.search_fallback then "checked=\"checked\"" else ""#/>
</span> <p>when searching for a complete season depending on search mode you may return no results, this helps by restarting the search using the opposite search mode.</p>
</span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'search_mode'): #if $hasattr($curTorrentProvider, 'search_mode'):
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label>
<span class="component-title">Season Search Mode</span> <span class="component-title">Season search mode</span>
<span class="component-desc2"> <span class="component-desc">
When searching for complete seasons you can choose to have it look for season packs ONLY or choose to have it build a complete season from just single episodes. <p>when searching for complete seasons you can choose to have it look for season packs only, or choose to have it build a complete season from just single episodes.</p>
</span> </span>
</label>
<span class="component-title"></span> <label>
<input type="radio" style="margin-top: 2px !important;" name="${curTorrentProvider.getID()}_search_mode" id="${curTorrentProvider.getID()}_search_mode_sponly" value="sponly" class="radio" #if $curTorrentProvider.search_mode=="sponly" then "checked=\"checked\"" else ""# />Season Packs ONLY!<br /> <span class="component-title"></span>
<span class="component-title"></span> <span class="component-desc">
<input type="radio" style="margin-top: 2px !important;" name="${curTorrentProvider.getID()}_search_mode" id="${curTorrentProvider.getID()}_search_mode_eponly" value="eponly" class="radio" #if $curTorrentProvider.search_mode=="eponly" then "checked=\"checked\"" else ""# />Episodes ONLY!<br /> <input type="radio" name="${curTorrentProvider.getID()}_search_mode" id="${curTorrentProvider.getID()}_search_mode_sponly" value="sponly" #if $curTorrentProvider.search_mode=="sponly" then "checked=\"checked\"" else ""# />season packs only.
</span>
</label>
<label>
<span class="component-title"></span>
<span class="component-desc">
<input type="radio" name="${curTorrentProvider.getID()}_search_mode" id="${curTorrentProvider.getID()}_search_mode_eponly" value="eponly" #if $curTorrentProvider.search_mode=="eponly" then "checked=\"checked\"" else ""# />episodes only.
</span> </span>
</label> </label>
</div> </div>
#end if #end if
#if $hasattr($curTorrentProvider, 'options'):
<br>
<input type="hidden" id="tvtorrents_option_string" />
<fieldset>
<legend id="seed_options">Advanced options</legend>
<div class="field-pair">
<label >
<span class="component-title">Seeding ratio(%) goal:</span>
<input type="text" id="tvtorrents_seed_ratio" class="seed_option form-control input-sm input75" />
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title">Seeding time(h) goal:</span>
<input type="text" id="tvtorrents_seed_time" class="seed_option form-control input-sm input75" />
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title">Process method:</span>
<select id="tvtorrents_process_method" class="seed_option form-control input-sm" >
#set $process_method_text = {'': "", 'copy': "Copy", 'move': "Move", 'hardlink': "Hard Link", 'symlink' : "Symbolic Link"}
#for $curAction in ('', 'copy', 'move', 'hardlink', 'symlink'):
#set $process_method = ""
<option class="seed_option" value="$curAction" $process_method>$process_method_text[$curAction]</option>
#end for
</select>
</label>
</div>
</fieldset>
<br>
#end if
</div> </div>
#end for #end for
<!-- end div for editing providers --> <!-- end div for editing providers -->
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/> <input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</fieldset> </fieldset>
</div><!-- /component-group2 //--> </div><!-- /component-group2 //-->
#if $sickbeard.USE_NZBS #if $sickbeard.USE_NZBS
<div id="core-component-group3" class="component-group clearfix"> <div id="core-component-group3" class="component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Configure Custom<br />Newznab Providers</h3> <h3>Configure Custom<br />Newznab Providers</h3>
<p>Add and setup custom Newznab providers.</p> <p>Add and setup or remove custom Newznab providers.</p>
<p>Some built-in Newznab providers are already available above.</p>
</div> </div>
<fieldset class="component-group-list"> <fieldset class="component-group-list">
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="newznab_string">
<span class="component-title jumbo">Select Provider:</span> <span class="component-title">Select provider:</span>
<span class="component-desc"> <span class="component-desc">
<input type="hidden" name="newznab_string" id="newznab_string" /> <input type="hidden" name="newznab_string" id="newznab_string" />
<select id="editANewznabProvider"> <select id="editANewznabProvider" class="form-control input-sm">
<option value="addNewznab">-- add new provider --</option> <option value="addNewznab">-- add new provider --</option>
</select> </select>
</span> </span>
</label> </label>
</div> </div>
<div class="newznabProviderDiv" id="addNewznab"> <div class="newznabProviderDiv" id="addNewznab">
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label for="newznab_name">
<span class="component-title">Provider Name</span> <span class="component-title">Provider name:</span>
<input class="component-desc" type="text" id="newznab_name" size="40" /> <input type="text" id="newznab_name" class="form-control input-sm input200" />
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label for="newznab_url">
<span class="component-title">Site URL</span> <span class="component-title">Site URL:</span>
<input class="component-desc" type="text" id="newznab_url" size="40" /> <input type="text" id="newznab_url" class="form-control input-sm input350" />
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label for="newznab_key">
<span class="component-title">API Key</span> <span class="component-title">API key:</span>
<input class="component-desc" type="text" id="newznab_key" size="40" /> <input type="text" id="newznab_key" class="form-control input-sm input350" />
</label> </label>
<label class="nocheck clearfix"> <label>
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">(if not required, type 0)</span> <span class="component-desc">(if not required, type 0)</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label>
<span class="component-title">NewzNab search categories</span> <span class="component-title">Newznab search categories:</span>
<select id="newznab_cap" multiple="multiple" style="min-width:10em;" ></select> <select id="newznab_cap" multiple="multiple" style="min-width:10em;" ></select>
<select id="newznab_cat" multiple="multiple" style="min-width:10em;" ></select> <select id="newznab_cat" multiple="multiple" style="min-width:10em;" ></select>
</label> </label>
<label class="clearfix"> <label>
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">(Select your Newznab categories on the left, and click the "update categories" button to use them for searching.) <span class="component-desc">(select your Newznab categories on the left, and click the "update categories" button to use them for searching.) <b>don't forget to to save the form!</b></span>
Don't forget to to save the form!</span> </label>
</label> <label>
<input class="btn" type="button" class="newznab_cat_update" id="newznab_cat_update" value="Update Categories" /> <span class="component-title">&nbsp;</span>
<span class="component-desc"><input class="btn" type="button" class="newznab_cat_update" id="newznab_cat_update" value="Update Categories" /></span>
</label>
</div> </div>
<div id="newznab_add_div"> <div id="newznab_add_div">
<input class="btn" type="button" class="newznab_save" id="newznab_add" value="Add" /> <input class="btn" type="button" class="newznab_save" id="newznab_add" value="Add" />
</div> </div>
<div id="newznab_update_div" style="display: none;"> <div id="newznab_update_div" style="display: none;">
<input class="btn btn-danger newznab_delete" type="button" class="newznab_delete" id="newznab_delete" value="Delete" /> <input class="btn btn-danger newznab_delete" type="button" class="newznab_delete" id="newznab_delete" value="Delete" />
</div> </div>
</div> </div>
</fieldset> </fieldset>
</div><!-- /component-group3 //--> </div><!-- /component-group3 //-->
#end if #end if
#if $sickbeard.USE_TORRENTS: #if $sickbeard.USE_TORRENTS:
<div id="core-component-group4" class="component-group clearfix"> <div id="core-component-group4" class="component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Configure Custom Torrent Providers</h3> <h3>Configure Custom Torrent Providers</h3>
<p>Add and setup custom RSS providers.</p> <p>Add and setup or remove custom RSS providers.</p>
<p>&nbsp;</p> </div>
<fieldset class="component-group-list">
<div class="field-pair">
<label for="torrentrss_string">
<span class="component-title">Select provider:</span>
<span class="component-desc">
<input type="hidden" name="torrentrss_string" id="torrentrss_string" />
<select id="editATorrentRssProvider" class="form-control input-sm">
<option value="addTorrentRss">-- add new provider --</option>
</select>
</span>
</label>
</div> </div>
<fieldset class="component-group-list"> <div class="torrentRssProviderDiv" id="addTorrentRss">
<div class="field-pair"> <div class="field-pair">
<label class="clearfix"> <label for="torrentrss_name">
<span class="component-title jumbo">Select Provider:</span> <span class="component-title">Provider name:</span>
<span class="component-desc"> <input type="text" id="torrentrss_name" class="form-control input-sm input200" />
<input type="hidden" name="torrentrss_string" id="torrentrss_string" />
<select id="editATorrentRssProvider">
<option value="addTorrentRss">-- add new provider --</option>
</select>
</span>
</label>
</div>
<div class="torrentRssProviderDiv" id="addTorrentRss">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Provider Name:</span>
<input class="component-desc" type="text" id="torrentrss_name" size="20" />
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label for="torrentrss_url">
<span class="component-title">RSS URL:</span> <span class="component-title">RSS URL:</span>
<input class="component-desc" type="text" id="torrentrss_url" size="40" /> <input type="text" id="torrentrss_url" class="form-control input-sm input350" />
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label for="torrentrss_cookies">
<span class="component-title">Cookies:</span> <span class="component-title">Cookies:</span>
<input class="component-desc" type="text" id="torrentrss_cookies" size="40" /> <input type="text" id="torrentrss_cookies" class="form-control input-sm input350" />
</label> </label>
<label class="nocheck clearfix"> <label>
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">eg. uid=xx;pass=yy</span> <span class="component-desc">eg. uid=xx;pass=yy</span>
</label> </label>
</div> </div>
<div id="torrentrss_add_div"> <div id="torrentrss_add_div">
<input type="button" class="btn torrentrss_save" id="torrentrss_add" value="Add" /> <input type="button" class="btn torrentrss_save" id="torrentrss_add" value="Add" />
</div> </div>
<div id="torrentrss_update_div" style="display: none;"> <div id="torrentrss_update_div" style="display: none;">
<input type="button" class="btn btn-danger torrentrss_delete" id="torrentrss_delete" value="Delete" /> <input type="button" class="btn btn-danger torrentrss_delete" id="torrentrss_delete" value="Delete" />
</div> </div>
</div> </div>
</fieldset> </fieldset>
</div><!-- /component-group4 //--> </div><!-- /component-group4 //-->
#end if #end if
<br/><input type="submit" class="btn config_submitter" value="Save Changes" /><br/> <br/><input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</div><!-- /config-components //--> </div><!-- /config-components //-->
</form> </form>
</div></div></div> </div>
<div class="clearfix"></div> </div>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
<!-- <!--
jQuery('#config-components').tabs(); jQuery('#config-components').tabs();

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
#from sickbeard import subtitles #from sickbeard import subtitles
#import sickbeard #import sickbeard
#from sickbeard.helpers import anon_url
#set global $title="Config - Subtitles" #set global $title="Config - Subtitles"
#set global $header="Subtitles" #set global $header="Subtitles"
@ -13,7 +14,6 @@
<script type="text/javascript" src="$sbRoot/js/configSubtitles.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/configSubtitles.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/config.js"></script> <script type="text/javascript" src="$sbRoot/js/config.js"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.tokeninput.js"></script> <script type="text/javascript" src="$sbRoot/js/lib/jquery.tokeninput.js"></script>
<link rel="stylesheet" type="text/css" href="$sbRoot/css/token-input.css" />
<script type="text/javascript"> <script type="text/javascript">
\$(document).ready(function() { \$(document).ready(function() {
@ -36,7 +36,7 @@
); );
}); });
</script> </script>
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
@ -54,7 +54,7 @@
<li><a href="#core-component-group2">Subtitles Plugin</a></li> <li><a href="#core-component-group2">Subtitles Plugin</a></li>
</ul> </ul>
<div id="core-component-group4" class="component-group clearfix"> <div id="core-component-group4" class="component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Subtitles Search</h3> <h3>Subtitles Search</h3>
@ -70,31 +70,31 @@
</div> </div>
<div id="content_use_subtitles"> <div id="content_use_subtitles">
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">Subtitle Languages</span> <span class="component-title">Subtitle Languages</span>
<input type="text" id="subtitles_languages" name="subtitles_languages" style="border: 0px none"/> <span class="component-desc"><input type="text" id="subtitles_languages" name="subtitles_languages" /></span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">Subtitle Directory</span> <span class="component-title">Subtitle Directory</span>
<input type="text" size="35" value="$sickbeard.SUBTITLES_DIR" id="subtitles_dir" name="subtitles_dir"> <input type="text" value="$sickbeard.SUBTITLES_DIR" id="subtitles_dir" name="subtitles_dir" class="form-control input-sm input350">
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">The directory where SickRage should store your <i>Subtitles</i> files.</span> <span class="component-desc">The directory where SickRage should store your <i>Subtitles</i> files.</span>
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Leave empty if you want store subtitle in episode path.</span> <span class="component-desc"><b>NOTE:</b> Leave empty if you want store subtitle in episode path.</span>
</label> </label>
</div> </div>
<div class="field-pair"> <div class="field-pair">
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">Subtitle Find Frequency</span> <span class="component-title">Subtitle Find Frequency</span>
<input type="number" name="subtitles_finder_frequency" value="$sickbeard.SUBTITLES_FINDER_FREQUENCY" size="5" hours="1" class="input-small" /> <input type="number" name="subtitles_finder_frequency" value="$sickbeard.SUBTITLES_FINDER_FREQUENCY" hours="1" class="form-control input-sm input75" />
</label> </label>
<label class="nocheck clearfix"> <label class="nocheck">
<span class="component-title">&nbsp;</span> <span class="component-title">&nbsp;</span>
<span class="component-desc">Time in hours between scans (hours. 1)</span> <span class="component-desc">Time in hours between scans (hours. 1)</span>
</label> </label>
@ -111,7 +111,7 @@
</fieldset> </fieldset>
</div><!-- /component-group1 //--> </div><!-- /component-group1 //-->
<div id="core-component-group2" class="component-group clearfix"> <div id="core-component-group2" class="component-group">
<div class="component-group-desc"> <div class="component-group-desc">
<h3>Subtitle Plugins</h3> <h3>Subtitle Plugins</h3>
@ -126,7 +126,8 @@
#set $curName = $curService.id #set $curName = $curService.id
<li class="ui-state-default" id="$curName"> <li class="ui-state-default" id="$curName">
<input type="checkbox" id="enable_$curName" class="service_enabler" #if $curService.enabled then "checked=\"checked\"" else ""#/> <input type="checkbox" id="enable_$curName" class="service_enabler" #if $curService.enabled then "checked=\"checked\"" else ""#/>
<a href="$curService.url" class="imgLink" target="_new"> #set $provider_url = $curService.url
<a href="<%= anon_url(provider_url) %>" class="imgLink" target="_new">
<img src="$sbRoot/images/subtitles/$curService.image" alt="$curService.name" title="$curService.name" width="16" height="16" style="vertical-align:middle;"/> <img src="$sbRoot/images/subtitles/$curService.image" alt="$curService.name" title="$curService.name" width="16" height="16" style="vertical-align:middle;"/>
</a> </a>
<span style="vertical-align:middle;">$curService.name.capitalize()</span> <span style="vertical-align:middle;">$curService.name.capitalize()</span>
@ -146,7 +147,9 @@
</div><!-- /config-components //--> </div><!-- /config-components //-->
</form> </form>
</div></div></div> </div>
</div>
<div class="clearfix"></div> <div class="clearfix"></div>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
<!-- <!--

View File

@ -2,9 +2,11 @@
#from sickbeard import subtitles, sbdatetime, network_timezones #from sickbeard import subtitles, sbdatetime, network_timezones
#import sickbeard.helpers #import sickbeard.helpers
#from sickbeard.common import * #from sickbeard.common import *
#from sickbeard.helpers import anon_url
#from lib import subliminal #from lib import subliminal
#import os.path, os #import os.path, os
#import datetime #import datetime
#set global $title=$show.name #set global $title=$show.name
##set global $header = '<a></a>' % ##set global $header = '<a></a>' %
#set global $topmenu="manageShows"# #set global $topmenu="manageShows"#
@ -15,10 +17,6 @@
<script type="text/javascript" src="$sbRoot/js/jwplayer/jwplayer.js"></script> <script type="text/javascript" src="$sbRoot/js/jwplayer/jwplayer.js"></script>
<script type="text/javascript">jwplayer.key="Zq3m618ITHrFxeKGi3Gf33ovC+XtdGQz19MMug==";</script> <script type="text/javascript">jwplayer.key="Zq3m618ITHrFxeKGi3Gf33ovC+XtdGQz19MMug==";</script>
#if $show_message:
<div id="show_message" class="ui-corner-all">$show_message</div><br />
#end if
<input type="hidden" id="sbRoot" value="$sbRoot" /> <input type="hidden" id="sbRoot" value="$sbRoot" />
<script type="text/javascript" src="$sbRoot/js/displayShow.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/displayShow.js?$sbPID"></script>
@ -60,89 +58,36 @@
}); });
//--> //-->
</script> </script>
<div id="middlewrap">
<div class="navShows">
</br>
<div class="align-left">
<div id="middle">Change Show:</div>
<div id="middle"><div class="navShow"><img id="prevShow" src="$sbRoot/images/prev.png" alt="&lt;&lt;" title="Prev Show" /></div></div>
<div id="middle">
<select id="pickShow">
#for $curShowList in $sortedShowLists:
#set $curShowType = $curShowList[0]
#set $curShowList = $curShowList[1]
#if len($sortedShowLists) > 1: <div class="pull-left form-inline">
<optgroup label="$curShowType"> Change Show:
#end if <div class="navShow"><img id="prevShow" src="$sbRoot/images/prev.png" alt="&lt;&lt;" title="Prev Show" /></div>
#for $curShow in $curShowList: <select id="pickShow" class="form-control form-control-inline input-sm">
<option value="$curShow.indexerid" #if $curShow == $show then "selected=\"selected\"" else ""#>$curShow.name</option> #for $curShowList in $sortedShowLists:
#end for #set $curShowType = $curShowList[0]
#if len($sortedShowLists) > 1: #set $curShowList = $curShowList[1]
</optgroup>
#end if
#end for
</select>
</div>
<div id="middle"><div class="navShow"><img id="nextShow" src="$sbRoot/images/next.png" alt="&gt;&gt;" title="Next Show" /></div></div> #if len($sortedShowLists) > 1:
</div></div></div> <optgroup label="$curShowType">
#end if
#for $curShow in $curShowList:
<option value="$curShow.indexerid" #if $curShow == $show then "selected=\"selected\"" else ""#>$curShow.name</option>
#end for
#if len($sortedShowLists) > 1:
</optgroup>
#end if
#end for
</select>
<div class="navShow"><img id="nextShow" src="$sbRoot/images/next.png" alt="&gt;&gt;" title="Next Show" /></div>
</div>
<div id="posterCol"> <div class="clearfix"></div>
<a href="$sbRoot/showPoster/?show=$show.indexerid&amp;which=poster" rel="dialog" title="View Poster for $show.name"><img src="$sbRoot/showPoster/?show=$show.indexerid&amp;which=poster" class="tvshowImg" alt=""/></a>
</div>
<div id="showCol">
<div id="showtitle" data-showname="$show.name"> <div id="showtitle" data-showname="$show.name">
<h1 class="title" id="scene_exception_$show.indexerid"><a>$show.name</a></h1> <h1 class="title" id="scene_exception_$show.indexerid">$show.name</h1>
</div>
<div id="showinfo">
#if 'rating' in $show.imdb_info:
#set $rating_tip = str($show.imdb_info['rating']) + " / 10" + " Stars" + "<br />" + str($show.imdb_info['votes']) + " Votes"
<span class="imdbstars" qtip-content="$rating_tip">$show.imdb_info['rating']</span>
#end if
#if not $show.imdbid
<span>($show.startyear) - $show.runtime minutes - </span>
#else
#if 'country_codes' in $show.imdb_info:
#for $country in $show.imdb_info['country_codes'].split('|')
<img src="$sbRoot/images/flags/${$country}.png" width="16" height="11" style="margin-left: 3px; vertical-align:middle;" />
#end for
#end if
#if 'year' in $show.imdb_info:
<span>($show.imdb_info['year']) - $show.imdb_info['runtimes'] minutes - </span>
#end if
<a href="http://www.imdb.com/title/$show.imdbid" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;" title="http://www.imdb.com/title/$show.imdbid"><img alt="[imdb]" height="16" width="16" src="$sbRoot/images/imdb.png" style="margin-top: -1px; vertical-align:middle;"/></a>
#end if
<a href="$sickbeard.indexerApi($show.indexer).config["show_url"]$show.indexerid" onclick="window.open(this.href, '_blank'); return false;" title="$sickbeard.indexerApi($show.indexer).config["show_url"]$show.indexerid"><img alt="$sickbeard.indexerApi($show.indexer).name" height="16" width="16" src="$sbRoot/images/$sickbeard.indexerApi($show.indexer).config["icon"] "style="margin-top: -1px; vertical-align:middle;"/></a>
#if $xem_numbering or $xem_absolute_numbering:
<a href="http://thexem.de/search?q=$show.name" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href, '_blank'); return false;" title="http://thexem.de/search?q-$show.name"><img alt="[xem]" height="16" width="16" src="$sbRoot/images/xem.png" style="margin-top: -1px; vertical-align:middle;"/></a>
#end if
</div> </div>
<div id="tags">
<ul class="tags">
#if not $show.imdbid
#if $show.genre:
#for $genre in $show.genre[1:-1].split('|')
<a href="http://trakt.tv/shows/popular/${genre.lower()}" target="_blank" title="View other popular $genre shows on trakt.tv."><li>$genre</li></a>
#end for
#end if
#end if
#if 'year' in $show.imdb_info:
#for $imdbgenre in $show.imdb_info['genres'].replace('Sci-Fi','Science-Fiction').split('|')
<a href="http://trakt.tv/shows/popular/${imdbgenre.lower()}" target="_blank" title="View other popular $imdbgenre shows on trakt.tv."><li>$imdbgenre</li></a>
#end for
#end if
</ul>
</div>
<div style="clear: left;"></div>
<div id="seasons">
#if $seasonResults: #if $seasonResults:
##There is a special/season_0?## ##There is a special/season_0?##
#if int($seasonResults[-1]["season"]) == 0: #if int($seasonResults[-1]["season"]) == 0:
@ -155,119 +100,178 @@
$seasonResults.pop(-1) $seasonResults.pop(-1)
#end if #end if
<div class="seasonList"> <span class="h2footer displayspecials pull-right">
#if $season_special:
Display Specials:
#if sickbeard.DISPLAY_SHOW_SPECIALS:
<a class="inner" href="$sbRoot/toggleDisplayShowSpecials/?show=$show.indexerid">Hide</a>
#else:
<a class="inner" href="$sbRoot/toggleDisplayShowSpecials/?show=$show.indexerid">Show</a>
#end if
#end if
</span>
<div class="h2footer pull-right">
<span> <span>
#if (len($seasonResults) > 14): #if (len($seasonResults) > 14):
<select id="seasonJump"> <select id="seasonJump" class="form-control input-sm" style="position: relative; top: -4px;">
<option value="jump">Jump to Season</option> <option value="jump">Jump to Season</option>
#for $seasonNum in $seasonResults: #for $seasonNum in $seasonResults:
<option value="#season-$seasonNum["season"]">#if int($seasonNum["season"]) == 0 then "Specials" else "Season " + str($seasonNum["season"])#</option> <option value="#season-$seasonNum["season"]">#if int($seasonNum["season"]) == 0 then "Specials" else "Season " + str($seasonNum["season"])#</option>
#end for #end for
</select> </select>
#else: #else:
Season: Season:
#for $seasonNum in $seasonResults: #for $seasonNum in $seasonResults:
#if int($seasonNum["season"]) == 0: #if int($seasonNum["season"]) == 0:
<a href="#season-$seasonNum["season"]">Specials</a> <a href="#season-$seasonNum["season"]">Specials</a>
#else: #else:
<a href="#season-$seasonNum["season"]">${str($seasonNum["season"])}</a> <a href="#season-$seasonNum["season"]">${str($seasonNum["season"])}</a>
#end if #end if
#if $seasonNum != $seasonResults[-1]: #if $seasonNum != $seasonResults[-1]:
<span class="separator">|</span> <span class="separator">|</span>
#end if #end if
#end for #end for
#end if #end if
</span> </span>
<span class="float-right">
#if $season_special:
Display Specials:
#if sickbeard.DISPLAY_SHOW_SPECIALS:
<a class="inner" href="$sbRoot/toggleDisplayShowSpecials/?show=$show.indexerid">Hide</a>
#else:
<a class="inner" href="$sbRoot/toggleDisplayShowSpecials/?show=$show.indexerid">Show</a>
#end if
#end if
</span>
#end if #end if
</div> </div>
</div>
<div class="showsummary"> <div class="clearfix"></div>
<table style="width:73%; float: left;">
#if $show.network and $show.airs: #if $show_message:
<tr><td class="showLegend">Originally Airs: </td><td>$show.airs #if not $network_timezones.test_timeformat($show.airs) then " <font color='#FF0000'><b>(invalid Timeformat)</b></font> " else ""# on $show.network</td></tr> <div class="alert alert-info">
#else if $show.network: $show_message
<tr><td class="showLegend">Originally Airs: </td><td>$show.network</td></tr> </div>
#else if $show.airs: #end if
<tr><td class="showLegend">Originally Airs: </td><td>>$show.airs #if not $network_timezones.test_timeformat($show.airs) then " <font color='#FF0000'><b>(invalid Timeformat)</b></font> " else ""#</td></tr>
#end if <div id="container">
<tr><td class="showLegend">Status: </td><td>$show.status</td></tr> <div id="posterCol">
#if $showLoc[1]: <a href="$sbRoot/showPoster/?show=$show.indexerid&amp;which=poster" rel="dialog" title="View Poster for $show.name"><img src="$sbRoot/showPoster/?show=$show.indexerid&amp;which=poster_thumb" class="tvshowImg" alt=""/></a>
<tr><td class="showLegend">Location: </td><td>$showLoc[0]</td></tr> </div>
#else:
<tr><td class="showLegend"><span style="color: red;">Location: </span></td><td><span style="color: red;">$showLoc[0]</span> (dir is missing)</td></tr> <div id="showCol">
#end if
#set $anyQualities, $bestQualities = $Quality.splitQuality(int($show.quality)) <div id="showinfo">
<tr><td class="showLegend">Quality: </td><td> #if 'rating' in $show.imdb_info:
#if $show.quality in $qualityPresets: #set $rating_tip = str($show.imdb_info['rating']) + " / 10" + " Stars" + "<br />" + str($show.imdb_info['votes']) + " Votes"
<span class="quality $qualityPresetStrings[$show.quality]">$qualityPresetStrings[$show.quality]</span> <span class="imdbstars" qtip-content="$rating_tip">$show.imdb_info['rating']</span>
#else: #end if
#if $anyQualities:
<i>Initial:</i> <%=", ".join([Quality.qualityStrings[x] for x in sorted(anyQualities)])%> #if $bestQualities then " </br> " else ""# #set $_show = $show
#end if #if not $show.imdbid
#if $bestQualities: <span>($show.startyear) - $show.runtime minutes - </span>
<i>Replace with:</i> <%=", ".join([Quality.qualityStrings[x] for x in sorted(bestQualities)])%> #else
#end if #if 'country_codes' in $show.imdb_info:
#end if #for $country in $show.imdb_info['country_codes'].split('|')
<tr><td class="showLegend">Scene Name:</td><td>#if $show.exceptions then $exceptions_string else $show.name#</td></tr> <img src="$sbRoot/images/flags/${$country}.png" width="16" height="11" style="margin-left: 3px; vertical-align:middle;" />
#end for
#end if
#if 'year' in $show.imdb_info:
<span>($show.imdb_info['year']) - $show.imdb_info['runtimes'] minutes - </span>
#end if
<a href="<%= anon_url('http://www.imdb.com/title/', _show.imdbid) %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;" title="http://www.imdb.com/title/$show.imdbid"><img alt="[imdb]" height="16" width="16" src="$sbRoot/images/imdb.png" style="margin-top: -1px; vertical-align:middle;"/></a>
#end if
<a href="<%= anon_url(sickbeard.indexerApi(_show.indexer).config['show_url'], _show.indexerid) %>" onclick="window.open(this.href, '_blank'); return false;" title="$sickbeard.indexerApi($show.indexer).config["show_url"]$show.indexerid"><img alt="$sickbeard.indexerApi($show.indexer).name" height="16" width="16" src="$sbRoot/images/$sickbeard.indexerApi($show.indexer).config["icon"] "style="margin-top: -1px; vertical-align:middle;"/></a>
#if $xem_numbering or $xem_absolute_numbering:
<a href="<%= anon_url('http://thexem.de/search?q=', _show.name) %>" rel="noreferrer" onclick="window.open(this.href, '_blank'); return false;" title="http://thexem.de/search?q-$show.name"><img alt="[xem]" height="16" width="16" src="$sbRoot/images/xem.png" style="margin-top: -1px; vertical-align:middle;"/></a>
#end if
</div>
<div id="tags">
<ul class="tags">
#if not $show.imdbid
#if $show.genre:
#for $genre in $show.genre[1:-1].split('|')
<a href="<%= anon_url('http://trakt.tv/shows/popular/', genre.lower()) %>" target="_blank" title="View other popular $genre shows on trakt.tv."><li>$genre</li></a>
#end for
#end if
#end if
#if 'year' in $show.imdb_info:
#for $imdbgenre in $show.imdb_info['genres'].replace('Sci-Fi','Science-Fiction').split('|')
<a href="<%= anon_url('http://trakt.tv/shows/popular/', imdbgenre.lower()) %>" target="_blank" title="View other popular $imdbgenre shows on trakt.tv."><li>$imdbgenre</li></a>
#end for
#end if
</ul>
</div>
<div id="summary">
<table class="summaryTable pull-left">
#if $show.network and $show.airs:
<tr><td class="showLegend">Originally Airs: </td><td>$show.airs #if not $network_timezones.test_timeformat($show.airs) then " <font color='#FF0000'><b>(invalid Timeformat)</b></font> " else ""# on $show.network</td></tr>
#else if $show.network:
<tr><td class="showLegend">Originally Airs: </td><td>$show.network</td></tr>
#else if $show.airs:
<tr><td class="showLegend">Originally Airs: </td><td>>$show.airs #if not $network_timezones.test_timeformat($show.airs) then " <font color='#FF0000'><b>(invalid Timeformat)</b></font> " else ""#</td></tr>
#end if
<tr><td class="showLegend">Status: </td><td>$show.status</td></tr>
#if $showLoc[1]:
<tr><td class="showLegend">Location: </td><td>$showLoc[0]</td></tr>
#else:
<tr><td class="showLegend"><span style="color: red;">Location: </span></td><td><span style="color: red;">$showLoc[0]</span> (dir is missing)</td></tr>
#end if
#set $anyQualities, $bestQualities = $Quality.splitQuality(int($show.quality))
<tr><td class="showLegend">Quality: </td><td>
#if $show.quality in $qualityPresets:
<span class="quality $qualityPresetStrings[$show.quality]">$qualityPresetStrings[$show.quality]</span>
#else:
#if $anyQualities:
<i>Initial:</i> <%=", ".join([Quality.qualityStrings[x] for x in sorted(anyQualities)])%> #if $bestQualities then " </br> " else ""#
#end if
#if $bestQualities:
<i>Replace with:</i> <%=", ".join([Quality.qualityStrings[x] for x in sorted(bestQualities)])%>
#end if
#end if
<tr><td class="showLegend">Scene Name:</td><td>#if $show.exceptions then $exceptions_string else $show.name#</td></tr>
#if $show.rls_require_words:
<tr><td class="showLegend">Required Words: </td><td>#echo $show.rls_require_words#</td></tr>
#end if
#if $show.rls_ignore_words:
<tr><td class="showLegend">Ignored Words: </td><td>#echo $show.rls_ignore_words#</td></tr>
#end if
#if $bwl and $bwl.get_white_keywords_for("release_group"):
<tr><td class="showLegend">Wanted Group#if len($bwl.get_white_keywords_for("release_group"))>1 then "s" else ""#:</td>
<td>#echo ', '.join($bwl.get_white_keywords_for("release_group"))#</td>
</tr>
#end if
#if $bwl and $bwl.get_black_keywords_for("release_group"):
<tr><td class="showLegend">Unwanted Group#if len($bwl.get_black_keywords_for("release_group"))>1 then "s" else ""#:</td>
<td>#echo ', '.join($bwl.get_black_keywords_for("release_group"))#</td>
</tr>
#end if
<tr><td class="showLegend">Size:</td><td>$sickbeard.helpers.human(sickbeard.helpers.get_size($showLoc[0]))</td></tr>
</table>
#if $show.rls_require_words: <table style="width:180px; float: right; vertical-align: middle; height: 100%;">
<tr><td class="showLegend">Required Words: </td><td>#echo $show.rls_require_words#</td></tr> <tr><td class="showLegend">Info Language:</td><td><img src="$sbRoot/images/flags/${show.lang}.png" width="16" height="11" alt="$show.lang" title="$show.lang" /></td></tr>
#end if #if $sickbeard.USE_SUBTITLES
#if $show.rls_ignore_words: <tr><td class="showLegend">Subtitles: </td><td><img src="$sbRoot/images/#if int($show.subtitles) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">Ignored Words: </td><td>#echo $show.rls_ignore_words#</td></tr> #end if
#end if <tr><td class="showLegend">Flat Folders: </td><td><img src="$sbRoot/images/#if $show.flatten_folders == 1 or $sickbeard.NAMING_FORCE_FOLDERS then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
#if $bwl and $bwl.get_white_keywords_for("release_group"): <tr><td class="showLegend">Paused: </td><td><img src="$sbRoot/images/#if int($show.paused) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">Wanted Group#if len($bwl.get_white_keywords_for("release_group"))>1 then "s" else ""#:</td> <tr><td class="showLegend">Air-by-Date: </td><td><img src="$sbRoot/images/#if int($show.air_by_date) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<td>#echo ', '.join($bwl.get_white_keywords_for("release_group"))#</td> <tr><td class="showLegend">Sports: </td><td><img src="$sbRoot/images/#if int($show.is_sports) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
</tr> <tr><td class="showLegend">Anime: </td><td><img src="$sbRoot/images/#if int($show.is_anime) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
#end if <tr><td class="showLegend">DVD Order: </td><td><img src="$sbRoot/images/#if int($show.dvdorder) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
#if $bwl and $bwl.get_black_keywords_for("release_group"): <tr><td class="showLegend">Scene Numbering: </td><td><img src="$sbRoot/images/#if int($show.scene) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">Unwanted Group#if len($bwl.get_black_keywords_for("release_group"))>1 then "s" else ""#:</td> #if $anyQualities + $bestQualities
<td>#echo ', '.join($bwl.get_black_keywords_for("release_group"))#</td> <tr><td class="showLegend">Archive First Match: </td><td><img src="$sbRoot/images/#if int($show.archive_firstmatch) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
</tr> #end if
#end if </table>
</div>
<tr><td class="showLegend">Size:</td><td>$sickbeard.helpers.human(sickbeard.helpers.get_size($showLoc[0]))</td></tr>
</div>
</table>
<table style="width:27%; float: right; vertical-align: middle; height: 100%;">
<tr><td class="showLegend">Info Language:</td><td><img src="$sbRoot/images/flags/${show.lang}.png" width="16" height="11" alt="$show.lang" title="$show.lang" /></td></tr>
#if $sickbeard.USE_SUBTITLES
<tr><td class="showLegend">Subtitles: </td><td><img src="$sbRoot/images/#if int($show.subtitles) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
#end if
<tr><td class="showLegend">Flat Folders: </td><td><img src="$sbRoot/images/#if $show.flatten_folders == 1 or $sickbeard.NAMING_FORCE_FOLDERS then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">Paused: </td><td><img src="$sbRoot/images/#if int($show.paused) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">Air-by-Date: </td><td><img src="$sbRoot/images/#if int($show.air_by_date) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">Sports: </td><td><img src="$sbRoot/images/#if int($show.is_sports) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">Anime: </td><td><img src="$sbRoot/images/#if int($show.is_anime) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">DVD Order: </td><td><img src="$sbRoot/images/#if int($show.dvdorder) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
<tr><td class="showLegend">Scene Numbering: </td><td><img src="$sbRoot/images/#if int($show.scene) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
#if $anyQualities + $bestQualities
<tr><td class="showLegend">Archive First Match: </td><td><img src="$sbRoot/images/#if int($show.archive_firstmatch) == 1 then "yes16.png\" alt=\"Y" else "no16.png\" alt=\"N"#" width="16" height="16" /></td></tr>
#end if
</table>
</div> </div>
</div>
<div class="clearfix"></div>
<div style="clear:both;" class="clearfix"></div>
<div class="pull-left" style="padding-bottom: 10px;">
<div style="height:40px;line-height:40px;">
<div class="float-left" style="display:inline-block; vertical-align:baseline;">
Change selected episodes to Change selected episodes to
<select id="statusSelect"> <select id="statusSelect" class="form-control form-control-inline input-sm">
#for $curStatus in [$WANTED, $SKIPPED, $ARCHIVED, $IGNORED, $FAILED] + sorted($Quality.DOWNLOADED): #for $curStatus in [$WANTED, $SKIPPED, $ARCHIVED, $IGNORED, $FAILED] + sorted($Quality.DOWNLOADED):
#if $curStatus == $DOWNLOADED: #if $curStatus == $DOWNLOADED:
#continue #continue
@ -277,26 +281,27 @@
</select> </select>
<input type="hidden" id="showID" value="$show.indexerid" /> <input type="hidden" id="showID" value="$show.indexerid" />
<input type="hidden" id="indexer" value="$show.indexer" /> <input type="hidden" id="indexer" value="$show.indexer" />
<input class="btn" type="button" id="changeStatus" value="Go" /> <input class="btn btn-inline" type="button" id="changeStatus" value="Go" />
</div> </div>
</div>
<div id="checkboxControls" style="display:inline-block; vertical-align:baseline;"> <div class="pull-right clearfix" id="checkboxControls">
Filters: <label for="wanted"><span class="wanted"><input type="checkbox" id="wanted" checked="checked" /> Wanted: <b>$epCounts[$Overview.WANTED]</b></span></label> <div style="padding-bottom: 5px;">
<label for="qual"><span class="qual"><input type="checkbox" id="qual" checked="checked" /> Low Quality: <b>$epCounts[$Overview.QUAL]</b></span></label> <label for="wanted"><span class="wanted"><input type="checkbox" id="wanted" checked="checked" /> Wanted: <b>$epCounts[$Overview.WANTED]</b></span></label>
<label for="good"><span class="good"><input type="checkbox" id="good" checked="checked" /> Downloaded: <b>$epCounts[$Overview.GOOD]</b></span></label> <label for="qual"><span class="qual"><input type="checkbox" id="qual" checked="checked" /> Low Quality: <b>$epCounts[$Overview.QUAL]</b></span></label>
<label for="skipped"><span class="skipped"><input type="checkbox" id="skipped" checked="checked" /> Skipped: <b>$epCounts[$Overview.SKIPPED]</b></span></label> <label for="good"><span class="good"><input type="checkbox" id="good" checked="checked" /> Downloaded: <b>$epCounts[$Overview.GOOD]</b></span></label>
<label for="snatched"><span class="snatched"><input type="checkbox" id="snatched" checked="checked" /> Snatched: <b>$epCounts[$Overview.SNATCHED]</b></span></label> <label for="skipped"><span class="skipped"><input type="checkbox" id="skipped" checked="checked" /> Skipped: <b>$epCounts[$Overview.SKIPPED]</b></span></label>
</div> <label for="snatched"><span class="snatched"><input type="checkbox" id="snatched" checked="checked" /> Snatched: <b>$epCounts[$Overview.SNATCHED]</b></span></label>
</div>
<div style="margin-top: -4px; display:inline-block; vertical-align:middle">
<button class="btn btn-mini seriesCheck" style="line-height: 10px;">Select Filtered Episodes</button> <div class="pull-right" >
<button class="btn btn-mini clearAll" style="line-height: 10px;">Clear All</button> <button class="btn btn-xs seriesCheck">Select Filtered Episodes</button>
</div> <button class="btn btn-xs clearAll">Clear All</button>
</div>
</div>
<br /> <br />
<table class="sickbeardTable" cellspacing="0" border="0" cellpadding="0"> <table class="sickbeardTable display_show" cellspacing="0" border="0" cellpadding="0">
#set $curSeason = -1 #set $curSeason = -1
#set $odd = 0 #set $odd = 0
@ -346,11 +351,8 @@
#end if #end if
#if int($epResult["season"]) != $curSeason: #if int($epResult["season"]) != $curSeason:
<tr><td colspan="13" style="height: 0px; padding:0; margin:0;"><a name="season-$epResult["season"]"></a></td></tr> <tr>
<tr class="seasonheader" id="season-$epResult["season"]" > <th class="row-seasonheader" colspan="13" style="width: auto;"><h3><a name="season-$epResult["season"]"></a>#if int($epResult["season"]) == 0 then "Specials" else "Season " + str($epResult["season"])#</h3></th>
<td colspan="13">
<h2>#if int($epResult["season"]) == 0 then "Specials" else "Season "+str($epResult["season"])#</h2>
</td>
</tr> </tr>
<tr id="season-$epResult["season"]-cols" class="seasoncols"> <tr id="season-$epResult["season"]-cols" class="seasoncols">
@ -370,13 +372,13 @@
#if $scene_anime: #if $scene_anime:
<th class="col-ep">Scene Absolute</th> <th class="col-ep">Scene Absolute</th>
#end if #end if
<th>Name</th> <th class="col-name">Name</th>
<th class="col-airdate">Airdate</th> <th class="col-airdate">Airdate</th>
#if $sickbeard.USE_SUBTITLES and $show.subtitles: #if $sickbeard.USE_SUBTITLES and $show.subtitles:
<th class="col-subtitles">Subtitles</th> <th class="col-subtitles">Subtitles</th>
#end if #end if
<th>Status</th> <th class="col-status">Status</th>
<th>Search</th> <th class="col-search">Search</th>
</tr> </tr>
#set $curSeason = int($epResult["season"]) #set $curSeason = int($epResult["season"])
#end if #end if
@ -385,7 +387,7 @@
<tr class="$Overview.overviewStrings[$epCats[$epStr]] season-$curSeason seasonstyle"> <tr class="$Overview.overviewStrings[$epCats[$epStr]] season-$curSeason seasonstyle">
<td class="col-checkbox check"> <td class="col-checkbox">
#if int($epResult["status"]) != $UNAIRED #if int($epResult["status"]) != $UNAIRED
<input type="checkbox" class="epCheck" id="<%=str(epResult["season"])+'x'+str(epResult["episode"])%>" name="<%=str(epResult["season"]) +"x"+str(epResult["episode"]) %>" /> <input type="checkbox" class="epCheck" id="<%=str(epResult["season"])+'x'+str(epResult["episode"])%>" name="<%=str(epResult["season"]) +"x"+str(epResult["episode"]) %>" />
@ -429,7 +431,7 @@
#if $scene: #if $scene:
<td align="center"> <td align="center">
<input type="text" placeholder="<%=str(dfltSeas) + 'x' + str(dfltEpis)%>" size="6" maxlength="8" <input type="text" placeholder="<%=str(dfltSeas) + 'x' + str(dfltEpis)%>" size="6" maxlength="8"
class="sceneSeasonXEpisode" data-for-season="$epResult["season"]" data-for-episode="$epResult["episode"]" class="sceneSeasonXEpisode form-control input-scene" data-for-season="$epResult["season"]" data-for-episode="$epResult["episode"]"
id="sceneSeasonXEpisode_$show.indexerid<%="_"+str(epResult["season"])+"_"+str(epResult["episode"])%>" id="sceneSeasonXEpisode_$show.indexerid<%="_"+str(epResult["season"])+"_"+str(epResult["episode"])%>"
title="Change the value here if scene numbering differs from the indexer episode numbering" title="Change the value here if scene numbering differs from the indexer episode numbering"
#if $dfltEpNumbering: #if $dfltEpNumbering:
@ -442,7 +444,7 @@
#elif $scene_anime: #elif $scene_anime:
<td align="center"> <td align="center">
<input type="text" placeholder="<%=str(dfltAbsolute)%>" size="6" maxlength="8" <input type="text" placeholder="<%=str(dfltAbsolute)%>" size="6" maxlength="8"
class="sceneAbsolute" data-for-absolute="$epResult["absolute_number"]" class="sceneAbsolute form-control input-scene" data-for-absolute="$epResult["absolute_number"]"
id="sceneAbsolute_$show.indexerid<%="_"+str(epResult["absolute_number"])%>" id="sceneAbsolute_$show.indexerid<%="_"+str(epResult["absolute_number"])%>"
title="Change the value here if scene absolute numbering differs from the indexer absolute numbering" title="Change the value here if scene absolute numbering differs from the indexer absolute numbering"
#if $dfltAbsNumbering: #if $dfltAbsNumbering:
@ -454,7 +456,7 @@
</td> </td>
#end if #end if
<td class="title"> <td class="col-name">
#if $epResult["description"] != "" and $epResult["description"] != None: #if $epResult["description"] != "" and $epResult["description"] != None:
<img src="$sbRoot/images/info32.png" width="16" height="16" class="plotInfo" alt="" id="plot_info_$show.indexerid<%="_" + str(epResult["season"]) + "_" + str(epResult["episode"])%>" /> <img src="$sbRoot/images/info32.png" width="16" height="16" class="plotInfo" alt="" id="plot_info_$show.indexerid<%="_" + str(epResult["season"]) + "_" + str(epResult["episode"])%>" />
#else: #else:
@ -463,12 +465,12 @@
$epResult["name"] $epResult["name"]
</td> </td>
<td align="center" class="nowrap"> <td class="col-airdate">
<span class="${fuzzydate}">#if int($epResult["airdate"]) == 1 then "never" else $sbdatetime.sbdatetime.sbfdate($network_timezones.parse_date_time($epResult["airdate"],$show.airs,$show.network))#</span> <span class="${fuzzydate}">#if int($epResult['airdate']) == 1 then 'never' else $sbdatetime.sbdatetime.sbfdate($sbdatetime.sbdatetime.convert_to_setting($network_timezones.parse_date_time($epResult['airdate'],$show.airs,$show.network)))#</span>
</td> </td>
#if $sickbeard.USE_SUBTITLES and $show.subtitles: #if $sickbeard.USE_SUBTITLES and $show.subtitles:
<td id="subtitles_column" class="subtitles_column" align="center"> <td class="col-subtitles" align="center">
#if $epResult["subtitles"]: #if $epResult["subtitles"]:
#for $sub_lang in subliminal.language.language_list($epResult["subtitles"].split(',')): #for $sub_lang in subliminal.language.language_list($epResult["subtitles"].split(',')):
#if sub_lang.alpha2 != "" #if sub_lang.alpha2 != ""
@ -481,12 +483,12 @@
#set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($epResult["status"])) #set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($epResult["status"]))
#if $curQuality != Quality.NONE: #if $curQuality != Quality.NONE:
<td class="status_column">$statusStrings[$curStatus] <span class="quality $Quality.qualityStrings[$curQuality].replace("720p","HD720p").replace("1080p","HD1080p").replace("RawHD TV", "RawHD").replace("HD TV", "HD720p")">$Quality.qualityStrings[$curQuality]</span></td> <td class="col-status">$statusStrings[$curStatus] <span class="quality $Quality.qualityStrings[$curQuality].replace("720p","HD720p").replace("1080p","HD1080p").replace("RawHD TV", "RawHD").replace("HD TV", "HD720p")">$Quality.qualityStrings[$curQuality]</span></td>
#else: #else:
<td class="status_column">$statusStrings[$curStatus]</td> <td class="col-status">$statusStrings[$curStatus]</td>
#end if #end if
<td class="search"> <td class="col-search">
#if int($epResult["season"]) != 0: #if int($epResult["season"]) != 0:
#if ( int($epResult["status"]) in $Quality.SNATCHED or int($epResult["status"]) in $Quality.DOWNLOADED ) and $sickbeard.USE_FAILED_DOWNLOADS: #if ( int($epResult["status"]) in $Quality.SNATCHED or int($epResult["status"]) in $Quality.DOWNLOADED ) and $sickbeard.USE_FAILED_DOWNLOADS:
<a class="epRetry" id="<%=str(epResult["season"])+'x'+str(epResult["episode"])%>" name="<%=str(epResult["season"]) +"x"+str(epResult["episode"]) %>" href="retryEpisode?show=$show.indexerid&amp;season=$epResult["season"]&amp;episode=$epResult["episode"]"><img src="$sbRoot/images/search16.png" height="16" alt="retry" title="Retry Download" /></a> <a class="epRetry" id="<%=str(epResult["season"])+'x'+str(epResult["episode"])%>" name="<%=str(epResult["season"]) +"x"+str(epResult["episode"]) %>" href="retryEpisode?show=$show.indexerid&amp;season=$epResult["season"]&amp;episode=$epResult["episode"]"><img src="$sbRoot/images/search16.png" height="16" alt="retry" title="Retry Download" /></a>

View File

@ -13,14 +13,14 @@
#import os.path #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")
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div id="summary2" class="align-left"> <div id="editShow">
<script type="text/javascript" src="$sbRoot/js/qualityChooser.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/qualityChooser.js?$sbPID"></script>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
<!-- <!--
@ -59,10 +59,11 @@
//--> //-->
</script> </script>
<br>
<form action="editShow" method="post"> <form action="editShow" method="post">
<input type="hidden" name="show" value="$show.indexerid" /> <input type="hidden" name="show" value="$show.indexerid" />
<b>Location:</b> <input type="text" name="location" id="location" value="$show._location" size="50" /><br /> <b>Location:</b> <input type="text" name="location" id="location" value="$show._location" class="form-control form-control-inline input-sm input350" /><br />
<br /> <br />
<b>Quality:</b> <b>Quality:</b>
#set $qualities = $common.Quality.splitQuality(int($show.quality)) #set $qualities = $common.Quality.splitQuality(int($show.quality))
@ -73,25 +74,25 @@
#if $anyQualities + $bestQualities #if $anyQualities + $bestQualities
<b>Archive on first match: </b> <b>Archive on first match: </b>
<input type="checkbox" name="archive_firstmatch" #if $show.archive_firstmatch == 1 then "checked=\"checked\"" else ""# /> <input type="checkbox" name="archive_firstmatch" #if $show.archive_firstmatch == 1 then "checked=\"checked\"" else ""# /><br>
(check this to have the episode archived after the first best match is found from your archive quality list) (check this to have the episode archived after the first best match is found from your archive quality list)
<br /> <br />
<br /> <br />
#end if #end if
<b>Scene Exception:</b> <b>Scene Exception:</b>
<input type="text" id="SceneName"> <input type="text" id="SceneName" class="form-control form-control-inline input-sm input200">
<input class="btn" type="button" value="Add" id="addSceneName"><br /> <input class="btn btn-inline" type="button" value="Add" id="addSceneName"><br />
<div id="SceneException" > <div id="SceneException" >
<div class="component-group-desc"> <div>
<p>This will <b>affect the episode show search</b> on nzb and torrent provider.<br /> <p>This will <b>affect the episode show search</b> on nzb and torrent provider.<br />
This list overrides the original name, it doesn't append to it.<br /> This list overrides the original name, it doesn't append to it.<br />
</p> </p>
</div> </div>
<div class="float-left" style="text-align:center;"> <div class="pull-left" style="text-align:center;">
<h4>Exceptions List</h4> <h4>Exceptions List</h4>
<select id="exceptions_list" name="exceptions_list" multiple="multiple" style="min-width:10em;" > <select id="exceptions_list" name="exceptions_list" multiple="multiple" style="min-width:10em;" >
#for $cur_exception in $show.exceptions: #for $cur_exception in $show.exceptions:
@ -104,9 +105,10 @@
<br /> <br />
</div> </div>
</div> </div>
<div class="clearfix"></div>
<br /> <br />
<b>Info Language:</b> <select name="indexerLang" id="indexerLangSelect"></select><br /> <b>Info Language:</b> <select name="indexerLang" id="indexerLangSelect" class="form-control form-control-inline input-sm"></select><br />
Note: This will only affect the language of the retrieved metadata file contents and episode filenames.<br /> Note: This will only affect the language of the retrieved metadata file contents and episode filenames.<br />
This <b>DOES NOT</b> allow SickRage to download non-english TV episodes!<br /> This <b>DOES NOT</b> allow SickRage to download non-english TV episodes!<br />
<br /> <br />
@ -136,12 +138,12 @@ This <b>DOES NOT</b> allow SickRage to download non-english TV episodes!<br />
(check this if you wish to use the DVD order instead of the Airing order) (check this if you wish to use the DVD order instead of the Airing order)
<br/><br/> <br/><br/>
<b>Ignored Words:</b> <input type="text" name="rls_ignore_words" id="rls_ignore_words" value="$show.rls_ignore_words" size="50" /><br /> <b>Ignored Words:</b> <input type="text" name="rls_ignore_words" id="rls_ignore_words" value="$show.rls_ignore_words" class="form-control form-control-inline input-sm input350" /><br />
Results with any of these words in the title will be filtered out <br /> Results with any of these words in the title will be filtered out <br />
Separate words with a comma, e.g. "word1,word2,word3" Separate words with a comma, e.g. "word1,word2,word3"
<br /><br /> <br /><br />
<b>Required Words:</b> <input type="text" name="rls_require_words" id="rls_require_words" value="$show.rls_require_words" size="50" /><br /> <b>Required Words:</b> <input type="text" name="rls_require_words" id="rls_require_words" value="$show.rls_require_words" class="form-control form-control-inline input-sm input350" /><br />
Results without one of these words in the title will be filtered out <br /> Results without one of these words in the title will be filtered out <br />
Separate words with a comma, e.g. "word1,word2,word3" Separate words with a comma, e.g. "word1,word2,word3"
<br /><br /> <br /><br />
@ -268,5 +270,5 @@ Separate words with a comma, e.g. "word1,word2,word3"
//--> //-->
</script> </script>
</div></div> </div>
#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")

View File

@ -86,21 +86,23 @@
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div class="h2footer align-right"><b>Limit:</b> <div class="h2footer pull-right"><b>Limit:</b>
<select name="limit" id="limit"> <select name="limit" id="limit" class="form-control form-control-inline input-sm">
<option value="100" #if $limit == "100" then "selected=\"selected\"" else ""#>100</option> <option value="100" #if $limit == "100" then "selected=\"selected\"" else ""#>100</option>
<option value="250" #if $limit == "250" then "selected=\"selected\"" else ""#>250</option> <option value="250" #if $limit == "250" then "selected=\"selected\"" else ""#>250</option>
<option value="500" #if $limit == "500" then "selected=\"selected\"" else ""#>500</option> <option value="500" #if $limit == "500" then "selected=\"selected\"" else ""#>500</option>
<option value="0" #if $limit == "0" then "selected=\"selected\"" else ""#>All</option> <option value="0" #if $limit == "0" then "selected=\"selected\"" else ""#>All</option>
</select> </select>
</div>
<div id="HistoryLayout" style="float: right; margin-top: 2px;">
<span><b>Layout:</b> <span> Layout:
<a class="inner" href="$sbRoot/setHistoryLayout/?layout=compact">Compact</a> &middot; <select name="HistoryLayout" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;">
<a class="inner" href="$sbRoot/setHistoryLayout/?layout=detailed">Detailed</a> <option value="$sbRoot/setHistoryLayout/?layout=compact" #if $sickbeard.HISTORY_LAYOUT == "compact" then "selected=\"selected\"" else ""#>Compact</option>
<option value="$sbRoot/setHistoryLayout/?layout=detailed" #if $sickbeard.HISTORY_LAYOUT == "detailed" then "selected=\"selected\"" else ""#>Detailed</option>
</select>
</span> </span>
</div> </div>
<br>
#if $layout == "detailed" #if $layout == "detailed"
<table id="historyTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0"> <table id="historyTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
@ -125,8 +127,8 @@
#set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($hItem["action"])) #set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($hItem["action"]))
<tr> <tr>
#set $curdatetime = $datetime.datetime.strptime(str($hItem["date"]), $history.dateFormat) #set $curdatetime = $datetime.datetime.strptime(str($hItem["date"]), $history.dateFormat)
<td class="nowrap"><div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($curdatetime, show_seconds=True)</div><span class="sort_data">$time.mktime($curdatetime.timetuple())</span></td> <td align="center"><div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($curdatetime, show_seconds=True)</div><span class="sort_data">$time.mktime($curdatetime.timetuple())</span></td>
<td width="35%"><a style="color: #fff; text-align: center;" href="$sbRoot/home/displayShow?show=$hItem["showid"]#season-$hItem["season"]">$hItem["show_name"] - <%="S%02i" % int(hItem["season"])+"E%02i" % int(hItem["episode"]) %>#if "proper" in $hItem["resource"].lower or "repack" in $hItem["resource"].lower then ' <span class="quality Proper">Proper</span>' else ""#</a></td> <td class="tvShow" width="35%"><a href="$sbRoot/home/displayShow?show=$hItem["showid"]#season-$hItem["season"]">$hItem["show_name"] - <%="S%02i" % int(hItem["season"])+"E%02i" % int(hItem["episode"]) %>#if "proper" in $hItem["resource"].lower or "repack" in $hItem["resource"].lower then ' <span class="quality Proper">Proper</span>' else ""#</a></td>
<td align="center" #if $curStatus == SUBTITLED then 'class="subtitles_column"' else ''#> <td align="center" #if $curStatus == SUBTITLED then 'class="subtitles_column"' else ''#>
#if $curStatus == SUBTITLED: #if $curStatus == SUBTITLED:
<img width="16" height="11" style="vertical-align:middle;" src="$sbRoot/images/flags/<%= hItem["resource"][len(hItem["resource"])-6:len(hItem["resource"])-4]+'.png'%>"> <img width="16" height="11" style="vertical-align:middle;" src="$sbRoot/images/flags/<%= hItem["resource"][len(hItem["resource"])-6:len(hItem["resource"])-4]+'.png'%>">
@ -186,9 +188,9 @@
#for $hItem in $compactResults: #for $hItem in $compactResults:
<tr> <tr>
#set $curdatetime = $datetime.datetime.strptime(str($hItem["actions"][0]["time"]), $history.dateFormat) #set $curdatetime = $datetime.datetime.strptime(str($hItem["actions"][0]["time"]), $history.dateFormat)
<td class="nowrap"><div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($curdatetime, show_seconds=True)</div><span class="sort_data">$time.mktime($curdatetime.timetuple())</span></td> <td align="center"><div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($curdatetime, show_seconds=True)</div><span class="sort_data">$time.mktime($curdatetime.timetuple())</span></td>
<td width="25%"> <td class="tvShow" width="25%">
<span><a style="color: #fff; text-align: center;" href="$sbRoot/home/displayShow?show=$hItem["show_id"]#season-$hItem["season"]">$hItem["show_name"] - <%="S%02i" % int(hItem["season"])+"E%02i" % int(hItem["episode"]) %>#if "proper" in $hItem["resource"].lower or "repack" in $hItem["resource"].lower then ' <span class="quality Proper">Proper</span>' else ""#</a></span> <span><a href="$sbRoot/home/displayShow?show=$hItem["show_id"]#season-$hItem["season"]">$hItem["show_name"] - <%="S%02i" % int(hItem["season"])+"E%02i" % int(hItem["episode"]) %>#if "proper" in $hItem["resource"].lower or "repack" in $hItem["resource"].lower then ' <span class="quality Proper">Proper</span>' else ""#</a></span>
</td> </td>
<td align="center" provider="<%=str(sorted(hItem["actions"])[0]["provider"])%>"> <td align="center" provider="<%=str(sorted(hItem["actions"])[0]["provider"])%>">
#for $action in sorted($hItem["actions"]): #for $action in sorted($hItem["actions"]):

View File

@ -45,77 +45,7 @@
#set $max_download_count = $max_download_count * 100 #set $max_download_count = $max_download_count * 100
<style type="text/css">
.sort_data {display:none}
</style>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
\$(document).ready(function(){
var \$container = [\$('#container'), \$('#container-anime')];
jQuery.each(\$container, function (j) {
this.isotope({
sortBy : \$.cookie('sortby'),
itemSelector : '.show',
getSortData : {
name : function( \$elem ) {
return \$elem.attr('data-name');
},
network : function( \$elem ) {
return \$elem.attr('data-network');
},
date: function( \$elem ) {
return parseInt( \$elem.attr('data-date'), 10 ) || Number.POSITIVE_INFINITY;
},
progress : function( \$elem ) {
return parseInt( \$elem.attr('data-progress'), 10) * -1 || Number.POSITIVE_INFINITY;
}
}
});
});
var \$optionSets = \$('.option-set'),
\$optionLinks = \$optionSets.find('a');
\$optionLinks.click(function(){
var \$this = \$(this);
// don't proceed if already selected
if ( \$this.hasClass('selected') ) {
return false;
}
var \$optionSet = \$this.parents('.option-set');
\$optionSet.find('.selected').removeClass('selected');
\$this.addClass('selected');
// make option object dynamically, i.e. { filter: '.my-filter-class' }
var options = {},
key = \$optionSet.attr('data-option-key'),
value = \$this.attr('data-option-value');
// parse 'false' as false boolean
value = value === 'false' ? false : value;
options[ key ] = value;
if ( key === 'layoutMode' && typeof changeLayoutMode === 'function' ) {
// changes in layout modes need extra logic
changeLayoutMode( \$this, options )
} else {
// otherwise apply new options & save sort cookie
\$('#container').isotope( options );
\$('#container-anime').isotope( options );
\$.cookie('sortby', value, { expires: 365 });
}
return false;
});
});
sortFlipper = true;
function invertSort(){
sortFlipper = !sortFlipper;
\$('#container').isotope({sortAscending: sortFlipper});
\$('#container-anime').isotope({sortAscending: sortFlipper});
}
<!-- <!--
\$.tablesorter.addParser({ \$.tablesorter.addParser({
@ -125,7 +55,7 @@ function invertSort(){
}, },
format: function(s) { format: function(s) {
if (s.indexOf('Loading...') == 0) if (s.indexOf('Loading...') == 0)
return s.replace('Loading...','000'); return s.replace('Loading...','000');
else else
#if not $sickbeard.SORT_ARTICLE: #if not $sickbeard.SORT_ARTICLE:
return (s || '').replace(/^(The|A|An)\s/i,''); return (s || '').replace(/^(The|A|An)\s/i,'');
@ -136,114 +66,74 @@ function invertSort(){
type: 'text' type: 'text'
}); });
\$.tablesorter.addParser({
id: 'cDate',
is: function(s) {
return false;
},
format: function(s) {
return s;
},
type: 'numeric'
});
\$.tablesorter.addParser({ \$.tablesorter.addParser({
id: 'quality', id: 'quality',
is: function(s) { is: function(s) {
return false; return false;
}, },
format: function(s) { format: function(s) {
return s.replace('HD1080p',5).replace('HD720p',4).replace('HD',3).replace('SD',2).replace('Any',1).replace('Best',0).replace('Custom',7); return s.replace('hd1080p',5).replace('hd720p',4).replace('hd',3).replace('sd',2).replace('any',1).replace('custom',7);
},
type: 'numeric'
});
\$.tablesorter.addParser({
id: 'eps',
is: function(s) {
return false;
},
format: function(s) {
match = s.match(/^(.*)/);
if (match == null || match[1] == "?")
return -10;
var nums = match[1].split(" / ");
if (nums[0].indexOf("+") != -1) {
var num_parts = nums[0].split("+");
nums[0] = num_parts[0];
}
nums[0] = parseInt(nums[0])
nums[1] = parseInt(nums[1])
if (nums[0] === 0)
return nums[1];
var finalNum = parseInt($max_download_count*nums[0]/nums[1]);
if (finalNum > 0)
finalNum += nums[0];
return finalNum;
}, },
type: 'numeric' type: 'numeric'
}); });
\$(document).ready(function(){ \$(document).ready(function(){
\$("img#network").on('error', function(){ \$("img#network").on('error', function(){
\$(this).parent().text(\$(this).attr('alt')); \$(this).parent().text(\$(this).attr('alt'));
\$(this).remove(); \$(this).remove();
}); });
\$("#showListTableShows:has(tbody tr)").tablesorter({ \$("#showListTableShows:has(tbody tr)").tablesorter({
sortList: [[5,1],[1,0]],
textExtraction: {
0: function(node) { return \$(node).find("span").text().toLowerCase(); },
3: function(node) { return \$(node).find("span").text().toLowerCase(); },
4: function(node) { return \$(node).find("span").text(); },
5: function(node) { return \$(node).find("img").attr("alt"); }
},
widgets: ['saveSort', 'zebra', 'stickyHeaders', 'filter'],
headers: {
0: { sorter: 'isoDate' },
1: { sorter: 'loadingNames' },
3: { sorter: 'quality' },
4: { sorter: 'eps' }
},
widgetOptions : {
filter_columnFilters: false,
filter_reset: '.resetshows'
},
sortStable: true
});
sortList: [[6,1],[1,0]], \$("#showListTableAnime:has(tbody tr)").tablesorter({
textExtraction: { sortList: [[5,1],[1,0]],
0: function(node) { return \$(node).find("span").text().toLowerCase(); }, textExtraction: {
#if ( $layout != 'simple'): 0: function(node) { return \$(node).find("span").text().toLowerCase(); },
2: function(node) { return \$(node).find("img").attr("alt"); }, 3: function(node) { return \$(node).find("span").text().toLowerCase(); },
#end if 4: function(node) { return \$(node).find("span").text(); },
3: function(node) { return \$(node).find("span").text(); }, 5: function(node) { return \$(node).find("img").attr("alt"); }
5: function(node) { return \$(node).find("img").attr("alt"); } },
}, widgets: ['saveSort', 'zebra', 'stickyHeaders', 'filter'],
widgets: ['saveSort', 'zebra'], headers: {
headers: { 0: { sorter: 'isoDate' },
0: { sorter: 'cDate' }, 1: { sorter: 'loadingNames' },
1: { sorter: 'loadingNames' }, 3: { sorter: 'quality' },
2: { sorter: 'network' }, 4: { sorter: 'eps' }
3: { sorter: 'quality' }, },
4: { sorter: 'eps' }, widgetOptions : {
5: { sorter: 'active' }, filter_columnFilters: false,
6: { sorter: 'status' }, filter_reset: '.resetanime'
} },
}); sortStable: true
\$("#showListTableAnime:has(tbody tr)").tablesorter({
sortList: [[6,1],[1,0]],
textExtraction: {
0: function(node) { return \$(node).find("span").text().toLowerCase(); },
#if ( $layout != 'simple'):
2: function(node) { return \$(node).find("img").attr("alt"); },
#end if
3: function(node) { return \$(node).find("span").text(); },
5: function(node) { return \$(node).find("img").attr("alt"); }
},
widgets: ['saveSort', 'zebra'],
headers: {
0: { sorter: 'cDate' },
1: { sorter: 'loadingNames' },
2: { sorter: 'network' },
3: { sorter: 'quality' },
4: { sorter: 'eps' },
5: { sorter: 'active' },
6: { sorter: 'status' },
}
}); });
\$.tablesorter.filter.bindSearch( "#showListTableShows", \$('.search') );
#if $sickbeard.ANIME_SPLIT_HOME:
\$.tablesorter.filter.bindSearch( "#showListTableAnime", \$('.search') );
#end if
#set $fuzzydate = 'airdate' #set $fuzzydate = 'airdate'
#if $sickbeard.FUZZY_DATING: #if $sickbeard.FUZZY_DATING:
fuzzyMoment({ fuzzyMoment({
@ -255,7 +145,56 @@ function invertSort(){
trimZero : #if $sickbeard.TRIM_ZERO then "true" else "false"# trimZero : #if $sickbeard.TRIM_ZERO then "true" else "false"#
}); });
#end if #end if
var \$container = [\$('#container'), \$('#container-anime')];
jQuery.each(\$container, function (j) {
this.isotope({
itemSelector: '.show',
sortBy : '$sickbeard.POSTER_SORTBY',
sortAscending: $sickbeard.POSTER_SORTDIR,
layoutMode: 'masonry',
masonry: {
columnWidth: 12,
isFitWidth: true
},
getSortData: {
name: function( itemElem ) {
var name = \$( itemElem ).attr('data-name');
#if not $sickbeard.SORT_ARTICLE:
return (name || '').replace(/^(The|A|An)\s/i,'');
#else:
return (name || '');
#end if
},
network: '[data-network]',
date: function( itemElem ) {
var date = \$( itemElem ).attr('data-date');
return date.length && parseInt( date, 10 ) || Number.POSITIVE_INFINITY;
},
progress: function( itemElem ) {
var progress = \$( itemElem ).attr('data-progress');
return progress.length && parseInt( progress, 10 ) || Number.NEGATIVE_INFINITY;
}
}
});
});
\$('#postersort').on( 'change', function() {
var sortValue = this.value;
\$('#container').isotope({ sortBy: sortValue });
\$('#container-anime').isotope({ sortBy: sortValue });
\$.get(this.options[this.selectedIndex].getAttribute('data-sort'));
});
\$('#postersortdirection').on( 'change', function() {
var sortDirection = this.value;
sortDirection = sortDirection == 'true';
\$('#container').isotope({ sortAscending: sortDirection });
\$('#container-anime').isotope({ sortAscending: sortDirection });
\$.get(this.options[this.selectedIndex].getAttribute('data-sort'));
});
}); });
//--> //-->
@ -267,26 +206,44 @@ function invertSort(){
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div id="HomeLayout" style="float: right; margin-top: -25px;"> <div id="HomeLayout" class="pull-right" style="margin-top: -40px;">
<span>Layout: <span> Layout:
<a class="inner" href="$sbRoot/setHomeLayout/?layout=poster">Poster</a> &middot; <select name="layout" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;">
<a class="inner" href="$sbRoot/setHomeLayout/?layout=small">Small Poster</a> &middot; <option value="$sbRoot/setHomeLayout/?layout=poster" #if $sickbeard.HOME_LAYOUT == "poster" then "selected=\"selected\"" else ""#>Poster</option>
<a class="inner" href="$sbRoot/setHomeLayout/?layout=banner">Banner</a> &middot; <option value="$sbRoot/setHomeLayout/?layout=small" #if $sickbeard.HOME_LAYOUT == "small" then "selected=\"selected\"" else ""#>Small Poster</option>
<a class="inner" href="$sbRoot/setHomeLayout/?layout=simple">Simple</a> <option value="$sbRoot/setHomeLayout/?layout=banner" #if $sickbeard.HOME_LAYOUT == "banner" then "selected=\"selected\"" else ""#>Banner</option>
<option value="$sbRoot/setHomeLayout/?layout=simple" #if $sickbeard.HOME_LAYOUT == "simple" then "selected=\"selected\"" else ""#>Simple</option>
</select>
</span> </span>
#if $layout == 'poster': #if $layout == 'poster':
<ul id="sort-by" class="option-set" data-option-key="sortBy"> &nbsp;
Sort By: <span> Sort By:
<li><a href="#sortBy=name" data-option-value="name">Name</a></li> &middot; <select id="postersort" class="form-control form-control-inline input-sm">
<li><a href="#sortBy=date" data-option-value="date">Next Episode</a></li> &middot; <option value="name" data-sort="$sbRoot/setPosterSortBy/?sort=name" #if $sickbeard.POSTER_SORTBY == "name" then "selected=\"selected\"" else ""#>Name</option>
<li><a href="#sortBy=network" data-option-value="network">Network</a></li> &middot; <option value="date" data-sort="$sbRoot/setPosterSortBy/?sort=date" #if $sickbeard.POSTER_SORTBY == "date" then "selected=\"selected\"" else ""#>Next Episode</option>
<li><a href="#sortBy=progress" data-option-value="progress">Progress</a></li> &middot; <option value="network" data-sort="$sbRoot/setPosterSortBy/?sort=network" #if $sickbeard.POSTER_SORTBY == "network" then "selected=\"selected\"" else ""#>Network</option>
</ul> <option value="progress" data-sort="$sbRoot/setPosterSortBy/?sort=progress" #if $sickbeard.POSTER_SORTBY == "progress" then "selected=\"selected\"" else ""#>Progress</option>
&nbsp;<a style="display: inline-block; float: right;" class="clearfix" href="javascript:invertSort();">Flip</a> </select>
</span>
&nbsp;
<span> Sort Order:
<select id="postersortdirection" class="form-control form-control-inline input-sm">
<option value="true" data-sort="$sbRoot/setPosterSortDir/?direction=1" #if $sickbeard.POSTER_SORTDIR == 1 then "selected=\"selected\"" else ""#>Asc</option>
<option value="false" data-sort="$sbRoot/setPosterSortDir/?direction=0" #if $sickbeard.POSTER_SORTDIR == 0 then "selected=\"selected\"" else ""#>Desc</option>
</select>
</span>
&nbsp;
#end if #end if
</div> </div>
#if $layout != 'poster':
<div class="pull-right">
<input class="search form-control form-control-inline input-sm input200" type="search" data-column="1" placeholder="Search Show Name"> <button type="button" class="resetshows resetanime btn btn-inline">Reset Search</button>
</div>
#end if
#for $curShowlist in $showlists: #for $curShowlist in $showlists:
#set $curListType = $curShowlist[0] #set $curListType = $curShowlist[0]
#set $myShowList = $list($curShowlist[1]) #set $myShowList = $list($curShowlist[1])
@ -296,7 +253,7 @@ function invertSort(){
#if $layout == 'poster': #if $layout == 'poster':
<div id=#if $curListType == "Anime" and $layout == 'poster' then "container-anime" else "container"# class="clearfix"> <div id=#if $curListType == "Anime" and $layout == 'poster' then "container-anime" else "container"# class="clearfix">
<div class="posterview">
#for $curLoadingShow in $sickbeard.showQueueScheduler.action.loadingShowList: #for $curLoadingShow in $sickbeard.showQueueScheduler.action.loadingShowList:
#if $curLoadingShow.show != None and $curLoadingShow.show in $sickbeard.showList: #if $curLoadingShow.show != None and $curLoadingShow.show in $sickbeard.showList:
@ -323,6 +280,11 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
#set $cur_downloaded = 0 #set $cur_downloaded = 0
#set $cur_total = 0 #set $cur_total = 0
#set $download_stat_tip = '' #set $download_stat_tip = ''
#if None is not $curShow.status and re.search(r'(?i)(?:new|returning)\s*series', $curShow.status)
#set $display_status = 'Continuing'
#else
#set $display_status = $curShow.status
#end if
#if $curShow.indexerid in $show_stat: #if $curShow.indexerid in $show_stat:
#set $cur_airs_next = $show_stat[$curShow.indexerid]['ep_airs_next'] #set $cur_airs_next = $show_stat[$curShow.indexerid]['ep_airs_next']
@ -363,29 +325,25 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
#set $den = 1 #set $den = 1
#end if #end if
#set $progressbar_percent = $nom * 100 / $den #set $progressbar_percent = $nom * 100 / $den
#if "a" in sickbeard.DATE_PRESET: #set $data_date = '6000000000.0'
#set $showheight = "334px" #if $cur_airs_next:
#set $tableheight = "52px" #set $data_date = $time.mktime($sbdatetime.sbdatetime.convert_to_setting($network_timezones.parse_date_time($cur_airs_next,$curShow.airs,$curShow.network)).timetuple())
#else if "B" in sickbeard.DATE_PRESET: #else if None is not $display_status
#set $showheight = "374px" #if 'nded' not in $display_status and 1 == int($curShow.paused)
#set $tableheight = "92px" #set $data_date = '5000000500.0'
#else if "A" in sickbeard.DATE_PRESET: #else if 'ontinu' in $display_status
#set $showheight = "334px" #set $data_date = '5000000000.0'
#set $tableheight = "52px" #else if 'nded' in $display_status
#else #set $data_date = '5000000100.0'
#set $showheight = "323px" #end if
#set $tableheight = "42px" #end if
#end if <div class="show" id="show$curShow.indexerid" data-name="$curShow.name" data-date="$data_date" data-network="$curShow.network" data-progress="$progressbar_percent">
<div class="show" style="height: $showheight" id="show$curShow.indexerid" data-name="$curShow.name" data-date="#if $cur_airs_next then $time.mktime($network_timezones.parse_date_time($cur_airs_next,$curShow.airs,$curShow.network).timetuple()) else ""#" data-network="$curShow.network" data-progress="$progressbar_percent">
<div class="show-image"> <div class="show-image">
<a href="$sbRoot/home/displayShow?show=$curShow.indexerid"><img alt="" class="show-image" src="$sbRoot/showPoster/?show=$curShow.indexerid&amp;which=poster_thumb" /></a> <a href="$sbRoot/home/displayShow?show=$curShow.indexerid"><img alt="" class="show-image" src="$sbRoot/showPoster/?show=$curShow.indexerid&amp;which=poster_thumb" /></a>
<div class="show-image-slide">
<p>$curShow.name</p>
</div>
</div> </div>
<div id="progressbar$curShow.indexerid"></div> <div id="progressbar$curShow.indexerid"></div>
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
@ -409,67 +367,88 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
}); });
//--> //-->
</script> </script>
<table width="184px" height="$tableheight" cellspacing="1" border="0" cellpadding="0" style="padding-left: 2px; cursor: default;"> <div class="show-title">
<col width="120px" /> $curShow.name
<col width="59px" /> </div>
<div class="show-date">
#if $cur_airs_next
#set $ldatetime = $sbdatetime.sbdatetime.convert_to_setting($network_timezones.parse_date_time($cur_airs_next,$curShow.airs,$curShow.network))
<span class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdate($ldatetime)</span>
#else
#set $output_html = '?'
#if None is not $display_status
#if 'nded' not in $display_status and 1 == int($curShow.paused)
#set $output_html = 'Paused'
#else if $display_status
#set $output_html = $display_status
#end if
#end if
$output_html
#end if
</div>
<table width="100%" cellspacing="1" border="0" cellpadding="0">
<tr> <tr>
<td style="text-align:center; vertical-align:middle;" colspan="3"> <td class="show-table">
#if $cur_airs_next
#set $ldatetime = $network_timezones.parse_date_time($cur_airs_next,$curShow.airs,$curShow.network)
<div class="show-date">Next Ep: <span class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdate($ldatetime)</span></div>
#else if $curShow.status != "Ended" and int($curShow.paused) == 1:
<div class="show-status">Paused</div>
#else if $curShow.status:
<div class="show-status">$curShow.status</div>
#else
<div class="show-status">?</div>
#end if
</td>
</tr>
<tr>
<td style="text-align:center; vertical-align:middle;">
<span class="show-dlstats" title="$download_stat_tip">$download_stat</span> <span class="show-dlstats" title="$download_stat_tip">$download_stat</span>
<div class="float-left">
#if $curShow.quality in $qualityPresets:
<span class="show-dlstats">$qualityPresetStrings[$curShow.quality]</span>
#else:
<span class="show-dlstats">Custom</span>
#end if
</td> </td>
<td style="text-align:center; vertical-align:middle;"> <td class="show-table">
#if $layout != 'simple': #if $layout != 'simple':
#if $curShow.network: #if $curShow.network:
<img class="show-network-image float-right" src="$sbRoot/images/network/${curShow.network.replace(u"\u00C9",'e').lower()}.png" alt="$curShow.network" title="$curShow.network" /> <img class="show-network-image" src="$sbRoot/images/network/${curShow.network.replace(u"\u00C9",'e').lower()}.png" alt="$curShow.network" title="$curShow.network" />
#else: #else:
<img class="show-network-image float-right" src="$sbRoot/images/network/nonetwork.png" alt="No Network" title="No Network" /> <img class="show-network-image" src="$sbRoot/images/network/nonetwork.png" alt="No Network" title="No Network" />
#end if #end if
#else: #else:
$curShow.network $curShow.network
#end if
</td>
<td class="show-table">
#if $curShow.quality in $qualityPresets:
<span class="show-quality">$qualityPresetStrings[$curShow.quality]</span>
#else:
<span class="show-quality">Custom</span>
#end if #end if
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
#end for #end for
</div> </div>
</div>
#else #else
<table id="showListTable$curListType" class="tablesorter" cellspacing="1" border="0" cellpadding="0"> <table id="showListTable$curListType" class="tablesorter" cellspacing="1" border="0" cellpadding="0">
<thead><tr><th class="nowrap">Next Ep</th><th>$curListType</th><th>Network</th><th>Quality</th><th>Downloads</th><th>Active</th><th>Status</th></tr></thead> <thead>
<tfoot> <tr>
<tr> <th class="nowrap">Next Ep</th>
<th rowspan="1" colspan="1" align="center"><a href="$sbRoot/home/addShows/">&nbsp Add Show</a></th> <th>Show</th>
<th rowspan="1" colspan="7"></th> <th>Network</th>
</tr> <th>Quality</th>
</tfoot> <th>Downloads</th>
<tbody> <th>Active</th>
<th>Status</th>
</tr>
</thead>
<tfoot>
<tr>
<th rowspan="1" colspan="1" align="center"><a href="$sbRoot/home/addShows/">Add Show</a></th>
<th rowspan="1" colspan="6"></th>
</tr>
</tfoot>
<tbody>
#for $curLoadingShow in $sickbeard.showQueueScheduler.action.loadingShowList: #for $curLoadingShow in $sickbeard.showQueueScheduler.action.loadingShowList:
@ -542,17 +521,19 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
#set $den = 1 #set $den = 1
#end if #end if
#set $progressbar_percent = $nom * 100 / $den #set $progressbar_percent = $nom * 100 / $den
<tr> <tr>
#if $cur_airs_next
#set $ldatetime = $network_timezones.parse_date_time($cur_airs_next,$curShow.airs,$curShow.network) #if $cur_airs_next
<td align="center" class="nowrap"><div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdate($ldatetime)</div><span class="sort_data">$time.mktime($ldatetime.timetuple())</span> </td> #set $ldatetime = $sbdatetime.sbdatetime.convert_to_setting($network_timezones.parse_date_time($cur_airs_next,$curShow.airs,$curShow.network))
<td align="center" class="nowrap"><div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdate($ldatetime)</div><span class="sort_data">$time.mktime($ldatetime.timetuple())</span></td>
#else: #else:
<td align="center" class="nowrap"></td> <td align="center" class="nowrap"></td>
#end if #end if
#if $layout == 'small': #if $layout == 'small':
<td> <td class="tvShow">
<div class="imgsmallposter $layout"> <div class="imgsmallposter $layout">
<a href="$sbRoot/showPoster/?show=$curShow.indexerid&amp;which=$layout" rel="dialog" title="$curShow.name"> <a href="$sbRoot/showPoster/?show=$curShow.indexerid&amp;which=$layout" rel="dialog" title="$curShow.name">
<img src="$sbRoot/showPoster/?show=$curShow.indexerid&amp;which=poster_thumb" class="$layout" alt="$curShow.indexerid"/> <img src="$sbRoot/showPoster/?show=$curShow.indexerid&amp;which=poster_thumb" class="$layout" alt="$curShow.indexerid"/>
@ -571,56 +552,71 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
#else if $layout == 'simple': #else if $layout == 'simple':
<td class="tvShow"><a href="$sbRoot/home/displayShow?show=$curShow.indexerid">$curShow.name</a></td> <td class="tvShow"><a href="$sbRoot/home/displayShow?show=$curShow.indexerid">$curShow.name</a></td>
#end if #end if
<!--<td align="center">$curShow.network</td>//-->
<td align="center">
#if $layout != 'simple': #if $layout != 'simple':
<td align="center">
#if $curShow.network: #if $curShow.network:
<img id="network" width="54" height="27" src="$sbRoot/images/network/${curShow.network.replace(u"\u00C9",'e').lower()}.png" alt="$curShow.network" title="$curShow.network" /> <img id="network" width="54" height="27" src="$sbRoot/images/network/${curShow.network.replace(u"\u00C9",'e').lower()}.png" alt="$curShow.network" title="$curShow.network" />
#else: #else:
<img id="network" width="54" height="27" src="$sbRoot/images/network/nonetwork.png" alt="No Network" title="No Network" /> <img id="network" width="54" height="27" src="$sbRoot/images/network/nonetwork.png" alt="No Network" title="No Network" />
#end if #end if
</td>
#else: #else:
$curShow.network <td>
$curShow.network
</td>
#end if #end if
</td>
#if $curShow.quality in $qualityPresets:
#if $curShow.quality in $qualityPresets: <td align="center"><span class="quality $qualityPresetStrings[$curShow.quality]">$qualityPresetStrings[$curShow.quality]</span></td>
<td align="center"><span class="quality $qualityPresetStrings[$curShow.quality]">$qualityPresetStrings[$curShow.quality]</span></td> #else:
<td align="center"><span class="quality Custom">Custom</span></td>
#end if
<td align="center"><span style="display: none;">$progressbar_percent</span><div id="progressbar$curShow.indexerid" style="position:relative;"></div>
<script type="text/javascript">
<!--
\$(function() {
\$("\#progressbar$curShow.indexerid").progressbar({
value: $progressbar_percent });
\$("\#progressbar$curShow.indexerid").append( "<div class='progressbarText' title='$download_stat_tip'>$download_stat</div>" )
classvalue = $progressbar_percent
if (classvalue<20) {
classtoadd = "progress-20"
}
if (classvalue>20 && classvalue<60) {
classtoadd = "progress-40"
}
if (classvalue>40 && classvalue<80) {
classtoadd = "progress-60"
}
if (classvalue>80) {
classtoadd = "progress-80"
}
\$("\#progressbar$curShow.indexerid > .ui-progressbar-value").addClass(classtoadd);
});
//-->
</script>
</td>
<td align="center">
<img src="$sbRoot/images/#if int($curShow.paused) == 0 and $curShow.status != "Ended" then "yes16.png\" alt=\"Y\"" else "no16.png\" alt=\"N\""# width="16" height="16" />
</td>
<td align="center">
#if None is not $curShow.status and re.search(r'(?i)(?:new|returning)\s*series', $curShow.status)
Continuing
#else: #else:
<td align="center"><span class="quality Custom">Custom</span></td> $curShow.status
#end if #end if
<td align="center"><span style="display: none;">$download_stat</span><div id="progressbar$curShow.indexerid" style="position:relative;"></div> </td>
<script type="text/javascript">
<!-- </tr>
\$(function() {
\$("\#progressbar$curShow.indexerid").progressbar({
value: $progressbar_percent });
\$("\#progressbar$curShow.indexerid").append( "<div class='progressbarText' title='$download_stat_tip'>$download_stat</div>" )
classvalue = $progressbar_percent
if (classvalue<20) {
classtoadd = "progress-20"
}
if (classvalue>20 && classvalue<60) {
classtoadd = "progress-40"
}
if (classvalue>40 && classvalue<80) {
classtoadd = "progress-60"
}
if (classvalue>80) {
classtoadd = "progress-80"
}
\$("\#progressbar$curShow.indexerid > .ui-progressbar-value").addClass(classtoadd);
});
//-->
</script>
</td>
<td align="center"><img src="$sbRoot/images/#if int($curShow.paused) == 0 and $curShow.status != "Ended" then "yes16.png\" alt=\"Y\"" else "no16.png\" alt=\"N\""# width="16" height="16" /></td>
<td align="center">$curShow.status</td>
</tr>
#end for #end for
</tbody> </tbody>
</table> </table>
#end if #end if
#end for #end for

View File

@ -11,8 +11,6 @@
#import os.path #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")
<form id="addShowForm" method="post" action="$sbRoot/home/addShows/addNewShow" accept-charset="utf-8">
<script type="text/javascript" src="$sbRoot/js/qualityChooser.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/qualityChooser.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/addExistingShow.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/addExistingShow.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script>
@ -29,44 +27,57 @@
//--> //-->
</script> </script>
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div id="summary2" class="align-left"> <div id="newShowPortal">
<div id="tabs"> <div id="config-components">
<ul> <ul>
<li><a href="#tabs-1">Manage Directories</a></li> <li><a href="#core-component-group1">Add Existing Show</a></li>
<li><a href="#tabs-2">Customize Options</a></li> </ul>
</ul>
<div id="tabs-1"> <div id="core-component-group1" class="tab-pane active component-group">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_rootDirs.tmpl")
</div> <form id="addShowForm" method="post" action="$sbRoot/home/addShows/addNewShow" accept-charset="utf-8">
<div id="tabs-2">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_addShowOptions.tmpl") <div id="tabs">
</div> <ul>
<li><a href="#tabs-1">Manage Directories</a></li>
<li><a href="#tabs-2">Customize Options</a></li>
</ul>
<div id="tabs-1" class="existingtabs">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_rootDirs.tmpl")
</div>
<div id="tabs-2" class="existingtabs">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_addShowOptions.tmpl")
</div>
</div>
<br />
<p>SickRage can add existing shows, using the current options, by using locally stored NFO/XML metadata to eliminate user interaction.
If you would rather have SickRage prompt you to customize each show, then use the checkbox below.</p>
<p><input type="checkbox" name="promptForSettings" id="promptForSettings" /> <label for="promptForSettings">Prompt me to set settings for each show</label></p>
<hr />
<p><b>Displaying folders within these directories which aren't already added to SickRage:</b></p>
<ul id="rootDirStaticList"><li></li></ul>
<br />
<div id="tableDiv"></div>
<br />
<br />
<input class="btn btn-primary" type="button" value="Submit" id="submitShowDirs" />
</form>
</div>
</div>
</div> </div>
<br />
<p class="align-left">SickRage can add existing shows, using the current options, by using locally stored NFO/XML metadata to eliminate user interaction.<br />
If you would rather have SickRage prompt you to customize each show, then use the checkbox below.</p>
<br />
<p class="align-left"><input type="checkbox" name="promptForSettings" id="promptForSettings" /> <label for="promptForSettings">Prompt me to set settings for each show</label></p>
<br />
<hr />
<br />
<h4>Displaying folders within these directories which aren't already added to SickRage:</h4>
<br />
<ul id="rootDirStaticList"><li></li></ul>
<br />
<div id="tableDiv"></div>
<br />
<input class="btn btn-primary" type="button" value="Submit" id="submitShowDirs" />
</div></div>
</form>
#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")

View File

@ -11,28 +11,28 @@
#import os.path #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")
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div id="addShowPortal" class="clearfix"> <div id="addShowPortal">
<a href="$sbRoot/home/addShows/newShow/" id="btnNewShow" class="btn btn-large"> <a href="$sbRoot/home/addShows/newShow/" id="btnNewShow" class="btn btn-large">
<div class="button"><img src="$sbRoot/images/add-new32.png" height="32" width="32" alt="Add New Show"/></div> <div class="button"><div class="icon-addnewshow"></div></div>
<div class="buttontext"> <div class="buttontext">
<h2>Add New Show</h2> <h3>Add New Show</h3>
<p>For shows that you haven't downloaded yet, this option finds a show on theTVDB.com and TVRage.com, creates a directory for its episodes, and adds it to SickRage.</p> <p>For shows that you haven't downloaded yet, this option finds a show on theTVDB.com and TVRage.com, creates a directory for its episodes, and adds it to SickRage.</p>
</div> </div>
</a> </a>
<br/><br/> <br/><br/>
<a href="$sbRoot/home/addShows/trendingShows/" id="btnNewShow" class="btn btn-large"> <a href="$sbRoot/home/addShows/trendingShows/" id="btnNewShow" class="btn btn-large">
<div class="button"><img src="$sbRoot/images/add-trending32.png" height="32" width="32" alt="Add Trending Shows"/></div> <div class="button"><div class="icon-addtrendingshow"></div></div>
<div class="buttontext"> <div class="buttontext">
<h2>Add Trending Show</h2> <h3>Add Trending Show</h3>
<p>For shows that you haven't downloaded yet, this option lets you choose from a list of current trending shows with ratings to add, creates a directory for its episodes, and adds it to SickRage.</p> <p>For shows that you haven't downloaded yet, this option lets you choose from a list of current trending shows with ratings to add, creates a directory for its episodes, and adds it to SickRage.</p>
</div> </div>
</a> </a>
@ -40,24 +40,24 @@
<br/><br/> <br/><br/>
#if $sickbeard.USE_TRAKT == True: #if $sickbeard.USE_TRAKT == True:
<a href="$sbRoot/home/addShows/recommendedShows/" id="btnNewShow" class="btn btn-large"> <a href="$sbRoot/home/addShows/recommendedShows/" id="btnNewShow" class="btn btn-large">
<div class="button"><img src="$sbRoot/images/add-trakt32.png" height="32" width="32" alt="Add Recommended Shows"/></div> <div class="button"><div class="icon-addrecommendedshow"></div></div>
<div class="buttontext"> <div class="buttontext">
<h2>Add Recommended Shows</h2> <h3>Add Recommended Shows</h3>
<p>For shows that you haven't downloaded yet, this option recommends shows to add based on your Trakt.tv show library, creates a directory for its episodes, and adds it to SickRage. *** Trakt.tv must be enabled ***</p> <p>For shows that you haven't downloaded yet, this option recommends shows to add based on your Trakt.tv show library, creates a directory for its episodes, and adds it to SickRage.</p>
</div> </div>
</a> </a>
<br/><br/> <br/><br/>
#end if #end if
<a href="$sbRoot/home/addShows/existingShows/" id="btnExistingShow" class="btn btn-large"> <a href="$sbRoot/home/addShows/existingShows/" id="btnExistingShow" class="btn btn-large">
<div class="button"><img src="$sbRoot/images/add-existing32.png" height="32" width="32" alt="Add Existing Shows"/></div> <div class="button"><div class="icon-addexistingshow"></div></div>
<div class="buttontext"> <div class="buttontext">
<h2>Add Existing Shows</h2> <h3>Add Existing Shows</h3>
<p>Use this option to add shows that already have a folder created on your hard drive. SickRage will scan your existing metadata/episodes and add the show accordingly.</p> <p>Use this option to add shows that already have a folder created on your hard drive. SickRage will scan your existing metadata/episodes and add the show accordingly.</p>
</div> </div>
</a> </a>
</div> </div>
</div>
#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")

View File

@ -1,12 +1,8 @@
#import sickbeard #import sickbeard
#from sickbeard.helpers import anon_url
<table id="addRootDirTable" class="sickbeardTable tablesorter"> <table id="addRootDirTable" class="sickbeardTable tablesorter">
<thead><tr><th width="1%"><input type="checkbox" id="checkAll" checked=checked></th><th>Directory</th><th width="20%">Show Name (tvshow.nfo)<th width="20%">Indexer</td></tr></thead> <thead><tr><th class="col-checkbox"><input type="checkbox" id="checkAll" checked=checked></th><th>Directory</th><th width="20%">Show Name (tvshow.nfo)<th width="20%">Indexer</td></tr></thead>
<tfoot>
<tr>
<th rowspan="1" colspan="4" align="left"><a href="#" style="padding-left: 10px;" class="showManage">Manage Directories</a></th>
</tr>
</tfoot>
<tbody> <tbody>
#for $curDir in $dirList: #for $curDir in $dirList:
#if $curDir['added_already']: #if $curDir['added_already']:
@ -27,10 +23,10 @@
#end if #end if
<tr> <tr>
<td align="center"><input type="checkbox" id="$show_id" class="dirCheck" checked=checked></td> <td class="col-checkbox"><input type="checkbox" id="$show_id" class="dirCheck" checked=checked></td>
<td><label for="$show_id">$curDir['display_dir']</label></td> <td><label for="$show_id">$curDir['display_dir']</label></td>
#if $curDir['existing_info'][1] and $indexer > 0: #if $curDir['existing_info'][1] and $indexer > 0:
<td><a href="$sickbeard.indexerApi($indexer).config["show_url"]$curDir['existing_info'][0]">$curDir['existing_info'][1]</a></td> <td><a href="<%= anon_url(sickbeard.indexerApi(indexer).config['show_url'], curDir['existing_info'][0]) %>">$curDir['existing_info'][1]</a></td>
#else: #else:
<td>?</td> <td>?</td>
#end if #end if

View File

@ -1,5 +1,7 @@
#import os.path #import os.path
#import sickbeard #import sickbeard
#from sickbeard.helpers import anon_url
#set global $header="New Show" #set global $header="New Show"
#set global $title="New Show" #set global $title="New Show"
@ -16,81 +18,89 @@
<script type="text/javascript" src="$sbRoot/js/newShow.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/newShow.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/addShowOptions.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/addShowOptions.js?$sbPID"></script>
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div id="summary2" class="align-left">
<div id="displayText">aoeu</div> <div id="newShowPortal">
<br /> <div id="config-components">
<ul>
<li><a href="#core-component-group1">Add New Show</a></li>
</ul>
<form id="addShowForm" method="post" action="$sbRoot/home/addShows/addNewShow" accept-charset="utf-8" style="width: 800px;"> <div id="core-component-group1" class="tab-pane active component-group">
<div id="displayText">aoeu</div>
<br />
<fieldset class="sectionwrap"> <form id="addShowForm" method="post" action="$sbRoot/home/addShows/addNewShow" accept-charset="utf-8">
<legend class="legendStep">Find a show on the TVDB or TVRAGE</legend>
<div class="stepDiv"> <fieldset class="sectionwrap">
<input type="hidden" id="indexer_timeout" value="$sickbeard.INDEXER_TIMEOUT" /> <legend class="legendStep">Find a show on the TVDB or TVRAGE</legend>
#if $use_provided_info: <div class="stepDiv">
Show retrieved from existing metadata: <a href="$sickbeard.indexerApi($provided_indexer).config["show_url"]$provided_indexer_id">$provided_indexer_name</a> <input type="hidden" id="indexer_timeout" value="$sickbeard.INDEXER_TIMEOUT" />
<input type="hidden" name="indexerLang" value="en" />
<input type="hidden" name="whichSeries" value="$provided_indexer_id" />
<input type="hidden" id="providedName" value="$provided_indexer_name" />
<input type="hidden" id="providedIndexer" value="$provided_indexer" />
#else:
<div id="middlewrap">
<div id="middle"><input type="text" id="nameToSearch" value="$default_show_name" style="height: 20px; width: 300px; margin-right: 15px;" /></div>
<div id="middle"><select name="indexerLang" id="indexerLangSelect" style="margin-right: 2px;">
<option value="en" selected="selected">en</option>
</select><b>*</b></div>
<div id="middle"><select name="providedIndexer" id="providedIndexer" style="margin-left: 8px; margin-right: 10px;"> #if $use_provided_info:
<option value="0" #if $provided_indexer == 0 then "selected=\"selected\"" else ""#>All Indexers</option> Show retrieved from existing metadata: <a href="<%= anon_url(sickbeard.indexerApi(provided_indexer).config['show_url'], provided_indexer_id) %>">$provided_indexer_name</a>
#for $indexer in $indexers <input type="hidden" name="indexerLang" value="en" />
<option value="$indexer" #if $provided_indexer == $indexer then "selected=\"selected\"" else ""#>$indexers[$indexer]</option> <input type="hidden" name="whichSeries" value="$provided_indexer_id" />
#end for <input type="hidden" id="providedName" value="$provided_indexer_name" />
</select></div> <input type="hidden" id="providedIndexer" value="$provided_indexer" />
<div id="middle"><input class="btn" style="margin-top: 0px !important;" type="button" id="searchName" value="Search" /></div> #else:
<input type="text" id="nameToSearch" value="$default_show_name" class="form-control form-control-inline input-sm input350" />
&nbsp;&nbsp;
<select name="indexerLang" id="indexerLangSelect" class="form-control form-control-inline input-sm">
<option value="en" selected="selected">en</option>
</select><b>*</b>
&nbsp;
<select name="providedIndexer" id="providedIndexer" class="form-control form-control-inline input-sm">
<option value="0" #if $provided_indexer == 0 then "selected=\"selected\"" else ""#>All Indexers</option>
#for $indexer in $indexers
<option value="$indexer" #if $provided_indexer == $indexer then "selected=\"selected\"" else ""#>$indexers[$indexer]</option>
#end for
</select>
&nbsp;
<input class="btn btn-inline" type="button" id="searchName" value="Search" />
<br /><br />
<b>*</b> This will only affect the language of the retrieved metadata file contents and episode filenames.<br />
This <b>DOES NOT</b> allow SickRage to download non-english TV episodes!<br />
<br />
<div id="searchResults" style="height: 100%;"><br/></div>
#end if
</div>
</fieldset>
<fieldset class="sectionwrap">
<legend class="legendStep">Pick the parent folder</legend>
<div class="stepDiv">
#if $provided_show_dir:
Pre-chosen Destination Folder: <b>$provided_show_dir</b> <br />
<input type="hidden" id="fullShowPath" name="fullShowPath" value="$provided_show_dir" /><br />
#else
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_rootDirs.tmpl")
#end if
</div>
</fieldset>
<fieldset class="sectionwrap">
<legend class="legendStep">Customize options</legend>
<div class="stepDiv">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_addShowOptions.tmpl")
</div> </div>
<br /> </fieldset>
<b>*</b> This will only affect the language of the retrieved metadata file contents and episode filenames.<br />
This <b>DOES NOT</b> allow SickRage to download non-english TV episodes!<br />
<br />
<div id="searchResults" style="height: 100%;"><br/></div>
#end if
</div> #for $curNextDir in $other_shows:
</fieldset> <input type="hidden" name="other_shows" value="$curNextDir" />
#end for
<fieldset class="sectionwrap"> <input type="hidden" name="skipShow" id="skipShow" value="" />
<legend class="legendStep">Pick the parent folder</legend> </form>
<div class="stepDiv">
#if $provided_show_dir:
Pre-chosen Destination Folder: <b>$provided_show_dir</b> <br />
<input type="hidden" id="fullShowPath" name="fullShowPath" value="$provided_show_dir" /><br />
#else
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_rootDirs.tmpl")
#end if
</div>
</fieldset>
<fieldset class="sectionwrap">
<legend class="legendStep">Customize options</legend>
<div class="stepDiv">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_addShowOptions.tmpl")
</div>
</fieldset>
#for $curNextDir in $other_shows:
<input type="hidden" name="other_shows" value="$curNextDir" />
#end for
<input type="hidden" name="skipShow" id="skipShow" value="" />
</form>
<br /> <br />
@ -103,6 +113,6 @@
<script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script>
</div></div> </div></div></div></div>
#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")

View File

@ -14,8 +14,8 @@
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div id="summary2" class="align-left"> <div id="postProcess">
<form name="processForm" method="post" action="processEpisode" style="line-height: 44px;"> <form name="processForm" method="post" action="processEpisode" style="line-height: 40px;">
<table> <table>
<input type="hidden" id="type" name="type" value="manual"> <input type="hidden" id="type" name="type" value="manual">
<tr> <tr>
@ -23,7 +23,7 @@
<b>Enter the folder containing the episode:</b> <b>Enter the folder containing the episode:</b>
</td> </td>
<td> <td>
<input type="text" name="dir" id="episodeDir" size="50" /> <input type="text" name="dir" id="episodeDir" class="form-control form-control-inline input-sm input350" />
</td> </td>
</tr> </tr>
<tr> <tr>
@ -31,7 +31,7 @@
<b>Process Method to be used:</b> <b>Process Method to be used:</b>
</td> </td>
<td> <td>
<select name="process_method" id="process_method" class="input-medium" > <select name="process_method" id="process_method" class="form-control form-control-inline input-sm" >
#set $process_method_text = {'copy': "Copy", 'move': "Move", 'hardlink': "Hard Link", 'symlink' : "Symbolic Link"} #set $process_method_text = {'copy': "Copy", 'move': "Move", 'hardlink': "Hard Link", 'symlink' : "Symbolic Link"}
#for $curAction in ('copy', 'move', 'hardlink', 'symlink'): #for $curAction in ('copy', 'move', 'hardlink', 'symlink'):
#if $sickbeard.PROCESS_METHOD == $curAction: #if $sickbeard.PROCESS_METHOD == $curAction:
@ -72,7 +72,7 @@
</tr> </tr>
#end if #end if
</table> </table>
<input id="submit" class="btn btn-primary" type="submit" value="Process" /> <input id="submit" class="btn" type="submit" value="Process" />
</form> </form>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
@ -80,6 +80,6 @@
jQuery('#episodeDir').fileBrowser({ title: 'Select Unprocessed Episode Folder', key: 'postprocessPath' }); jQuery('#episodeDir').fileBrowser({ title: 'Select Unprocessed Episode Folder', key: 'postprocessPath' });
//--> //-->
</script> </script>
</div></div> </div>
#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")

View File

@ -18,43 +18,43 @@
<script type="text/javascript" src="$sbRoot/js/recommendedShows.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/recommendedShows.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/addShowOptions.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/addShowOptions.js?$sbPID"></script>
<div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div id="summary2" class="align-left"> <div id="newShowPortal">
<div id="displayText"></div>
<br />
<form id="recommendedShowsForm" method="post" action="$sbRoot/home/addShows/addRecommendedShow" accept-charset="utf-8" style="width: 800px;"> <div id="displayText"></div>
<fieldset class="sectionwrap"> <br />
<legend class="legendStep">Select a recommended show</legend>
<div class="stepDiv"> <form id="recommendedShowsForm" method="post" action="$sbRoot/home/addShows/addRecommendedShow" accept-charset="utf-8" style="width: 800px;">
<div id="searchResults" style="height: 100%;"><br/></div>
</div> <fieldset class="sectionwrap">
</fieldset> <legend class="legendStep">Select a recommended show</legend>
<fieldset class="sectionwrap"> <div class="stepDiv">
<legend class="legendStep">Pick the parent folder</legend> <div id="searchResults" style="height: 100%;"><br/></div>
</div>
</fieldset>
<div class="stepDiv"> <fieldset class="sectionwrap">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_rootDirs.tmpl") <legend class="legendStep">Pick the parent folder</legend>
</div>
</fieldset>
<fieldset class="sectionwrap"> <div class="stepDiv">
<legend class="legendStep">Customize options</legend> #include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_rootDirs.tmpl")
</div>
</fieldset>
<div class="stepDiv"> <fieldset class="sectionwrap">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_addShowOptions.tmpl") <legend class="legendStep">Customize options</legend>
</div>
</fieldset> <div class="stepDiv">
</form> #include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_addShowOptions.tmpl")
</div>
</fieldset>
</form>
<br /> <br />
@ -64,6 +64,6 @@
<script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script>
</div></div> </div>
#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")

View File

@ -3,57 +3,167 @@
#import re #import re
#from sickbeard.common import * #from sickbeard.common import *
#from sickbeard import sbdatetime #from sickbeard import sbdatetime
#from sickbeard.helpers import anon_url
#set global $title="Trending Shows" #set global $title='Trending Shows'
#set global $header="Trending Shows" #set global $header='Trending Shows'
#set global $sbPath=".." #set global $sbPath='..'
#set global $topmenu="comingEpisodes" #set global $topmenu='comingEpisodes'
#import os.path #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')
<script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/plotTooltip.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/plotTooltip.js?$sbPID"></script>
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#end if
<table id="trakt" width="100%" cellspacing="1" border="0" cellpadding="0">
#for $i, $cur_show in $enumerate($trending_shows):
#set $image = re.sub(r"(.*)(\..*?)$", r"\1-300\2", $cur_show["images"]["poster"], 0, re.IGNORECASE | re.MULTILINE)
#if not $i%5
<tr>
#end if
<td class="trakt_show">
<div class="traktContainer">
<div class="trakt-image">
<a href="${cur_show["url"]}" target="_blank"><img alt="" class="trakt-image" src="${image}" /></a>
<div class="trakt-image-slide">
<p>$cur_show["title"]</p>
</div>
</div>
<div class="clearfix">
<h2>$cur_show["ratings"]["percentage"]% <img src="$sbRoot/images/heart.png"></h2>
<i>$cur_show["ratings"]["votes"] votes</i>
<div class="traktShowTitleIcons">
<a href="$sbRoot/home/addTraktShow?indexer_id=${cur_show["tvdb_id"]}&amp;showName=${cur_show["title"]}" class="btn btn-mini">Add Show</a>
</div>
</div>
</div>
</td>
#end for
</table>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
<!-- <!--
window.setInterval( "location.reload(true)", 600000); // Refresh every 10 minutes
\$(document).ready(function(){
\$( "#tabs" ).tabs({
collapsible: true,
selected: #if $sickbeard.ROOT_DIRS then '-1' else '0'#
});
// initialise combos for dirty page refreshes
\$('#showsort').val('original');
\$('#showsortdirection').val('asc');
var \$container = [\$('#container')];
jQuery.each(\$container, function (j) {
this.isotope({
itemSelector: '.trakt_show',
sortBy: 'original-order',
layoutMode: 'fitRows',
getSortData: {
name: function( itemElem ) {
var name = \$( itemElem ).attr('data-name') || '';
#if not $sickbeard.SORT_ARTICLE:
name = name.replace(/^(The|A|An)\s/i, '');
#end if
return name.toLowerCase();
},
rating: '[data-rating] parseInt',
votes: '[data-votes] parseInt',
}
});
});
\$('#showsort').on( 'change', function() {
var sortCriteria;
switch (this.value) {
case 'original':
sortCriteria = 'original-order'
break;
case 'rating':
/* randomise, else the rating_votes can already
* have sorted leaving this with nothing to do.
*/
\$('#container').isotope({sortBy: 'random'});
sortCriteria = 'rating';
break;
case 'rating_votes':
sortCriteria = ['rating', 'votes'];
break;
case 'votes':
sortCriteria = 'votes';
break;
default:
sortCriteria = 'name'
break;
}
\$('#container').isotope({sortBy: sortCriteria});
});
\$('#showsortdirection').on( 'change', function() {
\$('#container').isotope({sortAscending: ('asc' == this.value)});
});
});
//--> //-->
</script> </script>
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_bottom.tmpl") #if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#end if
#if $trending_shows
<div id="tabs">
<ul>
<li><a href="#tabs-1">Manage Directories</a></li>
<li><a href="#tabs-2">Customize Options</a></li>
</ul>
<div id="tabs-1" class="existingtabs">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_rootDirs.tmpl")
</div>
<div id="tabs-2" class="existingtabs">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_addShowOptions.tmpl")
</div>
<br>
<span>Sort By:</span>
<select id="showsort" class="form-control form-control-inline input-sm">
<option value="name">Name</option>
<option value="original" selected="selected">Original</option>
<option value="votes">Votes</option>
<option value="rating">% Rating</option>
<option value="rating_votes">% Rating > Votes</option>
</select>
<span style="margin-left:12px">Sort Order:</span>
<select id="showsortdirection" class="form-control form-control-inline input-sm">
<option value="asc" selected="selected">Asc</option>
<option value="desc">Desc</option>
</select>
</div>
#end if
<div id="container">
#if None is $trending_shows
<div class="trakt_show" style="width:100%; margin-top:20px">
<p class="red-text">Trakt API did not return results, this can happen from time to time.
<br /><br />This view should auto refresh every 10 mins.</p>
</div>
#else
#for $cur_show in $trending_shows:
#if not 'ExistsInLibrary' in $cur_show['tvdb_id']:
#set $image = re.sub(r'(?im)(.*)(\..*?)$', r'\1-300\2', $cur_show['images']['poster'], 0)
<div class="trakt_show" data-name="$cur_show['title']" data-rating="$cur_show['ratings']['percentage']" data-votes="$cur_show['ratings']['votes']">
<div class="traktContainer">
<div class="trakt-image">
<a class="trakt-image" href="<%= anon_url(cur_show['url']) %>" target="_blank"><img alt="" class="trakt-image" src="${image}" /></a>
</div>
<div class="show-title">
<%= (cur_show['title'], '<span>&nbsp;</span>')[ '' == cur_show['title']] %>
</div>
<div class="clearfix">
<p>$cur_show['ratings']['percentage']% <img src="$sbRoot/images/heart.png"></p>
<i>$cur_show['ratings']['votes'] votes</i>
<div class="traktShowTitleIcons">
<a href="$sbRoot/home/addTraktShow?indexer_id=${cur_show['tvdb_id']}&amp;showName=${cur_show['title']}" class="btn btn-xs">Add Show</a>
</div>
</div>
</div>
</div>
#end if
#end for
#end if
</div>
<script type="text/javascript" charset="utf-8">
<!--
window.setInterval('location.reload(true)', 600000); // Refresh every 10 minutes
//-->
</script>
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_bottom.tmpl')

View File

@ -3,49 +3,58 @@
#from sickbeard import subtitles #from sickbeard import subtitles
#if $sickbeard.USE_SUBTITLES: #if $sickbeard.USE_SUBTITLES:
<div class="field-pair alt"> <br><div class="field-pair">
<input type="checkbox" name="subtitles" id="subtitles" #if $sickbeard.SUBTITLES_DEFAULT then "checked=\"checked\"" else ""# />
<label for="subtitles" class="clearfix"> <label for="subtitles" class="clearfix">
<span class="component-title">Subtitles</span> <span class="component-title">Subtitles</span>
<span class="component-desc">Download subtitles for this show?</span> <span class="component-desc">
<input type="checkbox" name="subtitles" id="subtitles" #if $sickbeard.SUBTITLES_DEFAULT then "checked=\"checked\"" else ""# />
<p>Download subtitles for this show?</p>
</span>
</label> </label>
</div> </div>
#end if #end if
<div class="field-pair"> <div class="field-pair">
<label for="statusSelect" class="nocheck clearfix"> <label for="statusSelect">
<span class="component-title"> <span class="component-title">Set the initial status<br /> of missing episodes</span>
<select name="defaultStatus" id="statusSelect"> <span class="component-desc">
<select name="defaultStatus" id="statusSelect" class="form-control form-control-inline input-sm">
#for $curStatus in [$SKIPPED, $WANTED, $ARCHIVED, $IGNORED]: #for $curStatus in [$SKIPPED, $WANTED, $ARCHIVED, $IGNORED]:
<option value="$curStatus" #if $sickbeard.STATUS_DEFAULT == $curStatus then 'selected="selected"' else ''#>$statusStrings[$curStatus]</option> <option value="$curStatus" #if $sickbeard.STATUS_DEFAULT == $curStatus then 'selected="selected"' else ''#>$statusStrings[$curStatus]</option>
#end for #end for
</select> </select>
</span> </span>
<span class="component-desc">Set the initial status of missing episodes</span>
</label> </label>
</div> </div>
<div class="field-pair alt"> <div class="field-pair alt">
<input class="cb" type="checkbox" name="flatten_folders" id="flatten_folders" #if $sickbeard.FLATTEN_FOLDERS_DEFAULT then "checked=\"checked\"" else ""# />
<label for="flatten_folders" class="clearfix"> <label for="flatten_folders" class="clearfix">
<span class="component-title">Flatten Folders</span> <span class="component-title">Flatten Folders</span>
<span class="component-desc">Disregard sub-folders?</span> <span class="component-desc">
<input class="cb" type="checkbox" name="flatten_folders" id="flatten_folders" #if $sickbeard.FLATTEN_FOLDERS_DEFAULT then "checked=\"checked\"" else ""# />
<p>Disregard sub-folders?</p>
</span>
</label> </label>
</div> </div>
<div class="field-pair alt"> <div class="field-pair alt">
<input type="checkbox" name="anime" id="anime" #if $sickbeard.ANIME_DEFAULT then "checked=\"checked\"" else ""# />
<label for="anime" class="clearfix"> <label for="anime" class="clearfix">
<span class="component-title">Anime</span> <span class="component-title">Anime</span>
<span class="component-desc">Is this show an Anime?</span> <span class="component-desc">
<input type="checkbox" name="anime" id="anime" #if $sickbeard.ANIME_DEFAULT then "checked=\"checked\"" else ""# />
<p>Is this show an Anime?<p>
</span>
</label> </label>
</div> </div>
<div class="field-pair alt"> <div class="field-pair alt">
<input type="checkbox" name="scene" id="scene" #if $sickbeard.SCENE_DEFAULT then "checked=\"checked\"" else ""# />
<label for="scene" class="clearfix"> <label for="scene" class="clearfix">
<span class="component-title">Scene Numbering</span> <span class="component-title">Scene Numbering</span>
<span class="component-desc">Is this show scene numbered?</span> <span class="component-desc">
<input type="checkbox" name="scene" id="scene" #if $sickbeard.SCENE_DEFAULT then "checked=\"checked\"" else ""# />
<p>Is this show scene numbered?</p>
</span>
</label> </label>
</div> </div>
@ -53,10 +62,13 @@
#set global $anyQualities = $qualities[0] #set global $anyQualities = $qualities[0]
#set global $bestQualities = $qualities[1] #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")
<br>
<div class="field-pair alt"> <div class="field-pair alt">
<label for="saveDefaultsButton" class="nocheck clearfix"> <label for="saveDefaultsButton" class="nocheck clearfix">
<span class="component-title"><input class="btn" type="button" id="saveDefaultsButton" value="Save Defaults" disabled="disabled" /></span> <span class="component-title"><input class="btn btn-inline" type="button" id="saveDefaultsButton" value="Save Defaults" disabled="disabled" /></span>
<span class="component-desc">Persist current values as the defaults</span> <span class="component-desc">
<p>Use current values as the defaults</p>
</span>
</label> </label>
</div> </div><br>

View File

@ -1,5 +1,5 @@
<b>Fansub Groups:</b> <b>Fansub Groups:</b>
<div class="component-group-desc"> <div >
<p>Select your preferred fansub groups from the <b>Available Groups</b> and add them to the <b>Whitelist</b>. Add groups to the <b>Blacklist</b> to ignore them.</p> <p>Select your preferred fansub groups from the <b>Available Groups</b> and add them to the <b>Whitelist</b>. Add groups to the <b>Blacklist</b> to ignore them.</p>
<p>The <b>Whitelist</b> is checked <i>before</i> the <b>Blacklist</b>.</p> <p>The <b>Whitelist</b> is checked <i>before</i> the <b>Blacklist</b>.</p>
<p>Groups are shown as <b>Name</b> | <b>Rating</b> | <b>Number of subbed episodes</b>.</p> <p>Groups are shown as <b>Name</b> | <b>Rating</b> | <b>Number of subbed episodes</b>.</p>
@ -44,9 +44,9 @@
</div> </div>
<br style="clear:both" /> <br style="clear:both" />
<div class="blackwhitelist manual"> <div class="blackwhitelist manual">
<input type="text" id="addToPoolText" size="30" /> <input type="text" id="addToPoolText" class="form-control form-control-inline input-sm input250" />
<input class="btn" type="button" value="Add to Whitelist" id="addToWhite"> <input class="btn btn-inline" type="button" value="Add to Whitelist" id="addToWhite">
<input class="btn" type="button" value="Add to Blacklist" id="addToBlack"> <input class="btn btn-inline" type="button" value="Add to Blacklist" id="addToBlack">
</div> </div>
</div> </div>
<br style="clear:both" /> <br style="clear:both" />

View File

@ -6,8 +6,8 @@
</div> <!-- /content --> </div> <!-- /content -->
</div> <!-- /contentWrapper --> </div> <!-- /contentWrapper -->
<div class="footer clearfix"> <footer>
<div class="meta" style="display: table; margin: 0 auto; font-size: 12px;"> <div class="footer clearfix">
#set $myDB = $db.DBConnection() #set $myDB = $db.DBConnection()
#set $today = str($datetime.date.today().toordinal()) #set $today = str($datetime.date.today().toordinal())
#set status_quality = '(' + ','.join([str(quality) for quality in $Quality.SNATCHED + $Quality.SNATCHED_PROPER]) + ')' #set status_quality = '(' + ','.join([str(quality) for quality in $Quality.SNATCHED + $Quality.SNATCHED_PROPER]) + ')'
@ -41,15 +41,15 @@
<div class="footerhighlight">$shows_total</div> Shows (<div class="footerhighlight">$shows_active</div> Active) | <div class="footerhighlight"><%=ep_downloaded%></div>#if $ep_snatched > 0 then " (" + "<div class=\"footerhighlight\">+" + str($ep_snatched) + "</div> snatched)" else ""# / <div class="footerhighlight">$ep_total</div> Episodes Downloaded | Daily Search: <div class="footerhighlight"><%=str(sickbeard.dailySearchScheduler.timeLeft()).split('.')[0]%></div> | Backlog Search: <div class="footerhighlight">$sbdatetime.sbdatetime.sbfdate($sickbeard.backlogSearchScheduler.nextRun())</div> <div class="footerhighlight">$shows_total</div> Shows (<div class="footerhighlight">$shows_active</div> Active) | <div class="footerhighlight"><%=ep_downloaded%></div>#if $ep_snatched > 0 then " (" + "<div class=\"footerhighlight\">+" + str($ep_snatched) + "</div> snatched)" else ""# / <div class="footerhighlight">$ep_total</div> Episodes Downloaded | Daily Search: <div class="footerhighlight"><%=str(sickbeard.dailySearchScheduler.timeLeft()).split('.')[0]%></div> | Backlog Search: <div class="footerhighlight">$sbdatetime.sbdatetime.sbfdate($sickbeard.backlogSearchScheduler.nextRun())</div>
</div> </div>
<!-- <!--
<ul style="display: table; margin: 0 auto; font-size: 12px; list-style-type: none; padding: 0; padding-top: 10px;"> <ul style="display: table; margin: 0 auto; font-size: 12px; list-style-type: none; padding: 0; padding-top: 10px;">
<li><a href="$sbRoot/manage/manageSearches/forceVersionCheck"><img src="$sbRoot/images/menu/update16.png" alt="" width="16" height="16" style="vertical-align:middle;" />Force Version Check</a></li> <li><a href="$sbRoot/manage/manageSearches/forceVersionCheck"><img src="$sbRoot/images/menu/update16.png" alt="" width="16" height="16" style="vertical-align:middle;" />Force Version Check</a></li>
<li><a href="$sbRoot/home/restart/?pid=$sbPID" class="confirm"><img src="$sbRoot/images/menu/restart16.png" alt="" width="16" height="16" style="vertical-align:middle;" />Restart</a></li> <li><a href="$sbRoot/home/restart/?pid=$sbPID" class="confirm"><img src="$sbRoot/images/menu/restart16.png" alt="" width="16" height="16" style="vertical-align:middle;" />Restart</a></li>
<li><a href="$sbRoot/home/shutdown/?pid=$sbPID" class="confirm"><img src="$sbRoot/images/menu/shutdown16.png" alt="" width="16" height="16" style="vertical-align:middle;" />Shutdown</a></li> <li><a href="$sbRoot/home/shutdown/?pid=$sbPID" class="confirm"><img src="$sbRoot/images/menu/shutdown16.png" alt="" width="16" height="16" style="vertical-align:middle;" />Shutdown</a></li>
</ul> </ul>
--> -->
</div> </footer>
</body> </body>
</html> </html>

View File

@ -1,33 +0,0 @@
#import sickbeard
<span id="sampleImdbWl"></span>
#if $sickbeard.IMDB_WATCHLISTCSV:
#set $backend_pieces = $sickbeard.IMDB_WATCHLISTCSV.split('|')
#else:
#set $backend_pieces = []
#end if
<div style="padding: 10px 0 5px;">
<select name="imdbWatchlistCsv" id="imdbWl" size="6" style="width: 670px;">
#for $imdbwl in $backend_pieces:
#if $imdbwl != "":
<option value="$imdbwl">$imdbwl</option>
#end if
#end for
</select>
</div>
<div id="imdbWlControls" style="text-align: center; width: 670px; padding-bottom: 10px;">
<input class="btn" type="button" id="addImdbWl" value="New" />
<input class="btn" type="button" id="editImdbWl" value="Edit" />
<input class="btn" type="button" id="deleteImdbWl" value="Delete" />
</div>
<input type="hidden" style="display: none" id="ImdbWlText" />
<input type="text" style="display: none" id="editImdbWlText" />
<div id="imdbWlUpdateControls" style="text-align: center; width: 670px;">
<input class="btn" style="display: none" type="button" id="updateImdbWl" value="Update" />
</div>
<br />

View File

@ -2,18 +2,18 @@
#from sickbeard.common import Quality, qualityPresets, qualityPresetStrings #from sickbeard.common import Quality, qualityPresets, qualityPresetStrings
<div class="field-pair"> <div class="field-pair">
<label for="qualityPreset" class="nocheck clearfix"> <label for="qualityPreset">
#set $overall_quality = $Quality.combineQualities($anyQualities, $bestQualities) #set $overall_quality = $Quality.combineQualities($anyQualities, $bestQualities)
<span class="component-title"> <span class="component-title">Preferred quality of episodes to be download</span>
<span class="component-desc">
#set $selected = None #set $selected = None
<select id="qualityPreset"> <select id="qualityPreset" class="form-control form-control-inline input-sm">
<option value="0">Custom</option> <option value="0">Custom</option>
#for $curPreset in sorted($qualityPresets): #for $curPreset in sorted($qualityPresets):
<option value="$curPreset" #if $curPreset == $overall_quality then "selected=\"selected\"" else ""# #if $qualityPresetStrings[$curPreset].endswith("0p") then "style=\"padding-left: 15px;\"" else ""#>$qualityPresetStrings[$curPreset]</option> <option value="$curPreset" #if $curPreset == $overall_quality then "selected=\"selected\"" else ""# #if $qualityPresetStrings[$curPreset].endswith("0p") then "style=\"padding-left: 15px;\"" else ""#>$qualityPresetStrings[$curPreset]</option>
#end for #end for
</select> </select>
</span> </span>
<span class="component-desc">Preferred quality of episodes to be download</span>
</label> </label>
</div> </div>
@ -21,23 +21,23 @@
<div id="customQualityWrapper"> <div id="customQualityWrapper">
<div id="customQuality"> <div id="customQuality">
<div class="component-group-desc"> <div class="component-group-desc">
<p>One of the <b>Initial</b> quality selections must be obtained before SickRage will attempt to process the <b>Archive</b> selections.</p> <p>One of the <b>Initial</b> quality selections must be obtained before SickRage will attempt to search and process the <b>Archive</b> selections.</p>
</div> </div>
<div style="padding-right: 40px; text-align: center;" class="float-left"> <div style="padding-right: 40px; text-align: left; float: left;">
<h4>Initial</h4> <h5>Initial</h4>
#set $anyQualityList = filter(lambda x: x > $Quality.NONE, $Quality.qualityStrings) #set $anyQualityList = filter(lambda x: x > $Quality.NONE, $Quality.qualityStrings)
<select id="anyQualities" name="anyQualities" multiple="multiple" size="$len($anyQualityList)"> <select id="anyQualities" name="anyQualities" multiple="multiple" size="$len($anyQualityList)" class="form-control form-control-inline input-sm">
#for $curQuality in sorted($anyQualityList): #for $curQuality in sorted($anyQualityList):
<option value="$curQuality" #if $curQuality in $anyQualities then "selected=\"selected\"" else ""#>$Quality.qualityStrings[$curQuality]</option> <option value="$curQuality" #if $curQuality in $anyQualities then "selected=\"selected\"" else ""#>$Quality.qualityStrings[$curQuality]</option>
#end for #end for
</select> </select>
</div> </div>
<div style="text-align: center;" class="float-left"> <div style="text-align: left; float: left;">
<h4>Archive</h4> <h5>Archive</h4>
#set $bestQualityList = filter(lambda x: x > $Quality.SDTV and x < $Quality.UNKNOWN, $Quality.qualityStrings) #set $bestQualityList = filter(lambda x: x > $Quality.SDTV and x < $Quality.UNKNOWN, $Quality.qualityStrings)
<select id="bestQualities" name="bestQualities" multiple="multiple" size="$len($bestQualityList)"> <select id="bestQualities" name="bestQualities" multiple="multiple" size="$len($bestQualityList)" class="form-control form-control-inline input-sm">
#for $curQuality in sorted($bestQualityList): #for $curQuality in sorted($bestQualityList):
<option value="$curQuality" #if $curQuality in $bestQualities then "selected=\"selected\"" else ""#>$Quality.qualityStrings[$curQuality]</option> <option value="$curQuality" #if $curQuality in $bestQualities then "selected=\"selected\"" else ""#>$Quality.qualityStrings[$curQuality]</option>
#end for #end for

View File

@ -11,18 +11,17 @@
#end if #end if
<input type="hidden" id="whichDefaultRootDir" value="$backend_default" /> <input type="hidden" id="whichDefaultRootDir" value="$backend_default" />
<div style="padding: 10px 0 5px; width: 670px; margin-left: auto; margin-right: auto;"> <div class="rootdir-selectbox">
<select name="rootDir" id="rootDirs" size="6" style="width: 670px;"> <select name="rootDir" id="rootDirs" size="6">
#for $cur_dir in $backend_dirs: #for $cur_dir in $backend_dirs:
<option value="$cur_dir">$cur_dir</option> <option value="$cur_dir">$cur_dir</option>
#end for #end for
</select> </select>
</div> </div>
<div id="rootDirsControls" style="text-align: center; width: 670px; margin-left: auto; margin-right: auto;"> <div id="rootDirsControls" class="rootdir-controls">
<input class="btn" type="button" id="addRootDir" value="New" /> <input class="btn" type="button" id="addRootDir" value="New" />
<input class="btn" type="button" id="editRootDir" value="Edit" /> <input class="btn" type="button" id="editRootDir" value="Edit" />
<input class="btn" type="button" id="deleteRootDir" value="Delete" /> <input class="btn" type="button" id="deleteRootDir" value="Delete" />
<input class="btn" type="button" id="defaultRootDir" value="Set as Default *" /> <input class="btn" type="button" id="defaultRootDir" value="Set as Default *" />
</div> </div>
<input type="text" style="display: none" id="rootDirText" /> <input type="text" style="display: none" id="rootDirText" />
<br />

View File

@ -1,215 +1,268 @@
#import sickbeard #import sickbeard
#import urllib #import urllib
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html>
<html xmlns="http://www.w3.org/1999/xhtml"> <head>
<head> <meta charset="utf-8">
<meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>SickRage - BRANCH:[$sickbeard.BRANCH] - $title</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="shortcut icon" href="$sbRoot/images/ico/favicon.ico">
<link rel="icon" sizes="16x16 32x32 64x64" href="$sbRoot/images/ico/favicon.ico">
<link rel="icon" type="image/png" sizes="196x196" href="$sbRoot/images/ico/favicon-196.png">
<link rel="icon" type="image/png" sizes="160x160" href="$sbRoot/images/ico/favicon-160.png">
<link rel="icon" type="image/png" sizes="96x96" href="$sbRoot/images/ico/favicon-96.png">
<link rel="icon" type="image/png" sizes="64x64" href="$sbRoot/images/ico/favicon-64.png">
<link rel="icon" type="image/png" sizes="32x32" href="$sbRoot/images/ico/favicon-32.png">
<link rel="icon" type="image/png" sizes="16x16" href="$sbRoot/images/ico/favicon-16.png">
<link rel="apple-touch-icon" sizes="152x152" href="$sbRoot/images/ico/favicon-152.png">
<link rel="apple-touch-icon" sizes="144x144" href="$sbRoot/images/ico/favicon-144.png">
<link rel="apple-touch-icon" sizes="120x120" href="$sbRoot/images/ico/favicon-120.png">
<link rel="apple-touch-icon" sizes="114x114" href="$sbRoot/images/ico/favicon-114.png">
<link rel="apple-touch-icon" sizes="76x76" href="$sbRoot/images/ico/favicon-76.png">
<link rel="apple-touch-icon" sizes="72x72" href="$sbRoot/images/ico/favicon-72.png">
<link rel="apple-touch-icon" href="$sbRoot/images/ico/favicon-57.png">
<meta name="msapplication-TileColor" content="#FFFFFF">
<meta name="msapplication-TileImage" content="$sbRoot/images/ico/favicon-144.png">
<meta name="msapplication-config" content="$sbRoot/css/browserconfig.xml">
<link rel="stylesheet" type="text/css" href="$sbRoot/css/default.css?$sbPID" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/browser.css?$sbPID" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/jquery.qtip-2.0.1.min.css?$sbPID"/>
<link rel="stylesheet" type="text/css" media="only screen and (max-device-width: 480px)" href="$sbRoot/css/iphone.css?$sbPID" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/${sickbeard.THEME_NAME}.css?$sbPID" />
<style type="text/css">
<!--
#if $sickbeard.NEWEST_VERSION_STRING:
.ui-pnotify { top: 30px !important; }
#end if
//-->
</style>
<script type="text/javascript" src="$sbRoot/js/lib/jquery-1.8.3.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery-ui-1.10.4.custom.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/superfish-1.4.8.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/supersubs-0.2b.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.cookie.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.cookiejar.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.json-2.2.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.selectboxes.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.tablesorter-2.17.7.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.tablesorter.widgets-2.17.7.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.qtip-2.0.1.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.pnotify-1.0.2.min.js"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.form-3.35.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.ui.touch-punch-0.2.2.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.isotope.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.confirm.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/script.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/submenu.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/confirmations.js?$sbPID"></script>
#if $sickbeard.FUZZY_DATING: <title>SickRage - BRANCH:[$sickbeard.BRANCH] - $title</title>
<script type="text/javascript" src="$sbRoot/js/moment/moment.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/fuzzyMoment.js?$sbPID"></script> <!--[if lt IE 9]>
#end if <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script type="text/javascript" charset="utf-8"> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<!-- <![endif]-->
sbRoot = "$sbRoot"; // needed for browser.js & ajaxNotifications.js
//HTML for scrolltopcontrol, which is auto wrapped in DIV w/ ID="topcontrol"
top_image_html = '<img src="$sbRoot/images/top.gif" width="31" height="11" alt="Jump to top" />';
//-->
</script>
<script type="text/javascript" src="$sbRoot/js/lib/jquery.scrolltopcontrol-1.1.js"></script>
<script type="text/javascript" src="$sbRoot/js/browser.js"></script>
<script type="text/javascript" src="$sbRoot/js/ajaxNotifications.js"></script>
<script type="text/javascript"> <link rel="shortcut icon" href="$sbRoot/images/ico/favicon.ico">
<!-- <link rel="icon" sizes="16x16 32x32 64x64" href="$sbRoot/images/ico/favicon.ico">
\$(document).ready(function(){ <link rel="icon" type="image/png" sizes="196x196" href="$sbRoot/images/ico/favicon-196.png">
initActions(); <link rel="icon" type="image/png" sizes="160x160" href="$sbRoot/images/ico/favicon-160.png">
\$("ul.sf-menu").supersubs({ <link rel="icon" type="image/png" sizes="96x96" href="$sbRoot/images/ico/favicon-96.png">
minWidth: 12, // minimum width of sub-menus in em units <link rel="icon" type="image/png" sizes="64x64" href="$sbRoot/images/ico/favicon-64.png">
maxWidth: 27, // maximum width of sub-menus in em units <link rel="icon" type="image/png" sizes="32x32" href="$sbRoot/images/ico/favicon-32.png">
extraWidth: 1 // extra width can ensure lines don't sometimes turn over <link rel="icon" type="image/png" sizes="16x16" href="$sbRoot/images/ico/favicon-16.png">
// due to slight rounding differences and font-family <link rel="apple-touch-icon" sizes="152x152" href="$sbRoot/images/ico/favicon-152.png">
}).superfish({ <link rel="apple-touch-icon" sizes="144x144" href="$sbRoot/images/ico/favicon-144.png">
delay: 150, <link rel="apple-touch-icon" sizes="120x120" href="$sbRoot/images/ico/favicon-120.png">
disableHI: true, <link rel="apple-touch-icon" sizes="114x114" href="$sbRoot/images/ico/favicon-114.png">
animation: {opacity:'show',height:'show'}, <link rel="apple-touch-icon" sizes="76x76" href="$sbRoot/images/ico/favicon-76.png">
speed: 'fast', <link rel="apple-touch-icon" sizes="72x72" href="$sbRoot/images/ico/favicon-72.png">
dropShadows: false <link rel="apple-touch-icon" href="$sbRoot/images/ico/favicon-57.png">
}); <meta name="msapplication-TileColor" content="#FFFFFF">
<meta name="msapplication-TileImage" content="$sbRoot/images/ico/favicon-144.png">
<meta name="msapplication-config" content="$sbRoot/css/browserconfig.xml">
\$("#NAV$topmenu").addClass("current"); <link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/bootstrap.css?$sbPID"/>
<link rel="stylesheet" type="text/css" href="$sbRoot/css/browser.css?$sbPID" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/jquery-ui-1.10.4.custom.css?$sbPID" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/jquery.qtip-2.0.1.min.css?$sbPID"/>
<link rel="stylesheet" type="text/css" href="$sbRoot/css/lib/pnotify.custom.min.css?$sbPID" />
<link rel="stylesheet" type="text/css" href="$sbRoot/css/style.css?$sbPID"/>
<link rel="stylesheet" type="text/css" href="$sbRoot/css/${sickbeard.THEME_NAME}.css?$sbPID" />
});
//-->
</script>
<script type="text/javascript" src="$sbRoot/js/confirmations.js?$sbPID"></script>
</head>
<body> <style type="text/css">
#if $sickbeard.NEWEST_VERSION_STRING: <!--
<div id="upgrade-notification">
<div> #if $sickbeard.NEWEST_VERSION_STRING:
<span class="notify-text">$sickbeard.NEWEST_VERSION_STRING</span> .ui-pnotify { top: 30px !important; }
</div> #end if
</div>
<div id="header-fix"></div> //-->
#end if </style>
<div id="header">
<div class="wrapper"> <script type="text/javascript" src="$sbRoot/js/lib/jquery-1.8.3.min.js?$sbPID"></script>
<a name="top"></a> <script type="text/javascript" src="$sbRoot/js/lib/bootstrap.min.js?$sbPID"></script>
<span id="logo"><a href="$sbRoot/home/" title="SickRage homepage"><img alt="Sick Rage" src="$sbRoot/images/sickrage.png"/></a></span> <script type="text/javascript" src="$sbRoot/js/lib/bootstrap-hover-dropdown.min.js?$sbPID"></script>
<ul id="MainMenu" class="sf-menu"> <script type="text/javascript" src="$sbRoot/js/lib/jquery-ui-1.10.4.custom.min.js?$sbPID"></script>
<li id="NAVhome"><a href="$sbRoot/home/">Show list</a> <script type="text/javascript" src="$sbRoot/js/lib/jquery.cookie.js?$sbPID"></script>
<ul> <script type="text/javascript" src="$sbRoot/js/lib/jquery.cookiejar.js?$sbPID"></script>
<li><a href="$sbRoot/home/addShows/"><img src="$sbRoot/images/menu/addshow16.png" alt="" width="16" height="16" />Add Shows</a></li> <script type="text/javascript" src="$sbRoot/js/lib/jquery.json-2.2.min.js?$sbPID"></script>
<li><a href="$sbRoot/home/postprocess/"><img src="$sbRoot/images/menu/postprocess16.png" alt="" width="16" height="16" />Manual Post-Processing</a></li> <script type="text/javascript" src="$sbRoot/js/lib/jquery.selectboxes.min.js?$sbPID"></script>
</ul> <script type="text/javascript" src="$sbRoot/js/lib/jquery.tablesorter-2.17.7.min.js?$sbPID"></script>
</li> <script type="text/javascript" src="$sbRoot/js/lib/jquery.tablesorter.widgets-2.17.7.min.js?$sbPID"></script>
<li id="NAVcomingEpisodes"><a href="$sbRoot/comingEpisodes/">Coming Episodes</a></li> <script type="text/javascript" src="$sbRoot/js/lib/jquery.qtip-2.0.1.min.js?$sbPID"></script>
<li id="NAVhistory"><a href="$sbRoot/history/">History</a></li> <script type="text/javascript" src="$sbRoot/js/lib/pnotify.custom.min.js"></script>
<li id="NAVmanage"><a href="$sbRoot/manage/">Manage</a> <script type="text/javascript" src="$sbRoot/js/lib/jquery.form-3.35.js?$sbPID"></script>
<ul> <script type="text/javascript" src="$sbRoot/js/lib/jquery.ui.touch-punch-0.2.2.min.js?$sbPID"></script>
<li><a href="$sbRoot/manage/"><img src="$sbRoot/images/menu/manage16.png" alt="" width="16" height="16" />Mass Update</a></li> <script type="text/javascript" src="$sbRoot/js/lib/isotope.pkgd.min.js?$sbPID"></script>
<li><a href="$sbRoot/manage/backlogOverview/"><img src="$sbRoot/images/menu/backlog_view16.png" alt="" width="16" height="16" />Backlog Overview</a></li> <script type="text/javascript" src="$sbRoot/js/lib/jquery.confirm.js?$sbPID"></script>
<li><a href="$sbRoot/manage/manageSearches/"><img src="$sbRoot/images/menu/managesearches16.png" alt="" width="16" height="16" />Manage Searches</a></li> <script type="text/javascript" src="$sbRoot/js/script.js?$sbPID"></script>
#if $sickbeard.USE_PLEX and $sickbeard.PLEX_SERVER_HOST != "":
<li><a href="$sbRoot/home/updatePLEX/"><img src="$sbRoot/images/menu/backlog_view16.png" alt="" width="16" height="16" />Update PLEX</a></li>
#end if #if $sickbeard.FUZZY_DATING:
#if $sickbeard.USE_XBMC and $sickbeard.XBMC_HOST != "": <script type="text/javascript" src="$sbRoot/js/moment/moment.min.js?$sbPID"></script>
<li><a href="$sbRoot/home/updateXBMC/"><img src="$sbRoot/images/menu/backlog_view16.png" alt="" width="16" height="16" />Update XBMC</a></li> <script type="text/javascript" src="$sbRoot/js/fuzzyMoment.js?$sbPID"></script>
#end if #end if
#if $sickbeard.USE_TORRENTS and $sickbeard.TORRENT_METHOD != 'blackhole' \ <script type="text/javascript" charset="utf-8">
and ($sickbeard.ENABLE_HTTPS and $sickbeard.TORRENT_HOST[:5] == 'https' \ <!--
or not $sickbeard.ENABLE_HTTPS and $sickbeard.TORRENT_HOST[:5] == 'http:'): sbRoot = '$sbRoot'; // needed for browser.js & ajaxNotifications.js
<li><a href="$sbRoot/manage/manageTorrents/"><img src="$sbRoot/images/menu/bittorrent.png" alt="" width="16" height="16" />Manage Torrents</a></li> //HTML for scrolltopcontrol, which is auto wrapped in DIV w/ ID="topcontrol"
#end if top_image_html = '<img src="$sbRoot/images/top.gif" width="31" height="11" alt="Jump to top" />';
#if $sickbeard.USE_FAILED_DOWNLOADS: themeSpinner = <%= '\'\'' if 'dark' != sickbeard.THEME_NAME else '\'-dark\'' %>;
<li><a href="$sbRoot/manage/failedDownloads/"><img src="$sbRoot/images/menu/failed_download.png" alt="" width="16" height="16" />Failed Downloads</a></li> anonURL = '<%= sickbeard.ANON_REDIRECT %>'
#end if //-->
<li><a href="$sbRoot/manage/episodeStatuses/"><img src="$sbRoot/images/menu/backlog16.png" alt="" width="16" height="16" />Episode Status Management</a></li> </script>
#if $sickbeard.USE_SUBTITLES: <script type="text/javascript" src="$sbRoot/js/lib/jquery.scrolltopcontrol-1.1.js"></script>
<li><a href="$sbRoot/manage/subtitleMissed/"><img src="$sbRoot/images/menu/backlog16.png" alt="" width="16" height="16" />Missed Subtitle Management</a></li> <script type="text/javascript" src="$sbRoot/js/browser.js"></script>
#end if <script type="text/javascript" src="$sbRoot/js/ajaxNotifications.js"></script>
</ul> <script type="text/javascript">
</li> <!--
<li id="NAVerrorlogs"><a href="$sbRoot/errorlogs/" class="log">$logPageTitle</a> function initActions() {
<ul> \$("#SubMenu a[href*='/home/restart/']").addClass('btn restart').html('<span class="submenu-icon-restart pull-left"></span> Restart');
<li><a href="$sbRoot/errorlogs/"><img src="$sbRoot/images/menu/viewlog_errors16.png" alt="" width="16" height="16" />View Log (Errors)</a></li> \$("#SubMenu a[href*='/home/shutdown/']").addClass('btn shutdown').html('<span class="submenu-icon-shutdown pull-left"></span> Shutdown');
<li><a href="$sbRoot/errorlogs/viewlog/"><img src="$sbRoot/images/menu/viewlog16.png" alt="" width="16" height="16" />View Log</a></li> \$("#SubMenu a[href*='/home/logout/']").addClass('btn').html('<span class="ui-icon ui-icon-power pull-left"></span> Logout');
</ul> \$("#SubMenu a:contains('Edit')").addClass('btn').html('<span class="ui-icon ui-icon-pencil pull-left"></span> Edit');
</li> \$("#SubMenu a:contains('Remove')").addClass('btn remove').html('<span class="ui-icon ui-icon-trash pull-left"></span> Remove');
<li id="NAVconfig"><a href="$sbRoot/config/" class="config"><img src="$sbRoot/images/menu/system18.png" alt="" /></a> \$("#SubMenu a:contains('Clear History')").addClass('btn clearhistory').html('<span class="ui-icon ui-icon-trash pull-left"></span> Clear History');
<ul> \$("#SubMenu a:contains('Trim History')").addClass('btn trimhistory').html('<span class="ui-icon ui-icon-trash pull-left"></span> Trim History');
<li><a href="$sbRoot/config/"><i class="icon-question-sign" style=" margin-left: -21px;margin-right: 8px;position: absolute;"></i>Help &amp; Info</a></li> \$("#SubMenu a[href$='/errorlogs/clearerrors/']").addClass('btn').html('<span class="ui-icon ui-icon-trash pull-left"></span> Clear Errors');
<li><a href="$sbRoot/config/general/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />General</a></li> \$("#SubMenu a:contains('Re-scan')").addClass('btn').html('<span class="ui-icon ui-icon-refresh pull-left"></span> Re-scan');
<li><a href="$sbRoot/config/backuprestore/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Backup/Restore</a></li> \$("#SubMenu a:contains('Backlog Overview')").addClass('btn').html('<span class="ui-icon ui-icon-refresh pull-left"></span> Backlog Overview');
<li><a href="$sbRoot/config/search/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Search Settings</a></li> \$("#SubMenu a[href$='/home/updatePLEX/']").addClass('btn').html('<span class="ui-icon ui-icon-refresh pull-left"></span> Update PLEX');
<li><a href="$sbRoot/config/providers/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Search Providers</a></li> \$("#SubMenu a:contains('Force')").addClass('btn').html('<span class="ui-icon ui-icon-transfer-e-w pull-left"></span> Force Full Update');
<li><a href="$sbRoot/config/subtitles/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Subtitles Settings</a></li> \$("#SubMenu a:contains('Rename')").addClass('btn').html('<span class="ui-icon ui-icon-tag pull-left"></span> Preview Rename');
<li><a href="$sbRoot/config/postProcessing/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Post Processing</a></li> \$("#SubMenu a[href$='/config/subtitles/']").addClass('btn').html('<span class="ui-icon ui-icon-comment pull-left"></span> Search Subtitles');
<li><a href="$sbRoot/config/notifications/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Notifications</a></li> \$("#SubMenu a[href*='/home/subtitleShow']").addClass('btn').html('<span class="ui-icon ui-icon-comment pull-left"></span> Download Subtitles');
<li><a href="$sbRoot/config/anime/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Anime</a></li> \$("#SubMenu a:contains('Anime')").addClass('btn').html('<span class="submenu-icon-anime pull-left"></span> Anime');
</ul> \$("#SubMenu a:contains('Settings')").addClass('btn').html('<span class="ui-icon ui-icon-search pull-left"></span> Search Settings');
</li> \$("#SubMenu a:contains('Provider')").addClass('btn').html('<span class="ui-icon ui-icon-search pull-left"></span> Search Providers');
<li id="NAVsystem"><a href="#" onclick="return false;" class="config"><img src="$sbRoot/images/menu/system18-2.png" alt="" /></a> \$("#SubMenu a:contains('Backup/Restore')").addClass('btn').html('<span class="ui-icon ui-icon-gear pull-left"></span> Backup/Restore');
<ul> \$("#SubMenu a:contains('General')").addClass('btn').html('<span class="ui-icon ui-icon-gear pull-left"></span> General');
<li><a href="$sbRoot/manage/manageSearches/forceVersionCheck"><img src="$sbRoot/images/menu/update16.png" alt="" width="16" height="16" style="margin-top: -1px;" />Force Version Check</a></li> \$("#SubMenu a:contains('Episode Status')").addClass('btn').html('<span class="ui-icon ui-icon-transferthick-e-w pull-left"></span> Episode Status Management');
<li><a href="$sbRoot/home/restart/?pid=$sbPID" class="confirm restart"><img src="$sbRoot/images/menu/restart16.png" alt="" width="16" height="16" style="margin-top: -2px;" />Restart</a></li> \$("#SubMenu a:contains('Missed Subtitle')").addClass('btn').html('<span class="ui-icon ui-icon-transferthick-e-w pull-left"></span> Missed Subtitles');
<li><a href="$sbRoot/home/shutdown/?pid=$sbPID" class="confirm shutdown"><img src="$sbRoot/images/menu/shutdown16.png" alt="" width="16" height="16" style="margin-top: -2px;" />Shutdown</a></li> \$("#SubMenu a[href$='/home/addShows/']").addClass('btn').html('<span class="ui-icon ui-icon-video pull-left"></span> Add Show');
</ul> \$("#SubMenu a:contains('Processing')").addClass('btn').html('<span class="ui-icon ui-icon-folder-open pull-left"></span> Post-Processing');
</li> \$("#SubMenu a:contains('Manage Searches')").addClass('btn').html('<span class="ui-icon ui-icon-search pull-left"></span> Manage Searches');
<li id="donate"><a href="http://sr-upgrade.appspot.com" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href); return false;"><img src="$sbRoot/images/donate.jpg" alt="[donate]" /></a></li> \$("#SubMenu a:contains('Manage Torrents')").addClass('btn').html('<span class="submenu-icon-bittorrent pull-left"></span> Manage Torrents');
</ul> \$("#SubMenu a[href$='/manage/failedDownloads/']").addClass('btn').html('<span class="submenu-icon-failed-download pull-left"></span> Failed Downloads');
</div> \$("#SubMenu a:contains('Notification')").addClass('btn').html('<span class="ui-icon ui-icon-note pull-left"></span> Notifications');
</div> \$("#SubMenu a:contains('Update show in XBMC')").addClass('btn').html('<span class="submenu-icon-xbmc pull-left"></span> Update show in XBMC');
\$("#SubMenu a[href$='/home/updateXBMC/']").addClass('btn').html('<span class="submenu-icon-xbmc pull-left"></span> Update XBMC');
}
\$(document).ready(function() {
initActions();
\$("#NAV$topmenu").addClass("active");
\$('.dropdown-toggle').dropdownHover();
});
//-->
</script>
<script type="text/javascript" src="$sbRoot/js/confirmations.js?$sbPID"></script>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="$sbRoot/home/" title="SickRage"><img alt="SickRage" src="$sbRoot/images/sickrage.png" style="height: 50px;" class="img-responsive pull-left" /></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li id="NAVhome" class="dropdown">
<a href="$sbRoot/home/" class="dropdown-toggle" data-toggle="dropdown">Shows <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="$sbRoot/home/"><i class="menu-icon-home"></i>&nbsp;Show List</a></li>
<li><a href="$sbRoot/home/addShows/"><i class="menu-icon-addshow"></i>&nbsp;Add Shows</a></li>
<li><a href="$sbRoot/home/postprocess/"><i class="menu-icon-postprocess"></i>&nbsp;Manual Post-Processing</a></li>
</ul>
</li>
<li id="NAVcomingEpisodes">
<a href="$sbRoot/comingEpisodes/">Coming Episodes</a>
</li>
<li id="NAVhistory">
<a href="$sbRoot/history/">History</a>
</li>
<li id="NAVmanage" class="dropdown">
<a href="$sbRoot/manage/" class="dropdown-toggle" data-toggle="dropdown">Manage <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="$sbRoot/manage/"><i class="menu-icon-manage"></i>&nbsp;Mass Update</a></li>
<li><a href="$sbRoot/manage/backlogOverview/"><i class="menu-icon-backlog-view"></i>&nbsp;Backlog Overview</a></li>
<li><a href="$sbRoot/manage/manageSearches/"><i class="menu-icon-manage-searches"></i>&nbsp;Manage Searches</a></li>
<li><a href="$sbRoot/manage/episodeStatuses/"><i class="menu-icon-backlog"></i>&nbsp;Episode Status Management</a></li>
#if $sickbeard.USE_PLEX and $sickbeard.PLEX_SERVER_HOST != "":
<li><a href="$sbRoot/home/updatePLEX/"><i class="menu-icon-backlog-view"></i>&nbsp;Update PLEX</a></li>
#end if
#if $sickbeard.USE_XBMC and $sickbeard.XBMC_HOST != "":
<li><a href="$sbRoot/home/updateXBMC/"><i class="menu-icon-xbmc"></i>&nbsp;Update XBMC</a></li>
#end if
#if $sickbeard.USE_TORRENTS and $sickbeard.TORRENT_METHOD != 'blackhole' \
and ($sickbeard.ENABLE_HTTPS and $sickbeard.TORRENT_HOST[:5] == 'https' \
or not $sickbeard.ENABLE_HTTPS and $sickbeard.TORRENT_HOST[:5] == 'http:'):
<li><a href="$sbRoot/manage/manageTorrents/"><i class="menu-icon-bittorrent"></i>&nbsp;Manage Torrents</a></li>
#end if
#if $sickbeard.USE_FAILED_DOWNLOADS:
<li><a href="$sbRoot/manage/failedDownloads/"><i class="menu-icon-failed-download"></i>&nbsp;Failed Downloads</a></li>
#end if
#if $sickbeard.USE_SUBTITLES:
<li><a href="$sbRoot/manage/subtitleMissed/"><i class="menu-icon-backlog"></i>&nbsp;Missed Subtitle Management</a></li>
#end if
</ul>
</li>
<li id="NAVerrorlogs" class="dropdown">
<a href="$sbRoot/errorlogs/" class="dropdown-toggle" data-toggle="dropdown">$logPageTitle <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="$sbRoot/errorlogs/"><i class="menu-icon-viewlog-errors"></i>&nbsp;View Log (Errors)</a></li>
<li><a href="$sbRoot/errorlogs/viewlog/"><i class="menu-icon-viewlog"></i>&nbsp;View Log</a></li>
</ul>
</li>
<li id="NAVconfig" class="dropdown">
<a href="$sbRoot/config/" class="dropdown-toggle" data-toggle="dropdown"><img src="$sbRoot/images/menu/system18.png" class="navbaricon hidden-xs" /><b class="caret hidden-xs"></b><span class="visible-xs">Config <b class="caret"></b></span></a>
<ul class="dropdown-menu">
<li><a href="$sbRoot/config/"><i class="menu-icon-help"></i>&nbsp;Help &amp; Info</a></li>
<li><a href="$sbRoot/config/general/"><i class="menu-icon-config"></i>&nbsp;General</a></li>
<li><a href="$sbRoot/config/backuprestore/"><i class="menu-icon-config"></i>&nbsp;Backup &amp; Restore</a></li>
<li><a href="$sbRoot/config/search/"><i class="menu-icon-config"></i>&nbsp;Search Settings</a></li>
<li><a href="$sbRoot/config/providers/"><i class="menu-icon-config"></i>&nbsp;Search Providers</a></li>
<li><a href="$sbRoot/config/subtitles/"><i class="menu-icon-config"></i>&nbsp;Subtitles Settings</a></li>
<li><a href="$sbRoot/config/postProcessing/"><i class="menu-icon-config"></i>&nbsp;Post Processing</a></li>
<li><a href="$sbRoot/config/notifications/"><i class="menu-icon-config"></i>&nbsp;Notifications</a></li>
<li><a href="$sbRoot/config/anime/"><i class="menu-icon-config"></i>&nbsp;Anime</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><img src="$sbRoot/images/menu/system18-2.png" class="navbaricon hidden-xs" /><b class="caret hidden-xs"></b><span class="visible-xs">System <b class="caret"></b></span></a>
<ul class="dropdown-menu">
<li><a href="$sbRoot/manage/manageSearches/forceVersionCheck"><i class="menu-icon-update"></i>&nbsp;Force Version Check</a></li>
<li><a href="$sbRoot/home/restart/?pid=$sbPID" class="confirm restart"><i class="menu-icon-restart"></i>&nbsp;Restart</a></li>
<li><a href="$sbRoot/home/shutdown/?pid=$sbPID" class="confirm shutdown"><i class="menu-icon-shutdown"></i>&nbsp;Shutdown</a></li>
</ul>
</li>
<li id="donate"><a href="http://sr-upgrade.appspot.com" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href); return false;"><img src="$sbRoot/images/donate.jpg" alt="[donate]" class="navbaricon hidden-xs" /></a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<div id="contentWrapper">
<div id="content">
#if $varExists('submenu'): #if $varExists('submenu'):
<div id="SubMenu"> <div id="SubMenu">
<span> <span>
#set $first = True #set $first = True
#for $menuItem in $submenu: #for $menuItem in $submenu:
#if 'requires' not in $menuItem or $menuItem.requires(): #if 'requires' not in $menuItem or $menuItem.requires():
#if type($menuItem.path) == dict: #if type($menuItem.path) == dict:
#if $first then "" else "</span>&nbsp;<span>"#$menuItem.title #if $first then "" else "</span><span>"#<b>$menuItem.title</b>
#set $first = False #set $first = False
#set $inner_first = True #set $inner_first = True
#for $cur_link in $menuItem.path: #for $cur_link in $menuItem.path:
#if $inner_first then "" else "&middot; "#<a class="inner" href="$sbRoot/$menuItem.path[$cur_link]">$cur_link</a> #if $inner_first then "" else "&middot; "#<a class="inner" href="$sbRoot/$menuItem.path[$cur_link]">$cur_link</a>
#set $inner_first = False #set $inner_first = False
#end for #end for
#else #else
#if $first then "" else ""#<a href="$sbRoot/$menuItem.path" #if 'confirm' in $menuItem then "class=\"confirm\"" else "" #>$menuItem.title</a> #if $first then "" else ""#<a href="$sbRoot/$menuItem.path" #if 'confirm' in $menuItem then "class=\"confirm\"" else "" #>$menuItem.title</a>
#set $first = False #set $first = False
#end if #end if
#end if #end if
#end for #end for
</span> </span>
</div> </div>
#end if #end if
#if $sickbeard.NEWEST_VERSION_STRING:
<div class="alert alert-success upgrade-notification" role="alert">
<span>$sickbeard.NEWEST_VERSION_STRING</span>
</div>
#end if
<div id="contentWrapper">
<div id="content">

View File

@ -43,7 +43,10 @@
textExtraction: { textExtraction: {
2: function(node) { return \$(node).find("span").text().toLowerCase(); }, 2: function(node) { return \$(node).find("span").text().toLowerCase(); },
3: function(node) { return \$(node).find("img").attr("alt"); }, 3: function(node) { return \$(node).find("img").attr("alt"); },
4: function(node) { return \$(node).find("img").attr("alt"); } 4: function(node) { return \$(node).find("img").attr("alt"); },
5: function(node) { return \$(node).find("img").attr("alt"); },
6: function(node) { return \$(node).find("img").attr("alt"); },
7: function(node) { return \$(node).find("img").attr("alt"); }
}, },
widgets: ['zebra'], widgets: ['zebra'],
headers: { headers: {
@ -59,10 +62,10 @@
9: { sorter: false}, 9: { sorter: false},
10: { sorter: false}, 10: { sorter: false},
11: { sorter: false}, 11: { sorter: false},
12: { sorter: false} 12: { sorter: false},
#if $sickbeard.USE_SUBTITLES 13: { sorter: false},
, 13: { sorter: false} 14: { sorter: false},
#end if 15: { sorter: false}
} }
}); });
}); });
@ -102,8 +105,8 @@
<tfoot> <tfoot>
<tr> <tr>
<td rowspan="1" colspan="2" class="align-center alt"><input class="btn" type="button" value="Edit Selected" id="submitMassEdit" /></td> <td rowspan="1" colspan="2" class="align-center alt"><input class="btn pull-left" type="button" value="Edit Selected" id="submitMassEdit" /></td>
<td rowspan="1" colspan="#if $sickbeard.USE_SUBTITLES then 13 else 12#" class="align-right alt"><input class="btn btn-primary" type="button" value="Submit" id="submitMassUpdate" /></td> <td rowspan="1" colspan="#if $sickbeard.USE_SUBTITLES then 13 else 12#" class="align-right alt"><input class="btn pull-right" type="button" value="Submit" id="submitMassUpdate" /></td>
</tr> </tr>
</tfoot> </tfoot>

View File

@ -2,23 +2,23 @@
#import datetime #import datetime
#from sickbeard.common import * #from sickbeard.common import *
#from sickbeard import sbdatetime, network_timezones #from sickbeard import sbdatetime, network_timezones
#set global $title="Backlog Overview" #set global $title = 'Backlog Overview'
#set global $header="Backlog Overview" #set global $header = 'Backlog Overview'
#set global $sbPath=".." #set global $sbPath = '..'
#set global $topmenu="manage"# #set global $topmenu = 'manage'#
#import os.path #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')
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
\$(document).ready(function() \$(document).ready(function()
{ {
\$('#pickShow').change(function(){ \$('#pickShow').change(function(){
var id = \$(this).val(); var id = \$(this).val();
if (id) { if (id) {
\$('html,body').animate({scrollTop: \$("#show-"+id).offset().top -25},'slow'); \$('html,body').animate({scrollTop: \$('#show-' + id).offset().top -25},'slow');
} }
}); });
@ -39,9 +39,9 @@
<div id="content960"> <div id="content960">
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
#set $totalWanted = 0 #set $totalWanted = 0
@ -52,16 +52,16 @@
#set $totalQual = $totalQual + $showCounts[$curShow.indexerid][$Overview.QUAL] #set $totalQual = $totalQual + $showCounts[$curShow.indexerid][$Overview.QUAL]
#end for #end for
<div class="h2footer align-right"> <div class="h2footer pull-right">
<span class="wanted nowrap">Wanted: <b>$totalWanted</b></span> <span class="listing-key wanted">Wanted: <b>$totalWanted</b></span>
<span class="qual nowrap">Low Quality: <b>$totalQual</b></span> <span class="listing-key qual">Low Quality: <b>$totalQual</b></span>
</div><br/> </div><br/>
<div class="float-left"> <div class="float-left">
Jump to Show Jump to Show
<select id="pickShow"> <select id="pickShow" class="form-control form-control-inline input-sm">
#for $curShow in sorted($sickbeard.showList, key=operator.attrgetter('name')): #for $curShow in sorted($sickbeard.showList, key = operator.attrgetter('name')):
#if $showCounts[$curShow.indexerid][$Overview.QUAL]+$showCounts[$curShow.indexerid][$Overview.WANTED] != 0: #if $showCounts[$curShow.indexerid][$Overview.QUAL] + $showCounts[$curShow.indexerid][$Overview.WANTED] != 0:
<option value="$curShow.indexerid">$curShow.name</option> <option value="$curShow.indexerid">$curShow.name</option>
#end if #end if
#end for #end for
@ -70,42 +70,47 @@ Jump to Show
<table class="sickbeardTable" cellspacing="0" border="0" cellpadding="0"> <table class="sickbeardTable" cellspacing="0" border="0" cellpadding="0">
#for $curShow in sorted($sickbeard.showList, key=operator.attrgetter('name')): #for $curShow in sorted($sickbeard.showList, key = operator.attrgetter('name')):
#if $showCounts[$curShow.indexerid][$Overview.QUAL]+$showCounts[$curShow.indexerid][$Overview.WANTED] == 0: #if $showCounts[$curShow.indexerid][$Overview.QUAL] + $showCounts[$curShow.indexerid][$Overview.WANTED] == 0:
#continue #continue
#end if #end if
<tr class="seasonheader" id="show-$curShow.indexerid"> <tr class="seasonheader" id="show-$curShow.indexerid">
<td colspan="3" class="align-left"> <td colspan="3" class="align-left">
<br/><h2><a href="$sbRoot/home/displayShow?show=$curShow.indexerid">$curShow.name</a></h2> <br/><h2><a href="$sbRoot/home/displayShow?show=$curShow.indexerid">$curShow.name</a></h2>
<div class="float-right"> <div class="pull-right">
<span class="wanted nowrap">Wanted: <b>$showCounts[$curShow.indexerid][$Overview.WANTED]</b></span> <span class="listing-key wanted">Wanted: <b>$showCounts[$curShow.indexerid][$Overview.WANTED]</b></span>
<span class="qual nowrap">Low Quality: <b>$showCounts[$curShow.indexerid][$Overview.QUAL]</b></span> <span class="listing-key qual">Low Quality: <b>$showCounts[$curShow.indexerid][$Overview.QUAL]</b></span>
<a class="btn forceBacklog" style="font-size:13px;" href="$sbRoot/manage/backlogShow?indexer_id=$curShow.indexerid"><i class="icon-play-circle icon-white"></i> Force Backlog</a> <a class="btn btn-inline forceBacklog" href="$sbRoot/manage/backlogShow?indexer_id=$curShow.indexerid"><i class="icon-play-circle icon-white"></i> Force Backlog</a>
</div> </div>
</td> </td>
</tr> </tr>
<tr class="seasoncols"><th>Episode</th><th>Name</th><th class="nowrap">Airdate</th></tr> <tr class="seasoncols"><th>Episode</th><th>Name</th><th class="nowrap">Airdate</th></tr>
#for $curResult in $showSQLResults[$curShow.indexerid]: #for $curResult in $showSQLResults[$curShow.indexerid]:
#set $whichStr = $str($curResult["season"]) + "x" + $str($curResult["episode"]) #set $whichStr = $str($curResult['season']) + 'x' + $str($curResult['episode'])
#set $overview = $showCats[$curShow.indexerid][$whichStr] #try:
#if $overview not in ($Overview.QUAL, $Overview.WANTED): #set $overview = $showCats[$curShow.indexerid][$whichStr]
#continue #except Exception
#end if #continue
<tr class="seasonstyle $Overview.overviewStrings[$showCats[$curShow.indexerid][$whichStr]]"> #end try
<td class="tableleft" align="center">$whichStr</td>
<td>$curResult["name"]</td>
<td class="tableright" align="center" class="nowrap"><div class="${fuzzydate}">#if int($curResult["airdate"]) == 1 then "never" else $sbdatetime.sbdatetime.sbfdate($network_timezones.parse_date_time($curResult["airdate"],$curShow.airs,$curShow.network))#</div></td>
</tr>
#if $overview not in ($Overview.QUAL, $Overview.WANTED):
#continue
#end if
<tr class="seasonstyle $Overview.overviewStrings[$showCats[$curShow.indexerid][$whichStr]]">
<td class="tableleft" align="center">$whichStr</td>
<td>$curResult["name"]</td>
<td class="tableright" align="center" class="nowrap"><div class="${fuzzydate}">#if int($curResult['airdate']) == 1 then 'never' else $sbdatetime.sbdatetime.sbfdate($sbdatetime.sbdatetime.convert_to_setting($network_timezones.parse_date_time($curResult['airdate'],$curShow.airs,$curShow.network)))#</div></td>
</tr>
#end for #end for
#end for #end for
</table> </table>
</div> </div>
#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')

View File

@ -25,12 +25,12 @@
#end if #end if
<form action="$sbRoot/manage/episodeStatuses" method="get"> <form action="$sbRoot/manage/episodeStatuses" method="get">
Manage episodes with status <select name="whichStatus"> Manage episodes with status <select name="whichStatus" class="form-control form-control-inline input-sm">
#for $curStatus in [$common.SKIPPED, $common.SNATCHED, $common.WANTED, $common.ARCHIVED, $common.IGNORED]: #for $curStatus in [$common.SKIPPED, $common.SNATCHED, $common.WANTED, $common.ARCHIVED, $common.IGNORED]:
<option value="$curStatus">$common.statusStrings[$curStatus]</option> <option value="$curStatus">$common.statusStrings[$curStatus]</option>
#end for #end for
</select> </select>
<input class="btn" type="submit" value="Manage" /> <input class="btn btn-inline" type="submit" value="Manage" />
</form> </form>
#else #else
@ -51,7 +51,7 @@ Manage episodes with status <select name="whichStatus">
#end if #end if
<input type="hidden" id="row_class" value="$row_class" /> <input type="hidden" id="row_class" value="$row_class" />
Set checked shows/episodes to <select name="newStatus"> Set checked shows/episodes to <select name="newStatus" class="form-control form-control-inline input-sm">
#set $statusList = [$common.SKIPPED, $common.WANTED, $common.ARCHIVED, $common.IGNORED] #set $statusList = [$common.SKIPPED, $common.WANTED, $common.ARCHIVED, $common.IGNORED]
#if $int($whichStatus) in $statusList #if $int($whichStatus) in $statusList
$statusList.remove($int($whichStatus)) $statusList.remove($int($whichStatus))
@ -65,19 +65,19 @@ $statusList.append($common.FAILED)
<option value="$curStatus">$common.statusStrings[$curStatus]</option> <option value="$curStatus">$common.statusStrings[$curStatus]</option>
#end for #end for
</select> </select>
<input class="btn" type="submit" value="Go" /> <input class="btn btn-inline" type="submit" value="Go" />
<div> <div>
<button type="button" class="btn btn-mini selectAllShows" style="line-height: 8px;"><a style="color: #fff">Select all</a></button> <button type="button" class="btn btn-xs selectAllShows">Select all</a></button>
<button type="button" class="btn btn-mini unselectAllShows" style="line-height: 8px;"><a style="color: #fff">Clear all</a></button> <button type="button" class="btn btn-xs unselectAllShows">Clear all</a></button>
</div> </div>
<br /> <br />
<table class="sickbeardTable" cellspacing="1" border="0" cellpadding="0"> <table class="sickbeardTable manageTable" cellspacing="1" border="0" cellpadding="0">
#for $cur_indexer_id in $sorted_show_ids: #for $cur_indexer_id in $sorted_show_ids:
<tr id="$cur_indexer_id"> <tr id="$cur_indexer_id">
<th><input type="checkbox" class="allCheck" id="allCheck-$cur_indexer_id" name="$cur_indexer_id-all" checked="checked" /></th> <th><input type="checkbox" class="allCheck" id="allCheck-$cur_indexer_id" name="$cur_indexer_id-all" checked="checked" /></th>
<th colspan="2" style="width: 100%; text-align: left;"><a class="whitelink" href="$sbRoot/home/displayShow?show=$cur_indexer_id">$show_names[$cur_indexer_id]</a> ($ep_counts[$cur_indexer_id]) <input type="button" class="float-right get_more_eps btn" id="$cur_indexer_id" value="Expand" /></th> <th colspan="2" style="width: 100%; text-align: left;"><a class="whitelink" href="$sbRoot/home/displayShow?show=$cur_indexer_id">$show_names[$cur_indexer_id]</a> ($ep_counts[$cur_indexer_id]) <input type="button" class="pull-right get_more_eps btn" id="$cur_indexer_id" value="Expand" /></th>
</tr> </tr>
#end for #end for
</table> </table>

View File

@ -37,8 +37,8 @@
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div class="h2footer align-right"><b>Limit:</b> <div class="h2footer pull-right"><b>Limit:</b>
<select name="limit" id="limit"> <select name="limit" id="limit" class="form-control form-control-inline input-sm">
<option value="0" #if $limit == "0" then "selected=\"selected\"" else ""#>All</option> <option value="0" #if $limit == "0" then "selected=\"selected\"" else ""#>All</option>
<option value="100" #if $limit == "100" then "selected=\"selected\"" else ""#>100</option> <option value="100" #if $limit == "100" then "selected=\"selected\"" else ""#>100</option>
<option value="250" #if $limit == "250" then "selected=\"selected\"" else ""#>250</option> <option value="250" #if $limit == "250" then "selected=\"selected\"" else ""#>250</option>
@ -59,7 +59,7 @@
</thead> </thead>
<tfoot> <tfoot>
<tr> <tr>
<td rowspan="1" colspan="4" class="align-right"><input type="button" class="btn btn-primary" value="Submit" id="submitMassRemove"></td> <td rowspan="1" colspan="4"><input type="button" class="btn pull-right" value="Submit" id="submitMassRemove"></td>
</tr> </tr>
</tfoot> </tfoot>
<tbody> <tbody>

View File

@ -25,7 +25,7 @@
<span class="selectTitle">Root Directories <span class="separator">*</span></span><br /> <span class="selectTitle">Root Directories <span class="separator">*</span></span><br />
#for $cur_dir in $root_dir_list: #for $cur_dir in $root_dir_list:
#set $cur_index = $root_dir_list.index($cur_dir) #set $cur_index = $root_dir_list.index($cur_dir)
<div style="padding: 6px 0 3px 25px;"> <div>
<input class="btn edit_root_dir" type="button" class="edit_root_dir" id="edit_root_dir_$cur_index" value="Edit" /> <input class="btn edit_root_dir" type="button" class="edit_root_dir" id="edit_root_dir_$cur_index" value="Edit" />
<input class="btn delete_root_dir" type="button" class="delete_root_dir" id="delete_root_dir_$cur_index" value="Delete" /> <input class="btn delete_root_dir" type="button" class="delete_root_dir" id="delete_root_dir_$cur_index" value="Delete" />
$cur_dir => <span id="display_new_root_dir_$cur_index">$cur_dir</span> $cur_dir => <span id="display_new_root_dir_$cur_index">$cur_dir</span>
@ -36,10 +36,10 @@
</div> </div>
<div class="optionWrapper alt"> <div class="optionWrapper">
<span class="selectTitle">Quality</span> <span class="selectTitle">Quality</span>
<div class="selectChoices"> <div class="selectChoices">
<select id="qualityPreset" name="quality_preset"> <select id="qualityPreset" name="quality_preset" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
#set $selected = None #set $selected = None
<option value="0" #if $quality_value != None and $quality_value not in $common.qualityPresets then "selected=\"selected\"" else ""#>Custom</option> <option value="0" #if $quality_value != None and $quality_value not in $common.qualityPresets then "selected=\"selected\"" else ""#>Custom</option>
@ -50,8 +50,8 @@
</div><br /> </div><br />
<div id="customQuality"> <div id="customQuality">
<div style="width: 50%; text-align: center;" class="float-left"> <div class="manageCustom pull-left">
<h3>Inital</h3> <h4>Inital</h4>
#set $anyQualityList = filter(lambda x: x > $common.Quality.NONE, $common.Quality.qualityStrings) #set $anyQualityList = filter(lambda x: x > $common.Quality.NONE, $common.Quality.qualityStrings)
<select id="anyQualities" name="anyQualities" multiple="multiple" size="len($anyQualityList)"> <select id="anyQualities" name="anyQualities" multiple="multiple" size="len($anyQualityList)">
#for $curQuality in sorted($anyQualityList): #for $curQuality in sorted($anyQualityList):
@ -59,8 +59,8 @@
#end for #end for
</select> </select>
</div> </div>
<div style="width: 50%; text-align: center;" class="float-left"> <div class="manageCustom pull-left">
<h3>Archive</h3> <h4>Archive</h4>
#set $bestQualityList = filter(lambda x: x > $common.Quality.SDTV, $common.Quality.qualityStrings) #set $bestQualityList = filter(lambda x: x > $common.Quality.SDTV, $common.Quality.qualityStrings)
<select id="bestQualities" name="bestQualities" multiple="multiple" size="len($bestQualityList)"> <select id="bestQualities" name="bestQualities" multiple="multiple" size="len($bestQualityList)">
#for $curQuality in sorted($bestQualityList): #for $curQuality in sorted($bestQualityList):
@ -80,7 +80,7 @@
<div class="optionWrapper clearfix"> <div class="optionWrapper clearfix">
<span class="selectTitle">Archive on first match</span> <span class="selectTitle">Archive on first match</span>
<div class="selectChoices"> <div class="selectChoices">
<select id="edit_archive_firstmatch" name="archive_firstmatch"> <select id="edit_archive_firstmatch" name="archive_firstmatch" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
<option value="enable"${isEnabled}>enable</option> <option value="enable"${isEnabled}>enable</option>
<option value="disable"${isDisabled}>disable</option> <option value="disable"${isDisabled}>disable</option>
@ -92,7 +92,7 @@
<div class="optionWrapper clearfix"> <div class="optionWrapper clearfix">
<span class="selectTitle">Flatten Folders <span class="separator">*</span></span> <span class="selectTitle">Flatten Folders <span class="separator">*</span></span>
<div class="selectChoices"> <div class="selectChoices">
<select id="edit_flatten_folders" name="flatten_folders"> <select id="edit_flatten_folders" name="flatten_folders" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
<option value="enable" #if $flatten_folders_value then "selected=\"selected\"" else ""#>enable</option> <option value="enable" #if $flatten_folders_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $flatten_folders_value == False then "selected=\"selected\"" else ""#>disable</option> <option value="disable" #if $flatten_folders_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -100,10 +100,10 @@
</div> </div>
</div> </div>
<div class="optionWrapper alt"> <div class="optionWrapper">
<span class="selectTitle">Paused</span> <span class="selectTitle">Paused</span>
<div class="selectChoices"> <div class="selectChoices">
<select id="edit_paused" name="paused"> <select id="edit_paused" name="paused" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
<option value="enable" #if $paused_value then "selected=\"selected\"" else ""#>enable</option> <option value="enable" #if $paused_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $paused_value == False then "selected=\"selected\"" else ""#>disable</option> <option value="disable" #if $paused_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -114,7 +114,7 @@
<div class="optionWrapper"> <div class="optionWrapper">
<span class="selectTitle">Scene Numbering</span> <span class="selectTitle">Scene Numbering</span>
<div class="selectChoices"> <div class="selectChoices">
<select id="edit_scene" name="scene"> <select id="edit_scene" name="scene" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
<option value="enable" #if $scene_value then "selected=\"selected\"" else ""#>enable</option> <option value="enable" #if $scene_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $scene_value == False then "selected=\"selected\"" else ""#>disable</option> <option value="disable" #if $scene_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -125,7 +125,7 @@
<div class="optionWrapper"> <div class="optionWrapper">
<span class="selectTitle">Anime</span> <span class="selectTitle">Anime</span>
<div class="selectChoices"> <div class="selectChoices">
<select id="edit_anime" name="anime"> <select id="edit_anime" name="anime" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
<option value="enable" #if $anime_value then "selected=\"selected\"" else ""#>enable</option> <option value="enable" #if $anime_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $anime_value == False then "selected=\"selected\"" else ""#>disable</option> <option value="disable" #if $anime_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -136,7 +136,7 @@
<div class="optionWrapper"> <div class="optionWrapper">
<span class="selectTitle">Sports</span> <span class="selectTitle">Sports</span>
<div class="selectChoices"> <div class="selectChoices">
<select id="edit_sports" name="sports"> <select id="edit_sports" name="sports" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
<option value="enable" #if $sports_value then "selected=\"selected\"" else ""#>enable</option> <option value="enable" #if $sports_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $sports_value == False then "selected=\"selected\"" else ""#>disable</option> <option value="disable" #if $sports_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -147,7 +147,7 @@
<div class="optionWrapper"> <div class="optionWrapper">
<span class="selectTitle">Air-By-Date</span> <span class="selectTitle">Air-By-Date</span>
<div class="selectChoices"> <div class="selectChoices">
<select id="edit_air_by_date" name="air_by_date"> <select id="edit_air_by_date" name="air_by_date" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
<option value="enable" #if $air_by_date_value then "selected=\"selected\"" else ""#>enable</option> <option value="enable" #if $air_by_date_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $air_by_date_value == False then "selected=\"selected\"" else ""#>disable</option> <option value="disable" #if $air_by_date_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -158,7 +158,7 @@
<div class="optionWrapper"> <div class="optionWrapper">
<span class="selectTitle">Subtitles<span class="separator"></span></span> <span class="selectTitle">Subtitles<span class="separator"></span></span>
<div class="selectChoices"> <div class="selectChoices">
<select id="edit_subtitles" name="subtitles"> <select id="edit_subtitles" name="subtitles" class="form-control form-control-inline input-sm">
<option value="keep">&lt; keep &gt;</option> <option value="keep">&lt; keep &gt;</option>
<option value="enable" #if $subtitles_value then "selected=\"selected\"" else ""#>enable</option> <option value="enable" #if $subtitles_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $subtitles_value == False then "selected=\"selected\"" else ""#>disable</option> <option value="disable" #if $subtitles_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -172,7 +172,7 @@
</div> </div>
<div class="optionWrapper" style="text-align: center;"> <div class="optionWrapper" style="text-align: center;">
<input type="submit" value="Submit" class="btn btn-primary" /><br /> <input type="submit" value="Submit" class="btn" /><br />
</div> </div>
</form> </form>

View File

@ -27,7 +27,7 @@
#end if #end if
<form action="$sbRoot/manage/subtitleMissed" method="get"> <form action="$sbRoot/manage/subtitleMissed" method="get">
Manage episodes without <select name="whichSubs"> Manage episodes without <select name="whichSubs" class="form-control form-control-inline input-sm">
<option value="all">All</option> <option value="all">All</option>
#for $sub_lang in $subliminal.language.language_list($sickbeard.SUBTITLES_LANGUAGES): #for $sub_lang in $subliminal.language.language_list($sickbeard.SUBTITLES_LANGUAGES):
<option value="$sub_lang.alpha2">$sub_lang</option> <option value="$sub_lang.alpha2">$sub_lang</option>
@ -45,13 +45,13 @@ subtitles
<form action="$sbRoot/manage/downloadSubtitleMissed" method="post"> <form action="$sbRoot/manage/downloadSubtitleMissed" method="post">
<h2>Episodes without $subsLanguage subtitles.</h2> <h2>Episodes without $subsLanguage subtitles.</h2>
<br /> <br />
Download missed subtitles for selected episodes <input class="btn" type="submit" value="Go" /> Download missed subtitles for selected episodes <input class="btn btn-inline" type="submit" value="Go" />
<div> <div>
<button type="button" class="btn btn-mini selectAllShows" style="line-height: 8px;"><a style="color: #fff">Select all</a></button> <button type="button" class="btn btn-xs selectAllShows">Select all</a></button>
<button type="button" class="btn btn-mini unselectAllShows" style="line-height: 8px;"><a style="color: #fff">Clear all</a></button> <button type="button" class="btn btn-xs unselectAllShows">Clear all</a></button>
</div> </div>
<br /> <br />
<table class="sickbeardTable" cellspacing="1" border="0" cellpadding="0"> <table class="sickbeardTable manageTable" cellspacing="1" border="0" cellpadding="0">
#for $cur_indexer_id in $sorted_show_ids: #for $cur_indexer_id in $sorted_show_ids:
<tr id="$cur_indexer_id"> <tr id="$cur_indexer_id">
<th><input type="checkbox" class="allCheck" id="allCheck-$cur_indexer_id" name="$cur_indexer_id-all" checked="checked" /></th> <th><input type="checkbox" class="allCheck" id="allCheck-$cur_indexer_id" name="$cur_indexer_id-all" checked="checked" /></th>

View File

@ -5,11 +5,13 @@
#set curSBHttpPort = $sbHttpPort #set curSBHttpPort = $sbHttpPort
#set curSBHttpsEnabled = $sbHttpsEnabled #set curSBHttpsEnabled = $sbHttpsEnabled
#set curSBHandleReverseProxy = $sbHandleReverseProxy #set curSBHandleReverseProxy = $sbHandleReverseProxy
#set themeSpinner = $sbThemeName
#except NameMapper.NotFound: #except NameMapper.NotFound:
#set curSBHost = "localhost" #set curSBHost = "localhost"
#set curSBHttpPort = $sickbeard.WEB_PORT #set curSBHttpPort = $sickbeard.WEB_PORT
#set curSBHttpsEnabled = "False" #set curSBHttpsEnabled = "False"
#set curSBHandleReverseProxy = "False" #set curSBHandleReverseProxy = "False"
#set themeSpinner = $sickbeard.THEME_NAME
#end try #end try
sbRoot = "$sbRoot"; sbRoot = "$sbRoot";
sbHttpPort = "$curSBHttpPort"; sbHttpPort = "$curSBHttpPort";
@ -22,24 +24,25 @@ sbHost = "$curSBHost";
<script type="text/javascript" src="$sbRoot/js/lib/jquery-1.8.3.min.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/lib/jquery-1.8.3.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/restart.js?$sbPID"></script> <script type="text/javascript" src="$sbRoot/js/restart.js?$sbPID"></script>
#set themeSpinner = '-dark' if 'dark' == themeSpinner else ''
<h2>Performing Restart</h2> <h2>Performing Restart</h2>
<br /> <br />
<div id="shut_down_message"> <div id="shut_down_message">
Waiting for SickRage to shut down: Waiting for SickRage to shut down:
<img src="$sbRoot/images/loading16.gif" height="16" width="16" id="shut_down_loading" /> <img src="$sbRoot/images/loading16${themeSpinner}.gif" height="16" width="16" id="shut_down_loading" />
<img src="$sbRoot/images/yes16.png" height="16" width="16" id="shut_down_success" style="display: none;" /> <img src="$sbRoot/images/yes16.png" height="16" width="16" id="shut_down_success" style="display: none;" />
</div> </div>
<div id="restart_message" style="display: none;"> <div id="restart_message" style="display: none;">
Waiting for SickRage to start again: Waiting for SickRage to start again:
<img src="$sbRoot/images/loading16.gif" height="16" width="16" id="restart_loading" /> <img src="$sbRoot/images/loading16${themeSpinner}.gif" height="16" width="16" id="restart_loading" />
<img src="$sbRoot/images/yes16.png" height="16" width="16" id="restart_success" style="display: none;" /> <img src="$sbRoot/images/yes16.png" height="16" width="16" id="restart_success" style="display: none;" />
<img src="$sbRoot/images/no16.png" height="16" width="16" id="restart_failure" style="display: none;" /> <img src="$sbRoot/images/no16.png" height="16" width="16" id="restart_failure" style="display: none;" />
</div> </div>
<div id="refresh_message" style="display: none;"> <div id="refresh_message" style="display: none;">
Loading the home page: Loading the home page:
<img src="$sbRoot/images/loading16.gif" height="16" width="16" id="refresh_loading" /> <img src="$sbRoot/images/loading16${themeSpinner}.gif" height="16" width="16" id="refresh_loading" />
</div> </div>
<div id="restart_fail_message" style="display: none;"> <div id="restart_fail_message" style="display: none;">

View File

@ -20,7 +20,7 @@
<script type="text/javascript" src="$sbRoot/js/testRename.js"></script> <script type="text/javascript" src="$sbRoot/js/testRename.js"></script>
<h3>Preview of the proposed name changes</h3> <h3>Preview of the proposed name changes</h3>
<blockquote style="margin-bottom: 0; color: #09A2FF;"> <blockquote>
#if int($show.air_by_date) == 1 and $sickbeard.NAMING_CUSTOM_ABD: #if int($show.air_by_date) == 1 and $sickbeard.NAMING_CUSTOM_ABD:
$sickbeard.NAMING_ABD_PATTERN $sickbeard.NAMING_ABD_PATTERN
#elif int($show.sports) == 1 and $sickbeard.NAMING_CUSTOM_SPORTS: #elif int($show.sports) == 1 and $sickbeard.NAMING_CUSTOM_SPORTS:
@ -48,10 +48,10 @@
</td> </td>
</tr> </tr>
<tr class="seasoncols" id="season-$cur_ep_obj.season-cols"> <tr class="seasoncols" id="season-$cur_ep_obj.season-cols">
<th width="1%" align="center"><input type="checkbox" class="seasonCheck" id="$cur_ep_obj.season" /></th> <th class="col-checkbox"><input type="checkbox" class="seasonCheck" id="$cur_ep_obj.season" /></th>
<th class="nowrap">Episode</th> <th class="nowrap">Episode</th>
<th class="nowrap">Old Location</th> <th class="col-name">Old Location</th>
<th class="nowrap">New Location</th> <th class="col-name">New Location</th>
</tr> </tr>
</thead> </thead>
#set $curSeason = int($cur_ep_obj.season) #set $curSeason = int($cur_ep_obj.season)
@ -70,18 +70,18 @@
wanted wanted
#end if #end if
seasonstyle"> seasonstyle">
<td width="1%" valign="top" align="center" class="tableleft"> <td class="col-checkbox">
#if $curLoc != $newLoc: #if $curLoc != $newLoc:
<input type="checkbox" class="epCheck" id="<%=str(cur_ep_obj.season) + 'x' + str(cur_ep_obj.episode)%>" name="<%=str(cur_ep_obj.season) + "x" + str(cur_ep_obj.episode) %>" /> <input type="checkbox" class="epCheck" id="<%=str(cur_ep_obj.season) + 'x' + str(cur_ep_obj.episode)%>" name="<%=str(cur_ep_obj.season) + "x" + str(cur_ep_obj.episode) %>" />
#end if #end if
</td> </td>
<td align="center" valign="top" class="nowrap"><%= "-".join(map(str, epList)) %></td> <td align="center" valign="top" class="nowrap"><%= "-".join(map(str, epList)) %></td>
<td width="50%" valign="top">$curLoc</td> <td width="50%" class="col-name">$curLoc</td>
<td width="50%" valign="top" class="tableright">$newLoc</td> <td width="50%" class="col-name">$newLoc</td>
</tr> </tr>
</tbody> </tbody>
#end for #end for
</table><br /> </table><br />
<input type="submit" value="Rename Selected" class="btn btn-success"> <a href="/home/displayShow?show=$show.indexerid" class='btn btn-danger' style="line-height: 20px !important;">Cancel Rename</a> <input type="submit" value="Rename Selected" class="btn btn-success"> <a href="/home/displayShow?show=$show.indexerid" class="btn btn-danger">Cancel Rename</a>
#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")

View File

@ -18,34 +18,17 @@
url = '$sbRoot/errorlogs/viewlog/?minLevel='+\$(this).val() url = '$sbRoot/errorlogs/viewlog/?minLevel='+\$(this).val()
window.location.href = url window.location.href = url
}); });
var lines = \$('.logcolor').text().split('\n');
\$('.logcolor').empty();
\$.each(lines, function() {
var \$this = \$('<div>'+this+'</div>');
\$('.logcolor').append(\$this);
if( \$this.text().match('WARNING') ) {
\$this.css('color', '#ffcc00');
}
else if( \$this.text().match('ERROR') ) {
\$this.css('color', '#ff3333');
}
else if( \$this.text().match('AA') ) {
\$this.css('color', '#ff6600');
}
});
}); });
//--> //-->
</script> </script>
#if $varExists('header') #if $varExists('header')
<h1 class="header">$header</h1> <h1 class="header">$header</h1>
#else #else
<h1 class="title">$title</h1> <h1 class="title">$title</h1>
#end if #end if
<div class="h2footer align-right">Minimum logging level to display: <select name="minLevel" id="minLevel">
<div class="h2footer pull-right">Minimum logging level to display: <select name="minLevel" id="minLevel" class="form-control form-control-inline input-sm">
#set $levels = $reverseNames.keys() #set $levels = $reverseNames.keys()
$levels.sort(lambda x,y: cmp($reverseNames[$x], $reverseNames[$y])) $levels.sort(lambda x,y: cmp($reverseNames[$x], $reverseNames[$y]))
#for $level in $levels: #for $level in $levels:
@ -53,11 +36,17 @@ $levels.sort(lambda x,y: cmp($reverseNames[$x], $reverseNames[$y]))
#end for #end for
</select> </select>
</div> </div>
<br />
<div class="align-left"><pre class="logcolor"> <div class="align-left"><pre>
$logLines $logLines
</pre> </pre>
</div> </div>
<br />
<script type="text/javascript" charset="utf-8">
<!--
window.setInterval( "location.reload(true)", 600000); // Refresh every 10 minutes
//-->
</script>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
<!-- <!--

View File

@ -42,7 +42,7 @@ $(document).ready(function() {
} }
}); });
$('#tableDiv').html('<div id="wrap"><div class="spinner"></div><div class="item"> loading folders...</div></div>'); $('#tableDiv').html('<img id="searchingAnim" src="' + sbRoot + '/images/loading32' + themeSpinner + '.gif" height="32" width="32" /> loading folders...');
$.get(sbRoot+'/home/addShows/massAddTable', url, function(data) { $.get(sbRoot+'/home/addShows/massAddTable', url, function(data) {
$('#tableDiv').html(data); $('#tableDiv').html(data);
$("#addRootDirTable").tablesorter({ $("#addRootDirTable").tablesorter({

View File

@ -21,10 +21,10 @@ $(document).ready(function () {
}); });
$(this).attr('disabled', true); $(this).attr('disabled', true);
$.pnotify({ new PNotify({
pnotify_title: 'Saved Defaults', title: 'Saved Defaults',
pnotify_text: 'Your "add show" defaults have been set to your current selections.', text: 'Your "add show" defaults have been set to your current selections.',
pnotify_shadow: false shadow: false
}); });
}); });

View File

@ -1,10 +1,5 @@
var search_status_url = sbRoot + '/getManualSearchStatus'; var search_status_url = sbRoot + '/getManualSearchStatus';
$.pnotify.defaults.width = "400px"; PNotify.prototype.options.maxonscreen = 5;
$.pnotify.defaults.styling = "jqueryui";
$.pnotify.defaults.history = false;
$.pnotify.defaults.shadow = false;
$.pnotify.defaults.delay = 4000;
$.pnotify.defaults.maxonscreen = 5;
$.fn.manualSearches = []; $.fn.manualSearches = [];
@ -40,7 +35,7 @@ function updateImages(data) {
$.each(data.episodes, function (name, ep) { $.each(data.episodes, function (name, ep) {
console.debug(ep.searchstatus); console.debug(ep.searchstatus);
// Get td element for current ep // Get td element for current ep
var loadingImage = 'loading16_dddddd.gif'; var loadingImage = 'loading16.gif';
var queuedImage = 'queued.png'; var queuedImage = 'queued.png';
var searchImage = 'search16.png'; var searchImage = 'search16.png';
var status = null; var status = null;
@ -82,7 +77,7 @@ function updateImages(data) {
} }
// update the status column if it exists // update the status column if it exists
parent.siblings('.status_column').html(HtmlContent) parent.siblings('.col-status').html(HtmlContent)
} }
@ -113,7 +108,7 @@ function disableLink(el) {
defaults: { defaults: {
size: 16, size: 16,
colorRow: false, colorRow: false,
loadingImage: 'loading16_dddddd.gif', loadingImage: 'loading16.gif',
queuedImage: 'queued.png', queuedImage: 'queued.png',
noImage: 'no16.png', noImage: 'no16.png',
yesImage: 'yes16.png' yesImage: 'yes16.png'
@ -167,7 +162,7 @@ function disableLink(el) {
var rSearchTerm = /(\w+)\s\((.+?)\)/; var rSearchTerm = /(\w+)\s\((.+?)\)/;
HtmlContent = data.result.replace(rSearchTerm,"$1"+' <span class="quality '+data.quality+'">'+"$2"+'</span>'); HtmlContent = data.result.replace(rSearchTerm,"$1"+' <span class="quality '+data.quality+'">'+"$2"+'</span>');
// update the status column if it exists // update the status column if it exists
parent.siblings('.status_column').html(HtmlContent) parent.siblings('.col-status').html(HtmlContent)
// Only if the queing was succesfull, disable the onClick event of the loading image // Only if the queing was succesfull, disable the onClick event of the loading image
disableLink(link); disableLink(link);
} }

Some files were not shown because too many files have changed in this diff Show More