Index: openacs-4/packages/mail-tracking/lib/messages.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/mail-tracking/lib/messages.adp,v diff -u -r1.1 -r1.2 --- openacs-4/packages/mail-tracking/lib/messages.adp 14 Jun 2005 19:48:53 -0000 1.1 +++ openacs-4/packages/mail-tracking/lib/messages.adp 29 Sep 2005 22:42:04 -0000 1.2 @@ -1,4 +1,5 @@ @page_title;noquote@ @context;noquote@ + Index: openacs-4/packages/mail-tracking/lib/messages.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/mail-tracking/lib/messages.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/mail-tracking/lib/messages.tcl 20 Jun 2005 14:12:16 -0000 1.6 +++ openacs-4/packages/mail-tracking/lib/messages.tcl 29 Sep 2005 22:46:09 -0000 1.7 @@ -12,6 +12,7 @@ @cvs-id $Id$ } -query { recipient_id:optional + {emp_mail_f:optional 1} sender_id:optional package_id:optional {orderby:optional "recipient_id"} @@ -23,63 +24,85 @@ set page_title [ad_conn instance_name] set context [list "index"] - template::list::create -name messages -multirow messages -key acs_mail_log_id -row_pretty_plural "[_ mail-tracking.messages]" -elements { - sender_id { - label "[_ mail-tracking.Sender]" - display_template { - @messages.sender@ - } - } - recipient_id { - label "[_ mail-tracking.Recipient]" - display_template { + +set filters [list \ + sender_id { + label "[_ mail-tracking.Sender]" + where_clause "sender_id = :sender_id" + } \ + package_id { + label "[_ mail-tracking.Package]" + where_clause "package_id = :package_id" + }] + +set recipient_where_clause "" + +if { [exists_and_not_null recipient_id] } { + set recipient_where_clause " and recipient_id = $recipient_id" +} + +set org_p [organization::organization_p -party_id $recipient_id] +if { $org_p } { + lappend filters emp_mail_f { + label "[_ mail-tracking.Emails_to]" + values { {"[_ mail-tracking.Organization]" 1} { "[_ mail-tracking.Employees]" 2 }} + } +} + +if { $org_p && [string equal $emp_mail_f 2] } { + set emp_list [contact::util::get_employees -organization_id $recipient_id] + lappend emp_list $recipient_id + set recipient_where_clause " and recipient_id in ([template::util::tcl_to_sql_list $emp_list])" +} + +template::list::create \ + -name messages \ + -multirow messages \ + -key acs_mail_log_id \ + -row_pretty_plural "[_ mail-tracking.messages]" \ + -elements { + sender_id { + label "[_ mail-tracking.Sender]" + display_template { + @messages.sender@ + } + } + recipient_id { + label "[_ mail-tracking.Recipient]" + display_template { @messages.receiver@ - } - } - package_id { - label "[_ mail-tracking.Package]" - display_template { - @messages.package_name@ - } - } - subject { - label "[_ mail-tracking.Subject]" - } - object_id { - label "[_ mail-tracking.Object_id]" - } - file_ids { - label "[_ mail-tracking.Files]" - } - body { - label "[_ mail-tracking.Body]" - display_col body;noquote - } - sent_date { - label "[_ mail-tracking.Sent_Date]" - } + } + } + package_id { + label "[_ mail-tracking.Package]" + display_template { + @messages.package_name@ + } + } + subject { + label "[_ mail-tracking.Subject]" + } + object_id { + label "[_ mail-tracking.Object_id]" + } + file_ids { + label "[_ mail-tracking.Files]" + } + body { + label "[_ mail-tracking.Body]" + display_col body;noquote + } + sent_date { + label "[_ mail-tracking.Sent_Date]" + } } -orderby { recipient_id {orderby recipient_id} sender_id {orderby sender_id} package_id {orderby package_id} subject {orderby subject} sent_date {orderby sent_date} - } -filters { - recipient_id { - label "[_ mail-tracking.Recipient]" - where_clause {recipient_id = :recipient_id} - } - sender_id { - label "[_ mail-tracking.Sender]" - where_clause "sender_id = :sender_id" - } - package_id { - label "[_ mail-tracking.Package]" - where_clause "package_id = :package_id" - } + } -filters $filters - } - set orderby [template::list::orderby_clause -name "messages" -orderby] db_multirow -extend { file_ids sender receiver package_name package_url } messages select_messages {} { Index: openacs-4/packages/mail-tracking/lib/messages.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/mail-tracking/lib/messages.xql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/mail-tracking/lib/messages.xql 21 Jun 2005 23:28:08 -0000 1.3 +++ openacs-4/packages/mail-tracking/lib/messages.xql 29 Sep 2005 22:42:04 -0000 1.4 @@ -8,6 +8,7 @@ select message_id, sender_id, recipient_id, package_id, sent_date, body, subject, object_id, log_id from acs_mail_log where message_id <> 0 + $recipient_where_clause [template::list::filter_where_clauses -and -name messages] [template::list::orderby_clause -orderby -name messages]