mirror of
https://github.com/SickGear/SickGear.git
synced 2024-11-22 12:55:05 +00:00
e56303798c
Initial SickGear for Python 3.
442 lines
22 KiB
Cheetah
442 lines
22 KiB
Cheetah
#import sickgear
|
|
#import lib.adba as adba
|
|
#from sickgear import (anime, common, helpers, scene_exceptions)
|
|
#from sickgear.helpers import anon_url, generate_word_str
|
|
#from lib import exceptions_helper as exceptions
|
|
#from sickgear.tv import TVidProdid
|
|
<% def sg_var(varname, default=False): return getattr(sickgear, varname, default) %>#slurp#
|
|
<% def sg_str(varname, default=''): return getattr(sickgear, varname, default) %>#slurp#
|
|
##
|
|
#set global $title = 'Edit ' + getattr($show_obj, 'unique_name', $show_obj.name)
|
|
#set global $header = $show_obj.name
|
|
#set global $sbPath = '..'
|
|
#set global $topmenu = 'home'
|
|
#set $css = $getVar('css', 'reg')
|
|
#set $has_art = $getVar('has_art', None)
|
|
#set $restart = 'Restart SickGear for new features on this page'
|
|
#set $show_message = ($show_message, $restart)[None is $has_art]
|
|
#set global $page_body_attr = 'edit-show" class="' + $css
|
|
##
|
|
#import os.path
|
|
#from _23 import quote_plus
|
|
#from six import iteritems
|
|
#include $os.path.join($sg_str('PROG_DIR'), 'gui/slick/interfaces/default/inc_top.tmpl')
|
|
|
|
<script>
|
|
var config = {showLang: '$show_obj.lang', showIsAnime: #echo ('!1','!0')[$show_obj.is_anime]#, expandIds: #echo ('!1','!0')[$expand_ids]#}
|
|
</script>
|
|
<script type="text/javascript" src="$sbRoot/js/qualityChooser.js?v=$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/editShow.js?v=$sbPID"></script>
|
|
<script type="text/javascript" src="$sbRoot/js/livepanel.js?v=$sbPID"></script>
|
|
#if $varExists('header')
|
|
<h1 class="header"><span class="grey-text">Edit </span>$header</h1>
|
|
#else
|
|
<h1 class="title">$title</h1>
|
|
#end if
|
|
|
|
##
|
|
#set $html_checked = ' checked="checked"'
|
|
#set $html_disabled = ' disabled="disabled"'
|
|
<div id="background-container">
|
|
#if $has_art
|
|
<ul>
|
|
#for $k, ($image, $rating) in enumerate($fanart)
|
|
<li class="#echo ' '.join((x for x in ({10:'group', 20:'fave', 30:'avoid'}.get($rating, ''), ('', 'background first-load')[$start_image == $k]) if x)) #" style="background-image:url($sbRoot/show-poster/?tvid_prodid=$show_obj.tvid_prodid&which=fanart_$image)"></li>
|
|
#end for
|
|
</ul>
|
|
#end if
|
|
</div>
|
|
#if $show_message
|
|
<div class="alert alert-info">
|
|
$show_message
|
|
</div>
|
|
#end if
|
|
|
|
<div id="config">
|
|
<div id="config-content" class="linefix container">
|
|
<form action="edit-show" method="post" id="edit_show" style="width:894px">
|
|
<input type="hidden" name="tvid" id="tvid" value="$show_obj.tvid">
|
|
<input type="hidden" name="prodid" id="prodid" value="$show_obj.prodid">
|
|
<input type="hidden" name="tvid_prodid" id="tvid_prodid" value="$show_obj.tvid_prodid">
|
|
$xsrf_form_html
|
|
|
|
<div id="config-components">
|
|
<ul>
|
|
<li><a href="#core-component-group1">Common</a></li>
|
|
<li><a href="#core-component-group2">Search</a></li>
|
|
<li><a href="#core-component-group3">Other</a></li>
|
|
</ul>
|
|
|
|
<div id="core-component-group1" class="component-group">
|
|
|
|
<div class="field-pair">
|
|
<label for="paused">
|
|
<span class="component-title">Pause searching releases</span>
|
|
<span class="component-desc">
|
|
<input type="checkbox" name="paused" id="paused"#echo ('', $html_checked)[$show_obj.paused]#>
|
|
<p>for <b class="boldest grey-text">$show_obj.name</b></p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair#if $sg_str('SHOWLIST_TAGVIEW') != 'custom'# hidden#end if#">
|
|
<label for="tag">
|
|
<span class="component-title">Group show under</span>
|
|
<span class="component-desc">
|
|
<select name="tag" id="tag" class="form-control form-control-inline input-sm">
|
|
#for $tag in $sg_var('SHOW_TAGS', []):
|
|
<option value="$tag" #if $tag == $show_obj.tag then 'selected="selected"' else ''#>$tag#echo ('', ' (default)')['Show List' == $tag]#</option>
|
|
#end for
|
|
</select>
|
|
<span>on the "Show List" page</span>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<span class="label-container">
|
|
<span class="component-title">Alternative release name(s)</span>
|
|
<span class="component-desc">
|
|
<input type="text" id="SceneName" class="form-control form-control-inline input-sm input200" placeholder="Enter one title here, then 'Add'">
|
|
<select id="SceneNameSeason" class="form-control form-control-inline input-sm input100" style="float:left">
|
|
<option value="-1">Series</option>
|
|
#for $season in $seasonResults:
|
|
<option value="$season[0]">Season $season[0]</option>
|
|
#end for
|
|
</select>
|
|
<input class="btn btn-inline" type="button" value="Add" id="addSceneName">
|
|
<p style="float:left"><span class="add-tip">Enter one.. </span>e.g. Show, Show (2016), or The Show (US)</p>
|
|
<p class="clear-left note">searching and post-processing require the alternatives if "Show not found" errors are in the logs</p>
|
|
</span>
|
|
<span id="SceneException" class="component-desc" style="display:none">
|
|
<h5 class="grey-text" style="margin-bottom:5px">Alternative a.k.a scene exceptions list (multi-selectable)</h5>
|
|
<select id="exceptions_list" name="exceptions_list" multiple="multiple" class="input350" style="min-height:90px; float:left" >
|
|
#for $cur_exception_season in $show_obj.exceptions:
|
|
#for $cur_exception in $show_obj.exceptions[$cur_exception_season]:
|
|
<option value="$cur_exception_season|$cur_exception">S#echo ('%02d' % $cur_exception_season, '*')[$cur_exception_season == -1]#: $cur_exception</option>
|
|
#end for
|
|
#end for
|
|
</select>
|
|
<span><p class="note">S* = Any series. The original name is used along with this case insensitive list, except where season is specified</p></span>
|
|
<div style="margin-top:6px">
|
|
<input id="removeSceneName" value="Remove" class="btn pull-left" type="button">
|
|
</div>
|
|
</span>
|
|
<span class="component-desc" style="clear:both;padding-top:10px">
|
|
<input id="export-alts" value="Export" class="btn btn-inline" type="button"><p style="float:left">alternative names and/or numbers</p>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="rls_ignore_words">
|
|
<span class="component-title">Ignore result with any word</span>
|
|
<span class="component-desc">
|
|
<input type="text" name="rls_ignore_words" id="rls_ignore_words" value="$generate_word_str($show_obj.rls_ignore_words - $sickgear.IGNORE_WORDS, $show_obj.rls_ignore_words_regex)" class="form-control form-control-inline input-sm input350">
|
|
<p>e.g. [[regex:]word1, word2, ..., word_n, regex_n]</p>
|
|
<p class="note">ignore search result <em class="grey-text">if its title contains any</em> of these comma separated words or regular expressions</p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
#if $sickgear.IGNORE_WORDS:
|
|
<div class="field-pair">
|
|
<label for="rls_global_exclude_ignore">
|
|
<span class="component-title">Exclude global ignore word (multi select list)</span>
|
|
<span class="component-desc">
|
|
<select id="rls_global_exclude_ignore" name="rls_global_exclude_ignore" multiple="multiple" class="form-control form-control-inline input-sm input350">
|
|
#set $options = ''
|
|
#set $selected = ' selected=\"selected\"'
|
|
#set $num_selected = 0
|
|
#for $gw in $sickgear.IGNORE_WORDS:
|
|
#set $sel_html = ''
|
|
#if $gw in $show_obj.rls_global_exclude_ignore
|
|
#set $sel_html = $selected
|
|
#set $num_selected += 1
|
|
#end if
|
|
#set $options += "<option value=\"%s\"%s>%s</option>" % ($gw, $sel_html, $gw)
|
|
#end for
|
|
<option value=".*"#if $num_selected then '' else $selected#># Use all ignore word(s) (default) #</option>
|
|
$options
|
|
</select>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
#end if
|
|
|
|
<div class="field-pair">
|
|
<label for="rls_require_words">
|
|
<span class="component-title">Require at least one word</span>
|
|
<span class="component-desc">
|
|
<input type="text" name="rls_require_words" id="rls_require_words" value="$generate_word_str($show_obj.rls_require_words - $sickgear.REQUIRE_WORDS, $show_obj.rls_require_words_regex)" class="form-control form-control-inline input-sm input350">
|
|
<p>e.g. [[regex:]word1, word2, ..., word_n, regex_n]</p>
|
|
<p class="note">ignore search result <em class="grey-text">unless its title contains one</em> of these comma separated words or regular expressions</p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
#if $sickgear.REQUIRE_WORDS:
|
|
<div class="field-pair">
|
|
<label for="rls_global_exclude_require">
|
|
<span class="component-title">Exclude global require word (multi select list)</span>
|
|
<span class="component-desc">
|
|
<select id="rls_global_exclude_require" name="rls_global_exclude_require" multiple="multiple" class="form-control form-control-inline input-sm input350">
|
|
#set $options = ''
|
|
#set $selected = ' selected=\"selected\"'
|
|
#set $num_selected = 0
|
|
#for $gw in $sickgear.REQUIRE_WORDS:
|
|
#set $sel_html = ''
|
|
#if $gw in $show_obj.rls_global_exclude_require
|
|
#set $sel_html = $selected
|
|
#set $num_selected += 1
|
|
#end if
|
|
#set $options += "<option value=\"%s\"%s>%s</option>" % ($gw, $sel_html, $gw)
|
|
#end for
|
|
<option value=".*"#if $num_selected then '' else $selected#># Use all require word(s) (default) #</option>
|
|
$options
|
|
</select>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
#end if
|
|
|
|
|
|
<div class="field-pair">
|
|
#set $qualities = $common.Quality.splitQuality(int($show_obj.quality))
|
|
#set global $any_qualities = $qualities[0]
|
|
#set global $best_qualities = $qualities[1]
|
|
#include $os.path.join($sg_str('PROG_DIR'), 'gui/slick/interfaces/default/inc_qualityChooser.tmpl')
|
|
</div>
|
|
|
|
</div><!-- /component-group1 //-->
|
|
|
|
<div id="core-component-group2" class="component-group">
|
|
|
|
<div class="field-pair">
|
|
<label for="air_by_date">
|
|
<span class="component-title">Air by date release names</span>
|
|
<span class="component-desc">
|
|
<input type="checkbox" name="air_by_date" id="air_by_date"#echo ('', $html_checked)[$show_obj.air_by_date]#>
|
|
<p>#echo ('enable if releases contain dates', 'disable for episodic releases')[$show_obj.air_by_date]#, example: <em class="grey-text">Show.#echo ('03.02.2010', 'S02E03')[$show_obj.air_by_date]#</em></p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="scene">
|
|
<span class="component-title">Editable episode numbers</span>
|
|
<span class="component-desc">
|
|
<input type="checkbox" name="scene" id="scene"#echo ('', $html_checked)[$show_obj.scene]#>
|
|
<p>enable editable #if $show_has_scene_map then '(<em class="grey-text">and alternative scene release</em>) ' else ''# episode numbers for search and media processing</p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="dvdorder">
|
|
<span class="component-title">Use DVD titles and numbers</span>
|
|
<span class="component-desc">
|
|
<input type="checkbox" name="dvdorder" id="dvdorder"#echo ('', $html_checked)[$show_obj.dvdorder]#>
|
|
<p>#echo ('enable use of DVD title and episode ordering', 'disable use of TV network title, number and aired order')[$show_obj.dvdorder]#.
|
|
After changing this setting, a "force full update" is essential, and existing episodes should be manually renamed or replaced with #echo ('DVD', 'network')[$show_obj.dvdorder]# numbered releases</p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="infosrc-lang-select-edit">
|
|
<span class="component-title">Info language</span>
|
|
<span class="component-desc">
|
|
<select name="tvinfo_lang" id="infosrc-lang-select-edit" class="form-control form-control-inline input-sm"></select>
|
|
<span>fetch show information in this language</span>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="sports">
|
|
<span class="component-title">Show is sports</span>
|
|
<span class="component-desc">
|
|
<input type="checkbox" name="sports" id="sports"#echo ('', $html_checked)[$show_obj.sports]#>
|
|
<p>treat this show as a sporting or MMA event</p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="anime">
|
|
<span class="component-title">Show is anime</span>
|
|
<span class="component-desc">
|
|
<input type="checkbox" name="anime" id="anime"#echo ('', $html_checked)[$show_obj.is_anime]#>
|
|
<p>releases for this show are named like ... <em class="grey-text">Show.265</em> instead of <em class="grey-text">Show.S02E03</em></p>
|
|
#if not $show_obj.is_anime#<span id="anime-options" style="display:none">Update Show then edit again to view additional options here</span>#end if#
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
#if $show_obj.is_anime
|
|
#import sickgear.anime
|
|
#include $os.path.join($sg_str('PROG_DIR'), 'gui/slick/interfaces/default/inc_anigrouplists.tmpl')
|
|
<script type="text/javascript" src="$sbRoot/js/anigrouplists.js?v=$sbPID"></script>
|
|
#end if
|
|
</div><!-- /component-group2 //-->
|
|
|
|
<div id="core-component-group3" class="component-group">
|
|
|
|
<div class="field-pair">
|
|
<label for="prune">
|
|
<span class="component-title">Keep up to</span>
|
|
<span class="component-desc">
|
|
<input type="text" name="prune" id="prune" value="#echo $show_obj.prune and $show_obj.prune or ''#" class="form-control form-control-inline input-sm input75" style="width:50px">
|
|
<p>most recent downloads (blank for all)</p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="location">
|
|
<span class="component-title">Location for files</span>
|
|
<span class="component-desc">
|
|
<input type="text" name="location" id="location" value="$show_obj._location" class="form-control form-control-inline input-sm input350">
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="flatten_folders">
|
|
<span class="component-title">Flat folder hierarchy</span>
|
|
<span class="component-desc">
|
|
<input type="checkbox" name="flatten_folders" id="flatten_folders"#echo ('', $html_checked)[$show_obj.flatten_folders and not $sg_var('NAMING_FORCE_FOLDERS')]##echo ('', $html_disabled)[$sg_var('NAMING_FORCE_FOLDERS')]#>
|
|
<p>prevent creating season folders to group files</p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="subtitles">
|
|
<span class="component-title">Subtitles</span>
|
|
<span class="component-desc">
|
|
<input type="checkbox" name="subs" id="subtitles"#echo ('', $html_checked)[$show_obj.subtitles and $sg_var('USE_SUBTITLES')]##echo ($html_disabled, '')[$sg_var('USE_SUBTITLES')]#>
|
|
<p#if not $sg_var('USE_SUBTITLES')# class="grey-text"><del#end if#>download episode subtitles for this show#if not $sg_var('USE_SUBTITLES')#</del> ... (<span class="red-text">note: first <a href="$sbRoot/config/subtitles/">enable the subtitle system here</a></span>)#end if#</p>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="reset_fanart">
|
|
<span class="component-title">Reset fanart ratings</span>
|
|
<span class="component-desc">
|
|
#if $num_ratings
|
|
<input type="checkbox" name="reset_fanart" id="reset_fanart">
|
|
<p>delete <span class="grey-text">$num_ratings</span> fanart rating$helpers.maybe_plural($num_ratings) for "<span class="grey-text">$show_obj.name</span>"</p>
|
|
#else
|
|
<p>no fanart ratings to delete for "<span class="grey-text">$show_obj.name</span>"</p>
|
|
#end if
|
|
<p>
|
|
<span class="grey-text">fanart usage: </span>maximum $sg_var('FANART_LIMIT', 3) fanart images downloaded per show, <a href="$sbRoot/config/general/#core-component-group2">change limit</a><br />
|
|
<span class="grey-text">fanart keys: </span>hold down Ctrl+Alt (mac: Command+Option) and then press any of... left or right to change image, and<br />
|
|
's' to change and save ratings where 'a'/down = avoid, 'f' = fave, 'g'/up = group (repeat keypress to toggle rating)
|
|
with the livepanel not in 's'ave mode; up = change view mode, down = toggle translucency
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="field-pair">
|
|
<label for="idmapping">
|
|
<span class="component-title">Related show IDs</span>
|
|
<span class="component-desc">
|
|
<label for="idmapping">
|
|
<input id="idmapping" type="checkbox">
|
|
<span>TV info source IDs (advanced use only)</span>
|
|
</label>
|
|
</span>
|
|
</label>
|
|
</div>
|
|
|
|
#set $dev = True
|
|
#set $dev = None
|
|
<div id="idmapping-options" style="display:#if $dev#--#end if#none">
|
|
#set $is_main_settable = False | $unlock_main_id
|
|
#for $tvid, $src_name in iteritems($sickgear.TVInfoAPI().all_sources)
|
|
#set $is_main_settable |= ($dev or
|
|
($tvid != $show_obj.tvid and $show_obj.ids[$tvid].get('id', 0) > 0 and
|
|
$tvid in $sickgear.TVInfoAPI().sources and not $sickgear.TVInfoAPI($tvid).config.get('defunct') and
|
|
$sickgear.TVInfoAPI($tvid).config.get('active')))
|
|
#if $is_main_settable
|
|
#break
|
|
#end if
|
|
#end for
|
|
#set $search_name = quote_plus($sickgear.indexermapper.clean_show_name($show_obj.name))
|
|
#for $tvid, $src_name in iteritems($sickgear.TVInfoAPI().all_sources)
|
|
#set $ok_tvid = $show_obj.ids[$tvid].get('id', 0) > 0
|
|
#set $maybe_main = ($tvid != $show_obj.tvid and
|
|
$tvid in $sickgear.TVInfoAPI().sources and not $sickgear.TVInfoAPI($tvid).config.get('defunct') and
|
|
$sickgear.TVInfoAPI($tvid).config.get('active'))
|
|
#set $settable_main = ($dev or ($ok_tvid and $maybe_main))
|
|
<div class="field-pair" style="padding:0">
|
|
<span class="component-title">
|
|
#if $tvid in $show_obj.ids
|
|
#set $src_search_url = sickgear.TVInfoAPI($tvid).config.get('finder')
|
|
#set $use_search_url = $src_search_url
|
|
#set $data_link = 'data-'
|
|
#if $ok_tvid and $sickgear.indexermapper.MapStatus.NOT_FOUND != $show_obj.ids[$tvid]['status']
|
|
#set $data_link = ''
|
|
#set $use_search_url = False
|
|
#end if
|
|
<a id="src-mid-$tvid" class="service" style="margin-right:6px" data-search="#if $use_search_url#y#else#n#end if#" #if $src_search_url#data-search-href="$anon_url($src_search_url % $search_name)" data-search-onclick="window.open(this.href, '_blank'); return !1;" data-search-title="Search for show at $src_name" #end if##if $use_search_url#href="$anon_url($src_search_url % $search_name)" onclick="window.open(this.href, '_blank'); return !1;" title="Search for show at $src_name" #end if#$(data_link)href="$anon_url(sickgear.TVInfoAPI($tvid).config['show_url'] % ($show_obj.ids[$tvid]['id'], $srcid)[$expand_ids and ($tvid == $tvsrc)])" $(data_link)onclick="window.open(this.href, '_blank'); return !1;" $(data_link)title="View $src_name info in new tab"><img alt="$src_name" height="16" width="16" src="$sbRoot/images/$sickgear.TVInfoAPI($tvid).config['icon']" /></a>
|
|
#end if
|
|
$src_name
|
|
</span>
|
|
<span class="component-desc">
|
|
|
|
#set $current_showid = $show_obj.ids.get($tvid, {'id': 0}).get('id')
|
|
<input type="text" data-maybe-main="#echo ('0', '1')[bool($maybe_main)]#" name="mid-$tvid" id="#echo ('mid-%s' % $tvid, 'source-id')[$tvid == $show_obj.tvid]#" value="#echo ($current_showid, $srcid)[$expand_ids and ($tvid == $tvsrc)]#" class="form-control form-control-inline input-sm#if $tvid == $show_obj.tvid and $unlock_main_id# warning" title="Abandoned main ID#end if#" #echo ('', $html_disabled)[$tvid == $show_obj.tvid and not $unlock_main_id]#>
|
|
|
|
#if $tvid == $show_obj.tvid
|
|
<label for="the-main">
|
|
#if $is_main_settable
|
|
<input type="radio" name="set-main" id="the-main" checked data-tvid="$tvid" data-prodid="$show_obj.ids[$tvid].get('id', 0)">
|
|
#end if
|
|
<p#if $is_main_settable# style="padding-left:19px"#end if#>#if $unlock_main_id#main id may have changed, <a href="$sbRoot/add-shows/find/?show_to_add=$show_obj.tvid|||$showname_enc&use_show_name=True&action=Find&return_to=$sbRoot%2Fhome%2Fedit-show%3Ftvid_prodid%3D${TVidProdid({$tvid: $current_showid})}%26tvsrc%3D%25s%26srcid%3D%25s%23core-component-group3">search replacement here</a>#else#locked main, can't be edited#end if#</p>
|
|
</label>
|
|
#else
|
|
<label for="lockid-$tvid">
|
|
<input type="checkbox" name="lockid-$tvid" id="lockid-$tvid"#echo ('', $html_checked)[$show_obj.ids.get($tvid, {'status': $sickgear.indexermapper.MapStatus.NONE}).get('status') == $sickgear.indexermapper.MapStatus.NO_AUTOMATIC_CHANGE]#>
|
|
<p style="padding-left:19px;margin-right:24px">lock this ID</p>
|
|
</label>
|
|
#if $settable_main
|
|
<label for="set-main-$tvid">
|
|
<input type="radio" name="set-main" id="set-main-$tvid" data-tvid="$tvid" data-prodid="$show_obj.ids[$tvid].get('id', 0)">set main
|
|
</label>
|
|
#end if
|
|
#end if
|
|
</span>
|
|
</div>
|
|
#end for
|
|
<div class="field-pair" style="padding-top:0">
|
|
<span id="panel-save-get" class="component-desc show">
|
|
<p>invalid values can break finding episode and TV info</p>
|
|
<input type="button" value="Save Changes" id="save-mapping" class="btn btn-inline">
|
|
<p style="float:left;margin-right:6px">or</p>
|
|
<input type="button" value="Get Defaults" id="reset-mapping" class="btn btn-inline">
|
|
<p>for unlocked IDs</p>
|
|
</span>
|
|
<span id="save-wait" class="component-desc hide">
|
|
<span><img src="$sbRoot/images/loading16#echo ('', '-dark')['dark' == $sg_str('THEME_NAME', 'dark')]#.gif" style="margin-right:6px">Saving...</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
</div><!-- /component-group3 //-->
|
|
|
|
</div>
|
|
|
|
<div style="margin-top:15px">
|
|
<input type="submit" id="submit" value="Update Show" class="btn btn-primary" />
|
|
<a href="$sbRoot/home/view-show?tvid_prodid=$show_obj.tvid_prodid" class="btn btn-primary" style="margin-left:10px">Cancel Edit</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
#include $os.path.join($sg_str('PROG_DIR'), 'gui/slick/interfaces/default/inc_bottom.tmpl')
|