Skip to content
Snippets Groups Projects
Commit b945de4a authored by Grzegorz Rola's avatar Grzegorz Rola
Browse files

Merge branch 'feature/json-renderer-html-class' into 'master'

Feature/json renderer html class

See merge request !3
parents 333dab91 be366df8
Branches
Tags 2.0.3
1 merge request!3Feature/json renderer html class
Pipeline #4870 failed
# Changelog
## [2.0.3] - 2020-06-22
### Added
- css class in JSON renderer
## 2.0.2 - 2020-06-17
### Changed
- Skip saving empty keys in the PersistentContainer
......
......@@ -2,6 +2,8 @@
namespace WPDesk\Forms;
use WPDesk\Forms\Field\BasicField;
/**
* The idea is that from the moment the factory returns this interface it's values cannot be changed.
* And that is why here are only the getters.
......@@ -116,6 +118,29 @@ interface Field {
/** @return bool */
public function is_class_set( $name );
/** bool */
public function has_data();
/**
* @return array
*/
public function get_data();
/**
* @param string $data_name
* @param string $data_value
*
* @return $this
*/
public function add_data( $data_name, $data_value );
/**
* @param string $data_name
*
* @return $this
*/
public function unset_data( $data_name );
/**
* @return mixed
*/
......
......@@ -137,6 +137,17 @@ abstract class BasicField implements Field {
return ! empty( $this->meta['class'] );
}
public function has_data() {
return ! empty( $this->meta['data'] );
}
/**
* @return array
*/
public function get_data() {
return empty( $this->meta['data'] ) ? [] : $this->meta['data'];
}
public function get_possible_values() {
return isset( $this->meta['possible_values'] ) ? $this->meta['possible_values'] : [];
}
......@@ -210,6 +221,32 @@ abstract class BasicField implements Field {
return $this;
}
/**
* @param string $data_name
* @param string $data_value
*
* @return $this
*/
public function add_data( $data_name, $data_value ) {
if ( !isset( $this->meta['data'] ) ) {
$this->meta['data'] = [];
}
$this->meta['data'][ $data_name ] = $data_value;
return $this;
}
/**
* @param string $data_name
*
* @return $this
*/
public function unset_data( $data_name ) {
unset( $this->meta['data'][ $data_name ] );
return $this;
}
/**
* @param $name
* @param $value
......
......@@ -32,6 +32,9 @@ class JsonNormalizedRenderer implements FieldRenderer {
'value ' => isset( $fields_data[ $field->get_name() ] ) ? $fields_data[ $field->get_name() ] : $field->get_default_value()
];
if ( $field->has_classes() ) {
$rendered['class'] = $field->get_classes();
}
if ( $field->has_description() ) {
$rendered['description'] = $field->get_description();
}
......@@ -45,6 +48,17 @@ class JsonNormalizedRenderer implements FieldRenderer {
if ( $options ) {
$rendered['options'] = $options;
}
if ( $field->has_data() ) {
$data = $field->get_data();
$rendered['data'] = [];
foreach ( $data as $data_name => $data_value ) {
$rendered['data'][] = [
'name' => $data_name,
'value' => $data_value,
];
}
}
$rendered_fields[] = $rendered;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment