Skip to content

Commit 56af292

Browse files
committed
Merge branch 'release/v3'
2 parents d2a193f + cd02577 commit 56af292

25 files changed

Lines changed: 730 additions & 327 deletions

.travis.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
language: php
2+
warnings_are_errors: false
23

34
php:
45
- 5.5
@@ -25,10 +26,12 @@ matrix:
2526
- php: 5.6
2627
env: SYMFONY_VERSION=3.0.*
2728
- php: 5.6
28-
env: SYMFONY_VERSION="3.1.*@dev"
29+
env: SYMFONY_VERSION="3.1.*"
30+
- php: 5.6
31+
env: SYMFONY_VERSION="3.2.*@dev"
2932
allow_failures:
3033
- php: nightly
31-
- env: SYMFONY_VERSION="3.1.*@dev"
34+
- env: SYMFONY_VERSION="3.2.*@dev"
3235

3336
sudo: false
3437

@@ -37,6 +40,7 @@ cache:
3740
- $HOME/.composer/cache
3841

3942
before_script:
43+
- if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then phpenv config-rm xdebug.ini; fi
4044
- composer selfupdate
4145
- composer config -g github-oauth.github.com $GITHUB_OAUTH_TOKEN
4246
- composer global require phpunit/phpunit fabpot/php-cs-fixer --no-update

Command/AutoClosingCommand.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,15 @@ protected function execute(InputInterface $input, OutputInterface $output)
5252
$resolved_tickets = $ticketRepository->getResolvedTicketOlderThan($input->getOption('age'));
5353

5454
foreach ($resolved_tickets as $ticket) {
55-
$message = $ticket_manager->createMessage();
56-
$message->setMessage(
57-
$translator->trans('MESSAGE_STATUS_CHANGED', ['%status%' => $translator->trans('STATUS_CLOSED')])
58-
)
55+
$message = $ticket_manager->createMessage()
56+
->setMessage(
57+
$translator->trans('MESSAGE_STATUS_CHANGED', ['%status%' => $translator->trans('STATUS_CLOSED')])
58+
)
5959
->setStatus(TicketMessage::STATUS_CLOSED)
6060
->setPriority($ticket->getPriority())
6161
->setUser($userManager->findUserByUsername($username))
6262
->setTicket($ticket);
63+
6364
$ticket->setStatus(TicketMessage::STATUS_CLOSED);
6465
$ticket_manager->updateTicket($ticket, $message);
6566

Command/TicketManagerCommand.php

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,19 @@ protected function execute(InputInterface $input, OutputInterface $output)
4646
{
4747
$userManager = $this->getContainer()->get('fos_user.user_manager');
4848

49-
$ticketmanager = $this->getContainer()->get('hackzilla_ticket.ticket_manager');
49+
$ticketManager = $this->getContainer()->get('hackzilla_ticket.ticket_manager');
5050

51-
$ticket = $ticketmanager->createTicket();
52-
$ticket->setSubject($input->getArgument('subject'));
51+
$ticket = $ticketManager->createTicket()
52+
->setSubject($input->getArgument('subject'));
5353

54-
$message = $ticketmanager->createMessage();
55-
56-
$message->setMessage($input->getArgument('message'))
54+
$message = $ticketManager->createMessage()
55+
->setMessage($input->getArgument('message'))
5756
->setStatus(TicketMessage::STATUS_OPEN)
5857
->setPriority($input->getOption('priority'))
5958
->setUser($userManager->findUserByUsername('system'))
6059
->setTicket($ticket);
6160

62-
$ticketmanager->updateTicket($ticket, $message);
61+
$ticketManager->updateTicket($ticket, $message);
6362

6463
$output->writeln(
6564
"Ticket with subject '".$ticket->getSubject()."' has been created with ticketnumber #".$ticket->getId().''

Controller/TicketController.php

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
use Hackzilla\Bundle\TicketBundle\Event\TicketEvent;
88
use Hackzilla\Bundle\TicketBundle\Form\Type\TicketMessageType;
99
use Hackzilla\Bundle\TicketBundle\Form\Type\TicketType;
10+
use Hackzilla\Bundle\TicketBundle\Model\TicketMessageInterface;
1011
use Hackzilla\Bundle\TicketBundle\TicketEvents;
1112
use Hackzilla\Bundle\TicketBundle\TicketRole;
1213
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
13-
use Symfony\Component\Form\AbstractType;
1414
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
1515
use Symfony\Component\HttpFoundation\Request;
1616

@@ -29,19 +29,16 @@ class TicketController extends Controller
2929
public function indexAction(Request $request)
3030
{
3131
$userManager = $this->get('hackzilla_ticket.user_manager');
32+
$ticketManager = $this->get('hackzilla_ticket.ticket_manager');
3233
$translator = $this->get('translator');
3334

3435
$ticketState = $request->get('state', $translator->trans('STATUS_OPEN'));
3536
$ticketPriority = $request->get('priority', null);
3637

37-
$repositoryTicket = $this->getDoctrine()->getRepository('HackzillaTicketBundle:Ticket');
38-
39-
$repositoryTicketMessage = $this->getDoctrine()->getRepository('HackzillaTicketBundle:TicketMessage');
40-
41-
$query = $repositoryTicket->getTicketList(
38+
$query = $ticketManager->getTicketList(
4239
$userManager,
43-
$repositoryTicketMessage->getTicketStatus($translator, $ticketState),
44-
$repositoryTicketMessage->getTicketPriority($translator, $ticketPriority)
40+
$ticketManager->getTicketStatus($translator, $ticketState),
41+
$ticketManager->getTicketPriority($translator, $ticketPriority)
4542
);
4643

4744
$paginator = $this->get('knp_paginator');
@@ -74,12 +71,12 @@ public function createAction(Request $request)
7471
$ticketManager = $this->get('hackzilla_ticket.ticket_manager');
7572

7673
$ticket = $ticketManager->createTicket();
77-
$form = $this->createForm($this->formType(TicketType::class, new TicketType($userManager)), $ticket);
74+
$form = $this->createForm(TicketType::class, $ticket);
7875
$form->handleRequest($request);
7976

8077
if ($form->isValid()) {
8178
$message = $ticket->getMessages()->current();
82-
$message->setStatus(TicketMessage::STATUS_OPEN)
79+
$message->setStatus(TicketMessageInterface::STATUS_OPEN)
8380
->setUser($userManager->getCurrentUser())
8481
->setTicket($ticket);
8582

@@ -106,8 +103,7 @@ public function createAction(Request $request)
106103
public function newAction()
107104
{
108105
$entity = new Ticket();
109-
$userManager = $this->get('hackzilla_ticket.user_manager');
110-
$form = $this->createForm($this->formType(TicketType::class, new TicketType($userManager)), $entity);
106+
$form = $this->createForm(TicketType::class, $entity);
111107

112108
return $this->render(
113109
'HackzillaTicketBundle:Ticket:new.html.twig',
@@ -139,9 +135,9 @@ public function showAction(Ticket $ticket = null)
139135
$message->setPriority($ticket->getPriority());
140136
$message->setStatus($ticket->getStatus());
141137

142-
if (TicketMessage::STATUS_CLOSED != $ticket->getStatus()) {
138+
if (TicketMessageInterface::STATUS_CLOSED != $ticket->getStatus()) {
143139
$data['form'] = $this->createForm(
144-
$this->formType(TicketMessageType::class, new TicketMessageType($userManager)),
140+
TicketMessageType::class,
145141
$message,
146142
[
147143
'new_ticket' => false,
@@ -195,7 +191,7 @@ public function replyAction(Request $request, Ticket $ticket)
195191
$message->setPriority($ticket->getPriority());
196192

197193
$form = $this->createForm(
198-
$this->formType(TicketMessageType::class, new TicketMessageType($userManager)),
194+
TicketMessageType::class,
199195
$message,
200196
[
201197
'new_ticket' => false,
@@ -236,17 +232,20 @@ public function deleteAction(Request $request, Ticket $ticket)
236232
}
237233

238234
$form = $this->createDeleteForm($ticket->getId());
239-
$form->submit($request);
240235

241-
if ($form->isValid()) {
242-
if (!$ticket) {
243-
throw $this->createNotFoundException($this->get('translator')->trans('ERROR_FIND_TICKET_ENTITY'));
244-
}
236+
if ($request->isMethod('DELETE')) {
237+
$form->submit($request->request->get($form->getName()));
245238

246-
$ticketManager = $this->get('hackzilla_ticket.ticket_manager');
247-
$ticketManager->deleteTicket($ticket);
248-
$event = new TicketEvent($ticket);
249-
$this->get('event_dispatcher')->dispatch(TicketEvents::TICKET_DELETE, $event);
239+
if ($form->isValid()) {
240+
if (!$ticket) {
241+
throw $this->createNotFoundException($this->get('translator')->trans('ERROR_FIND_TICKET_ENTITY'));
242+
}
243+
244+
$ticketManager = $this->get('hackzilla_ticket.ticket_manager');
245+
$ticketManager->deleteTicket($ticket);
246+
$event = new TicketEvent($ticket);
247+
$this->get('event_dispatcher')->dispatch(TicketEvents::TICKET_DELETE, $event);
248+
}
250249
}
251250

252251
return $this->redirect($this->generateUrl('hackzilla_ticket'));
@@ -262,13 +261,8 @@ public function deleteAction(Request $request, Ticket $ticket)
262261
private function createDeleteForm($id)
263262
{
264263
return $this->createFormBuilder(['id' => $id])
265-
->add('id', $this->formType(HiddenType::class, 'hidden'))
264+
->add('id', HiddenType::class)
266265
->getForm()
267266
;
268267
}
269-
270-
private function formType($class, $type)
271-
{
272-
return method_exists(AbstractType::class, 'getBlockPrefix') ? $class : $type;
273-
}
274268
}

DependencyInjection/Configuration.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ public function getConfigTreeBuilder()
2121
$treeBuilder->root('hackzilla_ticket')
2222
->children()
2323
->scalarNode('user_class')->isRequired()->cannotBeEmpty()->end()
24+
->scalarNode('ticket_class')->cannotBeEmpty()->defaultValue('Hackzilla\Bundle\TicketBundle\Entity\Ticket')->end()
25+
->scalarNode('message_class')->cannotBeEmpty()->defaultValue('Hackzilla\Bundle\TicketBundle\Entity\TicketMessage')->end()
2426
->end()
2527
;
2628

DependencyInjection/HackzillaTicketExtension.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,7 @@ public function load(array $configs, ContainerBuilder $container)
2626
$loader->load('services.yml');
2727

2828
$container->setParameter('hackzilla_ticket.model.user.class', $config['user_class']);
29+
$container->setParameter('hackzilla_ticket.model.ticket.class', $config['ticket_class']);
30+
$container->setParameter('hackzilla_ticket.model.message.class', $config['message_class']);
2931
}
3032
}

0 commit comments

Comments
 (0)