added event for recent activities (#2254)

This commit is contained in:
Kevin Papst
2021-01-11 19:13:14 +01:00
committed by GitHub
parent 1de6b5d385
commit cb6924e6d6
7 changed files with 180 additions and 17 deletions

View File

@@ -41,11 +41,23 @@ final class CalendarDragAndDropSourceEvent extends Event
return $this;
}
public function removeSource(DragAndDropSource $source): bool
{
$key = array_search($source, $this->sources, true);
if (false === $key) {
return false;
}
unset($this->sources[$key]);
return true;
}
/**
* @return DragAndDropSource[]
*/
public function getSources(): array
{
return $this->sources;
return array_values($this->sources);
}
}

View File

@@ -0,0 +1,68 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Event;
use App\Entity\Timesheet;
use App\Entity\User;
use Symfony\Contracts\EventDispatcher\Event;
final class RecentActivityEvent extends Event
{
/**
* @var User
*/
private $user;
/**
* @var Timesheet[]
*/
private $recentActivities = [];
/**
* @param User $user
* @param Timesheet[] $recentActivities
*/
public function __construct(User $user, array $recentActivities)
{
$this->user = $user;
$this->recentActivities = $recentActivities;
}
public function getUser(): User
{
return $this->user;
}
/**
* @return Timesheet[]
*/
public function getRecentActivities(): array
{
return array_values($this->recentActivities);
}
public function addRecentActivity(Timesheet $recentActivity): RecentActivityEvent
{
$this->recentActivities[] = $recentActivity;
return $this;
}
public function removeRecentActivity(Timesheet $recentActivity): bool
{
$key = array_search($recentActivity, $this->recentActivities, true);
if (false === $key) {
return false;
}
unset($this->recentActivities[$key]);
return true;
}
}