Initial Upload
This commit is contained in:
50
lib/Listener/OnFolderMoving/DataSetListener.php
Normal file
50
lib/Listener/OnFolderMoving/DataSetListener.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (C) 2022 Xibo Signage Ltd
|
||||
*
|
||||
* Xibo - Digital Signage - http://www.xibo.org.uk
|
||||
*
|
||||
* This file is part of Xibo.
|
||||
*
|
||||
* Xibo is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* Xibo is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Xibo. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
namespace Xibo\Listener\OnFolderMoving;
|
||||
|
||||
use Xibo\Event\FolderMovingEvent;
|
||||
use Xibo\Factory\DataSetFactory;
|
||||
|
||||
class DataSetListener
|
||||
{
|
||||
/**
|
||||
* @var DataSetFactory
|
||||
*/
|
||||
private $dataSetFactory;
|
||||
|
||||
public function __construct(DataSetFactory $dataSetFactory)
|
||||
{
|
||||
$this->dataSetFactory = $dataSetFactory;
|
||||
}
|
||||
|
||||
public function __invoke(FolderMovingEvent $event)
|
||||
{
|
||||
$folder = $event->getFolder();
|
||||
$newFolder = $event->getNewFolder();
|
||||
|
||||
foreach ($this->dataSetFactory->getByFolderId($folder->getId()) as $dataSet) {
|
||||
$dataSet->folderId = $newFolder->getId();
|
||||
$dataSet->permissionsFolderId = $newFolder->getPermissionFolderIdOrThis();
|
||||
$dataSet->updateFolders('dataset');
|
||||
}
|
||||
}
|
||||
}
|
||||
55
lib/Listener/OnFolderMoving/FolderListener.php
Normal file
55
lib/Listener/OnFolderMoving/FolderListener.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (C) 2022 Xibo Signage Ltd
|
||||
*
|
||||
* Xibo - Digital Signage - http://www.xibo.org.uk
|
||||
*
|
||||
* This file is part of Xibo.
|
||||
*
|
||||
* Xibo is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* Xibo is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Xibo. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
namespace Xibo\Listener\OnFolderMoving;
|
||||
|
||||
use Xibo\Event\FolderMovingEvent;
|
||||
use Xibo\Factory\FolderFactory;
|
||||
|
||||
class FolderListener
|
||||
{
|
||||
/**
|
||||
* @var FolderFactory
|
||||
*/
|
||||
private $folderFactory;
|
||||
|
||||
public function __construct(FolderFactory $folderFactory)
|
||||
{
|
||||
$this->folderFactory = $folderFactory;
|
||||
}
|
||||
|
||||
public function __invoke(FolderMovingEvent $event)
|
||||
{
|
||||
$merge = $event->getIsMerge();
|
||||
|
||||
if ($merge) {
|
||||
$folder = $event->getFolder();
|
||||
$newFolder = $event->getNewFolder();
|
||||
|
||||
// on merge we delete the original Folder and move its content to the new selected folder
|
||||
// sub-folders are moved to their new parent as well
|
||||
foreach (array_filter(explode(',', $folder->children)) as $childFolderId) {
|
||||
$childFolder = $this->folderFactory->getById($childFolderId, 0);
|
||||
$childFolder->updateFoldersAfterMove($folder->getId(), $newFolder->getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
50
lib/Listener/OnFolderMoving/MenuBoardListener.php
Normal file
50
lib/Listener/OnFolderMoving/MenuBoardListener.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (C) 2022 Xibo Signage Ltd
|
||||
*
|
||||
* Xibo - Digital Signage - http://www.xibo.org.uk
|
||||
*
|
||||
* This file is part of Xibo.
|
||||
*
|
||||
* Xibo is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* Xibo is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Xibo. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
namespace Xibo\Listener\OnFolderMoving;
|
||||
|
||||
use Xibo\Event\FolderMovingEvent;
|
||||
use Xibo\Factory\MenuBoardFactory;
|
||||
|
||||
class MenuBoardListener
|
||||
{
|
||||
/**
|
||||
* @var MenuBoardFactory
|
||||
*/
|
||||
private $menuBoardFactory;
|
||||
|
||||
public function __construct(MenuBoardFactory $menuBoardFactory)
|
||||
{
|
||||
$this->menuBoardFactory = $menuBoardFactory;
|
||||
}
|
||||
|
||||
public function __invoke(FolderMovingEvent $event)
|
||||
{
|
||||
$folder = $event->getFolder();
|
||||
$newFolder = $event->getNewFolder();
|
||||
|
||||
foreach ($this->menuBoardFactory->getbyFolderId($folder->getId()) as $menuBoard) {
|
||||
$menuBoard->folderId = $newFolder->getId();
|
||||
$menuBoard->permissionsFolderId = $newFolder->getPermissionFolderIdOrThis();
|
||||
$menuBoard->updateFolders('menu_board');
|
||||
}
|
||||
}
|
||||
}
|
||||
58
lib/Listener/OnFolderMoving/UserListener.php
Normal file
58
lib/Listener/OnFolderMoving/UserListener.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (C) 2022 Xibo Signage Ltd
|
||||
*
|
||||
* Xibo - Digital Signage - http://www.xibo.org.uk
|
||||
*
|
||||
* This file is part of Xibo.
|
||||
*
|
||||
* Xibo is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* Xibo is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Xibo. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
namespace Xibo\Listener\OnFolderMoving;
|
||||
|
||||
use Xibo\Event\FolderMovingEvent;
|
||||
use Xibo\Factory\UserFactory;
|
||||
use Xibo\Storage\StorageServiceInterface;
|
||||
|
||||
class UserListener
|
||||
{
|
||||
/**
|
||||
* @var UserFactory
|
||||
*/
|
||||
private $userFactory;
|
||||
/**
|
||||
* @var StorageServiceInterface
|
||||
*/
|
||||
private $store;
|
||||
|
||||
public function __construct(UserFactory $userFactory, StorageServiceInterface $store)
|
||||
{
|
||||
$this->userFactory = $userFactory;
|
||||
$this->store = $store;
|
||||
}
|
||||
|
||||
public function __invoke(FolderMovingEvent $event)
|
||||
{
|
||||
$folder = $event->getFolder();
|
||||
$newFolder = $event->getNewFolder();
|
||||
|
||||
foreach ($this->userFactory->getByHomeFolderId($folder->getId()) as $user) {
|
||||
$this->store->update('UPDATE `user` SET homeFolderId = :newFolderId WHERE homeFolderId = :oldFolderId AND userId = :userId', [
|
||||
'newFolderId' => $newFolder->getId(),
|
||||
'oldFolderId' => $folder->getId(),
|
||||
'userId' => $user->getId()
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user