|
@@ -265,6 +265,8 @@ class SonataAdminExtensionTest extends \PHPUnit_Framework_TestCase
|
|
|
return 'SonataAdminBundle:CRUD:list_currency.html.twig';
|
|
|
case 'percent':
|
|
|
return 'SonataAdminBundle:CRUD:list_percent.html.twig';
|
|
|
+ case 'email':
|
|
|
+ return 'SonataAdminBundle:CRUD:list_email.html.twig';
|
|
|
case 'choice':
|
|
|
return 'SonataAdminBundle:CRUD:list_choice.html.twig';
|
|
|
case 'array':
|
|
@@ -540,6 +542,70 @@ class SonataAdminExtensionTest extends \PHPUnit_Framework_TestCase
|
|
|
null,
|
|
|
array('currency' => 'GBP'),
|
|
|
),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345"> </td>',
|
|
|
+ 'email',
|
|
|
+ null,
|
|
|
+ array(),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345"> <a href="mailto:admin@admin.com">admin@admin.com</a> </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array(),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345">
|
|
|
+ <a href="mailto:admin@admin.com">admin@admin.com</a> </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => false),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345"> admin@admin.com </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => true),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345">
|
|
|
+ <a href="mailto:admin@admin.com?'.$this->buildTwigLikeUrl(array('subject' => 'Main Theme', 'body' => 'Message Body')).'">admin@admin.com</a> </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('subject' => 'Main Theme', 'body' => 'Message Body'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345">
|
|
|
+ <a href="mailto:admin@admin.com?'.$this->buildTwigLikeUrl(array('subject' => 'Main Theme')).'">admin@admin.com</a> </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('subject' => 'Main Theme'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345">
|
|
|
+ <a href="mailto:admin@admin.com?'.$this->buildTwigLikeUrl(array('body' => 'Message Body')).'">admin@admin.com</a> </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('body' => 'Message Body'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345"> admin@admin.com </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => true, 'subject' => 'Main Theme', 'body' => 'Message Body'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345"> admin@admin.com </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => true, 'body' => 'Message Body'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<td class="sonata-ba-list-field sonata-ba-list-field-email" objectId="12345"> admin@admin.com </td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => true, 'subject' => 'Main Theme'),
|
|
|
+ ),
|
|
|
array(
|
|
|
'<td class="sonata-ba-list-field sonata-ba-list-field-array" objectId="12345">
|
|
|
[1 => First] [2 => Second]
|
|
@@ -1245,6 +1311,8 @@ EOT
|
|
|
return 'SonataAdminBundle:CRUD:show_currency.html.twig';
|
|
|
case 'percent':
|
|
|
return 'SonataAdminBundle:CRUD:show_percent.html.twig';
|
|
|
+ case 'email':
|
|
|
+ return 'SonataAdminBundle:CRUD:show_email.html.twig';
|
|
|
case 'choice':
|
|
|
return 'SonataAdminBundle:CRUD:show_choice.html.twig';
|
|
|
case 'array':
|
|
@@ -1577,6 +1645,66 @@ EOT
|
|
|
'identifier_parameter_name' => 'barId',
|
|
|
)),
|
|
|
),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> </td>',
|
|
|
+ 'email',
|
|
|
+ null,
|
|
|
+ array(),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> <a href="mailto:admin@admin.com">admin@admin.com</a></td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array(),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> <a href="mailto:admin@admin.com?'.$this->buildTwigLikeUrl(array('subject' => 'Main Theme', 'body' => 'Message Body')).'">admin@admin.com</a></td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('subject' => 'Main Theme', 'body' => 'Message Body'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> <a href="mailto:admin@admin.com?'.$this->buildTwigLikeUrl(array('subject' => 'Main Theme')).'">admin@admin.com</a></td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('subject' => 'Main Theme'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> <a href="mailto:admin@admin.com?'.$this->buildTwigLikeUrl(array('body' => 'Message Body')).'">admin@admin.com</a></td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('body' => 'Message Body'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> admin@admin.com</td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => true, 'subject' => 'Main Theme', 'body' => 'Message Body'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> admin@admin.com</td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => true, 'subject' => 'Main Theme'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> admin@admin.com</td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => true, 'body' => 'Message Body'),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> <a href="mailto:admin@admin.com">admin@admin.com</a></td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => false),
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ '<th>Data</th> <td> admin@admin.com</td>',
|
|
|
+ 'email',
|
|
|
+ 'admin@admin.com',
|
|
|
+ array('as_string' => true),
|
|
|
+ ),
|
|
|
array(
|
|
|
'<th>Data</th> <td><p><strong>Creating a Template for the Field</strong> and form</p> </td>',
|
|
|
'html',
|
|
@@ -2002,6 +2130,25 @@ EOT
|
|
|
$this->assertSame(1234567, $this->twigExtension->getUrlsafeIdentifier($entity, $this->adminBar));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * This method generates url part for Twig layout. Allows to keep BC for PHP 5.3.
|
|
|
+ *
|
|
|
+ * Remove this method for next major release only if PHP 5.3 support will be dropped.
|
|
|
+ *
|
|
|
+ * @param array $url
|
|
|
+ *
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ private function buildTwigLikeUrl($url)
|
|
|
+ {
|
|
|
+ if (defined('PHP_QUERY_RFC3986')) {
|
|
|
+ // add htmlspecialchars because twig add it auto
|
|
|
+ return htmlspecialchars(http_build_query($url, '', '&', PHP_QUERY_RFC3986));
|
|
|
+ }
|
|
|
+
|
|
|
+ return htmlspecialchars(http_build_query($url, '', '&'));
|
|
|
+ }
|
|
|
+
|
|
|
private function removeExtraWhitespace($string)
|
|
|
{
|
|
|
return trim(preg_replace(
|