diff --git a/gui/slick/views/addShows.mako b/gui/slick/views/addShows.mako index 519d02818f602e74450b788c238abf3c7d96c293..b5ef0729eeabe4ed2b30723aca26464645538799 100644 --- a/gui/slick/views/addShows.mako +++ b/gui/slick/views/addShows.mako @@ -12,7 +12,7 @@ </div> <div class="row"> <div class="col-md-12"> - <a href="${static_url("addShows/newShow", include_version=False)}" id="btnNewShow" class="btn btn-large"> + <a href="${static_url("addShows/newShow/", include_version=False)}" id="btnNewShow" class="btn btn-large"> <div class="button"><div class="add-list-icon-addnewshow"></div></div> <div class="buttontext"> <h3>${_('Add New Show')}</h3> @@ -36,7 +36,7 @@ <br/> <div class="row"> <div class="col-md-12"> - <a href="${static_url("addShows/popularShows", include_version=False)}" id="btnNewShow" class="btn btn-large"> + <a href="${static_url("addShows/popularShows/", include_version=False)}" id="btnNewShow" class="btn btn-large"> <div class="button"><div class="add-list-icon-addimdb"></div></div> <div class="buttontext"> <h3>${_('Add From IMDB\'s Popular Shows')}</h3> @@ -48,7 +48,7 @@ <br/> <div class="row"> <div class="col-md-12"> - <a href="${static_url("addShows/existingShows", include_version=False)}" id="btnExistingShow" class="btn btn-large"> + <a href="${static_url("addShows/existingShows/", include_version=False)}" id="btnExistingShow" class="btn btn-large"> <div class="button"><div class="add-list-icon-addexistingshow"></div></div> <div class="buttontext"> <h3>${_('Add Existing Shows')}</h3> diff --git a/gui/slick/views/apiBuilder.mako b/gui/slick/views/apiBuilder.mako index 8969010667a32afb67d1552f430410b2baa7d4a6..989cf7884aa7fb5321fd4ee7e8f0102445bebaeb 100644 --- a/gui/slick/views/apiBuilder.mako +++ b/gui/slick/views/apiBuilder.mako @@ -92,7 +92,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="${static_url("apibuilder", include_version=False)}" title="SickRage"> + <a class="navbar-brand" href="${static_url("apibuilder/", include_version=False)}" title="SickRage"> <img alt="SickRage" src="${static_url('images/sickrage.png')}" style="height: 50px;padding: 3px;" class="img-responsive pull-left" /> <p class="navbar-text hidden-xs">${title}</p> </a> @@ -109,7 +109,7 @@ </div> <ul class="nav navbar-nav navbar-right"> - <li><a href="${static_url("home", include_version=False)}">${_('Back to SickRage')}</a></li> + <li><a href="${static_url("home/", include_version=False)}">${_('Back to SickRage')}</a></li> </ul> <form class="navbar-form navbar-right"> diff --git a/gui/slick/views/config_general.mako b/gui/slick/views/config_general.mako index 0da50de5b68db34f73334108cd84b0d427e7e1a4..1fc3816d416e7decc916e2f5c63ebbdbe69eba54 100644 --- a/gui/slick/views/config_general.mako +++ b/gui/slick/views/config_general.mako @@ -661,7 +661,7 @@ </div> <div class="row"> <div class="col-md-12"> - <label>${_('you can try all the features of the API')} <a href="${static_url("apibuilder", include_version=False)}">${_('here')}</a></label> + <label>${_('you can try all the features of the API')} <a href="${static_url("apibuilder/", include_version=False)}">${_('here')}</a></label> </div> </div> </div> diff --git a/gui/slick/views/inc_home_showList.mako b/gui/slick/views/inc_home_showList.mako index 38592ef111ee5a8297f0cb7e9fcb9548fba6c622..bd27c893f9b44b9bfdb3a2d849e11553c2ad6fda 100644 --- a/gui/slick/views/inc_home_showList.mako +++ b/gui/slick/views/inc_home_showList.mako @@ -176,7 +176,7 @@ </thead> <tfoot class="hidden-print"> <tr> - <th rowspan="1" colspan="1" align="center"><a href="${static_url("addShows", include_version=False)}">${_('Add')} ${(_('Show'), _('Anime'))[curListType == 'Anime']}</a></th> + <th rowspan="1" colspan="1" align="center"><a href="${static_url("addShows/", include_version=False)}">${_('Add')} ${(_('Show'), _('Anime'))[curListType == 'Anime']}</a></th> <th> </th> <th> </th> <th> </th> diff --git a/gui/slick/views/layouts/main.mako b/gui/slick/views/layouts/main.mako index 7b06eab0bbfa08d1251d3f7ae0cc1e5eee791a35..50aa3c610c462ea190f9613fa72d4a9b7d03afdc 100644 --- a/gui/slick/views/layouts/main.mako +++ b/gui/slick/views/layouts/main.mako @@ -127,7 +127,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="${static_url("home", include_version=False)}" title="SickRage"><img alt="SickRage" src="${static_url('images/sickrage.png')}" + <a class="navbar-brand" href="${static_url("home/", include_version=False)}" title="SickRage"><img alt="SickRage" src="${static_url('images/sickrage.png')}" style="height: 50px;padding: 3px;" class="img-responsive pull-left" /></a> </div> @@ -135,17 +135,17 @@ <div class="collapse navbar-collapse" id="collapsible-navbar"> <ul class="nav navbar-nav navbar-right"> <li id="NAVhome" class="navbar-split dropdown${('', ' active')[topmenu == 'home']}"> - <a href="${static_url("home", include_version=False)}" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span>${_('Shows')}</span> + <a href="${static_url("home/", include_version=False)}" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span>${_('Shows')}</span> <b class="caret"></b> </a> <ul class="dropdown-menu"> - <li><a href="${static_url("home", include_version=False)}"><i class="fa fa-fw fa-home"></i> ${_('Show List')}</a></li> - <li><a href="${static_url("addShows", include_version=False)}"><i class="fa fa-fw fa-television"></i> ${_('Add Shows')}</a></li> - <li><a href="${static_url("home/postprocess", include_version=False)}"><i class="fa fa-fw fa-refresh"></i> ${_('Manual Post-Processing')}</a></li> + <li><a href="${static_url("home/", include_version=False)}"><i class="fa fa-fw fa-home"></i> ${_('Show List')}</a></li> + <li><a href="${static_url("addShows/", include_version=False)}"><i class="fa fa-fw fa-television"></i> ${_('Add Shows')}</a></li> + <li><a href="${static_url("home/postprocess/", include_version=False)}"><i class="fa fa-fw fa-refresh"></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="${static_url("home/displayShow?show=${recentShow['indexerid']}", include_version=False)}><i class="fa fa-fw fa-television"></i> ${recentShow['name']|trim,h}</a></li> + <li><a href="${static_url("home/displayShow?show={}".format(recentShow['indexerid']), include_version=False)}"><i class="fa fa-fw fa-television"></i> ${recentShow['name']|trim,h}</a></li> % endfor % endif </ul> @@ -153,58 +153,58 @@ </li> <li id="NAVschedule"${('', ' class="active"')[topmenu == 'schedule']}> - <a href="${static_url("schedule", include_version=False)}">${_('Schedule')}</a> + <a href="${static_url("schedule/", include_version=False)}">${_('Schedule')}</a> </li> <li id="NAVhistory"${('', ' class="active"')[topmenu == 'history']}> - <a href="${static_url("history", include_version=False)}">${_('History')}</a> + <a href="${static_url("history/", include_version=False)}">${_('History')}</a> </li> <li id="NAVmanage" class="navbar-split dropdown${('', ' active')[topmenu == 'manage']}"> - <a href="${static_url("manage/episodeStatuses", include_version=False)}" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span>${_('Manage')}</span> + <a href="${static_url("manage/episodeStatuses/", include_version=False)}" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span>${_('Manage')}</span> <b class="caret"></b> </a> <ul class="dropdown-menu"> - <li><a href="${static_url("manage", include_version=False)}"><i class="fa fa-fw fa-pencil"></i> ${_('Mass Update')}</a></li> - <li><a href="${static_url("manage/backlogOverview", include_version=False)}"><i class="fa fa-fw fa-binoculars"></i> ${_('Backlog Overview')}</a></li> - <li><a href="${static_url("manage/manageSearches", include_version=False)}"><i class="fa fa-fw fa-search"></i> ${_('Manage Searches')}</a></li> - <li><a href="${static_url("manage/episodeStatuses", include_version=False)}"><i class="fa fa-fw fa-gavel"></i> ${_('Episode Status Management')}</a></li> + <li><a href="${static_url("manage/", include_version=False)}"><i class="fa fa-fw fa-pencil"></i> ${_('Mass Update')}</a></li> + <li><a href="${static_url("manage/backlogOverview/", include_version=False)}"><i class="fa fa-fw fa-binoculars"></i> ${_('Backlog Overview')}</a></li> + <li><a href="${static_url("manage/manageSearches/", include_version=False)}"><i class="fa fa-fw fa-search"></i> ${_('Manage Searches')}</a></li> + <li><a href="${static_url("manage/episodeStatuses/", include_version=False)}"><i class="fa fa-fw fa-gavel"></i> ${_('Episode Status Management')}</a></li> % if sickbeard.USE_PLEX_SERVER and sickbeard.PLEX_SERVER_HOST != "": - <li><a href="${static_url("home/updatePLEX", include_version=False)}"><i class="menu-icon-plex"></i> ${_('Update PLEX')}</a></li> + <li><a href="${static_url("home/updatePLEX/", include_version=False)}"><i class="menu-icon-plex"></i> ${_('Update PLEX')}</a></li> % endif % if sickbeard.USE_KODI and sickbeard.KODI_HOST != "": - <li><a href="${static_url("home/updateKODI", include_version=False)}"><i class="menu-icon-kodi"></i> ${_('Update KODI')}</a></li> + <li><a href="${static_url("home/updateKODI/", include_version=False)}"><i class="menu-icon-kodi"></i> ${_('Update KODI')}</a></li> % endif % if sickbeard.USE_EMBY and sickbeard.EMBY_HOST != "" and sickbeard.EMBY_APIKEY != "": - <li><a href="${static_url("home/updateEMBY", include_version=False)}"><i class="menu-icon-emby"></i> ${_('Update Emby')}</a></li> + <li><a href="${static_url("home/updateEMBY/", include_version=False)}"><i class="menu-icon-emby"></i> ${_('Update Emby')}</a></li> % endif % if manage_torrents_url: <li><a href="${manage_torrents_url}" target="_blank"><i class="fa fa-fw fa-download"></i> ${_('Manage Torrents')}</a></li> % endif % if sickbeard.USE_FAILED_DOWNLOADS: - <li><a href="${static_url("manage/failedDownloads", include_version=False)}"><i class="fa fa-fw fa-thumbs-o-down"></i> ${_('Failed Downloads')}</a></li> + <li><a href="${static_url("manage/failedDownloads/", include_version=False)}"><i class="fa fa-fw fa-thumbs-o-down"></i> ${_('Failed Downloads')}</a></li> % endif % if sickbeard.USE_SUBTITLES: - <li><a href="${static_url("manage/subtitleMissed", include_version=False)}"><i class="fa fa-fw fa-language"></i> ${_('Missed Subtitle Management')}</a></li> + <li><a href="${static_url("manage/subtitleMissed/", include_version=False)}"><i class="fa fa-fw fa-language"></i> ${_('Missed Subtitle Management')}</a></li> % endif </ul> <div style="clear:both;"></div> </li> <li id="NAVconfig" class="navbar-split dropdown${('', ' active')[topmenu == 'config']}"> - <a href="${static_url("config", include_version=False) }" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span class="visible-xs-inline">Config</span><img src="${ static_url('images/menu/system18.png')}" class="navbaricon hidden-xs" /> + <a href="${static_url("config/", include_version=False) }" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span class="visible-xs-inline">Config</span><img src="${ static_url('images/menu/system18.png')}" class="navbaricon hidden-xs" /> <b class="caret"></b> </a> <ul class="dropdown-menu"> - <li><a href="${static_url("config", include_version=False)}"><i class="fa fa-fw fa-question"></i> ${_('Help & Info')}</a></li> - <li><a href="${static_url("config/general", include_version=False)}"><i class="fa fa-fw fa-cog"></i> ${_('General')}</a></li> - <li><a href="${static_url("config/backuprestore", include_version=False)}"><i class="fa fa-fw fa-floppy-o"></i> ${_('Backup & Restore')}</a></li> - <li><a href="${static_url("config/search", include_version=False)}"><i class="fa fa-fw fa-search"></i> ${_('Search Settings')}</a></li> - <li><a href="${static_url("config/providers", include_version=False)}"><i class="fa fa-fw fa-plug"></i> ${_('Search Providers')}</a></li> - <li><a href="${static_url("config/subtitles", include_version=False)}"><i class="fa fa-fw fa-language"></i> ${_('Subtitles Settings')}</a></li> - <li><a href="${static_url("config/postProcessing", include_version=False)}"><i class="fa fa-fw fa-refresh"></i> ${_('Post Processing')}</a></li> - <li><a href="${static_url("config/notifications", include_version=False)}"><i class="fa fa-fw fa-bell-o"></i> ${_('Notifications')}</a></li> - <li><a href="${static_url("config/anime", include_version=False)}"><i class="fa fa-fw fa-eye"></i> ${_('Anime')}</a></li> + <li><a href="${static_url("config/", include_version=False)}"><i class="fa fa-fw fa-question"></i> ${_('Help & Info')}</a></li> + <li><a href="${static_url("config/general/", include_version=False)}"><i class="fa fa-fw fa-cog"></i> ${_('General')}</a></li> + <li><a href="${static_url("config/backuprestore/", include_version=False)}"><i class="fa fa-fw fa-floppy-o"></i> ${_('Backup & Restore')}</a></li> + <li><a href="${static_url("config/search/", include_version=False)}"><i class="fa fa-fw fa-search"></i> ${_('Search Settings')}</a></li> + <li><a href="${static_url("config/providers/", include_version=False)}"><i class="fa fa-fw fa-plug"></i> ${_('Search Providers')}</a></li> + <li><a href="${static_url("config/subtitles/", include_version=False)}"><i class="fa fa-fw fa-language"></i> ${_('Subtitles Settings')}</a></li> + <li><a href="${static_url("config/postProcessing/", include_version=False)}"><i class="fa fa-fw fa-refresh"></i> ${_('Post Processing')}</a></li> + <li><a href="${static_url("config/notifications/", include_version=False)}"><i class="fa fa-fw fa-bell-o"></i> ${_('Notifications')}</a></li> + <li><a href="${static_url("config/anime/", include_version=False)}"><i class="fa fa-fw fa-eye"></i> ${_('Anime')}</a></li> </ul> <div style="clear:both;"></div> </li> @@ -221,17 +221,17 @@ toolsBadge = '' %> <li id="NAVsystem" class="navbar-split dropdown${('', ' active')[topmenu == 'system']}"> - <a href="${static_url("home/status", include_version=False) }" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span class="visible-xs-inline">${_('Tools')}</span><img src="${ static_url('images/menu/system18-2.png')}" class="navbaricon hidden-xs" />${toolsBadge} + <a href="${static_url("home/status/", include_version=False) }" class="dropdown-toggle" aria-haspopup="true" data-toggle="dropdown" data-hover="dropdown"><span class="visible-xs-inline">${_('Tools')}</span><img src="${ static_url('images/menu/system18-2.png')}" class="navbaricon hidden-xs" />${toolsBadge} <b class="caret"></b> </a> <ul class="dropdown-menu"> - <li><a href="${static_url("news", include_version=False)}"><i class="fa fa-fw fa-newspaper-o"></i> ${_('News')}${newsBadge}</a></li> - <li><a href="${static_url("IRC", include_version=False)}"><i class="fa fa-fw fa-hashtag"></i> ${_('IRC')}</a></li> - <li><a href="${static_url("changes", include_version=False)}"><i class="fa fa-fw fa-globe"></i> ${_('Changelog')}</a></li> + <li><a href="${static_url("news/", include_version=False)}"><i class="fa fa-fw fa-newspaper-o"></i> ${_('News')}${newsBadge}</a></li> + <li><a href="${static_url("IRC/", include_version=False)}"><i class="fa fa-fw fa-hashtag"></i> ${_('IRC')}</a></li> + <li><a href="${static_url("changes/", include_version=False)}"><i class="fa fa-fw fa-globe"></i> ${_('Changelog')}</a></li> <li><a href="https://github.com/SickRage/SickRage/wiki/Donations" rel="noreferrer" onclick="window.open('${sickbeard.ANON_REDIRECT}' + this.href); return false;"><i class="fa fa-fw fa-life-ring"></i> ${_('Support SickRage')}</a></li> <li role="separator" class="divider"></li> %if numErrors: - <li><a href="${static_url("errorlogs", include_version=False)}"><i class="fa fa-fw fa-exclamation-circle"></i> ${_('View Errors')} <span class="badge btn-danger">${numErrors}</span></a></li> + <li><a href="${static_url("errorlogs/", include_version=False)}"><i class="fa fa-fw fa-exclamation-circle"></i> ${_('View Errors')} <span class="badge btn-danger">${numErrors}</span></a></li> %endif %if numWarnings: <li> @@ -240,20 +240,18 @@ </a> </li> %endif - <li><a href="${static_url("errorlogs/viewlog", include_version=False)}"><i class="fa fa-fw fa-file-text-o"></i> ${_('View Log')}</a></li> + <li><a href="${static_url("errorlogs/viewlog/", include_version=False)}"><i class="fa fa-fw fa-file-text-o"></i> ${_('View Log')}</a></li> <li role="separator" class="divider"></li> - <li><a href="${static_url("home/updateCheck?pid={}".format(sbPID), include_version=False)}><i class="fa fa-fw fa-wrench"></i> ${_('Check For Updates')}</a></li> + <li><a href="${static_url("home/updateCheck?pid={}".format(sbPID), include_version=False)}"><i class="fa fa-fw fa-wrench"></i> ${_('Check For Updates')}</a></li> <li><a href="${static_url("home/restart/?pid={}".format(sbPID), include_version=False)}" class="confirm restart"><i class="fa fa-fw fa-repeat"></i> ${_('Restart')}</a></li> - <li><a href="${static_url("home/shutdown/?pid={}".format(sbPID), include_version=False)}" class="confirm shutdown"><i class="fa \ - fa-fw \ - - fa-power-off"></i> ${_('Shutdown')}</a></li> + <li><a href="${static_url("home/shutdown/?pid={}".format(sbPID), include_version=False)}" class="confirm shutdown"><i + class="fa fa-fw fa-power-off"></i> ${_('Shutdown')}</a></li> % if srLogin: - <li><a href="${static_url("logout", include_version=False)} class="confirm logout"><i class="fa fa-fw fa-sign-out"></i> ${_('Logout')}</a></li> + <li><a href="${static_url("logout", include_version=False)}" class="confirm logout"><i class="fa fa-fw fa-sign-out"></i> ${_('Logout')}</a></li> % endif <li role="separator" class="divider"></li> - <li><a href="${static_url("home/status", include_version=False)}"><i class="fa fa-fw fa-info-circle"></i> ${_('Server Status')}</a></li> + <li><a href="${static_url("home/status/", include_version=False)}"><i class="fa fa-fw fa-info-circle"></i> ${_('Server Status')}</a></li> </ul> <div style="clear:both;"></div> </li> @@ -333,7 +331,7 @@ <span class="footerhighlight">${ep_downloaded}</span> % if ep_snatched: <span class="footerhighlight"> - <a href="${static_url("manage/episodeStatuses?whichStatus=2", include_version=False)} title="${_('View overview of snatched episodes')}"> + <a href="${static_url("manage/episodeStatuses?whichStatus=2", include_version=False)}" title="${_('View overview of snatched episodes')}"> +${ep_snatched} </a> </span> ${_('Snatched')} diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py index 7a89584eea2ec45ca38ccb9d8c8ea25340618c61..ce7d98735980fd7bea85115c744d6d0f97f6ad81 100644 --- a/sickbeard/webserve.py +++ b/sickbeard/webserve.py @@ -53,7 +53,7 @@ from tornado.gen import coroutine from tornado.ioloop import IOLoop from tornado.process import cpu_count from tornado.routes import route -from tornado.web import authenticated, HTTPError, RequestHandler, StaticFileHandler +from tornado.web import addslash, authenticated, HTTPError, RequestHandler, StaticFileHandler import sickbeard from sickbeard import classes, clients, config, db, helpers, logger, naming, network_timezones, notifiers, sab, search_queue, subtitles as subtitle_module, ui @@ -2431,6 +2431,7 @@ class HomePostProcess(Home): def __init__(self, *args, **kwargs): super(HomePostProcess, self).__init__(*args, **kwargs) + @addslash def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="home_postprocess.mako") return t.render(title=_('Post Processing'), header=_('Post Processing'), topmenu='home', controller="home", action="postProcess") @@ -3817,6 +3818,7 @@ class Config(WebRoot): return menu + @addslash def index(self): t = PageTemplate(rh=self, filename="config.mako") @@ -3862,6 +3864,7 @@ class ConfigShares(Config): def __init__(self, *args, **kwargs): super(ConfigShares, self).__init__(*args, **kwargs) + @addslash def index(self): t = PageTemplate(rh=self, filename="config_shares.mako") @@ -3900,6 +3903,7 @@ class ConfigGeneral(Config): def __init__(self, *args, **kwargs): super(ConfigGeneral, self).__init__(*args, **kwargs) + @addslash def index(self): t = PageTemplate(rh=self, filename="config_general.mako") @@ -4095,6 +4099,7 @@ class ConfigBackupRestore(Config): def __init__(self, *args, **kwargs): super(ConfigBackupRestore, self).__init__(*args, **kwargs) + @addslash def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="config_backuprestore.mako") @@ -4158,6 +4163,7 @@ class ConfigSearch(Config): def __init__(self, *args, **kwargs): super(ConfigSearch, self).__init__(*args, **kwargs) + @addslash def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="config_search.mako") @@ -4295,6 +4301,7 @@ class ConfigPostProcessing(Config): def __init__(self, *args, **kwargs): super(ConfigPostProcessing, self).__init__(*args, **kwargs) + @addslash def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="config_postProcessing.mako") @@ -4472,6 +4479,7 @@ class ConfigProviders(Config): def __init__(self, *args, **kwargs): super(ConfigProviders, self).__init__(*args, **kwargs) + @addslash def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="config_providers.mako") @@ -4918,6 +4926,7 @@ class ConfigNotifications(Config): def __init__(self, *args, **kwargs): super(ConfigNotifications, self).__init__(*args, **kwargs) + @addslash def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="config_notifications.mako") @@ -5198,6 +5207,7 @@ class ConfigSubtitles(Config): def __init__(self, *args, **kwargs): super(ConfigSubtitles, self).__init__(*args, **kwargs) + @addslash def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="config_subtitles.mako") @@ -5264,6 +5274,7 @@ class ConfigAnime(Config): def __init__(self, *args, **kwargs): super(ConfigAnime, self).__init__(*args, **kwargs) + @addslash def index(self, *args_, **kwargs_): t = PageTemplate(rh=self, filename="config_anime.mako") @@ -5319,6 +5330,7 @@ class ErrorLogs(WebRoot): return menu + @addslash def index(self, level=logger.ERROR): # pylint: disable=arguments-differ level = try_int(level, logger.ERROR)