Merge pull request #42 from SickragePVR/feature/GenConfigLogAndNav
Overhaul General Configuration. Tweak top navbar. Fix imdb and other ima...
27
CHANGES.md
@ -1,8 +1,27 @@
|
||||
### 0.x.x (2014-10-22 xx:xx:xx UTC)
|
||||
### 0.x.x (2014-10-27 xx:xx:xx UTC)
|
||||
|
||||
* Add Bootstrap for UI features.
|
||||
* Change UI to resize fluidly on different display sizes.
|
||||
* 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"
|
||||
* Improve display of progress bars in the Downloads columns of the show list page
|
||||
* Improve display of progress bars under the images in Layout Poster of the show list page
|
||||
* Remove imdb watchlist feature as it wasn't ready for prime time
|
||||
* Change to rename General Configuration -> "Web Interface" tab as "Interface"
|
||||
* Add a "User Interface" section to the "Interface" tab
|
||||
* Change bring together "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"
|
||||
* Improve text wording on all UI options under General Configuration
|
||||
* Improve reduce over use of capitals
|
||||
* Improve streamline UI layout, mark-up and some CSS styling of all General Configuration tabs
|
||||
* Fix default top navbar background white-out behaviour on browsers that don't support gradients
|
||||
* 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 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
|
||||
* Fix "Subtitle Language" drop down font colour when entering text on the Subtitles Search settings
|
||||
* Clean up text, correct quotations, use spaces for code lines, tabs for html
|
||||
* Update changelog
|
||||
|
||||
|
||||
### 0.2.1 (2014-10-22 06:41:00 UTC)
|
||||
@ -24,7 +43,7 @@
|
||||
* 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.
|
||||
* 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
|
||||
|
@ -1502,22 +1502,6 @@ config*.tmpl
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
#config label span.component-title {
|
||||
float: left;
|
||||
width: 172px;
|
||||
margin-right: 10px;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#config label span.component-desc {
|
||||
padding-bottom: 2px;
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
display:inline-block;
|
||||
width:475px;
|
||||
}
|
||||
|
||||
#config .metadataDiv {
|
||||
display: none;
|
||||
}
|
||||
@ -1768,7 +1752,7 @@ td.tableright {
|
||||
|
||||
.separator {
|
||||
font-size: 90%;
|
||||
color: #333333;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a.whitelink {
|
||||
@ -1939,10 +1923,6 @@ html * {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
margin: 3px 0px 0px;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
input[type="radio"] {
|
||||
margin: 2px 0px 0px;
|
||||
@ -1965,8 +1945,10 @@ input, textarea, select, .uneditable-input {
|
||||
|
||||
/* navbar styling */
|
||||
.navbar-default {
|
||||
background-image: -moz-linear-gradient(#297AB8, #15528F);
|
||||
background-image: linear-gradient(#297AB8, #15528F);
|
||||
background-color: #15528F;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#297AB8', endColorstr='#15528F');
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#297AB8), to(#15528F));
|
||||
background: -moz-linear-gradient(top, #297AB8, #15528F);
|
||||
border-color: #3e3f3a;
|
||||
}
|
||||
|
||||
@ -2468,6 +2450,12 @@ label {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
pre {
|
||||
color: #fff;
|
||||
background-color: #3d3d3d;
|
||||
border-color: #111;
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
input sizing (for config pages)
|
||||
========================================================================== */
|
||||
@ -2922,17 +2910,11 @@ li.token-input-input-token input {
|
||||
}
|
||||
|
||||
div.token-input-dropdown {
|
||||
position: absolute;
|
||||
width: 273px;
|
||||
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;
|
||||
color: #000;
|
||||
border-left-color: #ccc;
|
||||
border-right-color: #ccc;
|
||||
border-bottom-color: #ccc;
|
||||
}
|
||||
|
||||
div.token-input-dropdown p {
|
||||
|
@ -1479,22 +1479,6 @@ config*.tmpl
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
#config label span.component-title {
|
||||
float: left;
|
||||
width: 172px;
|
||||
margin-right: 10px;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#config label span.component-desc {
|
||||
padding-bottom: 2px;
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
display:inline-block;
|
||||
width:475px;
|
||||
}
|
||||
|
||||
#config .metadataDiv {
|
||||
display: none;
|
||||
}
|
||||
@ -1914,11 +1898,6 @@ html * {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
margin: 3px 0px 0px;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
input[type="radio"] {
|
||||
margin: 2px 0px 0px;
|
||||
line-height: normal;
|
||||
@ -1940,8 +1919,10 @@ input, textarea, select, .uneditable-input {
|
||||
|
||||
/* navbar styling */
|
||||
.navbar-default {
|
||||
background-image: -moz-linear-gradient(#555555, #333333);
|
||||
background-image: linear-gradient(#555555, #333333);
|
||||
background-color: #333333;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#333333');
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#555), to(#333));
|
||||
background: -moz-linear-gradient(top, #555, #333);
|
||||
border-color: #3e3f3a;
|
||||
}
|
||||
|
||||
@ -2439,9 +2420,9 @@ label {
|
||||
}
|
||||
|
||||
pre {
|
||||
color: #fff;
|
||||
background-color: #3d3d3d;
|
||||
border: 1px solid #111;
|
||||
color: #000;
|
||||
background-color: #F5F5F5;
|
||||
border-color: #ccc;
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
@ -2866,17 +2847,11 @@ li.token-input-input-token input {
|
||||
}
|
||||
|
||||
div.token-input-dropdown {
|
||||
position: absolute;
|
||||
width: 273px;
|
||||
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;
|
||||
color: #000;
|
||||
border-left-color: #ccc;
|
||||
border-right-color: #ccc;
|
||||
border-bottom-color: #ccc;
|
||||
}
|
||||
|
||||
div.token-input-dropdown p {
|
@ -489,6 +489,20 @@ inc_bottom.tmpl
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
inc_rootDirs.tmpl
|
||||
========================================================================== */
|
||||
.rootdir-selectbox,
|
||||
.rootdir-selectbox #rootDirs,
|
||||
.rootdir-controls {
|
||||
width: 430px
|
||||
}
|
||||
.rootdir-selectbox {
|
||||
padding: 0 0 5px
|
||||
}
|
||||
.rootdir-controls {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
home.tmpl
|
||||
@ -1511,16 +1525,20 @@ config*.tmpl
|
||||
padding: 12px 0px;
|
||||
}
|
||||
|
||||
#config div.field-pair select,
|
||||
#config div.field-pair input {
|
||||
float: left;
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
#config div.field-pair input {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#config .nocheck, #config div #customQuality, .metadataDiv, .providerDiv {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
#config label span.component-title {
|
||||
#config span.component-title {
|
||||
float: left;
|
||||
width: 172px;
|
||||
margin-right: 10px;
|
||||
@ -1528,14 +1546,17 @@ config*.tmpl
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#config label span.component-desc {
|
||||
padding-bottom: 2px;
|
||||
#config span.component-desc {
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
display:inline-block;
|
||||
display:block;
|
||||
width:475px;
|
||||
margin-left:182px
|
||||
}
|
||||
|
||||
#config label.space-right {
|
||||
margin-right:10px
|
||||
}
|
||||
#config .metadataDiv {
|
||||
display: none;
|
||||
}
|
||||
@ -1956,7 +1977,7 @@ html * {
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
margin: 3px 0px 0px;
|
||||
margin: 2px 0px 0px;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
@ -1980,12 +2001,6 @@ input, textarea, select, .uneditable-input {
|
||||
}
|
||||
|
||||
/* navbar styling */
|
||||
.navbar-default {
|
||||
background-image: -moz-linear-gradient(#555555, #333333);
|
||||
background-image: linear-gradient(#555555, #333333);
|
||||
border-color: #3e3f3a;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-brand {
|
||||
color: #ffffff;
|
||||
}
|
||||
@ -2480,9 +2495,7 @@ label {
|
||||
}
|
||||
|
||||
pre {
|
||||
color: #fff;
|
||||
background-color: #3d3d3d;
|
||||
border: 1px solid #111;
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
/* =======================================================================
|
||||
@ -2933,11 +2946,10 @@ li.token-input-input-token input {
|
||||
div.token-input-dropdown {
|
||||
position: absolute;
|
||||
width: 273px;
|
||||
background-color: #fff;
|
||||
overflow: hidden;
|
||||
border-left: 1px solid #ccc;
|
||||
border-right: 1px solid #ccc;
|
||||
border-bottom: 1px solid #ccc;
|
||||
border-left: 1px solid;
|
||||
border-right: 1px solid;
|
||||
border-bottom: 1px solid;
|
||||
cursor: default;
|
||||
font-size: 11px;
|
||||
font-family: Verdana;
|
||||
@ -2981,4 +2993,7 @@ div.token-input-dropdown ul li.token-input-selected-dropdown-item {
|
||||
|
||||
span.token-input-delete-token {
|
||||
margin: 0 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.red-text {color:#d33}
|
||||
.clear-left {clear:left}
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 101 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 243 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 984 B |
@ -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>
|
||||
<option value="$cur_dir">$cur_dir</option>
|
||||
#end for
|
||||
</select>
|
||||
</select>
|
||||
</div>
|
||||
<div id="rootDirsControls" style="text-align: center; width: 670px; margin-left: auto; margin-right: auto;">
|
||||
<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 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 />
|
||||
|
@ -104,6 +104,7 @@ AUTO_UPDATE = False
|
||||
NOTIFY_ON_UPDATE = False
|
||||
CUR_COMMIT_HASH = None
|
||||
BRANCH = ''
|
||||
GIT_REMOTE = ''
|
||||
CUR_COMMIT_BRANCH = ''
|
||||
|
||||
INIT_LOCK = Lock()
|
||||
@ -460,7 +461,7 @@ def get_backlog_cycle_time():
|
||||
def initialize(consoleLogging=True):
|
||||
with INIT_LOCK:
|
||||
|
||||
global BRANCH, CUR_COMMIT_HASH, CUR_COMMIT_BRANCH, ACTUAL_LOG_DIR, LOG_DIR, WEB_PORT, WEB_LOG, ENCRYPTION_VERSION, WEB_ROOT, WEB_USERNAME, WEB_PASSWORD, WEB_HOST, WEB_IPV6, USE_API, API_KEY, ENABLE_HTTPS, HTTPS_CERT, HTTPS_KEY, \
|
||||
global BRANCH, GIT_REMOTE, CUR_COMMIT_HASH, CUR_COMMIT_BRANCH, ACTUAL_LOG_DIR, LOG_DIR, WEB_PORT, WEB_LOG, ENCRYPTION_VERSION, WEB_ROOT, WEB_USERNAME, WEB_PASSWORD, WEB_HOST, WEB_IPV6, USE_API, API_KEY, ENABLE_HTTPS, HTTPS_CERT, HTTPS_KEY, \
|
||||
HANDLE_REVERSE_PROXY, USE_NZBS, USE_TORRENTS, NZB_METHOD, NZB_DIR, DOWNLOAD_PROPERS, CHECK_PROPERS_INTERVAL, ALLOW_HIGH_PRIORITY, TORRENT_METHOD, \
|
||||
SAB_USERNAME, SAB_PASSWORD, SAB_APIKEY, SAB_CATEGORY, SAB_HOST, \
|
||||
NZBGET_USERNAME, NZBGET_PASSWORD, NZBGET_CATEGORY, NZBGET_PRIORITY, NZBGET_HOST, NZBGET_USE_HTTPS, backlogSearchScheduler, \
|
||||
@ -530,6 +531,9 @@ def initialize(consoleLogging=True):
|
||||
# wanted branch
|
||||
BRANCH = check_setting_str(CFG, 'General', 'branch', '')
|
||||
|
||||
# git_remote
|
||||
GIT_REMOTE = check_setting_str(CFG, 'General', 'git_remote', 'origin')
|
||||
|
||||
# current commit hash
|
||||
CUR_COMMIT_HASH = check_setting_str(CFG, 'General', 'cur_commit_hash', '')
|
||||
|
||||
@ -1353,6 +1357,7 @@ def save_config():
|
||||
# For passwords you must include the word `password` in the item_name and add `helpers.encrypt(ITEM_NAME, ENCRYPTION_VERSION)` in save_config()
|
||||
new_config['General'] = {}
|
||||
new_config['General']['branch'] = BRANCH
|
||||
new_config['General']['git_remote'] = GIT_REMOTE
|
||||
new_config['General']['cur_commit_hash'] = CUR_COMMIT_HASH
|
||||
new_config['General']['cur_commit_branch'] = CUR_COMMIT_BRANCH
|
||||
new_config['General']['config_version'] = CONFIG_VERSION
|
||||
|
@ -443,7 +443,7 @@ class GitUpdateManager(UpdateManager):
|
||||
self._num_commits_ahead = 0
|
||||
|
||||
# get all new info from github
|
||||
output, err, exit_status = self._run_git(self._git_path, 'fetch origin')
|
||||
output, err, exit_status = self._run_git(self._git_path, 'fetch %s' % sickbeard.GIT_REMOTE)
|
||||
|
||||
if not exit_status == 0:
|
||||
logger.log(u"Unable to contact github, can't check for update", logger.ERROR)
|
||||
@ -538,7 +538,7 @@ class GitUpdateManager(UpdateManager):
|
||||
"""
|
||||
|
||||
if self.branch == self._find_installed_branch():
|
||||
output, err, exit_status = self._run_git(self._git_path, 'pull -f origin ' + self.branch) # @UnusedVariable
|
||||
output, err, exit_status = self._run_git(self._git_path, 'pull -f %s %s' % (sickbeard.GIT_REMOTE, self.branch)) # @UnusedVariable
|
||||
else:
|
||||
output, err, exit_status = self._run_git(self._git_path, 'checkout -f ' + self.branch) # @UnusedVariable
|
||||
|
||||
@ -553,7 +553,7 @@ class GitUpdateManager(UpdateManager):
|
||||
return False
|
||||
|
||||
def list_remote_branches(self):
|
||||
branches, err, exit_status = self._run_git(self._git_path, 'ls-remote --heads origin') # @UnusedVariable
|
||||
branches, err, exit_status = self._run_git(self._git_path, 'ls-remote --heads %s' % sickbeard.GIT_REMOTE) # @UnusedVariable
|
||||
if exit_status == 0 and branches:
|
||||
return re.findall('\S+\Wrefs/heads/(.*)', branches)
|
||||
return []
|
||||
|
@ -1502,7 +1502,7 @@ class ConfigGeneral(MainHandler):
|
||||
use_api=None, api_key=None, indexer_default=None, timezone_display=None, cpu_preset=None,
|
||||
web_password=None, version_notify=None, enable_https=None, https_cert=None, https_key=None,
|
||||
handle_reverse_proxy=None, sort_article=None, auto_update=None, notify_on_update=None,
|
||||
proxy_setting=None, proxy_indexers=None, anon_redirect=None, git_path=None, calendar_unprotected=None,
|
||||
proxy_setting=None, proxy_indexers=None, anon_redirect=None, git_path=None, git_remote=None, calendar_unprotected=None,
|
||||
fuzzy_dating=None, trim_zero=None, date_preset=None, date_preset_na=None, time_preset=None,
|
||||
indexer_timeout=None, play_videos=None, rootDir=None, theme_name=None):
|
||||
|
||||
@ -1525,6 +1525,7 @@ class ConfigGeneral(MainHandler):
|
||||
sickbeard.PROXY_SETTING = proxy_setting
|
||||
sickbeard.PROXY_INDEXERS = config.checkbox_to_value(proxy_indexers)
|
||||
sickbeard.GIT_PATH = git_path
|
||||
sickbeard.GIT_REMOTE = git_remote
|
||||
sickbeard.CALENDAR_UNPROTECTED = config.checkbox_to_value(calendar_unprotected)
|
||||
# sickbeard.LOG_DIR is set in config.change_LOG_DIR()
|
||||
|
||||
|