Table.php
2.93 KB
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
<?php
declare(strict_types=1);
namespace ACP\Search\Asset\Script;
use AC;
use AC\Asset\Location;
use AC\Asset\Script;
use AC\Capabilities;
use AC\Request;
use ACP\Search\Type\SegmentKey;
final class Table extends Script
{
protected $filters;
protected $request;
protected $segment_key;
public function __construct(
string $handle,
Location $location,
array $filters,
Request $request,
SegmentKey $segment_key = null
) {
parent::__construct($handle, $location, ['wp-pointer']);
$this->filters = $filters;
$this->request = $request;
$this->segment_key = $segment_key;
}
private function get_current_segment(): ?SegmentKey
{
$segment_key = $this->segment_key;
$request_segment_key = $this->request->get('ac-segment');
if ($request_segment_key) {
$segment_key = new SegmentKey($request_segment_key);
}
return $segment_key;
}
public function register(): void
{
parent::register();
$current_segment = $this->get_current_segment();
$rules = $this->request->get('ac-rules-raw');
wp_localize_script('aca-search-table', 'ac_search', [
'current_segment' => $current_segment ? (string)$current_segment : null,
'rules' => $rules ? json_decode($rules) : null,
'filters' => $this->filters,
'sorting' => [
'orderby' => $_GET['orderby'] ?? null,
'order' => $_GET['order'] ?? null,
],
'segments' => [
'can_manage' => current_user_can(AC\Capabilities::MANAGE),
],
'i18n' => [
'select' => _x('Select', 'select placeholder', 'codepress-admin-columns'),
'add_filter' => __('Add Filter', 'codepress-admin-columns'),
'days_ago' => __('days ago', 'codepress-admin-columns'),
'days' => __('days', 'codepress-admin-columns'),
'shared_segment' => __('Available to all users', 'codepress-admin-columns'),
'clear_filters' => __('Clear filters', 'codepress-admin-columns'),
'segments' => [
'save_filters' => __('Save Filters', 'codepress-admin-columns'),
'public_filters' => __('Public', 'codepress-admin-columns'),
'name' => __('Name', 'codepress-admin-columns'),
'cancel' => __('Cancel', 'codepress-admin-columns'),
'save' => __('Save', 'codepress-admin-columns'),
'instructions' => __('Instructions', 'codepress-admin-columns'),
],
],
'capabilities' => [
'user_can_manage_shared_segments' => current_user_can(Capabilities::MANAGE),
],
]);
}
}