Index: openacs-4/packages/contacts/www/search.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/search.tcl,v
diff -u -r1.31 -r1.32
--- openacs-4/packages/contacts/www/search.tcl 18 Apr 2006 10:19:44 -0000 1.31
+++ openacs-4/packages/contacts/www/search.tcl 19 May 2006 09:38:47 -0000 1.32
@@ -26,7 +26,7 @@
{remove_column ""}
} -validate {
valid_object_type -requires {object_type} {
- if { [lsearch [list party person organization] $object_type] < 0 } {
+ if { [lsearch [list party person organization employee] $object_type] < 0 } {
ad_complain "[_ contacts.You_have_specified_an_invalid_object_type]"
}
}
@@ -48,6 +48,7 @@
}
}
+
set package_url [ad_conn package_url]
if { [exists_and_not_null aggregate] } {
@@ -79,6 +80,11 @@
}
}
+if { $object_type eq "employee" } {
+ set actual_object_type "person"
+} else {
+ set actual_object_type $object_type
+}
if { $search_exists_p } {
@@ -87,12 +93,12 @@
# permissions for what attributes/extensions are visible to this
# user are to be handled by this callback proc. The callback
# MUST only return keys that are visible to this user
-
+
callback contacts::extensions \
-user_id [ad_conn user_id] \
-multirow ext \
-package_id [ad_conn package_id] \
- -object_type $object_type
+ -object_type $actual_object_type
set add_columns [list]
set remove_columns [list]
@@ -174,6 +180,7 @@
set object_type_pretty_name(party) [_ contacts.People_or_Organizations]
set object_type_pretty_name(person) [_ contacts.People]
set object_type_pretty_name(organization) [_ contacts.Organizations]
+set object_type_pretty_name(employee) [_ contacts.Employees]
if { ![exists_and_not_null owner_id] } {
set owner_id [ad_conn user_id]
@@ -197,6 +204,7 @@
set query_pretty ""
}
+set display_employers_p [parameter::get -boolean -parameter DisplayEmployersP -default "0"]
# FORM HEADER
set form_elements {
{search_id:key}
@@ -212,7 +220,11 @@
}
} else {
set object_type_options [list]
- foreach object_type_temp [list party person organization] {
+ set object_types [list party person organization]
+ if { $display_employers_p } {
+ lappend object_types "employee"
+ }
+ foreach object_type_temp $object_types {
lappend object_type_options [list $object_type_pretty_name($object_type_temp) $object_type_temp]
}
append form_elements {
@@ -258,7 +270,7 @@
#get condition types widgets
set form_elements [concat \
$form_elements \
- [contacts::search::condition_type -type $type -request ad_form_widgets -form_name advanced_search -object_type $object_type] \
+ [contacts::search::condition_type -type $type -request ad_form_widgets -form_name advanced_search -object_type $actual_object_type] \
]
if { !$employee_p } {
# Show the Ok button
@@ -267,28 +279,41 @@
if { $search_exists_p } {
-
+
set results_count [contact::search::results_count -search_id $search_id]
append form_elements {
{title:text(text),optional {label "
[_ contacts.save_this_search_]"} {html {size 40 maxlength 255}}}
{save:text(submit) {label "[_ contacts.Save]"} {value "save"}}
{search:text(submit) {label "[_ contacts.Search]"} {value "search"}}
{clear:text(submit) {label "[_ contacts.Clear]"} {value "clear"}}
- {delete:text(submit) {label "[_ contacts.Delete]"} {value "delete"} \
- {after_html "
[_ contacts.Aggregate_by]:
"}
- }
}
- append form_elements [contacts::search::condition_type::attribute \
- -request ad_form_widgets \
- -prefix "aggregate_" \
- -without_arrow_p "t" \
- -only_multiple_p "t" \
- -package_id [ad_conn package_id]]
+
+ if { $display_employers_p } {
- append form_elements {
- {aggregate:text(submit) {label "[_ contacts.Aggregate]"} {value "aggregate"} {after_html " [_ contacts.Results] $results_count"}}
+ append form_elements {
+ {delete:text(submit) {label "[_ contacts.Delete]"} {value "delete"} \
+ {after_html "
[_ contacts.Aggregate_by]:
"}
+ }
+ }
+ append form_elements [contacts::search::condition_type::attribute \
+ -request ad_form_widgets \
+ -prefix "aggregate_" \
+ -without_arrow_p "t" \
+ -only_multiple_p "t" \
+ -package_id [ad_conn package_id]]
+
+ append form_elements {
+ {aggregate:text(submit) {label "[_ contacts.Aggregate]"} {value "aggregate"} {after_html " [_ contacts.Results] $results_count"}}
+ }
+ } else {
+ append form_elements {
+ {delete:text(submit) {label "[_ contacts.Delete]"} {value "delete"} \
+ {after_html " [_ contacts.Results] $results_count"}
+ }
+ aggregate:text(hidden),optional
+ }
}
}