Improve template switching for hosted users

This commit is contained in:
David Bomba 2024-02-13 17:10:36 +11:00
parent c5b6938447
commit 83215cd0bc
26 changed files with 45 additions and 22 deletions

View File

@ -67,7 +67,7 @@ class TokenAuth
$truth->setUser($company_token->user);
$truth->setCompany($company_token->company);
$truth->setCompanyToken($company_token);
$truth->setPremiumHosted($company_token->account->isPremium());
/*
| This method binds the db to the jobs created using this
| session

View File

@ -94,6 +94,7 @@ class UserEmailChanged implements ShouldQueue
'logo' => $this->company->present()->logo(),
'settings' => $this->settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
}
}

View File

@ -44,6 +44,7 @@ class ClientUnsubscribedObject
'settings' => $this->company->settings,
'logo' => $this->company->present()->logo(),
'text_body' => "\n\n".ctrans('texts.client_unsubscribed_help', ['client' => $this->contact->present()->name()])."\n\n",
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
$mail_obj = new \stdClass();

View File

@ -94,7 +94,8 @@ class EntityCreatedObject
'settings' => $this->company->settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'text_body' => str_replace(['$view_button','$viewButton','$viewLink','$view_url'], '$view_url', $content),
];
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
} else {
$this->entity->load('client.country', 'client.company');
$this->client = $this->entity->client;
@ -181,6 +182,7 @@ class EntityCreatedObject
'settings' => $settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'text_body' => str_replace(['$view_button','$viewButton','$view_link','$view_button'], '$view_url', $content),
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
}
}

View File

@ -152,6 +152,7 @@ class EntityFailedSendObject
"settings" => $settings,
"whitelabel" => $this->company->account->isPaid() ? true : false,
"text_body" => str_replace("<br>", "\n", $content),
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
return $data;

View File

@ -105,6 +105,7 @@ class EntityPaidObject
'settings' => $settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'text_body' => $content,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
return $data;

View File

@ -87,6 +87,8 @@ class EntitySentObject
'logo' => $this->company->present()->logo(),
'settings' => $this->company->settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
$mail_obj->markdown = 'email.admin.generic';
$mail_obj->tag = $this->company->company_key;
@ -197,6 +199,8 @@ class EntitySentObject
'settings' => $settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'text_body' => $content,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
}
}

View File

@ -116,6 +116,7 @@ class EntityViewedObject
'settings' => $settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'text_body' => $content,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
return $data;

View File

@ -76,6 +76,7 @@ class InventoryNotificationObject
'settings' => $this->product->company->settings,
'whitelabel' => $this->product->company->account->isPaid() ? true : false,
'text_body' => $content,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
return $data;

View File

@ -99,6 +99,7 @@ class PaymentFailureObject
'button' => $this->use_react_url ? ctrans('texts.view_client') : ctrans('texts.login'),
'additional_info' => $this->error,
'text_body' => $content,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
return $data;

View File

@ -92,6 +92,7 @@ class PurchaseOrderAcceptedObject
'settings' => $settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'text_body' => $content,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
return $data;

View File

@ -91,6 +91,7 @@ class QuoteApprovedObject
'settings' => $settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'text_body' => $content,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
return $data;

View File

@ -91,6 +91,8 @@ class QuoteExpiredObject
'settings' => $settings,
'whitelabel' => $this->company->account->isPaid() ? true : false,
'text_body' => $content,
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
return $data;

View File

@ -41,6 +41,7 @@ class ResetPasswordObject
'settings' => $this->company->settings,
'logo' => $this->company->present()->logo(),
'text_body' => ctrans('texts.reset_password'),
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
$mail_obj = new \stdClass();

View File

@ -53,6 +53,7 @@ class VerifyUserObject
'logo' => $this->company->present()->logo(),
'signature' => $this->company->settings->email_signature,
'text_body' => ctrans('texts.confirmation_message'),
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
$mail_obj = new \stdClass();

View File

@ -52,7 +52,7 @@ class ClientStatement extends Mailable
public function content()
{
return new Content(
view: 'email.template.client',
view: $this->data['company']->account->isPremium() ? 'email.template.client_premium' : 'email.template.client',
text: 'email.template.text',
with: [
'text_body' => $this->data['body'],

View File

@ -48,6 +48,7 @@ class ClientContactRequestCancellationObject
'signature' => $this->company->settings->email_signature,
'settings' => $this->company->settings,
'logo' => $this->company->present()->logo(),
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
];
$mail_obj = new \stdClass();

View File

@ -58,6 +58,7 @@ class OtpCode extends Mailable
'title' => ctrans('texts.otp_code_subject'),
'content' => ctrans('texts.otp_code_body', ['code' => $this->code]),
'whitelabel' => $this->company->account->isPaid(),
'template' => $this->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
]);
}
}

View File

@ -75,7 +75,7 @@ class TemplateEmail extends Mailable
$template_name = 'email.template.'.$this->build_email->getTemplate();
if ($this->build_email->getTemplate() == 'light' || $this->build_email->getTemplate() == 'dark') {
$template_name = 'email.template.client';
$template_name = $this->company->account->isPremium() ? 'email.template.client_premium' : 'email.template.client';
}
if ($this->build_email->getTemplate() == 'custom') {

View File

@ -72,7 +72,7 @@ class VendorTemplateEmail extends Mailable
$template_name = 'email.template.'.$this->build_email->getTemplate();
if ($this->build_email->getTemplate() == 'light' || $this->build_email->getTemplate() == 'dark') {
$template_name = 'email.template.client';
$template_name = $this->company->account->isPremium() ? 'email.template.client_premium' : 'email.template.client';
}
if ($this->build_email->getTemplate() == 'custom') {

View File

@ -24,18 +24,6 @@ class ComposerServiceProvider extends ServiceProvider
public function boot()
{
view()->composer('portal.*', PortalComposer::class);
// view()->composer(
// ['email.admin.generic', 'email.client.generic'],
// function ($view) {
// $view->with(
// 'template',
// Ninja::isHosted()
// );
// }
// );
}
/**

View File

@ -68,6 +68,7 @@ class AdminEmailMailable extends Mailable
'logo' => $this->email_object->company->present()->logo(),
'settings' => $this->email_object->settings,
'whitelabel' => $this->email_object->company->account->isPaid() ? true : false,
'template' => $this->email_object->company->account->isPremium() ? 'email.template.admin_premium' : 'email.template.admin',
]
);
}

View File

@ -107,10 +107,10 @@ class EmailDefaults
match ($this->email->email_object->settings->email_style) {
'plain' => $this->template = 'email.template.plain',
'light' => $this->template = 'email.template.client',
'dark' => $this->template = 'email.template.client',
'light' => $this->template = $this->email->email_object->company->account->isPremium() ? 'email.template.client_premium' : 'email.template.client',
'dark' => $this->template = $this->email->email_object->company->account->isPremium() ? 'email.template.client_premium' :'email.template.client',
'custom' => $this->template = 'email.template.custom',
default => $this->template = 'email.template.client',
default => $this->template = $this->email->email_object->company->account->isPremium() ? 'email.template.client_premium' :'email.template.client',
};
$this->email->email_object->html_template = $this->template;

View File

@ -21,6 +21,15 @@ class TruthSource
public $company_token;
public $premium_hosted;
public function setPremiumHosted($premium_hosted)
{
$this->premium_hosted = $premium_hosted;
return $this;
}
public function setCompanyUser($company_user)
{
$this->company_user = $company_user;
@ -49,6 +58,11 @@ class TruthSource
return $this;
}
public function getPremiumHosted()
{
return $this->premium_hosted;
}
public function getCompany()
{
return $this->company;

View File

@ -3,7 +3,6 @@
$email_alignment = isset($settings->email_alignment) ? $settings->email_alignment : 'center';
@endphp
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">

View File

@ -9,7 +9,7 @@
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
namespace Tests\Feature\PaymentLink;
use Tests\TestCase;
use App\Models\Invoice;