Bläddra i källkod

Merge pull request #3184 from netounet/patch-6

Add date management for X-Editable
Thomas 10 år sedan
förälder
incheckning
0d721d0a14

+ 5 - 0
Controller/HelperController.php

@@ -275,6 +275,11 @@ class HelperController
             $propertyPath = new PropertyPath($field);
             $propertyPath = new PropertyPath($field);
         }
         }
 
 
+        // Handle date type has setter expect a DateTime object
+        if ('' !== $value && $fieldDescription->getType() == 'date') {
+            $value = new \DateTime($value);
+        }
+
         $propertyAccessor->setValue($object, $propertyPath, '' !== $value ? $value : null);
         $propertyAccessor->setValue($object, $propertyPath, '' !== $value ? $value : null);
 
 
         $violations = $this->validator->validate($object);
         $violations = $this->validator->validate($object);

+ 1 - 1
Resources/views/CRUD/base_list_field.html.twig

@@ -29,7 +29,7 @@ file that was distributed with this source code.
 
 
         {% if isEditable and xEditableType %}
         {% if isEditable and xEditableType %}
             {% set url = path('sonata_admin_set_object_field_value', { 'context': 'list', 'field': field_description.name, 'objectId': admin.id(object), 'code': admin.code(object) }|merge(admin.getPersistentParameters|default([])) )  %}
             {% set url = path('sonata_admin_set_object_field_value', { 'context': 'list', 'field': field_description.name, 'objectId': admin.id(object), 'code': admin.code(object) }|merge(admin.getPersistentParameters|default([])) )  %}
-            <span {% block field_span_attributes %}class="x-editable" data-type="{{ xEditableType }}" data-value="{{ value }}" data-title="{{ field_description.label|trans({}, field_description.translationDomain) }}" data-pk="{{ admin.id(object) }}" data-url="{{ url }}" {% endblock %}>
+            <span {% block field_span_attributes %}class="x-editable" data-type="{{ xEditableType }}" data-value="{{ field_description.type == 'date' and value is not empty ? value.format('Y-m-d') : value }}" data-title="{{ field_description.label|trans({}, field_description.translationDomain) }}" data-pk="{{ admin.id(object) }}" data-url="{{ url }}" {% endblock %}>
                 {{ block('field') }}
                 {{ block('field') }}
             </span>
             </span>
         {% else %}
         {% else %}

+ 1 - 0
Twig/Extension/SonataAdminExtension.php

@@ -352,6 +352,7 @@ class SonataAdminExtension extends \Twig_Extension
             'currency'   => 'number',
             'currency'   => 'number',
             'percent'    => 'number',
             'percent'    => 'number',
             'url'        => 'url',
             'url'        => 'url',
+            'date'       => 'date',
         );
         );
 
 
         return isset($mapping[$type]) ? $mapping[$type] : false;
         return isset($mapping[$type]) ? $mapping[$type] : false;