Index: openacs-4/packages/contacts/www/search.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/search.tcl,v
diff -u -r1.21 -r1.22
--- openacs-4/packages/contacts/www/search.tcl 17 Nov 2005 16:33:32 -0000 1.21
+++ openacs-4/packages/contacts/www/search.tcl 18 Nov 2005 17:48:27 -0000 1.22
@@ -140,14 +140,28 @@
set default_extend_attributes [parameter::get -parameter "DefaultPersonOrganAttributeExtension"]
}
}
-
+
set show_default_names ""
set show_names ""
# We add the default attributes, first we take out all spaces
# and then split by ";"
regsub -all " " $default_extend_attributes "" default_extend_attributes
set default_extend_attributes [split $default_extend_attributes ";"]
+ # Now we are going to add the mapped attributes in the contact_search_extend_map
+ set ema_list [db_list get_extend_mapped_attributes { }]
+
+ foreach extend_attribute_id $ema_list {
+ # We check that the attribute is nor already in the default list
+ # to avoid duplicates
+ ams::attribute::get -attribute_id $extend_attribute_id -array ea_info
+ set attribute_name $ea_info(attribute_name)
+
+ if { [string equal [lsearch $default_extend_attributes $attribute_name] "-1"] } {
+ lappend default_extend_attributes $attribute_name
+ }
+ }
+
foreach attr $default_extend_attributes {
# Now we get the attribute_id
set attr_id [attribute::id -object_type "person" -attribute_name "$attr"]
@@ -167,7 +181,7 @@
}
}
- # To extend the reult list using default attributes
+ # To extend the result list using default attributes
if { [exists_and_not_null default_names] } {
set show_default_names "[join $default_names ", "], "
}
Index: openacs-4/packages/contacts/www/search.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/search.xql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/contacts/www/search.xql 19 Oct 2005 22:55:38 -0000 1.3
+++ openacs-4/packages/contacts/www/search.xql 18 Nov 2005 17:48:27 -0000 1.4
@@ -135,4 +135,16 @@
+
+
+ select
+ attribute_id
+ from
+ contact_search_extend_map
+ where
+ search_id = :search_id
+ and attribute_id is not null
+
+
+
Index: openacs-4/packages/contacts/www/admin/attribute-list.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/attribute-list.adp,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/contacts/www/admin/attribute-list.adp 11 Nov 2005 22:57:43 -0000 1.1
+++ openacs-4/packages/contacts/www/admin/attribute-list.adp 18 Nov 2005 17:48:27 -0000 1.2
@@ -1,3 +1,18 @@
+
+
+
+ #contacts.Default_attributes#: |
+ @default_names@ |
+
+
+
+
+
+
+
+
#contacts.Search_List#
+
+
Index: openacs-4/packages/contacts/www/admin/attribute-list.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/attribute-list.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/contacts/www/admin/attribute-list.tcl 11 Nov 2005 22:57:43 -0000 1.1
+++ openacs-4/packages/contacts/www/admin/attribute-list.tcl 18 Nov 2005 17:48:27 -0000 1.2
@@ -1,12 +1,20 @@
+# packages/contacts/www/admin/attribute-list.tcl
ad_page_contract {
+ Display a list of the available attributes to map to an specific
+ search_id and also the default attributes set in the paramaters
+ for each specific search_type.
+
+ @author Miguel Marin (miguelmarin@viaro.net)
+ @author Viaro Networks www.viaro.net
+ @creation-date 2005-11-11
} {
+ orderby:optional
search_id:notnull
+ page:optional
}
-
set search_for [db_string get_search_for { } -default ""]
-
set search_for_clause ""
# Get the var list of the search if type equals group
@@ -27,6 +35,8 @@
set search_for_clause "and l.list_name like '%__-2' "
}
append search_for_clause "and l.object_type = 'person'"
+ set default_extend_attributes [parameter::get -parameter "DefaultPersonAttributeExtension"]
+
}
organization {
if { ![empty_string_p $var_list] } {
@@ -38,42 +48,85 @@
set search_for_clause "and l.list_name like '%__-2' "
}
append search_for_clause "and l.object_type = 'organization'"
+ set default_extend_attributes [parameter::get -parameter "DefaultOrganizationAttributeExtension"]
+
}
party {
if { ![empty_string_p $var_list] } {
# Default attributes for the group, persons and organizations
set group_id [lindex [split $var_list " "] 1]
set search_for_clause "and (l.list_name like '%__-2' or l.list_name like '%__$group_id') "
}
+ set default_extend_attributes [parameter::get -parameter "DefaultPersonOrganAttributeExtension"]
}
}
+set default_names [list]
+set attribute_values [list]
+
+# We add the default attributes, first we take out all spaces
+# and then split by ";"
+regsub -all " " $default_extend_attributes "" default_extend_attributes
+set default_extend_attributes [split $default_extend_attributes ";"]
+
+foreach attr $default_extend_attributes {
+ # Now we get the attribute_id
+ set attr_id [attribute::id -object_type "person" -attribute_name "$attr"]
+ if { [empty_string_p $attr_id] } {
+ set attr_id [attribute::id -object_type "organization" -attribute_name "$attr"]
+ }
+
+ # We need to check if the attribute is not already present
+ # in the list, otherwise we could have duplicated.
+ if { ![empty_string_p $attr_id] } {
+ lappend attribute_values $attr_id
+ lappend default_names "[_ acs-translations.ams_attribute_${attr_id}_pretty_name]"
+ }
+}
+
+set default_names [join $default_names ", "]
+set extend_query ""
+if { ![string equal [llength $attribute_values] 0] } {
+ set extend_query "and a.attribute_id not in ([join $attribute_values ","])"
+}
+
set bulk_actions [list "[_ contacts.Set_default]" set-default "[_ contacts.Set_default]" \
"[_ contacts.Remove_default]" remove-default "[_ contacts.Remove_default]"]
template::list::create \
-name ams_options \
-multirow ams_options \
-key attribute_id \
+ -page_size 15 \
+ -page_flush_p 0 \
+ -page_query_name get_ams_options_pagination \
-bulk_action_method post \
-bulk_actions $bulk_actions \
-bulk_action_export_vars { search_id } \
-elements {
pretty_name {
- label "Attribute Name"
+ label "[_ contacts.Attribute_Name]:"
}
default {
label ""
}
+ } -filters {
+ search_id {}
+ } -orderby {
+ default_value pretty_name
+ pretty_name {
+ label "[_ contacts.Attribute_Name]:"
+ orderby_asc "a.attribute_name asc"
+ orderby_desc "a.attribute_name desc"
+ }
}
-
-db_multirow -extend { default } ams_options get_ams_options { } {
+db_multirow -extend { default } ams_options get_ams_options " " {
set default ""
set default_p [db_string get_default_p { } -default "0"]
if { $default_p } {
- set default "Default"
+ set default "[_ contacts.Default]"
}
}
Index: openacs-4/packages/contacts/www/admin/attribute-list.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/attribute-list.xql,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/contacts/www/admin/attribute-list.xql 14 Nov 2005 20:42:04 -0000 1.2
+++ openacs-4/packages/contacts/www/admin/attribute-list.xql 18 Nov 2005 17:48:27 -0000 1.3
@@ -30,20 +30,42 @@
select
distinct
lam.attribute_id,
- a.pretty_name
+ a.pretty_name,
+ a.attribute_name
from
ams_list_attribute_map lam,
ams_lists l,
ams_attributes a
where
lam.list_id = l.list_id
and lam.attribute_id = a.attribute_id
+ [template::list::page_where_clause -and -name "ams_options" -key "lam.attribute_id"]
+ $extend_query
$search_for_clause
- order by
- pretty_name asc
+ [template::list::orderby_clause -name "ams_options" -orderby]
+
+
+ select
+ distinct
+ lam.attribute_id,
+ a.pretty_name,
+ a.attribute_name
+ from
+ ams_list_attribute_map lam,
+ ams_lists l,
+ ams_attributes a
+ where
+ lam.list_id = l.list_id
+ and lam.attribute_id = a.attribute_id
+ $extend_query
+ $search_for_clause
+ [template::list::orderby_clause -name "ams_options" -orderby]
+
+
+
select
Index: openacs-4/packages/contacts/www/admin/ext-search-options.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/ext-search-options.adp,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/contacts/www/admin/ext-search-options.adp 14 Nov 2005 22:55:46 -0000 1.4
+++ openacs-4/packages/contacts/www/admin/ext-search-options.adp 18 Nov 2005 17:48:27 -0000 1.5
@@ -28,6 +28,7 @@
#contacts.Go_to_search_results#
+ #contacts.Search_List#
Index: openacs-4/packages/contacts/www/admin/remove-default.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/remove-default.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/contacts/www/admin/remove-default.tcl 11 Nov 2005 22:57:08 -0000 1.2
+++ openacs-4/packages/contacts/www/admin/remove-default.tcl 18 Nov 2005 17:48:27 -0000 1.3
@@ -16,6 +16,7 @@
delete from contact_search_extend_map where search_id = :search_id and extend_id = :value
}
}
+ ad_returnredirect ext-search-options?search_id=$search_id
}
if { [exists_and_not_null attribute_id] } {
@@ -24,6 +25,7 @@
delete from contact_search_extend_map where search_id = :search_id and attribute_id = :value
}
}
+ ad_returnredirect attribute-list?search_id=$search_id
}
ad_returnredirect search-list
\ No newline at end of file
Index: openacs-4/packages/contacts/www/admin/search-list.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/search-list.adp,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/contacts/www/admin/search-list.adp 11 Nov 2005 22:57:43 -0000 1.1
+++ openacs-4/packages/contacts/www/admin/search-list.adp 18 Nov 2005 17:48:27 -0000 1.2
@@ -1,4 +1,6 @@
+@page_title;noquote@
+
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 -r1.3 -r1.4
--- openacs-4/packages/contacts/www/admin/search-list.tcl 18 Nov 2005 16:13:10 -0000 1.3
+++ openacs-4/packages/contacts/www/admin/search-list.tcl 18 Nov 2005 17:48:27 -0000 1.4
@@ -12,6 +12,10 @@
} -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] } {
Index: openacs-4/packages/contacts/www/admin/set-default.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/set-default.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/contacts/www/admin/set-default.tcl 11 Nov 2005 22:57:08 -0000 1.2
+++ openacs-4/packages/contacts/www/admin/set-default.tcl 18 Nov 2005 17:48:27 -0000 1.3
@@ -29,6 +29,7 @@
}
}
}
+ ad_returnredirect ext-search-options?search_id=$search_id
}
if { [exists_and_not_null attribute_id] } {
@@ -49,6 +50,6 @@
}
}
}
+ ad_returnredirect attribute-list?search_id=$search_id
}
-ad_returnredirect search-list
\ No newline at end of file