#!./tclsh # $Id: settings 1266 2009-07-14 18:39:12Z hubert@u.washington.edu $ # ======================================================================== # Copyright 2008 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 # # ======================================================================== # view.tcl # # Purpose: CGI script settings for Web Alpine 2.0 settings page # # Input: # set settings_args { } # inherit global config source ./alpine.tcl source ./foldercache.tcl source ./common.tcl set script_base "$_wp(serverpath)/$_wp(appdir)/$_wp(ui2dir)/" # TEST proc cgi_suffix {args} { return "" } set labels 0 proc set_feature {feature desc} { global labels cgi_checkbox $feature=1 [set_checked [WPCmd PEInfo feature $feature]] id="label_[incr labels]" cgi_put " " } proc set_checked {checked {token checked}} { if {$checked > 0} { return $token } return "" } proc set_variable {var {desc ""}} { global labels if {[string length $desc]} { cgi_put "" } cgi_text ${var}=[var_value $var] id="label_${labels}" } WPEval $settings_args { if {0 == [catch {WPCmd PEFolder current} curfold]} { set c [lindex $curfold 0] set f [lindex $curfold 1] } else { set c 0 set f inbox } set charset "UTF-8" cgi_http_head { WPStdHttpHdrs "text/html; charset=$charset" } cgi_html { cgi_head { cgi_content_type "text/html; charset=$charset" cgi_title [wpPageTitle "Settings"] cgi_base "href=$script_base" cgi_stylesheet css/cbn/screen.css # Yahoo Styles cgi_stylesheet $_wp(yui)/build/container/assets/container-core.css cgi_stylesheet $_wp(yui)/build/menu/assets/skins/sam/menu.css cgi_stylesheet $_wp(yui)/build/button/assets/skins/sam/button.css # YahooUI libraries cgi_script type=text/javascript language="JavaScript" src="$_wp(yui)/build/utilities/utilities.js" {} cgi_script type=text/javascript language="JavaScript" src="$_wp(yui)/build/container/container-min.js" {} cgi_script type=text/javascript language="JavaScript" src="$_wp(yui)/build/datasource/datasource-min.js" {} cgi_script type=text/javascript language="JavaScript" src="$_wp(yui)/build/menu/menu-min.js" {} cgi_script type=text/javascript language="JavaScript" src="$_wp(yui)/build/button/button-min.js" {} # local libraries cgi_script language="JavaScript" src="lib/common.js" {} cgi_script language="JavaScript" src="lib/settings.js" {} cgi_javascript { cgi_puts "YAHOO.alpine.cgi_root = '$_wp(serverpath)';" cgi_puts "YAHOO.alpine.cgi_base = '$script_base';" cgi_puts "YAHOO.alpine.current.incoming = [WPCmd PEFolder isincoming $c];" cgi_puts "YAHOO.alpine.current.c = $c;" cgi_puts "YAHOO.alpine.current.f = \"$f\";" cgi_puts "function bodyOnLoad() {" cgi_puts " if(YAHOO.env.ua.gecko > 0){ sizeVPHeight(); window.onresize = resizeVPHeight; }" cgi_puts " setCheckMailFunction('gCheck', newMailCheck);" cgi_puts " setNewMailCheckInterval([WPCmd PEInfo inputtimeout]);" cgi_puts "}" cgi_puts "browserDetect();" } } cgi_body class=wap "onLoad=bodyOnLoad()" { cgi_puts {} wpCommonPageLayout {settings { cgi_hr cgi_division { cgi_put [cgi_url [cgi_span "class=sp splci tbi5" "Back to $f"] browse/$c/$f class=wap title="Return to $f without saving changes"] } cgi_hr cgi_division class="ftitle bld" { cgi_put "Basic Settings" } cgi_division "class=\"bld sel\"" { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "General Preferences"] # class=wap id=Page1 "onClick=return settingsPage(this);"] } cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Personal Preferences"] # class=wap id=Page2 "onClick=return settingsPage(this);"] } cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "News and Weather"] # class=wap id=Page3 "onClick=return settingsPage(this);"] } cgi_division class="ftitle bld" "style=\"margin-top: 2em;\"" { cgi_put [cgi_url "[cgi_img img/cbn/f_plus.gif class=wap] Advanced Settings" # class=wap "onClick=return toggleAdvance(this);"] } cgi_division id=advancedSettings { cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Message List"] # class=wap id=Page4 "onClick=return settingsPage(this);"] } cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Message View"] # class=wap id=Page5 "onClick=return settingsPage(this);"] } cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Folders"] # class=wap id=Page8 "onClick=return settingsPage(this);"] } cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Compose"] # class=wap id=Page6 "onClick=return settingsPage(this);"] } cgi_division class="ftitle bld" "style=\"margin-top: 2em;\"" { cgi_put "Server Settings" } cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Mail Servers"] # class=wap id=Page10 "onClick=return settingsPage(this);"] } cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Directory Servers"] # class=wap id=Page9 "onClick=return settingsPage(this);"] } } if {[info exists _wp(filter_link)] || [info exists _wp(vacation_link)]} { cgi_division class="ftitle bld" "style=\"margin-top: 2em;\"" { cgi_put "External Settings" } } if {[info exists _wp(filter_link)]} { cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Message Filtering"] $_wp(filter_link) class=wap target=_blank] } } if {[info exists _wp(vacation_link)]} { cgi_division class=bld { cgi_put [cgi_url [cgi_span "class=sp splcs splc12" "Vacation Auto-Reply"] $_wp(vacation_link) class=wap target=_blank] } } }} "$c" "$f" 0 Settings \ [list [cgi_cgi "$_wp(appdir)/$_wp(ui2dir)/browse/${c}/${f}"] Settings 0 searchContent('settings','alpineContent')] "" { # CONTEXT COMMANDS cgi_division class=hdrBtns { cgi_javascript { cgi_put "if(window.print) document.write('[cgi_buffer {cgi_put [cgi_url "[cgi_span "class=sp hdrBtnImg hbi1" ""][cgi_span "class=hdrBtnText" Print]" "print" "onClick=return printContent()"]}]');" } cgi_put [cgi_url "[cgi_span "class=sp hdrBtnImg hbi3" ""][cgi_span "class=hdrBtnText" Help]" "javascript:openHelpWindow('settings.html');" class=wap] cgi_put [cgi_url "[cgi_span "class=sp hdrBtnImg hbi4" ""][cgi_span "class=hdrBtnText" "Sign out"]" "../../session/logout.tcl?cid=[WPCmd PEInfo key]&sessid=${sessid}"] } } { # TOP MENUBAR cgi_anchor_name "toolbar" cgi_table class="toolbarTbl" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_table_row { cgi_table_data { cgi_table class="toolbarTbl" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_table_row { cgi_table_data class="wap" { cgi_put [cgi_url [cgi_span "class=sp spmbi spmb10" "Save Settings"] "#" title="Save Settings Changes" "onClick=return saveSettings();"] } cgi_table_data class="wap" { cgi_put [cgi_url [cgi_span "class=sp spmbi spmb21" "Reset to Default Settings"] "#" "onClick=panelConfirm('Restoring default settings will erase all custom settings.

Are you sure you want to restore default settings?',{text:'Restore Defaults',fn:restoreDefaultSettings}); return false;" title="Reset to Default Settings"] } cgi_table_data class="wap" { cgi_put [cgi_url [cgi_span "class=sp spmbi spmb12" "Cancel"] "browse/$c/$f" title="Cancel Settings Changes"] } cgi_table_data width="100%" { cgi_puts [cgi_nbspace] } } cgi_puts "" } } } cgi_puts "" } } { cgi_form $_wp(appdir)/$_wp(ui2dir)/conduit/settings.tcl "enctype=multipart/form-data" id=settingsForm target=formResponse { cgi_text "restore=false" id=restore type=hidden notab cgi_table id=settingsPage1 "class=\"fields settings\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

General Preferences

" cgi_table_row { cgi_table_data class="title" { cgi_puts "Message Display" #[cgi_br] } cgi_table_data class="body" { if {[info exists _wp(themes)]} { cgi_put "Theme: " cgi_select theme { foreach theme $_wp(themes) { cgi_option [lindex $theme 0] value=[lindex $theme 1] } } cgi_br } cgi_put "Display " set n [var_value wp-indexlines] cgi_select wp-indexlines { for {set i 10} {$i <= $_wp(indexlinesmax)} {incr i 5} { cgi_option $i value=$i [set_checked [expr {$i == $n}] selected] } } cgi_put " messages per page" cgi_br cgi_put "Wrap Plain Text message at " set n [WPCmd PEConfig columns] cgi_select wrapColumn { for {set i 20} {$i < 130} {incr i 4} { cgi_option $i value=$i [set_checked [expr {$i == $n}] selected] } } cgi_put " characters" } } cgi_table_row { cgi_table_data class="title" { cgi_put "Folders" #[cgi_br] } cgi_table_data class="body" { cgi_put "Display " if {[catch {WPSessionState left_column_folders} n]} { set n $_wp(fldr_cache_def) } cgi_select folderCache { for {set i 5} {$i <= $_wp(fldr_cache_max)} {incr i} { cgi_option $i value=$i [set_checked [expr {$i == $n}] selected] } } cgi_put " recent folders in left column" } } cgi_table_row { cgi_table_data class="title" { cgi_put "Reply[cgi_nbspace]Options" #[cgi_br] } cgi_table_data class="body" { set_feature include-header-in-reply "Include headers in replies" cgi_br set_feature include-attachments-in-reply "Include attachments in replies" cgi_br set_feature signature-at-bottom "Append signature below reply text" cgi_br set_feature strip-from-sigdashes-on-reply "Strip signatures when replying" } } cgi_table_row { cgi_table_data class="title" { cgi_put "Forwarding[cgi_nbspace]Options" #[cgi_br] } cgi_table_data class="body" { set as_attach [WPCmd PEInfo feature forward-as-attachment] cgi_radio_button forwardAs=inline id="forward_inline" [set_checked [expr {$as_attach == 0}]] cgi_put " " cgi_br cgi_radio_button forwardAs=attached id="forward_attachment" [set_checked $as_attach] cgi_put " " } } cgi_table_row { cgi_table_data class="title" { cgi_put "Sent[cgi_nbspace]Message[cgi_nbspace]Options" cgi_put "

Tip: Set folder blank to prevent saving of Sent messages" #[cgi_br] } cgi_table_data class="body" { set_variable default-fcc "Name of your Sent mail folder (also called \"Fcc\"): " cgi_br set_feature fcc-without-attachments "Save sent messages to Sent folder without attachments" } } cgi_puts "" } cgi_table id=settingsPage2 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

Personal[cgi_nbspace]Information

" cgi_table_row { cgi_table_data class="title" { cgi_put "Display[cgi_nbspace]Name" #
} cgi_table_data class="body" { set_variable personal-name } } cgi_table_row { cgi_table_data class="title" { cgi_put "User[cgi_nbspace]Domain" #
} cgi_table_data class="body" { set_variable user-domain } } cgi_table_row { cgi_table_data class="title" { cgi_put "Email[cgi_nbspace]Signature" #
} cgi_table_data class="body" { # #
# #
cgi_textarea signature=[join [WPCmd PEInfo rawsig] "\n"] cols="72" rows="5" title=Signature } } cgi_table_row { cgi_table_data class="title" { cgi_put "Alternate[cgi_nbspace]Addresses" cgi_put "

Tip: List alternate email addresses " cgi_put "you use. Reply All will not include" cgi_put "these email addresses when replying." #
} cgi_table_data class="body" { cgi_put "Add/Remove Addresses: " set varval [WPCmd PEConfig varget alt-addresses] cgi_text "altAddrs=[llength [lindex $varval 0]]" id=altAddrs type=hidden notab cgi_table id=altAddrTable { set n 0 foreach svr [lindex $varval 0] { incr n cgi_table_row { cgi_table_data { cgi_text altAddr${n}=[string trim $svr] size="45" cgi_put [cgi_url [cgi_img img/cbn/remove.gif class=wap] # "onClick=return removeTableRow(this);"] } } } } } } cgi_puts "" } cgi_table id=settingsPage3 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

News[cgi_nbspace]and[cgi_nbspace]Weather

" cgi_table_row { cgi_table_data class="title" { cgi_put "Headline[cgi_nbspace]News" #
} cgi_table_data class="body" { cgi_put "RSS URL: " cgi_text rss-news=[var_value rss-news] size="45" } } cgi_table_row { cgi_table_data class="title" { cgi_put "Weather[cgi_nbspace]Bar" #
} cgi_table_data class="body" { cgi_put "RSS URL: " cgi_text rss-weather=[var_value rss-weather] size="45" } } cgi_puts "" } cgi_table id=settingsPage4 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

Message[cgi_nbspace]List

" cgi_table_row { cgi_table_data class="title" { cgi_put "Message List" } cgi_table_data class="body" { cgi_table { cgi_put "" cgi_table_row { cgi_table_data { cgi_put "Sort Order (default): " } cgi_table_data { set val [WPCmd PEConfig varget sort-key] cgi_select sort-key { foreach k [lindex $val 2] { cgi_option $k value=$k [set_checked [expr {0 == [string compare -nocase $k [lindex $val 0]]}] selected] } } } } cgi_table_row { cgi_table_data { cgi_put "Start display at:" } cgi_table_data { set val [WPCmd PEConfig varget incoming-startup-rule] cgi_select incoming-startup-rule { foreach k [lindex $val 2] { cgi_option $k value=$k [set_checked [expr {0 == [string compare -nocase $k [lindex $val 0]]}] selected] } } } } cgi_put "" } } } cgi_table_row { cgi_table_data class="title" { cgi_put "Message[cgi_nbspace]Handling" } cgi_table_data class="body" { set_variable read-message-folder "Name of the folder to hold your read messages: " cgi_br set_feature auto-move-read-msgs "Automatically Move Read Messages" } } cgi_puts "" } cgi_table id=settingsPage5 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

Message View

" cgi_table_row { cgi_table_data class="title" { cgi_put "Display[cgi_nbspace]Headers" } cgi_table_data class="body" { cgi_put "Add/Remove Header Names: " set varval [WPCmd PEConfig varget viewer-hdrs] cgi_text "viewerHdrs=[llength [lindex $varval 0]]" id=viewerHdrs type=hidden notab cgi_table id=viewerHdrsTable { set n 0 foreach svr [lindex $varval 0] { incr n cgi_table_row { cgi_table_data { cgi_text viewerHdr${n}=[string trim $svr] size="45" cgi_put [cgi_url [cgi_img img/cbn/remove.gif class=wap] # "onClick=return removeTableRow(this);"] } } } } } } cgi_table_row { cgi_table_data class="title" { cgi_put "Display[cgi_nbspace]Links[cgi_nbspace]in[cgi_nbspace]Messages" cgi_put "

Tip: Applies only to plain text messages." #
} cgi_table_data class="body" { cgi_table { cgi_put "" cgi_table_row { cgi_table_data { set_feature enable-msg-view-urls "Display complete URLs as links" } } cgi_table_row { cgi_table_data { set_feature enable-msg-view-web-hostnames "Display hostnames and incomplete URLs as links" } } cgi_table_row { cgi_table_data { set_feature enable-msg-view-addresses "Display Email addresses as links" } } cgi_put "" } } } cgi_table_row { cgi_table_data class="title" { cgi_put "Rich[cgi_nbspace]Text[cgi_nbspace]Display" #
} cgi_table_data class="body" { set_feature render-html-internally "Show rich text messages as plain text" } } cgi_table_row { cgi_table_data class="title" { cgi_put "Anti-phishing" cgi_put "

Tip: This feature aids in identifying fake links. Applies only when rich text shown as plain text." #
} cgi_table_data class="body" { set_feature quell-server-after-link-in-html "Hide appended real hostname after links" } } cgi_puts "" } cgi_table id=settingsPage6 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

Compose

" cgi_table_row { cgi_table_data class="title" { cgi_put "Compose[cgi_nbspace]Headers" cgi_put "

Tip: Default header fields displayed in Compose" } cgi_table_data class="body" { cgi_put "Add/Remove Header Names: " set varval [WPCmd PEConfig varget default-composer-hdrs] cgi_text "composeHdrs=[llength [lindex $varval 0]]" id=composeHdrs type=hidden notab cgi_table id=composeHdrsTable { set n 0 foreach svr [lindex $varval 0] { incr n cgi_table_row { cgi_table_data { cgi_text composeHdr${n}=[string trim $svr] size="45" cgi_put [cgi_url [cgi_img img/cbn/remove.gif class=wap] # "onClick=return removeTableRow(this);"] } } } } } } cgi_table_row { cgi_table_data class="title" { cgi_put "Custom[cgi_nbspace]Headers" } cgi_table_data class="body" { cgi_put "Add/Remove Headers: " set varval [WPCmd PEConfig varget customized-hdrs] cgi_text "customHdrFields=[llength [lindex $varval 0]]" id=customHdrFields type=hidden notab cgi_table id=customHdrTbl { set nh 0 foreach hdr [lindex $varval 0] { incr nh cgi_table_row { set n [string first {:} $hdr] switch -- $n { -1 - 0 - 1 { cgi_table_data colspan=2 { cgi_text "customHdrField${nh}=[cgi_quote_html $hdr]" type=hidden notab cgi_put "$hdr" } } default { cgi_table_data { set field_name [string range $hdr 0 [expr {$n - 1}]] cgi_put $field_name cgi_text "customHdrField${nh}=[cgi_quote_html $field_name]" type=hidden notab } cgi_table_data { cgi_text customHdrData${nh}=[string trim [string range $hdr [incr n] end]] size="45" cgi_put [cgi_url [cgi_img img/cbn/remove.gif class=wap] # "onClick=return removeTableRow(this);"] } } } } } } } } cgi_table_row { cgi_table_data class="title" { cgi_put "Message[cgi_nbspace]Encoding" #[cgi_br] } cgi_table_data class="body" { set_variable posting-character-set "Send messages using character encoding: " } } cgi_table_row { cgi_table_data class="title" { cgi_put "Reply[cgi_nbspace]Options" #[cgi_br] } cgi_table_data class="body" { set_variable reply-leadin "Reply intro string: " cgi_br set_variable reply-indent-string "Reply prefix: " } } cgi_table_row { cgi_table_data class="title" { cgi_put "Flowed[cgi_nbspace]Text[cgi_nbspace]Handling" #[cgi_br] } cgi_table_data class="body" { set_feature quell-flowed-text "Do not send text as Flowed Text" } } cgi_puts "" } cgi_table id=settingsPage7 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

Filters

" cgi_puts "" } cgi_table id=settingsPage8 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

Folders

" cgi_table_row { cgi_table_data class="title" { cgi_put "Draft[cgi_nbspace]Folder" #[cgi_br] } cgi_table_data class="body" { set_variable postponed-folder } } cgi_table_row { cgi_table_data class="title" { cgi_put "Trash[cgi_nbspace]Folder" #[cgi_br] } cgi_table_data class="body" { set_variable trash-folder } } cgi_puts "" } if {0 == [catch {WPCmd PEConfig varget ldap-servers} varval]} { cgi_table id=settingsPage9 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

Directory[cgi_nbspace]Servers

" cgi_table_row { cgi_table_data class="title" { cgi_put "LDAP[cgi_nbspace]Server" } cgi_table_data class="body" { cgi_put "Add/Remove Servers: " cgi_text "ldapServers=[llength [lindex $varval 0]]" id=ldapServers type=hidden notab cgi_table id=ldapServerTable { set n 0 foreach svr [lindex $varval 0] { incr n cgi_table_row { cgi_table_data { cgi_text ldapServer${n}=[string trim $svr] size="45" cgi_put [cgi_url [cgi_img img/cbn/remove.gif class=wap] # "onClick=return removeTableRow(this);"] } } } } } } cgi_puts "" } } cgi_table id=settingsPage10 "class=\"fields settings\"" "style=\"display: none;\"" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_puts "

Mail[cgi_nbspace]Servers

" cgi_table_row { cgi_table_data class="title" { cgi_put "Inbox[cgi_nbspace]Server" cgi_put "

Tip: Server name inside brackets, folder name after" } cgi_table_data class="body" { cgi_text inbox-path=[var_value inbox-path] size="45" } } cgi_table_row { cgi_table_data class="title" { cgi_put "SMTP[cgi_nbspace]Server" } cgi_table_data class="body" { cgi_put "Add/Remove Servers: " set varval [WPCmd PEConfig varget smtp-server] cgi_text "smtpServers=[llength [lindex $varval 0]]" id=smtpServers type=hidden notab cgi_table id=smtpServerTable { set n 0 foreach svr [lindex $varval 0] { incr n cgi_table_row { cgi_table_data { cgi_text smtpServer${n}=[string trim $svr] size="45" cgi_put [cgi_url [cgi_img img/cbn/remove.gif class=wap] # "onClick=return removeTableRow(this);"] } } } } } } cgi_puts "" } } } { # BOTTOM MENUBAR cgi_table class="wap toolbarTbl" cellpadding="0" cellspacing="0" { cgi_puts " " } } } } }