From 2f6ce43fe18f17d07d1ea08f505e23535a81532b Mon Sep 17 00:00:00 2001 From: Manish Verma Date: Mon, 13 Aug 2018 18:39:36 +0530 Subject: [PATCH] Bugfix and language updates Fixed links and language translations in installert. Fixed outgoing mail issue. --- app/Exceptions/Handler.php | 1 + .../Admin/helpdesk/LanguageController.php | 2 +- app/Http/Controllers/Common/CommonMailer.php | 40 ++++++++++ .../Controllers/Common/PhpMailController.php | 78 ++++++++++--------- example.env | 18 ----- resources/lang/en/lang.php | 16 ++++ .../installer/helpdesk/view6.blade.php | 3 +- 7 files changed, 101 insertions(+), 57 deletions(-) create mode 100644 app/Http/Controllers/Common/CommonMailer.php delete mode 100644 example.env diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index c030b98ce..00079ffc4 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -48,6 +48,7 @@ class Handler extends ExceptionHandler */ public function report(Exception $e) { + dd($e); Bugsnag::setBeforeNotifyFunction(function ($error) { //set bugsnag return false; }); diff --git a/app/Http/Controllers/Admin/helpdesk/LanguageController.php b/app/Http/Controllers/Admin/helpdesk/LanguageController.php index 5c192a4e5..8fc001c8d 100644 --- a/app/Http/Controllers/Admin/helpdesk/LanguageController.php +++ b/app/Http/Controllers/Admin/helpdesk/LanguageController.php @@ -90,7 +90,7 @@ class LanguageController extends Controller ->addColumn('language', function ($model) { $img_src = 'lb-faveo/flags/'.$model.'.png'; if ($model == Config::get('app.fallback_locale')) { - return ' '.Config::get('languages.'.$model)[0].' ('.Lang::get('lang.default').')'; + return ' '.Config::get('languages.'.$model)[0].' ('.Lang::get('lang.default-fallback').')'; } else { return ' '.Config::get('languages.'.$model)[0]; } diff --git a/app/Http/Controllers/Common/CommonMailer.php b/app/Http/Controllers/Common/CommonMailer.php new file mode 100644 index 000000000..f2f8cd474 --- /dev/null +++ b/app/Http/Controllers/Common/CommonMailer.php @@ -0,0 +1,40 @@ +setUsername($config['username']); + $transport->setPassword($config['password']); + $transport->setStreamOptions($https); + $set = new \Swift_Mailer($transport); + + // Set the mailer + \Mail::setSwiftMailer($set); + return true; + } catch (Exception $e) { + loging($e->getMessage()); + return $e->getMessage(); + } + } + public function setMailGunDriver($config) + { + if (!$config) { + return false; + } + + return true; + } +} diff --git a/app/Http/Controllers/Common/PhpMailController.php b/app/Http/Controllers/Common/PhpMailController.php index c08ff5773..6a8190ce0 100644 --- a/app/Http/Controllers/Common/PhpMailController.php +++ b/app/Http/Controllers/Common/PhpMailController.php @@ -16,6 +16,15 @@ use Mail; class PhpMailController extends Controller { + /** + *@var variable to instantiate common mailer class + */ + + public function __construct() + { + $this->commonMailer = new CommonMailer; + } + public function fetch_smtp_details($id) { $emails = Emails::where('id', '=', $id)->first(); @@ -161,45 +170,42 @@ class PhpMailController extends Controller $content = $messagebody; } } - $send = $this->laravelMail($recipants, $recipantname, $subject, $content, $cc, $attachment); + $send = $this->laravelMail($recipants, $recipantname, $subject, $content, $from_address, $cc, $attachment); return $send; } - public function setMailConfig($from_address) + public function setMailConfig($mail) { - $username = $from_address->email_address; - $fromname = $from_address->email_name; - $password = $from_address->password; - $smtpsecure = $from_address->sending_encryption; - $host = $from_address->sending_host; - $port = $from_address->sending_port; - $protocol = $from_address->sending_protocol; - $this->setServices($from_address->id, $protocol); - if ($protocol == 'mail') { - $username = ''; - $fromname = ''; - $host = ''; - $smtpsecure = ''; - $port = ''; - } - $configs = [ - 'username' => $username, - 'from' => ['address' => $username, 'name' => $fromname], - 'password' => $password, - 'encryption' => $smtpsecure, - 'host' => $host, - 'port' => $port, - 'driver' => $protocol, - ]; - foreach ($configs as $key => $config) { - if (is_array($config)) { - foreach ($config as $from) { - \Config::set('mail.'.$key, $config); + switch ($mail->sending_protocol) { + case 'smtp': + $config = ['host' => $mail->sending_host, + 'port' => $mail->sending_port, + 'security' => $mail->sending_encryption, + 'username' => $mail->email_address, + 'password' => $mail->password, + ]; + if (!$this->commonMailer->setSmtpDriver($config)) { + \Log::info('Invaid configuration :- '.$config); + + return 'invalid mail configuration'; } - } else { - \Config::set('mail.'.$key, $config); - } + break; + case 'send_mail': + $config = [ + 'host' => \Config::get('mail.host'), + 'port' => \Config::get('mail.port'), + 'security' => \Config::get('mail.encryption'), + 'username' => \Config::get('mail.username'), + 'password' => \Config::get('mail.password'), + ]; + $this->commonMailer->setSmtpDriver($config); + break; + case 'mailgun': + $this->commonMailer->setMailGunDriver(null); + break; + default: + return 'Mail driver not supported'; } } @@ -223,14 +229,14 @@ class PhpMailController extends Controller return $value; } - public function laravelMail($to, $toname, $subject, $data, $cc, $attach) + public function laravelMail($to, $toname, $subject, $data, $from_address, $cc, $attach) { //dd($to, $toname, $subject, $data, $cc, $attach); //dd(\Config::get('mail')); //dd($attach); - $mail = Mail::send('emails.mail', ['data' => $data], function ($m) use ($to, $subject, $toname, $cc, $attach) { + $mail = Mail::send('emails.mail', ['data' => $data], function ($m) use ($to, $subject, $toname, $cc, $attach, $from_address) { $m->to($to, $toname)->subject($subject); - + $m->from($from_address->email_address, $from_address->email_name); if ($cc != null) { foreach ($cc as $collaborator) { //mail to collaborators diff --git a/example.env b/example.env deleted file mode 100644 index 18dbf2e92..000000000 --- a/example.env +++ /dev/null @@ -1,18 +0,0 @@ -APP_ENV=production -APP_DEBUG=false -APP_KEY=SomeRandomString -DB_TYPE= -DB_HOST= -DB_PORT= -DB_DATABASE= -DB_USERNAME= -DB_PASSWORD= -DB_INSTALL=%0% -MAIL_DRIVER=smtp -MAIL_HOST=mailtrap.io -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -CACHE_DRIVER=file -SESSION_DRIVER=file -QUEUE_DRIVER=sync diff --git a/resources/lang/en/lang.php b/resources/lang/en/lang.php index 3cf039d08..443de7feb 100644 --- a/resources/lang/en/lang.php +++ b/resources/lang/en/lang.php @@ -1592,4 +1592,20 @@ return [ 'selected-user-is-already-the-owner' => 'Selected user is already the owner of this ticket.', //updated 15-5-2017 'session-expired' => 'Session expired or invalid, please try again.', + + //update since v1.10 + 'your_helpdesk_is_ready' => 'Your Helpdesk is Ready!', + 'all_right_sparky_you_have_made_it' => 'All right, sparky! You’ve made it through the installation.', + 'next_step' => 'Next Step', + 'login_to_faveo' => 'Login to Faveo', + 'learn_more' => 'Learn More', + 'video_walk_through' => 'Video walk through', + 'email_support' => 'Email Support', + 'not-answered' => 'Not answered', + 'default-fallback' => 'Fallback language', + 'system-language' => 'System\'s default language', + 'set_as_sys_lang' => 'Make default', + 'system-outgoing-incoming-mail-not-configured' => 'You have not configured system mail. Faveo can\'t fetch tickets from mail or send mail to users without it.', + 'confihure-the-mail-now' => 'Click here to configure the mail.', + 'system-mail-not-configured-agent-message' => 'System incoming and outgoing email settings are not configured. Please contct your system\'s admin and report the problem.', ]; diff --git a/resources/views/themes/default1/installer/helpdesk/view6.blade.php b/resources/views/themes/default1/installer/helpdesk/view6.blade.php index 95a2c2fe4..194c3263e 100644 --- a/resources/views/themes/default1/installer/helpdesk/view6.blade.php +++ b/resources/views/themes/default1/installer/helpdesk/view6.blade.php @@ -56,7 +56,7 @@ active