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)
[full changelog](https://github.com/SiCKRAGETV/SickRage/compare/release_0.2.0...release_0.2.1)
* Fix HDtorrents provider screen scraping
### 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)
@ -15,8 +99,8 @@
* Add subcentre subtitle provider
* Add return code from hardlinking error to log
* Fix ABD regex for certain filenames
* Miscellaneous UI fixes
* Update Tornado webserver to 4.1dev1 and add the certifi lib dependency.
* Change miscellaneous UI fixes
* Update Tornado webserver to 4.1dev1 and add the certifi lib dependency
* Fix trending shows page from loading full size poster images
* Add "Archive on first match" to Manage, Mass Update, Edit Selected page
* Fix searching IPTorrentsProvider

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 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.webserveInit import SRWebServer
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.SIGTERM, sickbeard.sig_handler)
class SickRage(object):
def __init__(self):
# system event callback for shutdown/restart
@ -127,8 +126,10 @@ class SickRage(object):
sickbeard.SYS_ENCODING = None
try:
locale.setlocale(locale.LC_ALL, "UTF-8")
locale.setlocale(locale.LC_CTYPE, "UTF-8")
locale.setlocale(locale.LC_ALL, "")
except (locale.Error, IOError):
pass
try:
sickbeard.SYS_ENCODING = locale.getpreferredencoding()
except (locale.Error, IOError):
pass

View File

@ -1,13 +1,10 @@
2014-10-02
-[done] Fix fuzzy dates on new skin
-Move the sql from the *.tmpl files
-Add anidb indexer
-Add supplemental data from anidb during postprocessing
-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
-Better postprocessing handling for torrents
-[DONE] Add global required words
2014-10-07
-Add release groups/require words/ignore words to add show page
@ -20,3 +17,8 @@
2014-10-13
-Fix broken backlog
-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;
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 */
.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,15 +2,16 @@
#import datetime
#from sickbeard.common import *
#from sickbeard import sbdatetime
#from sickbeard.helpers import anon_url
#set global $title="Coming Episodes"
#set global $header="Coming Episodes"
#set global $title = 'Coming Episodes'
#set global $header = 'Coming Episodes'
#set global $sbPath=".."
#set global $sbPath = '..'
#set global $topmenu="comingEpisodes"
#set global $topmenu = 'comingEpisodes'
#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
<script type="text/javascript" src="$sbRoot/js/ajaxEpSearch.js?$sbPID"></script>
#if $varExists('header')
@ -20,39 +21,70 @@
#end if
<style type="text/css">
.sort_data {display:none}
#SubMenu {display:none}
#contentWrapper {padding-top:30px}
</style>
<div class="h2footer align-right">
#if $layout != 'calendar':
<b>Key:</b>
<span class="listing_overdue">Missed</span>
<span class="listing_current">Current</span>
<span class="listing_default">Future</span>
<span class="listing_toofar">Distant</span>
#end if
<a class="btn forceBacklog" href="webcal://$sbHost:$sbHttpPort/calendar">
<i class="icon-calendar icon-white"></i>Subscribe</a>
<!-- <span class="listing_unknown">Unknown</span> //-->
<div class="h2footer pull-right">
<span>Layout:
<select name="layout" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;">
<option value="$sbRoot/setComingEpsLayout/?layout=poster" #if 'poster' == $sickbeard.COMING_EPS_LAYOUT then 'selected="selected"' else ''#>Poster</option>
<option value="$sbRoot/setComingEpsLayout/?layout=calendar" #if 'calendar' == $sickbeard.COMING_EPS_LAYOUT then 'selected="selected"' else ''#>Calendar</option>
<option value="$sbRoot/setComingEpsLayout/?layout=banner" #if 'banner' == $sickbeard.COMING_EPS_LAYOUT then 'selected="selected"' else ''#>Banner</option>
<option value="$sbRoot/setComingEpsLayout/?layout=list" #if 'list' == $sickbeard.COMING_EPS_LAYOUT then 'selected="selected"' else ''#>List</option>
</select>
</span>
&nbsp;
<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>
#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 //-->
<script type="text/javascript" src="$sbRoot/js/plotTooltip.js?$sbPID"></script>
<script type="text/javascript" charset="utf-8">
<!--
\$.tablesorter.addParser({
id: 'loadingNames',
is: function(s) {
return false;
return false
},
format: function(s) {
if (s.indexOf('Loading...') == 0)
return s.replace('Loading...','000');
if (0 == s.indexOf('Loading...'))
return s.replace('Loading...', '000')
#if not $sickbeard.SORT_ARTICLE:
return (s || '').replace(/^(The|A|An)\s/i,'');
return (s || '').replace(/^(The|A|An)\s/i, '')
#else:
return (s || '');
return (s || '')
#end if
},
type: 'text'
@ -60,20 +92,20 @@
\$.tablesorter.addParser({
id: 'quality',
is: function(s) {
return false;
return false
},
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'
});
\$.tablesorter.addParser({
id: 'cDate',
is: function(s) {
return false;
return false
},
format: function(s) {
return s;
return s
},
type: 'numeric'
});
@ -84,15 +116,16 @@
#if $sort not in $sort_codes:
$sort = 'date'
#end if
sortList = [[$sort_codes[$sort], 0]];
\$("#showListTable:has(tbody tr)").tablesorter({
\$('#showListTable:has(tbody tr)').tablesorter({
widgets: ['stickyHeaders'],
sortList: sortList,
textExtraction: {
0: function(node) { return \$(node).find("span").text().toLowerCase(); },
4: function(node) { return \$(node).find("img").attr("alt"); },
5: 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') },
5: function(node) { return \$(node).find('span').text().toLowerCase() }
},
headers: {
0: { sorter: 'cDate' },
@ -116,7 +149,7 @@
dateHasTime : true,
dateFormat : '${sickbeard.DATE_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
@ -124,7 +157,7 @@
//-->
</script>
#set $show_div = "listing_default"
#set $show_div = 'listing-default'
<input type="hidden" id="sbRoot" value="$sbRoot" />
@ -146,80 +179,80 @@
<tbody style="text-shadow:none;">
#for $cur_result in $sql_results:
#set $cur_indexer = int($cur_result["indexer"])
#set $runtime = $cur_result["runtime"]
#set $cur_indexer = int($cur_result['indexer'])
#set $runtime = $cur_result['runtime']
#if int($cur_result["paused"]) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
#if int($cur_result['paused']) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
#continue
#end if
#set $cur_ep_airdate = $cur_result["localtime"].date()
#set $cur_ep_airdate = $cur_result['localtime'].date()
#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:
#set $show_div = "listing_overdue"
#set $show_div = 'listing-overdue'
#elif $cur_ep_airdate >= $next_week.date():
#set $show_div = "listing_toofar"
#set $show_div = 'listing-toofar'
#elif $cur_ep_airdate >= $today.date() and $cur_ep_airdate < $next_week.date():
#if $cur_ep_airdate == $today.date():
#set $show_div = "listing_current"
#set $show_div = 'listing-current'
#else:
#set $show_div = "listing_default"
#set $show_div = 'listing-default'
#end if
#end if
#end if
<!-- start $cur_result["show_name"] //-->
<!-- start $cur_result['show_name'] //-->
<tr class="$show_div">
## forced to use a div to wrap airdate, the column sort went crazy with a span
<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 class="comingtvShow"><a href="$sbRoot/home/displayShow?show=${cur_result["showid"]}">$cur_result["show_name"]</a>
#if int($cur_result["paused"]):
<td class="tvShow"><a href="$sbRoot/home/displayShow?show=${cur_result['showid']}">$cur_result['show_name']</a>
#if int($cur_result['paused']):
<span class="pause">[paused]</span>
#end if
</td>
<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>
#if $cur_result["description"] != "" and $cur_result["description"] != None:
<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;" />
#if $cur_result['description']:
<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:
<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
$cur_result["name"]
$cur_result['name']
</td>
<td align="center">
$cur_result["network"]
$cur_result['network']
</td>
<td align="center">
#if int($cur_result["quality"]) in $qualityPresets:
<span class="quality $qualityPresetStrings[int($cur_result["quality"])]">$qualityPresetStrings[int($cur_result["quality"])]</span>
#if int($cur_result['quality']) in $qualityPresets:
<span class="quality $qualityPresetStrings[int($cur_result['quality'])]">$qualityPresetStrings[int($cur_result['quality'])]</span>
#else:
<span class="quality Custom">Custom</span>
#end if
</td>
<td align="center" style="vertical-align: middle;">
#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" />
#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="$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 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>
</tr>
<!-- end $cur_result["show_name"] //-->
<!-- end $cur_result['show_name'] //-->
#end for
</tbody>
@ -232,18 +265,20 @@
</table>
<!-- end list view //-->
#else if $layout in ['banner', 'poster']:
<!-- start non list view //-->
<script type="text/javascript" charset="utf-8">
<!--
\$(document).ready(function(){
\$('#sbRoot').ajaxEpSearch({'size': 16, 'loadingImage': 'loading16.gif'});
\$(".ep_summary").hide();
\$(".ep_summaryTrigger").click(function() {
\$(this).next(".ep_summary").slideToggle('normal', function() {
\$(this).prev(".ep_summaryTrigger").attr('src', function(i, src) {
return \$(this).next(".ep_summary").is(':visible') ? src.replace('plus','minus') : src.replace('minus','plus');
\$('#sbRoot').ajaxEpSearch({'size': 16, 'loadingImage': 'loading16' + themeSpinner + '.gif'});
\$('.ep_summary').hide();
\$('.ep_summaryTrigger').click(function() {
\$(this).next('.ep_summary').slideToggle('normal', function() {
\$(this).prev('.ep_summaryTrigger').attr('src', function(i, src) {
return \$(this).next('.ep_summary').is(':visible') ? src.replace('plus','minus') : src.replace('minus','plus')
});
});
});
@ -257,7 +292,7 @@
dateHasTime : true,
dateFormat : '${sickbeard.DATE_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
@ -269,68 +304,65 @@
#set $too_late_header = False
#set $missed_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 />
#end if
#for $cur_result in $sql_results:
#set $cur_indexer = int($cur_result["indexer"])
#set $cur_indexer = int($cur_result['indexer'])
<!-- start $cur_result["show_name"] //-->
<!-- start $cur_result['show_name'] //-->
#if int($cur_result["paused"]) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
#if int($cur_result['paused']) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
#continue
#end if
#set $runtime = $cur_result["runtime"]
#set $runtime = $cur_result['runtime']
#if $sort == "network":
#if $cur_result["network"] and $cur_segment != $cur_result["network"]:
#if 'network' == $sort:
#set $show_network = $cur_result['network'] if $cur_result['network'] else 'no network'
#if $cur_segment != $show_network:
<div class="comingepheader">
<h1 class="network">$cur_result["network"]</h1>
#set $cur_segment = $cur_result["network"]
<br><h2 class="network">$show_network</h2>
#set $cur_segment = $cur_result['network']
#end if
#set $cur_ep_airdate = $cur_result["localtime"].date()
#set $cur_ep_airdate = $cur_result['localtime'].date()
#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:
#set $show_div = "ep_listing listing_overdue"
#set $show_div = 'ep_listing listing-overdue'
#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():
#if $cur_ep_airdate == $today.date():
#set $show_div = "ep_listing listing_current"
#set $show_div = 'ep_listing listing-current'
#else:
#set $show_div = "ep_listing listing_default"
#set $show_div = 'ep_listing listing-default'
#end if
#end if
#end if
#elif $sort == "date":
#set $cur_ep_airdate = $cur_result["localtime"].date()
#elif 'date' == $sort:
#set $cur_ep_airdate = $cur_result['localtime'].date()
#if $cur_segment != $cur_ep_airdate:
#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:
<div class="comingepheader">
<br /><h1 class="day">Missed</h1>
<br /><h2 class="day">Missed</h2>
#set $missed_header = True
#elif $cur_ep_airdate >= $next_week.date() and not $too_late_header:
<div class="comingepheader">
<br /><h1 class="day">Later</h1>
<br /><h2 class="day">Later</h2>
#set $too_late_header = True
#elif $cur_ep_enddate >= $today and $cur_ep_airdate < $next_week.date():
#if $cur_ep_airdate == $today.date():
<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
#else:
<div class="comingepheader">
<br /><h1 class="day">$datetime.date.fromordinal($cur_ep_airdate.toordinal).strftime("%A").decode($sickbeard.SYS_ENCODING).capitalize()</h1>
<br /><h2 class="day">$datetime.date.fromordinal($cur_ep_airdate.toordinal).strftime('%A').decode($sickbeard.SYS_ENCODING).capitalize()</h2>
#end if
#end if
#end if
@ -339,82 +371,83 @@
#if $cur_ep_airdate == $today.date() and not $today_header:
<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
#end if
#if $runtime:
#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():
#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():
#if $cur_ep_airdate == $today.date():
#set $show_div = "ep_listing listing_current"
#set $show_div = 'ep_listing listing-current'
#else:
#set $show_div = "ep_listing listing_default"
#set $show_div = 'ep_listing listing-default'
#end if
#end if
#end if
#elif $sort == "show":
#set $cur_ep_airdate = $cur_result["localtime"].date()
#elif 'show' == $sort:
#set $cur_ep_airdate = $cur_result['localtime'].date()
#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:
#set $show_div = "ep_listing listing_overdue listingradius"
#set $show_div = 'ep_listing listing-overdue listingradius'
#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():
#if $cur_ep_airdate == $today.date():
#set $show_div = "ep_listing listing_current listingradius"
#set $show_div = 'ep_listing listing-current listingradius'
#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
<div class="$show_div" id="listing_${cur_result["showid"]}">
<div class="$show_div" id="listing-${cur_result['showid']}">
<div class="tvshowDiv">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<th #if $layout == 'banner' 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>
<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 '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>
#if $layout == 'banner':
#if 'banner' == $layout:
</tr>
<tr>
#end if
<td class="next_episode">
<div class="clearfix">
<h2 class="tvshowTitle"><a href="$sbRoot/home/displayShow?show=${cur_result["showid"]}">$cur_result["show_name"]
#if int($cur_result["paused"]):
<span class="tvshowTitle">
<a href="$sbRoot/home/displayShow?show=${cur_result['showid']}">$cur_result['show_name']
#if int($cur_result['paused']):
<span class="pause">[paused]</span>
#end if
</a></h2>
</a></span>
<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" />
#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="$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>
<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>
<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>
</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">
<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 class="clearfix">
<span class="title">Quality:</span>
#if int($cur_result["quality"]) in $qualityPresets:
<span class="quality $qualityPresetStrings[int($cur_result["quality"])]">$qualityPresetStrings[int($cur_result["quality"])]</span>
#if int($cur_result['quality']) in $qualityPresets:
<span class="quality $qualityPresetStrings[int($cur_result['quality'])]">$qualityPresetStrings[int($cur_result['quality'])]</span>
#else:
<span class="quality Custom">Custom</span>
#end if
@ -424,9 +457,9 @@
<tr>
<td style="vertical-align: top;">
<div>
#if $cur_result["description"] != "" and $cur_result["description"] != None:
#if $cur_result['description']:
<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:
<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="" />
@ -438,67 +471,78 @@
</div>
</div>
<!-- end $cur_result["show_name"] //-->
<!-- end $cur_result['show_name'] //-->
#end for
<!-- end non list view //-->
#end if
#if $layout == 'calendar':
#if 'calendar' == $layout:
#set $today = datetime.date.today()
#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" />
#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)">
<thead><tr><th>$day.strftime("%A").decode($sickbeard.SYS_ENCODING).capitalize()</th></tr></thead>
#set $tbl_day += 1
<table class="sickbeardTable tablesorter calendarTable <%= 'cal-%s' % (('even', 'odd')[1 == tbl_day % 2]) %>" cellspacing="0" border="0" cellpadding="0">
<thead><tr><th>$day.strftime('%A').decode($sickbeard.SYS_ENCODING).capitalize()</th></tr></thead>
<tbody>
#set $day_has_show = False
#for $cur_result in $sql_results:
#set $cur_indexer = int($cur_result["indexer"])
#set $runtime = $cur_result["runtime"]
#set $airday = $cur_result["localtime"].date()
#if int($cur_result['paused']) and not $sickbeard.COMING_EPS_DISPLAY_PAUSED:
#continue
#end if
#set $cur_indexer = int($cur_result['indexer'])
#set $runtime = $cur_result['runtime']
#set $airday = $cur_result['localtime'].date()
#if $airday == $day:
#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:
#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
<tr>
<td style="padding:0">
<div>
<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>
<td class="calendarShow">
<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" /></a>
</div>
<div class="show-status" style="padding:0 5px 10px 5px">
<span style="overflow: hidden; text-overflow: ellipsis; display:block">
<div class="text">
<span class="airtime">
${airtime} on $cur_result["network"]
</span>
<span style="overflow: hidden; text-overflow: ellipsis; display:block" title="$cur_result["name"]">
<%= "S%02i" % int(cur_result["season"]) + "E%02i" % int(cur_result["episode"]) %> - $cur_result["name"]
<span class="episode-title" title="$cur_result['name']">
<%= 'S%02iE%02i' % (int(cur_result['season']), int(cur_result['episode'])) %> - $cur_result['name']
</span>
</div>
</td> <!-- end $cur_result["show_name"] //-->
</td> <!-- end $cur_result['show_name'] -->
</tr>
#end if
#end for
#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
</tbody>
</table>
#end for
<!-- end calender view //-->
</div>
#end if
<div class="clearfix"></div>
<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>
#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
#from sickbeard import db
#from sickbeard.helpers import anon_url
#import os.path
#set global $title="Configuration"
#set global $header="Configuration"
@ -8,7 +10,7 @@
#set global $topmenu="config"#
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
@ -27,7 +29,7 @@
##set disk_free = $disk.free / 2**30
##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%">
<tr><td class="infoTableHeader">SR Version: </td><td class="infoTableCell">
#if $sickbeard.VERSION_NOTIFY
@ -43,11 +45,11 @@
<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">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><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-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-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 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 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 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 class="infoTableCell"><a href="irc://irc.freenode.net/#sickrage" rel="noreferrer"><i>#sickrage</i> on <i>irc.freenode.net</i></a></td></tr>
</table>
</div></div>
</div>
#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl")

View File

@ -1,4 +1,6 @@
#import sickbeard
#from sickbeard.helpers import anon_url
#set global $title="Config - Anime"
#set global $header="Anime"
@ -27,16 +29,17 @@
<li><a href="#core-component-group2">Look & Feel</a></li>
</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">
<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>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<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-desc">Should Sick Beard use data from AniDB?</span>
</label>
@ -44,39 +47,40 @@
<div id="content_use_anidb">
<div class="field-pair">
<label class="nocheck clearfix">
<label class="nocheck">
<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 class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Username of your AniDB account</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<label class="nocheck">
<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 class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Password of your AniDB account</span>
</label>
</div>
<div class="field-pair">
<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-desc">Do you want to add the PostProcessed Episodes to the MyList ?</span>
</label>
</div>
</div>
<input type="submit" class="btn" value="Save Changes" />
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</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">
<h3>Look and Feel</h3>
@ -84,22 +88,22 @@
<fieldset class="component-group-list">
<div class="field-pair">
<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-desc">Separate anime and normal shows in groups</span>
</label>
</div>
<input type="submit" class="btn" value="Save Changes" />
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</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 //-->
</form>
</div>
</div>
</div></div></div>
<div class="clearfix"></div>
#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")
<script type="text/javascript" src="$sbRoot/js/configBackupRestore.js?$sbPID"></script>
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
@ -33,7 +33,7 @@
<div id="config">
<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">
<ul>
<li><a href="#core-component-group1">Backup</a></li>
@ -46,12 +46,21 @@
<p><b>Backup your main database file and config.</b></p>
</div>
<b>Select the folder you wish to save your backup file to:</b>
<br/>
<input type="text" name="backupDir" id="backupDir" size="50" /><br/>
<fieldset class="component-group-list">
<div class="field-pair">
Select the folder you wish to save your backup file to:
<br/><br/>
<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>
<input class="btn" type="button" value="Backup" id="Backup" />
</fieldset>
</div><!-- /component-group1 //-->
<div id="core-component-group2" class="component-group clearfix">
@ -60,16 +69,25 @@
<p><b>Restore your main database file and config.</b></p>
</div>
<b>Select the backup file you wish to restore:</b>
<br/>
<input type="text" name="backupFile" id="backupFile" size="50" /><br/>
<fieldset class="component-group-list">
<div class="field-pair">
Select the backup file you wish to restore:
<br/><br/>
<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>
<input class="btn" type="button" value="Restore" id="Restore" />
</fieldset>
</div><!-- /component-group2 //-->
</div><!-- /config-components -->
</form>
</div></div></div>
</div>
</div>
<div class="clearfix"></div>

View File

@ -7,14 +7,16 @@
#from sickbeard import config
#from sickbeard import metadata
#from sickbeard.metadata.generic import GenericMetadata
#set global $title = "Config - General"
#set global $header = "General Configuration"
#from sickbeard.helpers import anon_url
#set global $sbPath="../.."
#set global $title = 'Config - General'
#set global $header = 'General Configuration'
#set global $sbPath = '../..'
#set global $topmenu = 'config'
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_top.tmpl')
#set global $topmenu="config"#
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
@ -28,7 +30,6 @@
<script type="text/javascript" src="$sbRoot/js/config.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/imdbWatchlist.js?$sbPID"></script>
<div id="config">
<div id="config-content">
@ -38,95 +39,225 @@
<ul>
<li><a href="#core-component-group1">Misc</a></li>
<li><a href="#core-component-group2">Web Interface</a></li>
<li><a href="#core-component-group3">Date and Time</a></li>
<li><a href="#core-component-group4">Advanced Settings</a></li>
<li><a href="#core-component-group5">UI Theme Settings</a></li>
<li><a href="#core-component-group2">Interface</a></li>
<li><a href="#core-component-group3">Advanced Settings</a></li>
</ul>
<div id="core-component-group1" class="component-group clearfix">
<div id="core-component-group1">
<div class="component-group">
<div class="component-group-desc">
<h3>Misc</h3>
<p>Startup options.</p>
<p>Startup options. Indexer options. Log and show file locations.</p>
<p><b>Some options may require a manual restart to take effect.</b></p>
</div>
<fieldset class="component-group-list" style="width:670px">
<fieldset class="component-group-list">
<div class="field-pair">
<input type="checkbox" name="launch_browser" id="launch_browser" #if $sickbeard.LAUNCH_BROWSER then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="launch_browser">
<span class="component-title">Launch Browser</span>
<span class="component-desc">Should SickRage open its home page when started?</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="update_shows_on_start" id="update_shows_on_start" #if $sickbeard.UPDATE_SHOWS_ON_START then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="update_shows_on_start">
<span class="component-title">Update Shows on Start</span>
<span class="component-desc">Should SickRage update shows info when started?</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="version_notify" id="version_notify" #if $sickbeard.VERSION_NOTIFY then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="version_notify">
<span class="component-title">Check for Update</span>
<span class="component-desc">Show notification about updates for SickRage if available.</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Checking for updates runs on startup and on the interval specified below.</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Update Frequency</span>
<input type="text" name="update_frequency" id="update_frequency" value="$sickbeard.UPDATE_FREQUENCY" size="5" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Time in hours to check for software updates (eg. 12)</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="auto_update" id="auto_update" #if $sickbeard.AUTO_UPDATE then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="auto_update">
<span class="component-title">Automatic Updates</span>
<span class="component-desc">Automatically get and install updates for SickRage when available.</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">updates run on startup and in the background on the interval specified above.</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="notify_on_update" id="notify_on_update" #if $sickbeard.NOTIFY_ON_UPDATE then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="notify_on_update">
<span class="component-title">Notify on Update</span>
<span class="component-desc">Sends the notification SickRage has been updated to all enabled notifiers.</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="sort_article" id="sort_article" #if $sickbeard.SORT_ARTICLE then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="sort_article">
<span class="component-title">Sort Articles</span>
<span class="component-desc">Include articles (The, A, An) when sorting show lists.</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix" for="indexer_default">
<span class="component-title">Default Indexer:</span>
<label for="launch_browser">
<span class="component-title">Launch browser</span>
<span class="component-desc">
<select id="indexer_default" name="indexer_default">
<option value="0" #if $indexer == 0 then "selected=\"selected\"" else ""#>All Indexers</option>
<input type="checkbox" name="launch_browser" id="launch_browser" #if $sickbeard.LAUNCH_BROWSER then 'checked="checked"' else ''#/>
<p>open the SickRage home page on startup</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="update_shows_on_start">
<span class="component-title">Update shows on startup</span>
<span class="component-desc">
<input type="checkbox" name="update_shows_on_start" id="update_shows_on_start" #if $sickbeard.UPDATE_SHOWS_ON_START then 'checked="checked"' else ''#/>
<p>with information such as next air dates, show ended, etc. Disable for a faster startup as show info is sheduled to update in the background anyway</p>
</span>
</label>
</div>
<div class="field-pair">
<span class="component-title">Send to trash for actions</span>
<span class="component-desc">
<label for="trash_remove_show" class="nextline-block">
<input type="checkbox" name="trash_remove_show" id="trash_remove_show" #if $sickbeard.TRASH_REMOVE_SHOW then 'checked="checked"' else ''#/>
<p>when using show "Remove" and delete files</p>
</label>
<label for="trash_rotate_logs" class="nextline-block">
<input type="checkbox" name="trash_rotate_logs" id="trash_rotate_logs" #if $sickbeard.TRASH_ROTATE_LOGS then 'checked="checked"' else ''#/>
<p>on scheduled deletes of the oldest log files</p>
</label>
<div class="clear-left"><p>selected actions use trash (recycle bin) instead of the default permanent delete</p></div>
</span>
</div>
<div class="field-pair">
<label for="log_dir">
<span class="component-title">Log file folder location</span>
<span class="component-desc">
<input type="text" name="log_dir" id="log_dir" value="$sickbeard.ACTUAL_LOG_DIR" class="form-control input-sm input350" />
</span>
</label>
</div>
<div class="field-pair">
<label for="indexer_default">
<span class="component-title">Use initial indexer set to</span>
<span class="component-desc">
<select id="indexer_default" name="indexer_default" class="form-control input-sm">
<option value="0" #if $indexer == 0 then 'selected="selected"' else ''#>All Indexers</option>
#for $indexer in $sickbeard.indexerApi().indexers
<option value="$indexer" #if $indexer == $sickbeard.INDEXER_DEFAULT then "selected=\"selected\"" else ""#>$sickbeard.indexerApi().indexers[$indexer]</option>
<option value="$indexer" #if $indexer == $sickbeard.INDEXER_DEFAULT then 'selected="selected"' else ''#>$sickbeard.indexerApi().indexers[$indexer]</option>
#end for
</select>
<span>as the default selection when adding new shows</span>
</span>
</label>
</div>
<div class="field-pair">
<label for="indexer_timeout">
<span class="component-title">Timeout show indexer at</span>
<span class="component-desc">
<input type="text" name="indexer_timeout" id="indexer_timeout" value="$sickbeard.INDEXER_TIMEOUT" class="form-control input-sm input75" />
<p>seconds of inactivity when finding new shows (default:10)</p>
</span>
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title">Show root directories</span>
<span class="component-desc">
<p>where the files of shows are located</p>
#include $os.path.join($sickbeard.PROG_DIR, 'gui/slick/interfaces/default/inc_rootDirs.tmpl')
</span>
</label>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</div>
<div class="component-group">
<div class="component-group-desc">
<h3>Updates</h3>
<p>Options for software updates.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label for="version_notify">
<span class="component-title">Check software updates</span>
<span class="component-desc">
<input type="checkbox" name="version_notify" id="version_notify" #if $sickbeard.VERSION_NOTIFY then 'checked="checked"' else ''#/>
<p>and display notifications when updates are available.
Checks are run on startup and at the frequency set below*</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="auto_update">
<span class="component-title">Automatically update</span>
<span class="component-desc">
<input type="checkbox" name="auto_update" id="auto_update" #if $sickbeard.AUTO_UPDATE then 'checked="checked"' else ''#/>
<p>fetch and install software updates.
Updates are run on startup and in the background at the frequency set below*</p>
</span>
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title">Check the server every*</span>
<span class="component-desc">
<input type="text" name="update_frequency" id="update_frequency" value="$sickbeard.UPDATE_FREQUENCY" class="form-control input-sm input75" />
<p>hours for software updates (default:12)</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="notify_on_update">
<span class="component-title">Notify on software update</span>
<span class="component-desc">
<input type="checkbox" name="notify_on_update" id="notify_on_update" #if $sickbeard.NOTIFY_ON_UPDATE then 'checked="checked"' else ''#/>
<p>send a message to all enabled notifiers when SickRage has been updated</p>
</span>
</label>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</div>
</div><!-- /component-group1 //-->
<div id="core-component-group2">
<div class="component-group">
<div class="component-group-desc">
<h3>User Interface</h3>
<p>Options for visual appearance.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label for="theme_name">
<span class="component-title">Display theme:</span>
<span class="component-desc">
<select id="theme_name" name="theme_name" class="form-control input-sm">
<option value="dark" #if $sickbeard.THEME_NAME == 'dark' then 'selected="selected"' else ''#>Dark</option>
<option value="light" #if $sickbeard.THEME_NAME == 'light' then 'selected="selected"' else ''#>Light</option>
</select>
<span class="red-text">for appearance to take effect, save then refresh your browser</span>
</span>
</label>
</div>
<div class="field-pair">
<label for="sort_article">
<span class="component-title">Sort with "The", "A", "An"</span>
<span class="component-desc">
<input type="checkbox" name="sort_article" id="sort_article" #if $sickbeard.SORT_ARTICLE then 'checked="checked"' else ''#/>
<p>include articles ("The", "A", "An") when sorting show lists</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="fuzzy_dating">
<span class="component-title">Display fuzzy dates</span>
<span class="component-desc">
<input type="checkbox" name="fuzzy_dating" id="fuzzy_dating" class="viewIf datePresets" #if $sickbeard.FUZZY_DATING == True then 'checked="checked"' else ''#/>
<p>move absolute dates into tooltips and display e.g. "Last Thu", "On Tue"</p>
</span>
</label>
</div>
<div class="field-pair show_if_fuzzy_dating#if True == $sickbeard.FUZZY_DATING then '' else ' metadataDiv'#">
<label for="trim_zero">
<span class="component-title">Trim zero padding</span>
<span class="component-desc">
<input type="checkbox" name="trim_zero" id="trim_zero" #if True == $sickbeard.TRIM_ZERO then 'checked="checked"' else ''#/>
<p>remove the leading number "0" shown on hour of day, and date of month</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="date_presets">
<span class="component-title">Date style:</span>
<span class="component-desc">
<select class="form-control input-sm #if True == $sickbeard.FUZZY_DATING then '' else ' metadataDiv'#" id="date_presets#if True == $sickbeard.FUZZY_DATING then '' else '_na'#" name="date_preset#if True == $sickbeard.FUZZY_DATING then '' else '_na'#">
#for $cur_preset in $date_presets:
<option value="$cur_preset" #if $cur_preset == $sickbeard.DATE_PRESET or ("%x" == $sickbeard.DATE_PRESET and "$cur_preset" == '%a, %b %d, %Y') then 'selected="selected"' else ''#>$datetime.datetime($datetime.datetime.now().year, 12, 31, 14, 30, 47).strftime($cur_preset)</option>
#end for
</select>
<select class="form-control input-sm #if True != $sickbeard.FUZZY_DATING then '' else ' metadataDiv'#" id="date_presets#if True != $sickbeard.FUZZY_DATING then '' else '_na'#" name="date_preset#if True != $sickbeard.FUZZY_DATING then '' else '_na'#">
<option value="%x" #if "%x" == $sickbeard.DATE_PRESET then 'selected="selected"' else ''#>Use System Default</option>
#for $cur_preset in $date_presets:
<option value="$cur_preset" #if $cur_preset == $sickbeard.DATE_PRESET then 'selected="selected"' else ''#>$datetime.datetime($datetime.datetime.now().year, 12, 31, 14, 30, 47).strftime($cur_preset)</option>
#end for
</select>
</span>
@ -134,75 +265,49 @@
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Indexer Timeout</span>
<input type="text" name="indexer_timeout" id="indexer_timeout" value="$sickbeard.INDEXER_TIMEOUT" size="5" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Time in seconds before Indexer search times out for adding shows (eg. 10)</span>
<label for="time_presets">
<span class="component-title">Time style:</span>
<span class="component-desc">
<select id="time_presets" name="time_preset" class="form-control input-sm">
#for $cur_preset in $time_presets:
<option value="$cur_preset" #if $cur_preset == $sickbeard.TIME_PRESET_W_SECONDS then 'selected="selected"' else ''#>$sbdatetime.now().sbftime(show_seconds=True,t_preset=$cur_preset)</option>
#end for
</select>
<span><b>note:</b> seconds are only shown on the History page</span>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix" for="log_dir">
<span class="component-title">Logging Directory</span>
<input type="text" name="log_dir" id="log_dir" value="$sickbeard.ACTUAL_LOG_DIR" size="40" />
<span class="component-title">Timezone:</span>
<span class="component-desc">
<label for="local" class="space-right">
<input type="radio" name="timezone_display" id="local" value="local" #if "local" == $sickbeard.TIMEZONE_DISPLAY then 'checked="checked"' else ''# />Local
</label>
<label for="network">
<input type="radio" name="timezone_display" id="network" value="network" #if "network" == $sickbeard.TIMEZONE_DISPLAY then 'checked="checked"' else ''# />Network
</label>
<div class="clear-left"><p>display dates and times in either your timezone or the shows network timezone</p></div>
</span>
</div>
<div class="field-pair">
<input type="checkbox" name="handle_reverse_proxy" id="handle_reverse_proxy" #if $sickbeard.HANDLE_REVERSE_PROXY then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="handle_reverse_proxy">
<span class="component-title">Reverse Proxy Headers</span>
<span class="component-desc">Should SickRage accept the following reverse proxy headers?</span>
<label for="play_videos">
<span class="component-title">Browser video player</span>
<span class="component-desc">
<input type="checkbox" name="play_videos" id="play_videos" #if $sickbeard.PLAY_VIDEOS then 'checked="checked"' else ''#/>
<p>play video files from display show page<?p>
</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">(X-Forwarded-Host, X-Forwarded-For, X-Forwarded-Proto)</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="play_videos" id="play_videos" #if $sickbeard.PLAY_VIDEOS then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="play_videos">
<span class="component-title">Play Videos</span>
<span class="component-desc">Play video files from display show page?</span>
</label>
</div>
<div class="field-pair">
<label class="clearfix">
<span class="component-title">Show Root Directories</span>
<span class="component-desc">Set root directories for where you want your shows to be.</span>
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_rootDirs.tmpl")
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="use_imdbwl" class="enabler" id="use_imdbwl" #if $sickbeard.USE_IMDBWATCHLIST then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="use_imdbwl">
<span class="component-title">Use IMDB Watchlists</span>
</label>
</div>
<div id="content_use_imdbwl">
<!-- Multiselect for managing IMDB watchlist csv url's -->
<div class="field-pair">
<label class="clearfix">
<span class="">Manage your IMDB watchlist url's. Each url should contain your list id and user id. <br>They look like: ls014134 and us0918234.</span>
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_imdbWatchlists.tmpl")
</label>
</div>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</div><!-- /component-group1 //-->
</div><!-- /User interface component-group -->
<div id="core-component-group2" class="component-group clearfix">
<div class="component-group">
<div class="component-group-desc">
<h3>Web Interface</h3>
@ -213,305 +318,230 @@
<fieldset class="component-group-list">
<div class="field-pair">
<input type="checkbox" name="web_ipv6" id="web_ipv6" #if $sickbeard.WEB_IPV6 then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="web_ipv6">
<label for="use_api">
<span class="component-title">Enable API</span>
<span class="component-desc">
<input type="checkbox" name="use_api" class="enabler" id="use_api" #if $sickbeard.USE_API then 'checked="checked"' else ''#/>
<p>allow the use of the SickRage API</p>
</span>
</label>
</div>
<div id="content_use_api">
<div class="field-pair">
<label for="api_key">
<span class="component-title">API key</span>
<span class="component-desc">
<input type="text" name="api_key" id="api_key" value="$sickbeard.API_KEY" class="form-control input-sm input300" readonly="readonly" />
<input class="btn btn-inline" type="button" id="generate_new_apikey" value="Generate">
<div class="clear-left"><p>used to give 3rd party programs limited access to SickRage</p></div>
</span>
</label>
</div>
</div>
<div class="field-pair">
<label for="web_log">
<span class="component-title">HTTP logs</span>
<span class="component-desc">
<input type="checkbox" name="web_log" id="web_log" #if $sickbeard.WEB_LOG then 'checked="checked"' else ''#/>
<p>enable logs from the internal Tornado web server</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="web_username">
<span class="component-title">HTTP username</span>
<span class="component-desc">
<input type="text" name="web_username" id="web_username" value="$sickbeard.WEB_USERNAME" class="form-control input-sm input300" />
<p>set blank for no login</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="web_password">
<span class="component-title">HTTP password</span>
<span class="component-desc">
<input type="password" name="web_password" id="web_password" value="$sickbeard.WEB_PASSWORD" class="form-control input-sm input300" />
<p>blank = no authentication</span>
</label>
</div>
<div class="field-pair">
<label for="web_port">
<span class="component-title">HTTP port</span>
<span class="component-desc">
<input type="text" name="web_port" id="web_port" value="$sickbeard.WEB_PORT" class="form-control input-sm input100" />
<p>web port to browse and access SickRage (default:8081)</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="web_ipv6">
<span class="component-title">Listen on IPv6</span>
<span class="component-desc">Allow SickRage to bind to any available IPv6 address?</span>
<span class="component-desc">
<input type="checkbox" name="web_ipv6" id="web_ipv6" #if $sickbeard.WEB_IPV6 then 'checked="checked"' else ''#/>
<p>attempt binding to any available IPv6 address</p>
</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="web_log" id="web_log" #if $sickbeard.WEB_LOG then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="web_log">
<span class="component-title">HTTP Logs</span>
<span class="component-desc">Have SickRage's web server (tornado) generate logs?</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">HTTP Port</span>
<input type="text" name="web_port" value="$sickbeard.WEB_PORT" size="10" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Web port that SickRage should listen on (eg. 8081)</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">HTTP Username</span>
<input type="text" name="web_username" value="$sickbeard.WEB_USERNAME" size="35" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Username for authentication (blank for none)</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">HTTP Password</span>
<input type="password" name="web_password" value="$sickbeard.WEB_PASSWORD" size="35" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Password for authentication (blank for none)</span>
</label>
</div>
<div class="field-pair">
<label class="clearfix">
<input type="checkbox" name="enable_https" class="enabler" id="enable_https" #if $sickbeard.ENABLE_HTTPS then "checked=\"checked\"" else ""#/>
<label for="enable_https">
<span class="component-title">Enable HTTPS</span>
<span class="component-desc">Enable accessing the interface from a HTTPS address.</span>
<span class="component-desc">
<input type="checkbox" name="enable_https" class="enabler" id="enable_https" #if $sickbeard.ENABLE_HTTPS then 'checked="checked"' else ''#/>
<p>enable access to the web interface using a HTTPS address</p>
</span>
</label>
</div>
<div id="content_enable_https">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">HTTPS Certificate</span>
<input type="text" name="https_cert" value="$sickbeard.HTTPS_CERT" size="35" />
<label for="https_cert">
<span class="component-title">HTTPS certificate</span>
<span class="component-desc">
<input type="text" name="https_cert" id="https_cert" value="$sickbeard.HTTPS_CERT" class="form-control input-sm input300" />
<div class="clear-left"><p>file name or path to HTTPS certificate</p></div>
</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">File name or path to HTTPS Certificate.</span>
</div>
<div class="field-pair">
<label for="https_key">
<span class="component-title">HTTPS key</span>
<span class="component-desc">
<input type="text" name="https_key" id="https_key" value="$sickbeard.HTTPS_KEY" class="form-control input-sm input300" />
<div class="clear-left"><p>file name or path to HTTPS key</p></div>
</span>
</label>
</div>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">HTTPS Key</span>
<input type="text" name="https_key" value="$sickbeard.HTTPS_KEY" size="35" />
<label for="handle_reverse_proxy">
<span class="component-title">Reverse proxy headers</span>
<span class="component-desc">
<input type="checkbox" name="handle_reverse_proxy" id="handle_reverse_proxy" #if $sickbeard.HANDLE_REVERSE_PROXY then 'checked="checked"' else ''#/>
<p>accept the following reverse proxy headers (advanced)...<br />(X-Forwarded-For, X-Forwarded-Host, and X-Forwarded-Proto)</p>
</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">File name or path to HTTPS Key.</span>
</label>
</div>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</div><!-- /component-group2 //-->
<div id="core-component-group4" class="component-group clearfix">
</fieldset>
</div><!-- /component-group2 //-->
</div>
<div id="core-component-group3" class="component-group">
<div class="component-group-desc">
<h3>Advanced Settings</h3>
<p>You need to know what you are doing here!!!</p>
</div>
<fieldset class="component-group-list" style="width:670px">
<fieldset class="component-group-list">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Branch Version:</span>
<label>
<span class="component-title">Branch version:</span>
<span class="component-desc">
<select id="branchVersion">
<select id="branchVersion" class="form-control form-control-inline input-sm pull-left">
#for $cur_branch in $sickbeard.versionCheckScheduler.action.list_remote_branches():
<option value="$cur_branch" #if $cur_branch == $sickbeard.BRANCH then "selected=\"selected\"" else ""#>$cur_branch</option>
<option value="$cur_branch" #if $cur_branch == $sickbeard.BRANCH then 'selected="selected"' else ''#>$cur_branch</option>
#end for
</select>
<input class="btn" class="btn" type="button" id="branchCheckout" value="Checkout Branch">
<input class="btn btn-inline" style="margin-left: 6px;" type="button" id="branchCheckout" value="Checkout Branch">
<div class="clear-left"><p>select branch to use (restart required)</p></div>
</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Select the branch you wish to use, changing this will require a restart.</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">CPU Throttling:</span>
<label for="git_remote">
<span class="component-title">Git remote for branch</span>
<span class="component-desc">
<select id="cpu_presets" name="cpu_preset">
<input type="text" name="git_remote" id="git_remote" value="$sickbeard.GIT_REMOTE" class="form-control input-sm input300" />
<div class="clear-left"><p>default:origin. Access repo configured remotes (save then refresh browser)</p></div>
</span>
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title">Git executable path</span>
<span class="component-desc">
<input type="text" name="git_path" value="$sickbeard.GIT_PATH" class="form-control input-sm input300" />
<div class="clear-left"><p>only needed if OS is unable to locate git from env</p></div>
</span>
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title">CPU throttling:</span>
<span class="component-desc">
<select id="cpu_presets" name="cpu_preset" class="form-control input-sm">
#for $cur_preset in $cpu_presets:
<option value="$cur_preset" #if $cur_preset == $sickbeard.CPU_PRESET then "selected=\"selected\"" else ""#>$cur_preset.capitalize()</option>
<option value="$cur_preset" #if $cur_preset == $sickbeard.CPU_PRESET then 'selected="selected"' else ''#>$cur_preset.capitalize()</option>
#end for
</select>
</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Normal = Default.&nbsp;&nbsp;High = Lower CPU usage.&nbsp;&nbsp;Low = Higher CPU usage.</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Anonymous Redirect</span>
<input type="text" name="anon_redirect" value="$sickbeard.ANON_REDIRECT" size="40" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Backlink protection via anonymizer service, must end in <b>?</b></span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Git Path</span>
<input type="text" name="git_path" value="$sickbeard.GIT_PATH" size="40" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Specify path to Git binary, use only if OS is unable to find the path.</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="use_api" class="enabler" id="use_api" #if $sickbeard.USE_API then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="use_api">
<span class="component-title">Enable API</span>
<span class="component-desc">Allow the use of the Sick-Beard API.</span>
</label>
</div>
<div id="content_use_api">
<div class="field-pair">
<label class="nocheck clearfix" for="api_key">
<span class="component-title">API Key</span>
<input type="text" name="api_key" id="api_key" value="$sickbeard.API_KEY" size="35" readonly="readonly" />
<input class="btn" class="btn" type="button" id="generate_new_apikey" value="Generate">
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Used to give 3rd party programs limited access to Sick-Beard.</span>
</label>
</div>
</div>
<div class="field-pair">
<input type="checkbox" name="encryption_version" id="encryption_version" #if $sickbeard.ENCRYPTION_VERSION then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="encryption_version">
<span class="component-title">Encrypt Passwords</span>
<span class="component-desc">Should SickRage encrypt passwords in <code>config.ini</code> file?</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>Warning</b>: Passwords must only contain <a style="color: #09A2FF;" href="http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters">ASCII characters</a></span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="calendar_unprotected" id="calendar_unprotected" #if $sickbeard.CALENDAR_UNPROTECTED then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="calendar_unprotected">
<span class="component-title">Unprotected Calendar</span>
<span class="component-desc">Allow subscribing to the calendar without user and password.</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Some services like Google Calendar only work this way.</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Proxy Settings</span>
<input type="text" name="proxy_setting" value="$sickbeard.PROXY_SETTING" size="40" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Proxy to use for connecting to providers. Leave empty to not use proxy.</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="proxy_indexers" id="proxy_indexers" #if $sickbeard.PROXY_INDEXERS == True then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="proxy_indexers">
<span class="component-title">Proxy Indexers</span>
<span class="component-desc">Use the proxy for connecting to indexers (thetvdb, tvrage)</span>
</label>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</div><!-- /component-group4 //-->
<div id="core-component-group3" class="component-group clearfix">
<div class="component-group-desc">
<h3>Date and Time</h3>
</div>
<fieldset class="component-group-list" style="width:670px">
<div class="field-pair">
<input type="checkbox" name="fuzzy_dating" id="fuzzy_dating" class="viewIf datePresets" #if $sickbeard.FUZZY_DATING == True then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="fuzzy_dating">
<span class="component-title">Display Fuzzy Dates</span>
<span class="component-desc">E.g "Last Thu", "On Tue" and move the absolute date into time tooltips?</span>
</label>
</div>
<div class="show_if_fuzzy_dating#if True == $sickbeard.FUZZY_DATING then '' else ' metadataDiv'#">
<div class="field-pair">
<input type="checkbox" name="trim_zero" id="trim_zero" #if $sickbeard.TRIM_ZERO == True then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="trim_zero">
<span class="component-title">Trim Zero Padding</span>
<span class="component-desc">Trim leading number "0" shown on hour of day and date of month?</span>
</label>
</div>
</div>
<div class="field-pair">
<label class="nocheck clearfix" for="date_presets">
<span class="component-title">Date Style:</span>
<span class="component-desc">
<div class="show_if_fuzzy_dating#if True == $sickbeard.FUZZY_DATING then '' else ' metadataDiv'#">
<select id="date_presets#if True == $sickbeard.FUZZY_DATING then '' else '_na'#" name="date_preset#if True == $sickbeard.FUZZY_DATING then '' else '_na'#">
#for $cur_preset in $date_presets:
<option value="$cur_preset" #if $cur_preset == $sickbeard.DATE_PRESET or ("%x" == $sickbeard.DATE_PRESET and "$cur_preset" == '%a, %b %d, %Y') then "selected=\"selected\"" else ""#>$datetime.datetime($datetime.datetime.now().year, 12, 31, 14, 30, 47).strftime($cur_preset)</option>
#end for
</select>
</div>
<div class="hide_if_fuzzy_dating#if True != $sickbeard.FUZZY_DATING then '' else ' metadataDiv'#">
<select id="date_presets#if True != $sickbeard.FUZZY_DATING then '' else '_na'#" name="date_preset#if True != $sickbeard.FUZZY_DATING then '' else '_na'#">
<option value="%x" #if "%x" == $sickbeard.DATE_PRESET then "selected=\"selected\"" else ""#>Use System Default</option>
#for $cur_preset in $date_presets:
<option value="$cur_preset" #if $cur_preset == $sickbeard.DATE_PRESET then "selected=\"selected\"" else ""#>$datetime.datetime($datetime.datetime.now().year, 12, 31, 14, 30, 47).strftime($cur_preset)</option>
#end for
</select>
</div>
<div id="date_use_system_default" class="metadataDiv"></div>
<span>Normal (default). High is lower and Low is higher CPU use</span>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix" for="time_presets">
<span class="component-title">Time Style:</span>
<label>
<span class="component-title">Anonymous redirect</span>
<span class="component-desc">
<select id="time_presets" name="time_preset">
#for $cur_preset in $time_presets:
<option value="$cur_preset" #if $cur_preset == $sickbeard.TIME_PRESET_W_SECONDS then "selected=\"selected\"" else ""#>$sbdatetime.now().sbftime(show_seconds=True,t_preset=$cur_preset)</option>
#end for
</select>
<input type="text" name="anon_redirect" value="$sickbeard.ANON_REDIRECT" class="form-control input-sm input300" />
<div class="clear-left"><p>backlink protection via anonymizer service, must end in "?"</p></div>
</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>Note:</b> Seconds are only shown on the History page.</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Timezones:</span>
<span class="component-desc">Display dates and times in either your timezone or the shows network timezone?</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<label for="encryption_version">
<span class="component-title">Encrypt passwords</span>
<span class="component-desc">
<input type="radio" name="timezone_display" id="local" value="local" class="radio" #if $sickbeard.TIMEZONE_DISPLAY=="local" then "checked=\"checked\"" else ""# />Local Timezone<br />
<input type="checkbox" name="encryption_version" id="encryption_version" #if $sickbeard.ENCRYPTION_VERSION then 'checked="checked"' else ''#/>
<p>in the <code>config.ini</code> file.
<b>Warning:</b> Passwords must only contain <a target="_blank" href="<%= anon_url('http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters') %>">ASCII characters</a></p>
</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
</div>
<div class="field-pair">
<label for="calendar_unprotected">
<span class="component-title">Unprotected calendar</span>
<span class="component-desc">
<input type="radio" name="timezone_display" id="network" value="network" class="radio" #if $sickbeard.TIMEZONE_DISPLAY=="network" then "checked=\"checked\"" else ""# />Network Timezone<br />
<input type="checkbox" name="calendar_unprotected" id="calendar_unprotected" #if $sickbeard.CALENDAR_UNPROTECTED then 'checked="checked"' else ''#/>
<p>allow subscribing to the calendar without user and password.
Some services like Google Calendar only work this way</p>
</span>
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title">Proxy host</span>
<span class="component-desc">
<input type="text" name="proxy_setting" value="$sickbeard.PROXY_SETTING" class="form-control input-sm input300" />
<div class="clear-left"><p>blank to disable or proxy to use when connecting to providers</p></div>
</label>
</div>
<div class="field-pair">
<label for="proxy_indexers">
<span class="component-title">Use proxy for indexers</span>
<span class="component-desc">
<input type="checkbox" name="proxy_indexers" id="proxy_indexers" #if True == $sickbeard.PROXY_INDEXERS then 'checked="checked"' else ''#/>
<p>use proxy host for connecting to indexers (thetvdb, tvrage)</p>
</span>
</label>
</div>
@ -520,51 +550,23 @@
</fieldset>
</div><!-- /component-group3 //-->
<div id="core-component-group5" class="component-group clearfix">
<div class="component-group-desc">
<h3>UI Theme Settings</h3>
<p>Change UI settings to your liking.</p>
</div>
<fieldset class="component-group-list" style="width:670px">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">UI Theme:</span>
<span class="component-desc">
<select id="theme_name" name="theme_name">
<option value="dark" #if $sickbeard.THEME_NAME == "dark" then "selected=\"selected\"" else ""#>Dark</option>
<option value="original" #if $sickbeard.THEME_NAME == "original" then "selected=\"selected\"" else ""#>Original</option>
</select>
</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><font color="red">Please refresh your browser after you have saved for appearance to take effect.</font></span>
</label>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</div><!-- /component-group5 //-->
<br/>
<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" />
<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" />
</div><!-- /config-components -->
</form>
</div></div></div>
</div>
</div>
<div class="clearfix"></div>
<div></div>
<script type="text/javascript" charset="utf-8">
<!--
jQuery('#log_dir').fileBrowser({ title: 'Select Log Directory' });
jQuery('#log_dir').fileBrowser({ title: 'Select log file folder location' });
jQuery('#config-components').tabs();
//-->
</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')

File diff suppressed because it is too large Load Diff

View File

@ -29,12 +29,12 @@
<div id="config-components">
<ul>
<li><a href="#core-component-group3">Post-Processing</a></li>
<li><a href="#core-component-group4">Episode Naming</a></li>
<li><a href="#core-component-group2">Metadata</a></li>
<li><a href="#core-component-group1">Post-Processing</a></li>
<li><a href="#core-component-group2">Episode Naming</a></li>
<li><a href="#core-component-group3">Metadata</a></li>
</ul>
<div id="core-component-group3" class="component-group clearfix">
<div id="core-component-group1" class="component-group">
<div class="component-group-desc">
<h3>Post-Processing</h3>
@ -43,29 +43,29 @@
<fieldset class="component-group-list">
<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>
<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 class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">The folder where your download client puts TV downloads.</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Use only if not using SABnzbd+ post processing.</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Or if SABnzbd+ and SickRage are on different PCs.</span>
</label>
</div>
<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-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"}
#for $curAction in ('copy', 'move', 'hardlink', 'symlink'):
#if $sickbeard.PROCESS_METHOD == $curAction:
@ -78,32 +78,32 @@
</select>
</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">What method should be used to put file in the TV directory?</span>
</label>
</div>
<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 ""# />
<label class="clearfix" for="skip_removed_files">
<label for="skip_removed_files">
<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>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> This may mean SickRage misses renames as well</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<label class="nocheck">
<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 class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Additional scripts separated by <b>|</b>.</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Scripts are called after SickRage's own post-processing.</span>
</label>
@ -111,7 +111,7 @@
<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 ""# />
<label class="clearfix" for="move_associated_files">
<label for="move_associated_files">
<span class="component-title">Move Associated Files</span>
<span class="component-desc">Move srr/srt/sfv/etc files with the episode when processed?</span>
</label>
@ -119,7 +119,7 @@
<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 ""# />
<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-desc">if !sync files are present in the TV download dir</span>
</label>
@ -127,7 +127,7 @@
<div class="field-pair">
<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-desc">Rename the original .nfo file to .nfo-orig to avoid conflicts?</span>
</label>
@ -135,7 +135,7 @@
<div class="field-pair">
<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-desc">Rename episode using the Episode Naming settings?</span>
</label>
@ -143,11 +143,11 @@
<div class="field-pair">
<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-desc">Set last modified filedate to the date that the episode aired?</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Some systems may ignore this feature.</span>
</label>
@ -155,26 +155,26 @@
<div class="field-pair">
<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-desc">Scan and post-process any files in your <i>TV Download Dir</i>?</span>
</label>
<label class="nocheck clearfix" for="process_automatically">
<label class="nocheck" for="process_automatically">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Do not use if you use PostProcesing external script</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">eg. NZBMedia w/ NZBGET, sabToSickbeard w/ SABnzbd+!</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<label class="nocheck">
<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 class="nocheck clearfix">
<label class="nocheck">
<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>
</label>
@ -182,11 +182,11 @@
<div class="field-pair">
<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-desc">Unpack any TV releases in your <i>TV Download Dir</i>?</span>
</label>
<label class="nocheck clearfix" for="unpack">
<label class="nocheck" for="unpack">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Only working with RAR archive</span>
</label>
@ -194,11 +194,11 @@
<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 ""# />
<label class="clearfix" for="use_failed_downloads">
<label for="use_failed_downloads">
<span class="component-title">Use Failed Downloads</span>
<span class="component-desc">Use Failed Download Handling?</span>
</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-desc"><b>NOTE:</b> See <i>readme-FailedDownloads.md</i> before enabling.</span>
</label>
@ -207,11 +207,11 @@
<div id="content_use_failed_downloads">
<div class="field-pair">
<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-desc">Delete files left over from a failed download?</span>
</label>
<label class="nocheck clearfix" for="delete_failed">
<label class="nocheck" for="delete_failed">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> This only works if Use Failed Downloads is enabled.</span>
</label>
@ -219,79 +219,12 @@
</div>
<div class="clearfix"></div>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</fieldset>
</div><!-- /component-group3 //-->
</div><!-- /component-group1 //-->
<div id="core-component-group2" class="component-group clearfix">
<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 id="core-component-group2" class="component-group">
<div class="component-group-desc">
<h3>Episode Naming</h3>
@ -301,10 +234,10 @@
<fieldset class="component-group-list">
<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-desc">
<select id="name_presets">
<select id="name_presets" class="form-control input-sm">
#set is_custom = True
#for $cur_preset in $naming.name_presets:
#set $tmp = $naming.test_name($cur_preset, anime_type=3)
@ -320,19 +253,19 @@
</div>
<div id="naming_custom">
<div class="field-pair clearfix" style="padding-top: 0;">
<label class="nocheck clearfix">
<div class="field-pair" style="padding-top: 0;">
<label class="nocheck">
<span class="component-title">
&nbsp;
</span>
<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;" />
<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;" />
<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" class="legend" class="legend" />
</span>
</label>
</div>
<div id="naming_key" class="nocheck clearfix" style="display: none;">
<div id="naming_key" class="nocheck" style="display: none;">
<table class="Key">
<thead>
<tr>
@ -442,7 +375,7 @@
<td>%RG</td>
<td>RLSGROUP</td>
</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>%RT</td>
<td>PROPER</td>
@ -454,10 +387,10 @@
</div>
<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-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]):
<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
@ -467,7 +400,7 @@
</div>
<div id="naming_example_div">
<h2>Single-EP Sample:</h2>
<h3>Single-EP Sample:</h3>
<div class="example">
<span class="jumbo" id="naming_example">&nbsp;</span>
</div>
@ -475,7 +408,7 @@
</div>
<div id="naming_example_multi_div">
<h2>Multi-EP sample:</h2>
<h3>Multi-EP sample:</h3>
<div class="example">
<span class="jumbo" id="naming_example_multi">&nbsp;</span>
</div>
@ -484,19 +417,19 @@
<div class="field-pair">
<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-desc">Remove the TV show's year when renaming the file?</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Only applies to shows that have year inside parentheses</span>
</label>
</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 ""#/>
<label class="clearfix" for="naming_custom_abd">
<label for="naming_custom_abd">
<span class="component-title">Custom Air-By-Date</span>
<span class="component-desc">Name Air-By-Date shows differently than regular shows?</span>
</label>
@ -504,10 +437,10 @@
<div id="content_naming_custom_abd">
<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-desc">
<select id="name_abd_presets">
<select id="name_abd_presets" class="form-control input-sm">
#set is_abd_custom = True
#for $cur_preset in $naming.name_abd_presets:
#set $tmp = $naming.test_name($cur_preset)
@ -523,19 +456,19 @@
</div>
<div id="naming_abd_custom">
<div class="field-pair clearfix" style="padding-top: 0;">
<label class="nocheck clearfix">
<div class="field-pair">
<label class="nocheck">
<span class="component-title">
&nbsp;
</span>
<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"/>
<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;" />
<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" class="legend" />
</span>
</label>
</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">
<thead>
<tr>
@ -662,7 +595,7 @@
</div><!-- /naming_abd_custom -->
<div id="naming_abd_example_div">
<h2>Sample:</h2>
<h3>Sample:</h3>
<div class="example">
<span class="jumbo" id="naming_abd_example">&nbsp;</span>
</div>
@ -671,9 +604,9 @@
</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 ""#/>
<label class="clearfix" for="naming_custom_sports">
<label for="naming_custom_sports">
<span class="component-title">Custom Sports</span>
<span class="component-desc">Name Sports shows differently than regular shows?</span>
</label>
@ -681,10 +614,10 @@
<div id="content_naming_custom_sports">
<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-desc">
<select id="name_sports_presets">
<select id="name_sports_presets" class="form-control input-sm">
#set is_sports_custom = True
#for $cur_preset in $naming.name_sports_presets:
#set $tmp = $naming.test_name($cur_preset)
@ -700,19 +633,19 @@
</div>
<div id="naming_sports_custom">
<div class="field-pair clearfix" style="padding-top: 0;">
<label class="nocheck clearfix">
<div class="field-pair" style="padding-top: 0;">
<label class="nocheck">
<span class="component-title">
&nbsp;
</span>
<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"/>
<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;" />
<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" class="legend" />
</span>
</label>
</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">
<thead>
<tr>
@ -839,7 +772,7 @@
</div><!-- /naming_sports_custom -->
<div id="naming_sports_example_div">
<h2>Sample:</h2>
<h3>Sample:</h3>
<div class="example">
<span class="jumbo" id="naming_sports_example">&nbsp;</span>
</div>
@ -849,9 +782,9 @@
</div><!-- /naming_sports_different -->
<!-- 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 ""#/>
<label class="clearfix" for="naming_custom_anime">
<label for="naming_custom_anime">
<span class="component-title">Custom Anime</span>
<span class="component-desc">Name Anime shows differently than regular shows?</span>
</label>
@ -859,10 +792,10 @@
<div id="content_naming_custom_anime">
<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-desc">
<select id="name_anime_presets">
<select id="name_anime_presets" class="form-control input-sm">
#set is_anime_custom = True
#for $cur_preset in $naming.name_anime_presets:
#set $tmp = $naming.test_name($cur_preset)
@ -878,19 +811,19 @@
</div>
<div id="naming_anime_custom">
<div class="field-pair clearfix" style="padding-top: 0;">
<label class="nocheck clearfix">
<div class="field-pair" style="padding-top: 0;">
<label class="nocheck">
<span class="component-title">
&nbsp;
</span>
<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"/>
<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;" />
<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" class="legend" />
</span>
</label>
</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">
<thead>
<tr>
@ -1000,7 +933,7 @@
<td>%RG</td>
<td>RLSGROUP</td>
</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>%RT</td>
<td>PROPER</td>
@ -1012,10 +945,10 @@
</div><!-- /naming_anime_custom -->
<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-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]):
<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
@ -1025,7 +958,7 @@
</div>
<div id="naming_example_anime_div">
<h2>Single-EP Anime Sample:</h2>
<h3>Single-EP Anime Sample:</h3>
<div class="example">
<span class="jumbo" id="naming_example_anime">&nbsp;</span>
</div>
@ -1033,7 +966,7 @@
</div>
<div id="naming_example_multi_anime_div">
<h2>Multi-EP Anime sample:</h2>
<h3>Multi-EP Anime sample:</h3>
<div class="example">
<span class="jumbo" id="naming_example_multi_anime">&nbsp;</span>
</div>
@ -1042,11 +975,11 @@
<div class="field-pair">
<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-desc">Add the absolute number to the season/episode format?</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Only applies to animes. (eg. S15E45 - 310 vs S15E45)</span>
</label>
@ -1054,11 +987,11 @@
<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 ""#/>
<label class="clearfix" for="naming_anime_only">
<label for="naming_anime_only">
<span class="component-title">Only Absolute Number</span>
<span class="component-desc">Replace season/episode format with absolute number</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Only applies to animes.</span>
</label>
@ -1066,11 +999,11 @@
<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 ""#/>
<label class="clearfix" for="naming_anime_none">
<label for="naming_anime_none">
<span class="component-title">No Absolute Number</span>
<span class="component-desc">Dont include the absolute number</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Only applies to animes.</span>
</label>
@ -1078,18 +1011,87 @@
</div><!-- /naming_anime_different -->
<div class="clearfix"></div>
<div></div>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</fieldset>
</div><!-- /component-naming //-->
</div><!-- /component-group2 //-->
<div id="core-component-group3" 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>
<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/>
<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/>
<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></div></div>
</div>
</div>
<div class="clearfix"></div>
<script type="text/javascript" charset="utf-8">

View File

@ -1,6 +1,8 @@
#import sickbeard
#from sickbeard.providers.generic import GenericProvider
#from sickbeard.providers import thepiratebay
#from sickbeard.helpers import anon_url
#set global $title="Config - Providers"
#set global $header="Search Providers"
@ -9,7 +11,7 @@
#set global $topmenu="config"#
#import os.path
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
@ -50,7 +52,7 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
<div id="config-components">
<ul>
<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
<li><a href="#core-component-group3">Configure Custom Newznab Providers</a></li>
#end if
@ -59,11 +61,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#end if
</ul>
<div id="core-component-group1" class="component-group clearfix">
<div id="core-component-group1" class="component-group">
<div class="component-group-desc">
<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>
#if not $sickbeard.USE_NZBS or not $sickbeard.USE_TORRENTS:
@ -79,7 +81,7 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
</div>
</div>
<fieldset class="component-group-list" style="margin-left: 50px; margin-top:36px">
<fieldset class="component-group-list">
<ul id="provider_order_list">
#for $curProvider in $sickbeard.providers.sortedProviderList():
#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()
<li class="ui-state-default" id="$curName">
<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>
#if not $curProvider.supportsBacklog 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>
</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>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>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label class="clearfix" for="editAProvider">
<span class="component-title jumbo">Configure Provider:</span>
<label for="editAProvider">
<span class="component-title">Configure provider:</span>
<span class="component-desc">
#set $provider_config_list = []
#for $curProvider in $sickbeard.providers.sortedProviderList():
@ -126,8 +129,8 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#end for
#if $provider_config_list:
<select id="editAProvider">
#for $cur_provider in $provider_config_list + [$curProvider for $curProvider in $sickbeard.newznabProviderList if $sickbeard.USE_NZBS]:
<select id="editAProvider" class="form-control input-sm">
#for $cur_provider in $provider_config_list:
<option value="$cur_provider.getID()">$cur_provider.name</option>
#end for
</select>
@ -144,26 +147,30 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
<div class="providerDiv" id="${curNewznabProvider.getID()}Div">
#if $curNewznabProvider.default and $curNewznabProvider.needs_auth
<div class="field-pair">
<label class="clearfix">
<label for="${curNewznabProvider.getID()}_url">
<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>
</div>
<div class="field-pair">
<label class="clearfix">
<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" />
<label for="${curNewznabProvider.getID()}_hash">
<span class="component-title">API key:</span>
<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>
</div>
#end if
#if $hasattr($curNewznabProvider, 'enable_daily'):
<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 class="clearfix" for="${curNewznabProvider.getID()}_enable_daily">
<span class="component-title">Enable Daily Searches</span>
<label for="${curNewznabProvider.getID()}_enable_daily">
<span class="component-title">Enable daily searches</span>
<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 ""#/>
<p>enable provider to perform daily searches.</p>
</span>
</label>
</div>
@ -171,11 +178,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curNewznabProvider, 'enable_backlog'):
<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 class="clearfix" for="${curNewznabProvider.getID()}_enable_backlog">
<span class="component-title">Backlog Only</span>
<label for="${curNewznabProvider.getID()}_enable_backlog">
<span class="component-title">Enable backlog searches</span>
<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 ""#/>
<p>enable provider to perform backlog searches.</p>
</span>
</label>
</div>
@ -183,11 +190,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curNewznabProvider, 'search_fallback'):
<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 class="clearfix" for="${curNewznabProvider.getID()}_search_fallback">
<span class="component-title">Season Search Fallback</span>
<label for="${curNewznabProvider.getID()}_search_fallback">
<span class="component-title">Season search fallback</span>
<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 ""#/>
<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>
</div>
@ -195,16 +202,22 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curNewznabProvider, 'search_mode'):
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Season Search Mode</span>
<span class="component-desc2">
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.
<label>
<span class="component-title">Season search mode</span>
<span class="component-desc">
<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>
</label>
<label>
<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">
<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.
</span>
</label>
<label>
<span class="component-title"></span>
<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 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>
</div>
@ -213,22 +226,26 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
</div>
#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">
#if $hasattr($curNzbProvider, 'username'):
<div class="field-pair">
<label class="clearfix">
<span class="component-title">UserName:</span>
<input class="component-desc" type="text" name="${curNzbProvider.getID()}_username" value="$curNzbProvider.username" size="40" />
<label for="${curNzbProvider.getID()}_username">
<span class="component-title">Username:</span>
<span class="component-desc">
<input type="text" name="${curNzbProvider.getID()}_username" value="$curNzbProvider.username" class="form-control input-sm input350" />
</span>
</label>
</div>
#end if
#if $hasattr($curNzbProvider, 'api_key'):
<div class="field-pair">
<label class="clearfix">
<span class="component-title">API Key:</span>
<input class="component-desc" type="text" name="${curNzbProvider.getID()}_api_key" value="$curNzbProvider.api_key" size="40" />
<label for="${curNzbProvider.getID()}_api_key">
<span class="component-title">API key:</span>
<span class="component-desc">
<input type="text" name="${curNzbProvider.getID()}_api_key" value="$curNzbProvider.api_key" class="form-control input-sm input350" />
</span>
</label>
</div>
#end if
@ -236,11 +253,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curNzbProvider, 'enable_daily'):
<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 class="clearfix" for="${curNzbProvider.getID()}_enable_daily">
<span class="component-title">Enable Daily Searches</span>
<label for="${curNzbProvider.getID()}_enable_daily">
<span class="component-title">Enable daily searches</span>
<span class="component-desc">
Enables daily searches
<input type="checkbox" name="${curNzbProvider.getID()}_enable_daily" id="${curNzbProvider.getID()}_enable_daily" #if $curNzbProvider.enable_daily then "checked=\"checked\"" else ""#/>
<p>enable provider to perform daily searches.</p>
</span>
</label>
</div>
@ -248,11 +265,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curNzbProvider, 'enable_backlog'):
<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 class="clearfix" for="${curNzbProvider.getID()}_enable_backlog">
<span class="component-title">Enable Backlog Searches</span>
<label for="${curNzbProvider.getID()}_enable_backlog">
<span class="component-title">Enable backlog searches</span>
<span class="component-desc">
Enables backlog searches
<input type="checkbox" name="${curNzbProvider.getID()}_enable_backlog" id="${curNzbProvider.getID()}_enable_backlog" #if $curNzbProvider.enable_backlog then "checked=\"checked\"" else ""#/>
<p>enable provider to perform backlog searches.</p>
</span>
</label>
</div>
@ -260,11 +277,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curNzbProvider, 'search_fallback'):
<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 class="clearfix" for="${curNzbProvider.getID()}_search_fallback">
<span class="component-title">Season Search Fallback</span>
<label for="${curNzbProvider.getID()}_search_fallback">
<span class="component-title">Season search fallback</span>
<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 ""#/>
<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>
</div>
@ -272,16 +289,22 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curNzbProvider, 'search_mode'):
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Season Search Mode</span>
<span class="component-desc2">
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.
<label>
<span class="component-title">Season search mode</span>
<span class="component-desc">
<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>
</label>
<label>
<span class="component-title"></span>
<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-desc">
<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>
<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 />
<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>
</label>
</div>
@ -294,140 +317,126 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
<div class="providerDiv" id="${curTorrentProvider.getID()}Div">
#if $hasattr($curTorrentProvider, 'api_key'):
<div class="field-pair">
<label class="clearfix">
<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" />
<label for="${curTorrentProvider.getID()}_api_key">
<span class="component-title">Api key:</span>
<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>
</div>
#end if
#if $hasattr($curTorrentProvider, 'digest'):
<div class="field-pair">
<label class="clearfix">
<label for="${curTorrentProvider.getID()}_digest">
<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>
</div>
#end if
#if $hasattr($curTorrentProvider, 'hash'):
<div class="field-pair">
<label class="clearfix">
<label for="${curTorrentProvider.getID()}_hash">
<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>
</div>
#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'):
<div class="field-pair">
<label class="clearfix">
<label for="${curTorrentProvider.getID()}_username">
<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>
</div>
#end if
#if $hasattr($curTorrentProvider, 'password'):
<div class="field-pair">
<label class="clearfix">
<label for="${curTorrentProvider.getID()}_password">
<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>
</div>
#end if
#if $hasattr($curTorrentProvider, 'passkey'):
<div class="field-pair">
<label class="clearfix">
<label for="${curTorrentProvider.getID()}_passkey">
<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>
</div>
#end if
#if $hasattr($curTorrentProvider, 'ratio'):
<div class="field-pair">
<label class="nocheck clearfix">
<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;" />
<label for="${curTorrentProvider.getID()}_ratio">
<span class="component-title" id="${curTorrentProvider.getID()}_ratio_desc">Seed ratio:</span>
<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 class="clearfix">
<label>
<span class="component-title">&nbsp;</span>
<span class="component-desc">
Stop transfer when reaching ratio<br>
(-1 SickRage default to seed forever)<br>
(leave blank for downloader default)</span>
<p>stop transfer when ratio is reached<br>(-1 SickRage default to seed forever, or leave blank for downloader default)</p>
</span>
</label>
</div>
#end if
#if $hasattr($curTorrentProvider, 'minseed'):
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title" id="${curTorrentProvider.getID()}_minseed_desc">Min Seeders:</span>
<input type="number" name="${curTorrentProvider.getID()}_minseed" id="${curTorrentProvider.getID()}_minseed" value="$curTorrentProvider.minseed" size="40" style="margin-left: 3px !important;" />
<label for="${curTorrentProvider.getID()}_minseed">
<span class="component-title" id="${curTorrentProvider.getID()}_minseed_desc">Minimum seeders:</span>
<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>
</div>
#end if
#if $hasattr($curTorrentProvider, 'minleech'):
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title" id="${curTorrentProvider.getID()}_minleech_desc">Min Leechers:</span>
<input type="number" name="${curTorrentProvider.getID()}_minleech" id="${curTorrentProvider.getID()}_minleech" value="$curTorrentProvider.minleech" size="40" style="margin-left: 3px !important;" />
<label for="${curTorrentProvider.getID()}_minleech">
<span class="component-title" id="${curTorrentProvider.getID()}_minleech_desc">Minimum leechers:</span>
<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>
</div>
#end if
#if $hasattr($curTorrentProvider, 'proxy'):
<div class="field-pair">
<label for="${curTorrentProvider.getID()}_proxy">
<span class="component-title">Access provider via proxy</span>
<span class="component-desc">
<input type="checkbox" class="enabler" name="${curTorrentProvider.getID()}_proxy" id="${curTorrentProvider.getID()}_proxy" #if $curTorrentProvider.proxy.enabled then "checked=\"checked\"" else ""#/>
<label class="clearfix">
<span class="component-title">Access Provider via Proxy</span>
<span class="component-desc">To bypass Country Blocking Mechanism</span>
<p>to bypass country blocking mechanisms</p>
</span>
</label>
</div>
#if $hasattr($curTorrentProvider.proxy, 'url'):
<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-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():
<option value="$curTorrentProvider.proxy.urls[$i]" #if $curTorrentProvider.proxy.urls[$i] == $curTorrentProvider.proxy.url then "selected=\"selected\"" else ""#>$i</option>
#end for
@ -440,31 +449,35 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curTorrentProvider, 'confirmed'):
<div class="field-pair">
<label for="${curTorrentProvider.getID()}_confirmed">
<span class="component-title">Confirmed download</span>
<span class="component-desc">
<input type="checkbox" name="${curTorrentProvider.getID()}_confirmed" id="${curTorrentProvider.getID()}_confirmed" #if $curTorrentProvider.confirmed then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="${curTorrentProvider.getID()}_confirmed">
<span class="component-title">Confirmed Download</span>
<span class="component-desc">Download torrent only from trusted/verified uploaders?</span>
<p>only download torrents from trusted or verified uploaders ?</p>
</span>
</label>
</div>
#end if
#if $hasattr($curTorrentProvider, 'freeleech'):
<div class="field-pair">
<label for="${curTorrentProvider.getID()}_freeleech">
<span class="component-title">Freeleech</span>
<span class="component-desc">
<input type="checkbox" name="${curTorrentProvider.getID()}_freeleech" id="${curTorrentProvider.getID()}_freeleech" #if $curTorrentProvider.freeleech then "checked=\"checked\"" else ""#/>
<label class="clearfix" for="${curTorrentProvider.getID()}_freeleech">
<span class="component-title">FreeLeech</span>
<span class="component-desc">This will only download <b>[FreeLeech]</b> torrents.</span>
<p>only download <b>[FreeLeech]</b> torrents.</p>
</span>
</label>
</div>
#end if
#if $hasattr($curTorrentProvider, 'enable_daily'):
<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 class="clearfix" for="${curTorrentProvider.getID()}_enable_daily">
<span class="component-title">Enable Daily Searches</span>
<label for="${curTorrentProvider.getID()}_enable_daily">
<span class="component-title">Enable daily searches</span>
<span class="component-desc">
Enables daily searches
<input type="checkbox" name="${curTorrentProvider.getID()}_enable_daily" id="${curTorrentProvider.getID()}_enable_daily" #if $curTorrentProvider.enable_daily then "checked=\"checked\"" else ""#/>
<p>enable provider to perform daily searches.</p>
</span>
</label>
</div>
@ -472,11 +485,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curTorrentProvider, 'enable_backlog'):
<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 class="clearfix" for="${curTorrentProvider.getID()}_enable_backlog">
<span class="component-title">Enable Backlog Searches</span>
<label for="${curTorrentProvider.getID()}_enable_backlog">
<span class="component-title">Enable backlog searches</span>
<span class="component-desc">
Enables backlog searches
<input type="checkbox" name="${curTorrentProvider.getID()}_enable_backlog" id="${curTorrentProvider.getID()}_enable_backlog" #if $curTorrentProvider.enable_backlog then "checked=\"checked\"" else ""#/>
<p>enable provider to perform backlog searches.</p>
</span>
</label>
</div>
@ -484,11 +497,11 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curTorrentProvider, 'search_fallback'):
<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 class="clearfix" for="${curTorrentProvider.getID()}_search_fallback">
<span class="component-title">Season Search Fallback</span>
<label for="${curTorrentProvider.getID()}_search_fallback">
<span class="component-title">Season search fallback</span>
<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 ""#/>
<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>
</div>
@ -496,21 +509,59 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#if $hasattr($curTorrentProvider, 'search_mode'):
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Season Search Mode</span>
<span class="component-desc2">
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.
<label>
<span class="component-title">Season search mode</span>
<span class="component-desc">
<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>
</label>
<label>
<span class="component-title"></span>
<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-desc">
<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>
<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 />
<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>
</label>
</div>
#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>
#end for
@ -524,21 +575,20 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
</div><!-- /component-group2 //-->
#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">
<h3>Configure Custom<br />Newznab Providers</h3>
<p>Add and setup custom Newznab providers.</p>
<p>Some built-in Newznab providers are already available above.</p>
<p>Add and setup or remove custom Newznab providers.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label class="clearfix">
<span class="component-title jumbo">Select Provider:</span>
<label for="newznab_string">
<span class="component-title">Select provider:</span>
<span class="component-desc">
<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>
</select>
</span>
@ -547,40 +597,42 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
<div class="newznabProviderDiv" id="addNewznab">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Provider Name</span>
<input class="component-desc" type="text" id="newznab_name" size="40" />
<label for="newznab_name">
<span class="component-title">Provider name:</span>
<input type="text" id="newznab_name" class="form-control input-sm input200" />
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Site URL</span>
<input class="component-desc" type="text" id="newznab_url" size="40" />
<label for="newznab_url">
<span class="component-title">Site URL:</span>
<input type="text" id="newznab_url" class="form-control input-sm input350" />
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">API Key</span>
<input class="component-desc" type="text" id="newznab_key" size="40" />
<label for="newznab_key">
<span class="component-title">API key:</span>
<input type="text" id="newznab_key" class="form-control input-sm input350" />
</label>
<label class="nocheck clearfix">
<label>
<span class="component-title">&nbsp;</span>
<span class="component-desc">(if not required, type 0)</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">NewzNab search categories</span>
<label>
<span class="component-title">Newznab search categories:</span>
<select id="newznab_cap" multiple="multiple" style="min-width:10em;" ></select>
<select id="newznab_cat" multiple="multiple" style="min-width:10em;" ></select>
</label>
<label class="clearfix">
<label>
<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.)
Don't forget to to save the form!</span>
<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>
</label>
<label>
<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>
<input class="btn" type="button" class="newznab_cat_update" id="newznab_cat_update" value="Update Categories" />
</div>
<div id="newznab_add_div">
@ -597,21 +649,20 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
#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">
<h3>Configure Custom Torrent Providers</h3>
<p>Add and setup custom RSS providers.</p>
<p>&nbsp;</p>
<p>Add and setup or remove custom RSS providers.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<label class="clearfix">
<span class="component-title jumbo">Select Provider:</span>
<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">
<select id="editATorrentRssProvider" class="form-control input-sm">
<option value="addTorrentRss">-- add new provider --</option>
</select>
</span>
@ -620,23 +671,23 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
<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 for="torrentrss_name">
<span class="component-title">Provider name:</span>
<input type="text" id="torrentrss_name" class="form-control input-sm input200" />
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<label for="torrentrss_url">
<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>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<label for="torrentrss_cookies">
<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 class="nocheck clearfix">
<label>
<span class="component-title">&nbsp;</span>
<span class="component-desc">eg. uid=xx;pass=yy</span>
</label>
@ -658,8 +709,9 @@ var show_nzb_providers = #if $sickbeard.USE_NZBS then "true" else "false"#;
</div><!-- /config-components //-->
</form>
</div></div></div>
<div class="clearfix"></div>
</div>
</div>
<script type="text/javascript" charset="utf-8">
<!--
jQuery('#config-components').tabs();

View File

@ -1,22 +1,26 @@
#import sickbeard
#from sickbeard import clients
#set global $title="Config - Episode Search"
#set global $header="Search Options"
#set global $title = 'Config - Episode Search'
#set global $header = 'Search Settings'
#set global $sbPath="../.."
#set global $sbPath = '../..'
#set global $topmenu="config"#
#set global $topmenu = 'config'
#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/configSearch.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/config.js?$sbPID"></script>
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#end if
#set $html_selected = ' selected="selected"'
#set $html_checked = 'checked="checked" '
<div id="config">
<div id="config-content">
@ -30,36 +34,33 @@
</ul>
<div id="core-component-group1" class="component-group clearfix">
<div id="core-component-group1" class="component-group">
<div class="component-group-desc">
<h3>Episode Search</h3>
<p>Settings that dictate how and when episode searching works with <a href="$sbRoot/config/providers">Providers</a>.</p>
<p>How to manage searching with <a href="$sbRoot/config/providers">providers</a>.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<input type="checkbox" name="download_propers" id="download_propers" class="enabler" #if $sickbeard.DOWNLOAD_PROPERS == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="download_propers">
<span class="component-title">Download Propers</span>
<span class="component-desc">Replace original download with "Proper/Repack" if nuked?</span>
<label for="download_propers">
<span class="component-title">Download propers</span>
<span class="component-desc">
<input type="checkbox" name="download_propers" id="download_propers" class="enabler" <%= html_checked if sickbeard.DOWNLOAD_PROPERS == True else '' %>/>
<p>replace original download with "Proper" or "Repack" if nuked</p>
</span>
</label>
</div>
<div id="content_download_propers">
<div class="field-pair">
<label class="nocheck clearfix" for="check_propers_interval">
<span class="component-title">Check Propers Every:</span>
<label for="check_propers_interval">
<span class="component-title">Check propers every:</span>
<span class="component-desc">
<select id="check_propers_interval" name="check_propers_interval">
<select id="check_propers_interval" name="check_propers_interval" class="form-control input-sm">
#set $check_propers_interval_text = {'daily': "24 hours", '4h': "4 hours", '90m': "90 mins", '45m': "45 mins", '15m': "15 mins"}
#for $curInterval in ('daily', '4h', '90m', '45m', '15m'):
#if $sickbeard.CHECK_PROPERS_INTERVAL == $curInterval:
#set $selMode = " selected=\"selected\""
#else
#set $selMode = ""
#end if
<option value="$curInterval"$selMode>$check_propers_interval_text[$curInterval]</option>
#set $selected = $html_selected if $sickbeard.CHECK_PROPERS_INTERVAL == $curInterval else ''
<option value="$curInterval"$selected>$check_propers_interval_text[$curInterval]</option>
#end for
</select>
</span>
@ -68,138 +69,128 @@
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Backlog Search Day(s)</span>
<input type="text" name="backlog_days" value="$sickbeard.BACKLOG_DAYS" size="5" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Day(s) to search from (eg. 7)</span>
<label>
<span class="component-title">Backlog search day(s)</span>
<span class="component-desc">
<input type="text" name="backlog_days" value="$sickbeard.BACKLOG_DAYS" class="form-control input-sm input75" />
<p>number of day(s) that the search will cover (e.g. 7)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Backlog Search Frequency</span>
<input type="text" name="backlog_frequency" value="$sickbeard.BACKLOG_FREQUENCY" size="5" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Time in minutes between searches (min. $sickbeard.MIN_BACKLOG_FREQUENCY)</span>
<label>
<span class="component-title">Backlog search frequency</span>
<span class="component-desc">
<input type="text" name="backlog_frequency" value="$sickbeard.BACKLOG_FREQUENCY" class="form-control input-sm input75" />
<p>time in minutes between searches (min. $sickbeard.MIN_BACKLOG_FREQUENCY)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Daily Search Frequency</span>
<input type="text" name="dailysearch_frequency" value="$sickbeard.DAILYSEARCH_FREQUENCY" size="5" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Time in minutes between searches (min. $sickbeard.MIN_DAILYSEARCH_FREQUENCY)</span>
<label>
<span class="component-title">Daily search frequency</span>
<span class="component-desc">
<input type="text" name="dailysearch_frequency" value="$sickbeard.DAILYSEARCH_FREQUENCY" class="form-control input-sm input75" />
<p>time in minutes between searches (min. $sickbeard.MIN_DAILYSEARCH_FREQUENCY)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Usenet Retention</span>
<input type="text" name="usenet_retention" value="$sickbeard.USENET_RETENTION" size="5" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Age limit in days for usenet articles to be used. (eg. 500)</span>
<label>
<span class="component-title">Usenet retention</span>
<span class="component-desc">
<input type="text" name="usenet_retention" value="$sickbeard.USENET_RETENTION" class="form-control input-sm input75" />
<p>age limit in days for usenet articles to be used (e.g. 500)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Ignore Words</span>
<input type="text" name="ignore_words" value="$sickbeard.IGNORE_WORDS" size="45" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Comma separated words to check in episode search.</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Results containing any word in the list won't be snatched.</span>
<label>
<span class="component-title">Ignore words</span>
<span class="component-desc">
<input type="text" name="ignore_words" value="$sickbeard.IGNORE_WORDS" class="form-control input-sm input350" />
<div class="clear-left">results containing any word in the comma separated word list will be ignored</div>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">Require Words</span>
<input type="text" name="require_words" value="$sickbeard.REQUIRE_WORDS" size="45" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Comma separated words to check in episode search.</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Results not containing all words in the list won't be snatched.</span>
<label>
<span class="component-title">Require words</span>
<span class="component-desc">
<input type="text" name="require_words" value="$sickbeard.REQUIRE_WORDS" class="form-control input-sm input350" />
<div class="clear-left">results not containing all words in the comma separated word list will be ignored</div>
</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="allow_high_priority" id="allow_high_priority" #if $sickbeard.ALLOW_HIGH_PRIORITY == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="allow_high_priority">
<label for="allow_high_priority">
<span class="component-title">Allow high priority</span>
<span class="component-desc">Set high priority for downloads of recently aired episodes?</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="dailysearch_startup" id="dailysearch_startup" #if $sickbeard.DAILYSEARCH_STARTUP == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="dailysearch_startup">
<span class="component-title">Daily Search on startup</span>
<span class="component-desc">Start daily search upon startup of SickRage?</span>
</label>
</div>
<div class="field-pair">
<input type="checkbox" name="backlog_startup" id="backlog_startup" #if $sickbeard.BACKLOG_STARTUP == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="backlog_startup">
<span class="component-title">Process backlog on startup</span>
<span class="component-desc">Start processing backlogged episodes upon startup of SickRage?</span>
<span class="component-desc">
<input type="checkbox" name="allow_high_priority" id="allow_high_priority" <%= html_checked if sickbeard.ALLOW_HIGH_PRIORITY == True else '' %>/>
<p>set downloads of recently aired episodes to high priority</p>
</span>
</label>
</div>
<div class="clearfix"></div>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
<div class="field-pair">
<label for="dailysearch_startup">
<span class="component-title">Daily search on startup</span>
<span class="component-desc">
<input type="checkbox" name="dailysearch_startup" id="dailysearch_startup" <%= html_checked if sickbeard.DAILYSEARCH_STARTUP == True else '' %>/>
<p>start daily search on startup of SickRage</p>
</span>
</label>
</div>
<div class="field-pair">
<label for="backlog_startup">
<span class="component-title">Run backlog on startup</span>
<span class="component-desc">
<input type="checkbox" name="backlog_startup" id="backlog_startup" <%= html_checked if sickbeard.BACKLOG_STARTUP == True else '' %>/>
<p>start processing backlogged episodes on startup of SickRage</p>
</span>
</label>
</div>
<input type="submit" class="btn config_submitter" value="Save Changes" />
</fieldset>
</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>NZB Search</h3>
<p>Settings that dictate how SickRage handles NZB search results.</p>
<p>How to handle NZB search results.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<input type="checkbox" name="use_nzbs" class="enabler" id="use_nzbs" #if $sickbeard.USE_NZBS then "checked=\"checked\"" else ""# />
<label class="clearfix" for="use_nzbs">
<label for="use_nzbs">
<span class="component-title">Search NZBs</span>
<span class="component-desc">Should SickRage search for NZB files?</span>
<span class="component-desc">
<input type="checkbox" name="use_nzbs" class="enabler" id="use_nzbs" <%= html_checked if sickbeard.USE_NZBS else '' %>/>
<p>enable NZB search providers</p></span>
</label>
</div>
<div id="content_use_nzbs">
<div class="field-pair">
<label class="clearfix" for="nzb_method">
<span class="component-title jumbo">NZB Method:</span>
<label for="nzb_method">
<span class="component-title">Send .nzb files to:</span>
<span class="component-desc">
<select name="nzb_method" id="nzb_method">
<select name="nzb_method" id="nzb_method" class="form-control input-sm">
#set $nzb_method_text = {'blackhole': "Black hole", 'sabnzbd': "SABnzbd", 'nzbget': "NZBget"}
#for $curAction in ('sabnzbd', 'blackhole', 'nzbget'):
#if $sickbeard.NZB_METHOD == $curAction:
#set $nzb_method = "selected=\"selected\""
#else
#set $nzb_method = ""
#end if
<option value="$curAction" $nzb_method>$nzb_method_text[$curAction]</option>
#set $selected = $html_selected if $sickbeard.NZB_METHOD == $curAction else ''
<option value="$curAction"$selected>$nzb_method_text[$curAction]</option>
#end for
</select>
</span>
@ -208,212 +199,161 @@
<div id="blackhole_settings">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">NZB Black Hole</span>
<input type="text" name="nzb_dir" id="nzb_dir" value="$sickbeard.NZB_DIR" size="35" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">The directory where SickRage should store your <i>NZB</i> files.</span>
<label>
<span class="component-title">Black hole folder location</span>
<span class="component-desc">
<input type="text" name="nzb_dir" id="nzb_dir" value="$sickbeard.NZB_DIR" class="form-control input-sm input350" />
<div class="clear-left"><p><b>.nzb</b> files are stored at this location for external software to find and use</p></div>
</span>
</label>
</div>
</div>
<div id="sabnzbd_settings">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">SABnzbd URL</span>
<input type="text" id="sab_host" name="sab_host" value="$sickbeard.SAB_HOST" size="45" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">URL to your SABnzbd+ install</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">(eg. http://localhost:8000/)</span>
<label>
<span class="component-title">SABnzbd server URL</span>
<span class="component-desc">
<input type="text" id="sab_host" name="sab_host" value="$sickbeard.SAB_HOST" class="form-control input-sm input350" />
<div class="clear-left"><p>URL to your SABnzbd server (e.g. http://localhost:8080/)</p></div>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">SABnzbd Username</span>
<input type="text" name="sab_username" id="sab_username" value="$sickbeard.SAB_USERNAME" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Username of your SABnzbd+ server (blank for none)</span>
<label>
<span class="component-title">SABnzbd username</span>
<span class="component-desc">
<input type="text" name="sab_username" id="sab_username" value="$sickbeard.SAB_USERNAME" class="form-control input-sm input200" />
<p>(blank for none)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">SABnzbd Password</span>
<input type="password" name="sab_password" id="sab_password" value="$sickbeard.SAB_PASSWORD" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Password of your SABnzbd+ server (blank for none)</span>
<label>
<span class="component-title">SABnzbd password</span>
<span class="component-desc">
<input type="password" name="sab_password" id="sab_password" value="$sickbeard.SAB_PASSWORD" class="form-control input-sm input200" />
<p>(blank for none)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">SABnzbd API Key</span>
<input type="text" name="sab_apikey" id="sab_apikey" value="$sickbeard.SAB_APIKEY" size="45" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">SABnzbd+ Config -> General -> API Key.</span>
<label>
<span class="component-title">SABnzbd API key</span>
<span class="component-desc">
<input type="text" name="sab_apikey" id="sab_apikey" value="$sickbeard.SAB_APIKEY" class="form-control input-sm input350" />
<div class="clear-left"><p>locate at... SABnzbd Config -> General -> API Key</p></div>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">SABnzbd Category</span>
<input type="text" name="sab_category" id="sab_category" value="$sickbeard.SAB_CATEGORY" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Category for downloads to go into (eg. TV)</span>
<label>
<span class="component-title">Use SABnzbd category</span>
<span class="component-desc">
<input type="text" name="sab_category" id="sab_category" value="$sickbeard.SAB_CATEGORY" class="form-control input-sm input200" />
<p>add downloads to this category (e.g. TV)</p>
</span>
</label>
</div>
</div>
<div id="nzbget_settings">
<div class="field-pair">
<input id="nzbget_use_https" type="checkbox" class="enabler" name="nzbget_use_https" #if $sickbeard.NZBGET_USE_HTTPS == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="use_failed_downloads">
<span class="component-title">Use HTTPS (SSL)</span>
<span class="component-desc">Use HTTPS to connect to NZBGet?</span>
<label for="nzbget_use_https">
<span class="component-title">Connect using HTTPS</span>
<span class="component-desc">
<input id="nzbget_use_https" type="checkbox" class="enabler" name="nzbget_use_https" <%= html_checked if sickbeard.NZBGET_USE_HTTPS == True else '' %>/>
<p><b>note:</b> enable Secure control in NZBGet and set the correct Secure Port here</p>
</span>
</label>
<label class="nocheck clearfix" for="nzbget_use_https">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> You have to enable Secure control in NZBGet and set the correct Secure Port here.</span>
</div>
<div class="field-pair">
<label>
<span class="component-title">NZBget host:port</span>
<span class="component-desc">
<input type="text" name="nzbget_host" id="nzbget_host" value="$sickbeard.NZBGET_HOST" class="form-control input-sm input350" />
<p>(e.g. localhost:6789)</p>
<div class="clear-left"><p>NZBget RPC host name and port number (not NZBgetweb!)</p></div>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">NZBget HOST:PORT</span>
<input type="text" name="nzbget_host" id="nzbget_host" value="$sickbeard.NZBGET_HOST" size="45" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Hostname and portnumber of the NZBget RPC (not NZBgetweb!)</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">(eg. localhost:6789)</span>
<label>
<span class="component-title">NZBget username</span>
<span class="component-desc">
<input type="text" name="nzbget_username" value="$sickbeard.NZBGET_USERNAME" class="form-control input-sm input200" />
<p>locate in nzbget.conf (default:nzbget)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">NZBget Username</span>
<input type="text" name="nzbget_username" value="$sickbeard.NZBGET_USERNAME" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Username found in nzbget.conf (by default nzbget)</span>
<label>
<span class="component-title">NZBget password</span>
<span class="component-desc">
<input type="password" name="nzbget_password" id="nzbget_password" value="$sickbeard.NZBGET_PASSWORD" class="form-control input-sm input200" />
<p>locate in nzbget.conf (default:tegbzn6789)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">NZBget Password</span>
<input type="password" name="nzbget_password" id="nzbget_password" value="$sickbeard.NZBGET_PASSWORD" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Password found in nzbget.conf (by default tegbzn6789)</span>
<label>
<span class="component-title">Use NZBget category</span>
<span class="component-desc">
<input type="text" name="nzbget_category" id="nzbget_category" value="$sickbeard.NZBGET_CATEGORY" class="form-control input-sm input200" />
<p>send downloads marked this category (e.g. TV)</p>
</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">NZBget Category</span>
<input type="text" name="nzbget_category" id="nzbget_category" value="$sickbeard.NZBGET_CATEGORY" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Category for downloads to go into (eg. TV)</span>
</label>
</div>
#if $sickbeard.NZBGET_PRIORITY == -100:
#set $prio_verylow = 'selected="selected"'
#set $prio_low = ''
#set $prio_normal = ''
#set $prio_high = ''
#set $prio_veryhigh = ''
#set $prio_force = ''
#elif $sickbeard.NZBGET_PRIORITY == -50:
#set $prio_verylow = ''
#set $prio_low = 'selected="selected"'
#set $prio_normal = ''
#set $prio_high = ''
#set $prio_veryhigh = ''
#set $prio_force = ''
#elif $sickbeard.NZBGET_PRIORITY == 0:
#set $prio_verylow = ''
#set $prio_low = ''
#set $prio_normal = 'selected="selected"'
#set $prio_high = ''
#set $prio_veryhigh = ''
#set $prio_force = ''
#elif $sickbeard.NZBGET_PRIORITY == 50:
#set $prio_verylow = ''
#set $prio_low = ''
#set $prio_normal = ''
#set $prio_high = 'selected="selected"'
#set $prio_veryhigh = ''
#set $prio_force = ''
#elif $sickbeard.NZBGET_PRIORITY == 100:
#set $prio_verylow = ''
#set $prio_low = ''
#set $prio_normal = ''
#set $prio_high = ''
#set $prio_veryhigh = 'selected="selected"'
#set $prio_force = ''
#elif $sickbeard.NZBGET_PRIORITY == 900:
#set $prio_verylow = ''
#set $prio_low = ''
#set $prio_normal = ''
#set $prio_high = ''
#set $prio_veryhigh = ''
#set $prio_force = 'selected="selected"'
#set $prio_force = ''
#if -100 == $sickbeard.NZBGET_PRIORITY:
#set $prio_verylow = $html_selected
#elif -50 == $sickbeard.NZBGET_PRIORITY:
#set $prio_low = $html_selected
#elif 0 == $sickbeard.NZBGET_PRIORITY:
#set $prio_normal = $html_selected
#elif 50 == $sickbeard.NZBGET_PRIORITY:
#set $prio_high = $html_selected
#elif 100 == $sickbeard.NZBGET_PRIORITY:
#set $prio_veryhigh = $html_selected
#elif 900 == $sickbeard.NZBGET_PRIORITY:
#set $prio_force = $html_selected
#else:
#set $prio_verylow = ''
#set $prio_low = ''
#set $prio_normal = 'selected="selected"'
#set $prio_high = ''
#set $prio_veryhigh = ''
#set $prio_force = ''
#set $prio_normal = $html_selected
#end if
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">NZBget Priority</span>
<select name="nzbget_priority" id="nzbget_priority">
<option value="-100" ${prio_verylow}>Very Low</option>
<label>
<span class="component-title">NZBget priority</span>
<span class="component-desc">
<select name="nzbget_priority" id="nzbget_priority" class="form-control input-sm">
<option value="-100"${prio_verylow}>Very low</option>
<option value="-50"${prio_low}>Low</option>
<option value="0"${prio_normal}>Normal</option>
<option value="50"${prio_high}>High</option>
<option value="100" ${prio_veryhigh}>Very High</option>
<option value="100"${prio_veryhigh}>Very high</option>
<option value="900"${prio_force}>Force</option>
</select>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Priority for daily snatches (no backlog)</span>
<span>priority for daily snatches (no backlog)</span>
</span>
</label>
</div>
</div>
<div class="clearfix"></div>
<div class="testNotification" id="testSABnzbd-result">Click below to test.</div>
<div class="testNotification" id="testSABnzbd_result">Click below to test</div>
<input class="btn" type="button" value="Test SABnzbd" id="testSABnzbd" class="btn test-button"/>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
@ -422,201 +362,180 @@
</fieldset>
</div><!-- /component-group2 //-->
<div id="core-component-group3" class="component-group clearfix">
<div id="core-component-group3" class="component-group">
<div class="component-group-desc">
<h3>Torrent Search</h3>
<p>Settings that dictate how SickRage handles Torrent search results.</p>
<p>How to handle Torrent search results.</p>
</div>
<fieldset class="component-group-list">
<div class="field-pair">
<input type="checkbox" name="use_torrents" class="enabler" id="use_torrents" #if $sickbeard.USE_TORRENTS == True then "checked=\"checked\"" else ""# />
<label class="clearfix" for="use_torrents">
<span class="component-title">Search Torrents</span>
<span class="component-desc">Should SickRage search for torrent files?</span>
<label for="use_torrents">
<span class="component-title">Search torrents</span>
<span class="component-desc">
<input type="checkbox" name="use_torrents" class="enabler" id="use_torrents" <%= html_checked if sickbeard.USE_TORRENTS == True else '' %>/>
<p>enable torrent search providers</p>
</span>
</label>
</div>
<div id="content_use_torrents">
<div class="field-pair">
<label class="clearfix" for="torrent_method">
<span class="component-title jumbo">TORRENT Method</span>
<label for="torrent_method">
<span class="component-title">Send .torrent files to:</span>
<span class="component-desc">
<select name="torrent_method" id="torrent_method">
<select name="torrent_method" id="torrent_method" class="form-control input-sm">
#set $torrent_method_text = {'blackhole': "Black hole", 'utorrent': "uTorrent", 'transmission': "Transmission", 'deluge': "Deluge", 'download_station': "Synology DS", 'rtorrent': "rTorrent"}
#for $curAction in ('blackhole', 'utorrent', 'transmission', 'deluge', 'download_station', 'rtorrent'):
#if $sickbeard.TORRENT_METHOD == $curAction:
#set $torrent_method = "selected=\"selected\""
#else
#set $torrent_method = ""
#end if
<option value="$curAction" $torrent_method>$torrent_method_text[$curAction]</option>
#set $selected = $html_selected if $sickbeard.TORRENT_METHOD == $curAction else ''
<option value="$curAction"$selected>$torrent_method_text[$curAction]</option>
#end for
</select>
</label>
<div id="t_blackhole_settings">
<div id="options_torrent_blackhole">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title">TORRENT Black Hole</span>
<input type="text" name="torrent_dir" id="torrent_dir" value="$sickbeard.TORRENT_DIR" size="35" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">The directory where SickRage should store your <i>Torrent</i> files.</span>
<label>
<span class="component-title">Black hole folder location</span>
<span class="component-desc">
<input type="text" name="torrent_dir" id="torrent_dir" value="$sickbeard.TORRENT_DIR" class="form-control input-sm input350" />
<div class="clear-left"><p><b>.torrent</b> files are stored at this location for external software to find and use</p></div>
</span>
</label>
</div>
<div class="clearfix"></div>
<div></div>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</div>
</div>
<div id="options_torrent_clients">
<div class="field-pair">
<label>
<span class="component-title" id="host_title">Torrent host:port</span>
<span class="component-desc">
<input type="text" name="torrent_host" id="torrent_host" value="$sickbeard.TORRENT_HOST" class="form-control input-sm input350" />
<div class="clear-left">
<p id="host_desc_torrent">URL to your torrent client (e.g. http://localhost:8000/)</p>
<p id="host_desc_rtorrent" style="display:none"><b>Note:</b> <i>rTorrent</i> client URLs use e.g. scgi://localhost:5000/</p>
</div>
</span>
</label>
</div>
<div class="field-pair" id="torrent_verify_cert_option">
<label for="torrent_verify_cert">
<span class="component-title">Verify certificate</span>
<span class="component-desc">
<input type="checkbox" name="torrent_verify_cert" class="enabler" id="torrent_verify_cert" <%= html_checked if sickbeard.TORRENT_VERIFY_CERT == True else '' %>/>
<p>disable if you get "Deluge: Authentication Error" in your log</p>
</span>
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title" id="username_title">Client username</span>
<span class="component-desc">
<input type="text" name="torrent_username" id="torrent_username" value="$sickbeard.TORRENT_USERNAME" class="form-control input-sm input200" />
<p>(blank for none)</p>
</span>
</label>
</div>
<div class="field-pair">
<label>
<span class="component-title" id="password_title">Client password</span>
<span class="component-desc">
<input type="password" name="torrent_password" id="torrent_password" value="$sickbeard.TORRENT_PASSWORD" class="form-control input-sm input200" />
<p>(blank for none)</p>
</span>
</label>
</div>
<div class="field-pair" id="torrent_label_option">
<label>
<span class="component-title">Add label to torrent</span>
<span class="component-desc">
<input type="text" name="torrent_label" id="torrent_label" value="$sickbeard.TORRENT_LABEL" class="form-control input-sm input200" />
<span id="label_warning_deluge" style="display:none"><p>(blank spaces are not allowed)</p>
<div class="clear-left"><p>note: label plugin must be enabled in Deluge clients</p></div>
</span>
</span>
</label>
</div>
<div class="field-pair" id="torrent_path_option">
<label>
<span class="component-title" id="directory_title">Downloaded files location</span>
<span class="component-desc">
<input type="text" name="torrent_path" id="torrent_path" value="$sickbeard.TORRENT_PATH" class="form-control input-sm input350" />
<div class="clear-left"><p>where <span id="torrent_client">the torrent client</span> will save downloaded files (blank for client default)
<span id="path_synology"> <b>note:</b> the destination has to be a shared folder for Synology DS</span></p>
</div>
</span>
</label>
</div>
<div class="field-pair" id="torrent_seed_time_option">
<label>
<span class="component-title">Minimum seeding time is</span>
<span class="component-desc"><input type="number" step="0.1" name="torrent_seed_time" id="torrent_seed_time" value="$sickbeard.TORRENT_SEED_TIME" class="form-control input-sm input100" />
<p>hours. (default:'0' passes blank to client and '-1' passes nothing)</p></span>
</label>
</div>
<div class="field-pair" id="torrent_paused_option">
<label>
<span class="component-title">Start torrent paused</span>
<span class="component-desc">
<input type="checkbox" name="torrent_paused" class="enabler" id="torrent_paused" <%= html_checked if sickbeard.TORRENT_PAUSED == True else '' %>/>
<p>add .torrent to client but do <b style="font-weight:900">not</b> start downloading</p>
</span>
</label>
</div>
<div class="field-pair" id="torrent_high_bandwidth_option">
<label>
<span class="component-title">Allow high bandwidth</span>
<span class="component-desc">
<input type="checkbox" name="torrent_high_bandwidth" class="enabler" id="torrent_high_bandwidth" <%= html_checked if sickbeard.TORRENT_HIGH_BANDWIDTH == True else '' %>/>
<p>use high bandwidth allocation if priority is high</p>
</span>
</label>
</div>
<div class="testNotification" id="test_torrent_result">Click below to test</div>
<input class="btn" type="button" value="Test Connection" id="test_torrent" class="btn test-button"/>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</div>
</div><!-- /content_use_torrents //-->
</div>
<div id="torrent_settings">
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title" id="host_desc">Torrent HOST</span>
<input type="text" name="torrent_host" id="torrent_host" value="$sickbeard.TORRENT_HOST" size="45" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">URL to your Torrent Client (eg. http://localhost:8000/)</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>Note:</b> <i>rTorrent</i> users need to use scgi://localhost:5000/</span>
</label>
</div>
<div class="field-pair" id="Torrent_Verify_Cert">
<input type="checkbox" name="torrent_verify_cert" class="enabler" id="torrent_verify_cert" #if $sickbeard.TORRENT_VERIFY_CERT == True then "checked=\"checked\"" else ""# />
<label class="nocheck clearfix" for="torrent_verify_cert">
<span class="component-title" id="torrent_verify_cert_desc">Verify Certificate</span>
<span class="component-desc">Disable if you get "Deluge: Authentication Error" in your log</span>
</label>
</div>
<div class="field-pair" id="Torrent_username">
<label class="nocheck clearfix">
<span class="component-title" id="username_desc">Torrent Username</span>
<input type="text" name="torrent_username" id="torrent_username" value="$sickbeard.TORRENT_USERNAME" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Username of your Torrent Client (blank for none)</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<span class="component-title" id="password_desc">Torrent Password</span>
<input type="password" name="torrent_password" id="torrent_password" value="$sickbeard.TORRENT_PASSWORD" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Password of your Torrent Client (blank for none)</span>
</label>
</div>
<div class="field-pair" id="Torrent_Label">
<label class="nocheck clearfix">
<span class="component-title" id="label_desc">Torrent Label</span>
<input type="text" name="torrent_label" id="torrent_label" value="$sickbeard.TORRENT_LABEL" size="20" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Add a specific label to Torrent</span>
</label>
<label class="nocheck clearfix" id="label_warning">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>Note:</b> Adds specific warning to Torrent label</span>
</label>
</div>
<div class="field-pair" id="Torrent_Path">
<label class="nocheck clearfix">
<span class="component-title" id="directory_desc">Torrent Directory</span>
<input type="text" name="torrent_path" id="torrent_path" value="$sickbeard.TORRENT_PATH" size="35" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Where should it save the downloaded files? (blank for default)</span>
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>Note:</b> For Synology DS the destination has to be a shared folder</span>
</label>
</div>
<div class="field-pair" id="Torrent_Seed_Time">
<label class="nocheck clearfix">
<span class="component-title" id="torrent_seed_time_desc">Seed Time</span>
<input type="number" step="0.1" name="torrent_seed_time" id="torrent_seed_time" value="$sickbeard.TORRENT_SEED_TIME" size="2" />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Duration (in hours) to seed for<br>
(SickRage default '0' passes blank to downloader; '-1' does not set Seed Time)</span>
</label>
</div>
<div class="field-pair" id="Torrent_Paused">
<label class="nocheck clearfix">
<span class="component-title" id="torrent_paused_desc">Start Torrent Paused</span>
<input type="checkbox" name="torrent_paused" class="enabler" id="torrent_paused" #if $sickbeard.TORRENT_PAUSED == True then "checked=\"checked\"" else ""# />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Don't start downloading when torrent is added?</span>
</label>
</div>
<div class="field-pair" id="Torrent_High_Bandwidth">
<label class="nocheck clearfix">
<span class="component-title" id="torrent_high_bandwidth_desc">Allow high bandwidth</span>
<input type="checkbox" name="torrent_high_bandwidth" class="enabler" id="torrent_high_bandwidth" #if $sickbeard.TORRENT_HIGH_BANDWIDTH == True then "checked=\"checked\"" else ""# />
</label>
<label class="nocheck clearfix">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Use high bandwidth allocation on torrent if priority is high (recently aired episode if enabled)?</span>
</label>
</div>
<div class="testNotification" id="testTorrent-result">Click below to test.</div>
<input class="btn" type="button" value="Test Connection" id="testTorrent" class="btn test-button"/>
<input type="submit" class="btn config_submitter" value="Save Changes" /><br/>
</div>
</div>
</fieldset>
</div><!-- /component-group3 //-->
<!--<div class="title-group clearfix" id="no-torrents">
<div class="ui-corner-all config_message">Note: SickRage works better with Usenet than with Torrents, <a href="http://www.sickbeard.com/usenet.html" target="_blank">here's why</a>.</div>
</div> //-->
<br/>
<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/>
<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" />
</div><!-- /config-components //-->
</form>
</div>
</div>
</div></div></div>
<div class="clearfix"></div>
<div></div>
<script type="text/javascript" charset="utf-8">
<!--
jQuery('#config-components').tabs();
jQuery('#nzb_dir').fileBrowser({ title: 'Select NZB Black Hole/Watch Directory' });
jQuery('#torrent_dir').fileBrowser({ title: 'Select Torrent Black Hole/Watch Directory' });
jQuery('#torrent_path').fileBrowser({ title: 'Select Torrent Download Directory' });
jQuery('#tv_download_dir').fileBrowser({ title: 'Select TV Download Directory' });
jQuery('#nzb_dir').fileBrowser({ title: 'Select .nzb black hole/watch location' });
jQuery('#torrent_dir').fileBrowser({ title: 'Select .torrent black hole/watch location' });
jQuery('#torrent_path').fileBrowser({ title: 'Select .torrent download location' });
jQuery('#tv_download_dir').fileBrowser({ title: 'Select TV download location' });
//-->
</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,5 +1,6 @@
#from sickbeard import subtitles
#import sickbeard
#from sickbeard.helpers import anon_url
#set global $title="Config - 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/config.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">
\$(document).ready(function() {
@ -36,7 +36,7 @@
);
});
</script>
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
@ -54,7 +54,7 @@
<li><a href="#core-component-group2">Subtitles Plugin</a></li>
</ul>
<div id="core-component-group4" class="component-group clearfix">
<div id="core-component-group4" class="component-group">
<div class="component-group-desc">
<h3>Subtitles Search</h3>
@ -70,31 +70,31 @@
</div>
<div id="content_use_subtitles">
<div class="field-pair">
<label class="nocheck clearfix">
<label class="nocheck">
<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>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<label class="nocheck">
<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 class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">The directory where SickRage should store your <i>Subtitles</i> files.</span>
</label>
<label class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc"><b>NOTE:</b> Leave empty if you want store subtitle in episode path.</span>
</label>
</div>
<div class="field-pair">
<label class="nocheck clearfix">
<label class="nocheck">
<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 class="nocheck clearfix">
<label class="nocheck">
<span class="component-title">&nbsp;</span>
<span class="component-desc">Time in hours between scans (hours. 1)</span>
</label>
@ -111,7 +111,7 @@
</fieldset>
</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>Subtitle Plugins</h3>
@ -126,7 +126,8 @@
#set $curName = $curService.id
<li class="ui-state-default" id="$curName">
<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;"/>
</a>
<span style="vertical-align:middle;">$curService.name.capitalize()</span>
@ -146,7 +147,9 @@
</div><!-- /config-components //-->
</form>
</div></div></div>
</div>
</div>
<div class="clearfix"></div>
<script type="text/javascript" charset="utf-8">
<!--

View File

@ -2,9 +2,11 @@
#from sickbeard import subtitles, sbdatetime, network_timezones
#import sickbeard.helpers
#from sickbeard.common import *
#from sickbeard.helpers import anon_url
#from lib import subliminal
#import os.path, os
#import datetime
#set global $title=$show.name
##set global $header = '<a></a>' %
#set global $topmenu="manageShows"#
@ -15,10 +17,6 @@
<script type="text/javascript" src="$sbRoot/js/jwplayer/jwplayer.js"></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" />
<script type="text/javascript" src="$sbRoot/js/displayShow.js?$sbPID"></script>
@ -60,14 +58,11 @@
});
//-->
</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">
<div class="pull-left form-inline">
Change Show:
<div class="navShow"><img id="prevShow" src="$sbRoot/images/prev.png" alt="&lt;&lt;" title="Prev Show" /></div>
<select id="pickShow" class="form-control form-control-inline input-sm">
#for $curShowList in $sortedShowLists:
#set $curShowType = $curShowList[0]
#set $curShowList = $curShowList[1]
@ -83,66 +78,16 @@
#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="middle"><div class="navShow"><img id="nextShow" src="$sbRoot/images/next.png" alt="&gt;&gt;" title="Next Show" /></div></div>
</div></div></div>
<div id="posterCol">
<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 class="clearfix"></div>
<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 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:
##There is a special/season_0?##
#if int($seasonResults[-1]["season"]) == 0:
@ -155,10 +100,21 @@
$seasonResults.pop(-1)
#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>
#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>
#for $seasonNum in $seasonResults:
<option value="#season-$seasonNum["season"]">#if int($seasonNum["season"]) == 0 then "Specials" else "Season " + str($seasonNum["season"])#</option>
@ -179,22 +135,69 @@
#end if
</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
</div>
</div>
<div class="showsummary">
<table style="width:73%; float: left;">
<div class="clearfix"></div>
#if $show_message:
<div class="alert alert-info">
$show_message
</div>
#end if
<div id="container">
<div id="posterCol">
<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>
</div>
<div id="showCol">
<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
#set $_show = $show
#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="<%= 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:
@ -243,7 +246,7 @@
</table>
<table style="width:27%; float: right; vertical-align: middle; height: 100%;">
<table style="width:180px; 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>
@ -260,14 +263,15 @@
#end if
</table>
</div>
</div>
</div>
<div style="clear:both;" class="clearfix"></div>
<div class="clearfix"></div>
<div style="height:40px;line-height:40px;">
<div class="float-left" style="display:inline-block; vertical-align:baseline;">
<div class="pull-left" style="padding-bottom: 10px;">
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):
#if $curStatus == $DOWNLOADED:
#continue
@ -277,26 +281,27 @@
</select>
<input type="hidden" id="showID" value="$show.indexerid" />
<input type="hidden" id="indexer" value="$show.indexer" />
<input class="btn" type="button" id="changeStatus" value="Go" />
</div>
<input class="btn btn-inline" type="button" id="changeStatus" value="Go" />
</div>
<div id="checkboxControls" style="display:inline-block; vertical-align:baseline;">
Filters: <label for="wanted"><span class="wanted"><input type="checkbox" id="wanted" checked="checked" /> Wanted: <b>$epCounts[$Overview.WANTED]</b></span></label>
<div class="pull-right clearfix" id="checkboxControls">
<div style="padding-bottom: 5px;">
<label for="wanted"><span class="wanted"><input type="checkbox" id="wanted" checked="checked" /> Wanted: <b>$epCounts[$Overview.WANTED]</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="good"><span class="good"><input type="checkbox" id="good" checked="checked" /> Downloaded: <b>$epCounts[$Overview.GOOD]</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="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>
<button class="btn btn-mini clearAll" style="line-height: 10px;">Clear All</button>
<div class="pull-right" >
<button class="btn btn-xs seriesCheck">Select Filtered Episodes</button>
<button class="btn btn-xs clearAll">Clear All</button>
</div>
</div>
<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 $odd = 0
@ -346,11 +351,8 @@
#end if
#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 class="seasonheader" id="season-$epResult["season"]" >
<td colspan="13">
<h2>#if int($epResult["season"]) == 0 then "Specials" else "Season "+str($epResult["season"])#</h2>
</td>
<tr>
<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>
</tr>
<tr id="season-$epResult["season"]-cols" class="seasoncols">
@ -370,13 +372,13 @@
#if $scene_anime:
<th class="col-ep">Scene Absolute</th>
#end if
<th>Name</th>
<th class="col-name">Name</th>
<th class="col-airdate">Airdate</th>
#if $sickbeard.USE_SUBTITLES and $show.subtitles:
<th class="col-subtitles">Subtitles</th>
#end if
<th>Status</th>
<th>Search</th>
<th class="col-status">Status</th>
<th class="col-search">Search</th>
</tr>
#set $curSeason = int($epResult["season"])
#end if
@ -385,7 +387,7 @@
<tr class="$Overview.overviewStrings[$epCats[$epStr]] season-$curSeason seasonstyle">
<td class="col-checkbox check">
<td class="col-checkbox">
#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"]) %>" />
@ -429,7 +431,7 @@
#if $scene:
<td align="center">
<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"])%>"
title="Change the value here if scene numbering differs from the indexer episode numbering"
#if $dfltEpNumbering:
@ -442,7 +444,7 @@
#elif $scene_anime:
<td align="center">
<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"])%>"
title="Change the value here if scene absolute numbering differs from the indexer absolute numbering"
#if $dfltAbsNumbering:
@ -454,7 +456,7 @@
</td>
#end if
<td class="title">
<td class="col-name">
#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"])%>" />
#else:
@ -463,12 +465,12 @@
$epResult["name"]
</td>
<td align="center" class="nowrap">
<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>
<td class="col-airdate">
<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>
#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"]:
#for $sub_lang in subliminal.language.language_list($epResult["subtitles"].split(',')):
#if sub_lang.alpha2 != ""
@ -481,12 +483,12 @@
#set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($epResult["status"]))
#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:
<td class="status_column">$statusStrings[$curStatus]</td>
<td class="col-status">$statusStrings[$curStatus]</td>
#end if
<td class="search">
<td class="col-search">
#if int($epResult["season"]) != 0:
#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>

View File

@ -13,14 +13,14 @@
#import os.path
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#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" charset="utf-8">
<!--
@ -59,10 +59,11 @@
//-->
</script>
<br>
<form action="editShow" method="post">
<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 />
<b>Quality:</b>
#set $qualities = $common.Quality.splitQuality(int($show.quality))
@ -73,25 +74,25 @@
#if $anyQualities + $bestQualities
<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)
<br />
<br />
#end if
<b>Scene Exception:</b>
<input type="text" id="SceneName">
<input class="btn" type="button" value="Add" id="addSceneName"><br />
<input type="text" id="SceneName" class="form-control form-control-inline input-sm input200">
<input class="btn btn-inline" type="button" value="Add" id="addSceneName"><br />
<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 />
This list overrides the original name, it doesn't append to it.<br />
</p>
</div>
<div class="float-left" style="text-align:center;">
<div class="pull-left" style="text-align:center;">
<h4>Exceptions List</h4>
<select id="exceptions_list" name="exceptions_list" multiple="multiple" style="min-width:10em;" >
#for $cur_exception in $show.exceptions:
@ -104,9 +105,10 @@
<br />
</div>
</div>
<div class="clearfix"></div>
<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 />
This <b>DOES NOT</b> allow SickRage to download non-english TV episodes!<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)
<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 />
Separate words with a comma, e.g. "word1,word2,word3"
<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 />
Separate words with a comma, e.g. "word1,word2,word3"
<br /><br />
@ -268,5 +270,5 @@ Separate words with a comma, e.g. "word1,word2,word3"
//-->
</script>
</div></div>
</div>
#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl")

View File

@ -86,21 +86,23 @@
#else
<h1 class="title">$title</h1>
#end if
<div class="h2footer align-right"><b>Limit:</b>
<select name="limit" id="limit">
<div class="h2footer pull-right"><b>Limit:</b>
<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="250" #if $limit == "250" then "selected=\"selected\"" else ""#>250</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>
</select>
</div>
<div id="HistoryLayout" style="float: right; margin-top: 2px;">
<span><b>Layout:</b>
<a class="inner" href="$sbRoot/setHistoryLayout/?layout=compact">Compact</a> &middot;
<a class="inner" href="$sbRoot/setHistoryLayout/?layout=detailed">Detailed</a>
<span> Layout:
<select name="HistoryLayout" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;">
<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>
</div>
<br>
#if $layout == "detailed"
<table id="historyTable" class="sickbeardTable tablesorter" cellspacing="1" border="0" cellpadding="0">
@ -125,8 +127,8 @@
#set $curStatus, $curQuality = $Quality.splitCompositeStatus(int($hItem["action"]))
<tr>
#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 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 align="center"><div class="${fuzzydate}">$sbdatetime.sbdatetime.sbfdatetime($curdatetime, show_seconds=True)</div><span class="sort_data">$time.mktime($curdatetime.timetuple())</span></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 ''#>
#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'%>">
@ -186,9 +188,9 @@
#for $hItem in $compactResults:
<tr>
#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 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>
<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 class="tvShow" width="25%">
<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 align="center" provider="<%=str(sorted(hItem["actions"])[0]["provider"])%>">
#for $action in sorted($hItem["actions"]):

View File

@ -45,77 +45,7 @@
#set $max_download_count = $max_download_count * 100
<style type="text/css">
.sort_data {display:none}
</style>
<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({
@ -136,57 +66,13 @@ function invertSort(){
type: 'text'
});
\$.tablesorter.addParser({
id: 'cDate',
is: function(s) {
return false;
},
format: function(s) {
return s;
},
type: 'numeric'
});
\$.tablesorter.addParser({
id: 'quality',
is: function(s) {
return false;
},
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);
},
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;
return s.replace('hd1080p',5).replace('hd720p',4).replace('hd',3).replace('sd',2).replace('any',1).replace('custom',7);
},
type: 'numeric'
});
@ -199,51 +85,55 @@ function invertSort(){
});
\$("#showListTableShows:has(tbody tr)").tablesorter({
sortList: [[6,1],[1,0]],
sortList: [[5,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(); },
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'],
widgets: ['saveSort', 'zebra', 'stickyHeaders', 'filter'],
headers: {
0: { sorter: 'cDate' },
0: { sorter: 'isoDate' },
1: { sorter: 'loadingNames' },
2: { sorter: 'network' },
3: { sorter: 'quality' },
4: { sorter: 'eps' },
5: { sorter: 'active' },
6: { sorter: 'status' },
}
4: { sorter: 'eps' }
},
widgetOptions : {
filter_columnFilters: false,
filter_reset: '.resetshows'
},
sortStable: true
});
\$("#showListTableAnime:has(tbody tr)").tablesorter({
sortList: [[6,1],[1,0]],
sortList: [[5,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(); },
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'],
widgets: ['saveSort', 'zebra', 'stickyHeaders', 'filter'],
headers: {
0: { sorter: 'cDate' },
0: { sorter: 'isoDate' },
1: { sorter: 'loadingNames' },
2: { sorter: 'network' },
3: { sorter: 'quality' },
4: { sorter: 'eps' },
5: { sorter: 'active' },
6: { sorter: 'status' },
}
4: { sorter: 'eps' }
},
widgetOptions : {
filter_columnFilters: false,
filter_reset: '.resetanime'
},
sortStable: true
});
\$.tablesorter.filter.bindSearch( "#showListTableShows", \$('.search') );
#if $sickbeard.ANIME_SPLIT_HOME:
\$.tablesorter.filter.bindSearch( "#showListTableAnime", \$('.search') );
#end if
#set $fuzzydate = 'airdate'
#if $sickbeard.FUZZY_DATING:
fuzzyMoment({
@ -256,6 +146,55 @@ function invertSort(){
});
#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>
#end if
<div id="HomeLayout" style="float: right; margin-top: -25px;">
<div id="HomeLayout" class="pull-right" style="margin-top: -40px;">
<span> Layout:
<a class="inner" href="$sbRoot/setHomeLayout/?layout=poster">Poster</a> &middot;
<a class="inner" href="$sbRoot/setHomeLayout/?layout=small">Small Poster</a> &middot;
<a class="inner" href="$sbRoot/setHomeLayout/?layout=banner">Banner</a> &middot;
<a class="inner" href="$sbRoot/setHomeLayout/?layout=simple">Simple</a>
<select name="layout" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;">
<option value="$sbRoot/setHomeLayout/?layout=poster" #if $sickbeard.HOME_LAYOUT == "poster" then "selected=\"selected\"" else ""#>Poster</option>
<option value="$sbRoot/setHomeLayout/?layout=small" #if $sickbeard.HOME_LAYOUT == "small" then "selected=\"selected\"" else ""#>Small Poster</option>
<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>
#if $layout == 'poster':
<ul id="sort-by" class="option-set" data-option-key="sortBy">
Sort By:
<li><a href="#sortBy=name" data-option-value="name">Name</a></li> &middot;
<li><a href="#sortBy=date" data-option-value="date">Next Episode</a></li> &middot;
<li><a href="#sortBy=network" data-option-value="network">Network</a></li> &middot;
<li><a href="#sortBy=progress" data-option-value="progress">Progress</a></li> &middot;
</ul>
&nbsp;<a style="display: inline-block; float: right;" class="clearfix" href="javascript:invertSort();">Flip</a>
&nbsp;
<span> Sort By:
<select id="postersort" class="form-control form-control-inline input-sm">
<option value="name" data-sort="$sbRoot/setPosterSortBy/?sort=name" #if $sickbeard.POSTER_SORTBY == "name" then "selected=\"selected\"" else ""#>Name</option>
<option value="date" data-sort="$sbRoot/setPosterSortBy/?sort=date" #if $sickbeard.POSTER_SORTBY == "date" then "selected=\"selected\"" else ""#>Next Episode</option>
<option value="network" data-sort="$sbRoot/setPosterSortBy/?sort=network" #if $sickbeard.POSTER_SORTBY == "network" then "selected=\"selected\"" else ""#>Network</option>
<option value="progress" data-sort="$sbRoot/setPosterSortBy/?sort=progress" #if $sickbeard.POSTER_SORTBY == "progress" then "selected=\"selected\"" else ""#>Progress</option>
</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
</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:
#set $curListType = $curShowlist[0]
#set $myShowList = $list($curShowlist[1])
@ -296,7 +253,7 @@ function invertSort(){
#if $layout == 'poster':
<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:
#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_total = 0
#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:
#set $cur_airs_next = $show_stat[$curShow.indexerid]['ep_airs_next']
@ -365,27 +327,23 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
#set $progressbar_percent = $nom * 100 / $den
#if "a" in sickbeard.DATE_PRESET:
#set $showheight = "334px"
#set $tableheight = "52px"
#else if "B" in sickbeard.DATE_PRESET:
#set $showheight = "374px"
#set $tableheight = "92px"
#else if "A" in sickbeard.DATE_PRESET:
#set $showheight = "334px"
#set $tableheight = "52px"
#else
#set $showheight = "323px"
#set $tableheight = "42px"
#set $data_date = '6000000000.0'
#if $cur_airs_next:
#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 None is not $display_status
#if 'nded' not in $display_status and 1 == int($curShow.paused)
#set $data_date = '5000000500.0'
#else if 'ontinu' in $display_status
#set $data_date = '5000000000.0'
#else if 'nded' in $display_status
#set $data_date = '5000000100.0'
#end if
<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">
#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-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>
<div class="show-image-slide">
<p>$curShow.name</p>
</div>
</div>
<div id="progressbar$curShow.indexerid"></div>
<script type="text/javascript">
<!--
@ -410,65 +368,86 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
//-->
</script>
<table width="184px" height="$tableheight" cellspacing="1" border="0" cellpadding="0" style="padding-left: 2px; cursor: default;">
<col width="120px" />
<col width="59px" />
<div class="show-title">
$curShow.name
</div>
<tr>
<td style="text-align:center; vertical-align:middle;" colspan="3">
<div class="show-date">
#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>
#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
<div class="show-status">?</div>
#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
</td>
</tr>
#end if
$output_html
#end if
</div>
<table width="100%" cellspacing="1" border="0" cellpadding="0">
<tr>
<td style="text-align:center; vertical-align:middle;">
<td class="show-table">
<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 style="text-align:center; vertical-align:middle;">
<td class="show-table">
#if $layout != 'simple':
#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:
<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
#else:
$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
</td>
</tr>
</table>
</div>
#end for
</div>
</div>
#else
<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>
<tr>
<th class="nowrap">Next Ep</th>
<th>Show</th>
<th>Network</th>
<th>Quality</th>
<th>Downloads</th>
<th>Active</th>
<th>Status</th>
</tr>
</thead>
<tfoot>
<tr>
<th rowspan="1" colspan="1" align="center"><a href="$sbRoot/home/addShows/">&nbsp Add Show</a></th>
<th rowspan="1" colspan="7"></th>
<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:
@ -545,14 +524,16 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
#set $progressbar_percent = $nom * 100 / $den
<tr>
#if $cur_airs_next
#set $ldatetime = $network_timezones.parse_date_time($cur_airs_next,$curShow.airs,$curShow.network)
#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:
<td align="center" class="nowrap"></td>
#end if
#if $layout == 'small':
<td>
<td class="tvShow">
<div class="imgsmallposter $layout">
<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"/>
@ -571,25 +552,28 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
#else if $layout == 'simple':
<td class="tvShow"><a href="$sbRoot/home/displayShow?show=$curShow.indexerid">$curShow.name</a></td>
#end if
<!--<td align="center">$curShow.network</td>//-->
<td align="center">
#if $layout != 'simple':
<td align="center">
#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" />
#else:
<img id="network" width="54" height="27" src="$sbRoot/images/network/nonetwork.png" alt="No Network" title="No Network" />
#end if
#else:
$curShow.network
#end if
</td>
#else:
<td>
$curShow.network
</td>
#end if
#if $curShow.quality in $qualityPresets:
<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;">$download_stat</span><div id="progressbar$curShow.indexerid" style="position:relative;"></div>
<td align="center"><span style="display: none;">$progressbar_percent</span><div id="progressbar$curShow.indexerid" style="position:relative;"></div>
<script type="text/javascript">
<!--
\$(function() {
@ -614,13 +598,25 @@ $myShowList.sort(lambda x, y: cmp(x.name, y.name))
//-->
</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>
<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:
$curShow.status
#end if
</td>
</tr>
#end for
</tbody>
</table>
#end if
#end for

View File

@ -11,8 +11,6 @@
#import os.path
#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/addExistingShow.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/rootDirs.js?$sbPID"></script>
@ -29,44 +27,57 @@
//-->
</script>
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#end if
<div id="summary2" class="align-left">
<div id="newShowPortal">
<div id="config-components">
<ul>
<li><a href="#core-component-group1">Add Existing Show</a></li>
</ul>
<div id="core-component-group1" class="tab-pane active component-group">
<form id="addShowForm" method="post" action="$sbRoot/home/addShows/addNewShow" accept-charset="utf-8">
<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">
<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">
<div id="tabs-2" class="existingtabs">
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_addShowOptions.tmpl")
</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 />
<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>
<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 />
<p><input type="checkbox" name="promptForSettings" id="promptForSettings" /> <label for="promptForSettings">Prompt me to set settings for each show</label></p>
<hr />
<br />
<h4>Displaying folders within these directories which aren't already added to SickRage:</h4>
<br />
<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" />
</div></div>
</form>
</div>
</div>
</div>
#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl")

View File

@ -11,28 +11,28 @@
#import os.path
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_top.tmpl")
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#end if
<div id="addShowPortal" class="clearfix">
<div id="addShowPortal">
<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">
<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>
</div>
</a>
<br/><br/>
<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">
<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>
</div>
</a>
@ -40,24 +40,24 @@
<br/><br/>
#if $sickbeard.USE_TRAKT == True:
<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">
<h2>Add Recommended Shows</h2>
<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>
<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.</p>
</div>
</a>
<br/><br/>
#end if
<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">
<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>
</div>
</a>
</div>
</div>
#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl")

View File

@ -1,12 +1,8 @@
#import sickbeard
#from sickbeard.helpers import anon_url
<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>
<tfoot>
<tr>
<th rowspan="1" colspan="4" align="left"><a href="#" style="padding-left: 10px;" class="showManage">Manage Directories</a></th>
</tr>
</tfoot>
<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>
<tbody>
#for $curDir in $dirList:
#if $curDir['added_already']:
@ -27,10 +23,10 @@
#end if
<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>
#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:
<td>?</td>
#end if

View File

@ -1,5 +1,7 @@
#import os.path
#import sickbeard
#from sickbeard.helpers import anon_url
#set global $header="New Show"
#set global $title="New Show"
@ -16,18 +18,24 @@
<script type="text/javascript" src="$sbRoot/js/newShow.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/addShowOptions.js?$sbPID"></script>
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#end if
<div id="summary2" class="align-left">
<div id="newShowPortal">
<div id="config-components">
<ul>
<li><a href="#core-component-group1">Add New Show</a></li>
</ul>
<div id="core-component-group1" class="tab-pane active component-group">
<div id="displayText">aoeu</div>
<br />
<form id="addShowForm" method="post" action="$sbRoot/home/addShows/addNewShow" accept-charset="utf-8" style="width: 800px;">
<form id="addShowForm" method="post" action="$sbRoot/home/addShows/addNewShow" accept-charset="utf-8">
<fieldset class="sectionwrap">
<legend class="legendStep">Find a show on the TVDB or TVRAGE</legend>
@ -36,27 +44,29 @@
<input type="hidden" id="indexer_timeout" value="$sickbeard.INDEXER_TIMEOUT" />
#if $use_provided_info:
Show retrieved from existing metadata: <a href="$sickbeard.indexerApi($provided_indexer).config["show_url"]$provided_indexer_id">$provided_indexer_name</a>
Show retrieved from existing metadata: <a href="<%= anon_url(sickbeard.indexerApi(provided_indexer).config['show_url'], provided_indexer_id) %>">$provided_indexer_name</a>
<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;">
<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></div>
<div id="middle"><input class="btn" style="margin-top: 0px !important;" type="button" id="searchName" value="Search" /></div>
</div>
<br />
</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 />
@ -103,6 +113,6 @@
<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")

View File

@ -14,8 +14,8 @@
<h1 class="title">$title</h1>
#end if
<div id="summary2" class="align-left">
<form name="processForm" method="post" action="processEpisode" style="line-height: 44px;">
<div id="postProcess">
<form name="processForm" method="post" action="processEpisode" style="line-height: 40px;">
<table>
<input type="hidden" id="type" name="type" value="manual">
<tr>
@ -23,7 +23,7 @@
<b>Enter the folder containing the episode:</b>
</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>
</tr>
<tr>
@ -31,7 +31,7 @@
<b>Process Method to be used:</b>
</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"}
#for $curAction in ('copy', 'move', 'hardlink', 'symlink'):
#if $sickbeard.PROCESS_METHOD == $curAction:
@ -72,7 +72,7 @@
</tr>
#end if
</table>
<input id="submit" class="btn btn-primary" type="submit" value="Process" />
<input id="submit" class="btn" type="submit" value="Process" />
</form>
<script type="text/javascript" charset="utf-8">
@ -80,6 +80,6 @@
jQuery('#episodeDir').fileBrowser({ title: 'Select Unprocessed Episode Folder', key: 'postprocessPath' });
//-->
</script>
</div></div>
</div>
#include $os.path.join($sickbeard.PROG_DIR,"gui/slick/interfaces/default/inc_bottom.tmpl")

View File

@ -18,19 +18,19 @@
<script type="text/javascript" src="$sbRoot/js/recommendedShows.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/addShowOptions.js?$sbPID"></script>
<div id="content960">
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#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;">
<fieldset class="sectionwrap">
<legend class="legendStep">Select a recommended show</legend>
@ -64,6 +64,6 @@
<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")

View File

@ -3,57 +3,167 @@
#import re
#from sickbeard.common import *
#from sickbeard import sbdatetime
#from sickbeard.helpers import anon_url
#set global $title="Trending Shows"
#set global $header="Trending Shows"
#set global $title='Trending Shows'
#set global $header='Trending Shows'
#set global $sbPath=".."
#set global $sbPath='..'
#set global $topmenu="comingEpisodes"
#set global $topmenu='comingEpisodes'
#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" charset="utf-8">
<!--
\$(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>
#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>
#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
<td class="trakt_show">
<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 href="${cur_show["url"]}" target="_blank"><img alt="" class="trakt-image" src="${image}" /></a>
<div class="trakt-image-slide">
<p>$cur_show["title"]</p>
<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">
<h2>$cur_show["ratings"]["percentage"]% <img src="$sbRoot/images/heart.png"></h2>
<i>$cur_show["ratings"]["votes"] votes</i>
<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-mini">Add Show</a>
<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>
</td>
#end if
#end for
</table>
#end if
</div>
<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>
#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,49 +3,58 @@
#from sickbeard import subtitles
#if $sickbeard.USE_SUBTITLES:
<div class="field-pair alt">
<input type="checkbox" name="subtitles" id="subtitles" #if $sickbeard.SUBTITLES_DEFAULT then "checked=\"checked\"" else ""# />
<br><div class="field-pair">
<label for="subtitles" class="clearfix">
<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>
</div>
#end if
<div class="field-pair">
<label for="statusSelect" class="nocheck clearfix">
<span class="component-title">
<select name="defaultStatus" id="statusSelect">
<label for="statusSelect">
<span class="component-title">Set the initial status<br /> of missing episodes</span>
<span class="component-desc">
<select name="defaultStatus" id="statusSelect" class="form-control form-control-inline input-sm">
#for $curStatus in [$SKIPPED, $WANTED, $ARCHIVED, $IGNORED]:
<option value="$curStatus" #if $sickbeard.STATUS_DEFAULT == $curStatus then 'selected="selected"' else ''#>$statusStrings[$curStatus]</option>
#end for
</select>
</span>
<span class="component-desc">Set the initial status of missing episodes</span>
</label>
</div>
<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">
<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>
</div>
<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">
<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>
</div>
<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">
<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>
</div>
@ -54,9 +63,12 @@
#set global $bestQualities = $qualities[1]
#include $os.path.join($sickbeard.PROG_DIR, "gui/slick/interfaces/default/inc_qualityChooser.tmpl")
<br>
<div class="field-pair alt">
<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-desc">Persist current values as the defaults</span>
<span class="component-title"><input class="btn btn-inline" type="button" id="saveDefaultsButton" value="Save Defaults" disabled="disabled" /></span>
<span class="component-desc">
<p>Use current values as the defaults</p>
</span>
</label>
</div>
</div><br>

View File

@ -1,5 +1,5 @@
<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>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>
@ -44,9 +44,9 @@
</div>
<br style="clear:both" />
<div class="blackwhitelist manual">
<input type="text" id="addToPoolText" size="30" />
<input class="btn" type="button" value="Add to Whitelist" id="addToWhite">
<input class="btn" type="button" value="Add to Blacklist" id="addToBlack">
<input type="text" id="addToPoolText" class="form-control form-control-inline input-sm input250" />
<input class="btn btn-inline" type="button" value="Add to Whitelist" id="addToWhite">
<input class="btn btn-inline" type="button" value="Add to Blacklist" id="addToBlack">
</div>
</div>
<br style="clear:both" />

View File

@ -6,8 +6,8 @@
</div> <!-- /content -->
</div> <!-- /contentWrapper -->
<footer>
<div class="footer clearfix">
<div class="meta" style="display: table; margin: 0 auto; font-size: 12px;">
#set $myDB = $db.DBConnection()
#set $today = str($datetime.date.today().toordinal())
#set status_quality = '(' + ','.join([str(quality) for quality in $Quality.SNATCHED + $Quality.SNATCHED_PROPER]) + ')'
@ -49,7 +49,7 @@
<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>
-->
</div>
</footer>
</body>
</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
<div class="field-pair">
<label for="qualityPreset" class="nocheck clearfix">
<label for="qualityPreset">
#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
<select id="qualityPreset">
<select id="qualityPreset" class="form-control form-control-inline input-sm">
<option value="0">Custom</option>
#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>
#end for
</select>
</span>
<span class="component-desc">Preferred quality of episodes to be download</span>
</label>
</div>
@ -21,23 +21,23 @@
<div id="customQualityWrapper">
<div id="customQuality">
<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 style="padding-right: 40px; text-align: center;" class="float-left">
<h4>Initial</h4>
<div style="padding-right: 40px; text-align: left; float: left;">
<h5>Initial</h4>
#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):
<option value="$curQuality" #if $curQuality in $anyQualities then "selected=\"selected\"" else ""#>$Quality.qualityStrings[$curQuality]</option>
#end for
</select>
</div>
<div style="text-align: center;" class="float-left">
<h4>Archive</h4>
<div style="text-align: left; float: left;">
<h5>Archive</h4>
#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):
<option value="$curQuality" #if $curQuality in $bestQualities then "selected=\"selected\"" else ""#>$Quality.qualityStrings[$curQuality]</option>
#end for

View File

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

View File

@ -1,17 +1,18 @@
#import sickbeard
#import urllib
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="robots" content="noindex">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SickRage - BRANCH:[$sickbeard.BRANCH] - $title</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<link rel="shortcut icon" href="$sbRoot/images/ico/favicon.ico">
@ -33,10 +34,12 @@
<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/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" media="only screen and (max-device-width: 480px)" href="$sbRoot/css/iphone.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" />
@ -51,9 +54,9 @@
</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/bootstrap.min.js?$sbPID"></script>
<script type="text/javascript" src="$sbRoot/js/lib/bootstrap-hover-dropdown.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>
@ -61,14 +64,13 @@
<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/pnotify.custom.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/isotope.pkgd.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:
<script type="text/javascript" src="$sbRoot/js/moment/moment.min.js?$sbPID"></script>
@ -76,33 +78,58 @@
#end if
<script type="text/javascript" charset="utf-8">
<!--
sbRoot = "$sbRoot"; // needed for browser.js & ajaxNotifications.js
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" />';
themeSpinner = <%= '\'\'' if 'dark' != sickbeard.THEME_NAME else '\'-dark\'' %>;
anonURL = '<%= sickbeard.ANON_REDIRECT %>'
//-->
</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">
<!--
\$(document).ready(function(){
initActions();
\$("ul.sf-menu").supersubs({
minWidth: 12, // minimum width of sub-menus in em units
maxWidth: 27, // maximum width of sub-menus in em units
extraWidth: 1 // extra width can ensure lines don't sometimes turn over
// due to slight rounding differences and font-family
}).superfish({
delay: 150,
disableHI: true,
animation: {opacity:'show',height:'show'},
speed: 'fast',
dropShadows: false
});
function initActions() {
\$("#SubMenu a[href*='/home/restart/']").addClass('btn restart').html('<span class="submenu-icon-restart pull-left"></span> Restart');
\$("#SubMenu a[href*='/home/shutdown/']").addClass('btn shutdown').html('<span class="submenu-icon-shutdown pull-left"></span> Shutdown');
\$("#SubMenu a[href*='/home/logout/']").addClass('btn').html('<span class="ui-icon ui-icon-power pull-left"></span> Logout');
\$("#SubMenu a:contains('Edit')").addClass('btn').html('<span class="ui-icon ui-icon-pencil pull-left"></span> Edit');
\$("#SubMenu a:contains('Remove')").addClass('btn remove').html('<span class="ui-icon ui-icon-trash pull-left"></span> Remove');
\$("#SubMenu a:contains('Clear History')").addClass('btn clearhistory').html('<span class="ui-icon ui-icon-trash pull-left"></span> Clear History');
\$("#SubMenu a:contains('Trim History')").addClass('btn trimhistory').html('<span class="ui-icon ui-icon-trash pull-left"></span> Trim History');
\$("#SubMenu a[href$='/errorlogs/clearerrors/']").addClass('btn').html('<span class="ui-icon ui-icon-trash pull-left"></span> Clear Errors');
\$("#SubMenu a:contains('Re-scan')").addClass('btn').html('<span class="ui-icon ui-icon-refresh pull-left"></span> Re-scan');
\$("#SubMenu a:contains('Backlog Overview')").addClass('btn').html('<span class="ui-icon ui-icon-refresh pull-left"></span> Backlog Overview');
\$("#SubMenu a[href$='/home/updatePLEX/']").addClass('btn').html('<span class="ui-icon ui-icon-refresh pull-left"></span> Update PLEX');
\$("#SubMenu a:contains('Force')").addClass('btn').html('<span class="ui-icon ui-icon-transfer-e-w pull-left"></span> Force Full Update');
\$("#SubMenu a:contains('Rename')").addClass('btn').html('<span class="ui-icon ui-icon-tag pull-left"></span> Preview Rename');
\$("#SubMenu a[href$='/config/subtitles/']").addClass('btn').html('<span class="ui-icon ui-icon-comment pull-left"></span> Search Subtitles');
\$("#SubMenu a[href*='/home/subtitleShow']").addClass('btn').html('<span class="ui-icon ui-icon-comment pull-left"></span> Download Subtitles');
\$("#SubMenu a:contains('Anime')").addClass('btn').html('<span class="submenu-icon-anime pull-left"></span> Anime');
\$("#SubMenu a:contains('Settings')").addClass('btn').html('<span class="ui-icon ui-icon-search pull-left"></span> Search Settings');
\$("#SubMenu a:contains('Provider')").addClass('btn').html('<span class="ui-icon ui-icon-search pull-left"></span> Search Providers');
\$("#SubMenu a:contains('Backup/Restore')").addClass('btn').html('<span class="ui-icon ui-icon-gear pull-left"></span> Backup/Restore');
\$("#SubMenu a:contains('General')").addClass('btn').html('<span class="ui-icon ui-icon-gear pull-left"></span> General');
\$("#SubMenu a:contains('Episode Status')").addClass('btn').html('<span class="ui-icon ui-icon-transferthick-e-w pull-left"></span> Episode Status Management');
\$("#SubMenu a:contains('Missed Subtitle')").addClass('btn').html('<span class="ui-icon ui-icon-transferthick-e-w pull-left"></span> Missed Subtitles');
\$("#SubMenu a[href$='/home/addShows/']").addClass('btn').html('<span class="ui-icon ui-icon-video pull-left"></span> Add Show');
\$("#SubMenu a:contains('Processing')").addClass('btn').html('<span class="ui-icon ui-icon-folder-open pull-left"></span> Post-Processing');
\$("#SubMenu a:contains('Manage Searches')").addClass('btn').html('<span class="ui-icon ui-icon-search pull-left"></span> Manage Searches');
\$("#SubMenu a:contains('Manage Torrents')").addClass('btn').html('<span class="submenu-icon-bittorrent pull-left"></span> Manage Torrents');
\$("#SubMenu a[href$='/manage/failedDownloads/']").addClass('btn').html('<span class="submenu-icon-failed-download pull-left"></span> Failed Downloads');
\$("#SubMenu a:contains('Notification')").addClass('btn').html('<span class="ui-icon ui-icon-note pull-left"></span> Notifications');
\$("#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');
}
\$("#NAV$topmenu").addClass("current");
\$(document).ready(function() {
initActions();
\$("#NAV$topmenu").addClass("active");
\$('.dropdown-toggle').dropdownHover();
});
//-->
@ -111,85 +138,102 @@
</head>
<body>
#if $sickbeard.NEWEST_VERSION_STRING:
<div id="upgrade-notification">
<div>
<span class="notify-text">$sickbeard.NEWEST_VERSION_STRING</span>
<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>
<div id="header-fix"></div>
#end if
<div id="header">
<div class="wrapper">
<a name="top"></a>
<span id="logo"><a href="$sbRoot/home/" title="SickRage homepage"><img alt="Sick Rage" src="$sbRoot/images/sickrage.png"/></a></span>
<ul id="MainMenu" class="sf-menu">
<li id="NAVhome"><a href="$sbRoot/home/">Show list</a>
<ul>
<li><a href="$sbRoot/home/addShows/"><img src="$sbRoot/images/menu/addshow16.png" alt="" width="16" height="16" />Add Shows</a></li>
<li><a href="$sbRoot/home/postprocess/"><img src="$sbRoot/images/menu/postprocess16.png" alt="" width="16" height="16" />Manual Post-Processing</a></li>
<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"><a href="$sbRoot/manage/">Manage</a>
<ul>
<li><a href="$sbRoot/manage/"><img src="$sbRoot/images/menu/manage16.png" alt="" width="16" height="16" />Mass Update</a></li>
<li><a href="$sbRoot/manage/backlogOverview/"><img src="$sbRoot/images/menu/backlog_view16.png" alt="" width="16" height="16" />Backlog Overview</a></li>
<li><a href="$sbRoot/manage/manageSearches/"><img src="$sbRoot/images/menu/managesearches16.png" alt="" width="16" height="16" />Manage Searches</a></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/"><img src="$sbRoot/images/menu/backlog_view16.png" alt="" width="16" height="16" />Update PLEX</a></li>
<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/"><img src="$sbRoot/images/menu/backlog_view16.png" alt="" width="16" height="16" />Update XBMC</a></li>
<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/"><img src="$sbRoot/images/menu/bittorrent.png" alt="" width="16" height="16" />Manage Torrents</a></li>
<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/"><img src="$sbRoot/images/menu/failed_download.png" alt="" width="16" height="16" />Failed Downloads</a></li>
<li><a href="$sbRoot/manage/failedDownloads/"><i class="menu-icon-failed-download"></i>&nbsp;Failed Downloads</a></li>
#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>
#if $sickbeard.USE_SUBTITLES:
<li><a href="$sbRoot/manage/subtitleMissed/"><img src="$sbRoot/images/menu/backlog16.png" alt="" width="16" height="16" />Missed Subtitle Management</a></li>
<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"><a href="$sbRoot/errorlogs/" class="log">$logPageTitle</a>
<ul>
<li><a href="$sbRoot/errorlogs/"><img src="$sbRoot/images/menu/viewlog_errors16.png" alt="" width="16" height="16" />View Log (Errors)</a></li>
<li><a href="$sbRoot/errorlogs/viewlog/"><img src="$sbRoot/images/menu/viewlog16.png" alt="" width="16" height="16" />View Log</a></li>
</ul>
</li>
<li id="NAVconfig"><a href="$sbRoot/config/" class="config"><img src="$sbRoot/images/menu/system18.png" alt="" /></a>
<ul>
<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>
<li><a href="$sbRoot/config/general/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />General</a></li>
<li><a href="$sbRoot/config/backuprestore/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Backup/Restore</a></li>
<li><a href="$sbRoot/config/search/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Search Settings</a></li>
<li><a href="$sbRoot/config/providers/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Search Providers</a></li>
<li><a href="$sbRoot/config/subtitles/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Subtitles Settings</a></li>
<li><a href="$sbRoot/config/postProcessing/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Post Processing</a></li>
<li><a href="$sbRoot/config/notifications/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Notifications</a></li>
<li><a href="$sbRoot/config/anime/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Anime</a></li>
</ul>
</li>
<li id="NAVsystem"><a href="#" onclick="return false;" class="config"><img src="$sbRoot/images/menu/system18-2.png" alt="" /></a>
<ul>
<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>
<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>
<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>
</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]" /></a></li>
</ul>
</div>
</div>
<div id="contentWrapper">
<div id="content">
<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>
#if $varExists('submenu'):
<div id="SubMenu">
<span>
@ -197,7 +241,7 @@
#for $menuItem in $submenu:
#if 'requires' not in $menuItem or $menuItem.requires():
#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 $inner_first = True
#for $cur_link in $menuItem.path:
@ -213,3 +257,12 @@
</span>
</div>
#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: {
2: function(node) { return \$(node).find("span").text().toLowerCase(); },
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'],
headers: {
@ -59,10 +62,10 @@
9: { sorter: false},
10: { sorter: false},
11: { sorter: false},
12: { sorter: false}
#if $sickbeard.USE_SUBTITLES
, 13: { sorter: false}
#end if
12: { sorter: false},
13: { sorter: false},
14: { sorter: false},
15: { sorter: false}
}
});
});
@ -102,8 +105,8 @@
<tfoot>
<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="#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="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 pull-right" type="button" value="Submit" id="submitMassUpdate" /></td>
</tr>
</tfoot>

View File

@ -2,14 +2,14 @@
#import datetime
#from sickbeard.common import *
#from sickbeard import sbdatetime, network_timezones
#set global $title="Backlog Overview"
#set global $header="Backlog Overview"
#set global $title = 'Backlog Overview'
#set global $header = 'Backlog Overview'
#set global $sbPath=".."
#set global $sbPath = '..'
#set global $topmenu="manage"#
#set global $topmenu = 'manage'#
#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">
<!--
@ -18,7 +18,7 @@
\$('#pickShow').change(function(){
var id = \$(this).val();
if (id) {
\$('html,body').animate({scrollTop: \$("#show-"+id).offset().top -25},'slow');
\$('html,body').animate({scrollTop: \$('#show-' + id).offset().top -25},'slow');
}
});
@ -52,14 +52,14 @@
#set $totalQual = $totalQual + $showCounts[$curShow.indexerid][$Overview.QUAL]
#end for
<div class="h2footer align-right">
<span class="wanted nowrap">Wanted: <b>$totalWanted</b></span>
<span class="qual nowrap">Low Quality: <b>$totalQual</b></span>
<div class="h2footer pull-right">
<span class="listing-key wanted">Wanted: <b>$totalWanted</b></span>
<span class="listing-key qual">Low Quality: <b>$totalQual</b></span>
</div><br/>
<div class="float-left">
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')):
#if $showCounts[$curShow.indexerid][$Overview.QUAL] + $showCounts[$curShow.indexerid][$Overview.WANTED] != 0:
<option value="$curShow.indexerid">$curShow.name</option>
@ -79,10 +79,10 @@ Jump to Show
<tr class="seasonheader" id="show-$curShow.indexerid">
<td colspan="3" class="align-left">
<br/><h2><a href="$sbRoot/home/displayShow?show=$curShow.indexerid">$curShow.name</a></h2>
<div class="float-right">
<span class="wanted nowrap">Wanted: <b>$showCounts[$curShow.indexerid][$Overview.WANTED]</b></span>
<span class="qual nowrap">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>
<div class="pull-right">
<span class="listing-key wanted">Wanted: <b>$showCounts[$curShow.indexerid][$Overview.WANTED]</b></span>
<span class="listing-key qual">Low Quality: <b>$showCounts[$curShow.indexerid][$Overview.QUAL]</b></span>
<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>
</td>
</tr>
@ -90,17 +90,22 @@ Jump to Show
<tr class="seasoncols"><th>Episode</th><th>Name</th><th class="nowrap">Airdate</th></tr>
#for $curResult in $showSQLResults[$curShow.indexerid]:
#set $whichStr = $str($curResult["season"]) + "x" + $str($curResult["episode"])
#set $whichStr = $str($curResult['season']) + 'x' + $str($curResult['episode'])
#try:
#set $overview = $showCats[$curShow.indexerid][$whichStr]
#except Exception
#continue
#end try
#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($network_timezones.parse_date_time($curResult["airdate"],$curShow.airs,$curShow.network))#</div></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
@ -108,4 +113,4 @@ Jump to Show
</table>
</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
<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]:
<option value="$curStatus">$common.statusStrings[$curStatus]</option>
#end for
</select>
<input class="btn" type="submit" value="Manage" />
<input class="btn btn-inline" type="submit" value="Manage" />
</form>
#else
@ -51,7 +51,7 @@ Manage episodes with status <select name="whichStatus">
#end if
<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]
#if $int($whichStatus) in $statusList
$statusList.remove($int($whichStatus))
@ -65,19 +65,19 @@ $statusList.append($common.FAILED)
<option value="$curStatus">$common.statusStrings[$curStatus]</option>
#end for
</select>
<input class="btn" type="submit" value="Go" />
<input class="btn btn-inline" type="submit" value="Go" />
<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-mini unselectAllShows" style="line-height: 8px;"><a style="color: #fff">Clear all</a></button>
<button type="button" class="btn btn-xs selectAllShows">Select all</a></button>
<button type="button" class="btn btn-xs unselectAllShows">Clear all</a></button>
</div>
<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:
<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 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>
#end for
</table>

View File

@ -37,8 +37,8 @@
<h1 class="title">$title</h1>
#end if
<div class="h2footer align-right"><b>Limit:</b>
<select name="limit" id="limit">
<div class="h2footer pull-right"><b>Limit:</b>
<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="100" #if $limit == "100" then "selected=\"selected\"" else ""#>100</option>
<option value="250" #if $limit == "250" then "selected=\"selected\"" else ""#>250</option>
@ -59,7 +59,7 @@
</thead>
<tfoot>
<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>
</tfoot>
<tbody>

View File

@ -25,7 +25,7 @@
<span class="selectTitle">Root Directories <span class="separator">*</span></span><br />
#for $cur_dir in $root_dir_list:
#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 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>
@ -36,10 +36,10 @@
</div>
<div class="optionWrapper alt">
<div class="optionWrapper">
<span class="selectTitle">Quality</span>
<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>
#set $selected = None
<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 id="customQuality">
<div style="width: 50%; text-align: center;" class="float-left">
<h3>Inital</h3>
<div class="manageCustom pull-left">
<h4>Inital</h4>
#set $anyQualityList = filter(lambda x: x > $common.Quality.NONE, $common.Quality.qualityStrings)
<select id="anyQualities" name="anyQualities" multiple="multiple" size="len($anyQualityList)">
#for $curQuality in sorted($anyQualityList):
@ -59,8 +59,8 @@
#end for
</select>
</div>
<div style="width: 50%; text-align: center;" class="float-left">
<h3>Archive</h3>
<div class="manageCustom pull-left">
<h4>Archive</h4>
#set $bestQualityList = filter(lambda x: x > $common.Quality.SDTV, $common.Quality.qualityStrings)
<select id="bestQualities" name="bestQualities" multiple="multiple" size="len($bestQualityList)">
#for $curQuality in sorted($bestQualityList):
@ -80,7 +80,7 @@
<div class="optionWrapper clearfix">
<span class="selectTitle">Archive on first match</span>
<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="enable"${isEnabled}>enable</option>
<option value="disable"${isDisabled}>disable</option>
@ -92,7 +92,7 @@
<div class="optionWrapper clearfix">
<span class="selectTitle">Flatten Folders <span class="separator">*</span></span>
<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="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>
@ -100,10 +100,10 @@
</div>
</div>
<div class="optionWrapper alt">
<div class="optionWrapper">
<span class="selectTitle">Paused</span>
<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="enable" #if $paused_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $paused_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -114,7 +114,7 @@
<div class="optionWrapper">
<span class="selectTitle">Scene Numbering</span>
<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="enable" #if $scene_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $scene_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -125,7 +125,7 @@
<div class="optionWrapper">
<span class="selectTitle">Anime</span>
<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="enable" #if $anime_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $anime_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -136,7 +136,7 @@
<div class="optionWrapper">
<span class="selectTitle">Sports</span>
<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="enable" #if $sports_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $sports_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -147,7 +147,7 @@
<div class="optionWrapper">
<span class="selectTitle">Air-By-Date</span>
<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="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>
@ -158,7 +158,7 @@
<div class="optionWrapper">
<span class="selectTitle">Subtitles<span class="separator"></span></span>
<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="enable" #if $subtitles_value then "selected=\"selected\"" else ""#>enable</option>
<option value="disable" #if $subtitles_value == False then "selected=\"selected\"" else ""#>disable</option>
@ -172,7 +172,7 @@
</div>
<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>
</form>

View File

@ -27,7 +27,7 @@
#end if
<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>
#for $sub_lang in $subliminal.language.language_list($sickbeard.SUBTITLES_LANGUAGES):
<option value="$sub_lang.alpha2">$sub_lang</option>
@ -45,13 +45,13 @@ subtitles
<form action="$sbRoot/manage/downloadSubtitleMissed" method="post">
<h2>Episodes without $subsLanguage subtitles.</h2>
<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>
<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-mini unselectAllShows" style="line-height: 8px;"><a style="color: #fff">Clear all</a></button>
<button type="button" class="btn btn-xs selectAllShows">Select all</a></button>
<button type="button" class="btn btn-xs unselectAllShows">Clear all</a></button>
</div>
<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:
<tr id="$cur_indexer_id">
<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 curSBHttpsEnabled = $sbHttpsEnabled
#set curSBHandleReverseProxy = $sbHandleReverseProxy
#set themeSpinner = $sbThemeName
#except NameMapper.NotFound:
#set curSBHost = "localhost"
#set curSBHttpPort = $sickbeard.WEB_PORT
#set curSBHttpsEnabled = "False"
#set curSBHandleReverseProxy = "False"
#set themeSpinner = $sickbeard.THEME_NAME
#end try
sbRoot = "$sbRoot";
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/restart.js?$sbPID"></script>
#set themeSpinner = '-dark' if 'dark' == themeSpinner else ''
<h2>Performing Restart</h2>
<br />
<div id="shut_down_message">
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;" />
</div>
<div id="restart_message" style="display: none;">
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/no16.png" height="16" width="16" id="restart_failure" style="display: none;" />
</div>
<div id="refresh_message" style="display: none;">
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 id="restart_fail_message" style="display: none;">

View File

@ -20,7 +20,7 @@
<script type="text/javascript" src="$sbRoot/js/testRename.js"></script>
<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:
$sickbeard.NAMING_ABD_PATTERN
#elif int($show.sports) == 1 and $sickbeard.NAMING_CUSTOM_SPORTS:
@ -48,10 +48,10 @@
</td>
</tr>
<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">Old Location</th>
<th class="nowrap">New Location</th>
<th class="col-name">Old Location</th>
<th class="col-name">New Location</th>
</tr>
</thead>
#set $curSeason = int($cur_ep_obj.season)
@ -70,18 +70,18 @@
wanted
#end if
seasonstyle">
<td width="1%" valign="top" align="center" class="tableleft">
<td class="col-checkbox">
#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) %>" />
#end if
</td>
<td align="center" valign="top" class="nowrap"><%= "-".join(map(str, epList)) %></td>
<td width="50%" valign="top">$curLoc</td>
<td width="50%" valign="top" class="tableright">$newLoc</td>
<td width="50%" class="col-name">$curLoc</td>
<td width="50%" class="col-name">$newLoc</td>
</tr>
</tbody>
#end for
</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")

View File

@ -18,34 +18,17 @@
url = '$sbRoot/errorlogs/viewlog/?minLevel='+\$(this).val()
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>
#if $varExists('header')
<h1 class="header">$header</h1>
#else
<h1 class="title">$title</h1>
#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()
$levels.sort(lambda x,y: cmp($reverseNames[$x], $reverseNames[$y]))
#for $level in $levels:
@ -53,11 +36,17 @@ $levels.sort(lambda x,y: cmp($reverseNames[$x], $reverseNames[$y]))
#end for
</select>
</div>
<div class="align-left"><pre class="logcolor">
<br />
<div class="align-left"><pre>
$logLines
</pre>
</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">
<!--

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) {
$('#tableDiv').html(data);
$("#addRootDirTable").tablesorter({

View File

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

View File

@ -1,10 +1,5 @@
var search_status_url = sbRoot + '/getManualSearchStatus';
$.pnotify.defaults.width = "400px";
$.pnotify.defaults.styling = "jqueryui";
$.pnotify.defaults.history = false;
$.pnotify.defaults.shadow = false;
$.pnotify.defaults.delay = 4000;
$.pnotify.defaults.maxonscreen = 5;
PNotify.prototype.options.maxonscreen = 5;
$.fn.manualSearches = [];
@ -40,7 +35,7 @@ function updateImages(data) {
$.each(data.episodes, function (name, ep) {
console.debug(ep.searchstatus);
// Get td element for current ep
var loadingImage = 'loading16_dddddd.gif';
var loadingImage = 'loading16.gif';
var queuedImage = 'queued.png';
var searchImage = 'search16.png';
var status = null;
@ -82,7 +77,7 @@ function updateImages(data) {
}
// 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: {
size: 16,
colorRow: false,
loadingImage: 'loading16_dddddd.gif',
loadingImage: 'loading16.gif',
queuedImage: 'queued.png',
noImage: 'no16.png',
yesImage: 'yes16.png'
@ -167,7 +162,7 @@ function disableLink(el) {
var rSearchTerm = /(\w+)\s\((.+?)\)/;
HtmlContent = data.result.replace(rSearchTerm,"$1"+' <span class="quality '+data.quality+'">'+"$2"+'</span>');
// 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
disableLink(link);
}

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