fixed: DataForm doesn't send emails correctly
This commit is contained in:
parent
682885ac17
commit
deaa6c65c0
2 changed files with 40 additions and 35 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
7.5.13
|
7.5.13
|
||||||
|
- fixed: DataForm doesn't send emails correctly
|
||||||
- fixed: CS posts don't have correct URLs generated
|
- fixed: CS posts don't have correct URLs generated
|
||||||
- fixed: Unable to template user profile viewing and editing screens.
|
- fixed: Unable to template user profile viewing and editing screens.
|
||||||
- fixed: Product Variants not saving SKU
|
- fixed: Product Variants not saving SKU
|
||||||
|
|
|
||||||
|
|
@ -440,15 +440,19 @@ sub getTabOrder {
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
sub deleteAttachedFiles {
|
sub deleteAttachedFiles {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my @fields = shift;
|
my %params = @_;
|
||||||
@fields = @{ $self->getFieldOrder }
|
my $entryData = $params{entryData};
|
||||||
unless @fields;
|
my $entryId = $params{entryId};
|
||||||
|
|
||||||
|
my $fields = $self->getFieldOrder;
|
||||||
my $fieldConfig = $self->getFieldConfig;
|
my $fieldConfig = $self->getFieldConfig;
|
||||||
my $entries = $self->session->db->buildArrayRef("select entryData from DataForm_entry where assetId=?", [$self->getId]);
|
|
||||||
foreach my $entry (@$entries) {
|
if ($entryId) {
|
||||||
my $entryData = decode_json($entry->{entryData});
|
my $entry = $self->session->db->buildArrayRef("select entryData from DataForm_entry where assetId=? and DataForm_entryId=?", [$self->getId, $entryId]);
|
||||||
for my $field ( @fields ) {
|
$entryData = decode_json($entry->{entryData});
|
||||||
|
}
|
||||||
|
if ($entryData) {
|
||||||
|
for my $field ( @$fields ) {
|
||||||
my $form = $self->_createForm($fieldConfig->{$field}, $entryData->{$field});
|
my $form = $self->_createForm($fieldConfig->{$field}, $entryData->{$field});
|
||||||
if ($form->can('getStorageLocation')) {
|
if ($form->can('getStorageLocation')) {
|
||||||
my $storage = $form->getStorageLocation;
|
my $storage = $form->getStorageLocation;
|
||||||
|
|
@ -456,14 +460,26 @@ sub deleteAttachedFiles {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
my $entries = $self->session->db->buildArrayRef("select entryData from DataForm_entry where assetId=?", [$self->getId]);
|
||||||
|
foreach my $entry (@$entries) {
|
||||||
|
my $entryData = decode_json($entry->{entryData});
|
||||||
|
$self->deleteEntryFiles($entryData);
|
||||||
|
for my $field ( @$fields ) {
|
||||||
|
my $form = $self->_createForm($fieldConfig->{$field}, $entryData->{$field});
|
||||||
|
if ($form->can('getStorageLocation')) {
|
||||||
|
my $storage = $form->getStorageLocation;
|
||||||
|
$storage->delete;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
sub getAttachedFiles {
|
sub getAttachedFiles {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $entryId = shift;
|
my $entryData = shift;
|
||||||
my $entry = $self->getCollateral('DataForm_entry', 'DataForm_entryId', $entryId);
|
|
||||||
my $entryData = decode_json($entry->{entryData});
|
|
||||||
my $fieldConfig = $self->getFieldConfig;
|
my $fieldConfig = $self->getFieldConfig;
|
||||||
my @paths;
|
my @paths;
|
||||||
for my $field ( values %{$fieldConfig} ) {
|
for my $field ( values %{$fieldConfig} ) {
|
||||||
|
|
@ -641,7 +657,7 @@ sub getRecordTemplateVars {
|
||||||
}
|
}
|
||||||
my $hidden = ($field->{status} eq 'hidden' && !$self->session->var->isAdminOn) || ($field->{isMailField} && !$self->get('mailData'));
|
my $hidden = ($field->{status} eq 'hidden' && !$self->session->var->isAdminOn) || ($field->{isMailField} && !$self->get('mailData'));
|
||||||
my $form = $self->_createForm($field, $value);
|
my $form = $self->_createForm($field, $value);
|
||||||
my $value = $form->getValueAsHtml;
|
$value = $form->getValueAsHtml;
|
||||||
my %fieldProperties = (
|
my %fieldProperties = (
|
||||||
"form" => $form->toHtml,
|
"form" => $form->toHtml,
|
||||||
"name" => $field->{name},
|
"name" => $field->{name},
|
||||||
|
|
@ -773,28 +789,16 @@ sub purge {
|
||||||
sub sendEmail {
|
sub sendEmail {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $var = shift;
|
my $var = shift;
|
||||||
my ($to, $subject, $from, $bcc, $cc);
|
my $entryData = shift;
|
||||||
foreach my $row (@{$var->{field_loop}}) {
|
my $to = $entryData->{to};
|
||||||
if ($row->{"field.name"} eq "to") {
|
my $subject = $entryData->{subject};
|
||||||
$to = $row->{"field.value"};
|
my $from = $entryData->{from};
|
||||||
} elsif ($row->{"field.name"} eq "from") {
|
my $bcc = $entryData->{bcc};
|
||||||
$from = $row->{"field.value"};
|
my $cc = $entryData->{cc};
|
||||||
} elsif ($row->{"field.name"} eq "cc") {
|
|
||||||
$cc = $row->{"field.value"};
|
|
||||||
} elsif ($row->{"field.name"} eq "bcc") {
|
|
||||||
$bcc = $row->{"field.value"};
|
|
||||||
} elsif ($row->{"field.name"} eq "subject") {
|
|
||||||
$subject = $row->{"field.value"};
|
|
||||||
} elsif ($row->{"field.type"} eq "textArea") {
|
|
||||||
$row->{"field.value"} =~ s/\n/<br\/>/;
|
|
||||||
} elsif ($row->{"field.type"} eq "textarea") {
|
|
||||||
$row->{"field.value"} = WebGUI::HTML::format($row->{"field.value"},'mixed');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
my $message = $self->processTemplate($var,$self->get("emailTemplateId"));
|
my $message = $self->processTemplate($var,$self->get("emailTemplateId"));
|
||||||
WebGUI::Macro::process($self->session,\$message);
|
WebGUI::Macro::process($self->session,\$message);
|
||||||
my @attachments = $self->get('mailAttachments') ?
|
my @attachments = $self->get('mailAttachments')
|
||||||
@{$self->getAttachedFiles($var->{entryId})}
|
? @{ $self->getAttachedFiles($entryData) }
|
||||||
: ();
|
: ();
|
||||||
if ($to =~ /\@/) {
|
if ($to =~ /\@/) {
|
||||||
my $mail = WebGUI::Mail::Send->create($self->session,{
|
my $mail = WebGUI::Mail::Send->create($self->session,{
|
||||||
|
|
@ -923,7 +927,7 @@ sub www_deleteEntry {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||||
my $entryId = $self->session->form->process("entryId");
|
my $entryId = $self->session->form->process("entryId");
|
||||||
$self->deleteAttachedFiles($entryId);
|
$self->deleteAttachedFiles(entryId => $entryId);
|
||||||
$self->deleteCollateral("DataForm_entry","DataForm_entryId",$entryId);
|
$self->deleteCollateral("DataForm_entry","DataForm_entryId",$entryId);
|
||||||
$self->session->stow->set("mode","list");
|
$self->session->stow->set("mode","list");
|
||||||
return $self->www_view;
|
return $self->www_view;
|
||||||
|
|
@ -1386,13 +1390,13 @@ sub www_process {
|
||||||
}
|
}
|
||||||
|
|
||||||
$var->{error_loop} = \@errors;
|
$var->{error_loop} = \@errors;
|
||||||
$var = $self->getRecordTemplateVars($var);
|
$var = $self->getRecordTemplateVars($var, $entryData);
|
||||||
if (@errors) {
|
if (@errors) {
|
||||||
$self->prepareView($var);
|
$self->prepareView($var);
|
||||||
return $self->processStyle($self->view);
|
return $self->processStyle($self->view);
|
||||||
}
|
}
|
||||||
if ($self->get("mailData") && !$entryId) {
|
if ($self->get("mailData") && !$entryId) {
|
||||||
$self->sendEmail($var);
|
$self->sendEmail($var, $entryData);
|
||||||
}
|
}
|
||||||
if ($self->get('storeData')) {
|
if ($self->get('storeData')) {
|
||||||
my $entryJSON = encode_json($entryData);
|
my $entryJSON = encode_json($entryData);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue