Initial commit
This commit is contained in:
commit
08a8a71c55
631 changed files with 139902 additions and 0 deletions
72
public/kirby/src/Panel/Dialog.php
Normal file
72
public/kirby/src/Panel/Dialog.php
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
|
||||
namespace Kirby\Panel;
|
||||
|
||||
use Kirby\Http\Response;
|
||||
|
||||
/**
|
||||
* The Dialog response class handles Fiber
|
||||
* requests to render the JSON object for
|
||||
* Panel dialogs and creates the routes
|
||||
* @since 3.6.0
|
||||
*
|
||||
* @package Kirby Panel
|
||||
* @author Bastian Allgeier <bastian@getkirby.com>
|
||||
* @link https://getkirby.com
|
||||
* @copyright Bastian Allgeier
|
||||
* @license https://getkirby.com/license
|
||||
*/
|
||||
class Dialog extends Json
|
||||
{
|
||||
protected static string $key = '$dialog';
|
||||
|
||||
/**
|
||||
* Renders dialogs
|
||||
*/
|
||||
public static function response($data, array $options = []): Response
|
||||
{
|
||||
// interpret true as success
|
||||
if ($data === true) {
|
||||
$data = [
|
||||
'code' => 200
|
||||
];
|
||||
}
|
||||
|
||||
return parent::response($data, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the routes for a dialog
|
||||
*/
|
||||
public static function routes(
|
||||
string $id,
|
||||
string $areaId,
|
||||
string $prefix = '',
|
||||
array $options = []
|
||||
) {
|
||||
$routes = [];
|
||||
|
||||
// create the full pattern with dialogs prefix
|
||||
$pattern = trim($prefix . '/' . ($options['pattern'] ?? $id), '/');
|
||||
$type = str_replace('$', '', static::$key);
|
||||
|
||||
// load event
|
||||
$routes[] = [
|
||||
'pattern' => $pattern,
|
||||
'type' => $type,
|
||||
'area' => $areaId,
|
||||
'action' => $options['load'] ?? fn () => 'The load handler is missing'
|
||||
];
|
||||
|
||||
// submit event
|
||||
$routes[] = [
|
||||
'pattern' => $pattern,
|
||||
'type' => $type,
|
||||
'area' => $areaId,
|
||||
'method' => 'POST',
|
||||
'action' => $options['submit'] ?? fn () => 'The submit handler is missing'
|
||||
];
|
||||
|
||||
return $routes;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue