#!/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