Index: openacs-4/packages/ecommerce/www/admin/customer-service/spam-3.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/admin/customer-service/spam-3.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/ecommerce/www/admin/customer-service/spam-3.tcl	9 Mar 2004 00:59:47 -0000	1.8
+++ openacs-4/packages/ecommerce/www/admin/customer-service/spam-3.tcl	25 Aug 2008 00:20:06 -0000	1.9
@@ -19,7 +19,6 @@
     @creation-date
     @author ported by Jerry Asher (jerry@theashergroup.com)
     @author revised by Bart Teeuwisse (bart.teeuwisse@thecodemill.biz)
-
 } { 
     spam_id:notnull
     subject:trim,notnull
@@ -48,25 +47,18 @@
 set expires_to_insert [ec_decode $expires "" "null" $expires]
 
 # Get rid of stupid ^Ms
-
 regsub -all "\r" $message "" message
 
-# Doubleclick protection
+set title "Spam Sent"
+set context [list [list index "Customer Service"] $title]
 
+# Doubleclick protection
+set doubleclicked 0
 if { [db_string get_log_entries_cnt "
     select count(*) 
     from ec_spam_log
     where spam_id = :spam_id"] > 0 } {
-    
-    append doc_body "
-	[ad_admin_header "Spam Sent"]
-	<h2>Spam Sent</h2>
-	[ad_context_bar [list "../index.tcl" "Ecommerce([ec_system_name])"] [list "index.tcl" "Customer Service Administration"] "Spam Sent"]
-	<hr>
-	<p>You are seeing this page because you probably either hit reload or pushed the Submit button twice.</p>
-	<p>If you wonder whether the users got the spam, just check the customer service issues for one of the users (all mail sent to a user is recorded as a customer service issue).</p>
-	[ad_admin_footer]"
-    ad_script_abort
+    set doubleclicked 1   
 }
 
 set return_url "[ad_conn url]?[export_entire_form_as_url_vars]"
@@ -93,26 +85,26 @@
     set users_query [db_map users_list]
 } elseif { [info exists mailing_list] } {
     if { [llength $mailing_list] == 0 } {
-	set search_criteria [db_map null_categories]
+        set search_criteria [db_map null_categories]
     } elseif { [llength $mailing_list] == 1 } {
-	set search_criteria [db_map null_subcategory]
-	set mailing_list_category_id $mailing_list
+        set search_criteria [db_map null_subcategory]
+        set mailing_list_category_id $mailing_list
     } elseif { [llength $mailing_list] == 2 } {
-	set search_criteria [db_map null_subsubcategory]
-	set mailing_list_category_id [lindex $mailing_list 0]
-	set mailing_list_subcategory_id [lindex $mailing_list 1]
+        set search_criteria [db_map null_subsubcategory]
+        set mailing_list_category_id [lindex $mailing_list 0]
+        set mailing_list_subcategory_id [lindex $mailing_list 1]
     } else {
-	set search_criteria [db_map null_subsubcategory]
-	set mailing_list_category_id [lindex $mailing_list 0]
-	set mailing_list_subcategory_id [lindex $mailing_list 1]
-	set mailing_list_subsubcategory_id [lindex $mailing_list 2]
+        set search_criteria [db_map null_subsubcategory]
+        set mailing_list_category_id [lindex $mailing_list 0]
+        set mailing_list_subcategory_id [lindex $mailing_list 1]
+        set mailing_list_subsubcategory_id [lindex $mailing_list 2]
     }
     set users_query "[db_map users_email] and $search_criteria"
 } elseif { [info exists user_class_id] } {
     if { ![empty_string_p $user_class_id]} {
-	set users_query [db_map user_class]
+        set users_query [db_map user_class]
     } else {
-	set users_query [db_map all_users]
+        set users_query [db_map all_users]
     }
 } elseif { [info exists product_sku] } {
     set users_query [db_map bought_product]
@@ -124,24 +116,14 @@
     set users_query [db_map last_visit]
 }
 
-# Have to make all variables exist that will be inserted into
-# ec_spam_log
-
-if { ![info exists mailing_list_category_id] } {
-    set mailing_list_category_id ""
+# Have to make all variables exist that will be inserted into ec_spam_log
+set var_list [list mailing_list_category_id mailing_list_subcategory_id  mailing_list_subsubcategory_id user_class_id product_id]
+foreach variable $var_list {
+    if { ![info exists $variable]
+         set $variable ""
+     }
 }
-if { ![info exists mailing_list_subcategory_id] } {
-    set mailing_list_subcategory_id ""
-}
-if { ![info exists mailing_list_subsubcategory_id] } {
-    set mailing_list_subsubcategory_id ""
-}
-if { ![info exists user_class_id] } {
-    set user_class_id ""
-}
-if { ![info exists product_id] } {
-    set product_id ""
-}
+# special cases
 if { ![info exists start] } {
     set start_date ""
 } else {
@@ -154,7 +136,6 @@
 }
 
 db_transaction {
-
     db_dml insert_log_for_spam "
     insert into ec_spam_log
         (spam_id, spam_date, spam_text, mailing_list_category_id, 
@@ -169,51 +150,23 @@
          to_date(:end_date,'YYYY-MM-DD HH24:MI:SS'))"
 
     set sql $users_query
-
-    append doc_body "
-	[ad_admin_header "Spamming Users..."]
-	<h2>Spamming Users...</h2>
-
-	[ad_context_bar [list "../index.tcl" "Ecommerce([ec_system_name])"] [list "index.tcl" "Customer Service Administration"] "Spamming Users..."]
-
-	<hr>
-	<ul>"
-
+    set title "Spamming Users..."
+    set spamming_users_html ""
     db_foreach get_users_for_spam $sql {
-	
-	# Create a customer service issue/interaction/action
-
-	set user_identification_and_issue_id [ec_customer_service_simple_issue "" "automatic" "email" "To: $email\nFrom: [ad_parameter -package_id [ec_id] CustomerServiceEmailAddress ecommerce]\nSubject: $subject" "" $issue_type_list $message $user_id "" "f"]
-	
-	set user_identification_id [lindex $user_identification_and_issue_id 0]
-	set issue_id [lindex $user_identification_and_issue_id 1]
-	set email_from [ec_customer_service_email_address $user_identification_id $issue_id]
-	
-	ec_sendmail_from_service "$email" "$email_from" "$subject" "$message"
-
-	if { ![empty_string_p $amount] && $amount > 0 } {
-
-	    # Put a record into ec_gift_certificates and add the amount to
-	    # the user's gift certificate account
-
-	    db_dml insert_record_for_gift_certificates "
-		insert into ec_gift_certificates
+        # Create a customer service issue/interaction/action
+        set user_identification_and_issue_id [ec_customer_service_simple_issue "" "automatic" "email" "To: $email\nFrom: [ad_parameter -package_id [ec_id] CustomerServiceEmailAddress ecommerce]\nSubject: $subject" "" $issue_type_list $message $user_id "" "f"]
+        set user_identification_id [lindex $user_identification_and_issue_id 0]
+        set issue_id [lindex $user_identification_and_issue_id 1]
+        set email_from [ec_customer_service_email_address $user_identification_id $issue_id]
+        ec_sendmail_from_service "$email" "$email_from" "$subject" "$message"
+        if { ![empty_string_p $amount] && $amount > 0 } {
+            # Put a record into ec_gift_certificates and add the amount to
+            # the user's gift certificate account
+            db_dml insert_record_for_gift_certificates "insert into ec_gift_certificates
 		(gift_certificate_id, user_id, amount, expires, issue_date, issued_by, gift_certificate_state, last_modified, last_modifying_user, modified_ip_address)
 		values
 		(ec_gift_cert_id_sequence.nextval, :user_id, :amount, $expires_to_insert, sysdate, :customer_service_rep, 'authorized', sysdate, :customer_service_rep, '[ns_conn peeraddr]') "
-	}
-	
-	append doc_body "<li>Email has been sent to $email</li>"
+        }
+        append spamming_users_html "<li>$email sent.</li>"
     }
-
 }
-
-append doc_body "
-    </ul>
-    [ad_admin_footer]"
-
-doc_return  200 text/html $doc_body
-
-
-
-