#!./tclsh
# $Id: addredit.tcl 1204 2009-02-02 19:54:23Z hubert@u.washington.edu $
# ========================================================================
# Copyright 2006 University of Washington
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# ========================================================================
# addredit.tcl
#
# Purpose: CGI script to generate html form used to view/set
# individual addressbook entries
#
# Input:
set ae_vars {
{book {} -1}
{nick {} ""}
{add {} 0}
{fn {} ""}
{addrs {} ""}
{fcc {} ""}
{comment {} ""}
{take {} 0}
{newnick {} ""}
{ai {} -1}
}
set ae_fields {
{0 "newnick" "Nickname*"}
{1 "fn" "Full Name "}
{2 "addrs" "Addresses*"}
{3 "fcc" "Fcc "}
{4 "comment" "Comments "}
}
# inherit global config
source ./alpine.tcl
source cmdfunc.tcl
# Output:
#
#
set ae_menu {
{
{}
{
{
cgi_image_button help=[WPimg help_trans] border=0 alt="Help"
}
}
}
}
WPEval $ae_vars {
if {$book < 0} {
if {[catch {WPCmd PEInfo set ae_help_state} ae_help_state] == 0} {
foreach v $ae_help_state {
eval set [lindex $v 0] [list [lindex $v 1]]
}
set addrinfo [list "$newnick" "$fn" [list "$addrs"] "$fcc" "$comment"]
WPCmd PEInfo unset ae_help_state
} else {
return [list _action "Web Alpine" "Unspecified Address Book"]
}
}
catch {WPCmd PEInfo unset ae_help_state}
if {![info exists addrinfo]} {
if {$take != 0} {
set addrinfo [list "$newnick" "$fn" [list "$addrs"] "$fcc" "$comment"]
} elseif {$add == 0} {
if {[catch {WPCmd PEAddress fullentry $book $nick $ai} addrinfo]} {
if {[string length $addrinfo]} {
set entryerror "Address Error: $addrinfo"
} else {
set entryerror "Nickname $nick does not exist"
}
set addrinfo [list "" "" [list ""] "" ""]
}
} else {
set addrinfo [list "" "" [list ""] "" ""]
}
}
cgi_http_head {
WPStdHttpHdrs
}
cgi_html {
cgi_head {
WPStdHtmlHdr "Addressbook Update"
WPStyleSheets
}
if {$take == 1} {
set onload "onLoad=document.addredit.newnick.focus()"
} else {
set onload ""
}
cgi_body BGCOLOR="$_wp(bordercolor)" $onload {
set books [WPCmd PEAddress books]
set readwrite [lindex [lindex $books $book] 3]
catch {WPCmd PEInfo set help_context addredit}
cgi_table border=0 cellspacing=0 cellpadding=0 width="100%" height="100%" {
cgi_form $_wp(appdir)/$_wp(ui1dir)/wp method=post enctype=multipart/form-data name=addredit target=_top {
cgi_table_row {
#
# next comes the menu down the left side
#
eval {
cgi_table_data $_wp(menuargs) rowspan=1000 {
WPTFCommandMenu ae_menu {}
}
}
cgi_table_row {
cgi_table_data valign=top width="100%" class=dialog {
if {[info exists entryerror]} {
cgi_division class=notice align=center {
cgi_puts $entryerror
}
}
if {$take == 1} {
lappend tmptxt "Edit the new entry below as necessary (note, some are required). To create a list entry, simply add each desired address to the [cgi_italic Addresses] field separated by a comma."
lappend tmptxt "When finished, click [cgi_italic Save] to update your address book, or [cgi_italic Cancel] to return to the message view."
} elseif {$add == 1} {
lappend tmptxt "The address book entry editor is used to create a new address book entry. Fill in the fields as desired below (note, some are required). To create a list entry, simply add each desired address to the [cgi_italic Addresses] field separated by a comma."
lappend tmptxt "When finished, click [cgi_italic Save] to update your address book, or [cgi_italic Cancel] to return to your unchanged address book."
} elseif {$readwrite == 0} {
set tmptxt "These are the current settings for the selected entry"
} else {
lappend tmptxt "The address book entry editor is used to edit an existing address book entry. Edit the fields as desired below (note, some are required)."
lappend tmptxt " then click [cgi_italic Save] to update your address book, or [cgi_italic Cancel] to return to your unchanged address book."
}
cgi_table align=center width=75% cellpadding=10 border=0 {
foreach t $tmptxt {
cgi_table_row {
cgi_table_data align=center {
cgi_puts $t
}
}
}
}
cgi_table border=0 cellspacing=0 cellpadding=5 align=center {
cgi_text "page=addrsave" type=hidden notab
if {$take == 1} {
cgi_text "oncancel=main" type=hidden notab
cgi_text "take=1" type=hidden notab
} else {
cgi_text "oncancel=addrbook" type=hidden notab
}
cgi_text "book=$book" type=hidden notab
if {$add == 0} {cgi_text "nick=$nick" type=hidden notab}
if {$add != 0} {cgi_text "add=1" type=hidden notab}
cgi_text "ai=${ai}" type=hidden notab
cgi_text "cid=[WPCmd PEInfo key]" type=hidden notab
foreach fieldval $ae_fields {
cgi_table_row {
cgi_table_data valign=top align=right width="30%" class=dialog {
# cgi_puts [cgi_font face=tahoma,verdana,geneva size=+1 "[lindex $fieldval 2]:"]
cgi_puts [cgi_bold "[lindex $fieldval 2]:"]
}
cgi_table_data align=left {
switch -regexp [lindex $fieldval 1] {
^addrs$ {
set addrvals [lindex $addrinfo [lindex $fieldval 0]]
set line [join $addrvals ", "]
cgi_text "[lindex $fieldval 1]=${line}" size=50
}
default {
cgi_text "[lindex $fieldval 1]=[lindex $addrinfo [lindex $fieldval 0]]" size=50
}
}
}
}
}
cgi_table_row {
cgi_table_data align=right {
cgi_puts [cgi_font class=notice size=-1 "* Required field"]
}
}
cgi_table_row {
cgi_table_data align=center colspan=2 {
if {$readwrite} {
cgi_submit_button "save=Save Entry"
cgi_put [cgi_img [WPimg dot2] border=0 alt="" width=10]
}
if {$readwrite && $add == 0 && $take == 0} {
cgi_submit_button "delete=Delete Entry"
cgi_put [cgi_img [WPimg dot2] border=0 alt="" width=10]
}
cgi_submit_button "cancel=Cancel"
}
}
}
}
}
}
}
}
}
}
}