2023-01-12 01:04:47 +00:00
#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>
2023-01-26 03:30:07 +00:00
<script src=" $ sbRoot /js/lib/select2.full.min.js"></script>
<link href=" $ sbRoot /css/lib/select2.css" rel="stylesheet">
<style>
.select2-container{height:32px; font-size:12px; margin-right:6px}
.select2-container .select2-selection--single{height:30px}
.select2-results__group{color: #eee ; background - color : rgb ( 51 , 51 , 51 ) }
.select2-results__options .select2-results__option{color: #222; background-color: #ddd }
.select2-results__options .select2-results__option .ended{color: #888}
.select2-container--default .select2-results > .select2-results__options{max-height: 300px}
#select 2 - infosrc - lang - select - results . select2 - results__option ,
#select 2 - infosrc - lang - select - results . select2 - results__group { padding - top : 2 px ! important ; padding - bottom : 2 px ! important }
#select 2 - infosrc - lang - select - results . select2 - results__option - - highlighted . select2 - results__option - - selectable . ended { color : white }
#select 2 - infosrc - lang - select - results . select2 - results__option - - selected ,
#select 2 - infosrc - lang - select - results . select2 - results__option - - selected span { color : rgb ( 143 , 21 , 21 ) ! important }
#select 2 - infosrc - lang - select - results span . flag { width : 100 % ; height : 100 % ; display : block }
</style>
2023-01-12 01:04:47 +00:00
#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">
2023-02-13 21:00:11 +00:00
#set $ qualities = $ common . Quality . split_quality ( int ( $ show_obj . quality ) )
2023-01-12 01:04:47 +00:00
#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">
2023-01-26 03:30:07 +00:00
<label for="infosrc-lang-select">
2023-01-12 01:04:47 +00:00
<span class="component-title">Info language</span>
<span class="component-desc">
2023-01-26 03:30:07 +00:00
<select name="tvinfo_lang" id="infosrc-lang-select" class="form-control form-control-inline input-sm"></select>
2023-01-12 01:04:47 +00:00
<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 ' )