Index: openacs-4/packages/contacts/www/admin/search-list.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/search-list.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/contacts/www/admin/search-list.tcl 30 Nov 2005 15:31:03 -0000 1.5.2.2
@@ -0,0 +1,124 @@
+ad_page_contract {
+ List and manage contacts.
+
+ @author Matthew Geddert openacs@geddert.com
+ @creation-date 2004-07-28
+ @cvs-id $Id: search-list.tcl,v 1.5.2.2 2005/11/30 15:31:03 miguelm Exp $
+} {
+ orderby:optional
+ {owner_id:optional}
+ {format "normal"}
+ page:optional
+} -validate {
+}
+
+set page_title [_ contacts.Search_List]
+
+
+
+set user_id [ad_conn user_id]
+set package_id [ad_conn package_id]
+if { ![exists_and_not_null owner_id] } {
+ set owner_id $user_id
+}
+
+template::list::create \
+ -name "searches" \
+ -key search_id \
+ -page_size 10 \
+ -page_flush_p 0 \
+ -page_query_name select_searches_pagination \
+ -multirow "searches" \
+ -row_pretty_plural "[_ contacts.searches]" \
+ -selected_format $format \
+ -key search_id \
+ -elements {
+ title {
+ label {[_ contacts.Title]}
+ display_template {
+ @searches.title@
+ }
+ }
+ owner {
+ label {[_ contacts.Owner]}
+ display_template {
+ by @searches.owner@
+ }
+ }
+ query {
+ label { [_ contacts.Query]}
+ display_col query;noquote
+ }
+ results {
+ label {[_ contacts.Results]}
+ display_col results
+ link_url_eval $search_url
+ }
+ action {
+ label ""
+ display_template {
+ Default Extend Options
+ Default Attributes
+ }
+ }
+ } -orderby {
+ default_value title
+ title {
+ label {[_ contacts.Title]}
+ orderby_desc "order_title desc"
+ orderby_asc "order_title asc"
+ }
+ owner {
+ label {[_ contacts.Owner]}
+ orderby_desc "owner_id desc, order_title asc"
+ orderby_asc "owner_id asc, order_title asc"
+ }
+ } -formats {
+ normal {
+ label "[_ contacts.Table]"
+ layout table
+ row {
+ }
+ }
+ csv {
+ label "CSV"
+ output csv
+ row {
+ title {}
+ results {}
+ }
+ }
+ }
+
+
+set return_url [export_vars -base searches -url {owner_id}]
+set search_ids [list]
+set admin_p [permission::permission_p -object_id $package_id -privilege "admin"]
+
+db_multirow -extend {query search_url make_public_url delete_url copy_url results owner search_link} -unclobber searches select_searches {} {
+
+ set aggregated_attribute [db_string get_saved_p { } -default ""]
+ if { [exists_and_not_null aggregated_attribute] } {
+ set search_link ".?search_id=$search_id&aggregate_attribute_id=$aggregated_attribute"
+ } else {
+ set search_link "search?search_id=$search_id"
+ }
+
+ set search_url [export_vars -base ../ -url {search_id}]
+ set owner [contact::name -party_id $search_owner_id]
+ if { [empty_string_p $owner] } {
+ set owner "Public"
+ }
+
+ lappend search_ids $search_id
+}
+
+# Since contact::search::results_count can if not cached required two db queries
+# when this is included in the multirow code block above it can hang due to a lack
+# of db pools. So it has to be done here.
+template::multirow foreach searches {
+ set results [contact::search::results_count -search_id $search_id]
+ set query [contact::search_pretty -search_id $search_id]
+}
+
+list::write_output -name searches