Skip to content

Commit

Permalink
unstable index
Browse files Browse the repository at this point in the history
  • Loading branch information
liuggio committed May 24, 2012
1 parent 3993a87 commit 23d6dda
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 62 deletions.
140 changes: 80 additions & 60 deletions Controller/TicketController.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,36 @@
*/
class TicketController extends Controller
{
CONST USER_TAB_STATE_OPEN = 'open';
CONST USER_TAB_STATE_CLOSE = 'close';
CONST USER_TAB_STATE_ALL = 'all';

/**
* Lists all Ticket entities.
*
*/
public function indexAction()
public function indexAction($status = self::USER_TAB_STATE_OPEN)
{
//$status could be : Open, Closed, All
$em = $this->getDoctrine()->getEntityManager();
$entities=null;
if ($status == self::USER_TAB_STATE_ALL) {

} else {
$baseQuery = 'SELECT t FROM LiuggioHelpDeskTicketSystemBundle:Ticket t JOIN t.state st where st.code %s :state_closed';
$query = $query = sprintf($baseQuery, '=');
if ($status == self::USER_TAB_STATE_OPEN) {
$query = sprintf($baseQuery, '!=');
} else if ($status == self::USER_TAB_STATE_CLOSE) {
$query = sprintf($baseQuery, '=');
}
$query = $em->createQuery($query);
$query->setParameter('state_closed', TicketState::STATE_CLOSED);

$entities = $em->getRepository('LiuggioHelpDeskTicketSystemBundle:Ticket')->findAll();

//var_dump($query->getSql());
$entities = $query->getResult();
}
// @TODO Pagination
return $this->render('LiuggioHelpDeskTicketSystemBundle:Ticket:index.html.twig', array(
'entities' => $entities
));
Expand All @@ -50,32 +70,33 @@ public function showAction($id)

$comment = new Comment();
$comment->setCreatedBy(null);
$comment_form = $this->createForm(new CommentType($entity->getId()), $comment);
if( $entity->getState()->getCode() == TicketState::STATE_CLOSED ){
$comment_form = $this->createForm(new CommentType($entity->getId()), $comment);
if ($entity->getState()->getCode() == TicketState::STATE_CLOSED) {
return $this->render('LiuggioHelpDeskTicketSystemBundle:Ticket:show_closed.html.twig', array(
'entity' => $entity,
));
'entity' => $entity,
));
}
else{
else {

return $this->render('LiuggioHelpDeskTicketSystemBundle:Ticket:show_open.html.twig', array(
'entity' => $entity,
'entity' => $entity,
'comment_form' => $comment_form->createView()
));
));
}
}

/**
* Displays a form to create a new Ticket entity.
*
*/
public function newAction()
{
$entity = new Ticket();
$form = $this->createForm(new TicketType(), $entity);
$form = $this->createForm(new TicketType(), $entity);

return $this->render('LiuggioHelpDeskTicketSystemBundle:Ticket:new.html.twig', array(
'entity' => $entity,
'form' => $form->createView()
'form' => $form->createView()
));
}

Expand All @@ -85,9 +106,9 @@ public function newAction()
*/
public function createAction()
{
$entity = new Ticket();
$entity = new Ticket();
$request = $this->getRequest();
$form = $this->createForm(new TicketType(), $entity);
$form = $this->createForm(new TicketType(), $entity);
$form->bindRequest($request);

if ($form->isValid()) {
Expand All @@ -102,19 +123,19 @@ public function createAction()
if ($state_new) {
$entity->setState($state_new);
} else {
throw new Exception();
throw new Exception();
}
// @TODO SEND EVENT
$em->persist($entity);
$em->flush();

return $this->redirect($this->generateUrl('ticket_show', array('id' => $entity->getId())));

}

return $this->render('LiuggioHelpDeskTicketSystemBundle:Ticket:new.html.twig', array(
'entity' => $entity,
'form' => $form->createView()
'form' => $form->createView()
));
}

Expand All @@ -136,8 +157,8 @@ public function editAction($id)
$deleteForm = $this->createDeleteForm($id);

return $this->render('LiuggioHelpDeskTicketSystemBundle:Ticket:edit.html.twig', array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'entity' => $entity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
));
}
Expand All @@ -156,7 +177,7 @@ public function updateAction($id)
throw $this->createNotFoundException('Unable to find Ticket entity.');
}

$editForm = $this->createForm(new TicketType(), $entity);
$editForm = $this->createForm(new TicketType(), $entity);
$deleteForm = $this->createDeleteForm($id);

$request = $this->getRequest();
Expand All @@ -171,8 +192,8 @@ public function updateAction($id)
}

return $this->render('LiuggioHelpDeskTicketSystemBundle:Ticket:edit.html.twig', array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'entity' => $entity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
));
}
Expand Down Expand Up @@ -202,93 +223,93 @@ public function deleteAction($id)

return $this->redirect($this->generateUrl('ticket'));
}
/**

/**
* Close the Ticket
*
*/
public function closeAction($id)
public function closeAction($id)
{
$em = $this->getDoctrine()->getEntityManager();
$entity = $em->getRepository('LiuggioHelpDeskTicketSystemBundle:Ticket')->find($id);

if (!$entity){
if (!$entity) {
throw $this->createNotFoundException('Unable to find Ticket entity.');
}
if($entity->getState()->getCode() == TicketState::STATE_CLOSED){

if ($entity->getState()->getCode() == TicketState::STATE_CLOSED) {

return $this->redirect($this->generateUrl('ticket'));
}

$state_closed = $em->getRepository('\Liuggio\HelpDeskTicketSystemBundle\Entity\TicketState')
->findOneByCode(\Liuggio\HelpDeskTicketSystemBundle\Entity\TicketState::STATE_CLOSED);

if ($state_closed){
if ($state_closed) {
$entity->setState($state_closed);
}

$em->persist($entity);
$em->flush();
$form = $this->createForm(new RateType( $entity->getId() ));

$form = $this->createForm(new RateType($entity->getId()));

return $this->render('LiuggioHelpDeskTicketSystemBundle:Ticket:rate.html.twig', array(
'entity' => $entity,
'form' => $form->createView()
'form' => $form->createView()
));
}

/**
* Rate the Ticket
*
*/
* Rate the Ticket
*
*/
public function rateAction()
{
$entity = new Ticket();
$entity = new Ticket();
$request = $this->getRequest();
$form = $this->createForm(new RateType());
$form = $this->createForm(new RateType());
$form->bindRequest($request);

if ($form->isValid()){
if ($form->isValid()) {

$formData = $form->getData();
$ticket_id = $formData['ticket_id'];
$rate_val = $formData['rate'];

$em = $this->getDoctrine()->getEntityManager();
$entity = $em->getRepository('LiuggioHelpDeskTicketSystemBundle:Ticket')->find($ticket_id);
if (!$entity){

if (!$entity) {
throw $this->createNotFoundException('Unable to find Ticket entity.');
}

$session = $this->get('session');
if ( $entity->getRate() != NULL){
if($session){

if ($entity->getRate() != NULL) {

if ($session) {

$session->setFlash('thankYouMsg', 'You can not re-Rate this Ticket!');
$session->setFlash('ratedTickedId', $ticket_id);
$session->setFlash('rating:', $entity->getRate() );
$session->setFlash('rating:', $entity->getRate());
}

return $this->redirect($this->generateUrl('ticket'));
}

$entity->setRate($rate_val);
$em->persist($entity);
$em->flush();
if($session){
if ($session) {

$session->setFlash('thankYouMsg', 'Thank you for rating our services!');
$session->setFlash('ratedTickedId', $ticket_id);
$session->setFlash('rating', $rate_val);

}
}

return $this->redirect($this->generateUrl('ticket'));

}
Expand All @@ -297,7 +318,6 @@ private function createDeleteForm($id)
{
return $this->createFormBuilder(array('id' => $id))
->add('id', 'hidden')
->getForm()
;
->getForm();
}
}
1 change: 1 addition & 0 deletions Resources/config/routing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ LiuggioHelpDeskTicketSystemBundle_customer_care_ticket:
resource: "@LiuggioHelpDeskTicketSystemBundle/Resources/config/routing/ticket.yml"
prefix: /customer-care/ticket


LiuggioHelpDeskTicketSystemBundle_customer_care_coment:
resource: "@LiuggioHelpDeskTicketSystemBundle/Resources/config/routing/comment.yml"
prefix: /customer-care/comment
6 changes: 4 additions & 2 deletions Resources/config/routing/ticket.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
ticket:
pattern: /
defaults: { _controller: "LiuggioHelpDeskTicketSystemBundle:Ticket:index" }
pattern: /{status}
defaults: { _controller: "LiuggioHelpDeskTicketSystemBundle:Ticket:index", status:open }
requirements: { status: open|close|all }


ticket_show:
pattern: /{id}/show
Expand Down

0 comments on commit 23d6dda

Please sign in to comment.