Edit Entries

set datafile guest load_response response proc emit_guestbook {display} { global datafile webenv response set scriptname $webenv(DOCUMENT_NAME) html "View Guestbook

" set num_to_show $display set idlist [dbkeys $datafile *] if {[catch {set idlist [dbkeys $datafile *]} firsttime] != 0} { set num_ids 0 set first_id 0 } else { set num_ids [llength $idlist] set sorted_ids [lsort -integer $idlist] if {$num_to_show > $num_ids} {set num_to_show $num_ids} set first_id [expr $num_ids - $num_to_show] if {$first_id < 0} {set first_id 0} set work_ids [lrange $sorted_ids $first_id end] html "These are the last $num_to_show, of $num_ids" html " people, who were kind enough to sign our guestbook

" html "


" foreach id [lsort -integer -decreasing $work_ids] { dbfetch $datafile $id dbarray html "

" html "" html "" html "" html "" html "" html "" html html html
$id) " html "$dbarray(name)
" html "" html "$dbarray(email)

$dbarray(comments)
Entry made at " html "[clock format $dbarray(time) -format $webenv(NEO_TIME_FORMAT)]" html " using $dbarray(user_agent) " html "from $dbarray(remote_host)
neo_form edit "method=post action=$scriptname" neo_form_field hidden id "value=$id" neo_form_field hidden mode "value=edit" neo_form_submit "Edit $id" neo_form_end html neo_form delete "method=post action=$scriptname" neo_form_field hidden id "value=$id" neo_form_field hidden mode "value=delete" neo_form_submit "Delete $id" neo_form_end html
html


} } } proc edit_entry {} { global datafile webenv response set scriptname $webenv(DOCUMENT_NAME) dbfetch $datafile $response(id) response neo_form response "method=post action=$scriptname" neo_form_field hidden mode "value=check_entry" neo_form_field hidden id neo_form_field hidden remote_host neo_form_field hidden time neo_form_field hidden user_agent html html html "" html html

html "" html html

html "" html html

html "
Your name: neo_form_field text name "size=30" html
Your email address: neo_form_field text email "size=30" html
Your URL: neo_form_field text url "size=30" html
Enter your comments here:
" neo_form_textarea comments "rows=6 cols=55" html
html

html "
Thanks for taking the time to fill out our guestbook.
" html

html
neo_form_submit "Done" html
neo_form_end } proc delete_entry {} { global datafile webenv response dbfetch $datafile $response(id) dbarray html

html "Delete Entry #$response(id) by $dbarray(name)?" html

html $dbarray(comments)

neo_form kill "method=post action=$webenv(DOCUMENT_NAME)" neo_form_field hidden mode "value=kill" neo_form_field hidden id "value=$response(id)" neo_form_submit "Yes" neo_form_end html

} proc kill_entry {target} { global datafile dbdelkey $datafile $target } proc check_entry {} { global datafile webenv response set scriptname $webenv(DOCUMENT_NAME) html "If everything is correct, click the Save It! button." html "


" html "" html "" html "" html "" html "" html "" html "
$response(id) $response(name)
" html "$response(email)

$response(comments)
Entry made at [clock format $response(time) -format $webenv(NEO_TIME_FORMAT)]" html " using $response(user_agent) from $response(remote_host)
" html "


" html "
" html "" html "" html "" html "" html "" html "" html "" html "" html "" html "
" } proc thank_you {} { global datafile webenv response set scriptname $webenv(DOCUMENT_NAME) html "
Edit Guestbook | View Guestbook
" unset response(mode) set id $response(id) unset response(id) if {[catch {set idlist [dbkeys $datafile *]} firsttime] != 0} { set num_entries 0 } else { set num_entries [lindex [lsort -integer $idlist] end] } dbstore $datafile $id response } set num_entries [llength [dbkeys $datafile *]] if {![array exists response]} { emit_guestbook $num_entries } elseif {[string compare $response(mode) emit_guestbook] == 0} { emit_guestbook $num_entries } elseif {[string compare $response(mode) edit] == 0} { edit_entry } elseif {[string compare $response(mode) delete] == 0} { delete_entry } elseif {[string compare $response(mode) kill] == 0} { kill_entry $response(id) emit_guestbook $num_entries } elseif {[string compare $response(mode) check_entry] == 0} { check_entry } elseif {[string compare $response(mode) thank_you] == 0} { thank_you }