-
-
Notifications
You must be signed in to change notification settings - Fork 219
/
BrowserState.php
92 lines (83 loc) · 2.2 KB
/
BrowserState.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
namespace Neos\Media\Browser\Domain\Session;
/*
* This file is part of the Neos.Media.Browser package.
*
* (c) Contributors of the Neos Project - www.neos.io
*
* This package is Open Source Software. For the full copyright and license
* information, please view the LICENSE file which was distributed with this
* source code.
*/
use Neos\Flow\Annotations as Flow;
/**
* A container for the state the media browser is in.
*
* @Flow\Scope("session")
*/
class BrowserState
{
/**
* @var string
*/
protected $activeAssetSourceIdentifier = 'neos';
/**
* @var array
*/
protected $data = [];
/**
* Set a $value for $key
*
* @param string $key
* @param mixed $value
* @return void
* @Flow\Session(autoStart = true)
*/
public function set(string $key, $value)
{
if (!isset($this->data[$this->activeAssetSourceIdentifier])) {
$this->initializeData($this->activeAssetSourceIdentifier);
}
$this->data[$this->activeAssetSourceIdentifier][$key] = $value;
}
/**
* Return a value for $key.
*
* @param string $key
* @return mixed
*/
public function get(string $key)
{
if (!isset($this->data[$this->activeAssetSourceIdentifier])) {
$this->initializeData($this->activeAssetSourceIdentifier);
}
return $this->data[$this->activeAssetSourceIdentifier][$key] ?? null;
}
/**
* @return string
*/
public function getActiveAssetSourceIdentifier(): string
{
return $this->activeAssetSourceIdentifier;
}
/**
* @param string $activeAssetSourceIdentifier
*/
public function setActiveAssetSourceIdentifier(string $activeAssetSourceIdentifier)
{
$this->activeAssetSourceIdentifier = $activeAssetSourceIdentifier;
}
/**
* @param string $assetSourceIdentifier
*/
private function initializeData(string $assetSourceIdentifier)
{
$this->data[$assetSourceIdentifier] = [
'activeTag' => null,
'view' => 'Thumbnail',
'sortBy' => 'Modified',
'sortDirection' => 'DESC',
'filter' => 'All'
];
}
}