Index: openacs-4/packages/contacts/lib/contacts.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/lib/contacts.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/contacts/lib/contacts.tcl 13 Jun 2005 18:59:05 -0000 1.2 +++ openacs-4/packages/contacts/lib/contacts.tcl 14 Jun 2005 06:08:28 -0000 1.3 @@ -5,48 +5,24 @@ @creation-date 2004-07-28 @cvs-id $Id$ } { - {rel_type:optional} {orderby "first_names,asc"} {format "normal"} - {query_id:integer ""} + {search_id:integer ""} {query ""} {page:optional} {page_size:integer "25"} - {tasks_interval:integer "7"} - {package_id ""} } - -set title "[_ contacts.Contacts]" -set context {} - -if { [exists_and_not_null query_id] } { - if { [contact::search::exists_p -search_id $query_id] } { - set search_id $query_id - set query_type "search" - } else { - set group_id $query_id - set query_type "group" - } -} else { -# set group_id [application_group::group_id_from_package_id -package_id [ad_conn subsite_id]] - set group_id [contacts::default_group -package_id $package_id] - set query_id $group_id - set query_type "group" - if { ![exists_and_not_null group_id] } { - ad_return_error "[_ contacts.Not_Configured]" "[_ contacts.lt_Your_administrator_mu]" - } -} - - if { $orderby == "first_names,asc" } { set name_order 0 - set name_label "[_ contacts.Sort_by] [_ contacts.First_Names] | [_ contacts.Last_Name]" + set name_label "[_ contacts.Sort_by]: [_ contacts.First_Names] | [_ contacts.Last_Name]" } else { set name_order 1 - set name_label "[_ contacts.Sort_by] [_ contacts.First_Names] | [_ contacts.Last_Name]" + set name_label "[_ contacts.Sort_by] [_ contacts.First_Names] | [_ contacts.Last_Name]" } -append name_label "    [_ contacts.Show]" + +append name_label "    [_ contacts.Show]: " + set first_p 1 foreach page_s [list 25 50 100 500] { if { [string is false $first_p] } { @@ -55,60 +31,14 @@ if { $page_size == $page_s } { append name_label $page_s } else { - append name_label "$page_s" + append name_label "$page_s" } set first_p 0 } -append name_label "   Get: CSV" -# SEARCH CLAUSE +append name_label "   [_ contacts.Get]: [_ contacts.CSV]" -set search_clause [list] -if { $query_type == "group" } { - if { $group_id != "-2" } { - lappend search_clause "and party_id in ( select member_id from group_distinct_member_map where group_id = '$group_id' )" - } - if { [exists_and_not_null rel_type] } { - set rel_valid_p 0 - db_foreach get_rels {} { - if { $rel_type == $relation_type } { - set rel_valid_p 1 - } - } - if { $rel_valid_p } { - lappend search_clause "and party_id in ( select member_id from group_member_map where rel_type = '$rel_type' )" - } else { - set rel_type "" - } - } -} elseif { $query_type == "search" } { - lappend search_clause [contact::search::where_clause -and -search_id $search_id -party_id "parties.party_id" -revision_id "revision_id"] -} - - -if { [exists_and_not_null query] } { - set search [string trim $query] - foreach term $query { - if { [string is integer $query] } { - lappend search_clause "and party_id = $term" - } else { - lappend search_clause "and upper(contact__name(party_id)) like upper('%${term}%')" - } - } -} -set search_clause [join $search_clause "\n"] - - -# LIST CODE - -#set actions [list \ -# "Add Person" "contact-add?object_type=person" "Add a Person" \ -# "Add Organization" "contact-add?object_type=organization" "Add an Organization" \ -# "Advanced Search" "search" "Advanced Search" \ -# "Settings" "settings" "Modify Settings" \ -# "Admin" "admin" "Administration"] -set actions "" set bulk_actions [list \ "[_ contacts.Add_to_Group]" "group-parties-add" "[_ contacts.Add_to_group]" \ "[_ contacts.Remove_From_Group]" "group-parties-remove" "[_ contacts.lt_Remove_from_this_Grou]" \ @@ -127,21 +57,11 @@ -page_size $page_size \ -page_flush_p t \ -page_query_name contacts_pagination \ - -actions $actions \ + -actions "" \ -bulk_actions $bulk_actions \ -bulk_action_method post \ - -bulk_action_export_vars { group_id } \ + -bulk_action_export_vars { search_id } \ -elements { - rownum { - label {} - display_col rownum - } - type { - label {} - display_template { - - } - } contact { label "$name_label" display_template { @@ -165,8 +85,7 @@ display_col email } } -filters { - rel_type {} - query_id {} + search_id {} page_size {} tasks_interval {} } -orderby { @@ -190,14 +109,6 @@ contact {} } } - tasks { - label "[_ contacts.Table]" - layout table - row { - checkbox {} - contact {} - } - } csv { label "[_ contacts.CSV]" output csv @@ -212,4 +123,13 @@ } } -db_multirow -unclobber contacts contacts_select {} \ No newline at end of file +db_multirow -unclobber contacts contacts_select {} + +if { [exists_and_not_null query] && [template::multirow size contacts] == 1 } { +# ad_returnredirect -message "in '$query_name' only this contact matched your query of '$query'" [contact::url -party_id [template::multirow get contacts 1 party_id]] + ad_returnredirect [contact::url -party_id [template::multirow get contacts 1 party_id]] + ad_script_abort +} + + +list::write_output -name contacts