Index: openacs-4/packages/dotlrn/lib/member-email.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/lib/member-email.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/lib/member-email.adp 21 Jul 2005 22:48:53 -0000 1.1.2.1 @@ -0,0 +1 @@ + \ No newline at end of file Index: openacs-4/packages/dotlrn/lib/member-email.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/lib/member-email.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/lib/member-email.tcl 21 Jul 2005 22:48:53 -0000 1.1.2.1 @@ -0,0 +1,83 @@ +# packages/dotlrn/lib/member-email.tcl +# +# form for adding/editing a member email based on type +# as includeletized from roelc's original code +# +# @author Deds Castillo (deds@i-manila.com.ph) +# @creation-date 2005-07-20 +# @arch-tag: 7d4ddca7-20cd-4e7d-9fc1-d23cd8b2a712 +# @cvs-id $Id: member-email.tcl,v 1.1.2.1 2005/07/21 22:48:53 roelc Exp $ + +foreach required_param {community_id type return_url} { + if {![info exists $required_param]} { + return -code error "$required_param is a required parameter." + } +} + +foreach optional_param {enabled_p extra_vars} { + if {![info exists $optional_param]} { + set $optional_param {} + } +} +ns_log notice "dedsman: $extra_vars" +if {![template::util::is_true $enabled_p]} { + set enabled_p f +} else { + set enabled_p t +} + +dotlrn::require_user_admin_community -community_id $community_id + +db_0or1row member_email { + select email_id + from dotlrn_member_emails + where community_id = :community_id + and type = :type +} + +ad_form \ + -name "member_email" \ + -export $extra_vars \ + -cancel_url $return_url \ + -form { + {email_id:key} + {from_addr:text {label "From Address"} {html {size 40}}} + {subject:text {label "Subject"} {html {size 40}}} + {email:richtext,optional {label "Message"} {html {rows 30 cols 80 wrap soft}} {htmlarea_p 1}} + {community_id:text(hidden) {value $community_id}} + {type:text(hidden) {value $type}} + {enabled_p:text(hidden) {value $type}} + {return_url:text(hidden) {value $return_url}} + } -on_request { + set from_addr [cc_email_from_party [ad_conn user_id]] + set subject "Welcome to [dotlrn_community::get_community_name $community_id]!" + } -edit_request { + db_1row member_email { + select from_addr, + subject, + email + from dotlrn_member_emails + where email_id = :email_id + } + set email [list $email ""] + } -on_submit { + set email [template::util::richtext::get_property contents $email] + } -new_data { + db_dml new_email { + insert into dotlrn_member_emails + (community_id, type, from_addr, subject, email, enabled_p) + values + (:community_id, :type, :from_addr, :subject, :email, :enabled_p) + } + } -edit_data { + db_dml update_email { + update dotlrn_member_emails + set from_addr = :from_addr, + subject = :subject, + email = :email + where email_id = :email_id + } + } -after_submit { + ad_returnredirect $return_url + ad_script_abort + } Index: openacs-4/packages/dotlrn/sql/postgresql/community-memberships-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/postgresql/community-memberships-create.sql,v diff -u -N -r1.2.12.1 -r1.2.12.2 --- openacs-4/packages/dotlrn/sql/postgresql/community-memberships-create.sql 31 May 2005 23:13:04 -0000 1.2.12.1 +++ openacs-4/packages/dotlrn/sql/postgresql/community-memberships-create.sql 21 Jul 2005 22:48:54 -0000 1.2.12.2 @@ -75,3 +75,17 @@ where dotlrn_member_rels_full.rel_id = dotlrn_admin_rels.rel_id; -- + +-- Store emails to be sent when user joins a community +create table dotlrn_member_emails ( + email_id serial primary key, + community_id integer references dotlrn_communities_all + on delete cascade, +-- Might be useful + type text default 'on join', + from_addr text, + subject text, + email text, + enabled_p boolean default 'f', + constraint dotlrn_member_emails_un unique(community_id, type) +); Index: openacs-4/packages/dotlrn/sql/postgresql/community-memberships-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/postgresql/community-memberships-drop.sql,v diff -u -N -r1.2.12.1 -r1.2.12.2 --- openacs-4/packages/dotlrn/sql/postgresql/community-memberships-drop.sql 31 May 2005 23:13:04 -0000 1.2.12.1 +++ openacs-4/packages/dotlrn/sql/postgresql/community-memberships-drop.sql 21 Jul 2005 22:50:42 -0000 1.2.12.2 @@ -25,6 +25,7 @@ -- @version $Id$ -- +drop table dotlrn_member_emails; drop view dotlrn_admin_rels_full; drop table dotlrn_admin_rels; drop view dotlrn_member_rels_approved; Index: openacs-4/packages/dotlrn/tcl/community-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/community-procs.tcl,v diff -u -N -r1.191.2.4 -r1.191.2.5 --- openacs-4/packages/dotlrn/tcl/community-procs.tcl 19 Jul 2005 06:43:37 -0000 1.191.2.4 +++ openacs-4/packages/dotlrn/tcl/community-procs.tcl 21 Jul 2005 22:48:54 -0000 1.191.2.5 @@ -855,6 +855,9 @@ -community_id $community_id \ -op AddUserToCommunity \ -list_args [list $community_id $user_id] + + # Send membership email + send_member_email -community_id $community_id -to_user $user_id -type "on join" } } @@ -2202,5 +2205,68 @@ array set site_node [site_node::get_from_url -url $url] return $site_node(package_id) } + + ad_proc -public send_member_email { + {-community_id:required} + {-to_user:required} + {-type "on join"} + } { + Send a membership email to the user + + @author Roel Canicula (roel@solutiongrove.com) + @creation-date 2004-09-05 + + @param community_id + @param to_user + @param type + + @return + + @error + } { + if { [db_0or1row member_email { + select from_addr, + subject, + email + from dotlrn_member_emails + where enabled_p + and community_id = :community_id + and type = :type + }] } { + # Shamelessly cut & pasted from bulk mail + if { [empty_string_p $from_addr] } { + set from_addr [ad_system_owner] + } + set to_addr [cc_email_from_party $to_user] + + set extra_headers [ns_set create] + + set message_html [ad_html_text_convert -from html -to html $email] + # some mailers are chopping off the last few characters. + append message_html " " + set message_text [ad_html_text_convert -from html -to text $email] + + # Send email in iso8859-1 charset + set message_data [build_mime_message $message_text $message_html] + ns_set put $extra_headers MIME-Version [ns_set get $message_data MIME-Version] + ns_set put $extra_headers Content-ID [ns_set get $message_data Content-ID] + ns_set put $extra_headers Content-Type [ns_set get $message_data Content-Type] + set message [ns_set get $message_data body] + + # both html and plain messages can now be sent the same way + acs_mail_lite::send \ + -to_addr $to_addr \ + -from_addr $from_addr \ + -subject $subject \ + -body $message \ + -extraheaders $extra_headers + + set return_val 1 + } else { + set return_val 0 + } + return $return_val + } + } Index: openacs-4/packages/dotlrn/www/member-email-toggle.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/member-email-toggle.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/www/member-email-toggle.tcl 21 Jul 2005 22:48:54 -0000 1.1.2.1 @@ -0,0 +1,30 @@ +# packages/dotlrn/www/member-email-toggle.tcl + +ad_page_contract { + + Toggle membership email + + @author Roel Canicula (roelmc@info.com.ph) + @creation-date 2004-09-05 + @arch-tag: 75efba19-ee2c-4341-969e-26e88615b526 + @cvs-id $Id: member-email-toggle.tcl,v 1.1.2.1 2005/07/21 22:48:54 roelc Exp $ +} { + +} -properties { +} -validate { +} -errors { +} + +set community_id [dotlrn_community::get_community_id] + +db_dml toggle_member_email { + update + dotlrn_member_emails + set + enabled_p = case when enabled_p = 't' then 'f'::boolean else 't'::boolean end + where + community_id = :community_id and + type = 'on join' +} + +ad_returnredirect "one-community-admin" \ No newline at end of file Index: openacs-4/packages/dotlrn/www/member-email.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/member-email.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/www/member-email.adp 21 Jul 2005 22:48:54 -0000 1.1.2.1 @@ -0,0 +1,4 @@ + + Membership Email + + \ No newline at end of file Index: openacs-4/packages/dotlrn/www/member-email.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/member-email.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/www/member-email.tcl 21 Jul 2005 22:48:54 -0000 1.1.2.1 @@ -0,0 +1,88 @@ +# packages/dotlrn/www/member-email.tcl + +ad_page_contract { + + Email to send users when they join this community + + @author Roel Canicula (roel@solutiongrove.com) + @creation-date 2004-09-05 + @arch-tag: 64bff694-7a52-40ae-94f6-17d853356ccb + @cvs-id $Id: member-email.tcl,v 1.1.2.1 2005/07/21 22:48:54 roelc Exp $ +} { + +} -properties { +} -validate { +} -errors { +} + +set community_id [dotlrn_community::get_community_id] +dotlrn::require_user_admin_community -community_id $community_id + +db_0or1row member_email { + select + email_id + from + dotlrn_member_emails + where + community_id = :community_id and + type = 'on join' +} + +ad_form -name "member_email" -form { + {email_id:key} + {from_addr:text {label "From Address"} {html {size 40}}} + {subject:text {label "Subject"} {html {size 40}}} + {email:richtext,optional {label "Message"} {html {rows 30 cols 80 wrap soft}} {htmlarea_p 1}} +} -on_request { + + set from_addr [cc_email_from_party [ad_conn user_id]] + set subject "Welcome to [dotlrn_community::get_community_name $community_id]!" + +} -on_submit { + + set email [template::util::richtext::get_property contents $email] + +} -new_data { + + db_dml new_email { + insert into + dotlrn_member_emails + (community_id, type, from_addr, subject, email) + values + (:community_id, 'on join', :from_addr, :subject, :email) + } + +} -edit_request { + + db_1row member_email { + select + from_addr, + subject, + email + from + dotlrn_member_emails + where + email_id = :email_id + } + + set email [list $email ""] + +} -edit_data { + + db_dml new_email { + update + dotlrn_member_emails + set + from_addr = :from_addr, + subject = :subject, + email = :email + where + email_id = :email_id + } + +} -after_submit { + + ad_returnredirect "one-community-admin" + ad_script_abort + +} \ No newline at end of file Index: openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.adp,v diff -u -N -r1.33 -r1.33.2.1 --- openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.adp 13 Jan 2005 13:57:32 -0000 1.33 +++ openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.adp 21 Jul 2005 22:55:06 -0000 1.33.2.1 @@ -39,6 +39,16 @@
  • #dotlrn-portlet.Manage_Membership# - #dotlrn-portlet.lt_AddRemove_pretty_name#
  • + +
  • Edit Welcome Message + - Enabled + Enabled | + Disabled + Disabled + + +
  • Create Welcome Message +
  • Index: openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.tcl,v diff -u -N -r1.16 -r1.16.2.1 --- openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.tcl 24 Jul 2004 08:34:16 -0000 1.16 +++ openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.tcl 21 Jul 2005 22:55:06 -0000 1.16.2.1 @@ -82,3 +82,14 @@ # get the subcomm info set rows [dotlrn_community::get_subcomm_info_list -community_id $community_id] template::util::list_of_ns_sets_to_multirow -rows $rows -var_name subgroups + +# get member email notification +db_0or1row member_email { + select + enabled_p as member_email_enabled_p + from + dotlrn_member_emails + where + community_id = :community_id and + type = 'on join' +} Index: openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.xql,v diff -u -N -r1.6 -r1.6.12.1 --- openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.xql 1 Jun 2002 02:18:57 -0000 1.6 +++ openacs-4/packages/dotlrn-portlet/www/dotlrn-admin-portlet.xql 21 Jul 2005 22:55:06 -0000 1.6.12.1 @@ -18,4 +18,16 @@ + + + select + enabled_p as member_email_enabled_p + from + dotlrn_member_emails + where + community_id = :community_id and + type = 'on join' + + +