Skip to content

Commit

Permalink
feature #478 Added a new "raw" field type to show unescaped values (j…
Browse files Browse the repository at this point in the history
…aviereguiluz)

This PR was merged into the master branch.

Discussion
----------

Added a new "raw" field type to show unescaped values

This fixes #431

Commits
-------

121bf84 Added a new "raw" field type to show unescaped values
  • Loading branch information
javiereguiluz committed Oct 3, 2015
2 parents 5576eb7 + 121bf84 commit 03e1003
Show file tree
Hide file tree
Showing 124 changed files with 306 additions and 27 deletions.
1 change: 1 addition & 0 deletions DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ private function addDesignSection(ArrayNodeDefinition $rootNode)
->scalarNode('field_id')->info('Used to render the field called "id". This avoids formatting its value as any other regular number (with decimals and thousand separators) ')->end()
->scalarNode('field_image')->info('Used to render image field types (a special type that displays the image contents)')->end()
->scalarNode('field_integer')->info('Used to render integer field types')->end()
->scalarNode('field_raw')->info('Used to render unescaped values')->end()
->scalarNode('field_simple_array')->info('Used to render simple array field types')->end()
->scalarNode('field_smallint')->info('Used to render smallint field types')->end()
->scalarNode('field_string')->info('Used to render string field types')->end()
Expand Down
1 change: 1 addition & 0 deletions DependencyInjection/EasyAdminExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class EasyAdminExtension extends Extension
'field_id' => '@EasyAdmin/default/field_id.html.twig',
'field_image' => '@EasyAdmin/default/field_image.html.twig',
'field_integer' => '@EasyAdmin/default/field_integer.html.twig',
'field_raw' => '@EasyAdmin/default/field_raw.html.twig',
'field_simple_array' => '@EasyAdmin/default/field_simple_array.html.twig',
'field_smallint' => '@EasyAdmin/default/field_smallint.html.twig',
'field_string' => '@EasyAdmin/default/field_string.html.twig',
Expand Down
32 changes: 27 additions & 5 deletions Resources/doc/getting-started/4-views-and-actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,11 +223,11 @@ Customize the Properties Appearance

By default, properties are displayed with the most appropriate appearance
according to their data types and their labels are generated automatically
based on their property name (e.g. if the property name is `published`, the
based on their property name (e.g. if the property name is `published`, the
label will be `Published` and if the name is `dateOfBirth`, the label will be
`Date of birth`).

In order to customize the appearance of the properties,use the following
In order to customize the appearance of the properties,use the following
expanded field configuration:

```yaml
Expand Down Expand Up @@ -310,6 +310,9 @@ These are the options that you can define for each field:
`show` views (as explained later in this chapter).
* `toggle`, displays a boolean value as a flip switch in the `list`
and `search` views (as explained later in this chapter).
* `raw`, displays the value unescaped (thanks to the `raw` Twig filter),
which is useful when the content stores HTML code that must be rendered
instead of displayed as HTML tags (as explained later in this chapter).

In addition to these "official" options, you can define any custom option for
the fields. These custom options are passed to the template that renders each
Expand Down Expand Up @@ -472,8 +475,8 @@ be modified:

### Customize Image Properties

If some property stores the URL of an image, you can show the actual image in
the `list`, `search` and `show` views instead of its URL. Just set the type of
If some property stores the URL of an image, you can show the actual image in
the `list`, `search` and `show` views instead of its URL. Just set the type of
the property to `image`:

```yaml
Expand Down Expand Up @@ -538,6 +541,25 @@ easy_admin:
The base paths defined for a property always have priority over the one defined
globally for the entity.

### Displaying Raw Values

All the string-based values are escaped before displaying them. For that reason,
if the value stores HTML content, you'll see the HTML tags instead of the rendered
HTML content. In case you want to display the rendered content, set the type of
the property to `raw`:

```yaml
easy_admin:
entities:
Product:
class: AppBundle\Entity\Product
list:
fields:
- { property: 'features', type: 'raw' }
# ...
# ...
```

List View Configuration
-----------------------

Expand Down Expand Up @@ -581,7 +603,7 @@ Edit and New Views Configuration
### The Special Form View

The `edit` and `new` views are pretty similar, so most of the times you apply
the same customization to them. Instead of duplicating the configuration for
the same customization to them. Instead of duplicating the configuration for
both views, you can use the special `form` view:

```yaml
Expand Down
2 changes: 2 additions & 0 deletions Resources/doc/tutorials/advanced-design-customization.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,8 @@ Doctrine data type and are self-explanatory):
* `field_image`, related to the special `image` type defined by EasyAdmin
used to display the contents of an image.
* `field_integer`
* `field_raw`, renders the value of the property without applying any escape
mechanism.
* `field_simple_array`
* `field_smallint`
* `field_string`
Expand Down
1 change: 1 addition & 0 deletions Resources/views/default/field_raw.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{ value|raw }}
63 changes: 63 additions & 0 deletions Tests/Controller/RawFieldTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

/*
* This file is part of the EasyAdminBundle.
*
* (c) Javier Eguiluz <javier.eguiluz@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace JavierEguiluz\Bundle\EasyAdminBundle\Tests\Controller;

use Symfony\Component\DomCrawler\Crawler;
use JavierEguiluz\Bundle\EasyAdminBundle\Tests\Fixtures\AbstractTestCase;

class RawFieldTest extends AbstractTestCase
{
public function setUp()
{
parent::setUp();

$this->initClient(array('environment' => 'raw_field'));
}

public function testListViewRawField()
{
$crawler = $this->requestListView();

$this->assertRegExp('/\s*<ul>\s*(<li>.*<\/li>\s*){2}\s*<\/ul>/', $crawler->filter('#main table td[data-label="Html features"]')->eq(0)->html());
}

public function testShowViewRawField()
{
$crawler = $this->requestShowView();

$this->assertRegExp('/\s*<ul>\s*(<li>.*<\/li>\s*){2}\s*<\/ul>/', $crawler->filter('#main .form-control')->eq(0)->html());
}

/**
* @return Crawler
*/
private function requestListView()
{
return $this->getBackendPage(array(
'action' => 'list',
'entity' => 'Product',
'view' => 'list',
));
}

/**
* @return Crawler
*/
private function requestShowView()
{
return $this->getBackendPage(array(
'action' => 'show',
'entity' => 'Product',
'id' => '50',
));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down Expand Up @@ -222,6 +223,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down Expand Up @@ -222,6 +223,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down Expand Up @@ -338,6 +340,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down Expand Up @@ -222,6 +223,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down Expand Up @@ -222,6 +223,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ easy_admin:
field_id: '@EasyAdmin/default/field_id.html.twig'
field_image: '@EasyAdmin/default/field_image.html.twig'
field_integer: '@EasyAdmin/default/field_integer.html.twig'
field_raw: '@EasyAdmin/default/field_raw.html.twig'
field_simple_array: '@EasyAdmin/default/field_simple_array.html.twig'
field_smallint: '@EasyAdmin/default/field_smallint.html.twig'
field_string: '@EasyAdmin/default/field_string.html.twig'
Expand Down

0 comments on commit 03e1003

Please sign in to comment.