Bladeren bron

Added JSON header to response and refactored base.js file

Tomasz Ignatiuk 13 jaren geleden
bovenliggende
commit
4711a2de56
3 gewijzigde bestanden met toevoegingen van 34 en 33 verwijderingen
  1. 4 1
      Controller/HelperController.php
  2. 28 30
      Resources/public/base.js
  3. 2 2
      Resources/views/CRUD/list_boolean_edit.html.twig

+ 4 - 1
Controller/HelperController.php

@@ -163,6 +163,7 @@ class HelperController extends Controller
         
         if (false === $admin->isGranted('EDIT')) {
             $response = new Response(json_encode(array('status' => 'Error')));
+            $response->headers->set('Content-Type', 'application/json');
             return $response;
         }
                
@@ -174,6 +175,7 @@ class HelperController extends Controller
 
         if (!$object) {
             $response = new Response(json_encode(array('status' => 'Error')));
+            $response->headers->set('Content-Type', 'application/json');
             return $response;
         }
         
@@ -187,7 +189,8 @@ class HelperController extends Controller
         $extension = $twig->getExtension('sonata_admin');
         $extension->initRuntime($this->get('twig'));
         
-        $response = new Response(json_encode(array('status' => 'OK', 'html' => $extension->renderListElement($object, $admin->getListFieldDescription($field)))));
+        $response = new Response(json_encode(array('status' => 'OK', 'data' => $extension->renderListElement($object, $admin->getListFieldDescription($field)))));
+        $response->headers->set('Content-Type', 'application/json');
         return $response;
     }
 }

+ 28 - 30
Resources/public/base.js

@@ -112,34 +112,32 @@ var Admin = {
         jQuery('fieldset.filter_legend', subject).click(function(event) {
            jQuery('div.filter_container', jQuery(event.target).parent()).toggle();
         });
-    }
-}
-
-/**
- * change object field value
- * @param MouseEvent
- */
-function sonata_admin_set_object_field_value(event)
-{
-    var targetElement = Admin.stopEvent(event);
-    var a = jQuery(targetElement).closest('a');
-
-    jQuery.ajax({
-        url: a.attr('href'),
-        type: 'GET',
-        success: function(json) {
-            var jObj = jQuery.parseJSON(json);
-     
-            if(jObj.status === "OK")
-            {
-                var td = jQuery(a).parent();
-                td.children().remove();
-                var result_td = jQuery(jObj.html).html();
-                td.html(result_td);
-                td.effect("highlight", {'color' : '#57A957'}, 2000);
+    },
+    
+    /**
+     * Change object field value
+     * @param MouseEvent
+     */
+    set_object_field_value: function(event) {
+        var targetElement = Admin.stopEvent(event);
+        var a = jQuery(targetElement).closest('a');
+    
+        jQuery.ajax({
+            url: a.attr('href'),
+            type: 'GET',
+            success: function(json) {
+                if(json.status === "OK")
+                {
+                    var td = jQuery(a).parent();
+                    td.children().remove();
+                    var result_td =json.data.replace(/<!--[\s\S]*?-->/g, "");
+                    result_td = jQuery(result_td).html();
+                    td.html(result_td);
+                    td.effect("highlight", {'color' : '#57A957'}, 2000);
+                }
+                else
+                    jQuery(a).parent().effect("highlight", {'color' : '#C43C35'}, 2000);
             }
-            else
-                jQuery(a).parent().effect("highlight", {'color' : '#C43C35'}, 2000);
-        }
-    });
-};
+        });
+    }
+}

+ 2 - 2
Resources/views/CRUD/list_boolean_edit.html.twig

@@ -17,7 +17,7 @@ file that was distributed with this source code.
     {% if value %}
         <a
             href="{{ url('sonata_admin_set_object_field_value', { 'field': field_description.name, 'objectId': object.id, 'value': 0, 'code': admin.code(object), 'uniqid': admin.uniqid(object) }) }}" class="sonata-ba-action"
-            onclick="sonata_admin_set_object_field_value(event)"
+            onclick="Admin.set_object_field_value(event)"
             >
             <img 
                 src="{{ asset('bundles/sonataadmin/famfamfam/accept.png') }}" 
@@ -27,7 +27,7 @@ file that was distributed with this source code.
     {% else %}
         <a
             href="{{ url('sonata_admin_set_object_field_value', { 'field': field_description.name, 'objectId': object.id, 'value': 1, 'code': admin.code(object), 'uniqid': admin.uniqid(object) }) }}" class="sonata-ba-action"
-            onclick="sonata_admin_set_object_field_value(event)"
+            onclick="Admin.set_object_field_value(event)"
             >
             <img 
                 src="{{ asset('bundles/sonataadmin/famfamfam/exclamation.png') }}"