mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-18 07:23:13 +00:00
Push & Feedback templates
This commit is contained in:
@@ -46,76 +46,76 @@ class Basket implements ControllerProviderInterface
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$controllers->post('/', function(Application $app)
|
$controllers->post('/', function(Application $app)
|
||||||
{
|
{
|
||||||
$request = $app['request'];
|
$request = $app['request'];
|
||||||
|
|
||||||
/* @var $request \Symfony\Component\HttpFoundation\Request */
|
/* @var $request \Symfony\Component\HttpFoundation\Request */
|
||||||
|
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
|
|
||||||
$Basket = new \Entities\Basket();
|
$Basket = new \Entities\Basket();
|
||||||
|
|
||||||
$Basket->setName($request->get('name', ''));
|
$Basket->setName($request->get('name', ''));
|
||||||
$Basket->setOwner($app['Core']->getAuthenticatedUser());
|
$Basket->setOwner($app['Core']->getAuthenticatedUser());
|
||||||
$Basket->setDescription($request->get('desc'));
|
$Basket->setDescription($request->get('desc'));
|
||||||
|
|
||||||
$em->persist($Basket);
|
$em->persist($Basket);
|
||||||
|
|
||||||
$n = 0;
|
$n = 0;
|
||||||
|
|
||||||
foreach (explode(';', $request->get('lst')) as $sbas_rec)
|
foreach (explode(';', $request->get('lst')) as $sbas_rec)
|
||||||
{
|
{
|
||||||
$sbas_rec = explode('_', $sbas_rec);
|
$sbas_rec = explode('_', $sbas_rec);
|
||||||
|
|
||||||
if (count($sbas_rec) !== 2)
|
if (count($sbas_rec) !== 2)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
$record = new \record_adapter($sbas_rec[0], $sbas_rec[1]);
|
$record = new \record_adapter($sbas_rec[0], $sbas_rec[1]);
|
||||||
|
|
||||||
if (!$user->ACL()->has_access_to_base($record->get_base_id())
|
if (!$user->ACL()->has_access_to_base($record->get_base_id())
|
||||||
&& !$user->ACL()->has_hd_grant($record)
|
&& !$user->ACL()->has_hd_grant($record)
|
||||||
&& !$user->ACL()->has_preview_grant($record))
|
&& !$user->ACL()->has_preview_grant($record))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($Basket->hasRecord($record))
|
if ($Basket->hasRecord($record))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
$basket_element = new \Entities\BasketElement();
|
$basket_element = new \Entities\BasketElement();
|
||||||
$basket_element->setRecord($record);
|
$basket_element->setRecord($record);
|
||||||
$basket_element->setBasket($Basket);
|
$basket_element->setBasket($Basket);
|
||||||
|
|
||||||
$em->persist($basket_element);
|
$em->persist($basket_element);
|
||||||
|
|
||||||
$Basket->addBasketElement($basket_element);
|
$Basket->addBasketElement($basket_element);
|
||||||
|
|
||||||
$n++;
|
$n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'message' => _('Basket created')
|
, 'message' => _('Basket created')
|
||||||
, 'basket' => array(
|
, 'basket' => array(
|
||||||
'id' => $Basket->getId()
|
'id' => $Basket->getId()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse(sprintf('/%d/', $Basket->getId()));
|
return new RedirectResponse(sprintf('/%d/', $Basket->getId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This route is used to delete a basket
|
* This route is used to delete a basket
|
||||||
@@ -124,73 +124,73 @@ class Basket implements ControllerProviderInterface
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$controllers->post('/{basket_id}/delete/', function(Application $app, Request $request, $basket_id)
|
$controllers->post('/{basket_id}/delete/', function(Application $app, Request $request, $basket_id)
|
||||||
{
|
{
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
$em->remove($basket);
|
$em->remove($basket);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'message' => _('Basket has been deleted')
|
, 'message' => _('Basket has been deleted')
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse('/');
|
return new RedirectResponse('/');
|
||||||
}
|
}
|
||||||
})->assert('basket_id', '\d+');
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes a BasketElement
|
* Removes a BasketElement
|
||||||
*/
|
*/
|
||||||
$controllers->post(
|
$controllers->post(
|
||||||
'/{basket_id}/delete/{basket_element_id}/'
|
'/{basket_id}/delete/{basket_element_id}/'
|
||||||
, function(Application $app, Request $request, $basket_id, $basket_element_id)
|
, function(Application $app, Request $request, $basket_id, $basket_element_id)
|
||||||
{
|
{
|
||||||
/* @var $em \Doctrine\ORM\EntityManager */
|
/* @var $em \Doctrine\ORM\EntityManager */
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
foreach ($basket->getElements() as $basket_element)
|
foreach ($basket->getElements() as $basket_element)
|
||||||
{
|
{
|
||||||
/* @var $basket_element \Entities\BasketElement */
|
/* @var $basket_element \Entities\BasketElement */
|
||||||
if ($basket_element->getId() == $basket_element_id)
|
if ($basket_element->getId() == $basket_element_id)
|
||||||
{
|
{
|
||||||
$em->remove($basket_element);
|
$em->remove($basket_element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'message' => _('Record removed from basket')
|
, 'message' => _('Record removed from basket')
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse('/');
|
return new RedirectResponse('/');
|
||||||
}
|
}
|
||||||
})->assert('basket_id', '\d+')->assert('basket_element_id', '\d+');
|
})->assert('basket_id', '\d+')->assert('basket_element_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update name and description of a basket
|
* Update name and description of a basket
|
||||||
@@ -200,83 +200,83 @@ class Basket implements ControllerProviderInterface
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$controllers->post('/{basket_id}/update/', function(Application $app, Request $request, $basket_id)
|
$controllers->post('/{basket_id}/update/', function(Application $app, Request $request, $basket_id)
|
||||||
{
|
{
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
$basket->setName($request->get('name', ''));
|
$basket->setName($request->get('name', ''));
|
||||||
$basket->setDescription($request->get('description'));
|
$basket->setDescription($request->get('description'));
|
||||||
|
|
||||||
$em->merge($basket);
|
$em->merge($basket);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'message' => _('Basket has been updated')
|
, 'message' => _('Basket has been updated')
|
||||||
, 'basket' => array('id' => $basket->getId())
|
, 'basket' => array('id' => $basket->getId())
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse('/');
|
return new RedirectResponse('/');
|
||||||
}
|
}
|
||||||
})->assert('basket_id', '\d+');
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the form to update the Basket attributes (name and description)
|
* Get the form to update the Basket attributes (name and description)
|
||||||
*/
|
*/
|
||||||
$controllers->get('/{basket_id}/update/', function(Application $app, $basket_id)
|
$controllers->get('/{basket_id}/update/', function(Application $app, $basket_id)
|
||||||
{
|
{
|
||||||
/* @var $em \Doctrine\ORM\EntityManager */
|
/* @var $em \Doctrine\ORM\EntityManager */
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
/* @var $twig \Twig_Environment */
|
/* @var $twig \Twig_Environment */
|
||||||
$twig = $app['Core']->getTwig();
|
$twig = $app['Core']->getTwig();
|
||||||
|
|
||||||
return new Response(
|
return new Response(
|
||||||
$twig->render(
|
$twig->render(
|
||||||
'prod/Baskets/Update.html.twig'
|
'prod/Baskets/Update.html.twig'
|
||||||
, array('basket' => $basket)
|
, array('basket' => $basket)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
})->assert('basket_id', '\d+');
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the Basket reorder form
|
* Get the Basket reorder form
|
||||||
*/
|
*/
|
||||||
$controllers->get(
|
$controllers->get(
|
||||||
'/{basket_id}/reorder/'
|
'/{basket_id}/reorder/'
|
||||||
, function(Application $app, $basket_id)
|
, function(Application $app, $basket_id)
|
||||||
{
|
{
|
||||||
/* @var $em \Doctrine\ORM\EntityManager */
|
/* @var $em \Doctrine\ORM\EntityManager */
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
/* @var $twig \Twig_Environment */
|
/* @var $twig \Twig_Environment */
|
||||||
$twig = $app['Core']->getTwig();
|
$twig = $app['Core']->getTwig();
|
||||||
|
|
||||||
return new Response(
|
return new Response(
|
||||||
$twig->render(
|
$twig->render(
|
||||||
'prod/Baskets/Reorder.html.twig'
|
'prod/Baskets/Reorder.html.twig'
|
||||||
, array('basket' => $basket)
|
, array('basket' => $basket)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
})->assert('basket_id', '\d+');
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toggle the status of a Basket
|
* Toggle the status of a Basket
|
||||||
@@ -286,114 +286,114 @@ class Basket implements ControllerProviderInterface
|
|||||||
* @returns JSON / HTML
|
* @returns JSON / HTML
|
||||||
*/
|
*/
|
||||||
$controllers->post('/{basket_id}/archive/', function(Application $app, Request $request, $basket_id)
|
$controllers->post('/{basket_id}/archive/', function(Application $app, Request $request, $basket_id)
|
||||||
{
|
{
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
$archive_status = !!$request->get('archive');
|
$archive_status = !!$request->get('archive');
|
||||||
|
|
||||||
$basket->setArchived($archive_status);
|
$basket->setArchived($archive_status);
|
||||||
|
|
||||||
$em->merge($basket);
|
$em->merge($basket);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
if($archive_status)
|
if ($archive_status)
|
||||||
{
|
{
|
||||||
$message = _('Basket has been archived');
|
$message = _('Basket has been archived');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$message = _('Basket has been unarchived');
|
$message = _('Basket has been unarchived');
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'archive' => $archive_status
|
, 'archive' => $archive_status
|
||||||
, 'message' => $message
|
, 'message' => $message
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse('/');
|
return new RedirectResponse('/');
|
||||||
}
|
}
|
||||||
})->assert('basket_id', '\d+');
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a BasketElement to a basket
|
* Add a BasketElement to a basket
|
||||||
*/
|
*/
|
||||||
$controllers->post(
|
$controllers->post(
|
||||||
'/{basket_id}/addElements/'
|
'/{basket_id}/addElements/'
|
||||||
, function(Application $app, Request $request, $basket_id)
|
, function(Application $app, Request $request, $basket_id)
|
||||||
{
|
{
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
/* @var $user \User_Adapter */
|
/* @var $user \User_Adapter */
|
||||||
|
|
||||||
$n = 0;
|
$n = 0;
|
||||||
|
|
||||||
foreach (explode(';', $request->get('lst')) as $sbas_rec)
|
foreach (explode(';', $request->get('lst')) as $sbas_rec)
|
||||||
{
|
{
|
||||||
$sbas_rec = explode('_', $sbas_rec);
|
$sbas_rec = explode('_', $sbas_rec);
|
||||||
|
|
||||||
if (count($sbas_rec) !== 2)
|
if (count($sbas_rec) !== 2)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
$record = new \record_adapter($sbas_rec[0], $sbas_rec[1]);
|
$record = new \record_adapter($sbas_rec[0], $sbas_rec[1]);
|
||||||
|
|
||||||
if (!$user->ACL()->has_access_to_base($record->get_base_id())
|
if (!$user->ACL()->has_access_to_base($record->get_base_id())
|
||||||
&& !$user->ACL()->has_hd_grant($record)
|
&& !$user->ACL()->has_hd_grant($record)
|
||||||
&& !$user->ACL()->has_preview_grant($record))
|
&& !$user->ACL()->has_preview_grant($record))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($basket->hasRecord($record))
|
if ($basket->hasRecord($record))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
$basket_element = new \Entities\BasketElement();
|
$basket_element = new \Entities\BasketElement();
|
||||||
$basket_element->setRecord($record);
|
$basket_element->setRecord($record);
|
||||||
$basket_element->setBasket($basket);
|
$basket_element->setBasket($basket);
|
||||||
|
|
||||||
$em->persist($basket_element);
|
$em->persist($basket_element);
|
||||||
|
|
||||||
$basket->addBasketElement($basket_element);
|
$basket->addBasketElement($basket_element);
|
||||||
|
|
||||||
$n++;
|
$n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$em->merge($basket);
|
$em->merge($basket);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'message' => sprintf(_('%d records added'), $n)
|
, 'message' => sprintf(_('%d records added'), $n)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse('/');
|
return new RedirectResponse('/');
|
||||||
}
|
}
|
||||||
})->assert('basket_id', '\d+');
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -406,91 +406,96 @@ class Basket implements ControllerProviderInterface
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$controllers->post(
|
$controllers->post(
|
||||||
'/{basket_id}/stealElements/'
|
'/{basket_id}/stealElements/'
|
||||||
, function(Application $app, Request $request, $basket_id)
|
, function(Application $app, Request $request, $basket_id)
|
||||||
{
|
{
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
/* @var $em \Doctrine\ORM\EntityManager */
|
/* @var $em \Doctrine\ORM\EntityManager */
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
/* @var $user \User_Adapter */
|
/* @var $user \User_Adapter */
|
||||||
|
|
||||||
$n = 0;
|
$n = 0;
|
||||||
|
|
||||||
foreach ($request->get('elements') as $bask_element_id)
|
foreach ($request->get('elements') as $bask_element_id)
|
||||||
{
|
{
|
||||||
$basket_element = $em->getRepository('\Entities\BasketElement')
|
$basket_element = $em->getRepository('\Entities\BasketElement')
|
||||||
->findUserElement($bask_element_id, $user);
|
->findUserElement($bask_element_id, $user);
|
||||||
|
|
||||||
if (!$basket_element)
|
if (!$basket_element)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$basket_element->setBasket($basket);
|
$basket_element->setBasket($basket);
|
||||||
|
|
||||||
$em->merge($basket_element);
|
$em->merge($basket_element);
|
||||||
|
|
||||||
$n++;
|
$n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$em->merge($basket);
|
$em->merge($basket);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'message' => sprintf(_('%d records moved'), $n)
|
, 'message' => sprintf(_('%d records moved'), $n)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse('/');
|
return new RedirectResponse('/');
|
||||||
}
|
}
|
||||||
})->assert('basket_id', '\d+');
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get basket creation form
|
* Get basket creation form
|
||||||
*/
|
*/
|
||||||
$controllers->get('/create/', function(Application $app)
|
$controllers->get('/create/', function(Application $app)
|
||||||
{
|
{
|
||||||
/* @var $twig \Twig_Environment */
|
/* @var $twig \Twig_Environment */
|
||||||
$twig = $app['Core']->getTwig();
|
$twig = $app['Core']->getTwig();
|
||||||
|
|
||||||
return new Response($twig->render('prod/Baskets/Create.html.twig', array()));
|
return new Response($twig->render('prod/Baskets/Create.html.twig', array()));
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a basket
|
* Get a basket
|
||||||
*/
|
*/
|
||||||
$controllers->get('/{basket_id}/', function(Application $app, $basket_id)
|
$controllers->get('/{basket_id}/', function(Application $app, Request $request, $basket_id)
|
||||||
{
|
{
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
$basket->setIsRead(true);
|
$basket->setIsRead(true);
|
||||||
|
|
||||||
$em->merge($basket);
|
$em->merge($basket);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
/* @var $twig \Twig_Environment */
|
/* @var $twig \Twig_Environment */
|
||||||
$twig = $app['Core']->getTwig();
|
$twig = $app['Core']->getTwig();
|
||||||
|
|
||||||
$html = $twig->render('prod/WorkZone/Basket.html.twig', array('basket' => $basket));
|
$params = array(
|
||||||
|
'basket' => $basket,
|
||||||
|
'ordre' => $request->get('ordre')
|
||||||
|
);
|
||||||
|
|
||||||
return new Response($html);
|
$html = $twig->render('prod/WorkZone/Basket.html.twig', $params);
|
||||||
})->assert('basket_id', '\d+');
|
|
||||||
|
return new Response($html);
|
||||||
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
return $controllers;
|
return $controllers;
|
||||||
}
|
}
|
||||||
|
@@ -89,8 +89,9 @@ class Language implements ControllerProviderInterface
|
|||||||
$out['sureToRemoveList'] = _('Are you sure you want to delete this list ?');
|
$out['sureToRemoveList'] = _('Are you sure you want to delete this list ?');
|
||||||
$out['newListName'] = _('New list name ?');
|
$out['newListName'] = _('New list name ?');
|
||||||
$out['listNameCannotBeEmpty'] = _('List name can not be empty');
|
$out['listNameCannotBeEmpty'] = _('List name can not be empty');
|
||||||
|
$out['FeedBackName'] = _('Name');
|
||||||
|
$out['FeedBackMessage'] = _('Message');
|
||||||
|
$out['FeedBackNoUsersSelected'] = _('No users selected');
|
||||||
|
|
||||||
$Serializer = $app['Core']['Serializer'];
|
$Serializer = $app['Core']['Serializer'];
|
||||||
|
|
||||||
|
@@ -64,6 +64,7 @@ class Push implements ControllerProviderInterface
|
|||||||
'type' => 'LIST'
|
'type' => 'LIST'
|
||||||
, 'list_id' => $List->getId()
|
, 'list_id' => $List->getId()
|
||||||
, 'name' => $List->getName()
|
, 'name' => $List->getName()
|
||||||
|
, 'length' => count($entries)
|
||||||
, 'entries' => $entries
|
, 'entries' => $entries
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -90,7 +91,7 @@ class Push implements ControllerProviderInterface
|
|||||||
'lists' => $repository->findUserLists($app['Core']->getAuthenticatedUser())
|
'lists' => $repository->findUserLists($app['Core']->getAuthenticatedUser())
|
||||||
);
|
);
|
||||||
|
|
||||||
$template = 'prod/actions/Feedback.html.twig';
|
$template = 'prod/actions/Push.html.twig';
|
||||||
|
|
||||||
/* @var $twig \Twig_Environment */
|
/* @var $twig \Twig_Environment */
|
||||||
$twig = $app['Core']->getTwig();
|
$twig = $app['Core']->getTwig();
|
||||||
@@ -145,7 +146,7 @@ class Push implements ControllerProviderInterface
|
|||||||
|
|
||||||
$push_description = $request->get('push_description');
|
$push_description = $request->get('push_description');
|
||||||
|
|
||||||
$receivers = $request->get('receivers');
|
$receivers = $request->get('participants');
|
||||||
|
|
||||||
if (!is_array($receivers) || count($receivers) === 0)
|
if (!is_array($receivers) || count($receivers) === 0)
|
||||||
{
|
{
|
||||||
@@ -209,7 +210,7 @@ class Push implements ControllerProviderInterface
|
|||||||
$message = sprintf(
|
$message = sprintf(
|
||||||
_('%1$d records have been sent to %2$d users')
|
_('%1$d records have been sent to %2$d users')
|
||||||
, count($pusher->get_elements())
|
, count($pusher->get_elements())
|
||||||
, count($request->get('receivers'))
|
, count($receivers)
|
||||||
);
|
);
|
||||||
|
|
||||||
$ret = array(
|
$ret = array(
|
||||||
@@ -286,11 +287,11 @@ class Push implements ControllerProviderInterface
|
|||||||
|
|
||||||
$em->persist($BasketElement);
|
$em->persist($BasketElement);
|
||||||
}
|
}
|
||||||
|
//
|
||||||
$em->flush();
|
// $em->flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
$em->refresh($Basket);
|
// $em->refresh($Basket);
|
||||||
|
|
||||||
if (!$Basket->getValidation())
|
if (!$Basket->getValidation())
|
||||||
{
|
{
|
||||||
@@ -309,7 +310,7 @@ class Push implements ControllerProviderInterface
|
|||||||
|
|
||||||
$appbox = \appbox::get_instance();
|
$appbox = \appbox::get_instance();
|
||||||
|
|
||||||
foreach ($participants as $participant)
|
foreach ($participants as $key=>$participant)
|
||||||
{
|
{
|
||||||
foreach (array('see_others', 'usr_id', 'agree', 'HD') as $mandatoryparam)
|
foreach (array('see_others', 'usr_id', 'agree', 'HD') as $mandatoryparam)
|
||||||
{
|
{
|
||||||
@@ -386,7 +387,7 @@ class Push implements ControllerProviderInterface
|
|||||||
$message = sprintf(
|
$message = sprintf(
|
||||||
_('%1$d records have been sent for validation to %2$d users')
|
_('%1$d records have been sent for validation to %2$d users')
|
||||||
, count($pusher->get_elements())
|
, count($pusher->get_elements())
|
||||||
, count($request->get('$participants'))
|
, count($request->get('participants'))
|
||||||
);
|
);
|
||||||
|
|
||||||
$ret = array(
|
$ret = array(
|
||||||
@@ -597,6 +598,79 @@ class Push implements ControllerProviderInterface
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$controllers->match('/edit-list/{list_id}/', function(Application $app, Request $request, $list_id)
|
||||||
|
{
|
||||||
|
|
||||||
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
|
$repository = $em->getRepository('\Entities\UsrList');
|
||||||
|
|
||||||
|
$list = $repository->findUserListByUserAndId($user, $list_id);
|
||||||
|
|
||||||
|
$query = new \User_Query(\appbox::get_instance());
|
||||||
|
|
||||||
|
$query->on_bases_where_i_am($user->ACL(), array('canpush'));
|
||||||
|
|
||||||
|
if ($request->get('query'))
|
||||||
|
{
|
||||||
|
$query->like($request->get('like_field'), $request->get('query'))
|
||||||
|
->like_match(\User_Query::LIKE_MATCH_OR);
|
||||||
|
}
|
||||||
|
if (is_array($request->get('Activity')))
|
||||||
|
{
|
||||||
|
$query->haveActivities($request->get('Activity'));
|
||||||
|
}
|
||||||
|
if (is_array($request->get('Template')))
|
||||||
|
{
|
||||||
|
$query->haveTemplate($request->get('Template'));
|
||||||
|
}
|
||||||
|
if (is_array($request->get('Company')))
|
||||||
|
{
|
||||||
|
$query->inCompanies($request->get('Company'));
|
||||||
|
}
|
||||||
|
if (is_array($request->get('Country')))
|
||||||
|
{
|
||||||
|
$query->inCountries($request->get('Country'));
|
||||||
|
}
|
||||||
|
if (is_array($request->get('Position')))
|
||||||
|
{
|
||||||
|
$query->havePositions($request->get('Position'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$sort = $request->get('srt', 'usr_creationdate');
|
||||||
|
$ord = $request->get('ord', 'desc');
|
||||||
|
|
||||||
|
$query->sort_by($sort, $ord);
|
||||||
|
|
||||||
|
$results = $query->include_phantoms()
|
||||||
|
->limit(0, 10)
|
||||||
|
->execute()->get_results();
|
||||||
|
|
||||||
|
$params = array(
|
||||||
|
'query' => $query
|
||||||
|
, 'results' => $results
|
||||||
|
, 'list' => $list
|
||||||
|
, 'sort' => $sort
|
||||||
|
, 'ord' => $ord
|
||||||
|
);
|
||||||
|
|
||||||
|
if($request->get('type') === 'fragment')
|
||||||
|
{
|
||||||
|
return new Response(
|
||||||
|
$app['Core']->getTwig()->render('prod/actions/Feedback/ResultTable.html.twig', $params)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return new Response(
|
||||||
|
$app['Core']->getTwig()->render('prod/actions/Feedback/list.html.twig', $params)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)->assert('list_id', '\d+');
|
||||||
|
|
||||||
return $controllers;
|
return $controllers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -198,91 +198,56 @@ class UsrLists implements ControllerProviderInterface
|
|||||||
$controllers->get('/list/{list_id}/', function(Application $app, Request $request, $list_id)
|
$controllers->get('/list/{list_id}/', function(Application $app, Request $request, $list_id)
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = array(
|
|
||||||
'success' => false
|
|
||||||
, 'message' => ''
|
|
||||||
, 'result' => null
|
|
||||||
);
|
|
||||||
|
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
try
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
|
$repository = $em->getRepository('\Entities\UsrList');
|
||||||
|
|
||||||
|
$list = $repository->findUserListByUserAndId($user, $list_id);
|
||||||
|
|
||||||
|
$entries = new \Doctrine\Common\Collections\ArrayCollection();
|
||||||
|
$owners = new \Doctrine\Common\Collections\ArrayCollection();
|
||||||
|
|
||||||
|
foreach ($list->getOwners() as $owner)
|
||||||
{
|
{
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$owners[] = array(
|
||||||
$em = $app['Core']->getEntityManager();
|
'usr_id' => $owner->getUser()->get_id(),
|
||||||
|
'display_name' => $owner->getUser()->get_display_name(),
|
||||||
$repository = $em->getRepository('\Entities\UsrList');
|
'position' => $owner->getUser()->get_position(),
|
||||||
|
'job' => $owner->getUser()->get_job(),
|
||||||
$list = $repository->findUserListByUserAndId($user, $list_id);
|
'company' => $owner->getUser()->get_company(),
|
||||||
|
'email' => $owner->getUser()->get_email(),
|
||||||
$entries = new \Doctrine\Common\Collections\ArrayCollection();
|
'role' => $owner->getRole()
|
||||||
$owners = new \Doctrine\Common\Collections\ArrayCollection();
|
|
||||||
|
|
||||||
foreach ($list->getOwners() as $owner)
|
|
||||||
{
|
|
||||||
$owners[] = array(
|
|
||||||
'usr_id' => $owner->getUser()->get_id(),
|
|
||||||
'display_name' => $owner->getUser()->get_display_name(),
|
|
||||||
'position' => $owner->getUser()->get_position(),
|
|
||||||
'job' => $owner->getUser()->get_job(),
|
|
||||||
'company' => $owner->getUser()->get_company(),
|
|
||||||
'email' => $owner->getUser()->get_email(),
|
|
||||||
'role' => $owner->getRole()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($list->getEntries() as $entry)
|
|
||||||
{
|
|
||||||
$entries[] = array(
|
|
||||||
'usr_id' => $entry->getUser()->get_id(),
|
|
||||||
'display_name' => $entry->getUser()->get_display_name(),
|
|
||||||
'position' => $entry->getUser()->get_position(),
|
|
||||||
'job' => $entry->getUser()->get_job(),
|
|
||||||
'company' => $entry->getUser()->get_company(),
|
|
||||||
'email' => $entry->getUser()->get_email(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* @var $list \Entities\UsrList */
|
|
||||||
$result = array(
|
|
||||||
'id' => $list->getId(),
|
|
||||||
'name' => $list->getName(),
|
|
||||||
'created' => $list->getCreated()->format(DATE_ATOM),
|
|
||||||
'updated' => $list->getUpdated()->format(DATE_ATOM),
|
|
||||||
'owners' => $owners,
|
|
||||||
'users' => $entries
|
|
||||||
);
|
|
||||||
|
|
||||||
$datas = array(
|
|
||||||
'success' => true
|
|
||||||
, 'message' => ''
|
|
||||||
, 'result' => $result
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
catch (ControllerException $e)
|
|
||||||
|
foreach ($list->getEntries() as $entry)
|
||||||
{
|
{
|
||||||
$datas = array(
|
$entries[] = array(
|
||||||
'success' => false
|
'usr_id' => $entry->getUser()->get_id(),
|
||||||
, 'message' => $e->getMessage()
|
'display_name' => $entry->getUser()->get_display_name(),
|
||||||
|
'position' => $entry->getUser()->get_position(),
|
||||||
|
'job' => $entry->getUser()->get_job(),
|
||||||
|
'company' => $entry->getUser()->get_company(),
|
||||||
|
'email' => $entry->getUser()->get_email(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
catch (\Exception $e)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
/* @var $list \Entities\UsrList */
|
||||||
{
|
$result = array(
|
||||||
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
'id' => $list->getId(),
|
||||||
|
'name' => $list->getName(),
|
||||||
|
'created' => $list->getCreated()->format(DATE_ATOM),
|
||||||
|
'updated' => $list->getUpdated()->format(DATE_ATOM),
|
||||||
|
'owners' => $owners,
|
||||||
|
'users' => $entries
|
||||||
|
);
|
||||||
|
|
||||||
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
return new Response($app['Core']->getTwig()->render('prod/actions/Feedback/list.html.twig', $result));
|
return new Response($app['Core']->getTwig()->render('prod/actions/Feedback/list.html.twig', $result));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -290,34 +255,34 @@ class UsrLists implements ControllerProviderInterface
|
|||||||
* Update a list
|
* Update a list
|
||||||
*/
|
*/
|
||||||
$controllers->post('/list/{list_id}/update/', function(Application $app, $list_id)
|
$controllers->post('/list/{list_id}/update/', function(Application $app, $list_id)
|
||||||
{
|
{
|
||||||
$request = $app['request'];
|
$request = $app['request'];
|
||||||
|
|
||||||
$datas = array(
|
$datas = array(
|
||||||
'success' => false
|
'success' => false
|
||||||
, 'message' => _('Unable to update list')
|
, 'message' => _('Unable to update list')
|
||||||
);
|
);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$list_name = $request->get('name');
|
$list_name = $request->get('name');
|
||||||
|
|
||||||
if (!$list_name)
|
if (!$list_name)
|
||||||
{
|
{
|
||||||
throw new ControllerException(_('List name is required'));
|
throw new ControllerException(_('List name is required'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$repository = $em->getRepository('\Entities\UsrList');
|
$repository = $em->getRepository('\Entities\UsrList');
|
||||||
|
|
||||||
$list = $repository->findUserListByUserAndId($user, $list_id);
|
$list = $repository->findUserListByUserAndId($user, $list_id);
|
||||||
|
|
||||||
$list->setName($list_name);
|
$list->setName($list_name);
|
||||||
|
|
||||||
$em->merge($list);
|
$em->merge($list);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$datas = array(
|
$datas = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
@@ -336,29 +301,29 @@ class UsrLists implements ControllerProviderInterface
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
||||||
|
|
||||||
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
||||||
}
|
}
|
||||||
)->assert('list_id', '\d+');
|
)->assert('list_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a list
|
* Delete a list
|
||||||
*/
|
*/
|
||||||
$controllers->post('/list/{list_id}/delete/', function(Application $app, $list_id)
|
$controllers->post('/list/{list_id}/delete/', function(Application $app, $list_id)
|
||||||
{
|
{
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$repository = $em->getRepository('\Entities\UsrList');
|
$repository = $em->getRepository('\Entities\UsrList');
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
|
|
||||||
$list = $repository->findUserListByUserAndId($user, $list_id);
|
$list = $repository->findUserListByUserAndId($user, $list_id);
|
||||||
|
|
||||||
$em->remove($list);
|
$em->remove($list);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$datas = array(
|
$datas = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
@@ -375,16 +340,16 @@ class UsrLists implements ControllerProviderInterface
|
|||||||
catch (\Exception $e)
|
catch (\Exception $e)
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = array(
|
$datas = array(
|
||||||
'success' => false
|
'success' => false
|
||||||
, 'message' => sprintf(_('Unable to delete list'))
|
, 'message' => sprintf(_('Unable to delete list'))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
||||||
|
|
||||||
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
||||||
}
|
}
|
||||||
)->assert('list_id', '\d+');
|
)->assert('list_id', '\d+');
|
||||||
|
|
||||||
|
|
||||||
@@ -395,21 +360,21 @@ class UsrLists implements ControllerProviderInterface
|
|||||||
{
|
{
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$repository = $em->getRepository('\Entities\UsrList');
|
$repository = $em->getRepository('\Entities\UsrList');
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
|
|
||||||
$list = $repository->findUserListByUserAndId($user, $list_id);
|
$list = $repository->findUserListByUserAndId($user, $list_id);
|
||||||
/* @var $list \Entities\UsrList */
|
/* @var $list \Entities\UsrList */
|
||||||
|
|
||||||
$entry_repository = $em->getRepository('\Entities\UsrListEntry');
|
$entry_repository = $em->getRepository('\Entities\UsrListEntry');
|
||||||
|
|
||||||
$user_entry = $entry_repository->findEntryByListAndUsrId($list, $usr_id);
|
$user_entry = $entry_repository->findEntryByListAndUsrId($list, $usr_id);
|
||||||
|
|
||||||
$em->remove($user_entry);
|
$em->remove($user_entry);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$datas = array(
|
$datas = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
@@ -432,10 +397,10 @@ class UsrLists implements ControllerProviderInterface
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
||||||
|
|
||||||
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
||||||
}
|
}
|
||||||
)->assert('list_id', '\d+')->assert('entry_id', '\d+');
|
)->assert('list_id', '\d+')->assert('entry_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -479,7 +444,7 @@ class UsrLists implements ControllerProviderInterface
|
|||||||
$inserted_usr_ids[] = $user_entry->get_id();
|
$inserted_usr_ids[] = $user_entry->get_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
if (count($inserted_usr_ids) > 1)
|
if (count($inserted_usr_ids) > 1)
|
||||||
{
|
{
|
||||||
@@ -508,16 +473,16 @@ class UsrLists implements ControllerProviderInterface
|
|||||||
catch (\Exception $e)
|
catch (\Exception $e)
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = array(
|
$datas = array(
|
||||||
'success' => false
|
'success' => false
|
||||||
, 'message' => _('Unable to add usr to list')
|
, 'message' => _('Unable to add usr to list')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
$Json = $app['Core']['Serializer']->serialize($datas, 'json');
|
||||||
|
|
||||||
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
return new Response($Json, 200, array('Content-Type' => 'application/json'));
|
||||||
}
|
}
|
||||||
)->assert('list_id', '\d+')->assert('usr_id', '\d+');
|
)->assert('list_id', '\d+')->assert('usr_id', '\d+');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -36,232 +36,232 @@ class WorkZone implements ControllerProviderInterface
|
|||||||
$controllers = new ControllerCollection();
|
$controllers = new ControllerCollection();
|
||||||
|
|
||||||
$controllers->get('/', function(Application $app)
|
$controllers->get('/', function(Application $app)
|
||||||
{
|
{
|
||||||
$params = array(
|
$params = array(
|
||||||
'WorkZone' => new Helper\WorkZone($app['Core'], $app['request'])
|
'WorkZone' => new Helper\WorkZone($app['Core'], $app['request'])
|
||||||
, 'selected_type' => $app['request']->get('type')
|
, 'selected_type' => $app['request']->get('type')
|
||||||
, 'selected_id' => $app['request']->get('id')
|
, 'selected_id' => $app['request']->get('id')
|
||||||
, 'srt' => $app['request']->get('sort')
|
, 'srt' => $app['request']->get('sort')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
return new Response($app['Core']->getTwig()->render('prod/WorkZone/WorkZone.html.twig', $params));
|
return new Response($app['Core']->getTwig()->render('prod/WorkZone/WorkZone.html.twig', $params));
|
||||||
});
|
});
|
||||||
|
|
||||||
$controllers->get('/Browse/', function(Application $app)
|
$controllers->get('/Browse/', function(Application $app)
|
||||||
{
|
{
|
||||||
$date_obj = new \DateTime();
|
$date_obj = new \DateTime();
|
||||||
|
|
||||||
$params = array(
|
$params = array(
|
||||||
'CurrentYear' => $date_obj->format('Y')
|
'CurrentYear' => $date_obj->format('Y')
|
||||||
);
|
);
|
||||||
|
|
||||||
return new Response(
|
return new Response(
|
||||||
$app['Core']->getTwig()->render('prod/WorkZone/Browser/Browser.html.twig'
|
$app['Core']->getTwig()->render('prod/WorkZone/Browser/Browser.html.twig'
|
||||||
, $params
|
, $params
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
$controllers->get('/Browse/Search/', function(Application $app)
|
$controllers->get('/Browse/Search/', function(Application $app)
|
||||||
{
|
{
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
|
|
||||||
$request = $app['request'];
|
$request = $app['request'];
|
||||||
|
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
/* @var $em \Doctrine\ORM\EntityManager */
|
/* @var $em \Doctrine\ORM\EntityManager */
|
||||||
|
|
||||||
$BasketRepo = $em->getRepository('\Entities\Basket');
|
$BasketRepo = $em->getRepository('\Entities\Basket');
|
||||||
|
|
||||||
$Page = (int) $request->get('Page', 0);
|
$Page = (int) $request->get('Page', 0);
|
||||||
|
|
||||||
$PerPage = 10;
|
$PerPage = 10;
|
||||||
$offsetStart = max(($Page - 1) * $PerPage, 0);
|
$offsetStart = max(($Page - 1) * $PerPage, 0);
|
||||||
|
|
||||||
|
|
||||||
$Baskets = $BasketRepo->findWorkzoneBasket(
|
$Baskets = $BasketRepo->findWorkzoneBasket(
|
||||||
$user
|
$user
|
||||||
, $request->get('Query')
|
, $request->get('Query')
|
||||||
, $request->get('Year')
|
, $request->get('Year')
|
||||||
, $request->get('Type')
|
, $request->get('Type')
|
||||||
, $offsetStart
|
, $offsetStart
|
||||||
, $PerPage
|
, $PerPage
|
||||||
);
|
);
|
||||||
|
|
||||||
$page = floor($offsetStart / $PerPage) + 1;
|
$page = floor($offsetStart / $PerPage) + 1;
|
||||||
$maxPage = floor($Baskets['count'] / $PerPage) + 1;
|
$maxPage = floor($Baskets['count'] / $PerPage) + 1;
|
||||||
|
|
||||||
|
|
||||||
$params = array(
|
$params = array(
|
||||||
'Baskets' => $Baskets['result']
|
'Baskets' => $Baskets['result']
|
||||||
, 'Page' => $page
|
, 'Page' => $page
|
||||||
, 'MaxPage' => $maxPage
|
, 'MaxPage' => $maxPage
|
||||||
, 'Total' => $Baskets['count']
|
, 'Total' => $Baskets['count']
|
||||||
, 'Query' => $request->get('Query')
|
, 'Query' => $request->get('Query')
|
||||||
, 'Year' => $request->get('Year')
|
, 'Year' => $request->get('Year')
|
||||||
, 'Type' => $request->get('Type')
|
, 'Type' => $request->get('Type')
|
||||||
);
|
);
|
||||||
|
|
||||||
return new Response($app['Core']->getTwig()->render('prod/WorkZone/Browser/Results.html.twig', $params));
|
return new Response($app['Core']->getTwig()->render('prod/WorkZone/Browser/Results.html.twig', $params));
|
||||||
});
|
});
|
||||||
|
|
||||||
$controllers->get('/Browse/Basket/{basket_id}/', function(Application $app, $basket_id)
|
$controllers->get('/Browse/Basket/{basket_id}/', function(Application $app, Request $request, $basket_id)
|
||||||
{
|
{
|
||||||
|
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$basket = $em->getRepository('\Entities\Basket')
|
$basket = $em->getRepository('\Entities\Basket')
|
||||||
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser());
|
||||||
|
|
||||||
$params = array(
|
$params = array(
|
||||||
'Basket' => $basket
|
'Basket' => $basket
|
||||||
);
|
);
|
||||||
|
|
||||||
return new Response($app['Core']->getTwig()->render('prod/WorkZone/Browser/Basket.html.twig', $params));
|
return new Response($app['Core']->getTwig()->render('prod/WorkZone/Browser/Basket.html.twig', $params));
|
||||||
})->assert('basket_id', '\d+');
|
})->assert('basket_id', '\d+');
|
||||||
|
|
||||||
|
|
||||||
$controllers->post(
|
$controllers->post(
|
||||||
'/attachStories/'
|
'/attachStories/'
|
||||||
, function(Application $app, Request $request)
|
, function(Application $app, Request $request)
|
||||||
{
|
{
|
||||||
if (!$request->get('stories'))
|
if (!$request->get('stories'))
|
||||||
throw new \Exception_BadRequest();
|
throw new \Exception_BadRequest();
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
|
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
/* @var $em \Doctrine\ORM\EntityManager */
|
/* @var $em \Doctrine\ORM\EntityManager */
|
||||||
|
|
||||||
$StoryWZRepo = $em->getRepository('\Entities\StoryWZ');
|
$StoryWZRepo = $em->getRepository('\Entities\StoryWZ');
|
||||||
|
|
||||||
$alreadyFixed = $done = 0;
|
$alreadyFixed = $done = 0;
|
||||||
|
|
||||||
foreach (explode(';', $request->get('stories')) as $element)
|
foreach (explode(';', $request->get('stories')) as $element)
|
||||||
{
|
{
|
||||||
$element = explode('_', $element);
|
$element = explode('_', $element);
|
||||||
$Story = new \record_adapter($element[0], $element[1]);
|
$Story = new \record_adapter($element[0], $element[1]);
|
||||||
|
|
||||||
if (!$Story->is_grouping())
|
if (!$Story->is_grouping())
|
||||||
throw new \Exception('You can only attach stories');
|
throw new \Exception('You can only attach stories');
|
||||||
|
|
||||||
if (!$user->ACL()->has_access_to_base($Story->get_base_id()))
|
if (!$user->ACL()->has_access_to_base($Story->get_base_id()))
|
||||||
throw new \Exception_Forbidden('You do not have access to this Story');
|
throw new \Exception_Forbidden('You do not have access to this Story');
|
||||||
|
|
||||||
|
|
||||||
if ($StoryWZRepo->findUserStory($user, $Story))
|
if ($StoryWZRepo->findUserStory($user, $Story))
|
||||||
{
|
{
|
||||||
$alreadyFixed++;
|
$alreadyFixed++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$StoryWZ = new \Entities\StoryWZ();
|
$StoryWZ = new \Entities\StoryWZ();
|
||||||
$StoryWZ->setUser($user);
|
$StoryWZ->setUser($user);
|
||||||
$StoryWZ->setRecord($Story);
|
$StoryWZ->setRecord($Story);
|
||||||
|
|
||||||
$em->persist($StoryWZ);
|
$em->persist($StoryWZ);
|
||||||
$done++;
|
$done++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
if ($alreadyFixed === 0)
|
if ($alreadyFixed === 0)
|
||||||
{
|
{
|
||||||
if ($done <= 1)
|
if ($done <= 1)
|
||||||
{
|
{
|
||||||
$message = sprintf(
|
$message = sprintf(
|
||||||
_('%d Story attached to the WorkZone')
|
_('%d Story attached to the WorkZone')
|
||||||
, $done
|
, $done
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$message = sprintf(
|
$message = sprintf(
|
||||||
_('%d Stories attached to the WorkZone')
|
_('%d Stories attached to the WorkZone')
|
||||||
, $done
|
, $done
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($done <= 1)
|
if ($done <= 1)
|
||||||
{
|
{
|
||||||
$message = sprintf(
|
$message = sprintf(
|
||||||
_('%1$d Story attached to the WorkZone, %2$d already attached')
|
_('%1$d Story attached to the WorkZone, %2$d already attached')
|
||||||
, $done
|
, $done
|
||||||
, $alreadyFixed
|
, $alreadyFixed
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$message = sprintf(
|
$message = sprintf(
|
||||||
_('%1$d Stories attached to the WorkZone, %2$d already attached')
|
_('%1$d Stories attached to the WorkZone, %2$d already attached')
|
||||||
, $done
|
, $done
|
||||||
, $alreadyFixed
|
, $alreadyFixed
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'message' => $message
|
, 'message' => $message
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
|
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse('/{sbas_id}/{record_id}/');
|
return new RedirectResponse('/{sbas_id}/{record_id}/');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$controllers->post(
|
$controllers->post(
|
||||||
'/detachStory/{sbas_id}/{record_id}/'
|
'/detachStory/{sbas_id}/{record_id}/'
|
||||||
, function(Application $app, Request $request, $sbas_id, $record_id)
|
, function(Application $app, Request $request, $sbas_id, $record_id)
|
||||||
{
|
{
|
||||||
$Story = new \record_adapter($sbas_id, $record_id);
|
$Story = new \record_adapter($sbas_id, $record_id);
|
||||||
|
|
||||||
$user = $app['Core']->getAuthenticatedUser();
|
$user = $app['Core']->getAuthenticatedUser();
|
||||||
|
|
||||||
$em = $app['Core']->getEntityManager();
|
$em = $app['Core']->getEntityManager();
|
||||||
|
|
||||||
$repository = $em->getRepository('\Entities\StoryWZ');
|
$repository = $em->getRepository('\Entities\StoryWZ');
|
||||||
|
|
||||||
/* @var $repository \Repositories\StoryWZRepository */
|
/* @var $repository \Repositories\StoryWZRepository */
|
||||||
$StoryWZ = $repository->findUserStory($user, $Story);
|
$StoryWZ = $repository->findUserStory($user, $Story);
|
||||||
|
|
||||||
if (!$StoryWZ)
|
if (!$StoryWZ)
|
||||||
{
|
{
|
||||||
throw new \Exception_NotFound('Story not found');
|
throw new \Exception_NotFound('Story not found');
|
||||||
}
|
}
|
||||||
$em->remove($StoryWZ);
|
$em->remove($StoryWZ);
|
||||||
|
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'success' => true
|
'success' => true
|
||||||
, 'message' => _('Story detached from the WorkZone')
|
, 'message' => _('Story detached from the WorkZone')
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($request->getRequestFormat() == 'json')
|
if ($request->getRequestFormat() == 'json')
|
||||||
{
|
{
|
||||||
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
$datas = $app['Core']['Serializer']->serialize($data, 'json');
|
||||||
|
|
||||||
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
return new Response($datas, 200, array('Content-type' => 'application/json'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new RedirectResponse('/');
|
return new RedirectResponse('/');
|
||||||
}
|
}
|
||||||
})->assert('sbas_id', '\d+')->assert('record_id', '\d+');
|
})->assert('sbas_id', '\d+')->assert('record_id', '\d+');
|
||||||
|
|
||||||
|
|
||||||
return $controllers;
|
return $controllers;
|
||||||
|
Reference in New Issue
Block a user