b5749a9a3d61d15a4b28f0ca06bf6e1760461a97
[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
20 /**
21 * Status of tasks
22 */
23 class TaskStatus
24 {
25 /**
26 * Saves the section toggle state of tasks in the backend user's uc
27 *
28 * @param ServerRequestInterface $request
29 * @param ResponseInterface $response
30 * @return ResponseInterface
31 */
32 public function saveCollapseState(ServerRequestInterface $request, ResponseInterface $response)
33 {
34 // Remove 'el_' in the beginning which is needed for the saveSortingState()
35 $item = isset($request->getParsedBody()['item']) ? $request->getParsedBody()['item'] : $request->getQueryParams()['item'];
36 $item = htmlspecialchars($item);
37 $state = (bool)(isset($request->getParsedBody()['state']) ? $request->getParsedBody()['state'] : $request->getQueryParams()['state']);
38
39 $this->getBackendUserAuthentication()->uc['taskcenter']['states'][$item] = $state;
40 $this->getBackendUserAuthentication()->writeUC();
41
42 return $response;
43 }
44
45 /**
46 * Saves the sorting order of tasks in the backend user's uc
47 *
48 * @param ServerRequestInterface $request
49 * @param ResponseInterface $response
50 * @return ResponseInterface
51 */
52 public function saveSortingState(ServerRequestInterface $request, ResponseInterface $response)
53 {
54 $sort = [];
55 $data = isset($request->getParsedBody()['data']) ? $request->getParsedBody()['data'] : $request->getQueryParams()['data'];
56
57 $items = explode('&', $data);
58 foreach ($items as $item) {
59 $sort[] = substr($item, 12);
60 }
61 $this->getBackendUserAuthentication()->uc['taskcenter']['sorting'] = serialize($sort);
62 $this->getBackendUserAuthentication()->writeUC();
63
64 return $response;
65 }
66
67 /**
68 * Returns BackendUserAuthentication
69 *
70 * @return \TYPO3\CMS\Core\Authentication\BackendUserAuthentication
71 */
72 protected function getBackendUserAuthentication()
73 {
74 return $GLOBALS['BE_USER'];
75 }
76 }