From a244a58ebcd0fdd6036f677efc01a9c2ab4c861f Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 16 Mar 2017 20:00:21 -0300 Subject: [PATCH] Ivan - Add all mail templates [skip ci] --- client/src/app/App.js | 4 + server/controllers/ticket/close.php | 17 +- server/controllers/ticket/comment.php | 17 +- server/controllers/ticket/create.php | 23 +- server/controllers/user/edit-email.php | 2 +- server/controllers/user/edit-password.php | 2 +- server/data/InitialMails.php | 30 ++ .../data/mail-templates/ticket-closed-en.html | 384 +++++++++++++++++ .../data/mail-templates/ticket-closed-es.html | 384 +++++++++++++++++ .../mail-templates/ticket-created-en.html | 389 +++++++++++++++++ .../mail-templates/ticket-created-es.html | 390 ++++++++++++++++++ .../mail-templates/ticket-responded-en.html | 384 +++++++++++++++++ .../mail-templates/ticket-responded-es.html | 384 +++++++++++++++++ server/libs/MailSender.php | 2 +- server/models/MailTemplate.php | 6 +- tests/system/disable-registration.rb | 2 +- tests/system/get-mail-templates.rb | 2 +- 17 files changed, 2412 insertions(+), 10 deletions(-) create mode 100644 server/data/mail-templates/ticket-closed-en.html create mode 100644 server/data/mail-templates/ticket-closed-es.html create mode 100644 server/data/mail-templates/ticket-created-en.html create mode 100644 server/data/mail-templates/ticket-created-es.html create mode 100644 server/data/mail-templates/ticket-responded-en.html create mode 100644 server/data/mail-templates/ticket-responded-es.html diff --git a/client/src/app/App.js b/client/src/app/App.js index 340340c4..34690e86 100644 --- a/client/src/app/App.js +++ b/client/src/app/App.js @@ -98,6 +98,10 @@ class App extends React.Component { if (!props.config.registration && _.includes(props.location.pathname, 'signup')) { browserHistory.push('/'); } + + if(!props.config['user-system-enabled'] && _.includes(props.location.pathname, '/check-ticket')) { + browserHistory.push('/'); + } } isPathAvailableForStaff(props) { diff --git a/server/controllers/ticket/close.php b/server/controllers/ticket/close.php index a1b6a323..88c086ca 100644 --- a/server/controllers/ticket/close.php +++ b/server/controllers/ticket/close.php @@ -33,7 +33,8 @@ class CloseController extends Controller { $this->ticket->closed = true; $this->ticket->store(); - + + $this->sendMail(); Log::createLog('CLOSE', $this->ticket->ticketNumber); Response::respondSuccess(); @@ -68,4 +69,18 @@ class CloseController extends Controller { $this->ticket->addEvent($event); } + + private function sendMail() { + $mailSender = new MailSender(); + + $mailSender->setTemplate(MailTemplate::TICKET_CLOSED, [ + 'to' => $this->ticket->author->email, + 'name' => $this->ticket->author->name, + 'ticketNumber' => $this->ticket->ticketNumber, + 'title' => $this->ticket->title, + 'url' => Setting::getSetting('url')->getValue() + ]); + + $mailSender->send(); + } } \ No newline at end of file diff --git a/server/controllers/ticket/comment.php b/server/controllers/ticket/comment.php index 4468b8da..1f42f3d9 100644 --- a/server/controllers/ticket/comment.php +++ b/server/controllers/ticket/comment.php @@ -54,7 +54,8 @@ class CommentController extends Controller { if ((!Controller::isUserSystemEnabled() && !Controller::isStaffLogged()) || $session->isLoggedWithId(($this->ticket->author) ? $this->ticket->author->id : 0) || (Controller::isStaffLogged() && $session->isLoggedWithId(($this->ticket->owner) ? $this->ticket->owner->id : 0))) { $this->storeComment(); - + $this->sendMail(); + Log::createLog('COMMENT', $this->ticket->ticketNumber); Response::respondSuccess(); @@ -90,4 +91,18 @@ class CommentController extends Controller { $this->ticket->addEvent($comment); $this->ticket->store(); } + + private function sendMail() { + $mailSender = new MailSender(); + + $mailSender->setTemplate(MailTemplate::TICKET_RESPONDED, [ + 'to' => $this->ticket->author->email, + 'name' => $this->ticket->author->name, + 'ticketNumber' => $this->ticket->ticketNumber, + 'title' => $this->ticket->title, + 'url' => Setting::getSetting('url')->getValue() + ]); + + $mailSender->send(); + } } \ No newline at end of file diff --git a/server/controllers/ticket/create.php b/server/controllers/ticket/create.php index 2a8c4586..8eaeded6 100644 --- a/server/controllers/ticket/create.php +++ b/server/controllers/ticket/create.php @@ -58,6 +58,10 @@ class CreateController extends Controller { $this->storeTicket(); + if(!Controller::isUserSystemEnabled()) { + $this->sendMail(); + } + Log::createLog('CREATE_TICKET', $this->ticketNumber); Response::respondSuccess([ 'ticketNumber' => $this->ticketNumber @@ -89,12 +93,29 @@ class CreateController extends Controller { if(Controller::isUserSystemEnabled()) { $author->sharedTicketList->add($ticket); $author->tickets++; + + $this->email = $author->email; + $this->name = $author->name; - $author->store(); + $author->store(); } $ticket->store(); $this->ticketNumber = $ticket->ticketNumber; } + + private function sendMail() { + $mailSender = new MailSender(); + + $mailSender->setTemplate(MailTemplate::TICKET_CREATED, [ + 'to' => $this->email, + 'name' => $this->name, + 'ticketNumber' => $this->ticketNumber, + 'title' => $this->title, + 'url' => Setting::getSetting('url')->getValue() + ]); + + $mailSender->send(); + } } diff --git a/server/controllers/user/edit-email.php b/server/controllers/user/edit-email.php index a8bdbdb2..dc7793d6 100644 --- a/server/controllers/user/edit-email.php +++ b/server/controllers/user/edit-email.php @@ -25,7 +25,7 @@ class EditEmail extends Controller{ $user->store(); $mailSender = new MailSender(); - $mailSender->setTemplate('USER_EDIT_EMAIL', [ + $mailSender->setTemplate('USER_EMAIL', [ 'to'=>$oldEmail, 'newemail'=>$user->email, 'name'=>$user->name diff --git a/server/controllers/user/edit-password.php b/server/controllers/user/edit-password.php index 9083aeb5..07a56b99 100644 --- a/server/controllers/user/edit-password.php +++ b/server/controllers/user/edit-password.php @@ -27,7 +27,7 @@ class EditPassword extends Controller { $user->store(); $mailSender = new MailSender(); - $mailSender->setTemplate('USER_EDIT_PASSWORD', [ + $mailSender->setTemplate('USER_PASSWORD', [ 'to'=>$user->email, 'name'=>$user->name ]); diff --git a/server/data/InitialMails.php b/server/data/InitialMails.php index 30ee650a..b0e590e3 100644 --- a/server/data/InitialMails.php +++ b/server/data/InitialMails.php @@ -62,6 +62,36 @@ class InitialMails { 'subject' => 'Cuenta creada - OpenSupports', 'body' => file_get_contents('data/mail-templates/user-system-enabled-es.html') ] + ], + 'TICKET_CREATED' => [ + 'en' => [ + 'subject' => '#{{ticketNumber}} Ticket created - OpenSupports', + 'body' => file_get_contents('data/mail-templates/ticket-created-en.html') + ], + 'es' => [ + 'subject' => '#{{ticketNumber}} Ticket creado - OpenSupports', + 'body' => file_get_contents('data/mail-templates/ticket-created-es.html') + ] + ], + 'TICKET_RESPONDED' => [ + 'en' => [ + 'subject' => '#{{ticketNumber}} New response - OpenSupports', + 'body' => file_get_contents('data/mail-templates/ticket-responded-en.html') + ], + 'es' => [ + 'subject' => '#{{ticketNumber}} Nueva respuesta - OpenSupports', + 'body' => file_get_contents('data/mail-templates/ticket-responded-es.html') + ] + ], + 'TICKET_CLOSED' => [ + 'en' => [ + 'subject' => '#{{ticketNumber}} Ticket closed - OpenSupports', + 'body' => file_get_contents('data/mail-templates/ticket-closed-en.html') + ], + 'es' => [ + 'subject' => '#{{ticketNumber}} Ticket cerrado - OpenSupports', + 'body' => file_get_contents('data/mail-templates/ticket-closed-es.html') + ] ] ]; } diff --git a/server/data/mail-templates/ticket-closed-en.html b/server/data/mail-templates/ticket-closed-en.html new file mode 100644 index 00000000..aa87da39 --- /dev/null +++ b/server/data/mail-templates/ticket-closed-en.html @@ -0,0 +1,384 @@ + + + + + + Support Center + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+ logo +
+
+ +
+
+
+
+ + + + + + + + + + +
+ Ticket closed +
+ Hello, {{name}}. A ticket you sent titled <{{title}} has been closed. +
+ + + + +
+ + + + + + + +
+ You can access to the ticket by its ticket number. Or you can click on the button below. +
+ +
+
+
+
+
+
+ + + + +
+ OpenSupports
+ Open source ticket system
+ www.opensupports.com

+
+
+
+ + \ No newline at end of file diff --git a/server/data/mail-templates/ticket-closed-es.html b/server/data/mail-templates/ticket-closed-es.html new file mode 100644 index 00000000..bb25c340 --- /dev/null +++ b/server/data/mail-templates/ticket-closed-es.html @@ -0,0 +1,384 @@ + + + + + + Support Center + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+ logo +
+
+ +
+
+
+
+ + + + + + + + + + +
+ Ticket cerrado +
+ Hola, {{name}}. Un ticket que enviaste titulado <{{title}} ha sido cerrado. +
+ + + + +
+ + + + + + + +
+ Puedes acceder al ticket por su numero de ticket o haciendo click en el botón de abajo. +
+ +
+
+
+
+
+
+ + + + +
+ OpenSupports
+ Open source ticket system
+ www.opensupports.com

+
+
+
+ + \ No newline at end of file diff --git a/server/data/mail-templates/ticket-created-en.html b/server/data/mail-templates/ticket-created-en.html new file mode 100644 index 00000000..fb5b4145 --- /dev/null +++ b/server/data/mail-templates/ticket-created-en.html @@ -0,0 +1,389 @@ + + + + + + Support Center + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+ logo +
+
+ +
+
+
+
+ + + + + + + + + + +
+ Ticket created +
+ Hello, {{name}}. You have sent a new ticket titled <{{title}} to our support center. +
+ + + + +
+ + + + + + + + + + +
+ You can access to the ticket by its ticket number. Or you can click on the button below. +
+ {{ticketNumber}} +
+ +
+
+
+
+
+
+ + + + +
+ OpenSupports
+ Open source ticket system
+ www.opensupports.com

+
+
+
+ + \ No newline at end of file diff --git a/server/data/mail-templates/ticket-created-es.html b/server/data/mail-templates/ticket-created-es.html new file mode 100644 index 00000000..2439e7c1 --- /dev/null +++ b/server/data/mail-templates/ticket-created-es.html @@ -0,0 +1,390 @@ + + + + + + Support Center + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+ logo +
+
+ +
+
+
+
+ + + + + + + + + + +
+ Ticket creado +
+ Hola, {{name}}. Has creado un nuevo ticket titulado <{{title}} en nuestro sistema de soporte. +
+ + + + +
+ + + + + + + + + + +
+ Puedes ver el ticket usando el numero de ticket prensentado abajo. + O puedes hacer click en el botón de más abajo. +
+ {{ticketNumber}} +
+ +
+
+
+
+
+
+ + + + +
+ OpenSupports
+ Open source ticket system
+ www.opensupports.com

+
+
+
+ + \ No newline at end of file diff --git a/server/data/mail-templates/ticket-responded-en.html b/server/data/mail-templates/ticket-responded-en.html new file mode 100644 index 00000000..de85d36e --- /dev/null +++ b/server/data/mail-templates/ticket-responded-en.html @@ -0,0 +1,384 @@ + + + + + + Support Center + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+ logo +
+
+ +
+
+
+
+ + + + + + + + + + +
+ Ticket responded +
+ Hello, {{name}}. You have received a response in the ticket title {{title}}. +
+ + + + +
+ + + + + + + +
+ Please click below to see the new response. +
+ +
+
+
+
+
+
+ + + + +
+ OpenSupports
+ Open source ticket system
+ www.opensupports.com

+
+
+
+ + \ No newline at end of file diff --git a/server/data/mail-templates/ticket-responded-es.html b/server/data/mail-templates/ticket-responded-es.html new file mode 100644 index 00000000..5890d697 --- /dev/null +++ b/server/data/mail-templates/ticket-responded-es.html @@ -0,0 +1,384 @@ + + + + + + Support Center + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+ logo +
+
+ +
+
+
+
+ + + + + + + + + + +
+ Nueva respuesta +
+ Hola, {{name}}. Has recibido una nueva respuesta en tu ticket titulado {{title}}. +
+ + + + +
+ + + + + + + +
+ Por favor, has click abajo para ver la respuesta. +
+ +
+
+
+
+
+
+ + + + +
+ OpenSupports
+ Open source ticket system
+ www.opensupports.com

+
+
+
+ + \ No newline at end of file diff --git a/server/libs/MailSender.php b/server/libs/MailSender.php index 65cd9bab..abe281d5 100644 --- a/server/libs/MailSender.php +++ b/server/libs/MailSender.php @@ -19,7 +19,7 @@ class MailSender { $this->mailOptions = array_merge($this->mailOptions, $compiledMailContent); } - + public function send() { $mailer = new PHPMailer(); diff --git a/server/models/MailTemplate.php b/server/models/MailTemplate.php index 0379693b..2d3c2583 100644 --- a/server/models/MailTemplate.php +++ b/server/models/MailTemplate.php @@ -7,10 +7,12 @@ class MailTemplate extends DataStore { const USER_SIGNUP = 'USER_SIGNUP'; const USER_PASSWORD = 'USER_PASSWORD'; const PASSWORD_FORGOT = 'PASSWORD_FORGOT'; - const PASSWORD_RECOVERED = 'PASSWORD_RECOVERED'; const USER_SYSTEM_DISABLED = 'USER_SYSTEM_DISABLED'; const USER_SYSTEM_ENABLED = 'USER_SYSTEM_ENABLED'; - + const TICKET_CREATED = 'TICKET_CREATED'; + const TICKET_RESPONDED = 'TICKET_RESPONDED'; + const TICKET_CLOSED = 'TICKET_CLOSED'; + public static function getTemplate($type) { $globalLanguage = Setting::getSetting('language')->value; diff --git a/tests/system/disable-registration.rb b/tests/system/disable-registration.rb index 93e47980..13e4c06c 100644 --- a/tests/system/disable-registration.rb +++ b/tests/system/disable-registration.rb @@ -13,7 +13,7 @@ describe'/system/disable-registration' do row = $database.getRow('setting', 'registration', 'name') - (row['value']).should.equal('true') + (row['value']).should.equal('1') end it 'should disable registration' do diff --git a/tests/system/get-mail-templates.rb b/tests/system/get-mail-templates.rb index f6b4ab10..db0c43d6 100644 --- a/tests/system/get-mail-templates.rb +++ b/tests/system/get-mail-templates.rb @@ -10,6 +10,6 @@ describe'system/get-mail-templates' do (result['status']).should.equal('success') - (result['data'].size).should.equal(14) + (result['data'].size).should.equal(18) end end