mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 06:53:15 +00:00

Conflicts: lib/Alchemy/Phrasea/Command/Developer/JavascriptBuilder.php lib/Alchemy/Phrasea/Controller/Prod/Basket.php lib/Alchemy/Phrasea/Core/Provider/TaskManagerServiceProvider.php lib/classes/Exception/Feed/ItemNotFound.php lib/classes/Exception/Feed/PublisherNotFound.php lib/classes/Feed/Abstract.php lib/classes/Feed/Adapter.php lib/classes/Feed/Aggregate.php lib/classes/Feed/Collection.php lib/classes/Feed/CollectionInterface.php lib/classes/Feed/Entry/Adapter.php lib/classes/Feed/Entry/Collection.php lib/classes/Feed/Entry/Interface.php lib/classes/Feed/Entry/Item.php lib/classes/Feed/Entry/ItemInterface.php lib/classes/Feed/Interface.php lib/classes/Feed/Link.php lib/classes/Feed/LinkInterface.php lib/classes/Feed/Publisher/Adapter.php lib/classes/Feed/Publisher/Interface.php lib/classes/Feed/Token.php lib/classes/Feed/TokenAggregate.php lib/classes/Feed/XML/Abstract.php lib/classes/Feed/XML/Atom.php lib/classes/Feed/XML/Cooliris.php lib/classes/Feed/XML/Interface.php lib/classes/Feed/XML/RSS.php lib/classes/Feed/XML/RSS/ImageInterface.php lib/classes/http/request.php lib/classes/module/console/schedulerStart.php lib/classes/module/console/schedulerState.php lib/classes/module/console/schedulerStop.php lib/classes/module/console/taskState.php lib/classes/module/console/tasklist.php lib/classes/module/console/taskrun.php lib/classes/registry.php lib/classes/registryInterface.php lib/classes/set/order.php lib/classes/system/url.php lib/classes/task/Scheduler.php lib/classes/task/appboxAbstract.php lib/classes/task/databoxAbstract.php lib/classes/task/manager.php lib/classes/task/period/RecordMover.php lib/classes/task/period/apibridge.php lib/classes/task/period/archive.php lib/classes/task/period/cindexer.php lib/classes/task/period/emptyColl.php lib/classes/task/period/ftp.php lib/classes/task/period/ftpPull.php lib/classes/task/period/subdef.php lib/classes/task/period/test.php lib/classes/task/period/writemeta.php lib/conf.d/PhraseaFixture/AbstractWZ.php lib/conf.d/PhraseaFixture/Basket/LoadFiveBaskets.php lib/conf.d/PhraseaFixture/Basket/LoadOneBasket.php lib/conf.d/PhraseaFixture/Basket/LoadOneBasketEnv.php lib/conf.d/PhraseaFixture/Lazaret/LoadOneFile.php lib/conf.d/PhraseaFixture/Story/LoadOneStory.php lib/conf.d/PhraseaFixture/UsrLists/ListAbstract.php lib/conf.d/PhraseaFixture/UsrLists/UsrList.php lib/conf.d/PhraseaFixture/UsrLists/UsrListEntry.php lib/conf.d/PhraseaFixture/UsrLists/UsrListOwner.php lib/conf.d/PhraseaFixture/ValidationParticipant/LoadOneParticipant.php lib/conf.d/PhraseaFixture/ValidationParticipant/LoadParticipantWithSession.php lib/conf.d/PhraseaFixture/ValidationSession/LoadOneValidationSession.php
74 lines
2.3 KiB
PHP
74 lines
2.3 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of Phraseanet
|
|
*
|
|
* (c) 2005-2014 Alchemy
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Alchemy\Phrasea\Helper;
|
|
|
|
use Doctrine\Common\Collections\ArrayCollection;
|
|
use Alchemy\Phrasea\Model\Entities\Basket as BasketEntity;
|
|
|
|
class WorkZone extends Helper
|
|
{
|
|
const BASKETS = 'baskets';
|
|
const STORIES = 'stories';
|
|
const VALIDATIONS = 'validations';
|
|
|
|
/**
|
|
*
|
|
* Returns an ArrayCollection containing three keys :
|
|
* - self::BASKETS : an ArrayCollection of the actives baskets
|
|
* (Non Archived)
|
|
* - self::STORIES : an ArrayCollection of working stories
|
|
* - self::VALIDATIONS : the validation people are waiting from me
|
|
*
|
|
* @return \Doctrine\Common\Collections\ArrayCollection
|
|
*/
|
|
public function getContent($sort)
|
|
{
|
|
/* @var $repo_baskets Alchemy\Phrasea\Model\Repositories\BasketRepository */
|
|
$repo_baskets = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
|
|
|
|
$sort = in_array($sort, ['date', 'name']) ? $sort : 'name';
|
|
|
|
$ret = new ArrayCollection();
|
|
|
|
$baskets = $repo_baskets->findActiveByUser($this->app['authentication']->getUser(), $sort);
|
|
|
|
// force creation of a default basket
|
|
if (0 === count($baskets)) {
|
|
$basket = new BasketEntity();
|
|
|
|
$basket->setName($this->app->trans('Default basket'));
|
|
$basket->setOwner($this->app['authentication']->getUser());
|
|
|
|
$this->app['EM']->persist($basket);
|
|
$this->app['EM']->flush();
|
|
$baskets = [$basket];
|
|
}
|
|
|
|
$validations = $repo_baskets->findActiveValidationByUser($this->app['authentication']->getUser(), $sort);
|
|
|
|
/* @var $repo_stories Alchemy\Phrasea\Model\Repositories\StoryWZRepository */
|
|
$repo_stories = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\StoryWZ');
|
|
|
|
$stories = $repo_stories->findByUser($this->app, $this->app['authentication']->getUser(), $sort);
|
|
|
|
$ret->set(self::BASKETS, $baskets);
|
|
$ret->set(self::VALIDATIONS, $validations);
|
|
$ret->set(self::STORIES, $stories);
|
|
|
|
return $ret;
|
|
}
|
|
|
|
protected function sortBaskets(array $baskets)
|
|
{
|
|
}
|
|
}
|