#!./tclsh # $Id: contacts 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 contacts for Web Alpine 2.0 pages # # Input: PATH_INFO: [/]/[/ # along with possible search parameters: set contacts_args { } # inherit global config source ./alpine.tcl source ./foldercache.tcl source ./common.tcl # TEST proc cgi_suffix {args} { return "" } # WHILE TESTING/DEBUGGING proc noimp {s} { return "onClick=return noImp('${s}');" } set dmsgs "" proc dm {s} { global dmsgs lappend dmsgs $s } WPEval $contacts_args { # verify current collection/folder if {[catch {WPCmd PEFolder current} curfold]} { error [list _action browse "cannot determine default folder: $curfold"] } else { set c [lindex $curfold 0] set f [lindex $curfold 1] } set charset "UTF-8" set u 0 cgi_http_head { WPStdHttpHdrs "text/html; charset=$charset" } cgi_html { cgi_head { cgi_content_type "text/html; charset=$charset" # WPStdHttpHdrs "text/html; charset=$charset" cgi_title [wpPageTitle "Contacts"] cgi_base "href=$_wp(serverpath)/$_wp(appdir)/$_wp(ui2dir)/" cgi_stylesheet css/menu.css cgi_stylesheet css/cbn/screen.css cgi_stylesheet css/cbn/contacts.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/button/button-min.js" {} cgi_script type=text/javascript language="JavaScript" src="$_wp(yui)/build/container/container.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" {} # local libraries cgi_script language="JavaScript" src="lib/common.js" {} cgi_script language="JavaScript" src="lib/contacts.js" {} cgi_javascript { cgi_puts "var gCurrentAbook = 0;" cgi_puts "YAHOO.alpine.current.c = '$c';" cgi_puts "YAHOO.alpine.current.f = '$f';" cgi_puts "YAHOO.alpine.current.u = $u;" cgi_puts "function updateContactCount(nBooks,nContacts){" cgi_puts " var el = document.getElementById('contactCount');" cgi_puts " if(el) el.innerHTML = nContacts + ' Contacts';" cgi_puts "}" cgi_puts "function bodyOnLoad() {" cgi_puts " initMenus();" 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 " drawContactList('alpineContent',gCurrentAbook,{hdr:'on',sendto:'on',canedit:'on'});" cgi_puts "}" # WHILE TESTING/DEBUGGING cgi_puts "var impi = new Array(); function noImp(m){ var sm; if(impi\[m\]) {impi\[m\]++; if(impi\[m\] > 4) sm = 'Seriously, ' + m + ' will never get implemented if you keep bothering me!'; else sm = m + ' is still not implemented!'; } else { sm = m + ' is not implemented yet!' ; impi\[m\] = 1 ;} showStatusMessage(sm,3); return false; }" cgi_puts "browserDetect();" } } cgi_body class=wap "onLoad=bodyOnLoad()" { wpCommonPageLayout contacts "$c" "$f" "$u" "Contacts" [list [cgi_cgi "$_wp(appdir)/$_wp(ui2dir)/contacts"] Contacts 0 searchContent('contacts','clistContacts')] "" { # 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 hbi2" ""][cgi_span "class=hdrBtnText" Settings]" "settings"] cgi_put [cgi_url "[cgi_span "class=sp hdrBtnImg hbi3" ""][cgi_span "class=hdrBtnText" Help]" "javascript:openHelpWindow('contacts.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}"] } } { # TO 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_puts [cgi_url [cgi_span "class=sp spmbi spmb13" "New Contact"] "contacts/new" title="Create new contact" "onClick=return contactEditor({which:'add'},storeNewContact);"] } cgi_table_data class=wap { cgi_puts [cgi_url [cgi_span "class=sp spmbi spmb14" "New Group"] "contacts/new/group" title="Create new group contact" "onClick=return contactEditor({which:'add',group:true},storeNewContact);"] } cgi_table_data class="dv1" { cgi_puts [cgi_img "img/cbn/div.gif"] } cgi_table_data class=wap { cgi_puts [cgi_url [cgi_span "class=sp spmbi spmb9" "Send Email"] "send" title="Send email to selected contact" "onClick=return sendToContact();"] } cgi_table_data class=wap { cgi_puts [cgi_url "[cgi_img "img/cbn/edit.gif" class=wap] Edit" "#" title="Edit selected contact" "onClick=return editCheckedContact();"] } cgi_table_data class=wap { cgi_puts [cgi_url "[cgi_img "img/cbn/delete.gif" class=wap] Delete" "#" title="Delete selected contact" "onClick=return contactDelete();"] } cgi_table_data class="dv1" { cgi_puts [cgi_img "img/cbn/div.gif"] } cgi_table_data class=wap { cgi_bullet_list class="menu" { cgi_put "
  • [cgi_url "More Actions [cgi_img "img/cbn/menu.gif" class="wap menuDn menuImg"]" "#" "onClick=return false;"]
    " cgi_bullet_list { cgi_li [cgi_url "Import vCards" "#" [noimp "vCard import"]] cgi_li [cgi_url "Export vCards" "#" [noimp "vCard export"]] } cgi_puts "
  • " } } cgi_table_data width="100%" { cgi_puts [cgi_nbspace] } } cgi_puts "" } } } cgi_puts "" } } { # MAIN PAGE CONTENT cgi_puts "Loading..." } { # BOTTOM MENUBAR cgi_table class="wap toolbarTbl" cellpadding="0" cellspacing="0" { cgi_puts "" cgi_table_row { cgi_table_data class="wap pageText" id=contactCount { cgi_puts "" } cgi_table_data width="100%" { cgi_puts [cgi_nbspace] } } cgi_puts "" } } # any debugging info to insert? foreach dmsg $dmsgs { cgi_html_comment "DEBUG: $dmsg" cgi_puts "" } } } }