Index: openacs-4/packages/contacts/lib/contacts-master.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/lib/contacts-master.adp,v diff -u -r1.4 -r1.5 --- openacs-4/packages/contacts/lib/contacts-master.adp 10 Dec 2005 11:21:22 -0000 1.4 +++ openacs-4/packages/contacts/lib/contacts-master.adp 14 Jan 2007 15:52:56 -0000 1.5 @@ -12,7 +12,7 @@ <div id="section"> <ul> <multiple name="links"> - <li><a href="@links.url@" title="Go to @links.label@"><if @links.selected_p@><strong></if>@links.label@<if @links.selected_p@></strong></if></a><if @links:rowcount@ eq @links.rownum@><em> </em></if> </li> + <li><a href="@links.url@" title="Go to @links.label@" id="@links.id@" onmouseover="@links.mouseover;noquote@"><if @links.selected_p@><strong></if>@links.label@<if @links.selected_p@></strong></if></a><if @links:rowcount@ eq @links.rownum@><em> </em></if> </li> </multiple> </ul> </div> @@ -25,6 +25,8 @@ <link href="/resources/contacts/contacts.css" rel="stylesheet" type="text/css"> </property> </else> + +@js_script;noquote@ <slave> Index: openacs-4/packages/contacts/lib/contacts-master.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/lib/contacts-master.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/packages/contacts/lib/contacts-master.tcl 16 Dec 2006 11:27:19 -0000 1.14 +++ openacs-4/packages/contacts/lib/contacts-master.tcl 14 Jan 2007 15:52:56 -0000 1.15 @@ -14,41 +14,78 @@ set link_list [list] lappend link_list "${package_url}" lappend link_list "[_ contacts.Contacts]" +lappend link_list "contacts" +lappend link_list "" if { ![parameter::get -boolean -parameter "ForceSearchBeforeAdd" -default "0"] } { - lappend link_list "${package_url}add/employee" - lappend link_list "[_ contacts.Add_Employee]" + set addlist [list [list [list "text" "[_ contacts.Add_Employee]"] [list "url" "${package_url}add/employee"] ] \ + [list [list "text" "[_ contacts.Add_Person]"] [list "url" "${package_url}add/person"] ] \ + [list [list "text" "[_ contacts.Add_Organization]"] [list "url" "${package_url}add/organization"] ] \ + ] + + ah::yui::menu_from_list -varname "oMenu1" \ + -id "basicmenu1" \ + -menulist $addlist \ + -arrayname "yuimenu1" \ + -options "context:new Array(\"menu1\",\"tl\",\"bl\")" \ + -css "/resources/contacts/yuimenu/menu.css" - lappend link_list "${package_url}add/person" - lappend link_list "[_ contacts.Add_Person]" + + set action_script1 $yuimenu1(show) - lappend link_list "${package_url}add/organization" - lappend link_list "[_ contacts.Add_Organization]" + lappend link_list "javascript:void(0)" ; # HREF + lappend link_list "[_ contacts.Add]" ; # Title + lappend link_list "menu1" ; # ID + lappend link_list "$action_script1" ; # Mouseover } -lappend link_list "${package_url}search" -lappend link_list "[_ contacts.Advanced_Search]" +set addlist [list [list [list "text" "[_ contacts.Advanced_Search]"] [list "url" "${package_url}search"] ] \ + [list [list "text" "[_ contacts.Saved_Searches]"] [list "url" "${package_url}searches"] ] \ + ] -lappend link_list "${package_url}searches" -lappend link_list "[_ contacts.Saved_Searches]" +ah::yui::menu_from_list -varname "oMenu2" \ + -id "basicmenu2" \ + -menulist $addlist \ + -arrayname "yuimenu2" \ + -options "context:new Array(\"menu2\",\"tl\",\"bl\")" \ + -css "/resources/contacts/yuimenu/menu.css" +set action_script1 $yuimenu2(show) + +lappend link_list "javascript:void(0)" ; # HREF +lappend link_list "[_ contacts.Search]" ; # Title +lappend link_list "menu2" ; # ID +lappend link_list "$action_script1" ; # Mouseover + + # this should be taken care of by a callback... if { [apm_package_enabled_p tasks] } { lappend link_list "${package_url}tasks" lappend link_list "[_ tasks.Tasks]" + lappend link_list "tasks" + lappend link_list "" + lappend link_list "${package_url}processes" lappend link_list "[_ tasks.Processes]" + lappend link_list "processes" + lappend link_list "" } lappend link_list "${package_url}messages" lappend link_list "[_ contacts.Messages]" +lappend link_list "messages" +lappend link_list "" lappend link_list "${package_url}settings" lappend link_list "[_ contacts.Settings]" +lappend link_list "settings" +lappend link_list "" if { [permission::permission_p -object_id [ad_conn package_id] -privilege "admin"] } { lappend link_list "${package_url}admin/" lappend link_list "[_ contacts.Admin]" + lappend link_list "admin" + lappend link_list "" } @@ -57,10 +94,10 @@ set page_query [ad_conn query] # Convert the list to a multirow and add the selected_p attribute -multirow create links label url selected_p +multirow create links label url id mouseover selected_p set navbar {} -foreach {url label} $link_list { +foreach {url label id mouseover} $link_list { set selected_p 0 if {[string equal $page_url $url]} { @@ -72,7 +109,7 @@ } } lappend navbar [list [subst $url] $label] - multirow append links $label [subst $url] $selected_p + multirow append links $label [subst $url] $id $mouseover $selected_p } if { [parameter::get -boolean -parameter "ForceSearchBeforeAdd" -default "0"] } { @@ -89,4 +126,11 @@ } else { set context [list $title] } + + +# Finalize the Javascript menus +set js_script $yuimenu1(render) +append js_script $yuimenu2(render) +set js_script [ah::enclose_in_script -script ${js_script} ] + ad_return_template Index: openacs-4/packages/contacts/www/resources/contacts.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/resources/contacts.css,v diff -u -r1.14 -r1.15 --- openacs-4/packages/contacts/www/resources/contacts.css 2 Jun 2006 09:18:31 -0000 1.14 +++ openacs-4/packages/contacts/www/resources/contacts.css 14 Jan 2007 15:52:56 -0000 1.15 @@ -215,7 +215,6 @@ border-left: 1px solid #333; margin: 0px 0px 10px 0px; padding: 0px; - text-transform: lowercase; background: #CCC; } Index: openacs-4/packages/contacts/www/resources/yuimenu/menu.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/resources/yuimenu/menu.css,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/contacts/www/resources/yuimenu/menu.css 14 Jan 2007 15:52:56 -0000 1.1 @@ -0,0 +1,297 @@ +/* +Copyright (c) 2006, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.txt +Version: 0.12.1 +*/ + + + +/* Menu styles */ + +div.yuimenu { + + background-color:#ccc; + border:solid 1px #c4c4be; + padding:1px; + +} + +/* Submenus are positioned absolute and hidden by default */ + +div.yuimenu div.yuimenu, +div.yuimenubar div.yuimenu { + + position:absolute; + visibility:hidden; + +} + +/* MenuBar Styles */ + +div.yuimenubar { + + background-color:#f6f7ee; + +} + +/* + Applying a width triggers "haslayout" in IE so that the module's + body clears its floated elements +*/ +div.yuimenubar div.bd { + + width:100%; + +} + +/* + Clear the module body for other browsers +*/ +div.yuimenubar div.bd:after { + + content:'.'; + display:block; + clear:both; + visibility:hidden; + height:0; + +} + + +/* Matches the group title (H6) inside a Menu or MenuBar instance */ + +div.yuimenu h6, +div.yuimenubar h6 { + + font-size:100%; + font-weight:normal; + margin:0; + border:solid 1px #c4c4be; + color:#b9b9b9; + +} + +div.yuimenubar h6 { + + float:left; + display:inline; /* Prevent margin doubling in IE */ + padding:4px 12px; + border-width:0 1px 0 0; + +} + +div.yuimenu h6 { + + float:none; + display:block; + border-width:1px 0 0 0; + padding:5px 10px 0 10px; + +} + + +/* Matches the UL inside a Menu or MenuBar instance */ + +div.yuimenubar ul { + + list-style-type:none; + margin:0; + padding:0; + +} + +div.yuimenu ul { + + list-style-type:none; + border:solid 1px #c4c4be; + border-width:1px 0 0 0; + margin:0; + padding:10px 0; + +} + + +div.yuimenu ul.first-of-type, +div.yuimenu ul.hastitle, +div.yuimenu h6.first-of-type { + + border-width:0; + +} + + +/* MenuItem and MenuBarItem styles */ + +div.yuimenu li, +div.yuimenubar li { + + font-size:85%; + cursor:pointer; + cursor:hand; + white-space:nowrap; + text-align:left; + +} + +div.yuimenu li.yuimenuitem { + + padding:2px 24px; + +} + +div.yuimenu li li, +div.yuimenubar li li { + + font-size:100%; + +} + + +/* Matches the help text for a menu item */ + +div.yuimenu li em { + + font-style:normal; + margin:0 0 0 40px; + +} + +div.yuimenu li a em { + + margin:0; + +} + +div.yuimenu li a, +div.yuimenubar li a { + + /* + "zoom:1" triggers "haslayout" in IE to ensure that the mouseover and + mouseout events bubble to the parent LI in IE. + */ + zoom:1; + color:#000; + text-decoration:none; + +} + +div.yuimenu li.hassubmenu, +div.yuimenu li.hashelptext { + + text-align:right; + +} + +div.yuimenu li.hassubmenu a.hassubmenu, +div.yuimenu li.hashelptext a.hashelptext { + + float:left; + display:inline; /* Prevent margin doubling in IE */ + text-align:left; + +} + + +/* Matches focused and selected menu items */ + +div.yuimenu li.selected, +div.yuimenubar li.selected { + + background-color:#8c8ad0; + +} + +div.yuimenu li.selected a.selected, +div.yuimenubar li.selected a.selected { + + text-decoration:underline; + +} + +div.yuimenu li.selected a.selected, +div.yuimenu li.selected em.selected, +div.yuimenubar li.selected a.selected { + + color:#fff; + +} + + +/* Matches disabled menu items */ + +div.yuimenu li.disabled, +div.yuimenubar li.disabled { + + cursor:default; + +} + +div.yuimenu li.disabled a.disabled, +div.yuimenu li.disabled em.disabled, +div.yuimenubar li.disabled a.disabled { + + color:#b9b9b9; + cursor:default; + +} + +div.yuimenubar li.yuimenubaritem { + + float:left; + display:inline; /* Prevent margin doubling in IE */ + border-width:0 0 0 1px; + border-style:solid; + border-color:#c4c4be; + padding:4px 24px; + margin:0; + +} + +div.yuimenubar li.yuimenubaritem.first-of-type { + + border-width:0; + +} + + +/* Matches the submenu indicator for menu items */ + +div.yuimenubar li.yuimenubaritem img { + + height:8px; + width:8px; + margin:0 0 0 10px; + vertical-align:middle; + +} + +div.yuimenu li.yuimenuitem img { + + height:8px; + width:8px; + margin:0 -16px 0 0; + padding-left:10px; + border:0; + +} + +div.yuimenu li.checked { + + position:relative; + +} + +div.yuimenu li.checked img.checked { + + height:8px; + width:8px; + margin:0; + padding:0; + border:0; + position:absolute; + left:6px; + _left:-16px; /* Underscore hack b/c this is for IE 6 only */ + top:.5em; + +} \ No newline at end of file