Merge branch '3.6' of github.com:alchemy-fr/Phraseanet into 3.6

This commit is contained in:
Nicolas Le Goff
2012-02-17 19:14:16 +01:00
62 changed files with 924 additions and 700 deletions

View File

@@ -15,6 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException; use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Alchemy\Phrasea\Controller\Exception as ControllerException;
/** /**
* *
@@ -237,6 +238,7 @@ return call_user_func(
$basket = $repository->findUserBasket( $basket = $repository->findUserBasket(
$ssel_id $ssel_id
, $app['Core']->getAuthenticatedUser() , $app['Core']->getAuthenticatedUser()
, false
); );
/* @var $twig \Twig_Environment */ /* @var $twig \Twig_Environment */
@@ -279,6 +281,7 @@ return call_user_func(
$basket = $repository->findUserBasket( $basket = $repository->findUserBasket(
$ssel_id $ssel_id
, $app['Core']->getAuthenticatedUser() , $app['Core']->getAuthenticatedUser()
, false
); );
/* @var $twig \Twig_Environment */ /* @var $twig \Twig_Environment */
@@ -353,6 +356,7 @@ return call_user_func(
$basket = $repository->findUserBasket( $basket = $repository->findUserBasket(
$ssel_id $ssel_id
, $app['Core']->getAuthenticatedUser() , $app['Core']->getAuthenticatedUser()
, false
); );
$response = new Response($twig->render($template, array('basket' => $basket))); $response = new Response($twig->render($template, array('basket' => $basket)));
@@ -431,6 +435,9 @@ return call_user_func(
$agreement = $agreement > 0; $agreement = $agreement > 0;
$releasable = false;
try
{
$ret = array( $ret = array(
'error' => true, 'error' => true,
'releasable' => false, 'releasable' => false,
@@ -449,6 +456,13 @@ return call_user_func(
/* @var $basket_element \Entities\BasketElement */ /* @var $basket_element \Entities\BasketElement */
$validationDatas = $basket_element->getUserValidationDatas($user); $validationDatas = $basket_element->getUserValidationDatas($user);
if(!$basket_element->getBasket()
->getValidation()
->getParticipant($user)->getCanAgree())
{
throw new ControllerException('You can not agree on this');
}
$validationDatas->setAgreement($agreement); $validationDatas->setAgreement($agreement);
$participant = $basket_element->getBasket() $participant = $basket_element->getBasket()
@@ -471,6 +485,11 @@ return call_user_func(
, 'releasable' => $releasable , 'releasable' => $releasable
); );
}
catch(ControllerException $e)
{
$ret['datas'] = $e->getMessage();
}
$Serializer = $app['Core']['Serializer']; $Serializer = $app['Core']['Serializer'];
return new Response( return new Response(
@@ -491,16 +510,27 @@ return call_user_func(
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
$datas = array('error' => true, 'datas' => '');
try
{
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$basket = $repository->findUserBasket( $basket = $repository->findUserBasket(
$ssel_id $ssel_id
, $user , $user
, false
); );
if (!$basket->getValidation()) if (!$basket->getValidation())
{ {
Return new Response('There is no validation session attached to this basket', 400); throw new ControllerException('There is no validation session attached to this basket');
} }
if (!$basket->getValidation()->getParticipant($user)->getCanAgree())
{
throw new ControllerException('You have not right to agree');
}
/* @var $basket \Entities\Basket */ /* @var $basket \Entities\Basket */
$participant = $basket->getValidation()->getParticipant($user); $participant = $basket->getValidation()->getParticipant($user);
$participant->setIsConfirmed(true); $participant->setIsConfirmed(true);
@@ -510,6 +540,11 @@ return call_user_func(
$em->flush(); $em->flush();
$datas = array('error' => false, 'datas' => _('Envoie avec succes')); $datas = array('error' => false, 'datas' => _('Envoie avec succes'));
}
catch(ControllerException $e)
{
$datas = array('error' => true, 'datas' => $e->getMessage());
}
$Serializer = $app['Core']['Serializer']; $Serializer = $app['Core']['Serializer'];

View File

@@ -128,7 +128,7 @@ class Basket implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), true);
$em->remove($basket); $em->remove($basket);
$em->flush(); $em->flush();
@@ -162,7 +162,7 @@ class Basket implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), true);
foreach ($basket->getElements() as $basket_element) foreach ($basket->getElements() as $basket_element)
{ {
@@ -204,7 +204,7 @@ class Basket implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), true);
$basket->setName($request->get('name', '')); $basket->setName($request->get('name', ''));
$basket->setDescription($request->get('description')); $basket->setDescription($request->get('description'));
@@ -240,7 +240,7 @@ class Basket implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), true);
/* @var $twig \Twig_Environment */ /* @var $twig \Twig_Environment */
$twig = $app['Core']->getTwig(); $twig = $app['Core']->getTwig();
@@ -265,7 +265,7 @@ class Basket implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), true);
/* @var $twig \Twig_Environment */ /* @var $twig \Twig_Environment */
$twig = $app['Core']->getTwig(); $twig = $app['Core']->getTwig();
@@ -290,7 +290,7 @@ class Basket implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), true);
$archive_status = !!$request->get('archive'); $archive_status = !!$request->get('archive');
@@ -337,7 +337,7 @@ class Basket implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), true);
$user = $app['Core']->getAuthenticatedUser(); $user = $app['Core']->getAuthenticatedUser();
/* @var $user \User_Adapter */ /* @var $user \User_Adapter */
@@ -413,7 +413,7 @@ class Basket implements ControllerProviderInterface
/* @var $em \Doctrine\ORM\EntityManager */ /* @var $em \Doctrine\ORM\EntityManager */
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), true);
$user = $app['Core']->getAuthenticatedUser(); $user = $app['Core']->getAuthenticatedUser();
/* @var $user \User_Adapter */ /* @var $user \User_Adapter */
@@ -477,7 +477,7 @@ class Basket implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), false);
if ($basket->getIsRead() === false) if ($basket->getIsRead() === false)
{ {

View File

@@ -95,6 +95,7 @@ class Language implements ControllerProviderInterface
$out['FeedBackDuration'] = _('Time for feedback (days)'); $out['FeedBackDuration'] = _('Time for feedback (days)');
$out['send'] = _('Send'); $out['send'] = _('Send');
$out['Recept'] = _('Accuse de reception'); $out['Recept'] = _('Accuse de reception');
$out['nFieldsChanged'] = _('%d fields have been updated');
$out['FeedBackNoUsersSelected'] = _('No users selected'); $out['FeedBackNoUsersSelected'] = _('No users selected');
$Serializer = $app['Core']['Serializer']; $Serializer = $app['Core']['Serializer'];

View File

@@ -226,7 +226,7 @@ class Push implements ControllerProviderInterface
foreach ($pusher->get_elements() as $element) foreach ($pusher->get_elements() as $element)
{ {
$BasketElement = new \Entities\BasketELement(); $BasketElement = new \Entities\BasketElement();
$BasketElement->setRecord($element); $BasketElement->setRecord($element);
$BasketElement->setBasket($Basket); $BasketElement->setBasket($Basket);

View File

@@ -40,7 +40,7 @@ class Tooltip implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), false);
/* @var $twig \Twig_Environment */ /* @var $twig \Twig_Environment */
$twig = $app['Core']->getTwig(); $twig = $app['Core']->getTwig();
@@ -103,11 +103,14 @@ class Tooltip implements ControllerProviderInterface
$search_engine = null; $search_engine = null;
if($view == 'answer')
{
if (($search_engine_options = unserialize($app['request']->get('options_serial'))) !== false) if (($search_engine_options = unserialize($app['request']->get('options_serial'))) !== false)
{ {
$search_engine = new \searchEngine_adapter($app['appbox']->get_registry()); $search_engine = new \searchEngine_adapter($app['appbox']->get_registry());
$search_engine->set_options($search_engine_options); $search_engine->set_options($search_engine_options);
} }
}
/* @var $twig \Twig_Environment */ /* @var $twig \Twig_Environment */
$twig = $app['Core']->getTwig(); $twig = $app['Core']->getTwig();

View File

@@ -113,7 +113,7 @@ class WorkZone implements ControllerProviderInterface
$em = $app['Core']->getEntityManager(); $em = $app['Core']->getEntityManager();
$basket = $em->getRepository('\Entities\Basket') $basket = $em->getRepository('\Entities\Basket')
->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser()); ->findUserBasket($basket_id, $app['Core']->getAuthenticatedUser(), false);
$params = array( $params = array(
'Basket' => $basket 'Basket' => $basket

View File

@@ -116,7 +116,7 @@ class Helper extends \Alchemy\Phrasea\Helper\Helper
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
/* @var $$repository \Repositories\BasketRepository */ /* @var $$repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($Request->get('ssel'), $this->getCore()->getAuthenticatedUser()); $Basket = $repository->findUserBasket($Request->get('ssel'), $this->getCore()->getAuthenticatedUser(), false);
$this->selection->load_basket($Basket); $this->selection->load_basket($Basket);

View File

@@ -340,7 +340,7 @@ class ValidationSession
return null; return null;
} }
$date_obj = new DateTime(); $date_obj = new \DateTime();
return $date_obj > $this->getExpires(); return $date_obj > $this->getExpires();
} }

View File

@@ -23,10 +23,12 @@ class BasketElementRepository extends EntityRepository
LEFT JOIN e.validation_datas vd LEFT JOIN e.validation_datas vd
LEFT JOIN b.validation s LEFT JOIN b.validation s
LEFT JOIN s.participants p LEFT JOIN s.participants p
WHERE b.usr_id = :usr_id AND e.id = :element_id'; WHERE (b.usr_id = :usr_id OR p.usr_id = :same_usr_id)
AND e.id = :element_id';
$params = array( $params = array(
'usr_id' => $user->get_id(), 'usr_id' => $user->get_id(),
'same_usr_id' => $user->get_id(),
'element_id' => $element_id 'element_id' => $element_id
); );
@@ -38,6 +40,12 @@ class BasketElementRepository extends EntityRepository
$element = $query->getOneOrNullResult(); $element = $query->getOneOrNullResult();
/* @var $element \Entities\BasketElement */
if (null === $element)
{
throw new \Exception_NotFound(_('Element is not found'));
}
return $element; return $element;
} }
@@ -121,41 +129,4 @@ class BasketElementRepository extends EntityRepository
return $query->getResult(); return $query->getResult();
} }
/**
*
* @param type $element_id
* @param \User_Adapter $user
* @return \Entities\BasketELement
*/
public function findElement($element_id, \User_Adapter $user)
{
$dql = 'SELECT e, b, s, p
FROM Entities\BasketElement e
JOIN e.basket b
LEFT JOIN b.validation s
LEFT JOIN s.participants p
WHERE e.id = :element_id';
$query = $this->_em->createQuery($dql);
$query->setParameters(array('element_id' => $element_id));
$cacheId = "_validation_element" . $element_id . Entities\BasketElement::CACHE_SUFFIX;
$query->useResultCache(true, 1800, $cacheId);
$element = $query->getOneOrNullResult();
/* @var $element \Entities\BasketElement */
if (null === $element)
{
throw new \Exception_NotFound(_('Element is not found'));
}
if ($element->getBasket()->getowner()->get_id() != $user->get_id())
{
throw new \Exception_Forbidden(_('You have not access to this basket element'));
}
return $element;
}
} }

View File

@@ -133,7 +133,7 @@ class BasketRepository extends EntityRepository
* @param \User_Adapter $user * @param \User_Adapter $user
* @return \Entities\Basket * @return \Entities\Basket
*/ */
public function findUserBasket($basket_id, \User_Adapter $user) public function findUserBasket($basket_id, \User_Adapter $user, $requireOwner)
{ {
$dql = 'SELECT b, e, s, p, v $dql = 'SELECT b, e, s, p, v
FROM Entities\Basket b FROM Entities\Basket b
@@ -157,23 +157,42 @@ class BasketRepository extends EntityRepository
} }
if ($basket->getOwner()->get_id() != $user->get_id()) if ($basket->getOwner()->get_id() != $user->get_id())
{
$participant = false;
if ($basket->getValidation() && !$requireOwner)
{
try
{
$basket->getValidation()->getParticipant($user);
$participant = true;
}
catch (\Exception $e)
{
}
}
if (!$participant)
{ {
throw new \Exception_Forbidden(_('You have not access to this basket')); throw new \Exception_Forbidden(_('You have not access to this basket'));
} }
}
return $basket; return $basket;
} }
public function findContainingRecord(\record_adapter $record) public function findContainingRecordForUser(\record_adapter $record, \User_Adapter $user)
{ {
$dql = 'SELECT b, e $dql = 'SELECT b, e
FROM Entities\Basket b FROM Entities\Basket b
JOIN b.elements e JOIN b.elements e
WHERE e.record_id = :record_id AND e.sbas_id = e.sbas_id'; WHERE e.record_id = :record_id AND e.sbas_id = e.sbas_id
AND b.usr_id = :usr_id';
$params = array( $params = array(
'record_id' => $record->get_record_id() 'record_id' => $record->get_record_id(),
'usr_id' => $user->get_id()
); );
$query = $this->_em->createQuery($dql); $query = $this->_em->createQuery($dql);

View File

@@ -660,7 +660,7 @@ class API_V1_adapter extends API_V1_Abstract
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($basket_id, $this->core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($basket_id, $this->core->getAuthenticatedUser(), true);
$em->remove($Basket); $em->remove($Basket);
$em->flush(); $em->flush();
@@ -683,7 +683,7 @@ class API_V1_adapter extends API_V1_Abstract
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($basket_id, $this->core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($basket_id, $this->core->getAuthenticatedUser(), false);
$result->set_datas( $result->set_datas(
array("basket_elements" => array("basket_elements" =>
@@ -783,7 +783,7 @@ class API_V1_adapter extends API_V1_Abstract
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($basket_id, $this->core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($basket_id, $this->core->getAuthenticatedUser(), true);
$Basket->setName($name); $Basket->setName($name);
$em->merge($Basket); $em->merge($Basket);
@@ -819,7 +819,7 @@ class API_V1_adapter extends API_V1_Abstract
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($basket_id, $this->core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($basket_id, $this->core->getAuthenticatedUser(), true);
$Basket->setDescription($desc); $Basket->setDescription($desc);
$em->merge($Basket); $em->merge($Basket);

View File

@@ -150,7 +150,7 @@ class eventsmanager_notify_orderdeliver extends eventsmanager_notifyAbstract
$em = $this->core->getEntityManager(); $em = $this->core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
$basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser()); $basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser(), false);
} }
catch (Exception $e) catch (Exception $e)
{ {
@@ -202,7 +202,7 @@ class eventsmanager_notify_orderdeliver extends eventsmanager_notifyAbstract
$em = $this->core->getEntityManager(); $em = $this->core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
$basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser()); $basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser(), false);
} }
catch (Exception $e) catch (Exception $e)
{ {

View File

@@ -143,7 +143,7 @@ class eventsmanager_notify_validate extends eventsmanager_notifyAbstract
$em = $this->core->getEntityManager(); $em = $this->core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
$basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser()); $basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser(), false);
$basket_name = trim($basket->getName()) ?: _('Une selection'); $basket_name = trim($basket->getName()) ?: _('Une selection');
} }

View File

@@ -146,7 +146,7 @@ class eventsmanager_notify_validationdone extends eventsmanager_notifyAbstract
$em = $this->core->getEntityManager(); $em = $this->core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
$basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser()); $basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser(), false);
} }
catch (Exception $e) catch (Exception $e)
{ {
@@ -199,7 +199,7 @@ class eventsmanager_notify_validationdone extends eventsmanager_notifyAbstract
$em = $this->core->getEntityManager(); $em = $this->core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
$basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser()); $basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser(), false);
} }
catch (Exception $e) catch (Exception $e)
{ {

View File

@@ -159,7 +159,7 @@ class eventsmanager_notify_validationreminder extends eventsmanager_notifyAbstra
$em = $this->core->getEntityManager(); $em = $this->core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
$basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser()); $basket = $repository->findUserBasket($ssel_id, $this->core->getAuthenticatedUser(), false);
$basket_name = trim($basket->getName()) ? : _('Une selection'); $basket_name = trim($basket->getName()) ? : _('Une selection');
} }

View File

@@ -2073,7 +2073,7 @@ class record_adapter implements record_Interface, cache_cacheableInterface
/* @var $$repo \Repositories\BasketRepository */ /* @var $$repo \Repositories\BasketRepository */
return $repo->findContainingRecord($this); return $repo->findContainingRecordForUser($this, $Core->getAuthenticatedUser());
} }
/** /**

View File

@@ -143,7 +143,7 @@ class record_preview extends record_adapter
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($contId, $Core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($contId, $Core->getAuthenticatedUser(), false);
/* @var $Basket \Entities\Basket */ /* @var $Basket \Entities\Basket */
$this->container = $Basket; $this->container = $Basket;

View File

@@ -63,7 +63,7 @@ class set_export extends set_abstract
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($sstid, $user); $Basket = $repository->findUserBasket($sstid, $user, false);
foreach ($Basket->getElements() as $basket_element) foreach ($Basket->getElements() as $basket_element)
{ {
@@ -977,11 +977,13 @@ class set_export extends set_abstract
if (is_file($file)) if (is_file($file))
{ {
$testPath = strpos($file, $registry->get('GV_RootPath').'tmp/download/') !== false $testPath = function($file, $registry){
return strpos($file, $registry->get('GV_RootPath').'tmp/download/') !== false
|| strpos($file, $registry->get('GV_RootPath').'tmp/lazaret/') !== false || strpos($file, $registry->get('GV_RootPath').'tmp/lazaret/') !== false
|| strpos($file, $registry->get('GV_X_Accel_Redirect')) !== false; || strpos($file, $registry->get('GV_X_Accel_Redirect')) !== false;
};
if ($registry->get('GV_modxsendfile') && $testPath) if ($registry->get('GV_modxsendfile') && $testPath($file, $registry))
{ {
$file_xaccel = str_replace( $file_xaccel = str_replace(
array( array(

View File

@@ -225,7 +225,7 @@ class set_order extends set_abstract
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->ssel_id, $core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($this->ssel_id, $core->getAuthenticatedUser(), false);
if(!$Basket) if(!$Basket)
{ {

View File

@@ -86,6 +86,50 @@
<label lang="en">Thumbnail</label> <label lang="en">Thumbnail</label>
</subdef> </subdef>
</subdefgroup> </subdefgroup>
<subdefgroup name="document">
<subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>flexpaper</mediatype>
<writeDatas>no</writeDatas>
<baseurl></baseurl>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
<subdef class="thumbnail" name="thumbnail" downloadable="false">
<path>{{datapathweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<method>resample</method>
<dpi>72</dpi>
<size>200</size>
<writeDatas>no</writeDatas>
<baseurl>{{dataurl}}/{{basename}}/subdefs</baseurl>
<label lang="fr">Imagette</label>
<label lang="en">Thumbnail</label>
</subdef>
</subdefgroup>
<subdefgroup name="flash">
<subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<size>200</size>
<writeDatas>no</writeDatas>
<method>resample</method>
<dpi>72</dpi>
<baseurl></baseurl>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
<subdef class="thumbnail" name="thumbnail" downloadable="false">
<path>{{datapathweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<writeDatas>no</writeDatas>
<method>resample</method>
<dpi>72</dpi>
<baseurl>{{dataurl}}/{{basename}}/subdefs</baseurl>
<label lang="fr">Imagette</label>
<label lang="en">Thumbnail</label>
</subdef>
</subdefgroup>
</subdefs> </subdefs>
<description> <description>

View File

@@ -77,12 +77,57 @@
<subdef class="thumbnail" name="thumbnail" downloadable="true"> <subdef class="thumbnail" name="thumbnail" downloadable="true">
<path>{{datapathweb}}{{basename}}/subdefs</path> <path>{{datapathweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype> <mediatype>image</mediatype>
<size>200</size>
<writeDatas>no</writeDatas> <writeDatas>no</writeDatas>
<baseurl>{{dataurl}}/{{basename}}/subdefs</baseurl> <baseurl>{{dataurl}}/{{basename}}/subdefs</baseurl>
<label lang="fr">Imagette</label> <label lang="fr">Imagette</label>
<label lang="en">Thumbnail</label> <label lang="en">Thumbnail</label>
</subdef> </subdef>
</subdefgroup> </subdefgroup>
<subdefgroup name="document">
<subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>flexpaper</mediatype>
<writeDatas>no</writeDatas>
<baseurl></baseurl>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
<subdef class="thumbnail" name="thumbnail" downloadable="false">
<path>{{datapathweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<method>resample</method>
<dpi>72</dpi>
<size>200</size>
<writeDatas>no</writeDatas>
<baseurl>{{dataurl}}/{{basename}}/subdefs</baseurl>
<label lang="fr">Imagette</label>
<label lang="en">Thumbnail</label>
</subdef>
</subdefgroup>
<subdefgroup name="flash">
<subdef class="preview" name="preview" downloadable="false">
<path>{{datapathnoweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<size>200</size>
<writeDatas>no</writeDatas>
<method>resample</method>
<dpi>72</dpi>
<baseurl></baseurl>
<label lang="fr">Prévisualisation</label>
<label lang="en">Preview</label>
</subdef>
<subdef class="thumbnail" name="thumbnail" downloadable="false">
<path>{{datapathweb}}{{basename}}/subdefs</path>
<mediatype>image</mediatype>
<writeDatas>no</writeDatas>
<method>resample</method>
<dpi>72</dpi>
<baseurl>{{dataurl}}/{{basename}}/subdefs</baseurl>
<label lang="fr">Imagette</label>
<label lang="en">Thumbnail</label>
</subdef>
</subdefgroup>
</subdefs> </subdefs>

View File

@@ -390,7 +390,7 @@ class API_V1_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
$repo = $em->getRepository('\Entities\Basket'); $repo = $em->getRepository('\Entities\Basket');
/* @var $repo \Repositories\BasketRepository */ /* @var $repo \Repositories\BasketRepository */
$basket = $repo->findUserBasket($ssel_id, self::$core->getAuthenticatedUser()); $basket = $repo->findUserBasket($ssel_id, self::$core->getAuthenticatedUser(), true);
$this->assertTrue($basket instanceof \Entities\Basket); $this->assertTrue($basket instanceof \Entities\Basket);
$em->remove($basket); $em->remove($basket);
@@ -424,7 +424,7 @@ class API_V1_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
try try
{ {
$repo->findUserBasket($ssel_id, $user); $repo->findUserBasket($ssel_id, $user, true);
$this->fail('An exception should have been raised'); $this->fail('An exception should have been raised');
} }
catch (Exception_NotFound $e) catch (Exception_NotFound $e)

View File

@@ -15,4 +15,6 @@
{{cap_bas.format_caption(record, highlight|default(''), searchEngine|default(null))}} {{cap_bas.format_caption(record, highlight|default(''), searchEngine|default(null))}}
{% elseif view == 'overview' %} {% elseif view == 'overview' %}
{{cap_ovr.format_caption(record, highlight|default(''), searchEngine|default(null))}} {{cap_ovr.format_caption(record, highlight|default(''), searchEngine|default(null))}}
{% elseif view == 'publi' %}
{{cap_pub.format_caption(record, '', null)}}
{% endif %} {% endif %}

View File

@@ -18,6 +18,7 @@
</div> </div>
<ul style="margin:10px 0 0 20px;width:200px;"> <ul style="margin:10px 0 0 20px;width:200px;">
{% for validation_data in basket_element.getValidationDatas() %} {% for validation_data in basket_element.getValidationDatas() %}
{% if basket.getValidation().getParticipant(user).getCanSeeOthers() or validation_data.getParticipant().getUser() == core.getAuthenticatedUser() %}
{% if validation_data.getAgreement() == true %} {% if validation_data.getAgreement() == true %}
{% set classuser = 'agree' %} {% set classuser = 'agree' %}
{% elseif validation_data.getAgreement() is null %} {% elseif validation_data.getAgreement() is null %}
@@ -25,11 +26,14 @@
{% else %} {% else %}
{% set classuser = 'disagree' %} {% set classuser = 'disagree' %}
{% endif %} {% endif %}
{% set participant = validation_data.getParticipant().getUser() %}
<li class="{% if participant.get_id() == user.get_id() %}me{% endif %} {{classuser}} userchoice">{{participant.get_display_name()}}</li>
{% endif %}
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}
{% if basket_element and basket_element.getBasket().getValidation() %} {% if basket_element and basket_element.getBasket().getValidation() and basket.getValidation().getParticipant(user).getCanAgree() %}
<div class="left choices"> <div class="left choices">
<div style="height:60px;margin-top:15px;"> <div style="height:60px;margin-top:15px;">
<table cellspacing="0" cellpadding="0" style="width:230px;"> <table cellspacing="0" cellpadding="0" style="width:230px;">

View File

@@ -1,4 +1,4 @@
{% if basket.getValidation() %} {% if basket.getValidation() and basket.getValidation().getParticipant(user).getCanAgree() %}
<button class="confirm_report" title="{% trans 'validation::envoyer mon rapport'%}"> <button class="confirm_report" title="{% trans 'validation::envoyer mon rapport'%}">
<img src="/skins/lightbox/envoyerie6.gif"/> <img src="/skins/lightbox/envoyerie6.gif"/>
{% trans 'validation::envoyer mon rapport'%} {% trans 'validation::envoyer mon rapport'%}

View File

@@ -4,7 +4,11 @@
<tbody> <tbody>
<tr> <tr>
<td class="title title15">{% trans 'VALIDATION' %}</td> <td class="title title15">{% trans 'VALIDATION' %}</td>
<td class="report_wrapper;"><a class="report" href="#">{% trans 'lightbox::recaptitulatif' %}</a></td> <td class="report_wrapper">
<a class="report" href="#">
{% trans 'lightbox::recaptitulatif' %}
</a>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -12,6 +16,7 @@
<div>{{ basket.getValidation().getValidationString(user) }}</div> <div>{{ basket.getValidation().getValidationString(user) }}</div>
<ul> <ul>
{% for choice in basket_element.getValidationDatas() %} {% for choice in basket_element.getValidationDatas() %}
{% if basket.getValidation().getParticipant(user).getCanSeeOthers() or choice.getParticipant().getUser() == core.getAuthenticatedUser() %}
{% if choice.getAgreement() == true %} {% if choice.getAgreement() == true %}
{% set classuser = 'agree' %} {% set classuser = 'agree' %}
{% elseif choice.getAgreement() is null %} {% elseif choice.getAgreement() is null %}
@@ -21,12 +26,13 @@
{% endif %} {% endif %}
{% set participant = choice.getParticipant().getUser() %} {% set participant = choice.getParticipant().getUser() %}
<li class="{% if participant.get_id() == user.get_id() %}me{% endif %} {{classuser}} userchoice">{{participant.get_display_name()}}</li> <li class="{% if participant.get_id() == user.get_id() %}me{% endif %} {{classuser}} userchoice">{{participant.get_display_name()}}</li>
{% endif %}
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}
</div> </div>
<div class="PNB user_infos"> <div class="PNB user_infos">
{% if basket_element and basket_element.getBasket().getValidation() %} {% if basket_element and basket_element.getBasket().getValidation() and basket.getValidation().getParticipant(user).getCanAgree() %}
<div class="PNB choices"> <div class="PNB choices">
<div style="height:60px;"> <div style="height:60px;">
{% set agreement = basket_element.getUserValidationDatas(user).getAgreement() %} {% set agreement = basket_element.getUserValidationDatas(user).getAgreement() %}

View File

@@ -1,4 +1,4 @@
{% if basket.getValidation() %} {% if basket.getValidation() and basket.getValidation().getParticipant(user).getCanAgree() %}
<button class="confirm_report" title="{% trans 'validation::envoyer mon rapport'%}"> <button class="confirm_report" title="{% trans 'validation::envoyer mon rapport'%}">
<img src="/skins/lightbox/envoyer.png"/> <img src="/skins/lightbox/envoyer.png"/>
{% trans 'validation::envoyer mon rapport'%} {% trans 'validation::envoyer mon rapport'%}

View File

@@ -1,5 +1,5 @@
{% import 'common/thumbnail.html' as thumbnail %} {% import 'common/thumbnail.html' as thumbnail %}
<div style="margin:5px;width:280px;height:300px;position:relative;"> <div class="noToolTipResize" style="margin:5px;width:280px;height:300px;position:relative;">
<div> <div>
<span style="font-weight:bold;font-size:14px;"> <span style="font-weight:bold;font-size:14px;">
{{ basket.getName() }} {{ basket.getName() }}
@@ -25,3 +25,5 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
</div>
</div>

View File

@@ -1,5 +1,5 @@
{% import 'common/thumbnail.html' as thumbnail %} {% import 'common/thumbnail.html' as thumbnail %}
<div style="margin:5px;width:280px;height:300px;position:relative;"> <div class="noToolTipResize" style="margin:5px;width:280px;height:300px;position:relative;">
<div> <div>
<span style="font-weight:bold;font-size:14px;"> <span style="font-weight:bold;font-size:14px;">
{{ Story.get_title() }} {{ Story.get_title() }}
@@ -25,3 +25,5 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
</div>
</div>

View File

@@ -61,7 +61,7 @@
{% import 'prod/WorkZone/Macros.twig' as Macros %} {% import 'prod/WorkZone/Macros.twig' as Macros %}
{% if basket.getValidation() and basket.getValidation().getInitiator() == core.getAuthenticatedUser() %} {% if basket.getValidation() %}
{{ Macros.display_validation(basket, ordre, user, session) }} {{ Macros.display_validation(basket, ordre, user, session) }}
{% else %} {% else %}
{{ Macros.display_basket(basket, user, session) }} {{ Macros.display_basket(basket, user, session) }}

View File

@@ -3,13 +3,13 @@
<div class="PNB10 Browser"> <div class="PNB10 Browser">
<div class="PNB10" style="width:190px;right:auto;"> <div class="PNB10" style="width:190px;right:auto;">
<form name="BasketBrowser" method="GET" action="/prod/WorkZone/Browse/Search/"> <form name="BasketBrowser" method="GET" action="/prod/WorkZone/Browse/Search/">
<input name="Query" class="Query" placeholder="{% trans 'Search baskets' %}" type="text"/> <input name="Query" class="Query search" placeholder="{% trans 'Search baskets' %}" type="text"/>
<h1>{% trans 'See' %}</h1> <h1>{% trans 'See' %}</h1>
<ul> <ul>
<li class="first"> <li class="first">
<input id="basket_browse_all" type="radio" name="Type" value="" checked="checked" /> <input id="basket_browse_all" type="radio" name="Type" value="" checked="checked" />
<label for="basket_browse_all"> <label class="selected" for="basket_browse_all">
{% trans 'All' %} {% trans 'All' %}
</label> </label>
</li> </li>
@@ -242,7 +242,14 @@
loadResults($this.serializeArray(), $this.attr('action')); loadResults($this.serializeArray(), $this.attr('action'));
return false; return false;
}).trigger('submit').find('input').bind('change', function(){ }).trigger('submit').find('label').bind('click', function(){
var input = $(this).prev('input'),
name = input.attr('name');
var inputs = $('input[name="' + $(this).prev('input').attr('name') + '"]', $container);
inputs.removeAttr('checked').next('label').removeClass('selected');
input.attr('checked', 'checked').next('label').addClass('selected');
$('form[name="BasketBrowser"]', $container).trigger('submit') $('form[name="BasketBrowser"]', $container).trigger('submit')
}); });

View File

@@ -4,6 +4,85 @@
<div class="insidebloc"> <div class="insidebloc">
{% set content = WorkZone.getContent(srt) %} {% set content = WorkZone.getContent(srt) %}
{% for basket in content.get(constant('\\Alchemy\\Phrasea\\Helper\\WorkZone::VALIDATIONS')) %}
<div tooltipsrc="/prod/tooltip/basket/{{basket.getId()}}/"
id="SSTT_{{basket.getId()}}"
class="basketTips ui-accordion-header ui-state-default
ui-corner-all header SSTT basket {% if not basket.getIsRead() %}unread{% endif %}
{% if basket.getId() == selected_id and selected_type == 'basket' %}active{% endif %}">
<a href="/prod/baskets/{{ basket.getId() }}/">
<span>
<img src='/skins/icons/basket.gif' title=''/>
{{basket.getName()}}
</span>
</a>
<div class="menu">
{% if basket.getValidation() %}
<img title="{% trans 'Vous avez envoye une demande de validation de document sur ce panier' %}"
class="basketTips" src="/skins/icons/valid.png"/>
{% endif %}
{% if basket.getPusher() %}
{% set pusher = basket.getPusher().get_display_name() %}
<img class="basketTips" title="{% trans %}paniers:: panier recu de {{pusher}}{% endtrans %}"
src="/skins/icons/push16.png"/>
{% endif %}
<a style="cursor:pointer;display:inline;padding:0;margin:0;" class="contextMenuTrigger">&#9660;</a>
<table cellspacing="0" cellpadding="0" style="display:none;" class="contextMenu basketcontextmenu">
<tbody>
<tr>
<td>
<div class="context-menu context-menu-theme-vista">
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="downloadThis('SSTTID={{basket.getId()}}');">{% trans 'action::exporter' %}
</div>
</div>
<div title="" class="context-menu-item menu3-custom-item">
<div onclick="editThis('SSTT','{{basket.getId()}}');" style=""
class="context-menu-item-inner">{% trans 'action::editer' %}
</div>
</div>
<div title="" class="context-menu-item">
<div class="context-menu-item-inner">
<a href="/lightbox/compare/{{basket.getId()}}/" target="_blank">Lightbox</a>
</div>
</div>
{% if basket.getValidation() %}
<div title="" class="context-menu-item">
<a target="_blank" href="/lightbox/validate/{{basket.getId()}}/">
<div class="context-menu-item-inner">
{% trans 'action::Valider' %}
</div>
</a>
</div>
{% endif %}
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="archiveBasket({{ basket.getId() }});return false;">
{% trans 'Archive' %}
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="SSTT_content_{{basket.getId()}}" class="content basket" style="overflow:hidden;">
</div>
{% endfor %}
{% for basket in content.get(constant('\\Alchemy\\Phrasea\\Helper\\WorkZone::BASKETS')) %} {% for basket in content.get(constant('\\Alchemy\\Phrasea\\Helper\\WorkZone::BASKETS')) %}
@@ -103,6 +182,8 @@
{% endfor %} {% endfor %}
{% for story in content.get(constant('\\Alchemy\\Phrasea\\Helper\\WorkZone::STORIES')) %} {% for story in content.get(constant('\\Alchemy\\Phrasea\\Helper\\WorkZone::STORIES')) %}
@@ -254,6 +335,7 @@
<td style="width:100%;"> <td style="width:100%;">
<table style=width:100%> <table style=width:100%>
{% for choice in basket_element.getValidationDatas() %} {% for choice in basket_element.getValidationDatas() %}
{% if basket.getValidation().getParticipant(user).getCanSeeOthers() or choice.getParticipant().getUser() == core.getAuthenticatedUser() %}
<tr> <tr>
<td> {{ choice.getParticipant().getUser().get_display_name() }} </td> <td> {{ choice.getParticipant().getUser().get_display_name() }} </td>
<td> <td>
@@ -271,6 +353,7 @@
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endif %}
{% endfor %} {% endfor %}
</table> </table>
</td> </td>

View File

@@ -27,7 +27,7 @@
</td> </td>
{% if list.getOwner(user).getRole() >= constant('\\Entities\\UsrListOwner::ROLE_ADMIN') %} {% if list.getOwner(user).getRole() >= constant('\\Entities\\UsrListOwner::ROLE_ADMIN') %}
<td style="text-align:right;width:150px;"> <td style="text-align:right;width:150px;">
<button> <button class="deleter">
{% trans 'Delete' %} {% trans 'Delete' %}
<input type="hidden" name="list_id" value="{{ list.getId() }}"/> <input type="hidden" name="list_id" value="{{ list.getId() }}"/>
</button> </button>
@@ -61,7 +61,7 @@
<form name="list-editor-search" method="POST" action="/prod/push/edit-list/{{ list.getId() }}/"> <form name="list-editor-search" method="POST" action="/prod/push/edit-list/{{ list.getId() }}/">
<div class="PNB10" style="height:160px;"> <div class="PNB10" style="height:160px;">
<div class="PNB" style="height:40px;bottom:auto;"> <div class="PNB" style="height:40px;bottom:auto;">
<button class="Refresher">&lt;{% trans 'View' %}</button> <button class="Refresher" type="button">&lt;{% trans 'View' %}</button>
<select name="like_field"> <select name="like_field">
<option value="usr_login"> <option value="usr_login">
{% trans 'Push::filter on login' %} {% trans 'Push::filter on login' %}

View File

@@ -73,4 +73,4 @@
$('.menu_feeds').buttonsetv(); $('.menu_feeds').buttonsetv();
}); });
</script> </script>
</div> s</div>

View File

@@ -380,7 +380,7 @@
<div class="PNB" id="rightFrame" style="left:auto;width:{{w2}}%;"> <div class="PNB" id="rightFrame" style="left:auto;width:{{w2}}%;">
<div id="headBlock" class="PNB" style="height:90px;bottom:auto;"> <div id="headBlock" class="PNB" style="height:90px;bottom:auto;">
<div style="margin:15px auto;width:580px;"> <div style="margin:15px auto;line-height:30px;width:580px;">
@@ -711,11 +711,20 @@
</div> </div>
</span> </span>
{% elseif user.ACL().has_right('push') %} {% elseif user.ACL().has_right('push') %}
<span class="buttonset"> <span class="verticalbuttonset">
<button class="TOOL_pushdoc_btn results_window"> <span>
<button class="TOOL_pushdoc_btn default_action results_window">
<img src="/skins/icons/push16.png"/> <img src="/skins/icons/push16.png"/>
{% trans 'action : push' %} {% trans 'action : push' %}
</button> </button>
<button class="trigger">{% trans 'Select an action' %}</button>
</span>
<div class="submenu">
<button class="TOOL_feedback_btn results_window">
<img src="/skins/icons/feedback16.png"/>
{% trans 'Feedback' %}
</button>
</div>
</span> </span>
{% elseif user.ACL().has_right('bas_chupub') %} {% elseif user.ACL().has_right('bas_chupub') %}
<span class="verticalbuttonset"> <span class="verticalbuttonset">

View File

@@ -4,9 +4,9 @@
<li class="title">{% trans 'Apparait aussi dans ces reportages' %}</li> <li class="title">{% trans 'Apparait aussi dans ces reportages' %}</li>
{% for par in parents %} {% for par in parents %}
<li onclick="openPreview('REG',0,'{{par.get_serialize_key()}}'); return(false);" <li onclick="openPreview('REG',0,'{{par.get_serialize_key()}}'); return(false);"
class="otherRegToolTip" {% if show_tooltips %}tooltipsrc="/prod/tooltip/caption/{{par.get_sbas_id()}}/{{par.get_record_id()}}/basket/" {% endif %}> class="otherRegToolTip" {% if registry.get('GV_rollover_reg_preview') %}tooltipsrc="/prod/tooltip/caption/{{par.get_sbas_id()}}/{{par.get_record_id()}}/basket/" {% endif %}>
<img src="{{par.get_thumbnail().get_url()}}" style="width:25px;height:25px;"/> <img src="{{par.get_thumbnail().get_url()}}" style="width:25px;height:25px;"/>
<span class="title"> {{par.get_reg_name()|raw}}</span> <span class="title"> {{ par.get_title() }} </span>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>

View File

@@ -13,7 +13,7 @@
{% endif %} {% endif %}
{% set tooltip = '' %} {% set tooltip = '' %}
{% if GV_rollover_reg_preview %} {% if registry.get('GV_rollover_reg_preview') %}
{% set tooltip = 'tooltipsrc="/prod/tooltip/caption/' ~ child.getRecord().get_sbas_id() ~ '/' ~ child.getRecord().get_record_id() ~ '/basket/"' %} {% set tooltip = 'tooltipsrc="/prod/tooltip/caption/' ~ child.getRecord().get_sbas_id() ~ '/' ~ child.getRecord().get_record_id() ~ '/basket/"' %}
{% endif %} {% endif %}

View File

@@ -13,7 +13,7 @@
{% endif %} {% endif %}
{% set tooltip = '' %} {% set tooltip = '' %}
{% if GV_rollover_reg_preview %} {% if registry.get('GV_rollover_reg_preview') %}
{% set tooltip = 'tooltipsrc="/prod/tooltip/preview/' ~ child.get_record().get_sbas_id() ~ '/' ~ child.get_record().get_record_id() ~ '/"'%} {% set tooltip = 'tooltipsrc="/prod/tooltip/preview/' ~ child.get_record().get_sbas_id() ~ '/' ~ child.get_record().get_record_id() ~ '/"'%}
{% endif %} {% endif %}

View File

@@ -32,7 +32,7 @@
{% endif %} {% endif %}
{% set tooltip = '' %} {% set tooltip = '' %}
{% if GV_rollover_reg_preview %} {% if registry.get('GV_rollover_reg_preview') %}
{% set tooltip = 'tooltipsrc="/prod/tooltip/caption/'~ contained.get_sbas_id() ~'/'~ contained.get_record_id() ~ '/preview/?number=' ~ contained.get_number() ~ '"' %} {% set tooltip = 'tooltipsrc="/prod/tooltip/caption/'~ contained.get_sbas_id() ~'/'~ contained.get_record_id() ~ '/preview/?number=' ~ contained.get_number() ~ '"' %}
{% endif %} {% endif %}

View File

@@ -34,9 +34,12 @@
{% set user_rollover_thumbnail = user.getPrefs('rollover_thumbnail') %} {% set user_rollover_thumbnail = user.getPrefs('rollover_thumbnail') %}
{% set extraclass = '' %} {% set extraclass = '' %}
{% if user_rollover_thumbnail == 'caption' %} {% if user_rollover_thumbnail == 'caption' and searchEngine is not null %}
{% set extraclass = extraclass ~ ' captionTips' %} {% set extraclass = extraclass ~ ' captionTips' %}
{% set tooltipsrc = '/prod/tooltip/caption/' ~ record.get_sbas_id() ~ '/' ~ record.get_record_id() ~ '/answer/?number=' ~record.get_number() %} {% set tooltipsrc = '/prod/tooltip/caption/' ~ record.get_sbas_id() ~ '/' ~ record.get_record_id() ~ '/answer/?number=' ~record.get_number() %}
{% elseif user_rollover_thumbnail == 'caption' and searchEngine is null %}
{% set extraclass = extraclass ~ ' captionTips' %}
{% set tooltipsrc = '/prod/tooltip/caption/' ~ record.get_sbas_id() ~ '/' ~ record.get_record_id() ~ '/publi/' %}
{% elseif user_rollover_thumbnail == 'preview' %} {% elseif user_rollover_thumbnail == 'preview' %}
{% set extraclass = extraclass ~ ' captionTips' %} {% set extraclass = extraclass ~ ' captionTips' %}
{% set tooltipsrc = '/prod/tooltip/preview/' ~ record.get_sbas_id() ~ '/' ~ record.get_record_id() ~ '/' %} {% set tooltipsrc = '/prod/tooltip/preview/' ~ record.get_sbas_id() ~ '/' ~ record.get_record_id() ~ '/' %}

View File

@@ -341,13 +341,8 @@
<tr> <tr>
<td> <td>
<p> <p>
<a href="http://www.phraseanet.com/download/prerequisite/" target="_blank"> <a href="https://docs.phraseanet.com/Admin/" target="_blank">
{% trans 'Pre-requis' %} {% trans 'Prerequisite and Configuration' %}
</a>
</p>
<p>
<a href="http://www.phraseanet.com/download/" target="_blank">
{% trans 'Configuration du serveur web' %}
</a> </a>
</p> </p>
</td> </td>

View File

@@ -66,24 +66,34 @@ switch ($parm['action'])
case 'EMPTYBASE': case 'EMPTYBASE':
$parm = $request->get_parms(array('sbas_id' => http_request::SANITIZE_NUMBER_INT)); $parm = $request->get_parms(array('sbas_id' => http_request::SANITIZE_NUMBER_INT));
$message = _('Base empty successful');
try try
{ {
$sbas_id = (int) $parm['sbas_id']; $sbas_id = (int) $parm['sbas_id'];
$databox = databox::get_instance($sbas_id); $databox = databox::get_instance($sbas_id);
$class_name = 'task_period_emptyColl'; $class_name = 'task_period_emptyColl';
foreach ($databox->get_collections() as $collection) foreach ($databox->get_collections() as $collection)
{
if($collection->get_record_amount() <= 500)
{
$collection->empty_collection(500);
}
else
{ {
$settings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><tasksettings><base_id>" . $collection->get_base_id() . "</base_id></tasksettings>"; $settings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><tasksettings><base_id>" . $collection->get_base_id() . "</base_id></tasksettings>";
task_abstract::create($appbox, $class_name, $settings); task_abstract::create($appbox, $class_name, $settings);
$message = _('A task has been creted, please run it to complete empty collection');
}
} }
} }
catch (Exception $e) catch (Exception $e)
{ {
$message = _('An error occurred');
} }
$output = p4string::jsonencode(array('message'=>$message));
break; break;
case 'EMPTYCOLL': case 'EMPTYCOLL':
$message = _('Collection empty successful');
$parm = $request->get_parms( $parm = $request->get_parms(
array( array(
"sbas_id" => http_request::SANITIZE_NUMBER_INT "sbas_id" => http_request::SANITIZE_NUMBER_INT
@@ -95,15 +105,24 @@ switch ($parm['action'])
$databox = databox::get_instance($parm['sbas_id']); $databox = databox::get_instance($parm['sbas_id']);
$collection = collection::get_from_coll_id($databox, $parm['coll_id']); $collection = collection::get_from_coll_id($databox, $parm['coll_id']);
if($collection->get_record_amount() <= 500)
{
$collection->empty_collection(500);
}
else
{
$class_name = 'task_period_emptyColl'; $class_name = 'task_period_emptyColl';
$settings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<tasksettings>\n<base_id>" . $collection->get_base_id() . "</base_id></tasksettings>"; $settings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<tasksettings>\n<base_id>" . $collection->get_base_id() . "</base_id></tasksettings>";
task_abstract::create($appbox, $class_name, $settings); task_abstract::create($appbox, $class_name, $settings);
$message = _('A task has been creted, please run it to complete empty collection');
}
} }
catch (Exception $e) catch (Exception $e)
{ {
$message = _('An error occurred');
} }
$output = p4string::jsonencode(array('message'=>$message));
break; break;
case 'SETTASKSTATUS': case 'SETTASKSTATUS':

View File

@@ -291,6 +291,7 @@ phrasea::headers();
}, },
success: function(data){ success: function(data){
alert(data.message);
return; return;
} }
}); });

View File

@@ -194,6 +194,7 @@ if ($parm['act'])
dataType: 'json', dataType: 'json',
data: { sbas_id:<?php echo $sbas_id ?> }, data: { sbas_id:<?php echo $sbas_id ?> },
success: function(data){ success: function(data){
alert(data.message);
} }
}); });
} }

View File

@@ -41,7 +41,7 @@ if ($Request->get('act') == "ADDIMG" && ($Request->get("p0") != "" && $Request->
{ {
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$basket = $repository->findUserBasket($Request->get('courChuId'), $user); $basket = $repository->findUserBasket($Request->get('courChuId'), $user, true);
$sbas_id = phrasea::sbasFromBas($Request->get('bas')); $sbas_id = phrasea::sbasFromBas($Request->get('bas'));
$record = new record_adapter($sbas_id, $Request->get('p0')); $record = new record_adapter($sbas_id, $Request->get('p0'));
@@ -61,7 +61,7 @@ if ($Request->get('act') == "DELCHU" && ($Request->get("p0") != "" && $Request->
{ {
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$basket = $repository->findUserBasket($Request->get('courChuId'), $user); $basket = $repository->findUserBasket($Request->get('courChuId'), $user, true);
$em->remove($basket); $em->remove($basket);
$em->flush(); $em->flush();
@@ -142,7 +142,7 @@ $out .= '</td><td style="width:40%">';
$em = $Core->getEntityManager(); $em = $Core->getEntityManager();
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$basket = $repository->findUserBasket($courChuId, $user); $basket = $repository->findUserBasket($courChuId, $user, true);
$jscriptnochu = $basket->getName() . " : " . sprintf(_('paniers:: %d documents dans le panier'), $basket->getElements()->count()); $jscriptnochu = $basket->getName() . " : " . sprintf(_('paniers:: %d documents dans le panier'), $basket->getElements()->count());

View File

@@ -57,8 +57,7 @@ switch ($parm['action'])
if ($record->is_from_reg()) if ($record->is_from_reg())
{ {
$train = $twig->render('prod/preview/reg_train.html', array( $train = $twig->render('prod/preview/reg_train.html', array(
'record' => $record, 'record' => $record
'GV_rollover_reg_preview' => $registry->get('GV_rollover_reg_preview')
) )
); );
} }
@@ -66,8 +65,7 @@ switch ($parm['action'])
if ($record->is_from_basket() && $parm['roll']) if ($record->is_from_basket() && $parm['roll'])
{ {
$train = $twig->render('prod/preview/basket_train.html', array( $train = $twig->render('prod/preview/basket_train.html', array(
'record' => $record, 'record' => $record
'GV_rollover_reg_preview' => $registry->get('GV_rollover_reg_preview')
) )
); );
} }
@@ -93,8 +91,7 @@ switch ($parm['action'])
) )
, "others" => $twig->render('prod/preview/appears_in.html', array( , "others" => $twig->render('prod/preview/appears_in.html', array(
'parents' => $record->get_grouping_parents(), 'parents' => $record->get_grouping_parents(),
'baskets' => $record->get_container_baskets(), 'baskets' => $record->get_container_baskets()
'show_tooltips' => $registry->get('GV_rollover_reg_preview')
) )
) )
, "current" => $train , "current" => $train

View File

@@ -48,7 +48,7 @@ if ($parm["ssttid"] != "")
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($Request->get('ssttid'), $Core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($Request->get('ssttid'), $Core->getAuthenticatedUser(), false);
$exportname = str_replace(' ', '_', $basket->getName()) . "_" . date("Y-n-d"); $exportname = str_replace(' ', '_', $basket->getName()) . "_" . date("Y-n-d");
} }

View File

@@ -251,8 +251,11 @@
var width = 'auto'; var width = 'auto';
var height = 'auto'; var height = 'auto';
var ratio = 1; var ratio = 1;
var resizeImgTips = false;
var $imgTips = $('#' + settings($.tooltip.current).id + ' .imgTips'); var $imgTips = $('#' + settings($.tooltip.current).id + ' .imgTips');
if ($imgTips[0]) {
if ($imgTips[0] && $('#' + settings($.tooltip.current).id + ' .noToolTipResize').length === 0) {
resizeImgTips = true;
width = parseInt($imgTips[0].style.width); width = parseInt($imgTips[0].style.width);
height = parseInt($imgTips[0].style.height); height = parseInt($imgTips[0].style.height);
ratio = width/height; ratio = width/height;
@@ -325,7 +328,7 @@
//correction par ratio //correction par ratio
if ($('#' + settings($.tooltip.current).id + ' .imgTips')[0]) { if (resizeImgTips && $('#' + settings($.tooltip.current).id + ' .imgTips')[0]) {
if(ratioSurfaceH > ratioImage) if(ratioSurfaceH > ratioImage)
{ {
@@ -403,7 +406,7 @@
//si ya une image on re-ajuste au ratio //si ya une image on re-ajuste au ratio
if ($('#' + settings($.tooltip.current).id + ' .imgTips')[0]) { if (resizeImgTips && $('#' + settings($.tooltip.current).id + ' .imgTips')[0]) {
if(width == 'auto') if(width == 'auto')
width = $('#' + settings($.tooltip.current).id).width(); width = $('#' + settings($.tooltip.current).id).width();
if(height == 'auto') if(height == 'auto')
@@ -439,20 +442,14 @@
top: top top: top
}); });
if(resizeImgTips)
{
$imgTips.css({ $imgTips.css({
width: width, width: width,
height: height height: height
// ,
// left: left,
// top: top
}); });
}
// if($imgTips.size() > 0)
// {
// $('#' + settings($.tooltip.current).id).image_enhance('destroy').image_enhance({
// zoomable:true
// });
// }
} }
} }

View File

@@ -446,9 +446,11 @@
console.error('Unable to set a value to a readonly field'); console.error('Unable to set a value to a readonly field');
} }
return; return 0;
} }
var n = 0;
for(d in this.datas) for(d in this.datas)
{ {
if(this.datas[d].getVocabularyId() !== null) if(this.datas[d].getVocabularyId() !== null)
@@ -463,6 +465,9 @@
{ {
continue; continue;
} }
n++;
this.removeValue(value); this.removeValue(value);
if(!this.hasValue(replacedValue)) if(!this.hasValue(replacedValue))
@@ -473,11 +478,7 @@
this.options.dirty = true; this.options.dirty = true;
} }
/** return n;
* cleanup and remove duplicates
*/
return this;
}, },
exportDatas : function() { exportDatas : function() {

View File

@@ -263,6 +263,12 @@
} }
}); });
if(typeof $this.options.selectStop === 'function')
{
$this.options.selectStop(jQuery.Event('selectStop'), $this);
}
return this; return this;
} }
}; };

View File

@@ -50,7 +50,7 @@ if ($parm["ssttid"] != "")
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($Request->get('ssttid'), $Core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($Request->get('ssttid'), $Core->getAuthenticatedUser(), false);
$exportname = str_replace(' ', '_', $basket->getName()) . "_" . date("Y-n-d"); $exportname = str_replace(' ', '_', $basket->getName()) . "_" . date("Y-n-d");
} }

View File

@@ -243,7 +243,7 @@ $user = User_Adapter::getInstance($usr_id, $appbox);
$repository = $em->getRepository('\Entities\Basket'); $repository = $em->getRepository('\Entities\Basket');
/* @var $repository \Repositories\BasketRepository */ /* @var $repository \Repositories\BasketRepository */
$Basket = $repository->findUserBasket($Request->get('SSTTID'), $Core->getAuthenticatedUser()); $Basket = $repository->findUserBasket($Request->get('SSTTID'), $Core->getAuthenticatedUser(), false);
foreach ($Basket->getElements() as $basket_element) foreach ($Basket->getElements() as $basket_element)
{ {

View File

@@ -55,6 +55,7 @@ if ($parm['ACT'] === null)
$Basket = $repository->findUserBasket( $Basket = $repository->findUserBasket(
$Request->get('SSTTID') $Request->get('SSTTID')
, $Core->getAuthenticatedUser() , $Core->getAuthenticatedUser()
, false
); );
foreach ($Basket->getElements() as $basket_element) foreach ($Basket->getElements() as $basket_element)

View File

@@ -576,7 +576,7 @@
var initRight = function(){ var initRight = function(){
var $container = this.container; var $container = this.container = $('#ListManager .editor');
$('form[name="list-editor-search"]', this.container).bind('submit', function(){ $('form[name="list-editor-search"]', this.container).bind('submit', function(){
@@ -605,11 +605,11 @@
$('button', this.container).button(); $('button', this.container).button();
$('.EditToggle', $('#ListManager')).bind('click', function(){ $('.EditToggle', $container).bind('click', function(){
$('.content.readonly, .content.readwrite', $('#ListManager')).toggle(); $('.content.readonly, .content.readwrite', $('#ListManager')).toggle();
return false; return false;
}); });
$('.Refresher', $('#ListManager')).bind('click', function(){ $('.Refresher', $container).bind('click', function(){
$('#ListManager ul.lists .list.selected a').trigger('click'); $('#ListManager ul.lists .list.selected a').trigger('click');
return false; return false;
}); });
@@ -646,60 +646,6 @@
return false; return false;
}); });
//
// $('.editor input[name="list-add-user"]', this.container).autocomplete({
// minLength: 2,
// source: function( request, response ) {
// $.ajax({
// url: '/prod/push/search-user/',
// dataType: "json",
// data: {
// query: request.term
// },
// success: function( data ) {
// response( data );
// }
// });
// },
// select: function( event, ui ) {
// if(ui.item.type == 'USER')
// {
// var callback = function(list, datas) {
// if($.inArray(ui.item.usr_id, datas.result) >= 0)
// {
// p4.Mustache.Render('List-Badge', ui.item, p4.ListManager.appendBadge);
// }
// $('.counter.current, .list.selected .counter', $('#ListManager')).each(function(){
// $(this).text(parseInt($(this).text()) + datas.result.length);
// });
// console.log('increment counter');
// }
// p4.ListManager.getList().addUser(ui.item.usr_id, callback);
// }
// return false;
// }
// })
// .data( "autocomplete" )._renderItem = function( ul, item ) {
//
// var autocompleter = $('.editor input[name="list-add-user"]', this.container);
//
// autocompleter.addClass('loading');
//
// var callback = function(datas){
// $(datas).data( "item.autocomplete", item ).appendTo( ul );
// autocompleter.data( "autocomplete" ).menu.refresh();
// autocompleter.data('autocomplete')._resizeMenu();
// autocompleter.removeClass('loading');
// };
//
// if(item.type == 'USER')
// {
// var datas = p4.Mustache.Render('List-User-Item', item, callback);
// }
//
// return;
// };
}; };

View File

@@ -1454,7 +1454,7 @@ function replace()
search = new RegExp(r_search, commut); search = new RegExp(r_search, commut);
var r, f; var r, f, n = 0;
for(r in p4.edit.T_records) for(r in p4.edit.T_records)
{ {
if(!p4.edit.T_records[r]._selected) if(!p4.edit.T_records[r]._selected)
@@ -1463,10 +1463,13 @@ function replace()
{ {
if(field == '' || field==f) if(field == '' || field==f)
{ {
p4.edit.T_records[r].fields[f].replaceValue(search, replace); n += p4.edit.T_records[r].fields[f].replaceValue(search, replace);
} }
} }
} }
humane.info($.sprintf(language.nFieldsChanged, n));
updateEditSelectedRecords(null); updateEditSelectedRecords(null);
} }

View File

@@ -888,18 +888,18 @@ $(document).ready(function(){
var sim_rgb = hsl2rgb(hsb.h, hsb.s, sim_b); var sim_rgb = hsl2rgb(hsb.h, hsb.s, sim_b);
var sim_hex = RGBtoHex(sim_rgb.r,sim_rgb.g,sim_rgb.b); var sim_hex = RGBtoHex(sim_rgb.r,sim_rgb.g,sim_rgb.b);
$('style[title=color_selection]').empty().append(
'.diapo.selected,#reorder_box .diapo.selected, #EDIT_ALL .diapo.selected, .list.selected, .list.selected .diapo' +
'{'+
' COLOR: #'+back_hex+';'+
' BACKGROUND-COLOR: #'+hex+';'+
'}');
setPref('background-selection', hex); setPref('background-selection', hex);
setPref('background-selection-disabled', sim_hex); setPref('background-selection-disabled', sim_hex);
setPref('fontcolor-selection', back_hex); setPref('fontcolor-selection', back_hex);
$('style[title=color_selection]').empty()
var datas = '.diapo.selected,#reorder_box .diapo.selected, #EDIT_ALL .diapo.selected, .list.selected, .list.selected .diapo' +
'{'+
' COLOR: #'+back_hex+';'+
' BACKGROUND-COLOR: #'+hex+';'+
'}';
$('style[title=color_selection]').empty().text(datas);
} }
}); });
$('#backcolorpickerHolder').find('.colorpicker_submit').append($('#backcolorpickerHolder .submiter')).bind('click',function(){ $('#backcolorpickerHolder').find('.colorpicker_submit').append($('#backcolorpickerHolder .submiter')).bind('click',function(){

View File

@@ -152,7 +152,7 @@ switch ($action)
$parm = $request->get_parms('cont', 'pos'); $parm = $request->get_parms('cont', 'pos');
$record = new record_preview('REG', $parm['pos'], $parm['cont']); $record = new record_preview('REG', $parm['pos'], $parm['cont']);
$output = $twig->render('prod/preview/reg_train.html', array('container_records' => $record->get_container()->get_children(), $output = $twig->render('prod/preview/reg_train.html', array('container_records' => $record->get_container()->get_children(),
'record' => $record, 'GV_rollover_reg_preview' => $registry->get('GV_rollover_reg_preview'))); 'record' => $record));
break; break;
case 'GET_ORDERMANAGER': case 'GET_ORDERMANAGER':

View File

@@ -183,12 +183,10 @@ function set_release(el)
$('.loader', el).css({ $('.loader', el).css({
visibility:'hidden' visibility:'hidden'
}); });
if(data.error) if(data.datas)
{ {
return;
}
alert(data.datas); alert(data.datas);
}
return; return;
} }
@@ -708,6 +706,8 @@ function set_agreement(event, el, sselcont_id, boolean_value)
agreement : boolean_value agreement : boolean_value
}, },
success: function(datas){ success: function(datas){
if(!datas.error)
{
if(boolean_value == '1') if(boolean_value == '1')
{ {
$('.agree_'+sselcont_id+'').removeClass('not_decided'); $('.agree_'+sselcont_id+'').removeClass('not_decided');
@@ -725,6 +725,11 @@ function set_agreement(event, el, sselcont_id, boolean_value)
{ {
if(confirm(datas.releasable)) if(confirm(datas.releasable))
$('#basket_options .confirm_report').trigger('click'); $('#basket_options .confirm_report').trigger('click');
}
}
else
{
alert(datas.datas);
} }
return; return;
} }

View File

@@ -217,12 +217,10 @@ function set_release(el)
$('.loader', el).css({ $('.loader', el).css({
visibility:'hidden' visibility:'hidden'
}); });
if(data.error) if(data.datas)
{ {
return;
}
alert(data.datas); alert(data.datas);
}
return; return;
} }
@@ -759,6 +757,8 @@ function set_agreement(event, el, sselcont_id, boolean_value)
agreement : boolean_value agreement : boolean_value
}, },
success: function(datas){ success: function(datas){
if(!datas.error)
{
if(boolean_value == '1') if(boolean_value == '1')
{ {
$('.agree_'+sselcont_id+'').removeClass('not_decided'); $('.agree_'+sselcont_id+'').removeClass('not_decided');
@@ -777,6 +777,11 @@ function set_agreement(event, el, sselcont_id, boolean_value)
if(confirm(datas.releasable)) if(confirm(datas.releasable))
$('#basket_options .confirm_report').trigger('click'); $('#basket_options .confirm_report').trigger('click');
} }
}
else
{
alert(datas.datas);
}
return; return;
} }
}); });

View File

@@ -24,6 +24,8 @@ $(document).ready(function(){
$.mobile.pageLoading(true); $.mobile.pageLoading(true);
}, },
success: function(datas){ success: function(datas){
if(!datas.error)
{
if(agreement == '1') if(agreement == '1')
$('.valid_choice_'+sselcont_id).removeClass('disagree').addClass('agree'); $('.valid_choice_'+sselcont_id).removeClass('disagree').addClass('agree');
else else
@@ -34,6 +36,11 @@ $(document).ready(function(){
alert(datas.datas); alert(datas.datas);
return; return;
} }
}
else
{
alert(datas.datas);
}
return; return;
} }
}); });

View File

@@ -2785,7 +2785,7 @@ dans l'onglet thesaurus : arbres, menus contextuels
#answers .feed #answers .feed
{ {
margin:10px 10px 10px 0; margin:10px;
} }
#answers .feed .entry table.head #answers .feed .entry table.head

View File

@@ -88,7 +88,8 @@
#BasketBrowser input { #BasketBrowser input {
display:none; display:none;
} }
#BasketBrowser input:checked + label { #BasketBrowser input:checked + label,
#BasketBrowser label.selected {
color: #d18827; color: #d18827;
} }
@@ -96,7 +97,8 @@
padding:3px; padding:3px;
display:block; display:block;
border-radius:4px; border-radius:4px;
width:180px; width:155px;
padding-left:25px;
} }
#BasketBrowser form h1{ #BasketBrowser form h1{