summaryrefslogtreecommitdiff
path: root/FS/FS/msg_template.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-12-30 01:43:16 -0800
committerIvan Kohler <ivan@freeside.biz>2013-12-30 01:43:16 -0800
commitcb6cca67db487271ce96b49289ada58691a2067d (patch)
tree003581386f08c392c03ea7757907fa7d0992d857 /FS/FS/msg_template.pm
parent6b4a2501a75964c864467a3bf85bbba039009049 (diff)
self-service access for contacts, RT#25533
Diffstat (limited to 'FS/FS/msg_template.pm')
-rw-r--r--FS/FS/msg_template.pm41
1 files changed, 41 insertions, 0 deletions
diff --git a/FS/FS/msg_template.pm b/FS/FS/msg_template.pm
index 5885921..2fc66b4 100644
--- a/FS/FS/msg_template.pm
+++ b/FS/FS/msg_template.pm
@@ -559,6 +559,9 @@ sub substitutions {
[ company_phonenum => sub {
$conf->config('company_phonenum', shift->agentnum)
} ],
+ [ selfservice_server_base_url => sub {
+ $conf->config('selfservice_server-base_url') #, shift->agentnum)
+ } ],
],
# next_bill_date
'cust_pkg' => [qw(
@@ -697,6 +700,10 @@ Returns the L<FS::agent> object for this template.
sub _upgrade_data {
my ($self, %opts) = @_;
+ ###
+ # First move any historical templates in config to real message templates
+ ###
+
my @fixes = (
[ 'alerter_msgnum', 'alerter_template', '', '', '' ],
[ 'cancel_msgnum', 'cancelmessage', 'cancelsubject', '', '' ],
@@ -788,6 +795,11 @@ sub _upgrade_data {
} # if alerter_msgnum
}
+
+ ###
+ # Move subject and body from msg_template to template_content
+ ###
+
foreach my $msg_template ( qsearch('msg_template', {}) ) {
if ( $msg_template->subject || $msg_template->body ) {
# create new default content
@@ -811,6 +823,35 @@ sub _upgrade_data {
die $error if $error;
}
}
+
+ ###
+ # Add new-style default templates if missing
+ ###
+ $self->_populate_initial_data;
+
+}
+
+sub _populate_initial_data { #class method
+ #my($class, %opts) = @_;
+ #my $class = shift;
+
+ eval "use FS::msg_template::InitialData;";
+ die $@ if $@;
+
+ my $initial_data = FS::msg_template::InitialData->_initial_data;
+
+ foreach my $hash ( @$initial_data ) {
+
+ next if $hash->{_conf} && $conf->config( $hash->{_conf} );
+
+ my $msg_template = new FS::msg_template($hash);
+ my $error = $msg_template->insert( @{ $hash->{_insert_args} || [] } );
+ die $error if $error;
+
+ $conf->set( $hash->{_conf}, $msg_template->msgnum ) if $hash->{_conf};
+
+ }
+
}
sub eviscerate {