Browse Source
Make everything more user-friendly and streamlined. Port and and # of connections are now placed under 'Show more'. Clicking SSL will change the port to 563. Username and option for SSL removed from the wizard, they can be enabled in the Config.pull/365/head
committed by
shypike
11 changed files with 459 additions and 530 deletions
@ -1,2 +1,2 @@ |
|||
</body> |
|||
</body> |
|||
</html> |
@ -1,19 +1,21 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="$active_lang"> |
|||
<head> |
|||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
|||
<title>$T('wizard-quickstart')</title> |
|||
<link rel="stylesheet" type="text/css" href="../staticcfg/bootstrap/css/bootstrap.min.css"/> |
|||
<link rel="stylesheet" type="text/css" href="static/style.css"/> |
|||
<link rel="shortcut icon" href="../staticcfg/ico/favicon.ico" /> |
|||
<link rel="apple-touch-icon" sizes="57x57" href="../staticcfg/ico/apple-touch-icon-57x57.png" /> |
|||
<link rel="apple-touch-icon" sizes="60x60" href="../staticcfg/ico/apple-touch-icon-60x60.png" /> |
|||
<link rel="apple-touch-icon" sizes="72x72" href="../staticcfg/ico/apple-touch-icon-72x72.png" /> |
|||
<link rel="apple-touch-icon" sizes="76x76" href="../staticcfg/ico/apple-touch-icon-76x76.png" /> |
|||
<link rel="apple-touch-icon" sizes="114x114" href="../staticcfg/ico/apple-touch-icon-114x114.png" /> |
|||
<link rel="apple-touch-icon" sizes="120x120" href="../staticcfg/ico/apple-touch-icon-120x120.png" /> |
|||
<link rel="apple-touch-icon" sizes="144x144" href="../staticcfg/ico/apple-touch-icon-144x144.png" /> |
|||
<link rel="apple-touch-icon" sizes="152x152" href="../staticcfg/ico/apple-touch-icon-152x152.png" /> |
|||
</head> |
|||
<body> |
|||
<img id="logo" src="static/images/icon_sab.png" alt="SABnzbd" /> |
|||
<head> |
|||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
|||
<title>$T('wizard-quickstart')</title> |
|||
<link rel="stylesheet" type="text/css" href="../staticcfg/bootstrap/css/bootstrap.min.css?pid=$version"/> |
|||
<link rel="stylesheet" type="text/css" href="static/style.css?pid=$version"/> |
|||
<link rel="shortcut icon" href="../staticcfg/ico/favicon.ico" /> |
|||
<link rel="apple-touch-icon" sizes="57x57" href="../staticcfg/ico/apple-touch-icon-57x57.png" /> |
|||
<link rel="apple-touch-icon" sizes="60x60" href="../staticcfg/ico/apple-touch-icon-60x60.png" /> |
|||
<link rel="apple-touch-icon" sizes="72x72" href="../staticcfg/ico/apple-touch-icon-72x72.png" /> |
|||
<link rel="apple-touch-icon" sizes="76x76" href="../staticcfg/ico/apple-touch-icon-76x76.png" /> |
|||
<link rel="apple-touch-icon" sizes="114x114" href="../staticcfg/ico/apple-touch-icon-114x114.png" /> |
|||
<link rel="apple-touch-icon" sizes="120x120" href="../staticcfg/ico/apple-touch-icon-120x120.png" /> |
|||
<link rel="apple-touch-icon" sizes="144x144" href="../staticcfg/ico/apple-touch-icon-144x144.png" /> |
|||
<link rel="apple-touch-icon" sizes="152x152" href="../staticcfg/ico/apple-touch-icon-152x152.png" /> |
|||
<script type="text/javascript" src="../staticcfg/js/jquery-1.11.2.min.js"></script> |
|||
<script type="text/javascript" src="../staticcfg/bootstrap/js/bootstrap.min.js"></script> |
|||
</head> |
|||
<body> |
|||
<img id="logo" src="static/images/icon_sab.png" alt="SABnzbd" /> |
@ -1,110 +1,78 @@ |
|||
function checkRequired() |
|||
{ |
|||
if ($("#host").val() && $("#connections").val()) |
|||
{ |
|||
$("#next-button").removeAttr("disabled"); |
|||
} else { |
|||
$("#next-button").attr("disabled","disabled"); |
|||
} |
|||
function checkRequired() { |
|||
if ($("#host").val() && $("#connections").val()) { |
|||
$("#next-button").removeClass('disabled') |
|||
return true; |
|||
} else { |
|||
$("#next-button").addClass('disabled') |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
$(document).ready(function() { |
|||
checkRequired() |
|||
$("#serverTest").click(function(){ |
|||
$('#serverResponse').html(txtChecking); |
|||
$.getJSON( |
|||
"../tapi?mode=config&name=test_server&output=json", |
|||
$("form").serialize(), |
|||
function(result) { |
|||
if (result.value.result){ |
|||
cls = "success" |
|||
// Add tooltips
|
|||
$('[data-toggle="tooltip"]').tooltip() |
|||
|
|||
// On form-submit
|
|||
$("#serverTest").click(function() { |
|||
$('#serverResponse').html(txtChecking); |
|||
$.getJSON( |
|||
"../tapi?mode=config&name=test_server&output=json", |
|||
$("form").serialize(), |
|||
function(result) { |
|||
if (result.value.result) { |
|||
r = '<span class="success"><span class="glyphicon glyphicon-ok"></span> ' + result.value.message + '</span>'; |
|||
} else { |
|||
r = '<span class="failed"><span class="glyphicon glyphicon-minus-sign"></span> ' + result.value.message + '</span>'; |
|||
} |
|||
|
|||
$('#serverResponse').html(r); |
|||
} |
|||
); |
|||
return false; |
|||
}); |
|||
|
|||
$("#port, #connections").bind('keyup blur', function() { |
|||
if (this.value > 0) { |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
} else { |
|||
cls = "failed" |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
} |
|||
r = '<span class="' + cls + '">' + result.value.message + '</span>'; |
|||
$('#serverResponse').html(r); |
|||
} |
|||
); |
|||
return false; |
|||
}); |
|||
$(".validate-text").blur(function(){ |
|||
if (this.value || this.checked){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
} |
|||
}); |
|||
$(".validate-text-required").blur(function(){ |
|||
if (this.value || this.checked){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
} |
|||
}); |
|||
$(".validate-numeric").blur(function(){ |
|||
if (this.value && isFinite(this.value)){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
} |
|||
}); |
|||
$(".validate-numeric-required").blur(function(){ |
|||
if (this.value && isFinite(this.value)){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
} |
|||
}); |
|||
checkRequired() |
|||
}); |
|||
|
|||
$("#connections").bind('keyup blur',function(){ |
|||
if (this.value && isFinite(this.value)){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
$("#connections-tip").removeClass("hidden"); |
|||
$("#connections-error").addClass("hidden"); |
|||
checkRequired(); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
$("#connections-tip").addClass("hidden"); |
|||
$("#connections-error").removeClass("hidden"); |
|||
checkRequired(); |
|||
} |
|||
}); |
|||
$("#host, #username, #password").bind('keyup blur', function() { |
|||
if (this.value) { |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
} |
|||
checkRequired(); |
|||
}); |
|||
|
|||
$("#port").bind('keyup blur',function(){ |
|||
if (!this.value || isFinite(this.value)){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
$("#port-tip").removeClass("hidden"); |
|||
$("#port-error").addClass("hidden"); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
$("#port-tip").addClass("hidden"); |
|||
$("#port-error").removeClass("hidden"); |
|||
} |
|||
}); |
|||
$('#ssl').click(function() { |
|||
if(this.checked) { |
|||
// Enabled SSL change port when not already a custom port
|
|||
if($('#port').val() == '119') { |
|||
$('#port').val('563') |
|||
} |
|||
} else { |
|||
// Remove SSL port
|
|||
if($('#port').val() == '563') { |
|||
$('#port').val('119') |
|||
} |
|||
} |
|||
}) |
|||
|
|||
$("#host").bind('keyup blur',function(){ |
|||
if (this.value){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
$("#host-tip").removeClass("hidden"); |
|||
$("#host-error").addClass("hidden"); |
|||
checkRequired(); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
$("#host-tip").addClass("hidden"); |
|||
$("#host-error").removeClass("hidden"); |
|||
checkRequired(); |
|||
} |
|||
}); |
|||
checkRequired() |
|||
|
|||
$('form').submit(function(event) { |
|||
// Double check
|
|||
if(!checkRequired()) { |
|||
event.preventDefault(); |
|||
} |
|||
}) |
|||
}); |
@ -1,62 +1,38 @@ |
|||
function toggleWebPass() |
|||
{ |
|||
var web |
|||
web = $('#enable_webpass').attr('checked') |
|||
if ($('#enable_webpass').attr('checked') == 1) |
|||
{ |
|||
$('#web_user').attr("disabled",""); |
|||
$('#web_pass').attr("disabled",""); |
|||
|
|||
} else { |
|||
$('#web_user').attr("disabled","disabled"); |
|||
$('#web_pass').attr("value",""); |
|||
$('#web_pass').attr("disabled","disabled"); |
|||
$('#web_user').attr("value",""); |
|||
} |
|||
}; |
|||
|
|||
|
|||
function checkRequired() |
|||
{ |
|||
if ($("#bandwidth").val()) |
|||
{ |
|||
$("#next-button").removeAttr("disabled"); |
|||
} else { |
|||
$("#next-button").attr("disabled","disabled"); |
|||
} |
|||
}; |
|||
|
|||
function checkRequired() { |
|||
if ($("#bandwidth").val()) { |
|||
$("#next-button").removeClass('disabled') |
|||
return true; |
|||
} else { |
|||
$("#next-button").addClass('disabled') |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
$(document).ready(function() { |
|||
checkRequired(); |
|||
toggleWebPass(); |
|||
// Add tooltips
|
|||
$('[data-toggle="tooltip"]').tooltip() |
|||
|
|||
$(".validate-text-required").blur(function(){ |
|||
if (this.value || this.checked){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
} |
|||
}); |
|||
$("#bandwidth").bind('keyup blur',function(){ |
|||
if (this.value){ |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
$("#bandwidth-tip").removeClass("hidden"); |
|||
$("#bandwidth-error").addClass("hidden"); |
|||
checkRequired(); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
$("#bandwidth-tip").addClass("hidden"); |
|||
$("#bandwidth-error").removeClass("hidden"); |
|||
checkRequired(); |
|||
} |
|||
}); |
|||
// Check
|
|||
$("#bandwidth").bind('keyup blur', function() { |
|||
if (this.value) { |
|||
$(this).removeClass("incorrect"); |
|||
$(this).addClass("correct"); |
|||
$("#bandwidth-error").addClass("hidden"); |
|||
} else { |
|||
$(this).removeClass("correct"); |
|||
$(this).addClass("incorrect"); |
|||
$("#bandwidth-error").removeClass("hidden"); |
|||
} |
|||
checkRequired() |
|||
}); |
|||
|
|||
checkRequired() |
|||
|
|||
$('#enable_webpass').bind('change click focus', function() { |
|||
toggleWebPass(); |
|||
}); |
|||
$('form').submit(function(event) { |
|||
// Double check
|
|||
if(!checkRequired()) { |
|||
event.preventDefault(); |
|||
} |
|||
}) |
|||
}); |
|||
|
|||
|
@ -1,17 +1,17 @@ |
|||
function complete(){ |
|||
$(".hidden").fadeIn("slow"); |
|||
$(".disabled").addClass('btn-success').removeClass('btn-default').removeClass('disabled'); |
|||
$('#restarting').addClass("hidden"); |
|||
$('#complete').removeClass("hidden"); |
|||
$('#tips').removeClass("hidden"); |
|||
function complete() { |
|||
$(".hidden").fadeIn("slow"); |
|||
$(".disabled").addClass('btn-success').removeClass('btn-default').removeClass('disabled'); |
|||
$('#restarting').addClass("hidden"); |
|||
$('#complete').removeClass("hidden"); |
|||
$('#tips').removeClass("hidden"); |
|||
} |
|||
$(document).ready(function() { |
|||
$.ajax({ |
|||
type: "POST", |
|||
url: "../tapi", |
|||
data: "mode=restart&apikey="+$('#apikey').val() , |
|||
complete: function(result){ |
|||
setTimeout(complete,7000); |
|||
} |
|||
}); |
|||
$.ajax({ |
|||
type: "POST", |
|||
url: "../tapi", |
|||
data: "mode=restart&apikey=" + $('#apikey').val(), |
|||
complete: function(result) { |
|||
setTimeout(complete, 7000); |
|||
} |
|||
}); |
|||
}); |
@ -1,46 +1,46 @@ |
|||
<!--#include $webdir + "/inc_top.tmpl"#--> |
|||
<script type="text/javascript"> |
|||
<!--#include raw $webdir + "/static/javascript/restart.js"#--> |
|||
</script> |
|||
<div class="container"> |
|||
<div id="inner"> |
|||
<div id="content" class="bigger"> |
|||
<div id="rightGreyText">$T('wizard-version') $version</div> |
|||
<br /><h1>$T('wizard-quickstart')</h1> <h2>$num</h2><br /> |
|||
<div id="content" class="bigger"> |
|||
<div id="rightGreyText">$T('wizard-version') $version</div> |
|||
<br /> |
|||
<h1>$T('wizard-quickstart')</h1> |
|||
<h2>$num</h2> |
|||
<br /> |
|||
<hr /> |
|||
<br/><br/> |
|||
<h4 id="restarting" class="align-center">$T('wizard-restarting')</h4> |
|||
<h4 id="complete" class="align-center success hidden">$T('wizard-complete')</h4> |
|||
<br /> |
|||
<br/> |
|||
<div id="tips" class="hidden"> |
|||
$T('wizard-tip1') <span class="bold">$T('wizard-tip2')</span><br/> |
|||
<!--#set $tip3 = $T('wizard-tip3') % ''#--> |
|||
$tip3<br/><br/> |
|||
<div class="quoteBlock"> |
|||
<!--#set $i = 0#--> |
|||
<!--#for $url in $urls#--> |
|||
<!--#set $i = $i+1#--> |
|||
<a href="$url">$url</a><!--#if $i != len($urls)#--><br /><!--#end if#--> |
|||
<!--#end for#--> |
|||
</div> |
|||
<br/> |
|||
$T('wizard-tip4') |
|||
<br/><br/> |
|||
$T('wizard-tip-wiki') <a target="_blank" href="$helpuri">wiki</a> |
|||
</div> |
|||
</div> |
|||
<hr /> |
|||
|
|||
<script type="text/javascript" src="static/javascript/jquery.js"></script> |
|||
<script type="text/javascript" src="static/javascript/restart.js"></script> |
|||
<br/><br/> |
|||
<h4 id="restarting" class="align-center">$T('wizard-restarting')</h4> |
|||
<h4 id="complete" class="align-center success hidden">$T('wizard-complete')</h4> |
|||
<br /> |
|||
<br/> |
|||
<div id="tips" class="hidden"> |
|||
$T('wizard-tip1') <span class="bold">$T('wizard-tip2')</span><br/> |
|||
<!--#set $tip3 = $T('wizard-tip3') % ''#--> |
|||
$tip3<br/><br/> |
|||
<div class="quoteBlock"> |
|||
<!--#set $i = 0#--> |
|||
<!--#for $url in $urls#--> |
|||
<!--#set $i = $i+1#--> |
|||
<a href="$url">$url</a><!--#if $i != len($urls)#--><br /><!--#end if#--> |
|||
<!--#end for#--> |
|||
</div><br/> |
|||
$T('wizard-tip4') |
|||
<br/><br/> |
|||
$T('wizard-tip-wiki') <a href="$helpuri">wiki</a> |
|||
</div> |
|||
</div> |
|||
<hr /><br/> |
|||
<div class="full-width"> |
|||
<table class="full-width"> |
|||
<tr class="align-center"> |
|||
<td> |
|||
<div class="row"> |
|||
<div class="col-xs-12 text-center"> |
|||
<input type="hidden" name="session" id="apikey" value="$session"/> |
|||
<a class="btn btn-default disabled" href="$access_url">$T('wizard-goto') <span class="glyphicon glyphicon-chevron-right"></span></a> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!--#include $webdir + "/inc_bottom.tmpl"#--> |
@ -1,63 +1,47 @@ |
|||
<!--#include $webdir + "/inc_top.tmpl"#--> |
|||
<script type="text/javascript" src="static/javascript/jquery.js"></script> |
|||
<script type="text/javascript" src="static/javascript/pagetwo.js"></script> |
|||
<script type="text/javascript"> |
|||
<!--#include raw $webdir + "/static/javascript/pagetwo.js"#--> |
|||
</script> |
|||
<form action="./three" method="post" autocomplete="off"> |
|||
<div class="container"> |
|||
<div id="inner"> |
|||
<div id="content" class="bigger"> |
|||
<div id="rightGreyText">$T('wizard-version') $version</div> |
|||
<br /><h1>$T('wizard-quickstart')</h1> <h2>$num</h2><br /> |
|||
<hr /> |
|||
<div class="indented bigger"> |
|||
<h3>$T('wizard-access')</h3> |
|||
<!--#if $host in ('localhost','0.0.0.0')#--> |
|||
<input type="radio" name="access" id="all" value="0.0.0.0" <!--#if $host == '0.0.0.0' then 'checked="checked"' else ''#-->> <label for="all">$T('wizard-access-anypc')</label><br /> |
|||
<input type="radio" name="access" id="local" value="localhost" <!--#if $host == 'localhost' then 'checked="checked"' else ''#-->> <label for="local">$T('wizard-access-mypc')</label><br /> |
|||
<br /> |
|||
<!--#end if#--> |
|||
<input type="checkbox" name="enable_webpass" id="enable_webpass" value="1" <!--#if $web_user then 'checked="checked"' else ''#-->> <label for="enable_webpass">$T('wizard-access-pass')</label><br /> |
|||
<br class="clear" /> |
|||
<div id="serverDetails"> |
|||
<label class="label">$T('srv-username'):</label><input type="text" class="" size="20" value="$web_user" name="web_user" id="web_user"> |
|||
<br class="clear" /> |
|||
<label class="label">$T('srv-password'):</label><input type="password" class="" size="20" value="$web_pass" name="web_pass" id="web_pass"> |
|||
</div> |
|||
<br class="clear" /> |
|||
|
|||
<input type="checkbox" name="enable_https" id="enable_https" value="1" <!--#if $enable_https == 1 then 'checked="checked"' else ''#--><!--#if $have_ssl then '' else 'disabled'#-->> <label for="enable_https"><!--#if $have_ssl then $T('wizard-access-https') else '<span class="disabled-text">'+$T('wizard-access-https')+'</span> (pyopenssl (python-ssl) '+$T('opt-notInstalled')+')'#--></label><br /> |
|||
<br /> |
|||
<h3>$T('wizard-misc')</h3> |
|||
<input type="checkbox" name="autobrowser" id="autobrowser" value="1" <!--#if $autobrowser == 1 then 'checked="checked"' else ''#-->> <label for="autobrowser">$T('wizard-misc-browser')</label><br /> |
|||
<br/> |
|||
<label class="label">$T('explain-bandwidth_max')<span class="required-star">*</span></label> |
|||
<input class=" clearinput text-input-thin" id="bandwidth" type="text" size="10" value="$bandwidth" name="bandwidth"/> |
|||
<div id="bandwidth-tip" class="tips">$T('wizard-bandwidth-explain')</div> |
|||
<div id="bandwidth-error" class="error-text hidden">$T('wizard-bandwidth-error')</div> |
|||
<br class="clear" /> |
|||
|
|||
<input type="hidden" name="dummyval" value="1" /> |
|||
|
|||
<div id="content" class="bigger"> |
|||
<div id="rightGreyText">$T('wizard-version') $version</div> |
|||
<br /> |
|||
<h1>$T('wizard-quickstart')</h1> |
|||
<h2>$num</h2> |
|||
<br /> |
|||
<hr /> |
|||
<h3>$T('wizard-misc')</h3> |
|||
|
|||
<div class="row"> |
|||
<div class="col-sm-8"> |
|||
<label for="bandwidth">$T('explain-bandwidth_max')</label><br /> |
|||
<div class="input-group input-group-bw" data-toggle="tooltip" data-placement="right" title="$T('wizard-bandwidth-explain')"> |
|||
<input class="form-control text-input-thin text-right" id="bandwidth" value="$bandwidth" type="text" size="10" name="bandwidth" /> |
|||
<div class="input-group-addon">Bytes/s</div> |
|||
</div> |
|||
<div id="bandwidth-error" class="error-text hidden"><br />$T('wizard-bandwidth-error')</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<hr /><br/> |
|||
<div class="full-width"> |
|||
<table class="full-width"> |
|||
<tr> |
|||
<td class="align-center"><a class="btn btn-default" href="./one"><span class="glyphicon glyphicon-chevron-left"></span> $T('wizard-previous')</a></td> |
|||
<td> |
|||
<div class="align-center"> |
|||
<hr /> |
|||
<br/> |
|||
<div class="row"> |
|||
<div class="col-xs-4 text-center"> |
|||
<a class="btn btn-default" href="./one"><span class="glyphicon glyphicon-chevron-left"></span> $T('wizard-previous')</a> |
|||
</div> |
|||
<div class="col-xs-4 text-center"> |
|||
<!--#for $step in xrange($steps)#--> |
|||
<!--#set $step = $step + 1#--> |
|||
<!--#set $step = $step + 1#--> |
|||
<span class="<!--#if $step == $number then 'selected' else 'unselected'#-->">$step</span> |
|||
<!--#end for#--> |
|||
</div> |
|||
</td> |
|||
<td class="align-center"><button class="btn btn-default">$T('wizard-next') <span class="glyphicon glyphicon-chevron-right"></span></button></td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
<div class="col-xs-4 text-center"> |
|||
<button class="btn btn-default" id="next-button" type="submit">$T('wizard-next') <span class="glyphicon glyphicon-chevron-right"></span></button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
|
|||
|
Loading…
Reference in new issue