[TASK] Create own response instance in controller actions
[Packages/TYPO3.CMS.git] / typo3 / sysext / taskcenter / Classes / TaskStatus.php
1 <?php
2 namespace TYPO3\CMS\Taskcenter;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use Psr\Http\Message\ResponseInterface;
18 use Psr\Http\Message\ServerRequestInterface;
19 use TYPO3\CMS\Core\Http\HtmlResponse;
20
21 /**
22 * Status of tasks
23 */
24 class TaskStatus
25 {
26 /**
27 * Saves the section toggle state of tasks in the backend user's uc
28 *
29 * @param ServerRequestInterface $request
30 * @return ResponseInterface
31 */
32 public function saveCollapseState(ServerRequestInterface $request): ResponseInterface
33 {
34 // Remove 'el_' in the beginning which is needed for the saveSortingState()
35 $item = $request->getParsedBody()['item'] ?? $request->getQueryParams()['item'];
36 $item = htmlspecialchars($item);
37 $state = (bool)($request->getParsedBody()['state'] ?? $request->getQueryParams()['state']);
38
39 $this->getBackendUserAuthentication()->uc['taskcenter']['states'][$item] = $state;
40 $this->getBackendUserAuthentication()->writeUC();
41
42 return new HtmlResponse('');
43 }
44
45 /**
46 * Saves the sorting order of tasks in the backend user's uc
47 *
48 * @param ServerRequestInterface $request
49 * @return ResponseInterface
50 */
51 public function saveSortingState(ServerRequestInterface $request): ResponseInterface
52 {
53 $sort = [];
54 $data = $request->getParsedBody()['data'] ?? $request->getQueryParams()['data'];
55
56 $items = explode('&', $data);
57 foreach ($items as $item) {
58 $sort[] = substr($item, 12);
59 }
60 $this->getBackendUserAuthentication()->uc['taskcenter']['sorting'] = serialize($sort);
61 $this->getBackendUserAuthentication()->writeUC();
62
63 return new HtmlResponse('');
64 }
65
66 /**
67 * Returns BackendUserAuthentication
68 *
69 * @return \TYPO3\CMS\Core\Authentication\BackendUserAuthentication
70 */
71 protected function getBackendUserAuthentication()
72 {
73 return $GLOBALS['BE_USER'];
74 }
75 }