mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-09 19:13:26 +00:00
Refactor asket_adapter
This commit is contained in:
@@ -74,7 +74,14 @@ return call_user_func(
|
||||
|
||||
$twig = new supertwig();
|
||||
$twig->addFilter(array('nl2br' => 'nl2br'));
|
||||
$basket_element = basket_element_adapter::getInstance($sselcont_id);
|
||||
|
||||
$em = $app['Core']->getEntityManager();
|
||||
|
||||
/* @var $repository \Repositories\BasketElementRepository */
|
||||
$repository = $em->getRepository('\Entities\BasketElement');
|
||||
|
||||
$basket_element = $repository->findUserElement($sselcont_id, $app['Core']->getAuthenticatedUser());
|
||||
|
||||
$template = '/lightbox/note_form.twig';
|
||||
$output = $twig->render($template, array('basket_element' => $basket_element, 'module_name' => ''));
|
||||
|
||||
@@ -89,13 +96,18 @@ return call_user_func(
|
||||
|
||||
$browser = Browser::getInstance();
|
||||
|
||||
$em = $app['Core']->getEntityManager();
|
||||
|
||||
/* @var $repository \Repositories\BasketElementRepository */
|
||||
$repository = $em->getRepository('\Entities\BasketElement');
|
||||
|
||||
$BasketElement = $repository->findUserElement($sselcont_id, $app['Core']->getAuthenticatedUser());
|
||||
|
||||
if ($browser->isMobile())
|
||||
{
|
||||
$basket_element = basket_element_adapter::getInstance($sselcont_id);
|
||||
|
||||
$output = $twig->render('lightbox/basket_element.twig', array(
|
||||
'basket_element' => $basket_element,
|
||||
'module_name' => $basket_element->get_record()->get_title()
|
||||
'basket_element' => $BasketElement,
|
||||
'module_name' => $BasketElement->get_record()->get_title()
|
||||
)
|
||||
);
|
||||
|
||||
@@ -119,17 +131,6 @@ return call_user_func(
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
|
||||
|
||||
$em = $app['Core']->getEntityManager();
|
||||
|
||||
$repository = $em->getRepository('\Entities\BasketElement');
|
||||
/* @var $repository \Repositories\BasketElementRepository */
|
||||
|
||||
$BasketElement = $repository->findUserElement(
|
||||
$sselcont_id
|
||||
, $app['Core']->getAuthenticatedUser()
|
||||
);
|
||||
|
||||
|
||||
$Basket = $BasketElement->getBasket();
|
||||
|
||||
$ret = array();
|
||||
@@ -224,11 +225,6 @@ return call_user_func(
|
||||
, $app['Core']->getAuthenticatedUser()
|
||||
);
|
||||
|
||||
if ($basket->is_valid())
|
||||
{
|
||||
$basket->get_first_element()->load_users_infos();
|
||||
}
|
||||
|
||||
$twig = new supertwig();
|
||||
|
||||
$twig->addFilter(array('nl2br' => 'nl2br'));
|
||||
@@ -241,7 +237,7 @@ return call_user_func(
|
||||
$response = new Response($twig->render($template, array(
|
||||
'baskets_collection' => $basket_collection,
|
||||
'basket' => $basket,
|
||||
'local_title' => strip_tags($basket->get_name()),
|
||||
'local_title' => strip_tags($basket->getName()),
|
||||
'module' => 'lightbox',
|
||||
'module_name' => _('admin::monitor: module validation')
|
||||
)
|
||||
@@ -284,7 +280,7 @@ return call_user_func(
|
||||
$response = new Response($twig->render($template, array(
|
||||
'baskets_collection' => $basket_collection,
|
||||
'basket' => $basket,
|
||||
'local_title' => strip_tags($basket->get_name()),
|
||||
'local_title' => strip_tags($basket->getName()),
|
||||
'module' => 'lightbox',
|
||||
'module_name' => _('admin::monitor: module validation')
|
||||
)
|
||||
@@ -358,13 +354,20 @@ return call_user_func(
|
||||
$app->post('/ajax/SET_NOTE/{sselcont_id}/', function (Silex\Application $app, $sselcont_id)
|
||||
{
|
||||
$output = array('error' => true, 'datas' => _('Erreur lors de l\'enregistrement des donnees'));
|
||||
try
|
||||
{
|
||||
|
||||
$request = $app['request'];
|
||||
$note = $request->get('note');
|
||||
|
||||
$basket_element = basket_element_adapter::getInstance($sselcont_id);
|
||||
$basket_element->set_note($note);
|
||||
$em = $app['Core']->getEntityManager();
|
||||
|
||||
/* @var $repository \Repositories\BasketElementRepository */
|
||||
$repository = $em->getRepository('\Entities\BasketElement');
|
||||
|
||||
$basket_element = $repository->findUserElement($sselcont_id, $app['Core']->getAuthenticatedUser());
|
||||
|
||||
|
||||
$basket_element->getUserValidationDatas($app['Core']->getAuthenticatedUser())
|
||||
->setNote($note);
|
||||
$twig = new supertwig();
|
||||
$twig->addFilter(array('nl2br' => 'nl2br'));
|
||||
|
||||
@@ -384,11 +387,6 @@ return call_user_func(
|
||||
|
||||
$output = array('error' => false, 'datas' => $datas);
|
||||
}
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
return new Response('Bad Request : ' . $e->getMessage() . $e->getFile() . $e->getLine(), 400);
|
||||
}
|
||||
|
||||
$output = p4string::jsonencode($output);
|
||||
|
||||
|
@@ -114,11 +114,18 @@ return call_user_func(
|
||||
|
||||
if ($watermark)
|
||||
{
|
||||
if (basket_element_adapter::is_in_validation_session($record, $user))
|
||||
|
||||
$em = $app['Core']->getEntityManager();
|
||||
|
||||
$repository = $em->getRepository('\Entities\BasketElement');
|
||||
|
||||
/* @var $repository \Repositories\BasketElementRepository */
|
||||
|
||||
if ($repository->findReceivedValidationElementsByRecord($record, $user)->count() > 0)
|
||||
{
|
||||
$watermark = false;
|
||||
}
|
||||
elseif (basket_element_adapter::has_been_received($record, $user))
|
||||
elseif ($repository->findReceivedElementsByRecord($record, $user)->count() > 0)
|
||||
{
|
||||
$watermark = false;
|
||||
}
|
||||
@@ -161,14 +168,20 @@ return call_user_func(
|
||||
|
||||
if ($watermark)
|
||||
{
|
||||
if (basket_element_adapter::is_in_validation_session($record, $user))
|
||||
|
||||
$em = $app['Core']->getEntityManager();
|
||||
|
||||
$repository = $em->getRepository('\Entities\BasketElement');
|
||||
|
||||
if ($repository->findReceivedValidationElementsByRecord($record, $user)->count() > 0)
|
||||
{
|
||||
$watermark = false;
|
||||
}
|
||||
elseif (basket_element_adapter::has_been_received($record, $user))
|
||||
elseif ($repository->findReceivedElementsByRecord($record, $user)->count() > 0)
|
||||
{
|
||||
$watermark = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $deliver_content($session, $record, $subdef, $watermark, $stamp, $app);
|
||||
|
@@ -119,7 +119,6 @@ class Root implements ControllerProviderInterface
|
||||
'GV_defaultQuery_type' => $registry->get('GV_defaultQuery_type'),
|
||||
'GV_multiAndReport' => $registry->get('GV_multiAndReport'),
|
||||
'GV_thesaurus' => $registry->get('GV_thesaurus'),
|
||||
// 'basket_collection' => new \basketCollection($appbox, $user->get_id(), $srt),
|
||||
'cgus_agreement' => \databox_cgu::askAgreement(),
|
||||
'css' => $css,
|
||||
'feeds' => $feeds,
|
||||
|
@@ -106,6 +106,9 @@ class Helper extends \Alchemy\Phrasea\Helper\Helper
|
||||
parent::__construct($core);
|
||||
|
||||
$this->selection = new \set_selection();
|
||||
|
||||
$request = $core->getRequest();
|
||||
|
||||
$appbox = \appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
|
||||
|
@@ -46,6 +46,52 @@ class BasketElementRepository extends EntityRepository
|
||||
return $query->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param \record_adapter $record
|
||||
* @param \User_Adapter $user
|
||||
* @return \Doctrine\Common\Collections\ArrayCollection
|
||||
*/
|
||||
public function findReceivedElementsByRecord(\record_adapter $record, \User_Adapter $user)
|
||||
{
|
||||
$dql = 'SELECT e FROM Entities\BasketElement e
|
||||
JOIN e.basket b
|
||||
WHERE b.usr_id = :usr_id AND b.pusher_id IS NOT NULL
|
||||
AND e.record_id = :record_id AND e.sbas_id = :sbas_id';
|
||||
|
||||
$params = array(
|
||||
'sbas_id' => $record->get_sbas_id(),
|
||||
'record_id' => $record->get_record_id(),
|
||||
'usr_id' => $user->get_id()
|
||||
);
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameters($params);
|
||||
|
||||
return $query->getResult();
|
||||
}
|
||||
|
||||
public function findReceivedValidationElementsByRecord(\record_adapter $record, \User_Adapter $user)
|
||||
{
|
||||
$dql = 'SELECT e FROM Entities\BasketElement e
|
||||
JOIN e.basket b
|
||||
JOIN b.validation v
|
||||
JOIN v.participants p
|
||||
WHERE p.usr_id = :usr_id
|
||||
AND e.record_id = :record_id AND e.sbas_id = :sbas_id';
|
||||
|
||||
$params = array(
|
||||
'sbas_id' => $record->get_sbas_id(),
|
||||
'record_id' => $record->get_record_id(),
|
||||
'usr_id' => $user->get_id()
|
||||
);
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameters($params);
|
||||
|
||||
return $query->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param type $element_id
|
||||
|
@@ -39,6 +39,24 @@ class BasketRepository extends EntityRepository
|
||||
return $query->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all unread basket for a given user that are not marked as archived
|
||||
*
|
||||
* @param \User_Adapter $user
|
||||
* @return \Doctrine\Common\Collections\ArrayCollection
|
||||
*/
|
||||
public function findUnreadActiveByUser(\User_Adapter $user)
|
||||
{
|
||||
$dql = 'SELECT b FROM Entities\Basket b
|
||||
WHERE b.usr_id = :usr_id
|
||||
AND b.archived = false AND b.is_read = false';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameters(array('usr_id' => $user->get_id()));
|
||||
|
||||
return $query->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all baskets that are in validation session not expired and
|
||||
* where a specified user is participant (not owner)
|
||||
@@ -95,8 +113,7 @@ class BasketRepository extends EntityRepository
|
||||
WHERE e.record_id = :record_id AND e.sbas_id = e.sbas_id';
|
||||
|
||||
$params = array(
|
||||
'record_id' => $record->get_record_id(),
|
||||
'sbas_id' => $record->get_sbas_id()
|
||||
'record_id' => $record->get_record_id()
|
||||
);
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
|
@@ -585,16 +585,16 @@ class API_V1_adapter extends API_V1_Abstract
|
||||
*/
|
||||
protected function list_baskets($usr_id)
|
||||
{
|
||||
$basket_coll = new basketCollection($this->appbox, $usr_id);
|
||||
$em = $this->core->getEntityManager();
|
||||
$repo = $em->getRepository('\Entities\Basket');
|
||||
/* @var $repo \Repositories\BasketRepository */
|
||||
|
||||
$baskets = $repo->findActiveByUser($this->core->getAuthenticatedUser());
|
||||
|
||||
$ret = array();
|
||||
foreach ($basket_coll->get_baskets() as $basktype => $baskets)
|
||||
{
|
||||
if (!in_array($basktype, array('recept', 'baskets')))
|
||||
continue;
|
||||
|
||||
foreach ($baskets as $basket)
|
||||
$ret[$basket->get_ssel_id()] = $this->list_basket($basket);
|
||||
{
|
||||
$ret[$basket->getId()] = $this->list_basket($basket);
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,832 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Phraseanet
|
||||
*
|
||||
* (c) 2005-2010 Alchemy
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Basket
|
||||
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
|
||||
* @link www.phraseanet.com
|
||||
*/
|
||||
class basket_element_adapter implements cache_cacheableInterface
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
* @var Array
|
||||
*/
|
||||
protected $choices;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $is_validation_item = false;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $validate_id;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $my_agreement;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $my_note;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $avrAgree;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $avrDisAgree;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $sselcont_id;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $parent_record_id;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $ssel_id;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var record_adapter
|
||||
*/
|
||||
protected $record;
|
||||
protected $usr_id;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $_instance = array();
|
||||
|
||||
public function __construct($sselcont_id)
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$session = $appbox->get_session();
|
||||
$this->usr_id = $session->get_usr_id();
|
||||
$this->sselcont_id = (int) $sselcont_id;
|
||||
|
||||
$this->load();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
protected function load()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$datas = $this->get_data_from_cache();
|
||||
|
||||
$this->ssel_id = $datas['ssel_id'];
|
||||
$this->order = $datas['order'];
|
||||
$this->record = new record_adapter($datas['sbas_id'], $datas['record_id'], $this->order);
|
||||
$this->avrDisAgree = $datas['avrDisAgree'];
|
||||
$this->avrAgree = $datas['avrAgree'];
|
||||
$this->is_validation_item = $datas['is_validation_item'];
|
||||
$this->my_agreement = $datas['my_agreement'];
|
||||
$this->my_note = $datas['my_note'];
|
||||
$this->validate_id = $datas['validate_id'];
|
||||
$this->choices = $datas['choices'];
|
||||
$this->avrAgree = $datas['avrAgree'];
|
||||
$this->avrDisAgree = $datas['avrDisAgree'];
|
||||
|
||||
return $this;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
$sql = 'SELECT s.usr_id as owner, v.id as validate_id, v.can_see_others,
|
||||
c.base_id, c.record_id, c.ord, c.ssel_id, v.usr_id,
|
||||
d.agreement, d.note, d.updated_on
|
||||
FROM (sselcont c, ssel s)
|
||||
LEFT JOIN (validate v, validate_datas d)
|
||||
ON (d.sselcont_id = c.sselcont_id AND d.validate_id = v.id )
|
||||
WHERE s.ssel_id = c.ssel_id
|
||||
AND c.sselcont_id = :sselcont_id';
|
||||
|
||||
try
|
||||
{
|
||||
$conn = connection::getPDOConnection();
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':sselcont_id' => $this->sselcont_id));
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
$first = true;
|
||||
|
||||
|
||||
foreach ($rs as $row)
|
||||
{
|
||||
if ($row['validate_id'])
|
||||
{
|
||||
$this->is_validation_item = true;
|
||||
|
||||
if ($row['owner'] == $this->usr_id)
|
||||
$see_others = true;
|
||||
else
|
||||
$see_others = ($row['can_see_others'] == '1');
|
||||
|
||||
if (!$see_others)
|
||||
{
|
||||
if ($row['usr_id'] != $this->usr_id)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ($first)
|
||||
{
|
||||
$sbas_id = (int) phrasea::sbasFromBas($row['base_id']);
|
||||
$record_id = (int) $row['record_id'];
|
||||
$this->ssel_id = (int) $row['ssel_id'];
|
||||
$this->order = $number = (int) $row['ord'];
|
||||
|
||||
$this->record = new record_adapter($sbas_id, $record_id, $number);
|
||||
|
||||
if ($this->is_validation_item)
|
||||
{
|
||||
$this->choices = array();
|
||||
$this->avrAgree = 0;
|
||||
$this->avrDisAgree = 0;
|
||||
}
|
||||
|
||||
$first = false;
|
||||
}
|
||||
|
||||
if ($this->is_validation_item)
|
||||
{
|
||||
if ($row['usr_id'] == $this->usr_id)
|
||||
{
|
||||
$this->my_agreement = (int) $row['agreement'];
|
||||
$this->my_note = $row['note'];
|
||||
$this->validate_id = (int) $row['validate_id'];
|
||||
}
|
||||
$this->choices[$row['usr_id']] = array(
|
||||
'usr_id' => $row['usr_id'],
|
||||
'usr_name' => User_Adapter::getInstance($row['usr_id'], appbox::get_instance())->get_display_name(),
|
||||
'is_mine' => ($row['usr_id'] == $this->usr_id),
|
||||
'agreement' => $row['agreement'],
|
||||
'updated_on' => $row['updated_on'],
|
||||
'note' => $row['note']
|
||||
);
|
||||
$this->avrAgree += $row["agreement"] > 0 ? 1 : 0;
|
||||
$this->avrDisAgree += $row["agreement"] < 0 ? 1 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
$datas = array(
|
||||
'ssel_id' => $this->ssel_id
|
||||
, 'sbas_id' => (int) $sbas_id
|
||||
, 'record_id' => $record_id
|
||||
, 'order' => $this->order
|
||||
, 'is_validation_item' => $this->is_validation_item
|
||||
, 'my_agreement' => $this->my_agreement
|
||||
, 'my_note' => $this->my_note
|
||||
, 'validate_id' => $this->validate_id
|
||||
, 'choices' => $this->choices
|
||||
, 'avrAgree' => $this->avrAgree
|
||||
, 'avrDisAgree' => $this->avrDisAgree
|
||||
);
|
||||
|
||||
$this->set_data_to_cache($datas);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function get_record()
|
||||
{
|
||||
return $this->record;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_order()
|
||||
{
|
||||
return $this->order;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $number
|
||||
* @return basket_element_adapter
|
||||
*/
|
||||
public function set_order($order)
|
||||
{
|
||||
$this->order = (int) $order;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return basket_element_adapter
|
||||
*/
|
||||
public static function getInstance($sselcont_id)
|
||||
{
|
||||
if (!isset(self::$_instance[$sselcont_id]))
|
||||
{
|
||||
self::$_instance[$sselcont_id] = new self($sselcont_id);
|
||||
}
|
||||
|
||||
return array_key_exists($sselcont_id, self::$_instance) ? self::$_instance[$sselcont_id] : false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param basket_adapter $basket
|
||||
* @param int $base_id
|
||||
* @param int $record_id
|
||||
* @param int $parent_record_id
|
||||
* @param string $adjust_validation_datas
|
||||
* @param boolean $fixing
|
||||
* @return basket_element_adapter
|
||||
*/
|
||||
public static function create(basket_adapter $basket, $base_id, $record_id, $parent_record_id, $adjust_validation_datas, $fixing)
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$session = $appbox->get_session();
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
$sbas_id = phrasea::sbasFromBas($base_id);
|
||||
$record = new record_adapter($sbas_id, $record_id);
|
||||
|
||||
$ssel_id = $basket->get_ssel_id();
|
||||
|
||||
if (!$user->ACL()->has_right_on_base($base_id, 'canputinalbum'))
|
||||
throw new Exception('You do not have rights' .
|
||||
' to use this document in basket.');
|
||||
|
||||
$exists = false;
|
||||
|
||||
$sql = 'SELECT sselcont_id FROM sselcont
|
||||
WHERE ssel_id = :ssel_id AND base_id = :base_id AND record_id = :record_id ';
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$params = array(
|
||||
':ssel_id' => $basket->get_ssel_id()
|
||||
, ':base_id' => $base_id
|
||||
, ':record_id' => $record_id
|
||||
);
|
||||
$stmt->execute($params);
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($row)
|
||||
{
|
||||
return new self($row['sselcont_id']);
|
||||
}
|
||||
|
||||
$connbas = connection::getPDOConnection($sbas_id);
|
||||
|
||||
if (!$sbas_id)
|
||||
throw new Exception('Unknown database');
|
||||
|
||||
if ($parent_record_id && $fixing === false)
|
||||
{
|
||||
if (!$user->ACL()->has_right_on_base($base_id, 'canaddrecord'))
|
||||
throw new Exception('You do not have the right');
|
||||
|
||||
if ($record->is_grouping())
|
||||
throw new Exception('Can\'t add grouping to grouping');
|
||||
|
||||
$ord = 0;
|
||||
$sql = "SELECT (max(ord)+1) as ord
|
||||
FROM regroup WHERE rid_parent = :parent_record_id";
|
||||
|
||||
$stmt = $connbas->prepare($sql);
|
||||
$stmt->execute(array(':parent_record_id' => $parent_record_id));
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($row)
|
||||
{
|
||||
$ord = is_null($row["ord"]) ? 0 : $row["ord"];
|
||||
}
|
||||
else
|
||||
{
|
||||
$ord = 0;
|
||||
}
|
||||
|
||||
$sql = 'INSERT INTO regroup (id, rid_parent, rid_child, dateadd, ord)
|
||||
VALUES (null, :parent_record_id, :record_id, NOW(), :ord)';
|
||||
|
||||
$params = array(
|
||||
':parent_record_id' => $parent_record_id
|
||||
, ':record_id' => $record_id
|
||||
, ':ord' => $ord
|
||||
);
|
||||
|
||||
$stmt = $connbas->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'UPDATE record SET moddate = NOW() WHERE record_id = :parent_record_id';
|
||||
$stmt = $connbas->prepare($sql);
|
||||
$stmt->execute(array(':parent_record_id' => $parent_record_id));
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
|
||||
$sql = 'SELECT max(ord) as ord FROM sselcont WHERE ssel_id = :ssel_id';
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute(array(':ssel_id' => $basket->get_ssel_id()));
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($row)
|
||||
{
|
||||
$ord = (int) $row['ord'] + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ord = 0;
|
||||
}
|
||||
|
||||
$sql = ' INSERT INTO sselcont
|
||||
(sselcont_id, ssel_id, base_id, record_id, ord)
|
||||
VALUES (null, :ssel_id, :base_id, :record_id, :ord) ';
|
||||
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$params = array(
|
||||
':ssel_id' => $basket->get_ssel_id()
|
||||
, ':base_id' => $base_id
|
||||
, ':record_id' => $record_id
|
||||
, ':ord' => $ord
|
||||
);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sselcont_id = $appbox->get_connection()->lastInsertId();
|
||||
|
||||
$ret['error'] = false;
|
||||
$ret['datas'][] = $sselcont_id;
|
||||
|
||||
$sql = 'UPDATE ssel SET updater=NOW() WHERE ssel_id = :ssel_id';
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute(array(':ssel_id' => $basket->get_ssel_id()));
|
||||
$stmt->closeCursor();
|
||||
|
||||
|
||||
if ($adjust_validation_datas == 'myvalid')
|
||||
{
|
||||
$sql = 'INSERT INTO validate_datas
|
||||
(SELECT distinct null as id, id as validate_id
|
||||
, :sselcont_id as sselcont_id
|
||||
, null as updated_on, 0 as agreement, "" as note
|
||||
FROM validate
|
||||
WHERE ssel_id = :ssel_id)';
|
||||
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute(array(':sselcont_id' => $sselcont_id, ':ssel_id' => $basket->get_ssel_id()));
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'SELECT usr_id FROM validate WHERE ssel_id = :ssel_id';
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute(array(':ssel_id' => $basket->get_ssel_id()));
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
foreach ($rs as $row)
|
||||
{
|
||||
if ($session->get_usr_id() != $row['usr_id'])
|
||||
{
|
||||
$basket->set_unread($row['usr_id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($parent_record_id)
|
||||
{
|
||||
$sql = 'SELECT null as id, ssel_id, usr_id
|
||||
FROM ssel
|
||||
WHERE usr_id != :usr_id AND rid = :parent_record_id
|
||||
AND sbas_id = :sbas_id AND temporaryType="1"';
|
||||
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$params = array(
|
||||
':usr_id' => $session->get_usr_id()
|
||||
, ':parent_record_id' => $parent_record_id
|
||||
, ':sbas_id' => $sbas_id
|
||||
);
|
||||
$stmt->execute($params);
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
foreach ($rs as $row)
|
||||
{
|
||||
$sql = 'SELECT max(ord) as ord FROM sselcont WHERE ssel_id = :ssel_id';
|
||||
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute(array(':ssel_id' => $row['ssel_id']));
|
||||
$row2 = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($row)
|
||||
{
|
||||
$ord = (int) $row2['ord'] + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ord = 0;
|
||||
}
|
||||
|
||||
$sqlUp = ' INSERT INTO sselcont
|
||||
(sselcont_id, ssel_id, base_id, record_id,ord)
|
||||
VALUES (null, :ssel_id, :base_id, :record_id, :ord) ';
|
||||
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$params = array(
|
||||
':ssel_id' => $row['ssel_id']
|
||||
, ':base_id' => $base_id
|
||||
, ':record_id' => $record_id
|
||||
, ':ord' => $ord
|
||||
);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'UPDATE ssel SET updater=NOW() WHERE ssel_id = :ssel_id';
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute(array(':ssel_id' => $row['ssel_id']));
|
||||
$stmt->closeCursor();
|
||||
|
||||
try
|
||||
{
|
||||
$basket_to_clean = basket_adapter::getInstance($appbox, $row['ssel_id'], $user->get_id());
|
||||
$basket_to_clean->set_unread($row['usr_id']);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$basket->delete_cache();
|
||||
|
||||
return new self($sselcont_id);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $note
|
||||
* @return boolean
|
||||
*/
|
||||
function set_note($note)
|
||||
{
|
||||
if (!$this->is_validation_item)
|
||||
{
|
||||
throw new Exception('Element ' . $this->sselcont_id . ' is not a validation item');
|
||||
}
|
||||
|
||||
$note = strip_tags($note);
|
||||
|
||||
if (!$this->validate_id)
|
||||
return false;
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
|
||||
$sql = 'UPDATE validate_datas SET note = :note
|
||||
WHERE sselcont_id = :sselcont_id AND validate_id = :validate_id ';
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
|
||||
$params = array(
|
||||
':note' => $note
|
||||
, ':sselcont_id' => $this->sselcont_id
|
||||
, ':validate_id' => $this->validate_id
|
||||
);
|
||||
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$this->my_note = $note;
|
||||
foreach ($this->choices as $key => $values)
|
||||
{
|
||||
if ($values['is_mine'])
|
||||
{
|
||||
$this->choices[$key]['note'] = $note;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$basket = basket_adapter::getInstance($appbox, $this->ssel_id, $usr_id);
|
||||
$basket->delete_cache();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function load_users_infos()
|
||||
{
|
||||
if (!$this->is_validation_item)
|
||||
{
|
||||
throw new Exception('Element is not a validation item');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($this->choices as $key => $value)
|
||||
{
|
||||
$this->choices[$key]['usr_display'] = User_Adapter::getInstance($value['usr_id'], appbox::get_instance())->get_display_name();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function get_note_count()
|
||||
{
|
||||
if (!$this->is_validation_item)
|
||||
{
|
||||
throw new Exception('Element is not a validation item');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$n = 0;
|
||||
foreach ($this->choices as $key => $value)
|
||||
{
|
||||
if (trim($value['note']) != '')
|
||||
{
|
||||
$n++;
|
||||
}
|
||||
}
|
||||
|
||||
return $n;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param boolean $boolean
|
||||
* @return string
|
||||
*/
|
||||
function set_agreement($boolean)
|
||||
{
|
||||
|
||||
if (!$this->is_validation_item)
|
||||
{
|
||||
throw new Exception('not a validation item');
|
||||
}
|
||||
|
||||
if (!$this->validate_id)
|
||||
throw new Exception('not a validation item');
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
|
||||
$boolean = in_array($boolean, array('1', '-1')) ? $boolean : '0';
|
||||
|
||||
$sql = 'UPDATE validate_datas
|
||||
SET agreement = :agreement
|
||||
WHERE sselcont_id = :sselcont_id
|
||||
AND validate_id = :validate_id';
|
||||
|
||||
$params = array(
|
||||
':agreement' => $boolean
|
||||
, ':sselcont_id' => $this->sselcont_id
|
||||
, ':validate_id' => $this->validate_id
|
||||
);
|
||||
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$this->delete_data_from_cache();
|
||||
$basket = basket_adapter::getInstance($appbox, $this->ssel_id, $usr_id);
|
||||
$basket->delete_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_sselcont_id()
|
||||
{
|
||||
return $this->sselcont_id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function is_validation_item()
|
||||
{
|
||||
return $this->is_validation_item;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_my_agreement()
|
||||
{
|
||||
return $this->my_agreement;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_my_note()
|
||||
{
|
||||
return $this->my_note;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Array
|
||||
*/
|
||||
public function get_choices()
|
||||
{
|
||||
return $this->choices;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_ssel_id()
|
||||
{
|
||||
return $this->ssel_id;
|
||||
}
|
||||
|
||||
public static function is_in_validation_session(record_Interface $record, User_Interface $user)
|
||||
{
|
||||
$conn = connection::getPDOConnection();
|
||||
$sql = 'SELECT v.id FROM sselcont c, validate v
|
||||
WHERE c.base_id = :base_id AND c.record_id = :record_id
|
||||
AND v.usr_id = :usr_id AND c.ssel_id = v.ssel_id';
|
||||
|
||||
$params = array(
|
||||
':base_id' => $record->get_base_id()
|
||||
, ':record_id' => $record->get_record_id()
|
||||
, ':usr_id' => $user->get_id()
|
||||
);
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
return!!$row;
|
||||
}
|
||||
|
||||
public static function has_been_received(record_Interface $record, User_Interface $user)
|
||||
{
|
||||
$conn = connection::getPDOConnection();
|
||||
$sql = 'SELECT sselcont_id FROM sselcont c, ssel s
|
||||
WHERE c.ssel_id=s.ssel_id AND c.record_id = :record_id
|
||||
AND c.base_id = :base_id AND s.pushFrom > 0
|
||||
AND s.usr_id = :usr_id';
|
||||
|
||||
$params = array(
|
||||
':base_id' => $record->get_base_id()
|
||||
, ':record_id' => $record->get_record_id()
|
||||
, ':usr_id' => $user->get_id()
|
||||
);
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
return!!$row;
|
||||
}
|
||||
|
||||
public function get_avrAgree()
|
||||
{
|
||||
return $this->avrAgree;
|
||||
}
|
||||
|
||||
public function get_avrDisAgree()
|
||||
{
|
||||
return $this->avrDisAgree;
|
||||
}
|
||||
|
||||
public function validate(user_adapter $from_user, User_Adapter $to_user, $validate_id, $can_hd)
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
|
||||
if ($can_hd)
|
||||
$to_user->ACL()->grant_hd_on($this->get_record(), $from_user, 'validate');
|
||||
else
|
||||
$to_user->ACL()->grant_preview_on($this->get_record(), $from_user, 'validate');
|
||||
|
||||
$sql = 'REPLACE INTO validate_datas
|
||||
(id, validate_id, sselcont_id, updated_on, agreement)
|
||||
VALUES
|
||||
(null, :validate_id, :sselcont_id, null, 0)';
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
|
||||
$params = array(
|
||||
':validate_id' => $validate_id
|
||||
, ':sselcont_id' => $this->get_sselcont_id()
|
||||
);
|
||||
$stmt->execute($params);
|
||||
|
||||
$stmt->closeCursor();
|
||||
|
||||
if (!$this->is_validation_item)
|
||||
{
|
||||
$this->choices = array();
|
||||
$this->avrAgree = 0;
|
||||
$this->avrDisAgree = 0;
|
||||
}
|
||||
|
||||
$this->is_validation_item = true;
|
||||
$this->choices[$to_user->get_id()] = array(
|
||||
'usr_id' => $to_user->get_id(),
|
||||
'usr_name' => $to_user->get_display_name(),
|
||||
'is_mine' => ($to_user->get_id() == $this->usr_id),
|
||||
'agreement' => 0,
|
||||
'updated_on' => new DateTime(),
|
||||
'note' => ''
|
||||
);
|
||||
if ($to_user->get_id() == $this->usr_id)
|
||||
{
|
||||
$this->validate_id = (int) $validate_id;
|
||||
}
|
||||
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function get_cache_key($option = null)
|
||||
{
|
||||
return 'basket_element_' . $this->usr_id . '_' . $this->sselcont_id . ($option ? '_' . $option : '');
|
||||
;
|
||||
}
|
||||
|
||||
public function get_data_from_cache($option = null)
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
|
||||
return $appbox->get_data_from_cache($this->get_cache_key($option));
|
||||
}
|
||||
|
||||
public function set_data_to_cache($value, $option = null, $duration = 0)
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
|
||||
return $appbox->set_data_to_cache($value, $this->get_cache_key($option), $duration);
|
||||
}
|
||||
|
||||
public function delete_data_from_cache($option = null)
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
|
||||
return $appbox->delete_data_from_cache($this->get_cache_key($option));
|
||||
}
|
||||
|
||||
}
|
@@ -1,179 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Phraseanet
|
||||
*
|
||||
* (c) 2005-2010 Alchemy
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
class basketCollection
|
||||
{
|
||||
|
||||
private $baskets = array();
|
||||
|
||||
/**
|
||||
* @param string $order (optionnal name_asc or date_desc - defaut to name_asc)
|
||||
* @param array $except (array of element not return. available values are regroup baskets and recept)
|
||||
* @return basketCollectionObject
|
||||
*/
|
||||
function __construct(appbox $appbox, $usr_id, $order='name asc', $except = array())
|
||||
{
|
||||
$user = User_Adapter::getInstance($usr_id, $appbox);
|
||||
|
||||
$current_timestamp_obj = new DateTime();
|
||||
$current_timestamp = $current_timestamp_obj->format('U');
|
||||
|
||||
$sql = 'SELECT ssel_id FROM ssel WHERE usr_id = :usr_id
|
||||
AND temporaryType="0"';
|
||||
$stmt = $appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute(array(':usr_id' => $usr_id));
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
if (count($rs) === 0)
|
||||
{
|
||||
$basket = basket_adapter::create($appbox, '', $user);
|
||||
}
|
||||
|
||||
$baskets = array();
|
||||
$baskets['baskets'] = $baskets['recept'] = $baskets['regroup'] = array();
|
||||
|
||||
|
||||
$core = bootstrap::getCore();
|
||||
$em = $core->getEntityManager();
|
||||
|
||||
$baskets['baskets'] = $em->getRepository('Entities\Basket')
|
||||
->findBy(array('usr_id' => $usr_id, 'pusher_id' => null));
|
||||
|
||||
$baskets['regroup'] = $em->getRepository('Entities\StoryWZ')
|
||||
->findBy(array('usr_id' => $usr_id));
|
||||
|
||||
// $sql = 'SELECT s.ssel_id, s.usr_id as owner, v.id as validate_id,
|
||||
// s.temporaryType, s.pushFrom, v.expires_on FROM ssel s
|
||||
// LEFT JOIN validate v
|
||||
// ON (v.ssel_id = s.ssel_id AND v.usr_id = :usr_id_v)
|
||||
// WHERE (s.usr_id = :usr_id_o OR v.id IS NOT NULL)';
|
||||
//
|
||||
// $stmt = $appbox->get_connection()->prepare($sql);
|
||||
// $stmt->execute(array(':usr_id_o' => $usr_id, ':usr_id_v' => $usr_id));
|
||||
// $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
// $stmt->closeCursor();
|
||||
|
||||
// foreach ($rs as $row)
|
||||
// {
|
||||
// $is_mine = ($row['owner'] == $usr_id);
|
||||
//
|
||||
// $expires_on_obj = new DateTime($row['expires_on']);
|
||||
// $expires_on = $expires_on_obj->format('U');
|
||||
//
|
||||
// if ($row['validate_id'] != null && !$is_mine && $expires_on < $current_timestamp)
|
||||
// continue;
|
||||
//
|
||||
// if ($row['temporaryType'] == '1')
|
||||
// $baskets['regroup'][] = basket_adapter::getInstance($appbox, $row['ssel_id'], $usr_id);
|
||||
// elseif (!is_null($row['validate_id']))
|
||||
// {
|
||||
//// $baskets['baskets'][] = basket_adapter::getInstance($appbox, $row['ssel_id'], $usr_id);
|
||||
// }
|
||||
// elseif ((int) $row['pushFrom'] > 0)
|
||||
// $baskets['recept'][] = basket_adapter::getInstance($appbox, $row['ssel_id'], $usr_id);
|
||||
//// else
|
||||
//// $baskets['baskets'][] = basket_adapter::getInstance($appbox, $row['ssel_id'], $usr_id);
|
||||
// }
|
||||
|
||||
$to_remove = array_intersect(array('recept', 'regroup', 'baskets'), $except);
|
||||
|
||||
foreach ($to_remove as $type)
|
||||
$baskets[$type] = array();
|
||||
|
||||
if ($order == 'name asc')
|
||||
{
|
||||
uasort($baskets['baskets'], array('basketCollection', 'story_name_sort'));
|
||||
uasort($baskets['regroup'], array('basketCollection', 'story_name_sort'));
|
||||
uasort($baskets['recept'], array('basketCollection', 'story_name_sort'));
|
||||
}
|
||||
if ($order == 'date desc')
|
||||
{
|
||||
uasort($baskets['baskets'], array('basketCollection', 'story_date_sort'));
|
||||
uasort($baskets['regroup'], array('basketCollection', 'story_date_sort'));
|
||||
uasort($baskets['recept'], array('basketCollection', 'story_date_sort'));
|
||||
}
|
||||
|
||||
|
||||
$this->baskets = $baskets;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function get_baskets()
|
||||
{
|
||||
return $this->baskets;
|
||||
}
|
||||
|
||||
function get_names()
|
||||
{
|
||||
$array_names = array();
|
||||
|
||||
foreach ($this->baskets as $type_name => $type)
|
||||
{
|
||||
foreach ($type as $basket)
|
||||
{
|
||||
|
||||
$array_names[] = array('ssel_id' => $basket->get_ssel_id(), 'name' => $basket->get_name(), 'type' => $type_name);
|
||||
}
|
||||
}
|
||||
|
||||
return $array_names;
|
||||
}
|
||||
|
||||
function story_date_sort($a, $b)
|
||||
{
|
||||
if (!$a->create || !$b->create)
|
||||
return 0;
|
||||
|
||||
$comp = strcasecmp($a->create, $b->create);
|
||||
|
||||
if ($comp == 0)
|
||||
return 0;
|
||||
|
||||
return $comp < 0 ? -1 : 1;
|
||||
}
|
||||
|
||||
function story_name_sort($a, $b)
|
||||
{
|
||||
if (!$a->getName() || !$b->getName())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
$comp = strcasecmp($a->getName(), $b->getName());
|
||||
|
||||
if ($comp == 0)
|
||||
return 0;
|
||||
|
||||
return $comp < 0 ? -1 : 1;
|
||||
}
|
||||
|
||||
public static function get_updated_baskets()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$conn = $appbox->get_connection();
|
||||
$session = $appbox->get_session();
|
||||
$sql = 'SELECT ssel_id FROM sselnew WHERE usr_id = :usr_id';
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':usr_id' => $session->get_usr_id()));
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$baskets = array();
|
||||
foreach ($rs as $row)
|
||||
{
|
||||
$baskets[] = basket_adapter::getInstance($appbox, $row['ssel_id'], $session->get_usr_id());
|
||||
}
|
||||
|
||||
return $baskets;
|
||||
}
|
||||
|
||||
}
|
@@ -1923,7 +1923,7 @@ class record_adapter implements record_Interface, cache_cacheableInterface
|
||||
$Core = bootstrap::getCore();
|
||||
$em = $Core->getEntityManager();
|
||||
|
||||
$repo = $em->getRepository('\Entities\Baskets');
|
||||
$repo = $em->getRepository('\Entities\Basket');
|
||||
|
||||
/* @var $$repo \Repositories\BasketRepository */
|
||||
return $repo->findContainingRecord($this);
|
||||
|
@@ -225,7 +225,7 @@ class record_preview extends record_adapter
|
||||
$this->train = $results->get_datas();
|
||||
break;
|
||||
case 'BASK':
|
||||
$this->train = $this->container->get_elements();
|
||||
$this->train = $this->container->getElements();
|
||||
break;
|
||||
case 'REG':
|
||||
$this->train = $this->container->get_children();
|
||||
|
@@ -78,7 +78,7 @@ class set_export extends set_abstract
|
||||
new record_exportElement(
|
||||
$basket_element->getRecord()->get_sbas_id(),
|
||||
$record_id,
|
||||
$basket->get_name() . '/',
|
||||
$basket->getName() . '/',
|
||||
$remain_hd[$base_id]
|
||||
);
|
||||
|
||||
|
@@ -264,9 +264,17 @@ class set_order extends set_abstract
|
||||
{
|
||||
$sbas_id = phrasea::sbasFromBas($basrec['base_id']);
|
||||
$record = new record_adapter($sbas_id, $basrec['record_id']);
|
||||
$ret = $basket->push_element($record, false, false);
|
||||
if ($ret['error'] === false)
|
||||
{
|
||||
|
||||
$BasketElement = new BasketElement();
|
||||
$BasketElement->setRecord($record);
|
||||
$BasketElement->setBasket($Basket);
|
||||
|
||||
$Basket->addBasketElement($BasketElement);
|
||||
|
||||
$em->persist($BasketElement);
|
||||
|
||||
$em->merge($Basket);
|
||||
|
||||
$params = array(
|
||||
':usr_id' => $session->get_usr_id()
|
||||
, ':order_id' => $this->id
|
||||
@@ -277,7 +285,7 @@ class set_order extends set_abstract
|
||||
|
||||
$n++;
|
||||
$this->user->ACL()->grant_hd_on($record, $pusher, 'order');
|
||||
}
|
||||
|
||||
unset($record);
|
||||
}
|
||||
catch (Exception $e)
|
||||
@@ -285,6 +293,8 @@ class set_order extends set_abstract
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$em->flush();
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($n > 0)
|
||||
|
@@ -71,25 +71,14 @@ class Bridge_Application extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
$accounts = Bridge_Account::get_accounts_by_user($appbox, self::$user);
|
||||
$usr_id = self::$user->get_id();
|
||||
|
||||
try
|
||||
{
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$baskets = $basket_coll->get_baskets();
|
||||
if (count($baskets["baskets"]) > 0)
|
||||
{
|
||||
$basket = array_shift($baskets["baskets"]);
|
||||
$crawler = $this->client->request('POST', '/bridge/manager/', array('ssel' => $basket->get_ssel_id()));
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$crawler = $this->client->request('POST', '/bridge/manager/', array('ssel' => $basket->getId()));
|
||||
$pageContent = $this->client->getResponse()->getContent();
|
||||
$this->assertNotContains("Oups ! something went wrong !", $pageContent);
|
||||
$this->assertEquals(count($accounts) + 2, $crawler->filter('form')->count());
|
||||
$this->assertTrue($this->client->getResponse()->isOk());
|
||||
}
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function testLogin()
|
||||
{
|
||||
|
@@ -1059,6 +1059,77 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return \Entities\BasketElement
|
||||
*/
|
||||
protected function insertOneBasketElement()
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$basketElement = new \Entities\BasketElement();
|
||||
$basketElement->setRecord(self::$record_1);
|
||||
$basketElement->setBasket($basket);
|
||||
|
||||
$basket->addBasketElement($basketElement);
|
||||
|
||||
$em = self::$core->getEntityManager();
|
||||
|
||||
$em->persist($basketElement);
|
||||
|
||||
$em->merge($basket);
|
||||
|
||||
$em->flush();
|
||||
|
||||
return $basketElement;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return \Entities\Basket
|
||||
*/
|
||||
protected function insertOneValidationBasket()
|
||||
{
|
||||
$em = self::$core->getEntityManager();
|
||||
|
||||
$basketElement = $this->insertOneBasketElement();
|
||||
$basket = $basketElement->getBasket();
|
||||
|
||||
$Validation = new Entities\ValidationSession();
|
||||
$Validation->setBasket($basket);
|
||||
$Validation->setInitiator(self::$user);
|
||||
|
||||
$basket->setValidation($Validation);
|
||||
|
||||
$em->persist($Validation);
|
||||
$em->merge($basket);
|
||||
|
||||
$Participant = new Entities\ValidationParticipant();
|
||||
$Participant->setUser(self::$user);
|
||||
$Participant->setCanAgree(true);
|
||||
$Participant->setCanSeeOthers(true);
|
||||
|
||||
$Validation->addValidationParticipant($Participant);
|
||||
$Participant->setSession($Validation);
|
||||
|
||||
$em->persist($Participant);
|
||||
$em->merge($Validation);
|
||||
|
||||
$Data = new Entities\ValidationData();
|
||||
$Data->setBasketElement($basketElement);
|
||||
$Data->setParticipant($Participant);
|
||||
$basketElement->addValidationData($Data);
|
||||
|
||||
$em->persist($Data);
|
||||
$em->merge($basketElement);
|
||||
|
||||
$em->flush();
|
||||
|
||||
return $basket;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new basket with current auhtenticated user as owner
|
||||
* Create a new sessionValidation with the newly created basket
|
||||
|
@@ -397,7 +397,7 @@ class API_V1_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
|
||||
$em->persist($Basket);
|
||||
$em->flush();
|
||||
|
||||
$ssel_id = $basket->getId();
|
||||
$ssel_id = $Basket->getId();
|
||||
|
||||
$request = new Request(array(), array(), array(), array(), array(), array('HTTP_Accept' => 'application/json'));
|
||||
$result = $this->object->delete_basket($request, $ssel_id);
|
||||
@@ -422,12 +422,11 @@ class API_V1_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$baskets = $basket_coll->get_baskets();
|
||||
$basket = array_pop($baskets['baskets']);
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$request = new Request(array(), array(), array(), array(), array(), array('HTTP_Accept' => 'application/json'));
|
||||
$result = $this->object->get_basket($request, $basket->get_ssel_id());
|
||||
$result = $this->object->get_basket($request, $basket->getId());
|
||||
$this->assertEquals(200, $result->get_http_code());
|
||||
$this->assertEquals('application/json', $result->get_content_type());
|
||||
$this->assertTrue(is_object(json_decode($result->format())));
|
||||
@@ -437,36 +436,38 @@ class API_V1_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$baskets = $basket_coll->get_baskets();
|
||||
$basket = array_pop($baskets['baskets']);
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$request = new Request(array(), array(), array('name' => 'PROUTO'), array(), array(), array('HTTP_Accept' => 'application/json'));
|
||||
$result = $this->object->set_basket_title($request, $basket->get_ssel_id());
|
||||
$result = $this->object->set_basket_title($request, $basket->getId());
|
||||
$this->assertEquals(200, $result->get_http_code());
|
||||
$this->assertEquals('application/json', $result->get_content_type());
|
||||
$this->assertTrue(is_object(json_decode($result->format())));
|
||||
|
||||
$basket = basket_adapter::getInstance($appbox, $basket->get_ssel_id(), $usr_id);
|
||||
$this->assertEquals('PROUTO', $basket->get_name());
|
||||
self::$core->getEntityManager()->refresh($basket);
|
||||
|
||||
$this->assertEquals('PROUTO', $basket->getName());
|
||||
}
|
||||
|
||||
public function testSet_basket_description()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$baskets = $basket_coll->get_baskets();
|
||||
$basket = array_pop($baskets['baskets']);
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$request = new Request(array(), array(), array('description' => 'une belle description'), array(), array(), array('HTTP_Accept' => 'application/json'));
|
||||
$result = $this->object->set_basket_description($request, $basket->get_ssel_id());
|
||||
$result = $this->object->set_basket_description($request, $basket->getId());
|
||||
$this->assertEquals(200, $result->get_http_code());
|
||||
$this->assertEquals('application/json', $result->get_content_type());
|
||||
$this->assertTrue(is_object(json_decode($result->format())));
|
||||
|
||||
$basket = basket_adapter::getInstance($appbox, $basket->get_ssel_id(), $usr_id);
|
||||
$this->assertEquals('une belle description', $basket->get_description());
|
||||
$em = self::$core->getEntityManager();
|
||||
/* @var $em \Doctrine\ORM\EntityManager */
|
||||
$em->refresh($basket);
|
||||
|
||||
$this->assertEquals('une belle description', $basket->getDescription());
|
||||
}
|
||||
|
||||
public function testSearch_publications()
|
||||
|
@@ -795,8 +795,6 @@ class API_V1_test_adapter extends PhraseanetWebTestCaseAbstract
|
||||
{
|
||||
$this->evaluateGoodBasket($basket);
|
||||
$this->assertEquals('un Joli Nom', $basket->name);
|
||||
$basket_obj = basket_adapter::getInstance($appbox, $basket->ssel_id, $appbox->get_session()->get_usr_id());
|
||||
$basket_obj->delete();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -804,17 +802,10 @@ class API_V1_test_adapter extends PhraseanetWebTestCaseAbstract
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
|
||||
$found = false;
|
||||
foreach ($basket_coll->get_baskets() as $bask_group => $baskets)
|
||||
{
|
||||
if (!in_array($bask_group, array('recept', 'baskets')))
|
||||
continue;
|
||||
foreach ($baskets as $basket)
|
||||
{
|
||||
$found = true;
|
||||
$route = '/baskets/' . $basket->get_ssel_id() . '/content/?oauth_token=' . self::$token;
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$route = '/baskets/' . $basket->getId() . '/content/?oauth_token=' . self::$token;
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, array('POST', 'PUT', 'DELETE'));
|
||||
|
||||
@@ -832,7 +823,7 @@ class API_V1_test_adapter extends PhraseanetWebTestCaseAbstract
|
||||
{
|
||||
$this->evaluateGoodBasket($basket_str);
|
||||
|
||||
$this->assertEquals(count($basket->get_elements()), count((array) $basket_str->basket_elements));
|
||||
$this->assertEquals(count($basket->getElements()), count((array) $basket_str->basket_elements));
|
||||
foreach ($basket_str->basket_elements as $basket_element)
|
||||
{
|
||||
$this->assertObjectHasAttribute('basket_element_id', $basket_element);
|
||||
@@ -846,29 +837,13 @@ class API_V1_test_adapter extends PhraseanetWebTestCaseAbstract
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$found)
|
||||
$this->markTestSkipped('Unable to test basket set title');
|
||||
}
|
||||
|
||||
public function testSetBasketTitle()
|
||||
{
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$found = false;
|
||||
|
||||
foreach ($basket_coll->get_baskets() as $bask_group => $baskets)
|
||||
{
|
||||
if (!in_array($bask_group, array('recept', 'baskets')))
|
||||
continue;
|
||||
foreach ($baskets as $basket)
|
||||
{
|
||||
|
||||
$found = true;
|
||||
$route = '/baskets/' . $basket->get_ssel_id() . '/setname/?oauth_token=' . self::$token;
|
||||
$route = '/baskets/' . $basket->getId() . '/setname/?oauth_token=' . self::$token;
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE'));
|
||||
|
||||
@@ -918,31 +893,13 @@ class API_V1_test_adapter extends PhraseanetWebTestCaseAbstract
|
||||
$this->assertEquals($basket_str->name, 'aéaa');
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$found)
|
||||
$this->markTestSkipped('Unable to test basket set title');
|
||||
}
|
||||
|
||||
public function testSetBasketDescription()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$found = false;
|
||||
|
||||
foreach ($basket_coll->get_baskets() as $bask_group => $baskets)
|
||||
{
|
||||
if (!in_array($bask_group, array('recept', 'baskets')))
|
||||
continue;
|
||||
foreach ($baskets as $basket)
|
||||
{
|
||||
|
||||
$found = true;
|
||||
$route = '/baskets/' . $basket->get_ssel_id() . '/setdescription/?oauth_token=' . self::$token;
|
||||
$route = '/baskets/' . $basket->getId() . '/setdescription/?oauth_token=' . self::$token;
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE'));
|
||||
|
||||
@@ -963,21 +920,14 @@ class API_V1_test_adapter extends PhraseanetWebTestCaseAbstract
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$found)
|
||||
$this->markTestSkipped('Unable to test basket set description');
|
||||
}
|
||||
|
||||
public function testDeleteBasket()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket2 = $this->insertOneBasket();
|
||||
|
||||
$basket = basket_adapter::create($appbox, 'test suppression panier', User_Adapter::getInstance($usr_id, $appbox));
|
||||
|
||||
$route = '/baskets/' . $basket->get_ssel_id() . '/delete/?oauth_token=' . self::$token;
|
||||
$route = '/baskets/' . $basket->getId() . '/delete/?oauth_token=' . self::$token;
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE'));
|
||||
|
||||
@@ -988,9 +938,16 @@ class API_V1_test_adapter extends PhraseanetWebTestCaseAbstract
|
||||
$this->evaluateMetaJson200($content);
|
||||
|
||||
$this->assertObjectHasAttribute("baskets", $content->response);
|
||||
|
||||
$found = false;
|
||||
foreach ($content->response->baskets as $basket)
|
||||
{
|
||||
$this->evaluateGoodBasket($basket);
|
||||
$found = true;
|
||||
}
|
||||
if(!$found)
|
||||
{
|
||||
$this->fail('There should be a basket left');
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -254,7 +254,7 @@ class API_V1_test_adapterYaml extends PhraseanetWebTestCaseAbstract
|
||||
$this->assertTrue((strlen($metadatas["separator"]) > 0));
|
||||
|
||||
$this->assertTrue(is_string($metadatas["thesaurus_branch"]));
|
||||
$this->assertTrue(in_array($metadatas["type"], array(databox_field::TYPE_DATE,databox_field::TYPE_STRING, databox_field::TYPE_NUMBER, databox_field::TYPE_TEXT)));
|
||||
$this->assertTrue(in_array($metadatas["type"], array(databox_field::TYPE_DATE, databox_field::TYPE_STRING, databox_field::TYPE_NUMBER, databox_field::TYPE_TEXT)));
|
||||
$this->assertTrue(is_bool($metadatas["indexable"]));
|
||||
$this->assertTrue(is_bool($metadatas["multivalue"]));
|
||||
$this->assertTrue(is_bool($metadatas["readonly"]));
|
||||
@@ -487,7 +487,7 @@ class API_V1_test_adapterYaml extends PhraseanetWebTestCaseAbstract
|
||||
$this->assertNotEquals($subdef->get_size(), $headers["download_content_length"]);
|
||||
break;
|
||||
case "url" :
|
||||
$this->assertTrue(strpos($headers['content_type'], $subdef->get_mime()) === 0, 'Verify that header '.$headers['content_type'].' contains subdef mime type '.$subdef->get_mime());
|
||||
$this->assertTrue(strpos($headers['content_type'], $subdef->get_mime()) === 0, 'Verify that header ' . $headers['content_type'] . ' contains subdef mime type ' . $subdef->get_mime());
|
||||
$this->assertEquals($subdef->get_size(), $headers["download_content_length"]);
|
||||
break;
|
||||
}
|
||||
@@ -805,26 +805,14 @@ class API_V1_test_adapterYaml extends PhraseanetWebTestCaseAbstract
|
||||
{
|
||||
$this->evaluateGoodBasket($basket);
|
||||
$this->assertEquals('un Joli Nom', $basket["name"]);
|
||||
$basket_obj = basket_adapter::getInstance($appbox, $basket["ssel_id"], $appbox->get_session()->get_usr_id());
|
||||
$basket_obj->delete();
|
||||
}
|
||||
}
|
||||
|
||||
public function testBasketContent()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$found = false;
|
||||
foreach ($basket_coll->get_baskets() as $bask_group => $baskets)
|
||||
{
|
||||
if (!in_array($bask_group, array('recept', 'baskets')))
|
||||
continue;
|
||||
foreach ($baskets as $basket)
|
||||
{
|
||||
$found = true;
|
||||
$route = '/baskets/' . $basket->get_ssel_id() . '/content/?oauth_token=' . self::$token;
|
||||
$route = '/baskets/' . $basket->getId() . '/content/?oauth_token=' . self::$token;
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, array('POST', 'PUT', 'DELETE'));
|
||||
|
||||
@@ -842,7 +830,7 @@ class API_V1_test_adapterYaml extends PhraseanetWebTestCaseAbstract
|
||||
{
|
||||
$this->evaluateGoodBasket($basket_str);
|
||||
|
||||
$this->assertEquals(count($basket->get_elements()), count((array) $basket_str["basket_elements"]));
|
||||
$this->assertEquals(count($basket->getElements()), count((array) $basket_str["basket_elements"]));
|
||||
foreach ($basket_str["basket_elements"] as $basket_element)
|
||||
{
|
||||
$this->assertArrayHasKey('basket_element_id', $basket_element);
|
||||
@@ -856,29 +844,13 @@ class API_V1_test_adapterYaml extends PhraseanetWebTestCaseAbstract
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$found)
|
||||
$this->markTestSkipped('Unable to test basket set title');
|
||||
}
|
||||
|
||||
public function testSetBasketTitle()
|
||||
{
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$found = false;
|
||||
|
||||
foreach ($basket_coll->get_baskets() as $bask_group => $baskets)
|
||||
{
|
||||
if (!in_array($bask_group, array('recept', 'baskets')))
|
||||
continue;
|
||||
foreach ($baskets as $basket)
|
||||
{
|
||||
|
||||
$found = true;
|
||||
$route = '/baskets/' . $basket->get_ssel_id() . '/setname/?oauth_token=' . self::$token;
|
||||
$route = '/baskets/' . $basket->getId() . '/setname/?oauth_token=' . self::$token;
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE'));
|
||||
|
||||
@@ -927,32 +899,13 @@ class API_V1_test_adapterYaml extends PhraseanetWebTestCaseAbstract
|
||||
$this->evaluateGoodBasket($basket_str);
|
||||
$this->assertEquals($basket_str["name"], 'aéaa');
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$found)
|
||||
$this->markTestSkipped('Unable to test basket set title');
|
||||
}
|
||||
|
||||
public function testSetBasketDescription()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$found = false;
|
||||
|
||||
foreach ($basket_coll->get_baskets() as $bask_group => $baskets)
|
||||
{
|
||||
if (!in_array($bask_group, array('recept', 'baskets')))
|
||||
continue;
|
||||
foreach ($baskets as $basket)
|
||||
{
|
||||
|
||||
$found = true;
|
||||
$route = '/baskets/' . $basket->get_ssel_id() . '/setdescription/?oauth_token=' . self::$token;
|
||||
$route = '/baskets/' . $basket->getId() . '/setdescription/?oauth_token=' . self::$token;
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE'));
|
||||
|
||||
@@ -971,23 +924,14 @@ class API_V1_test_adapterYaml extends PhraseanetWebTestCaseAbstract
|
||||
|
||||
$this->assertEquals($basket_str["description"], 'une belle desc');
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$found)
|
||||
$this->markTestSkipped('Unable to test basket set description');
|
||||
}
|
||||
|
||||
public function testDeleteBasket()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket = $this->insertOneBasket();
|
||||
$basket2 = $this->insertOneBasket();
|
||||
|
||||
$basket = basket_adapter::create($appbox, 'test suppression panier', User_Adapter::getInstance($usr_id, $appbox));
|
||||
|
||||
$route = '/baskets/' . $basket->get_ssel_id() . '/delete/?oauth_token=' . self::$token;
|
||||
$route = '/baskets/' . $basket->getId() . '/delete/?oauth_token=' . self::$token;
|
||||
|
||||
$this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE'));
|
||||
|
||||
@@ -998,9 +942,16 @@ class API_V1_test_adapterYaml extends PhraseanetWebTestCaseAbstract
|
||||
$this->evaluateMetaYaml200($content);
|
||||
|
||||
$this->assertArrayHasKey("baskets", $content["response"]);
|
||||
|
||||
$found = false;
|
||||
foreach ($content["response"]["baskets"] as $basket)
|
||||
{
|
||||
$this->evaluateGoodBasket($basket);
|
||||
$found = true;
|
||||
}
|
||||
if (!$found)
|
||||
{
|
||||
$this->fail('There should be a basket left');
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -14,6 +14,7 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
protected $item;
|
||||
protected $validation_basket;
|
||||
protected static $need_records = 1;
|
||||
|
||||
// protected static $need_subdefs = true;
|
||||
|
||||
public function setUp()
|
||||
@@ -25,16 +26,11 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
$publisher = array_shift($this->feed->get_publishers());
|
||||
$this->entry = Feed_Entry_Adapter::create($appbox, $this->feed, $publisher, 'title', "sub Titkle", " jean pierre", "jp@test.com");
|
||||
$this->item = Feed_Entry_Item::create($appbox, $this->entry, self::$record_1);
|
||||
$basket = basket_adapter::create($appbox, 'bask validation', self::$user);
|
||||
$basket->push_element(self::$record_1, false, false);
|
||||
$basket->validation_to_users(self::$user, true, true, true);
|
||||
$this->validation_basket = $basket;
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
$this->feed->delete();
|
||||
// $this->validation_basket->delete();
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
@@ -43,79 +39,21 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
return require dirname(__FILE__) . '/../../Alchemy/Phrasea/Application/Lightbox.php';
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function get_baskets()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$basketcoll = new basketCollection($appbox, self::$user->get_id());
|
||||
$basket_coll = $basketcoll->get_baskets();
|
||||
|
||||
return $basket_coll['baskets'];
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return basket_adapter
|
||||
*/
|
||||
protected function get_basket()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$basketcoll = new basketCollection($appbox, self::$user->get_id());
|
||||
$basket_coll = $basketcoll->get_baskets();
|
||||
while(($basket = array_shift($basket_coll['baskets'])))
|
||||
{
|
||||
if(!$basket->is_valid())
|
||||
|
||||
return $basket;
|
||||
}
|
||||
$this->fail('Unable to find a basket');
|
||||
}
|
||||
protected function get_validation_basket()
|
||||
{
|
||||
return $this->validation_basket;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return basket_element_adapter
|
||||
*/
|
||||
protected function get_basket_element()
|
||||
{
|
||||
$basket = $this->get_basket();
|
||||
$basket->push_element(self::$record_1, false, false);
|
||||
|
||||
foreach($basket->get_elements() as $basket_element)
|
||||
{
|
||||
return $basket_element;
|
||||
}
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @return basket_element_adapter
|
||||
*/
|
||||
protected function get_validation_basket_element()
|
||||
{
|
||||
$basket = $this->get_validation_basket();
|
||||
|
||||
foreach($basket->get_elements() as $basket_element)
|
||||
{
|
||||
return $basket_element;
|
||||
}
|
||||
}
|
||||
|
||||
public function testRouteSlash()
|
||||
{
|
||||
$baskets = $this->get_baskets();
|
||||
$n = mt_rand(2, 8);
|
||||
|
||||
for ($i = 0; $i != $n; $i++)
|
||||
{
|
||||
$basket = $this->insertOneBasket();
|
||||
}
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC);
|
||||
|
||||
$crawler = $this->client->request('GET', '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
$this->assertEquals($crawler->filter('div.basket_wrapper')->count(), count($baskets));
|
||||
$this->assertEquals($crawler->filter('div.basket_wrapper')->count(), $n);
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IE6);
|
||||
|
||||
@@ -133,34 +71,34 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
|
||||
public function testAjaxNoteForm()
|
||||
{
|
||||
$basket_element = $this->get_basket_element();
|
||||
$basket_element = $this->insertOneBasketElement();
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/NOTE_FORM/'.$basket_element->get_sselcont_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/NOTE_FORM/' . $basket_element->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('', trim($this->client->getResponse()->getContent()));
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IE6);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/NOTE_FORM/'.$basket_element->get_sselcont_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/NOTE_FORM/' . $basket_element->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('', trim($this->client->getResponse()->getContent()));
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IPHONE);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/NOTE_FORM/'.$basket_element->get_sselcont_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/NOTE_FORM/' . $basket_element->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertNotEquals('', trim($this->client->getResponse()->getContent()));
|
||||
}
|
||||
|
||||
public function testAjaxElement()
|
||||
{
|
||||
$basket_element = $this->get_basket_element();
|
||||
$basket_element = $this->insertOneBasketElement();
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_BASKET_ELEMENT/'.$basket_element->get_sselcont_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_BASKET_ELEMENT/' . $basket_element->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
$datas = json_decode($this->client->getResponse()->getContent());
|
||||
@@ -176,7 +114,7 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IE6);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_BASKET_ELEMENT/'.$basket_element->get_sselcont_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_BASKET_ELEMENT/' . $basket_element->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
$datas = json_decode($this->client->getResponse()->getContent());
|
||||
@@ -192,7 +130,7 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IPHONE);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_BASKET_ELEMENT/'.$basket_element->get_sselcont_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_BASKET_ELEMENT/' . $basket_element->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertNotEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
}
|
||||
@@ -201,7 +139,7 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
{
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_FEED_ITEM/'.$this->entry->get_id().'/'.$this->item->get_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_FEED_ITEM/' . $this->entry->get_id() . '/' . $this->item->get_id() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
$datas = json_decode($this->client->getResponse()->getContent());
|
||||
@@ -217,7 +155,7 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IE6);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_FEED_ITEM/'.$this->entry->get_id().'/'.$this->item->get_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_FEED_ITEM/' . $this->entry->get_id() . '/' . $this->item->get_id() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
$datas = json_decode($this->client->getResponse()->getContent());
|
||||
@@ -233,7 +171,7 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IPHONE);
|
||||
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_FEED_ITEM/'.$this->entry->get_id().'/'.$this->item->get_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_FEED_ITEM/' . $this->entry->get_id() . '/' . $this->item->get_id() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertNotEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
}
|
||||
@@ -241,46 +179,46 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
public function testValidate()
|
||||
{
|
||||
|
||||
$basket = $this->get_basket();
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC);
|
||||
|
||||
$crawler = $this->client->request('GET', '/validate/'.$basket->get_ssel_id().'/');
|
||||
$crawler = $this->client->request('GET', '/validate/' . $basket->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IE6);
|
||||
|
||||
$crawler = $this->client->request('GET', '/validate/'.$basket->get_ssel_id().'/');
|
||||
$crawler = $this->client->request('GET', '/validate/' . $basket->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IPHONE);
|
||||
|
||||
$crawler = $this->client->request('GET', '/validate/'.$basket->get_ssel_id().'/');
|
||||
$crawler = $this->client->request('GET', '/validate/' . $basket->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
}
|
||||
|
||||
public function testCompare()
|
||||
{
|
||||
$basket = $this->get_basket();
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC);
|
||||
|
||||
$crawler = $this->client->request('GET', '/compare/'.$basket->get_ssel_id().'/');
|
||||
$crawler = $this->client->request('GET', '/compare/' . $basket->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IE6);
|
||||
|
||||
$crawler = $this->client->request('GET', '/compare/'.$basket->get_ssel_id().'/');
|
||||
$crawler = $this->client->request('GET', '/compare/' . $basket->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IPHONE);
|
||||
|
||||
$crawler = $this->client->request('GET', '/compare/'.$basket->get_ssel_id().'/');
|
||||
$crawler = $this->client->request('GET', '/compare/' . $basket->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
}
|
||||
@@ -289,54 +227,66 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
{
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC);
|
||||
|
||||
$crawler = $this->client->request('GET', '/feeds/entry/'.$this->entry->get_id().'/');
|
||||
$crawler = $this->client->request('GET', '/feeds/entry/' . $this->entry->get_id() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IE6);
|
||||
|
||||
$crawler = $this->client->request('GET', '/feeds/entry/'.$this->entry->get_id().'/');
|
||||
$crawler = $this->client->request('GET', '/feeds/entry/' . $this->entry->get_id() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_IPHONE);
|
||||
|
||||
$crawler = $this->client->request('GET', '/feeds/entry/'.$this->entry->get_id().'/');
|
||||
$crawler = $this->client->request('GET', '/feeds/entry/' . $this->entry->get_id() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
}
|
||||
|
||||
public function testAjaxReport()
|
||||
{
|
||||
$validationBasket = $this->insertOneValidationBasket();
|
||||
|
||||
$this->set_user_agent(self::USER_AGENT_FIREFOX8MAC);
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_REPORT/'.$this->validation_basket->get_ssel_id().'/');
|
||||
$crawler = $this->client->request('GET', '/ajax/LOAD_REPORT/' . $validationBasket->getId() . '/');
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $this->client->getResponse()->getCharset());
|
||||
}
|
||||
|
||||
public function testAjaxSetNote()
|
||||
{
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_NOTE/'.$this->get_basket_element()->get_sselcont_id().'/');
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_NOTE/' . $this->insertOneBasketElement()->getId() . '/');
|
||||
$this->assertEquals(400, $this->client->getResponse()->getStatusCode());
|
||||
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_NOTE/'.$this->get_validation_basket_element()->get_sselcont_id().'/');
|
||||
$validationBasket = $this->insertOneValidationBasket();
|
||||
$validationBasketElement = $validationBasket->getElements()->first();
|
||||
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode(), sprintf('set note to element %s ',$this->get_validation_basket_element()->get_sselcont_id()));
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_NOTE/' . $validationBasketElement->getId() . '/');
|
||||
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode(), sprintf('set note to element %s ', $validationBasketElement->getId()));
|
||||
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
|
||||
$datas = json_decode($this->client->getResponse()->getContent());
|
||||
$this->assertTrue(is_object($datas), 'asserting good json datas');
|
||||
$this->assertObjectHasAttribute('datas', $datas);
|
||||
$this->assertObjectHasAttribute('error', $datas);
|
||||
|
||||
}
|
||||
|
||||
public function testAjaxSetAgreement()
|
||||
{
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_ELEMENT_AGREEMENT/'.$this->get_basket_element()->get_sselcont_id().'/');
|
||||
$basket = $this->insertOneBasket();
|
||||
$basketElement = $basket->getElements()->first();
|
||||
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_ELEMENT_AGREEMENT/' . $basketElement->getId() . '/');
|
||||
$this->assertEquals(400, $this->client->getResponse()->getStatusCode());
|
||||
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_ELEMENT_AGREEMENT/'.$this->get_validation_basket_element()->get_sselcont_id().'/');
|
||||
$validationBasket = $this->insertOneValidationBasket();
|
||||
$validationBasketElement = $validationBasket->getElements()->first();
|
||||
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode(), sprintf('set note to element %s ',$this->get_validation_basket_element()->get_sselcont_id()));
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_ELEMENT_AGREEMENT/' . $validationBasketElement->getId() . '/');
|
||||
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode(), sprintf('set note to element %s ', $validationBasketElement->getId()));
|
||||
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
|
||||
$datas = json_decode($this->client->getResponse()->getContent());
|
||||
@@ -344,14 +294,19 @@ class Module_LightboxTest extends PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
$this->assertObjectHasAttribute('datas', $datas);
|
||||
$this->assertObjectHasAttribute('error', $datas);
|
||||
}
|
||||
|
||||
public function testAjaxSetRelease()
|
||||
{
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_RELEASE/'.$this->get_basket()->get_ssel_id().'/');
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_RELEASE/' . $basket->getId() . '/');
|
||||
$this->assertEquals(400, $this->client->getResponse()->getStatusCode());
|
||||
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_RELEASE/'.$this->get_validation_basket()->get_ssel_id().'/');
|
||||
$validationBasket = $this->insertOneValidationBasket();
|
||||
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode(), sprintf('set note to element %s ',$this->get_validation_basket()->get_ssel_id()));
|
||||
$crawler = $this->client->request('POST', '/ajax/SET_RELEASE/' . $validationBasket->getId() . '/');
|
||||
|
||||
$this->assertEquals(200, $this->client->getResponse()->getStatusCode(), sprintf('set note to element %s ', $validationBasket->getId()));
|
||||
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-type'));
|
||||
|
||||
$datas = json_decode($this->client->getResponse()->getContent());
|
||||
|
@@ -27,10 +27,8 @@ class Module_Prod_Route_TooltipTest extends PhraseanetWebTestCaseAuthenticatedAb
|
||||
public function testRouteBasket()
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$basketcoll = new basketCollection($appbox, self::$user->get_id());
|
||||
$basket_coll = $basketcoll->get_baskets();
|
||||
|
||||
$basket = array_shift($basket_coll['baskets']);
|
||||
$basket = $this->insertOneBasket();
|
||||
|
||||
$crawler = $this->client->request('POST', '/tooltip/basket/' . $basket->getId() . '/');
|
||||
$pageContent = $this->client->getResponse()->getContent();
|
||||
|
@@ -473,14 +473,24 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
|
||||
{
|
||||
$appbox = appbox::get_instance();
|
||||
$usr_id = $appbox->get_session()->get_usr_id();
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$baskets = $basket_coll->get_baskets();
|
||||
$baskets = $baskets['baskets'];
|
||||
|
||||
$basket = array_shift($baskets);
|
||||
$em = self::$core->getEntityManager();
|
||||
|
||||
$basket = $this->insertOneBasket();
|
||||
$this->assertInstanceOf('\Entities\Basket', $basket);
|
||||
|
||||
$basket->push_element(self::$record_1, false, false);
|
||||
/* @var $basket \Entities\Basket */
|
||||
$basket_element = new \Entities\BasketElement();
|
||||
$basket_element->setRecord(self::$record_1);
|
||||
$basket_element->setBasket($basket);
|
||||
|
||||
$em->persist($basket_element);
|
||||
|
||||
$basket->addBasketElement($basket_element);
|
||||
|
||||
$em->merge($basket);
|
||||
|
||||
$em->flush();
|
||||
|
||||
$found = $sselcont_id = false;
|
||||
|
||||
@@ -489,7 +499,7 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
|
||||
|
||||
foreach (self::$record_1->get_container_baskets() as $c_basket)
|
||||
{
|
||||
if ($c_basket->getId() == $basket->get_ssel_id())
|
||||
if ($c_basket->getId() == $basket->getId())
|
||||
{
|
||||
$found = true;
|
||||
foreach ($c_basket->getElements() as $b_el)
|
||||
@@ -504,7 +514,6 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
|
||||
if (!$found)
|
||||
$this->fail();
|
||||
|
||||
$basket->remove_from_ssel($sselcont_id);
|
||||
}
|
||||
|
||||
}
|
||||
|
2
lib/vendor/symfony
vendored
2
lib/vendor/symfony
vendored
Submodule lib/vendor/symfony updated: 6924e63587...4316595dbb
@@ -13,27 +13,23 @@
|
||||
{% endblock %}
|
||||
|
||||
{% macro valid_baskets_length(baskets) %}
|
||||
{% set foo = 0 %}
|
||||
{% set number = 0 %}
|
||||
{% for item in baskets %}
|
||||
{% if item.is_valid() %}
|
||||
{% set foo = foo + 1 %}
|
||||
{% if item.getValidation() %}
|
||||
{% set number = number + 1 %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{foo}}
|
||||
{{number}}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro baskets_length(baskets_collection) %}
|
||||
{% set foo = 0 %}
|
||||
{% for key,baskets in baskets_collection.get_baskets() %}
|
||||
{% if key == 'baskets' or key == 'recept' %}
|
||||
{% macro baskets_length(baskets) %}
|
||||
{% set number = 0 %}
|
||||
{% for item in baskets %}
|
||||
{% if item.is_valid() == false %}
|
||||
{% set foo = foo + 1 %}
|
||||
{% if item.getValidation() == false %}
|
||||
{% set number = number + 1 %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{foo}}
|
||||
{{number}}
|
||||
{% endmacro %}
|
||||
|
||||
{% block content %}
|
||||
@@ -46,7 +42,7 @@
|
||||
<ul data-role="listview">
|
||||
<li>
|
||||
<a href="#validation">{% trans 'Validations'%}</a>
|
||||
<span class="ui-li-count">{{_self.valid_baskets_length(baskets_collection.get_baskets().baskets)}}</span>
|
||||
<span class="ui-li-count">{{_self.valid_baskets_length(baskets_collection)}}</span>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#baskets">{% trans 'Paniers'%}</a>
|
||||
|
@@ -19,7 +19,7 @@
|
||||
<form action="">
|
||||
<textarea class="note_area"
|
||||
id="note_area_{{basket_element.getId()}}"
|
||||
{% if basket_element.getUserValidationData(user).getNote() == '' %}placeholder="Note"{% endif %}>{{basket_element.getUserValidationData(user).getNote()}}</textarea>
|
||||
{% if basket_element.getUserValidationDatas(user).getNote() == '' %}placeholder="Note"{% endif %}>{{basket_element.getUserValidationDatas(user).getNote()}}</textarea>
|
||||
<button type="submit" class="note_area_validate">{% trans 'boutton::valider' %}</button>
|
||||
<input name="sselcont_id" value="{{basket_element.getId()}}" type="hidden"/>
|
||||
</form>
|
||||
|
@@ -24,7 +24,7 @@
|
||||
<ul class="image_set">
|
||||
{% for basket_element in basket.getElements() %}
|
||||
<li class="image_box" id="sselcontid_{{basket_element.getId()}}">
|
||||
<div class="valid_choice valid_choice_{{basket_element.getId()}} {% if basket_element.getUserValidationData(user).getAgreement() == true %}agree{% elseif basket_element.getUserValidationData(user).getAgreement() == false %}disagree{% endif %}">
|
||||
<div class="valid_choice valid_choice_{{basket_element.getId()}} {% if basket_element.getUserValidationDatas(user).getAgreement() == true %}agree{% elseif basket_element.getUserValidationDatas(user).getAgreement() == false %}disagree{% endif %}">
|
||||
</div>
|
||||
<a href="/lightbox/ajax/LOAD_BASKET_ELEMENT/{{basket_element.getId()}}/">
|
||||
{{thumbnail.format(basket_element.getRecord().get_thumbnail(), 80, 80, '', session, true)}}
|
||||
|
@@ -17,7 +17,7 @@
|
||||
{{ basket.getValidation().getValidationString(user) }}
|
||||
</div>
|
||||
<ul style="margin:10px 0 0 20px;width:200px;">
|
||||
{% for validation_data in basket_element.getValidationData() %}
|
||||
{% for validation_data in basket_element.getValidationDatas() %}
|
||||
{% if validation_data.getAgreement() == true %}
|
||||
{% set classuser = 'agree' %}
|
||||
{% elseif validation_data.getAgreement() == false %}
|
||||
@@ -38,12 +38,12 @@
|
||||
<table cellspacing="0" cellpadding="0" style="width:230px;">
|
||||
<tr>
|
||||
<td>
|
||||
<div style="width:70px;margin:0px auto 0;" class="ui-corner-all big_box agree_{{basket_element.getId()}} agree {% if basket_element.getValidationData().getParticipant(user).getAgreement() != true %}not_decided{% endif %}">
|
||||
<div style="width:70px;margin:0px auto 0;" class="ui-corner-all big_box agree_{{basket_element.getId()}} agree {% if basket_element.getValidationDatas().getParticipant(user).getAgreement() != true %}not_decided{% endif %}">
|
||||
<img src="/skins/lightbox/agree-bigie6.gif" style="vertical-align:middle;"/><span>{% trans 'validation:: OUI' %}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div style="width:70px;margin:0px auto;" class="ui-corner-all big_box disagree_{{basket_element.get_sselcont_id()}} disagree {% if basket_element.getValidationData().getParticipant(user).getAgreement() != false %}not_decided{% endif %}">
|
||||
<div style="width:70px;margin:0px auto;" class="ui-corner-all big_box disagree_{{basket_element.getId()}} disagree {% if basket_element.getValidationDatas().getParticipant(user).getAgreement() != false %}not_decided{% endif %}">
|
||||
<img src="/skins/lightbox/disagree-bigie6.gif" style="vertical-align:middle;"/><span>{% trans 'validation:: NON' %}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
@@ -112,26 +112,18 @@
|
||||
<td>
|
||||
<select id="navigation">
|
||||
<optgroup label="{% trans 'Validations'%}">
|
||||
{% for key,baskets in baskets_collection.get_baskets() %}
|
||||
{% if key == 'baskets' %}
|
||||
{% for item in baskets %}
|
||||
{% if item.is_valid() %}
|
||||
<option {% if basket.get_ssel_id() == item.get_ssel_id() %} selected="selected" {% endif %}
|
||||
value="{{item.get_ssel_id()}}">{{item.get_name()}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% for item in baskets() %}
|
||||
{% if item.getValidation() %}
|
||||
<option {% if item.getId() == basket.getId() %} selected="selected" {% endif %}
|
||||
value="{{basket.getId()}}">{{basket.getName()}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
<optgroup label="{% trans 'Paniers'%}">
|
||||
{% for key,baskets in baskets_collection.get_baskets() %}
|
||||
{% if key == 'baskets' or key == 'recept' %}
|
||||
{% for item in baskets %}
|
||||
{% if item.is_valid() == false %}
|
||||
<option {% if basket.get_ssel_id() == item.get_ssel_id() %} selected="selected" {% endif %}
|
||||
value="{{item.get_ssel_id()}}">{{item.get_name()}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% for item in baskets() %}
|
||||
{% if item.getValidation() is empty %}
|
||||
<option {% if item.getId() == basket.getId() %} selected="selected" {% endif %}
|
||||
value="{{item.getId()}}">{{item.getName()}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
|
@@ -30,7 +30,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for basket in baskets_collection.get_baskets() %}
|
||||
{% for basket in baskets_collection %}
|
||||
{% if basket.getValidation() %}
|
||||
{% set basket_length = basket.getElements().count() %}
|
||||
<tr>
|
||||
|
@@ -1,24 +1,24 @@
|
||||
|
||||
{% block basket %}
|
||||
<div id="sc_container">
|
||||
{% for element in basket.get_elements() %}
|
||||
{% for element in basket.getElements() %}
|
||||
<div class="basket_element_wrapper">
|
||||
<a href="/lightbox/ajax/LOAD_BASKET_ELEMENT/{{element.get_sselcont_id()}}/">
|
||||
<div id="scid_{{element.get_sselcont_id()}}" class="basket_element ui-corner-all {% if basket_element and basket_element.get_sselcont_id() == element.get_sselcont_id() %}selected{% endif %}">
|
||||
<div class="display_id">{{element.get_record().get_number()}}</div>
|
||||
{% if basket.is_valid() %}
|
||||
<a href="/lightbox/ajax/LOAD_BASKET_ELEMENT/{{element.getId()}}/">
|
||||
<div id="scid_{{element.getId()}}" class="basket_element ui-corner-all {% if basket_element and basket_element.getId() == element.getId() %}selected{% endif %}">
|
||||
<div class="display_id">{{element.getRecord().get_number()}}</div>
|
||||
{% if basket.getValidation() %}
|
||||
<div class="agreement">
|
||||
<img src="/skins/lightbox/agree.png"
|
||||
class="agree_button {%if element.get_my_agreement() != 1 %}not_decided{%endif%} agree_{{element.get_sselcont_id()}}" />
|
||||
class="agree_button {%if element.getUserValidationDatas(user) != true %}not_decided{%endif%} agree_{{element.getId()}}" />
|
||||
<img src="/skins/lightbox/disagree.png"
|
||||
class="disagree_button {%if element.get_my_agreement() != -1 %}not_decided{%endif%} disagree_{{element.get_sselcont_id()}}" />
|
||||
class="disagree_button {%if element.getUserValidationDatas(user) != false %}not_decided{%endif%} disagree_{{element.getId()}}" />
|
||||
</div>
|
||||
{% endif %}
|
||||
{{thumbnail.format(element.get_record().get_thumbnail,114,85, '', session, true)}}
|
||||
{{thumbnail.format(element.getRecord().get_thumbnail,114,85, '', session, true)}}
|
||||
<form name="download_form" class="download_form" style="display:none;">
|
||||
<input type="hidden" name="basrec" value="{{element.get_record().get_serialize_key()}}"/>
|
||||
<input type="hidden" name="basrec" value="{{element.getRecord().get_serialize_key()}}"/>
|
||||
</form>
|
||||
<div tooltipsrc="/prod/tooltip/preview/{{element.get_record().get_sbas_id()}}/{{element.get_record().get_record_id()}}/" class="previewTips"></div>
|
||||
<div tooltipsrc="/prod/tooltip/preview/{{element.getRecord().get_sbas_id()}}/{{element.getRecord().get_record_id()}}/" class="previewTips"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
@@ -18,12 +18,12 @@
|
||||
{% endfor %}
|
||||
|
||||
<form>
|
||||
<textarea>{{basket_element.get_my_note()}}</textarea>
|
||||
<textarea>{{basket_element.getUserValidationDatas(user).getNote()}}</textarea>
|
||||
<div class="buttons">
|
||||
<button class="note_closer ui-corner-all">
|
||||
{% trans 'boutton::fermer' %}
|
||||
</button>
|
||||
<button class="note_saver ui-corner-all" id="note_saver_{{basket_element.get_sselcont_id()}}">
|
||||
<button class="note_saver ui-corner-all" id="note_saver_{{basket_element.getId()}}">
|
||||
{% trans 'boutton::enregistrer' %}
|
||||
</button>
|
||||
</div>
|
||||
|
@@ -84,7 +84,7 @@
|
||||
</div>
|
||||
<div id="right_column" class="PNB">
|
||||
<div class="right_column_title title15 unselectable">
|
||||
{% if basket.is_valid() %}
|
||||
{% if basket.getValidation() %}
|
||||
<img class="collapsed" src="/skins/lightbox/collapsed.png"/>
|
||||
<img class="expanded" src="/skins/lightbox/expanded.png"/>
|
||||
{% endif %}
|
||||
@@ -122,7 +122,7 @@
|
||||
<td style="width:20px;">
|
||||
</td>
|
||||
<td style="width:310px;">
|
||||
{% if basket.is_valid() %}
|
||||
{% if basket.getValidation() %}
|
||||
<img title="{% trans 'lightbox::recaptitulatif' %}" class="report" src="/skins/lightbox/retour.png"/>
|
||||
{% endif %}
|
||||
<select id="navigation">
|
||||
|
@@ -238,7 +238,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
{% for basket_element in basket.get_elements() %}
|
||||
{% for basket_element in basket.getElements() %}
|
||||
<span class="wrapCHIM_{{ basket_element.getRecord().get_serialize_key() }} valid">
|
||||
<table style="width: 100%; min-width: 330px; display: inline-block;">
|
||||
<tr>
|
||||
@@ -247,21 +247,21 @@
|
||||
</td>
|
||||
<td style="width:100%;">
|
||||
<table style=width:100%>
|
||||
{% for choice in basket_element.get_choices() %}
|
||||
{% for choice in basket_element.getValidationDatas()) %}
|
||||
<tr>
|
||||
<td> {{choice.usr_name}} </td>
|
||||
<td> {{ choice.getParticipant().getUser().get_display_name() }} </td>
|
||||
<td>
|
||||
{% if choice.agreement == '1' %}
|
||||
{% if choice.getAgreement() == true %}
|
||||
<img style="cursor:help;" src='/skins/lightbox/agree.png' title="{% trans "L'utilisateur approuve ce document" %}" />
|
||||
{% elseif choice.agreement == '-1' %}
|
||||
{% elseif choice.getAgreement() == false %}
|
||||
<img style="cursor:help;" src='/skins/lightbox/disagree.png' title="{% trans "L'utilisateur desapprouve ce document" %}" />
|
||||
{% else %}
|
||||
<img style="cursor:help;" src='/skins/icons/valid.png' title="{% trans "L'utilisateur n'a pas encore donne son avis sur ce document" %}" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td style="width:25px;">
|
||||
{% if choice.note != '' %}
|
||||
<img style="cursor:help;" src='/skins/icons/file-edit.png' class="noteTips" title="{{choice.note|e|nl2br}}" />
|
||||
{% if choice.getNote() != '' %}
|
||||
<img style="cursor:help;" src='/skins/icons/file-edit.png' class="noteTips" title="{{choice.getNote()|nl2br}}" />
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@@ -34,8 +34,8 @@
|
||||
{% set title = '' %}
|
||||
{% set desc = '' %}
|
||||
{% if publishing.is_basket() %}
|
||||
{% set title = publishing.get_original_basket().get_name() %}
|
||||
{% set desc = publishing.get_original_basket().get_description() %}
|
||||
{% set title = publishing.get_original_basket().getName() %}
|
||||
{% set desc = publishing.get_original_basket().getDescription() %}
|
||||
{% endif %}
|
||||
<div><label for="feed_add_title">{% trans 'publication : titre' %}</label></div>
|
||||
<div><input class="required_text" type="text" name="title" id="feed_add_title" value="{{title}}" /></div>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<div id="PREVIEWCURRENTCONT" class="PNB10">
|
||||
<ul>
|
||||
{% for child in record.get_container().get_elements() %}
|
||||
{% for child in record.get_container().getElements() %}
|
||||
|
||||
{% set thumbnail = child.get_record().get_thumbnail() %}
|
||||
{% if thumbnail.is_paysage() %}
|
||||
@@ -23,7 +23,7 @@
|
||||
{% endif %}
|
||||
|
||||
<li class="{{class}} prevTrainCurrent">
|
||||
<img {{tooltip|raw}} jsargs="BASK|{{child.get_order()}}|{{record.get_container().get_ssel_id()}}"
|
||||
<img {{tooltip|raw}} jsargs="BASK|{{child.get_order()}}|{{record.get_container().getId()}}"
|
||||
class="openPreview prevRegToolTip" return(false);" src="{{thumbnail.get_url()}}"
|
||||
style="{{style}}margin:7px;position:relative;"/></li>
|
||||
{% endfor %}
|
||||
|
@@ -16,6 +16,9 @@
|
||||
*/
|
||||
/* @var $Core \Alchemy\Phrasea\Core */
|
||||
$Core = require_once __DIR__ . "/../../lib/bootstrap.php";
|
||||
|
||||
$em = $Core->getEntityManager();
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$session = $appbox->get_session();
|
||||
|
||||
@@ -35,7 +38,6 @@ $out = null;
|
||||
|
||||
if ($parm["act"] == "DELIMG" && $parm["p0"] != "")
|
||||
{
|
||||
$em = $Core->getEntityManager();
|
||||
$repository = $em->getRepository('\Entities\BasketElement');
|
||||
/* @var $repository \Repositories\BasketElementRepository */
|
||||
$basket_element = $repository->findUserElement($Core->getRequest('p0'), $user);
|
||||
@@ -45,8 +47,6 @@ if ($parm["act"] == "DELIMG" && $parm["p0"] != "")
|
||||
|
||||
if ($parm["act"] == "ADDIMG" && ($parm["p0"] != "" && $parm["p0"] != null))
|
||||
{
|
||||
|
||||
$em = $Core->getEntityManager();
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
$basket = $repository->findUserBasket($Core->getRequest('courChuId'), $user);
|
||||
@@ -67,8 +67,6 @@ if ($parm["act"] == "ADDIMG" && ($parm["p0"] != "" && $parm["p0"] != null))
|
||||
|
||||
if ($parm["act"] == "DELCHU" && ($parm["p0"] != "" && $parm["p0"] != null))
|
||||
{
|
||||
|
||||
$em = $Core->getEntityManager();
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
$basket = $repository->findUserBasket($Core->getRequest('courChuId'), $user);
|
||||
@@ -81,8 +79,6 @@ if ($parm["act"] == "DELCHU" && ($parm["p0"] != "" && $parm["p0"] != null))
|
||||
|
||||
if ($parm["act"] == "NEWCHU" && ($parm["p0"] != "" && $parm["p0"] != null))
|
||||
{
|
||||
$em = $Core->getEntityManager();
|
||||
|
||||
$basket = new \Entities\Basket();
|
||||
$basket->setName($Core->getRequest('p0'));
|
||||
$basket->setOwner($user);
|
||||
@@ -92,50 +88,57 @@ if ($parm["act"] == "NEWCHU" && ($parm["p0"] != "" && $parm["p0"] != null))
|
||||
|
||||
$parm['courChuId'] = $basket->getId();
|
||||
}
|
||||
$basket_coll = new basketCollection($appbox, $usr_id, 'name ASC', array('regroup'));
|
||||
$baskets = $basket_coll->get_baskets();
|
||||
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
$baskets = $repository->findActiveByUser($user);
|
||||
|
||||
$out = "<table style='width:99%' class='baskIndicator' id='baskMainTable'><tr><td>";
|
||||
$out .= '<select id="chutier_name" name="chutier_name" onChange="chg_chu();" style="width:120px;">';
|
||||
$firstGroup = true;
|
||||
|
||||
$baskets_opt = $recepts_opt = '';
|
||||
|
||||
foreach ($baskets as $typeBask => $basket)
|
||||
{
|
||||
|
||||
if (!$firstGroup)
|
||||
$out.='</optgroup>';
|
||||
$firstGroup = false;
|
||||
|
||||
if ($typeBask == 'baskets' && count($basket) > 0)
|
||||
if (!$basket->getPusherId())
|
||||
{
|
||||
$out.='<optgroup label="' . _('paniers::categories: mes paniers') . '">';
|
||||
foreach ($basket as $bask)
|
||||
{
|
||||
$baskId = $bask->get_ssel_id();
|
||||
$baskId = $basket->getId();
|
||||
$sltd = '';
|
||||
if (is_null($parm['courChuId']) || trim($parm['courChuId']) == '')
|
||||
$parm['courChuId'] = $baskId;
|
||||
if ($parm['courChuId'] == $baskId)
|
||||
$sltd = 'selected';
|
||||
$out .= '<option class="chut_choice" ' . $sltd . ' value="' . $baskId . '">' . $bask->get_name() . '</option>';
|
||||
}
|
||||
$baskets_opt .= '<option class="chut_choice" ' . $sltd . ' value="' . $baskId . '">'
|
||||
. $basket->getName() . '</option>';
|
||||
}
|
||||
|
||||
if ($typeBask == 'recept' && !is_null($basket))
|
||||
if ($basket->getPusherId())
|
||||
{
|
||||
$out.='<optgroup label="' . _('paniers::categories: paniers recus') . '">';
|
||||
foreach ($basket as $bask)
|
||||
{
|
||||
$baskId = $bask->get_ssel_id();
|
||||
$baskId = $basket->getId();
|
||||
$sltd = '';
|
||||
if (is_null($parm['courChuId']) || trim($parm['courChuId']) == '')
|
||||
$parm['courChuId'] = $baskId;
|
||||
if ($parm['courChuId'] == $baskId)
|
||||
$sltd = 'selected';
|
||||
$out .= '<option class="chut_choice" ' . $sltd . ' value="' . $baskId . '">' . $bask->get_name() . '</option>';
|
||||
}
|
||||
$recepts_opt .= '<option class="chut_choice" ' . $sltd . ' value="' . $baskId . '">'
|
||||
. $basket->getName() . '</option>';
|
||||
}
|
||||
}
|
||||
|
||||
if ($baskets_opt)
|
||||
{
|
||||
$out .= '<optgroup label="' . _('paniers::categories: mes paniers') . '">'
|
||||
. $baskets_opt
|
||||
. '</optgroup>';
|
||||
}
|
||||
if ($recepts_opt)
|
||||
{
|
||||
$out .= '<optgroup label="' . _('paniers::categories: paniers recus') . '">'
|
||||
. $recepts_opt
|
||||
. '</optgroup>';
|
||||
}
|
||||
|
||||
|
||||
$out.='</optgroup>';
|
||||
$out .= "</select>";
|
||||
$out .= '</td><td style="width:40%">';
|
||||
@@ -157,35 +160,33 @@ echo '<div class="baskName">' . sprintf(_('paniers:: paniers:: %d documents dans
|
||||
?></div><?php
|
||||
?><div><?php
|
||||
echo $out;
|
||||
|
||||
|
||||
?><div class="baskDel" title="<?php echo _('action : supprimer') ?>" onclick="evt_chutier('DELSSEL');"/></div><?php
|
||||
?><div class="baskCreate" title="<?php echo _('action:: nouveau panier') ?>" onclick="newBasket();"></div><?php
|
||||
?><div style="float:right;position:relative;width:3px;height:16px;"></div><?php
|
||||
if ($nbElems > 0 && ($ACL->has_right("candwnldhd") || $ACL->has_right("candwnldpreview") || $ACL->has_right("cancmd") > 0 ))
|
||||
{
|
||||
?><div class="baskDownload" title="<?php echo _('action : exporter') ?>" onclick="evt_dwnl();"></div><?php
|
||||
}
|
||||
if ($nbElems > 0)
|
||||
{
|
||||
?><div class="baskPrint" title="<?php echo _('action : print') ?>" onclick="evt_print();"></div><?php
|
||||
}
|
||||
$jsclick = '';
|
||||
if ($parm['courChuId'] != null && $parm['courChuId'] != '' && is_numeric($parm['courChuId']))
|
||||
{
|
||||
?><div class="baskDownload" title="<?php echo _('action : exporter') ?>" onclick="evt_dwnl();"></div><?php
|
||||
}
|
||||
if ($nbElems > 0)
|
||||
{
|
||||
?><div class="baskPrint" title="<?php echo _('action : print') ?>" onclick="evt_print();"></div><?php
|
||||
}
|
||||
$jsclick = '';
|
||||
if ($parm['courChuId'] != null && $parm['courChuId'] != '' && is_numeric($parm['courChuId']))
|
||||
{
|
||||
$jsclick = ' onclick=openCompare(\'' . $parm['courChuId'] . '\') ';
|
||||
}
|
||||
}
|
||||
?><div class="baskComparator" <?php echo $jsclick ?> title="<?php echo _('action : ouvrir dans le comparateur') ?>"></div><?php
|
||||
?></td><?php
|
||||
?></tr><?php
|
||||
?></table><?php
|
||||
?></div><?php
|
||||
?><div class="divexterne" style="height:270px;overflow-x:hidden;overflow-y:auto;position:relative"><?php
|
||||
if ($basket->getPusher() instanceof user)
|
||||
{
|
||||
?><div class="txtPushClient"><?php
|
||||
if ($basket->getPusher() instanceof user)
|
||||
{
|
||||
?><div class="txtPushClient"><?php
|
||||
echo sprintf(_('paniers:: panier emis par %s'), $basket->getPusher()->get_display_name())
|
||||
?></div><?php
|
||||
?></div><?php
|
||||
}
|
||||
|
||||
foreach ($basket->getElements() as $basket_element)
|
||||
@@ -235,32 +236,29 @@ echo '<div class="baskName">' . sprintf(_('paniers:: paniers:: %d documents dans
|
||||
{
|
||||
$tooltip = 'tooltipsrc="/prod/tooltip/caption/' . $record->get_sbas_id() . '/' . $record->get_record_id() . '/basket/"';
|
||||
}
|
||||
?><div class="diapochu"><?php
|
||||
?><div class="image"><?php
|
||||
?><img onclick="openPreview('BASK',<?php echo $basket_element->getRecord()->get_number() ?>,<?php echo $parm["courChuId"] ?>); return(false);"
|
||||
<?php echo $tooltip ?> style="position:relative; top:<?php echo $top ?>px; <?php echo $dim ?>"
|
||||
?><div class="diapochu"><?php
|
||||
?><div class="image"><?php
|
||||
?><img onclick="openPreview('BASK',<?php echo $basket_element->getRecord()->get_number() ?>,<?php echo $parm["courChuId"] ?>); return(false);"
|
||||
<?php echo $tooltip ?> style="position:relative; top:<?php echo $top ?>px; <?php echo $dim ?>"
|
||||
class="<?php echo $classSize ?> baskTips" src="<?php echo $thumbnail->get_url() ?>"><?php
|
||||
?></div><?php
|
||||
?><div class="tools"><?php
|
||||
?><div class="baskOneDel" onclick="evt_del_in_chutier('<?php echo $basket_element->getId() ?>');"
|
||||
?></div><?php ?><div class="tools"><?php ?><div class="baskOneDel" onclick="evt_del_in_chutier('<?php echo $basket_element->getId() ?>');"
|
||||
title="<?php echo _('action : supprimer') ?>"></div><?php
|
||||
|
||||
if ($user->ACL()->has_right_on_base($record->get_base_id(), 'candwnldhd') ||
|
||||
$user->ACL()->has_right_on_base($record->get_base_id(), 'candwnldpreview') ||
|
||||
$user->ACL()->has_right_on_base($record->get_base_id(), 'cancmd') ||
|
||||
$user->ACL()->has_preview_grant($record))
|
||||
{
|
||||
?><div class="baskOneDownload" onclick="evt_dwnl('<?php echo $record->get_sbas_id() ?>_<?php echo $record->get_record_id() ?>');" title="<?php echo _('action : exporter') ?>"></div><?php
|
||||
?><div class="baskOneDownload" onclick="evt_dwnl('<?php echo $record->get_sbas_id() ?>_<?php echo $record->get_record_id() ?>');" title="<?php echo _('action : exporter') ?>"></div><?php
|
||||
}
|
||||
?></div><?php
|
||||
?></div><?php
|
||||
?></div><?php
|
||||
?></div><?php
|
||||
}
|
||||
?></div></div><div id="blocNoBask" class="bodyLeft" style="height: 22px;display:none;bottom:0px;"><?php
|
||||
?><div class="baskTitle"><?php
|
||||
?><div id="flechechu" class="flechenochu"></div><?php
|
||||
?><div id="viewtext" class="baskName"><?php echo $jscriptnochu ?><span style="width:16px;height:16px;position: absolute; right: 10px;background-position:center center;" class='baskIndicator'></span></div><?php ?></div><?php ?></div>
|
||||
<?php
|
||||
?>
|
||||
?></div></div><div id="blocNoBask" class="bodyLeft" style="height: 22px;display:none;bottom:0px;"><?php
|
||||
?><div class="baskTitle"><?php
|
||||
?><div id="flechechu" class="flechenochu"></div><?php
|
||||
?><div id="viewtext" class="baskName"><?php echo $jscriptnochu ?><span style="width:16px;height:16px;position: absolute; right: 10px;background-position:center center;" class='baskIndicator'></span></div><?php ?></div><?php ?></div>
|
||||
<?php
|
||||
?>
|
||||
<script>
|
||||
var oldNoview = p4.nbNoview;
|
||||
p4.nbNoview = parseInt(<?php echo $nbNoview ?>);
|
||||
|
@@ -15,7 +15,9 @@
|
||||
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
|
||||
* @link www.phraseanet.com
|
||||
*/
|
||||
require_once __DIR__ . "/../../lib/bootstrap.php";
|
||||
$Core = require_once __DIR__ . "/../../lib/bootstrap.php";
|
||||
|
||||
$em = $Core->getEntityManager();
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$session = $appbox->get_session();
|
||||
@@ -119,16 +121,17 @@ switch ($parm['action'])
|
||||
break;
|
||||
case 'BASKUPDATE':
|
||||
$noview = 0;
|
||||
$basket_coll = new basketCollection($appbox, $usr_id);
|
||||
$baskets = $basket_coll->get_baskets();
|
||||
foreach ($baskets['baskets'] as $basket)
|
||||
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
$baskets = $repository->findActiveByUser($user);
|
||||
|
||||
foreach ($baskets as $basket)
|
||||
{
|
||||
if ($basket->is_unread())
|
||||
if (!$basket->getIsRead())
|
||||
$noview++;
|
||||
}
|
||||
foreach ($baskets['recept'] as $basket)
|
||||
{
|
||||
if ($basket->is_unread())
|
||||
if (!$basket->getIsRead())
|
||||
$noview++;
|
||||
}
|
||||
$output = $noview;
|
||||
|
@@ -17,6 +17,10 @@
|
||||
*/
|
||||
$Core = require_once __DIR__ . "/../../lib/bootstrap.php";
|
||||
|
||||
$em = $Core->getEntityManager();
|
||||
|
||||
$user = $Core->getAuthenticatedUser();
|
||||
|
||||
$appbox = appbox::get_instance();
|
||||
$session = $appbox->get_session();
|
||||
$session->close_storage();
|
||||
@@ -66,7 +70,11 @@ $ret['notifications'] = $twig->render('prod/notifications.twig', array('notifica
|
||||
|
||||
$ret['changed'] = array();
|
||||
|
||||
$baskets = basketCollection::get_updated_baskets();
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
$baskets = $repository->findUnreadActiveByUser($user);
|
||||
|
||||
foreach ($baskets as $basket)
|
||||
{
|
||||
$ret['changed'][] = $basket->getId();
|
||||
|
@@ -244,7 +244,7 @@ $user = User_Adapter::getInstance($usr_id, $appbox);
|
||||
|
||||
$Basket = $repository->findUserBasket($Core->getRequest()->get('SSTTID'), $Core->getAuthenticatedUser());
|
||||
|
||||
foreach ($Basket->get_elements() as $basket_element)
|
||||
foreach ($Basket->getElements() as $basket_element)
|
||||
{
|
||||
/* @var $basket_element \Entities\BasketElement */
|
||||
$record = $basket_element->getRecord();
|
||||
|
Reference in New Issue
Block a user