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'
+
+
+