Commit 60cabede authored by echel0n's avatar echel0n

Refactored display show view header

parent 8e662ef3
# Changelog
- * 817bd5d - 2018-12-04: Release v9.4.48
- * dbaa83e - 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
- * ade442d - 2018-12-02: Upgraded to Tornado 5.1.1 Refactored IOLoop placement.
......
......@@ -23,169 +23,169 @@
<%block name="content">
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="row">
<!-- Alert -->
% if show_message:
<div class="col-md-12 p-0">
<div class="alert alert-info rounded-0 text-center">
<strong>${show_message}</strong>
<div class="col-lg-12 mx-auto">
<div class="row">
<!-- Alert -->
% if show_message:
<div class="col-md-12 p-0">
<div class="alert alert-info rounded-0 text-center">
<strong>${show_message}</strong>
</div>
</div>
</div>
% endif
% endif
<div class="col">
<div class="input-group mx-auto" style="width: 30%">
<div class="input-group-prepend">
<button id="prevShow" class="btn fas fa-arrow-left"></button>
<div class="col-lg-10 mx-auto">
<div class="input-group mx-auto" style="width: 30%">
<div class="input-group-prepend">
<button id="prevShow" class="btn fas fa-arrow-left"></button>
</div>
<select class="form-control" id="pickShow" title="Change Show">
% for curShowList in sortedShowLists:
% if len(sortedShowLists) > 1:
<optgroup label="${curShowList[0]}">
% endif
% for curShow in curShowList[1]:
<option value="${curShow.indexerid}" ${('', 'selected')[curShow == show]}>${curShow.name}</option>
% endfor
% if len(sortedShowLists) > 1:
</optgroup>
% endif
% endfor
</select>
<div class="input-group-append">
<button id="nextShow" class="btn fas fa-arrow-right"></button>
</div>
</div>
<select class="form-control" id="pickShow" title="Change Show">
% for curShowList in sortedShowLists:
% if len(sortedShowLists) > 1:
<optgroup label="${curShowList[0]}">
<br/>
<div class="row" id="showtitle" data-showname="${show.name}">
<div class="col-6">
<h1>
${show.name}
</h1>
</div>
<div class="col-6">
% if seasonResults:
% if int(seasonResults[-1]) == 0:
<% season_special = 1 %>
% else:
<% season_special = 0 %>
% endif
% for curShow in curShowList[1]:
<option value="${curShow.indexerid}" ${('', 'selected')[curShow == show]}>${curShow.name}</option>
% endfor
% if len(sortedShowLists) > 1:
</optgroup>
% if not sickrage.app.config.display_show_specials and season_special:
<% lastSeason = seasonResults.pop(-1) %>
% endif
% endfor
</select>
<div class="input-group-append">
<button id="nextShow" class="btn fas fa-arrow-right"></button>
</div>
</div>
<br/>
<div class="row" id="showtitle" data-showname="${show.name}">
<div class="col-6">
<h1>
${show.name}
</h1>
</div>
<div class="col-6">
% if seasonResults:
% if int(seasonResults[-1]) == 0:
<% season_special = 1 %>
% else:
<% season_special = 0 %>
% endif
% if not sickrage.app.config.display_show_specials and season_special:
<% lastSeason = seasonResults.pop(-1) %>
% endif
<div class="text-right mt-3">
% if season_special:
${_('Display Specials:')}
<a class="inner"
href="${srWebRoot}/toggleDisplayShowSpecials/?show=${show.indexerid}">
${('Show', 'Hide')[bool(sickrage.app.config.display_show_specials)]}
</a>
% endif
% if (len(seasonResults) > 14):
<select id="seasonJump" class="form-control input-sm" title="Jump to Season"
style="position: relative; top: -4px;">
<option value="jump">Jump to Season</option>
<div class="text-right mt-3">
% if season_special:
${_('Display Specials:')}
<a class="inner"
href="${srWebRoot}/toggleDisplayShowSpecials/?show=${show.indexerid}">
${('Show', 'Hide')[bool(sickrage.app.config.display_show_specials)]}
</a>
% endif
% if (len(seasonResults) > 14):
<select id="seasonJump" class="form-control input-sm" title="Jump to Season"
style="position: relative; top: -4px;">
<option value="jump">Jump to Season</option>
% for seasonNum in seasonResults:
<option value="#season-${seasonNum}"
data-season="${seasonNum}">${('Specials', 'Season ' + str(seasonNum))[int(seasonNum) > 0]}</option>
% endfor
</select>
% else:
${_('Season:')}
% for seasonNum in seasonResults:
<option value="#season-${seasonNum}"
data-season="${seasonNum}">${('Specials', 'Season ' + str(seasonNum))[int(seasonNum) > 0]}</option>
% if int(seasonNum) == 0:
<a href="#season-${seasonNum}">Specials</a>
% else:
<a href="#season-${seasonNum}">${str(seasonNum)}</a>
% endif
% if seasonNum != seasonResults[-1]:
<span>|</span>
% endif
% endfor
</select>
% else:
${_('Season:')}
% for seasonNum in seasonResults:
% if int(seasonNum) == 0:
<a href="#season-${seasonNum}">Specials</a>
% else:
<a href="#season-${seasonNum}">${str(seasonNum)}</a>
% endif
% if seasonNum != seasonResults[-1]:
<span>|</span>
% endif
% endfor
% endif
</div>
% endif
% endif
</div>
% endif
</div>
</div>
<hr class="bg-light"/>
</div>
<hr class="bg-light"/>
</div>
</div>
<div class="row">
<div class="col">
<div class="card bg-transparent font-weight-bold"
style="background-image:linear-gradient(to bottom, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.6) 100%),
url(${srWebRoot}${showImage(show.indexerid, 'banner').url});
background-size: 100% 100%;">
% if show.overview:
<div class="card-header bg-transparent">
<i>${show.overview}</i>
</div>
% endif
<div class="card-body">
<div class="card-text">
<table class="float-md-left">
<tr>
<td class="showLegend">${_('Rating:')}</td>
<td>
% if show.imdb_info and 'imdbRating' in show.imdb_info:
<% rating_tip = str(show.imdb_info['imdbRating']) + " / 10" + " Stars and " + str(show.imdb_info['imdbVotes']) + " Votes" %>
<span id="imdbstars" data-imdb-rating="${show.imdb_info['imdbRating']}"
title="${rating_tip}"></span>
% endif
</td>
</tr>
<tr>
<td class="showLegend">${_('Quality:')}</td>
<td>
<% anyQualities, bestQualities = Quality.splitQuality(int(show.quality)) %>
% if show.quality in qualityPresets:
${renderQualityPill(show.quality)}
% else:
% if anyQualities:
<i>Allowed:</i> ${", ".join([capture(renderQualityPill, x) for x in sorted(anyQualities)])}${("", "<br>")[bool(bestQualities)]}
% endif
% if bestQualities:
<i>Preferred:</i> ${", ".join([capture(renderQualityPill, x) for x in sorted(bestQualities)])}
% endif
% endif
</td>
</tr>
<tr>
<td class="showLegend">${_('Show Status:')}</td>
<td>${show.status}</td>
</tr>
% if show.network and show.airs:
<tr>
<td class="showLegend">${_('Originally Airs:')}</td>
<td>${show.airs} ${("<span style='color: red;'><b>(invalid Timeformat)</b></span> ", "")[sickrage.app.tz_updater.test_timeformat(show.airs)]}
on ${show.network}</td>
</tr>
% elif show.network:
<tr>
<td class="showLegend">${_('Originally Airs:')}</td>
<td>${show.network}</td>
</tr>
% elif show.airs:
<tr>
<td class="showLegend">${_('Originally Airs:')}</td>
<td>${show.airs} ${("<span style='color: red;'><b>(invalid Timeformat)</b></span>", "")[sickrage.app.tz_updater.test_timeformat(show.airs)]}</td>
</tr>
<div class="row bg-dark border border-white">
<div class="col">
<div class="row">
<div class="col-lg-8 mx-auto">
<div class="card font-weight-bold">
% if show.overview:
<div class="card-header">
<i>${show.overview}</i>
</div>
% endif
<div class="card-body bg-secondary">
<div class="card-text">
<table class="float-md-left">
<tr>
<td class="showLegend">${_('Rating:')}</td>
<td>
% if show.imdb_info and 'imdbRating' in show.imdb_info:
<% rating_tip = str(show.imdb_info['imdbRating']) + " / 10" + " Stars and " + str(show.imdb_info['imdbVotes']) + " Votes" %>
<span id="imdbstars"
data-imdb-rating="${show.imdb_info['imdbRating']}"
title="${rating_tip}"></span>
% endif
</td>
</tr>
<tr>
<td class="showLegend">${_('Quality:')}</td>
<td>
<% anyQualities, bestQualities = Quality.splitQuality(int(show.quality)) %>
% if show.quality in qualityPresets:
${renderQualityPill(show.quality)}
% else:
% if anyQualities:
<i>Allowed:</i> ${", ".join([capture(renderQualityPill, x) for x in sorted(anyQualities)])}${("", "<br>")[bool(bestQualities)]}
% endif
% if bestQualities:
<i>Preferred:</i> ${", ".join([capture(renderQualityPill, x) for x in sorted(bestQualities)])}
% endif
% endif
</td>
</tr>
<tr>
<td class="showLegend">${_('Show Status:')}</td>
<td>${show.status}</td>
</tr>
% if show.network and show.airs:
<tr>
<td class="showLegend">${_('Originally Airs:')}</td>
<td>${show.airs} ${("<span style='color: red;'><b>(invalid Timeformat)</b></span> ", "")[sickrage.app.tz_updater.test_timeformat(show.airs)]}
on ${show.network}</td>
</tr>
% elif show.network:
<tr>
<td class="showLegend">${_('Originally Airs:')}</td>
<td>${show.network}</td>
</tr>
% elif show.airs:
<tr>
<td class="showLegend">${_('Originally Airs:')}</td>
<td>${show.airs} ${("<span style='color: red;'><b>(invalid Timeformat)</b></span>", "")[sickrage.app.tz_updater.test_timeformat(show.airs)]}</td>
</tr>
% endif
<tr>
<td class="showLegend">${_('Start Year:')}</td>
<td>
<span>${show.startyear}</span>
</td>
</tr>
<tr>
<td class="showLegend">${_('Start Year:')}</td>
<td>
<span>${show.startyear}</span>
</td>
</tr>
<tr>
<td class="showLegend">${_('Runtime:')}</td>
<td>
<tr>
<td class="showLegend">${_('Runtime:')}</td>
<td>
<span>
% if show.runtime:
${show.runtime} ${_('minutes')}
......@@ -193,266 +193,276 @@
<span style="color: red;"><b>${_('UNKNOWN')}</b></span>
% endif
</span>
</td>
</tr>
<tr>
<td class="showLegend">${_('Info Sites:')}</td>
<td>
% if show.imdbid:
<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}">
<i class="sickrage-core sickrage-core-imdb"
style="margin-top: -1px; vertical-align:middle;"></i>
</a>
% endif
% 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}">
<i class="sickrage-core sickrage-core-xem"
style="margin-top: -1px; vertical-align:middle;"></i>
</a>
% endif
<a href="${anon_url(IndexerApi(show.indexer).config['show_url'], show.indexerid)}"
onclick="window.open(this.href, '_blank'); return false;"
title="<% IndexerApi(show.indexer).config["show_url"] + str(show.indexerid) %>">
<i class="sickrage-core sickrage-core-${IndexerApi(show.indexer).name.lower()}"
style="margin-top: -1px; vertical-align:middle;"></i>
</a>
</td>
</tr>
<tr>
<td class="showLegend">${_('Genre:')}</td>
<td>
<ul class="list-group d-inline">
% if not show.imdbid and show.genre:
% for genre in show.genre.split(','):
<a href="${anon_url('http://trakt.tv/shows/popular/?genres=', genre.lower())}"
target="_blank"
title="View other popular ${genre} shows on trakt.tv.">
<li class="fas fa-tag badge badge-primary p-1"> ${genre}</li>
</td>
</tr>
<tr>
<td class="showLegend">${_('Info Sites:')}</td>
<td>
% if show.imdbid:
<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}">
<i class="sickrage-core sickrage-core-imdb"
style="margin-top: -1px; vertical-align:middle;"></i>
</a>
% endif
% 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}">
<i class="sickrage-core sickrage-core-xem"
style="margin-top: -1px; vertical-align:middle;"></i>
</a>
% endif
<a href="${anon_url(IndexerApi(show.indexer).config['show_url'], show.indexerid)}"
onclick="window.open(this.href, '_blank'); return false;"
title="<% IndexerApi(show.indexer).config["show_url"] + str(show.indexerid) %>">
<i class="sickrage-core sickrage-core-${IndexerApi(show.indexer).name.lower()}"
style="margin-top: -1px; vertical-align:middle;"></i>
</a>
% endfor
</td>
</tr>
<tr>
<td class="showLegend">${_('Genre:')}</td>
<td>
<ul class="list-group d-inline">
% if not show.imdbid and show.genre:
% for genre in show.genre.split(','):
<a href="${anon_url('http://trakt.tv/shows/popular/?genres=', genre.lower())}"
target="_blank"
title="View other popular ${genre} shows on trakt.tv.">
<li class="fas fa-tag badge badge-primary p-1"> ${genre}</li>
</a>
% endfor
% endif
% if show.imdb_info and 'Year' in show.imdb_info:
% for imdbgenre in show.imdb_info['Genre'].replace('Sci-Fi','Science-Fiction').split(','):
<a href="${anon_url('http://trakt.tv/shows/popular/?genres=', imdbgenre.lower())}"
target="_blank"
title="View other popular ${imdbgenre} shows on trakt.tv.">
<li class="fas fa-tag badge badge-primary p-1"> ${imdbgenre}</li>
</a>
% endfor
% endif
</ul>
</td>
</tr>
<tr>
<td class="showLegend">${_('Default EP Status:')}</td>
<td>${statusStrings[show.default_ep_status]}</td>
</tr>
<td class="showLegend">${_('Location:')}</td>
% if os.path.isdir(showLoc):
<td>${showLoc}</td>
% else:
<td><span style="color: red;">${showLoc}</span> (${_('Missing')})</td>
% endif
% if show.imdb_info and 'Year' in show.imdb_info:
% for imdbgenre in show.imdb_info['Genre'].replace('Sci-Fi','Science-Fiction').split(','):
<a href="${anon_url('http://trakt.tv/shows/popular/?genres=', imdbgenre.lower())}"
target="_blank"
title="View other popular ${imdbgenre} shows on trakt.tv.">
<li class="fas fa-tag badge badge-primary p-1"> ${imdbgenre}</li>
</a>
% endfor
<tr>
<td class="showLegend">${_('Size:')}</td>
<td>${pretty_filesize(show.show_size)}</td>
</tr>
<tr>
<td class="showLegend">${_('Scene Name:')}</td>
<td>${(show.name, " | ".join(show.exceptions))[show.exceptions != 0]}</td>
</tr>
<tr>
<td class="showLegend">${_('Search Delay:')}</td>
<td>${show.search_delay} day(s)</td>
</tr>
% if show.rls_require_words:
<tr>
<td class="showLegend">${_('Required Words:')}</td>
<td>${show.rls_require_words}</td>
</tr>
% endif
</ul>
</td>
</tr>
<tr>
<td class="showLegend">${_('Default EP Status:')}</td>
<td>${statusStrings[show.default_ep_status]}</td>
</tr>
<td class="showLegend">${_('Location:')}</td>
% if os.path.isdir(showLoc):
<td>${showLoc}</td>
% else:
<td><span style="color: red;">${showLoc}</span> (${_('Missing')})</td>
% endif
<tr>
<td class="showLegend">${_('Size:')}</td>
<td>${pretty_filesize(show.show_size)}</td>
</tr>
<tr>
<td class="showLegend">${_('Scene Name:')}</td>
<td>${(show.name, " | ".join(show.exceptions))[show.exceptions != 0]}</td>
</tr>
<tr>
<td class="showLegend">${_('Search Delay:')}</td>
<td>${show.search_delay} day(s)</td>
</tr>
% if show.rls_require_words:
<tr>
<td class="showLegend">${_('Required Words:')}</td>
<td>${show.rls_require_words}</td>
</tr>
% endif
% if show.rls_ignore_words:
<tr>
<td class="showLegend">${_('Ignored Words:')}</td>
<td>${show.rls_ignore_words}</td>
</tr>
% endif
% if bwl and bwl.whitelist:
<tr>
<td class="showLegend">${_('Wanted Group')}${("", "s")[len(bwl.whitelist) > 1]}
:
</td>
<td>${', '.join(bwl.whitelist)}</td>
</tr>
% endif
% if bwl and bwl.blacklist:
<tr>
<td class="showLegend">${_('Unwanted Group')}${("", "s")[len(bwl.blacklist) > 1]}
:
</td>
<td>${', '.join(bwl.blacklist)}</td>
</tr>
% endif
</table>
<table class="float-md-right">
<% info_flag = sickrage.subtitles.code_from_code(show.lang) if show.lang else '' %>
<tr>
<td class="showLegend">${_('Info Language:')}</td>
<td>
<i class="sickrage-flags sickrage-flags-${info_flag}"></i>
</td>
</tr>
% if sickrage.app.config.use_subtitles:
<tr>
<td class="showLegend">${_('Subtitles:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.subtitles)]}"></i>
</td>
</tr>
% endif
<tr>
<td class="showLegend">${_('Subtitles Metadata:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.subtitles_sr_metadata)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Season Folders:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(not show.flatten_folders or sickrage.app.config.naming_force_folders)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Paused:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.paused)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Air-by-Date:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.air_by_date)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Sports:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.is_sports)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Anime:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.is_anime)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('DVD Order:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.dvdorder)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Scene Numbering:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.scene)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Skip Downloaded:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.skip_downloaded)]}"></i>
</td>
</tr>
</table>
% if show.rls_ignore_words:
<tr>
<td class="showLegend">${_('Ignored Words:')}</td>
<td>${show.rls_ignore_words}</td>
</tr>
% endif
% if bwl and bwl.whitelist:
<tr>
<td class="showLegend">${_('Wanted Group')}${("", "s")[len(bwl.whitelist) > 1]}
:
</td>
<td>${', '.join(bwl.whitelist)}</td>
</tr>
% endif
% if bwl and bwl.blacklist:
<tr>
<td class="showLegend">${_('Unwanted Group')}${("", "s")[len(bwl.blacklist) > 1]}
:
</td>
<td>${', '.join(bwl.blacklist)}</td>
</tr>
% endif
</table>
<table class="float-md-right">
<% info_flag = sickrage.subtitles.code_from_code(show.lang) if show.lang else '' %>
<tr>
<td class="showLegend">${_('Info Language:')}</td>
<td>
<i class="sickrage-flags sickrage-flags-${info_flag}"></i>
</td>
</tr>
% if sickrage.app.config.use_subtitles:
<tr>
<td class="showLegend">${_('Subtitles:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.subtitles)]}"></i>
</td>
</tr>
% endif
<tr>
<td class="showLegend">${_('Subtitles Metadata:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.subtitles_sr_metadata)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Season Folders:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(not show.flatten_folders or sickrage.app.config.naming_force_folders)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Paused:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.paused)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Air-by-Date:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.air_by_date)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Sports:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.is_sports)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Anime:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.is_anime)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('DVD Order:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.dvdorder)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Scene Numbering:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.scene)]}"></i>
</td>
</tr>
<tr>
<td class="showLegend">${_('Skip Downloaded:')}</td>
<td>
<i class="fa ${("fa-times text-danger", "fa-check text-success")[bool(show.skip_downloaded)]}"></i>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-1">
<div class="col text-left">
<div class="input-group w-50">
<select id="statusSelect" title="Change selected episode statuses" class="form-control">
<% availableStatus = [WANTED, SKIPPED, IGNORED, FAILED] %>
% if sickrage.app.developer:
<% availableStatus.append(UNAIRED) %>
% endif
% for curStatus in availableStatus + sorted(Quality.DOWNLOADED) + sorted(Quality.ARCHIVED):
% if curStatus not in [DOWNLOADED, ARCHIVED]:
<option value="${curStatus}">${statusStrings[curStatus]}</option>
% endif
% endfor
</select>
<div class="input-group-append">
<button id="changeStatus" class="btn fas fa-play"></button>
</div>
</div>
<input type="hidden" id="showID" value="${show.indexerid}"/>
<input type="hidden" id="indexer" value="${show.indexer}"/>
</div>
<div class="col">
<div class="row">
<div class="col text-right">
<div id="checkboxControls">
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="row mt-1">
<div class="col text-left">
<div class="input-group w-50">
<select id="statusSelect" title="Change selected episode statuses" class="form-control">
<% availableStatus = [WANTED, SKIPPED, IGNORED, FAILED] %>
% if sickrage.app.developer:
<% availableStatus.append(UNAIRED) %>
% endif
% for curStatus in availableStatus + sorted(Quality.DOWNLOADED) + sorted(Quality.ARCHIVED):
% if curStatus not in [DOWNLOADED, ARCHIVED]:
<option value="${curStatus}">${statusStrings[curStatus]}</option>
% endif
% endfor
</select>
<div class="input-group-append">
<button id="changeStatus" class="btn fas fa-play"></button>
</div>
</div>