Commit a39041ae authored by echel0n's avatar echel0n

Merge branch 'release/9.4.50'

parents 434ec1e5 8bfcd445
# Changelog
- * 2f70c45 - 2018-12-08: Release v9.4.49
- * c663c1f - 2018-12-09: Release v9.4.50
- * 30193ca - 2018-12-09: Added gradient effect to buttons.
- * 2d4e3dc - 2018-12-09: Refactored menu icons to be fixed-width
- * c97cce5 - 2018-12-09: Refactored quicksearch menu
- * b3b4d7a - 2018-12-08: Refactoed display show view
- * c1aed13 - 2018-12-08: Release v9.4.49
- * 854687c - 2018-12-08: Added GKTorrent provider.
- * 5592614 - 2018-12-08: Fixed login issues for Speed.cd torrent provider.
- * 60cabed - 2018-12-04: Refactored display show view header
- * 5663214 - 2018-12-04: Release v9.4.48
- * e0fd191 - 2018-12-04: Cleaned up mass edit view code. Fixed bug with comparing minseed and minleech values.
- * b55a806 - 2018-12-02: Pre-Release v9.4.48.dev9
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -22,7 +22,6 @@ import datetime
import io
import os
import re
import threading
import time
import traceback
import urllib
......@@ -1127,6 +1126,8 @@ class Home(WebHandler):
return self.redirect(self.previous_url())
def displayShow(self, show=None):
submenu = []
if show is None:
return self._genericMessage(_("Error"), _("Invalid show ID"))
else:
......@@ -1140,9 +1141,11 @@ class Home(WebHandler):
seasonResults = list({x['season'] for x in episodeResults})
submenu = [
{'title': _('Edit'), 'path': '/home/editShow?show=%d' % showObj.indexerid,
'icon': 'fas fa-edit'}]
submenu.append({
'title': _('Edit'),
'path': '/home/editShow?show=%d' % showObj.indexerid,
'icon': 'fas fa-edit'
})
showLoc = showObj.location
......@@ -1172,33 +1175,65 @@ class Home(WebHandler):
if not sickrage.app.show_queue.is_being_added(showObj):
if not sickrage.app.show_queue.is_being_updated(showObj):
if showObj.paused:
submenu.append({'title': _('Resume'), 'path': '/home/togglePause?show=%d' % showObj.indexerid,
'icon': 'fas fa-play'})
submenu.append({
'title': _('Resume'),
'path': '/home/togglePause?show=%d' % showObj.indexerid,
'icon': 'fas fa-play'
})
else:
submenu.append({'title': _('Pause'), 'path': '/home/togglePause?show=%d' % showObj.indexerid,
'icon': 'fas fa-pause'})
submenu.append({'title': _('Remove'), 'path': '/home/deleteShow?show=%d' % showObj.indexerid,
'class': 'removeshow', 'confirm': True, 'icon': 'fas fa-trash'})
submenu.append({'title': _('Re-scan files'), 'path': '/home/refreshShow?show=%d' % showObj.indexerid,
'icon': 'fas fa-compass'})
submenu.append({'title': _('Full Update'),
'path': '/home/updateShow?show=%d&force=1' % showObj.indexerid,
'icon': 'fas fa-sync'})
submenu.append(
{'title': _('Update show in KODI'), 'path': '/home/updateKODI?show=%d' % showObj.indexerid,
'requires': self.haveKODI(), 'icon': 'fas fa-tv'})
submenu.append(
{'title': _('Update show in Emby'), 'path': '/home/updateEMBY?show=%d' % showObj.indexerid,
'requires': self.haveEMBY(), 'icon': 'fas fa-tv'})
submenu.append({'title': _('Preview Rename'), 'path': '/home/testRename?show=%d' % showObj.indexerid,
'icon': 'fas fa-tag'})
if sickrage.app.config.use_subtitles and not sickrage.app.show_queue.is_being_subtitled(
showObj) and showObj.subtitles:
submenu.append(
{'title': _('Download Subtitles'), 'path': '/home/subtitleShow?show=%d' % showObj.indexerid,
'icon': 'fas fa-comment'})
submenu.append({
'title': _('Pause'),
'path': '/home/togglePause?show=%d' % showObj.indexerid,
'icon': 'fas fa-pause'
})
submenu.append({
'title': _('Remove'),
'path': '/home/deleteShow?show=%d' % showObj.indexerid,
'class': 'removeshow',
'confirm': True,
'icon': 'fas fa-trash'
})
submenu.append({
'title': _('Re-scan files'),
'path': '/home/refreshShow?show=%d' % showObj.indexerid,
'icon': 'fas fa-compass'
})
submenu.append({
'title': _('Full Update'),
'path': '/home/updateShow?show=%d&force=1' % showObj.indexerid,
'icon': 'fas fa-sync'
})
submenu.append({
'title': _('Update show in KODI'),
'path': '/home/updateKODI?show=%d' % showObj.indexerid,
'requires': self.haveKODI(),
'icon': 'fas fa-tv'
})
submenu.append({
'title': _('Update show in Emby'),
'path': '/home/updateEMBY?show=%d' % showObj.indexerid,
'requires': self.haveEMBY(),
'icon': 'fas fa-tv'
})
submenu.append({
'title': _('Preview Rename'),
'path': '/home/testRename?show=%d' % showObj.indexerid,
'icon': 'fas fa-tag'
})
if sickrage.app.config.use_subtitles and showObj.subtitles:
if not sickrage.app.show_queue.is_being_subtitled(showObj):
submenu.append({
'title': _('Download Subtitles'),
'path': '/home/subtitleShow?show=%d' % showObj.indexerid,
'icon': 'fas fa-comment'
})
epCats = {}
epCounts = {
......
......@@ -44,7 +44,7 @@
cssClass = "Custom"
qualityString = "Custom"
cssClass = "badge text-white " + cssClass
cssClass = "badge p-1 align-middle text-white " + cssClass
if overrideClass:
cssClass = overrideClass
%>
......
......@@ -111,18 +111,10 @@
<!-- Left Side Of Navbar -->
<ul class="navbar-nav mr-auto">
<li>
<div class="input-group input-group-lg">
<div class="input-group-prepend">
<div class="input-group-text bg-dark text-white-50" style="border: none">
<i class="fas fa-search"></i>
</div>
</div>
<input id="quicksearch" class="form-control bg-dark text-white-50"
style="width:350px;border: none;" type="search">
<div class="input-group-append">
<div class="input-group-text bg-dark text-white-50" style="border: none">
<i id="quicksearch-icon"></i>
</div>
<div class="quicksearch-container">
<div class="quicksearch-input-container">
<i class="fas fa-search m-2"></i>
<input id="quicksearch" class="quicksearch-input" type="search">
</div>
</div>
</li>
......@@ -139,20 +131,20 @@
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarHome">
<a class="dropdown-item" href="${srWebRoot}/home/">
<i class="fas fa-home"></i>&nbsp;${_('Show List')}
<i class="fas fa-fw fa-home"></i>&nbsp;${_('Show List')}
</a>
<a class="dropdown-item" href="${srWebRoot}/home/addShows/">
<i class="fas fa-tv"></i>&nbsp;${_('Add Shows')}
<i class="fas fa-fw fa-tv"></i>&nbsp;${_('Add Shows')}
</a>
<a class="dropdown-item" href="${srWebRoot}/home/postprocess/">
<i class="fas fa-folder-open"></i>&nbsp;${_('Manual Post-Processing')}
<i class="fas fa-fw fa-folder-open"></i>&nbsp;${_('Manual Post-Processing')}
</a>
% if sickrage.app.config.shows_recent:
<div class="dropdown-divider"></div>
% for recentShow in sickrage.app.config.shows_recent:
<a class="dropdown-item"
href="${srWebRoot}/home/displayShow/?show=${recentShow['indexerid']}">
<i class="fas fa-tv"></i>&nbsp;${recentShow['name']|trim,h}
<i class="fas fa-fw fa-tv"></i>&nbsp;${recentShow['name']|trim,h}
</a>
% endfor
% endif
......@@ -168,48 +160,48 @@
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarSystem">
<a class="dropdown-item" href="${srWebRoot}/manage/">
<i class="fas fa-diagnoses"></i>&nbsp;${_('Mass Update')}
<i class="fas fa-fw fa-diagnoses"></i>&nbsp;${_('Mass Update')}
</a>
<a class="dropdown-item" href="${srWebRoot}/manage/backlogOverview/">
<i class="fas fa-backward"></i>&nbsp;${_('Backlog Overview')}
<i class="fas fa-fw fa-backward"></i>&nbsp;${_('Backlog Overview')}
</a>
<a class="dropdown-item" href="${srWebRoot}/manage/manageQueues/">
<i class="fas fa-list"></i>&nbsp;${_('Manage Queues')}
<i class="fas fa-fw fa-list"></i>&nbsp;${_('Manage Queues')}
</a>
<a class="dropdown-item" href="${srWebRoot}/manage/episodeStatuses/">
<i class="fas fa-th-list"></i>&nbsp;${_('Episode Status Management')}
<i class="fas fa-fw fa-th-list"></i>&nbsp;${_('Episode Status Management')}
</a>
% if sickrage.app.config.use_trakt and sickrage.app.config.trakt_oauth_token != "":
<a class="dropdown-item" href="${srWebRoot}/home/syncTrakt/">
<i class="fas fa-sync"></i>&nbsp;${_('Sync Trakt')}
<i class="fas fa-fw fa-sync"></i>&nbsp;${_('Sync Trakt')}
</a>
% endif
% if sickrage.app.config.use_plex and sickrage.app.config.plex_server_host != "":
<a class="dropdown-item" href="${srWebRoot}/home/updatePLEX/">
<i class="fas fa-sync"></i>&nbsp;${_('Update PLEX')}
<i class="fas fa-fw fa-sync"></i>&nbsp;${_('Update PLEX')}
</a>
% endif
% if sickrage.app.config.use_kodi and sickrage.app.config.kodi_host != "":
<a class="dropdown-item" href="${srWebRoot}/home/updateKODI/">
<i class="fas fa-sync"></i>&nbsp;${_('Update KODI')}
<i class="fas fa-fw fa-sync"></i>&nbsp;${_('Update KODI')}
</a>
% endif
% if sickrage.app.config.use_emby and sickrage.app.config.emby_host != "" and sickrage.app.config.emby_apikey != "":
<a class="dropdown-item" href="${srWebRoot}/home/updateEMBY/">
<i class="fas fa-sync"></i>&nbsp;${_('Update Emby')}
<i class="fas fa-fw fa-sync"></i>&nbsp;${_('Update Emby')}
</a>
% endif
% if torrent_webui_url:
<a class="dropdown-item" href="${torrent_webui_url}" target="_blank">
<i class="fas fa-video"></i>&nbsp;${_('Manage Torrents')}
<i class="fas fa-fw fa-video"></i>&nbsp;${_('Manage Torrents')}
</a>
% endif
<a class="dropdown-item" href="${srWebRoot}/manage/failedDownloads/">
<i class="fas fa-first-aid"></i>&nbsp;${_('Failed Downloads')}
<i class="fas fa-fw fa-first-aid"></i>&nbsp;${_('Failed Downloads')}
</a>
% if sickrage.app.config.use_subtitles:
<a class="dropdown-item" href="${srWebRoot}/manage/subtitleMissed/">
<i class="fas fa-question"></i>&nbsp;${_('Missed Subtitle Management')}
<i class="fas fa-fw fa-question"></i>&nbsp;${_('Missed Subtitle Management')}
</a>
% endif
</div>
......@@ -230,40 +222,40 @@
${_('Config')}
</span>
<span class="d-sm-none d-md-block">
<i class="fas fa-2x fa-cogs"></i>
<i class="fas fa-fw fa-2x fa-cogs"></i>
</span>
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarConfig">
<a class="dropdown-item" href="${srWebRoot}/config/">
<i class="fas fa-info"></i>&nbsp;${_('Help and Info')}
<i class="fas fa-fw fa-info"></i>&nbsp;${_('Help and Info')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/general/">
<i class="fas fa-wrench"></i>&nbsp;${_('General')}
<i class="fas fa-fw fa-wrench"></i>&nbsp;${_('General')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/backuprestore/">
<i class="fas fa-upload"></i>&nbsp;${_('Backup and Restore')}
<i class="fas fa-fw fa-upload"></i>&nbsp;${_('Backup and Restore')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/search/">
<i class="fas fa-binoculars"></i>&nbsp;${_('Search Clients')}
<i class="fas fa-fw fa-binoculars"></i>&nbsp;${_('Search Clients')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/providers/">
<i class="fas fa-share-alt"></i>&nbsp;${_('Search Providers')}
<i class="fas fa-fw fa-share-alt"></i>&nbsp;${_('Search Providers')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/subtitles/">
<i class="fas fa-closed-captioning"></i>&nbsp;${_('Subtitles Settings')}
<i class="fas fa-fw fa-closed-captioning"></i>&nbsp;${_('Subtitles Settings')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/qualitySettings/">
<i class="fas fa-wrench"></i>&nbsp;${_('Quality Settings')}
<i class="fas fa-fw fa-wrench"></i>&nbsp;${_('Quality Settings')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/postProcessing/">
<i class="fas fa-folder-open"></i>&nbsp;${_('Post Processing')}
<i class="fas fa-fw fa-folder-open"></i>&nbsp;${_('Post Processing')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/notifications/">
<i class="fas fa-bell"></i>&nbsp;${_('Notifications')}
<i class="fas fa-fw fa-bell"></i>&nbsp;${_('Notifications')}
</a>
<a class="dropdown-item" href="${srWebRoot}/config/anime/">
<i class="fas fa-eye"></i>&nbsp;${_('Anime')}
<i class="fas fa-fw fa-eye"></i>&nbsp;${_('Anime')}
</a>
</div>
</li>
......@@ -283,55 +275,55 @@
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarSystem">
<a class="dropdown-item" href="${srWebRoot}/IRC/">
<i class="fas fa-hashtag"></i>&nbsp;${_('IRC')}
<i class="fas fa-fw fa-hashtag"></i>&nbsp;${_('IRC')}
</a>
<a class="dropdown-item" href="#" id="changelog">
<i class="fas fa-globe"></i>&nbsp;${_('Changelog')}
<i class="fas fa-fw fa-globe"></i>&nbsp;${_('Changelog')}
</a>
<a class="dropdown-item" href="https://www.paypal.me/sickrage" rel="noreferrer"
onclick="window.open('${sickrage.app.config.anon_redirect}' + this.href); return false;">
<i class="fas fa-donate"></i>&nbsp;${_('Donate')}
<i class="fas fa-fw fa-donate"></i>&nbsp;${_('Donate')}
</a>
<div class="dropdown-divider"></div>
%if numErrors:
<a class="dropdown-item" href="${srWebRoot}/logs/">
<i class="fas fa-exclamation-circle"></i>&nbsp;${_('View Errors')}
<i class="fas fa-fw fa-exclamation-circle"></i>&nbsp;${_('View Errors')}
<span class="badge badge-danger">${numErrors}</span>
</a>
%endif
%if numWarnings:
<a class="dropdown-item"
href="${srWebRoot}/logs/?level=${sickrage.app.log.WARNING}">
<i class="fas fa-exclamation-triangle"></i>&nbsp;${_('View Warnings')}
<i class="fas fa-fw fa-exclamation-triangle"></i>&nbsp;${_('View Warnings')}
<span class="badge badge-warning">${numWarnings}</span>
</a>
%endif
<a class="dropdown-item" href="${srWebRoot}/logs/viewlog/">
<i class="fas fa-file-archive"></i>&nbsp;${_('View Log')}
<i class="fas fa-fw fa-file-archive"></i>&nbsp;${_('View Log')}
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="${srWebRoot}/home/updateCheck?pid=${srPID}">
<i class="fas fa-check-square"></i>&nbsp;${_('Check For Updates')}
<i class="fas fa-fw fa-check-square"></i>&nbsp;${_('Check For Updates')}
</a>
<a class="dropdown-item" href="${srWebRoot}/home/restart/?pid=${srPID}"
class="confirm restart">
<i class="fas fa-redo"></i>&nbsp;${_('Restart')}
<i class="fas fa-fw fa-redo"></i>&nbsp;${_('Restart')}
</a>
<a class="dropdown-item" href="${srWebRoot}/home/shutdown/?pid=${srPID}"
class="confirm shutdown">
<i class="fas fa-power-off"></i>&nbsp;${_('Shutdown')}
<i class="fas fa-fw fa-power-off"></i>&nbsp;${_('Shutdown')}
</a>
% if sickrage.app.config.app_sub == current_user.get('sub'):
<a class="dropdown-item" href="${srWebRoot}/unlink" class="confirm logout">
<i class="fas fa-unlink"></i>&nbsp;${_('Unlink Account')}
<i class="fas fa-fw fa-unlink"></i>&nbsp;${_('Unlink Account')}
</a>
% endif
<a class="dropdown-item" href="${srWebRoot}/logout" class="confirm logout">
<i class="fas fa-sign-out-alt"></i>&nbsp;${_('Logout')}
<i class="fas fa-fw fa-sign-out-alt"></i>&nbsp;${_('Logout')}
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="${srWebRoot}/home/status/">
<i class="fas fa-server"></i>&nbsp;${_('Server Status')}
<i class="fas fa-fw fa-server"></i>&nbsp;${_('Server Status')}
</a>
</div>
</li>
......
This diff is collapsed.
9.4.49
\ No newline at end of file
9.4.50
\ No newline at end of file
......@@ -227,20 +227,17 @@ $(document).ready(function ($) {
return false;
},
open: function () {
//$("#quicksearch-icon").removeClass('fas fa-spinner fa-spin');
$("#quicksearch-icon").addClass('fas fa-times');
$(".quicksearch-input-container").append('<button type="button" class="quicksearch-input-btn"><i class="fas fa-1x fa-times-circle text-white m-2" aria-hidden="true"></i></button>');
$("ul.ui-menu").width($(this).innerWidth());
$("ul.ui-menu").css('border', 'none');
$("ul.ui-menu").css('outline', 'none');
$("ul.ui-menu").addClass('bg-dark shadow rounded');
$(".quicksearch-input-btn").click(function () {
$('#quicksearch').catcomplete('close').val('');
$(this).remove();
});
}
});
$("#quicksearch-icon").click(function () {
$('#quicksearch').catcomplete('close').val('');
$("#quicksearch-icon").removeClass();
});
},
common: {
......
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
/* set the overriding variables */
$grid-breakpoints: (
xxxs: 0,
xxs: 320px,
xs: 568px,
sm: 667px,
md: 768px,
lg: 992px,
xl: 1200px,
xxl: 1440px,
xxxl: 1600px
);
$container-max-widths: (
xxxs: 0,
xxs: 320px,
xs: 568px,
sm: 667px,
md: 768px,
lg: 992px,
xl: 1200px,
xxl: 1440px,
xxxl: 1600px
);
@import "~bootstrap/scss/bootstrap";
@import "~tablesorter/dist/css/theme.bootstrap_4.min.css";
@import "~tokenfield/dist/tokenfield.css";
......@@ -308,7 +336,9 @@ input[type=checkbox].toggle {
.btn {
@extend .btn-primary;
@extend .shadow;
@extend .shadow-lg;
background-image: linear-gradient(to bottom, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.15) 51%, rgba(0,0,0,0.05));
background-repeat: repeat-x;
}
.input-group-append, .input-group-prepend {
......@@ -392,9 +422,11 @@ input[type=checkbox].toggle {
.dropdown-menu {
@extend .bg-dark;
.dropdown-item {
@extend .text-white;
}
.dropdown-item:hover {
@extend .bg-dark;
}
......@@ -410,4 +442,72 @@ input[type=checkbox].toggle {
@extend .mt-1;
@extend .mb-1;
}
}
.show-legend {
@extend .pr-5;
}
.quicksearch-container {
position: relative;
display: inline-block;
margin-left: 10px;
width: 360px;
height: 40px;
vertical-align: super;
}
.quicksearch-input-container {
font-size: 13px;
font-family: Open Sans Semibold, Helvetica Neue, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-flow: row nowrap;
flex-flow: row nowrap;
padding: 4px;
height: 40px;
border-radius: 4px;
background: hsla(0, 0%, 100%, .08);
color: #eee;
-webkit-transition: background-color .2s, color .2s;
transition: background-color .2s, color .2s;
}
.quicksearch-input {
-webkit-box-flex: 1;
-webkit-flex-grow: 1;
flex-grow: 1;
height: 100%;
outline: 0;
border: none;
background: transparent;
color: #eee;
}