diff options
Diffstat (limited to 'main/app/sprinkles/FormGenerator/src')
10 files changed, 0 insertions, 568 deletions
diff --git a/main/app/sprinkles/FormGenerator/src/Controller/FormGeneratorController.php b/main/app/sprinkles/FormGenerator/src/Controller/FormGeneratorController.php deleted file mode 100644 index 5bd46e1..0000000 --- a/main/app/sprinkles/FormGenerator/src/Controller/FormGeneratorController.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Controller; - -use UserFrosting\Sprinkle\Core\Controller\SimpleController; - -/** - * FormGeneratorController Class - * - * Controller class for /forms/confirm/* URLs. Handles rendering the confirm dialog - */ -class FormGeneratorController extends SimpleController -{ - - /** - * Display the confirmation dialog - */ - public function confirm($request, $response, $args) { - $this->ci->view->render($response, 'FormGenerator/confirm.html.twig', $request->getQueryParams()); - } -} diff --git a/main/app/sprinkles/FormGenerator/src/Element/Alert.php b/main/app/sprinkles/FormGenerator/src/Element/Alert.php deleted file mode 100644 index 31453d3..0000000 --- a/main/app/sprinkles/FormGenerator/src/Element/Alert.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Element; - -use UserFrosting\Sprinkle\FormGenerator\Element\BaseInput; - -/** - * Alert input type class. - * Manage the default attributes required to display an alert - * - * @extends BaseInput - */ -class Alert extends BaseInput -{ - - /** - * {@inheritDoc} - */ - protected function applyTransformations() { - $this->element = array_merge([ - "class" => "alert-danger", - "icon" => "fa-ban", - "value" => $this->value, - "name" => $this->name - ], $this->element); - } -} diff --git a/main/app/sprinkles/FormGenerator/src/Element/BaseInput.php b/main/app/sprinkles/FormGenerator/src/Element/BaseInput.php deleted file mode 100644 index cf78dc6..0000000 --- a/main/app/sprinkles/FormGenerator/src/Element/BaseInput.php +++ /dev/null @@ -1,111 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Element; - -use UserFrosting\Sprinkle\FormGenerator\Element\InputInterface; -use UserFrosting\Sprinkle\Core\Facades\Translator; -use UserFrosting\Sprinkle\Core\Facades\Debug; - -/** - * BaseInput class. - * - * Parse the schema data for a form input element to add the default - * attributes values and transform other attributes. - * @abstract - * @implements InputInterface - */ -abstract class BaseInput implements InputInterface -{ - - /** - * @var String The name of the input. - */ - var $name; - - /** - * @var object The input schema data. - */ - var $element; - - /** - * @var String The input value. - */ - var $value; - - /** - * Constructor. - * - * @access public - * @param String $name - * @param object $element - * @param mixed $value (default: null) - * @return void - */ - public function __construct($name, $element, $value = NULL) { - $this->name = $name; - $this->element = $element; - $this->value = $value; - } - - /** - * parse function. - * - * Return the parsed input attributes - * @access public - * @return void - */ - public function parse() { - $this->applyTransformations(); - return $this->element; - } - - /** - * translateArgValue function. - * - * Translate the value of passed argument using the Translator Facade - * @access public - * @param String $argument - * @return void - */ - public function translateArgValue($argument) { - if (isset($this->element[$argument])) { - $this->element[$argument] = Translator::translate($this->element[$argument]); - } - } - - /** - * getValue function. - * - * Return the value of the current input element. If not value is set in - * `$this->value`, return the default value (from the schema data), if any. - * @access public - * @return string The input current value - */ - public function getValue() { - if (isset($this->value) && $this->value !== NULL) { - return $this->value; - } else if (isset($this->element['default'])) { - return $this->element['default']; - } else { - return ""; - } - } - - /** - * applyTransformations function. - * - * Add defaut attributes to the current input element. Also transform - * attributes values passed from the schema - * @access protected - * @abstract - * @return void - */ - abstract protected function applyTransformations(); -} diff --git a/main/app/sprinkles/FormGenerator/src/Element/Checkbox.php b/main/app/sprinkles/FormGenerator/src/Element/Checkbox.php deleted file mode 100644 index 97bfdba..0000000 --- a/main/app/sprinkles/FormGenerator/src/Element/Checkbox.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Element; - -use UserFrosting\Sprinkle\FormGenerator\Element\BaseInput; - -/** - * Checkbox input type class. - * Manage the default attributes required to display a checkbox input - * - * @extends BaseInput - */ -class Checkbox extends BaseInput -{ - - /** - * {@inheritDoc} - */ - protected function applyTransformations() { - $this->element = array_merge([ - "class" => "js-icheck", - "name" => $this->name, - "id" => "field_" . $this->name, - "binary" => TRUE - ], $this->element); - - // We add the check status instead of the value - if ($this->element["binary"] !== FALSE && $this->getValue() == 1) { - $this->element["checked"] = "checked"; - } - } -} diff --git a/main/app/sprinkles/FormGenerator/src/Element/Hidden.php b/main/app/sprinkles/FormGenerator/src/Element/Hidden.php deleted file mode 100644 index 6f79ecd..0000000 --- a/main/app/sprinkles/FormGenerator/src/Element/Hidden.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Element; - -use UserFrosting\Sprinkle\FormGenerator\Element\BaseInput; - -/** - * Hidden input type class. - * Manage the default attributes required to display an hidden input type - * - * @extends BaseInput - */ -class Hidden extends BaseInput -{ - - /** - * {@inheritDoc} - */ - protected function applyTransformations() { - $this->element = array_merge([ - "value" => $this->getValue(), - "name" => $this->name, - "id" => "field_" . $this->name - ], $this->element); - } -} diff --git a/main/app/sprinkles/FormGenerator/src/Element/InputInterface.php b/main/app/sprinkles/FormGenerator/src/Element/InputInterface.php deleted file mode 100644 index 66225bc..0000000 --- a/main/app/sprinkles/FormGenerator/src/Element/InputInterface.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Element; - -/** - * InputInterface - * - * Interface for Form elements classes - */ -interface InputInterface -{ - public function __construct($name, $element, $value = NULL); - - public function parse(); -} diff --git a/main/app/sprinkles/FormGenerator/src/Element/Select.php b/main/app/sprinkles/FormGenerator/src/Element/Select.php deleted file mode 100644 index da91fbd..0000000 --- a/main/app/sprinkles/FormGenerator/src/Element/Select.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Element; - -use UserFrosting\Sprinkle\FormGenerator\Element\BaseInput; - -/** - * Select input type class. - * Manage the default attributes required to display a select input type - * - * @extends BaseInput - */ -class Select extends BaseInput -{ - - /** - * {@inheritDoc} - */ - protected function applyTransformations() { - $this->element = array_merge([ - "class" => "form-control js-select2", - "value" => $this->getValue(), - "name" => $this->name, - "id" => "field_" . $this->name - ], $this->element); - - // Placeholder is required to be in `data-*` for select 2 - // Plus we translate the placeholder - if (isset($this->element["placeholder"])) { - $this->element["data-placeholder"] = $this->element["placeholder"]; - unset($this->element["placeholder"]); - $this->translateArgValue('data-placeholder'); - } - } -} diff --git a/main/app/sprinkles/FormGenerator/src/Element/Text.php b/main/app/sprinkles/FormGenerator/src/Element/Text.php deleted file mode 100644 index 375153d..0000000 --- a/main/app/sprinkles/FormGenerator/src/Element/Text.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Element; - -use UserFrosting\Sprinkle\FormGenerator\Element\BaseInput; - -/** - * Text input type class. - * Manage the default attributes required to display a text and other html5 input - * - * @extends BaseInput - */ -class Text extends BaseInput -{ - - /** - * {@inheritDoc} - */ - protected function applyTransformations() { - $this->element = array_merge([ - "autocomplete" => "off", - "class" => "form-control", - "value" => $this->getValue(), - "name" => $this->name, - "id" => "field_" . $this->name - ], $this->element); - - // Translate placeholder - $this->translateArgValue('placeholder'); - } -} diff --git a/main/app/sprinkles/FormGenerator/src/Element/Textarea.php b/main/app/sprinkles/FormGenerator/src/Element/Textarea.php deleted file mode 100644 index b2a84f9..0000000 --- a/main/app/sprinkles/FormGenerator/src/Element/Textarea.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator\Element; - -use UserFrosting\Sprinkle\FormGenerator\Element\BaseInput; - -/** - * Textarea input type class. - * Manage the default attributes required to display a textarea input - * - * @extends BaseInput - */ -class Textarea extends BaseInput -{ - - /** - * {@inheritDoc} - */ - protected function applyTransformations() { - $this->element = array_merge([ - "autocomplete" => "off", - "class" => "form-control", - "value" => $this->getValue(), - "name" => $this->name, - "rows" => 3, - "id" => "field_" . $this->name - ], $this->element); - - // Translate placeholder - $this->translateArgValue('placeholder'); - } -} diff --git a/main/app/sprinkles/FormGenerator/src/Form.php b/main/app/sprinkles/FormGenerator/src/Form.php deleted file mode 100644 index 5b948f7..0000000 --- a/main/app/sprinkles/FormGenerator/src/Form.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php -/** - * UF Form Generator - * - * @link https://github.com/lcharette/UF_FormGenerator - * @copyright Copyright (c) 2017 Louis Charette - * @license https://github.com/lcharette/UF_FormGenerator/blob/master/LICENSE (MIT License) - */ - -namespace UserFrosting\Sprinkle\FormGenerator; - -use Illuminate\Contracts\Config\Repository; -use Illuminate\Database\Eloquent\Model; -use Illuminate\Support\Collection; -use Illuminate\Support\Str; -use UserFrosting\Fortress\RequestSchema\RequestSchemaInterface; - -/** - * Form Class - * - * The FormGenerator class, which is used to return the `form` part from a Fortress - * schema for html form generator in Twig. - */ -class Form -{ - - /** - * @var RequestSchemaInterface The form fields definition - */ - protected $schema; - - /** - * @var array|object The form values - */ - protected $data = []; - - /** - * @var string Use this to wrap form fields in top-level array - */ - protected $formNamespace = ""; - - /** - * Constructor - * - * @param RequestSchemaInterface $schema - * @param array|object $data (default: []) - * @return void - */ - public function __construct(RequestSchemaInterface $schema, $data = []) { - $this->setSchema($schema); - $this->setData($data); - } - - /** - * Set the form current values - * - * @param array|object $data The form values - */ - public function setData($data) { - if ($data instanceof Collection || $data instanceof Model) { - $this->data = $data->toArray(); - } else if (is_array($data) || $data instanceof Repository) { - $this->data = $data; - } else { - throw new \InvalidArgumentException("Data must be an array, a Collection, a Model or a Repository"); - } - } - - /** - * Set the schema for this validator. - * - * @param RequestSchemaInterface $schema A RequestSchemaInterface object, containing the form definition. - */ - public function setSchema(RequestSchemaInterface $schema) { - $this->schema = $schema; - } - - /** - * Use to define the value of a form input when `setData` is already set - * - * @param mixed $inputName - * @param mixed $value - * @return void - */ - public function setValue($inputName, $value) { - $this->data[$inputName] = $value; - } - - /** - * Function used to overwrite the input argument from a schema file - * Can also be used to overwrite an argument hardcoded in the Twig file. - * Use `setCustomFormData` to set any other tag. - * - * @param string $inputName The input name where the argument will be added - * @param string $property The argument name. Example "data-color" - * @param string $data The value of the argument - * @return void - */ - public function setInputArgument($inputName, $property, $data) { - if ($this->schema->has($inputName)) { - // Get the element and force set the property - $element = $this->schema->get($inputName); - $element['form'][$property] = $data; - - // Push back the modifyed element in the schema - $this->schema->set($inputName, $element); - } - } - - /** - * Function used to set options of a select element. Shortcut for using - * `setInputArgument` and `setValue`. - * - * @param string $inputName The select name to add options to - * @param array $data An array of `value => label` options - * @param string $selected The selected key - * @return void - */ - public function setOptions($inputName, $data = [], $selected = NULL) { - // Set opdations - $this->setInputArgument($inputName, 'options', $data); - - // Set the value - if (!is_null($selected)) { - $this->setValue($inputName, $selected); - } - } - - /** - * Function to set the form namespace. - * Use the form namespace to wrap the fields name in a top level array. - * Useful when using multiple schemas at once or if the names are using dot syntaxt. - * See : http://stackoverflow.com/a/20365198/445757 - * - * @param string $namespace - * @return void - */ - public function setFormNamespace($namespace) { - $this->formNamespace = $namespace; - } - - /** - * Generate an array contining all nececerry value to generate a form - * with Twig. - * - * @return array The form fields data - */ - public function generate() { - $form = collect([]); - - // Loop all the the fields in the schema - foreach ($this->schema->all() as $name => $input) { - - // Skip the one that don't have a `form` definition - if (isset($input['form'])) { - - // Get the value from the data - $value = isset($this->data[$name]) ? $this->data[$name] : NULL; - - // Add the namespace to the name if it's defined - $name = ($this->formNamespace != "") ? $this->formNamespace . "[" . $name . "]" : $name; - - // Get the element class and make sure it exist - $type = (isset($input['form']['type'])) ? $input['form']['type'] : "text"; - $type = "UserFrosting\\Sprinkle\\FormGenerator\\Element\\" . Str::studly($type); - - // If class doesn't esist, default to Text element - if (!class_exists($type)) { - $type = "UserFrosting\\Sprinkle\\FormGenerator\\Element\\Text"; - } - - // Create a new instance - $element = new $type($name, $input['form'], $value); - - // Push data to `$form` - $form->put($name, $element->parse()); - } - } - - return $form->toArray(); - } -} |