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