webif/var/mongoose/cgi-bin/settings.jim

143 lines
2.9 KiB
Plaintext
Raw Normal View History

#!/mod/bin/jimsh
source /mod/var/mongoose/lib/settings.class
package require cgi
puts "Content-Type: text/html"
puts ""
cgi_input
#cgi_dump
set settings [settings new]
set hostname [$settings hostname]
set smtp_server [$settings smtp_server]
set channel_group [$settings channel_group]
# Handle updates
#set _cgi(smtp_server) "fred.bob"
#set env(REQUEST_URI) ''
proc _handle_update {class var old text} {
global _cgi
global settings
if {[dict exists $_cgi $var]} {
set new [string trim [dict get $_cgi $var]]
if {$new == $old} {
puts "$text unchanged."
} elseif [string is $class -strict $new] {
$settings $var $new
puts "$text updated."
} else {
puts "Invalid value for $var."
}
exit
}
}
proc handle_int_update {var old {text "Value"}} {
_handle_update digit $var $old $text
}
proc handle_str_update {var old {text "Value"}} {
_handle_update alnum $var $old $text
}
handle_str_update hostname $hostname Hostname
_handle_update ascii smtp_server $smtp_server "SMTP Server"
handle_int_update channel_group $channel_group "Channel Group"
source /mod/var/mongoose/html/lib/header.jim
puts {<script type="text/javascript" src="/js/jquery.form.js"></script>}
puts {
<script type=text/javascript>
$(document).ready(function () {
//$(":submit").button();
//$(":submit").height(20);
$('form').each(function(i, el) {
var id = $(this).attr('id');
var output = '#' + id + '_output'
$(this).ajaxForm({
target: output,
success: function() {
$(output).css('font-style', 'italic');
$(output).show('slow');
$(output).delay(2000).fadeOut('slow');
}
});
});
});
</script>
}
puts "
<h1>Settings</h1>
<table class=keyval>
<tr>
<form id=hostname method=get action=$env(REQUEST_URI)>
<th>Hostname</th>
<td><input name=hostname value=\"$hostname\"
length=20 maxlength=50>
<input id=hostname_submit value=\"change\" type=submit>
<div id=hostname_output></div>
</td>
</form>
</tr>
"
puts "
<tr>
<form id=smtp_server method=get action=$env(REQUEST_URI)>
<th>SMTP Server for outbound email</th>
<td><input name=smtp_server value=\"$smtp_server\"
length=20 maxlength=50>
<input id=smtp_server_submit value=\"change\" type=submit>
<div id=smtp_server_output></div>
</td>
</form>
</tr>
"
puts "
<tr>
<form id=channel_group method=get action=$env(REQUEST_URI)>
<th>Channel Group for EPG</th>
<td><select id=channel_group name=channel_group
value=[$settings channel_group]>
"
set i 0
puts "<option value=0>-- None --"
foreach grp [$settings channel_groups] {
incr i
puts -nonewline "<option value=$i"
if {$channel_group == $i} {
puts -nonewline " selected"
}
puts ">$grp"
}
puts "
</select>
<input name=channel_group value=\"change\" type=submit>
<div id=channel_group_output></div>
</td>
</form>
</tr>
"
puts "
</table>
</form>
<br>
More coming soon...
<br>
<br>
"
source /mod/var/mongoose/html/lib/footer.jim