blob: f77397cbe56542f2781fc388a0ef4b30a576107b [file] [log] [blame]
#!/bin/sh
#
# \
LD_LIBRARY_PATH=../lib; export LD_LIBRARY_PATH; \
exec ../bin/websh3 "$0" "$@"
## --- vvv --- config ---------------------------------------------------------
set sdb_name dvd
set sdb_datadir [file join .. .. data $sdb_name]
array set sdb_perms {
canEdit 1
canDelete 1
}
array set sdb_items {
borrow {varDsc {borrower} type text size 3 showInTable 1 isLink 0}
title {varDsc {title} type text size 30 showInTable 0 isLink 0}
url {varDsc {URL} type text size 50 showInTable 1 isLink 1 showAsLink title}
sdsc {varDsc {short description} type text size 60 showInTable 1 isLink 0}
ldsc {varDsc {long description} type textarea rows 10 cols 80 showInTable 0 isLink 0}
cast {varDsc {main actors} type textarea rows 10 cols 80 showInTable 0 isLink 0}
director {varDsc {director} type text size 50 showInTable 0 isLink 0}
genre {varDsc {genre} type text size 50 showInTable 0 isLink 0}
ccode {varDsc {country code} type select options {1 2 3 4} showInTable 0 isLink 0}
format {varDsc {format} type select options {PAL/SECAM NTSC} showInTable 0 isLink 0}
owner {varDsc {owner} type text size 3 showInTable 1 isLink 0}
dvdid {varDsc {DVD Id} type text size 10 showInTable 0 isLink 0}
year {varDsc {year} type text size 4 showInTable 0 isLink 0}
timeout {varDsc {timeout} type text size 10 viewOnly 1 showInTable 0 isLink 0 formatCode timeFormat}
}
set sdb_itemorder [list dvdid borrow timeout url title sdsc cast director genre ccode format ldsc owner]
## --- ^^^ --- config ---------------------------------------------------------
## --- vvv --- provide commands referenced above ------------------------------
proc timeFormat {arg} {
if { [string length $arg] } {
return [clock format $arg -format "%d-%b-%y"]
} else {
return $arg
}
}
## --- ^^^ --- provide commands referenced above ------------------------------
web::logfilter add *.-debug
web::logdest add *.-debug file ../../logs/${sdb_name}.log
web::include [file join .. lib sdb.ws3]
## --- vvv --- local adaptions ------------------------------------------------
web::command borrow {
set dvdid [web::param dvdid]
set borrower [web::param borrower]
if { [string length $borrower] && [string length $dvdid] } {
catch {
set flist [glob pattern [file join $::sdb_datadir *.dsc]]
} msg
if {[info exists flist]} {
foreach dsc $flist {
set dsc [file rootname [file tail $dsc]]
dscc::init $dsc
set id [dscc::cget dvdid]
if { $id == $dvdid } {
dscc::cset borrow $borrower
dscc::cset timeout [clock seconds]
dscc::commit
break
}
}
}
}
showOverview
}
web::command back {
set dvdid [web::param dvdid]
if { [string length $dvdid] } {
catch {
set flist [glob pattern [file join $::sdb_datadir *.dsc]]
} msg
if {[info exists flist]} {
foreach dsc $flist {
set dsc [file rootname [file tail $dsc]]
dscc::init $dsc
set id [dscc::cget dvdid]
if { $id == $dvdid } {
dscc::cset borrow ""
dscc::commit
break
}
}
}
}
showOverview
}
web::command new {
set dvdid [web::param dvdid]
set owner [web::param borrower]
if { [string length $dvdid] } {
dscc::new [idgen nextval]
dscc::cset dvdid $dvdid
dscc::cset owner $owner
dscc::cset sdsc "new ($dvdid)"
dscc::commit
}
showOverview
}
## --- ^^^ --- local adaptions ------------------------------------------------
web::dispatch -track id