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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+ 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