Browse Source

Refactor the boolean edit option

Thomas Rabaix 13 years ago
parent
commit
34f9afdf25

+ 24 - 18
Resources/public/base.js

@@ -2,6 +2,7 @@ jQuery(document).ready(function() {
     Admin.add_pretty_errors(document);
     Admin.add_collapsed_toggle();
     Admin.add_filters(document);
+    Admin.set_object_field_value(document);
 });
 
 var Admin = {
@@ -116,26 +117,31 @@ var Admin = {
 
     /**
      * Change object field value
-     * @param MouseEvent
+     * @param subject
      */
-    set_object_field_value: function(event) {
-        var targetElement = Admin.stopEvent(event);
-        var a = jQuery(targetElement).closest('a');
-
-        jQuery.ajax({
-            url: a.attr('href'),
-            type: 'POST',
-            success: function(json) {
-                if(json.status === "OK") {
-                    var elm = jQuery(a).parent();
-                    elm.children().remove();
-                    // fix issue with html comment ...
-                    elm.html(jQuery(json.content.replace(/<!--[\s\S]*?-->/g, "")).html());
-                    elm.effect("highlight", {'color' : '#57A957'}, 2000);
-                } else {
-                    jQuery(a).parent().effect("highlight", {'color' : '#C43C35'}, 2000);
+    set_object_field_value: function(subject) {
+
+        console.log(jQuery('a.sonata-ba-edit-inline', subject));
+        jQuery('a.sonata-ba-edit-inline', subject).click(function(event) {
+            Admin.stopEvent(event);
+
+            var subject = jQuery(this);
+            jQuery.ajax({
+                url: subject.attr('href'),
+                type: 'POST',
+                success: function(json) {
+                    if(json.status === "OK") {
+                        var elm = jQuery(subject).parent();
+                        elm.children().remove();
+                        // fix issue with html comment ...
+                        elm.html(jQuery(json.content.replace(/<!--[\s\S]*?-->/g, "")).html());
+                        elm.effect("highlight", {'color' : '#57A957'}, 2000);
+                        Admin.set_object_field_value(elm);
+                    } else {
+                        jQuery(a).parent().effect("highlight", {'color' : '#C43C35'}, 2000);
+                    }
                 }
-            }
+            });
         });
     }
 }

+ 2 - 8
Resources/views/CRUD/list_boolean.html.twig

@@ -15,20 +15,14 @@ file that was distributed with this source code.
 {% spaceless %}
 {% if field_description.options.editable is defined and field_description.options.editable and admin.isGranted('EDIT') %}
     {% if value %}
-        <a
-            href="{{ url('sonata_admin_set_object_field_value', { 'context': 'list', 'field': field_description.name, 'objectId': object.id, 'value': 0, 'code': admin.code(object), 'uniqid': admin.uniqid(object) }) }}" class="sonata-ba-action"
-            onclick="Admin.set_object_field_value(event)"
-            >
+        <a href="{{ url('sonata_admin_set_object_field_value', { 'context': 'list', 'field': field_description.name, 'objectId': admin.id(object), 'value': 0, 'code': admin.code(object) }) }}" class="sonata-ba-action sonata-ba-edit-inline">
             <img
                 src="{{ asset('bundles/sonataadmin/famfamfam/accept.png') }}"
                 alt="{%- trans from 'SonataAdminBundle' %}label_type_yes{% endtrans -%}"
                 />
         </a>
     {% else %}
-        <a
-            href="{{ url('sonata_admin_set_object_field_value', { 'context': 'list', 'field': field_description.name, 'objectId': object.id, 'value': 1, 'code': admin.code(object), 'uniqid': admin.uniqid(object) }) }}" class="sonata-ba-action"
-            onclick="Admin.set_object_field_value(event)"
-            >
+        <a href="{{ url('sonata_admin_set_object_field_value', { 'context': 'list', 'field': field_description.name, 'objectId': admin.id(object), 'value': 1, 'code': admin.code(object) }) }}" class="sonata-ba-action sonata-ba-edit-inline">
             <img
                 src="{{ asset('bundles/sonataadmin/famfamfam/exclamation.png') }}"
                 alt="{%- trans from 'SonataAdminBundle' %}label_type_no{% endtrans -%}" />

+ 0 - 22
Resources/views/CRUD/show_boolean.html.twig

@@ -13,28 +13,6 @@ file that was distributed with this source code.
 
 {% block field %}
 {% spaceless %}
-{% if field_description.options.editable is defined and field_description.options.editable and admin.isGranted('EDIT') %}
-    {% if value %}
-        <a
-            href="{{ url('sonata_admin_set_object_field_value', { 'context': 'show', 'field': field_description.name, 'objectId': object.id, 'value': 0, 'code': admin.code(object), 'uniqid': admin.uniqid(object) }) }}" class="sonata-ba-action"
-            onclick="Admin.set_object_field_value(event)"
-            >
-            <img
-                src="{{ asset('bundles/sonataadmin/famfamfam/accept.png') }}"
-                alt="{%- trans from 'SonataAdminBundle' %}label_type_yes{% endtrans -%}"
-                />
-        </a>
-    {% else %}
-        <a
-            href="{{ url('sonata_admin_set_object_field_value', { 'context': 'show', 'field': field_description.name, 'objectId': object.id, 'value': 1, 'code': admin.code(object), 'uniqid': admin.uniqid(object) }) }}" class="sonata-ba-action"
-            onclick="Admin.set_object_field_value(event)"
-            >
-            <img
-                src="{{ asset('bundles/sonataadmin/famfamfam/exclamation.png') }}"
-                alt="{%- trans from 'SonataAdminBundle' %}label_type_no{% endtrans -%}" />
-        </a>
-    {% endif %}
-{% else %}
     {% if value %}
         <img src="{{ asset('bundles/sonataadmin/famfamfam/accept.png') }}" alt="{%- trans from 'SonataAdminBundle' %}label_type_yes{% endtrans -%}" />
     {% else %}