Plugin Directory

source: codepress-admin-columns/trunk/classes/Controller/AjaxRequestNewColumn.php @ 2246221

Last change on this file since 2246221 was 2246221, checked in by tschutter, 5 years ago

release 4.0.1

File size: 1.1 KB
Line 
1<?php
2
3namespace AC\Controller;
4
5use AC\Admin;
6use AC\Ajax;
7use AC\ListScreenRepository\Aggregate;
8use AC\ListScreenRepository\ListScreenRepository;
9use AC\Registrable;
10use AC\Request;
11
12class AjaxRequestNewColumn implements Registrable {
13
14        /** @var Aggregate */
15        private $repository;
16
17        public function __construct( ListScreenRepository $repository ) {
18                $this->repository = $repository;
19        }
20
21        public function register() {
22                $this->get_ajax_handler()->register();
23        }
24
25        /**
26         * @return Ajax\Handler
27         */
28        private function get_ajax_handler() {
29                $handler = new Ajax\Handler();
30                $handler
31                        ->set_action( 'ac-columns' )
32                        ->set_callback( [ $this, 'handle_ajax_request' ] );
33
34                return $handler;
35        }
36
37        public function handle_ajax_request() {
38                $this->get_ajax_handler()->verify_request();
39
40                $request = new Request();
41
42                $requests = [
43                        new Admin\Request\Column\Save( $this->repository ),
44                        new Admin\Request\Column\Refresh(),
45                        new Admin\Request\Column\Select(),
46                ];
47
48                foreach ( $requests as $handler ) {
49                        if ( $handler->get_id() === $request->get( 'id' ) ) {
50                                $handler->request( $request );
51                        }
52                }
53        }
54
55}
Note: See TracBrowser for help on using the repository browser.