diff --git a/gui/slick/js/lib/bootstrap-anchor.min.js b/gui/slick/js/lib/bootstrap-anchor.min.js new file mode 100644 index 0000000000000000000000000000000000000000..b541e5689846fe03a588eb05f688cf1c2b76c96f Binary files /dev/null and b/gui/slick/js/lib/bootstrap-anchor.min.js differ diff --git a/gui/slick/js/new/viewlogs.js b/gui/slick/js/new/viewlogs.js index 351f23444359e5e42451f46d635e0468373c3921..1f4ca36c09ac30a675af85e0dddb12b571ca54df 100644 --- a/gui/slick/js/new/viewlogs.js +++ b/gui/slick/js/new/viewlogs.js @@ -1,5 +1,5 @@ $(document).ready(function(){ - $('#minLevel,#logFilter,#logSearch').on('change', function(){ + $('#minLevel,#logFilter,#logSearch').on('keyup change', function(){ if ($('#logSearch').val().length > 0){ $('#logSearch').prop('disabled', true); $('#logFilter option[value="<NONE>"]').prop('selected', true); @@ -13,44 +13,10 @@ $(document).ready(function(){ $.get(url, function(data){ history.pushState('data', '', url); $('pre').html($(data).find('pre').html()); - $('#minLevel').removeProp('disabled'); - $('#logFilter').removeProp('disabled'); - $('#logSearch').removeProp('disabled'); - document.body.style.cursor='default'; - }); - }); - - $(window).load(function(){ - if ( $('#logSearch').val().length === 0 ) { $('#minLevel').prop('disabled', false); $('#logFilter').prop('disabled', false); $('#logSearch').prop('disabled', false); - } else { - $('#minLevel').prop('disabled', true); - $('#logFilter').prop('disabled', true); - $('#logSearch').prop('disabled', false); - } - - document.body.style.cursor='default'; - }); - - $('#logSearch').on('keyup', function() { - if ( $('#logSearch').val().length === 0 ) { - $('#logFilter option[value=<NONE>]').prop('selected', true); - $('#minLevel option[value=20]').prop('selected', true); - $('#minLevel').prop('disabled', false); - $('#logFilter').prop('disabled', false); - url = srRoot + '/errorlogs/viewlog/?minLevel='+$('select[name=minLevel]').val()+'&logFilter='+$('select[name=logFilter]').val()+'&logSearch='+$('#logSearch').val(); - $.get(url, function(data){ - history.pushState('data', '', url); - $('pre').html($(data).find('pre').html()); - $('#minLevel').removeProp('disabled'); - $('#logFilter').removeProp('disabled'); - $('#logSearch').removeProp('disabled'); - }); - } else { - $('#minLevel').prop('disabled', true); - $('#logFilter').prop('disabled', true); - } + document.body.style.cursor='default'; + }); }); }); diff --git a/gui/slick/js/script.js b/gui/slick/js/script.js index d3733a5d9976cef0b8e3d8b42c59f61e56aeaf25..b56e6bc73e00c80c76fed377fb225cb46b5ea5b2 100644 --- a/gui/slick/js/script.js +++ b/gui/slick/js/script.js @@ -30,7 +30,6 @@ function initHeader() { inside = false; } }); - } @@ -59,9 +58,7 @@ function showMsg(msg, loader, timeout, ms) { } function resetFilters(text) { - if ($(".dataTables_filter").length > 0) { - $(".dataTables_filter input").attr("placeholder", "filter " + text + ""); - } + if ($(".dataTables_filter").length > 0) $(".dataTables_filter input").attr("placeholder", "filter " + text + ""); } function initTabs() { @@ -106,38 +103,32 @@ function initTabs() { }); } - -function init() { +$(document).ready(function () { initHeader(); initTabs(); -} - -$(document).ready(function () { - init(); - $(document).ready(function() { - $('.dropdown-toggle').dropdownHover(); - if(metaToBool('sickbeard.FUZZY_DATING')){ - $.timeago.settings.allowFuture = true; - $.timeago.settings.strings = { - prefixAgo: null, - prefixFromNow: 'In ', - suffixAgo: "ago", - suffixFromNow: "", - seconds: "less than a minute", - minute: "about a minute", - minutes: "%d minutes", - hour: "an hour", - hours: "%d hours", - day: "a day", - days: "%d days", - month: "a month", - months: "%d months", - year: "a year", - years: "%d years", - wordSeparator: " ", - numbers: [] - }; - $("[datetime]").timeago(); - } - }); + $(document).anchor(); + $('.dropdown-toggle').dropdownHover(); + if(metaToBool('sickbeard.FUZZY_DATING')){ + $.timeago.settings.allowFuture = true; + $.timeago.settings.strings = { + prefixAgo: null, + prefixFromNow: 'In ', + suffixAgo: "ago", + suffixFromNow: "", + seconds: "less than a minute", + minute: "about a minute", + minutes: "%d minutes", + hour: "an hour", + hours: "%d hours", + day: "a day", + days: "%d days", + month: "a month", + months: "%d months", + year: "a year", + years: "%d years", + wordSeparator: " ", + numbers: [] + }; + $("[datetime]").timeago(); + } }); diff --git a/gui/slick/views/comingEpisodes.mako b/gui/slick/views/comingEpisodes.mako index 7b32f163cc8508abcef48e8536d285a652f973e0..d8b18ab5be2a70702736536f7cf4f257c0bfdd3f 100644 --- a/gui/slick/views/comingEpisodes.mako +++ b/gui/slick/views/comingEpisodes.mako @@ -113,7 +113,7 @@ <tr class="${show_div}"> <td align="center" nowrap="nowrap"> <% airDate = sbdatetime.sbdatetime.convert_to_setting(cur_result['localtime']) %> - <time datetime="${airDate.isoformat('T')}" class="date">${sbdatetime.sbdatetime.sbfdate(airDate)}</time> + <time datetime="${airDate.isoformat('T')}" class="date">${sbdatetime.sbdatetime.sbfdatetime(airDate)}</time> </td> <td class="tvShow" nowrap="nowrap"><a href="${srRoot}/home/displayShow?show=${cur_result['showid']}">${cur_result['show_name']}</a> diff --git a/gui/slick/views/config_postProcessing.mako b/gui/slick/views/config_postProcessing.mako index 0eb190463ecdcee03c2ccb72a802f375fceb39c7..632056d87ad40b359c7e06dfec04b7164405f91e 100644 --- a/gui/slick/views/config_postProcessing.mako +++ b/gui/slick/views/config_postProcessing.mako @@ -93,7 +93,7 @@ <input type="checkbox" name="add_shows_wo_dir" id="add_shows_wo_dir" ${('', 'checked="checked"')[bool(sickbeard.ADD_SHOWS_WO_DIR)]}/> <label for="add_shows_wo_dir"> <span class="component-title">Add shows without directory</span> - <span class="component-desc">Add shows without creating a directory (don't recommended)</span> + <span class="component-desc">Add shows without creating a directory (not recommended)</span> </label> </div> <div class="field-pair"> @@ -305,7 +305,7 @@ </label> <label class="nocheck"> <span class="component-title"> </span> - <span class="component-desc"><b>NOTE:</b> Dont' forget to add quality pattern. Otherwise after post-procesing the episode will have UNKNOWN quality</span> + <span class="component-desc"><b>NOTE:</b> Don't forget to add quality pattern. Otherwise after post-procesing the episode will have UNKNOWN quality</span> </label> </div> diff --git a/gui/slick/views/displayShow.mako b/gui/slick/views/displayShow.mako index 98c9f8a7714fb7ea43817b5708e7f5fb187fa835..f17a10aff6b692e02ebdc8cfff2f67ca63989de8 100644 --- a/gui/slick/views/displayShow.mako +++ b/gui/slick/views/displayShow.mako @@ -422,7 +422,7 @@ % endif <% curSeason = int(epResult["season"]) %> % endif - <tr class="${Overview.overviewStrings[epCats[epStr]]} season-${curSeason} seasonstyle"> + <tr class="${Overview.overviewStrings[epCats[epStr]]} season-${curSeason} seasonstyle" id="${'S' + str(epResult["season"]) + 'E' + str(epResult["episode"])}"> <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"])}" /> diff --git a/gui/slick/views/history.mako b/gui/slick/views/history.mako index 5efccb051232aeb2b4821d95286b1d80eb80d773..1d82113df68f2c21daf8401ee4b3cc9379bb3608 100644 --- a/gui/slick/views/history.mako +++ b/gui/slick/views/history.mako @@ -75,7 +75,7 @@ <% isoDate = datetime.datetime.strptime(str(hItem["date"]), History.date_format).isoformat('T') %> <time datetime="${isoDate}" class="date">${airDate}</time> </td> - <td class="tvShow" width="35%"><a href="${srRoot}/home/displayShow?show=${hItem["show_id"]}#season-${hItem["season"]}">${hItem["show_name"]} - ${"S%02i" % int(hItem["season"])}${"E%02i" % int(hItem["episode"])} ${('', '<span class="quality Proper">Proper</span>')["proper" in hItem["resource"].lower() or "repack" in hItem["resource"].lower()]}</a></td> + <td class="tvShow" width="35%"><a href="${srRoot}/home/displayShow?show=${hItem["show_id"]}#S${hItem["season"]}E${hItem["episode"]}">${hItem["show_name"]} - ${"S%02i" % int(hItem["season"])}${"E%02i" % int(hItem["episode"])} ${('', '<span class="quality Proper">Proper</span>')["proper" in hItem["resource"].lower() or "repack" in hItem["resource"].lower()]}</a></td> <td align="center" ${('', 'class="subtitles_column"')[curStatus == SUBTITLED]}> % if curStatus == SUBTITLED: <img width="16" height="11" style="vertical-align:middle;" src="${srRoot}/images/subtitles/flags/${hItem['resource']}.png" onError="this.onerror=null;this.src='${srRoot}/images/flags/unknown.png';"> diff --git a/gui/slick/views/home.mako b/gui/slick/views/home.mako index d40aab8ef8d8e82a556329faa634b3a777ea7020..667736fad1b7b8747e614cf35755d5a9f458f845 100644 --- a/gui/slick/views/home.mako +++ b/gui/slick/views/home.mako @@ -43,7 +43,7 @@ <meta data-var="max_download_count" data-content="${max_download_count}"> </%block> <%block name="scripts"> -<script type="text/javascript" src="${srRoot}/js/new/home.js"></script> +<script type="text/javascript" src="${srRoot}/js/new/home.js?${sbPID}"></script> </%block> <%block name="content"> <%namespace file="/inc_defs.mako" import="renderQualityPill"/> diff --git a/gui/slick/views/layouts/main.mako b/gui/slick/views/layouts/main.mako index 67709e2dcd298585018c9807b145fbd989812642..190e8176ffa5f56f00042af04e224a294798875c 100644 --- a/gui/slick/views/layouts/main.mako +++ b/gui/slick/views/layouts/main.mako @@ -117,6 +117,12 @@ <li><a href="${srRoot}/home/"><i class="menu-icon-home"></i> Show List</a></li> <li><a href="${srRoot}/home/addShows/"><i class="menu-icon-addshow"></i> Add Shows</a></li> <li><a href="${srRoot}/home/postprocess/"><i class="menu-icon-postprocess"></i> Manual Post-Processing</a></li> + % if sickbeard.SHOWS_RECENT: + <li role="separator" class="divider"></li> + % for recentShow in sickbeard.SHOWS_RECENT: + <li><a href="${srRoot}/home/displayShow/?show=${recentShow['indexerid']}"><i class="menu-icon-addshow"></i> ${recentShow['name']|trim,h}</a></li> + % endfor + % endif </ul> <div style="clear:both;"></div> </li> @@ -336,6 +342,7 @@ <script type="text/javascript" src="${srRoot}/js/lib/jquery-2.1.4.min.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/bootstrap.min.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/bootstrap-hover-dropdown.min.js?${sbPID}"></script> + <script type="text/javascript" src="${srRoot}/js/lib/bootstrap-anchor.min.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/jquery-ui-1.10.4.custom.min.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/jquery.cookie.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/jquery.cookiejar.js?${sbPID}"></script> @@ -345,7 +352,7 @@ <script type="text/javascript" src="${srRoot}/js/lib/jquery.tablesorter.widgets-2.17.7.min.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/jquery.tablesorter.widget-columnSelector-2.17.7.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/jquery.qtip-2.2.1.min.js?${sbPID}"></script> - <script type="text/javascript" src="${srRoot}/js/lib/pnotify.custom.min.js"></script> + <script type="text/javascript" src="${srRoot}/js/lib/pnotify.custom.min.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/jquery.form-3.35.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/jquery.ui.touch-punch-0.2.2.min.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/lib/isotope.pkgd.min.js?${sbPID}"></script> @@ -355,9 +362,9 @@ <script type="text/javascript" src="${srRoot}/js/new/parsers.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/new/meta.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/script.js?${sbPID}"></script> - <script type="text/javascript" src="${srRoot}/js/lib/jquery.scrolltopcontrol-1.1.js"></script> - <script type="text/javascript" src="${srRoot}/js/browser.js"></script> - <script type="text/javascript" src="${srRoot}/js/ajaxNotifications.js"></script> + <script type="text/javascript" src="${srRoot}/js/lib/jquery.scrolltopcontrol-1.1.js?${sbPID}"></script> + <script type="text/javascript" src="${srRoot}/js/browser.js?${sbPID}"></script> + <script type="text/javascript" src="${srRoot}/js/ajaxNotifications.js?${sbPID}"></script> <script type="text/javascript" src="${srRoot}/js/confirmations.js?${sbPID}"></script> % endif <%block name="scripts" /> diff --git a/sickbeard/__init__.py b/sickbeard/__init__.py index 51cb3413b8e73359bb8010f34747cded659a9d2f..f1ceb705ccdb9ec014926791c76ac449f57ef03d 100644 --- a/sickbeard/__init__.py +++ b/sickbeard/__init__.py @@ -552,6 +552,8 @@ TRAKT_API_URL = 'https://api-v2launch.trakt.tv/' FANART_API_KEY = '9b3afaf26f6241bdb57d6cc6bd798da7' +SHOWS_RECENT = [] + __INITIALIZED__ = False NEWZNAB_DATA = None @@ -607,7 +609,7 @@ def initialize(consoleLogging=True): AUTOPOSTPROCESSER_FREQUENCY, SHOWUPDATE_HOUR, DEFAULT_AUTOPOSTPROCESSER_FREQUENCY, MIN_AUTOPOSTPROCESSER_FREQUENCY, \ ANIME_DEFAULT, NAMING_ANIME, ANIMESUPPORT, USE_ANIDB, ANIDB_USERNAME, ANIDB_PASSWORD, ANIDB_USE_MYLIST, \ ANIME_SPLIT_HOME, SCENE_DEFAULT, ARCHIVE_DEFAULT, DOWNLOAD_URL, BACKLOG_DAYS, GIT_ORG, GIT_REPO, GIT_USERNAME, GIT_PASSWORD, \ - GIT_AUTOISSUES, DEVELOPER, gh, DISPLAY_ALL_SEASONS, SSL_VERIFY, NEWS_URL, NEWS_LAST_READ, NEWS_LATEST, NEWS_UNREAD + GIT_AUTOISSUES, DEVELOPER, gh, DISPLAY_ALL_SEASONS, SSL_VERIFY, NEWS_URL, NEWS_LAST_READ, NEWS_LATEST, NEWS_UNREAD, SHOWS_RECENT if __INITIALIZED__: return False diff --git a/sickbeard/common.py b/sickbeard/common.py index 5b47a18689c56ca6495c39c4a065c0cabaf2e551..a535d872752bd851a12b0ff8cf8ddd183b60f7a3 100644 --- a/sickbeard/common.py +++ b/sickbeard/common.py @@ -265,7 +265,7 @@ class Quality: return ret - if checkName([r"(pdtv|hd.?tv|dsr|tv(rip|mux)).(xvid|x26[45]|h.?26[45])"], all) and not checkName([r"(720|1080)[pi]"], all) and\ + if checkName([r"([sp]d.?tv|hd.?tv|dsr|tv(rip|mux)).(xvid|x26[45]|h.?26[45])"], all) and not checkName([r"(720|1080)[pi]"], all) and\ not checkName([r"hr.ws.pdtv.x26[45]"], any): ret = Quality.SDTV elif checkName([r"web.?dl|web(rip|mux)", r"xvid|x26[45]|h.?26[45]"], all) and not checkName([r"(720|1080)[pi]"], all): diff --git a/sickbeard/versionChecker.py b/sickbeard/versionChecker.py index fff3694e0972e7bf5fa68bb0d508266b7c5b3258..2e12d78c5ac15b6d2a8a9c93515ed7f9af0f8692 100644 --- a/sickbeard/versionChecker.py +++ b/sickbeard/versionChecker.py @@ -26,6 +26,7 @@ import stat import traceback import db import time +import datetime import sickbeard from sickbeard import notifiers @@ -290,10 +291,13 @@ class CheckVersion: logger.log(u'check_for_new_news: Checking GitHub for latest news.', logger.DEBUG) try: news = helpers.getURL(sickbeard.NEWS_URL, session=requests.Session()) - except Exception: + except: logger.log(u'check_for_new_news: Could not load news from repo.', logger.WARNING) - last_read = time.mktime(time.strptime(sickbeard.NEWS_LAST_READ, '%Y-%m-%d')) + try: + last_read = datetime.datetime.strptime(sickbeard.NEWS_LAST_READ, '%Y-%m-%d') + except: + last_read = 0 dates= re.finditer(r'^####(\d{4}-\d{2}-\d{2})####$', news, re.M) sickbeard.NEWS_UNREAD = 0 @@ -303,8 +307,11 @@ class CheckVersion: gotLatest = True sickbeard.NEWS_LATEST = match.group(1) - if time.mktime(time.strptime(match.group(1), '%Y-%m-%d')) > last_read: - sickbeard.NEWS_UNREAD += 1 + try: + if datetime.datetime.strptime(match.group(1), '%Y-%m-%d') > last_read: + sickbeard.NEWS_UNREAD += 1 + except: + pass return news diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py index feef9a4af3e2d73816a65d2f2d343f7c0ba73fb6..b7bf5bf0622ec076856e256a29d6d2783ae02323 100644 --- a/sickbeard/webserve.py +++ b/sickbeard/webserve.py @@ -1233,6 +1233,20 @@ class Home(WebRoot): indexerid = int(showObj.indexerid) indexer = int(showObj.indexer) + # Delete any previous occurrances + for index, recentShow in enumerate(sickbeard.SHOWS_RECENT): + if recentShow['indexerid'] == indexerid: + del sickbeard.SHOWS_RECENT[index] + + # Only track 5 most recent shows + del sickbeard.SHOWS_RECENT[4:] + + # Insert most recent show + sickbeard.SHOWS_RECENT.insert(0, { + 'indexerid': indexerid, + 'name': showObj.name, + }) + return t.render(submenu=submenu, showLoc=showLoc, show_message=show_message, show=showObj, sqlResults=sqlResults, seasonResults=seasonResults, sortedShowLists=sortedShowLists, bwl=bwl, epCounts=epCounts, @@ -2726,28 +2740,10 @@ class Manage(Home, WebRoot): def __init__(self, *args, **kwargs): super(Manage, self).__init__(*args, **kwargs) - def ManageMenu(self): - menu = [ - {'title': 'Backlog Overview', 'path': 'manage/backlogOverview/', 'icon': 'ui-icon ui-icon-refresh'}, - {'title': 'Manage Searches', 'path': 'manage/manageSearches/', 'icon': 'ui-icon ui-icon-search'}, - {'title': 'Episode Status Management', 'path': 'manage/episodeStatuses/', 'icon': 'ui-icon ui-icon-transferthick-e-w'}, ] - - 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:'): - menu.append({'title': 'Manage Torrents', 'path': 'manage/manageTorrents/', 'icon': 'submenu-icon-bittorrent'}) - - if sickbeard.USE_SUBTITLES: - menu.append({'title': 'Missed Subtitle Management', 'path': 'manage/subtitleMissed/', 'icon': 'ui-icon ui-icon-transferthick-e-w'}) - - if sickbeard.USE_FAILED_DOWNLOADS: - menu.append({'title': 'Failed Downloads', 'path': 'manage/failedDownloads/', 'icon': 'submenu-icon-failed-download'}) - - return menu def index(self): t = PageTemplate(rh=self, file="manage.mako") - return t.render(submenu=self.ManageMenu(), title='Mass Update', header='Mass Update', topmenu='manage') + return t.render(title='Mass Update', header='Mass Update', topmenu='manage') def showEpisodeStatuses(self, indexer_id, whichStatus): @@ -2786,7 +2782,7 @@ class Manage(Home, WebRoot): # if we have no status then this is as far as we need to go if not status_list: return t.render(title="Episode Overview", header="Episode Overview", - topmenu="manage", submenu=self.ManageMenu(), whichStatus=whichStatus) + topmenu="manage", whichStatus=whichStatus) myDB = db.DBConnection() status_results = myDB.select( @@ -2810,8 +2806,8 @@ class Manage(Home, WebRoot): sorted_show_ids.append(cur_indexer_id) return t.render(title="Episode Overview", header="Episode Overview", - topmenu='manage', submenu=self.ManageMenu(), whichStatus=whichStatus, - show_names=show_names, ep_counts=ep_counts, sorted_show_ids=sorted_show_ids) + topmenu='manage', whichStatus=whichStatus, + show_names=show_names, ep_counts=ep_counts, sorted_show_ids=sorted_show_ids) def changeEpisodeStatuses(self, oldStatus, newStatus, *args, **kwargs): @@ -2887,7 +2883,7 @@ class Manage(Home, WebRoot): t = PageTemplate(rh=self, file="manage_subtitleMissed.mako") if not whichSubs: - return t.render(submenu=self.ManageMenu(), whichSubs=whichSubs, title='Episode Overview', header='Episode Overview', topmenu='manage') + return t.render(whichSubs=whichSubs, title='Episode Overview', header='Episode Overview', topmenu='manage') myDB = db.DBConnection() status_results = myDB.select( @@ -2916,8 +2912,8 @@ class Manage(Home, WebRoot): if cur_indexer_id not in sorted_show_ids: sorted_show_ids.append(cur_indexer_id) - return t.render(submenu=self.ManageMenu(), whichSubs=whichSubs, show_names=show_names, ep_counts=ep_counts, sorted_show_ids=sorted_show_ids, - title='Episode Overview', header='Episode Overview', topmenu='manage') + return t.render(whichSubs=whichSubs, show_names=show_names, ep_counts=ep_counts, sorted_show_ids=sorted_show_ids, + title='Missing Subtitles', header='Missing Subtitles', topmenu='manage') def downloadSubtitleMissed(self, *args, **kwargs): @@ -2999,7 +2995,7 @@ class Manage(Home, WebRoot): showCats[curShow.indexerid] = epCats showSQLResults[curShow.indexerid] = sqlResults - return t.render(submenu=self.ManageMenu(), showCounts=showCounts, showCats=showCats, showSQLResults=showSQLResults, + return t.render(showCounts=showCounts, showCats=showCats, showSQLResults=showSQLResults, title='Backlog Overview', header='Backlog Overview', topmenu='manage') @@ -3132,7 +3128,7 @@ class Manage(Home, WebRoot): air_by_date_value = last_air_by_date if air_by_date_all_same else None root_dir_list = root_dir_list - return t.render(submenu=self.ManageMenu(), showList=toEdit, archive_firstmatch_value=archive_firstmatch_value, default_ep_status_value=default_ep_status_value, + return t.render(showList=toEdit, archive_firstmatch_value=archive_firstmatch_value, default_ep_status_value=default_ep_status_value, paused_value=paused_value, anime_value=anime_value, flatten_folders_value=flatten_folders_value, quality_value=quality_value, subtitles_value=subtitles_value, scene_value=scene_value, sports_value=sports_value, air_by_date_value=air_by_date_value, root_dir_list=root_dir_list, title='Mass Edit', header='Mass Edit', topmenu='manage') @@ -3394,7 +3390,7 @@ class Manage(Home, WebRoot): if not sickbeard.TORRENT_PASSWORD == "" and not sickbeard.TORRENT_USERNAME == "": webui_url = re.sub('://', '://' + str(sickbeard.TORRENT_USERNAME) + ':' + str(sickbeard.TORRENT_PASSWORD) + '@' ,webui_url) - return t.render(submenu=self.ManageMenu(), webui_url=webui_url, info_download_station=info_download_station, + return t.render(webui_url=webui_url, info_download_station=info_download_station, title='Manage Torrents', header='Manage Torrents', topmenu='manage') @@ -3417,7 +3413,7 @@ class Manage(Home, WebRoot): t = PageTemplate(rh=self, file="manage_failedDownloads.mako") - return t.render(submenu=self.ManageMenu(), limit=limit, failedResults=sqlResults, title='Failed Downloads', header='Failed Downloads', topmenu='manage') + return t.render(limit=limit, failedResults=sqlResults, title='Failed Downloads', header='Failed Downloads', topmenu='manage') @route('/manage/manageSearches(/?.*)') @@ -3429,7 +3425,7 @@ class ManageSearches(Manage): t = PageTemplate(rh=self, file="manage_manageSearches.mako") # t.backlogPI = sickbeard.backlogSearchScheduler.action.getProgressIndicator() - return t.render(submenu=self.ManageMenu(), backlogPaused=sickbeard.searchQueueScheduler.action.is_backlog_paused(), + return t.render(backlogPaused=sickbeard.searchQueueScheduler.action.is_backlog_paused(), backlogRunning=sickbeard.searchQueueScheduler.action.is_backlog_in_progress(), dailySearchStatus=sickbeard.dailySearchScheduler.action.amActive, findPropersStatus=sickbeard.properFinderScheduler.action.amActive, queueLength=sickbeard.searchQueueScheduler.action.queue_length(), title='Manage Searches', header='Manage Searches', topmenu='manage')