mirror of
https://github.com/getgrav/grav.git
synced 2025-02-20 19:56:53 +01:00
Added support to disable a form, making it readonly
This commit is contained in:
parent
8b0a6906c7
commit
715477586c
|
|
@ -1,6 +1,8 @@
|
|||
# v1.7.24
|
||||
## mm/dd/2021
|
||||
|
||||
1. [](#new)
|
||||
* Added support to disable a form, making it readonly
|
||||
3. [](#bugfix)
|
||||
* Fixed a bug in `PermissionsReader` in PHP 7.3
|
||||
* Fixed `session_store_active` language option (#3464)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ use Grav\Common\Data\Blueprint;
|
|||
use Grav\Common\Data\Data;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Twig\Twig;
|
||||
use Grav\Common\Utils;
|
||||
use Grav\Framework\Flex\Interfaces\FlexDirectoryFormInterface;
|
||||
use Grav\Framework\Flex\Interfaces\FlexFormInterface;
|
||||
use Grav\Framework\Form\Interfaces\FormFlashInterface;
|
||||
|
|
@ -94,9 +95,14 @@ class FlexDirectoryForm implements FlexDirectoryFormInterface, JsonSerializable
|
|||
$uniqueId = md5($directory->getFlexType() . '-directory-' . $this->name);
|
||||
}
|
||||
$this->setUniqueId($uniqueId);
|
||||
|
||||
$this->setFlashLookupFolder($directory->getDirectoryBlueprint()->get('form/flash_folder') ?? 'tmp://forms/[SESSIONID]');
|
||||
$this->form = $options['form'] ?? null;
|
||||
|
||||
if (Utils::isPositive($this->items['disabled'] ?? $this->form['disabled'] ?? false)) {
|
||||
$this->disable();
|
||||
}
|
||||
|
||||
$this->initialize();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ use Grav\Common\Data\Blueprint;
|
|||
use Grav\Common\Data\Data;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Common\Twig\Twig;
|
||||
use Grav\Common\Utils;
|
||||
use Grav\Framework\Flex\Interfaces\FlexFormInterface;
|
||||
use Grav\Framework\Flex\Interfaces\FlexObjectFormInterface;
|
||||
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
|
||||
|
|
@ -125,10 +126,15 @@ class FlexForm implements FlexObjectFormInterface, JsonSerializable
|
|||
$uniqueId = md5($uniqueId);
|
||||
}
|
||||
$this->setUniqueId($uniqueId);
|
||||
|
||||
$directory = $object->getFlexDirectory();
|
||||
$this->setFlashLookupFolder($options['flash_folder'] ?? $directory->getBlueprint()->get('form/flash_folder') ?? 'tmp://forms/[SESSIONID]');
|
||||
$this->form = $options['form'] ?? null;
|
||||
|
||||
if (Utils::isPositive($this->items['disabled'] ?? $this->form['disabled'] ?? false)) {
|
||||
$this->disable();
|
||||
}
|
||||
|
||||
if (!empty($options['reset'])) {
|
||||
$this->getFlash()->delete();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ trait FormTrait
|
|||
private $name;
|
||||
/** @var string */
|
||||
private $id;
|
||||
/** @var bool */
|
||||
private $enabled = true;
|
||||
/** @var string */
|
||||
private $uniqueid;
|
||||
/** @var string */
|
||||
|
|
@ -90,6 +92,30 @@ trait FormTrait
|
|||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function disable(): void
|
||||
{
|
||||
$this->enabled = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function enable(): void
|
||||
{
|
||||
$this->enabled = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isEnabled(): bool
|
||||
{
|
||||
return $this->enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user