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