ソースを参照

Merge remote-tracking branch 'upstream/master'

Sullivan SENECHAL 9 年 前
コミット
b6ff023bd0
26 ファイル変更114 行追加65 行削除
  1. 44 0
      Resources/doc/cookbook/recipe_lock_protection.rst
  2. 13 10
      Resources/public/Admin.js
  3. 3 3
      Resources/translations/SonataAdminBundle.ar.xliff
  4. 2 2
      Resources/translations/SonataAdminBundle.bg.xliff
  5. 2 2
      Resources/translations/SonataAdminBundle.ca.xliff
  6. 2 2
      Resources/translations/SonataAdminBundle.cs.xliff
  7. 2 2
      Resources/translations/SonataAdminBundle.es.xliff
  8. 2 2
      Resources/translations/SonataAdminBundle.eu.xliff
  9. 2 2
      Resources/translations/SonataAdminBundle.fa.xliff
  10. 2 2
      Resources/translations/SonataAdminBundle.fr.xliff
  11. 2 2
      Resources/translations/SonataAdminBundle.hr.xliff
  12. 2 2
      Resources/translations/SonataAdminBundle.ja.xliff
  13. 2 2
      Resources/translations/SonataAdminBundle.lb.xliff
  14. 2 2
      Resources/translations/SonataAdminBundle.lt.xliff
  15. 2 2
      Resources/translations/SonataAdminBundle.nl.xliff
  16. 1 1
      Resources/translations/SonataAdminBundle.no.xliff
  17. 2 2
      Resources/translations/SonataAdminBundle.pl.xliff
  18. 2 2
      Resources/translations/SonataAdminBundle.pt.xliff
  19. 2 2
      Resources/translations/SonataAdminBundle.pt_BR.xliff
  20. 2 2
      Resources/translations/SonataAdminBundle.ro.xliff
  21. 2 2
      Resources/translations/SonataAdminBundle.ru.xliff
  22. 2 2
      Resources/translations/SonataAdminBundle.sk.xliff
  23. 2 2
      Resources/translations/SonataAdminBundle.sl.xliff
  24. 2 2
      Resources/translations/SonataAdminBundle.uk.xliff
  25. 2 2
      Resources/translations/SonataAdminBundle.zh_CN.xliff
  26. 11 9
      Resources/views/CRUD/base_history.html.twig

+ 44 - 0
Resources/doc/cookbook/recipe_lock_protection.rst

@@ -29,6 +29,50 @@ You can enable it in your ``sonata_admin`` configuration :
         sonata_admin:
             options:
                 lock_protection: true
+                
+You must also configure each entity that you want to support by adding a field called ``$version`` on which the Doctrine ``Version`` feature is activated.
+
+Using Annotations:
+
+.. code-block:: php
+
+    <?php
+    // src/AppBundle/Entity/Car.php
+    namespace AppBundle\Entity\Car;
+    
+    use Doctrine\ORM\Mapping as ORM;
+
+    class Car
+    {
+        // ...
+        
+        /**
+         * @ORM\Column(type="integer")
+         * @ORM\Version
+         */
+        protected $version;
+        
+        // ...
+    }
+
+Using XML:
+
+.. code-block:: xml
+
+    <?xml version="1.0" encoding="utf-8"?>
+    <!-- src/AppBundle/Resources/orm/Car.orm.xml -->
+    <doctrine-mapping>
+        <entity name="AppBundle\Entity\Car">
+            <!-- ... -->
+    
+            <field name="version" type="integer" version="true" />
+    
+            <!-- ... -->
+        </entity>
+    </doctrine-mapping>
+    
+
+For more information about this visit the `Doctrine docs <http://doctrine-orm.readthedocs.org/en/latest/reference/transactions-and-concurrency.html?highlight=optimistic#optimistic-locking>`_
 
 .. note::
 

+ 13 - 10
Resources/public/Admin.js

@@ -39,9 +39,9 @@ var Admin = {
     shared_setup: function(subject) {
         Admin.log("[core|shared_setup] Register services on", subject);
         Admin.set_object_field_value(subject);
+        Admin.add_filters(subject);
         Admin.setup_select2(subject);
         Admin.setup_icheck(subject);
-        Admin.add_filters(subject);
         Admin.setup_xeditable(subject);
         Admin.add_pretty_errors(subject);
         Admin.setup_form_tabs_for_errors(subject);
@@ -517,15 +517,18 @@ var Admin = {
 
         // On form submit, transform value to match what is expected by server
         subject.parents('form:first').submit(function (event) {
-            var values   = subject.val().split(',');
-            var baseName = subject.attr('name');
-            baseName = baseName.substring(0, baseName.length-1);
-            for (var i=0; i<values.length; i++) {
-                jQuery('<input>')
-                    .attr('type', 'hidden')
-                    .attr('name', baseName+i+']')
-                    .val(values[i])
-                    .appendTo(subject.parents('form:first'));
+            var values = subject.val().trim();
+            if (values !== '') {
+                var baseName = subject.attr('name');
+                values   = values.split(',');
+                baseName = baseName.substring(0, baseName.length-1);
+                for (var i=0; i<values.length; i++) {
+                    jQuery('<input>')
+                        .attr('type', 'hidden')
+                        .attr('name', baseName+i+']')
+                        .val(values[i])
+                        .appendTo(subject.parents('form:first'));
+                }
             }
             subject.remove();
         });

+ 3 - 3
Resources/translations/SonataAdminBundle.ar.xliff

@@ -452,15 +452,15 @@
             </trans-unit>
             <trans-unit id="stats_view_more">
                 <source>stats_view_more</source>
-                <target>View more</target>
+                <target>stats_view_more</target>
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.bg.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.ca.xliff

@@ -316,7 +316,7 @@
             </trans-unit>
             <trans-unit id="td_compare">
                 <source>td_compare</source>
-                <target>td_compare</target>
+                <target>Compara</target>
             </trans-unit>
             <trans-unit id="td_revision">
                 <source>td_revision</source>
@@ -340,7 +340,7 @@
             </trans-unit>
             <trans-unit id="label_compare_revision">
                 <source>label_compare_revision</source>
-                <target>label_compare_revision</target>
+                <target>Compara revisió</target>
             </trans-unit>
             <trans-unit id="list_results_count_prefix">
                 <source>list_results_count_prefix</source>

+ 2 - 2
Resources/translations/SonataAdminBundle.cs.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.es.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.eu.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.fa.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.fr.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.hr.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.ja.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.lb.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.lt.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.nl.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 1 - 1
Resources/translations/SonataAdminBundle.no.xliff

@@ -452,7 +452,7 @@
             </trans-unit>
             <trans-unit id="stats_view_more">
                 <source>stats_view_more</source>
-                <target>View more</target>
+                <target>stats_view_more</target>
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>

+ 2 - 2
Resources/translations/SonataAdminBundle.pl.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.pt.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.pt_BR.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.ro.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.ru.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.sk.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.sl.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.uk.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 2 - 2
Resources/translations/SonataAdminBundle.zh_CN.xliff

@@ -456,11 +456,11 @@
             </trans-unit>
             <trans-unit id="title_select_subclass">
                 <source>title_select_subclass</source>
-                <target>Select object type</target>
+                <target>title_select_subclass</target>
             </trans-unit>
             <trans-unit id="no_subclass_available">
                 <source>no_subclass_available</source>
-                <target>No object types available</target>
+                <target>no_subclass_available</target>
             </trans-unit>
         </body>
     </file>

+ 11 - 9
Resources/views/CRUD/base_history.html.twig

@@ -27,25 +27,27 @@ file that was distributed with this source code.
                     <table class="table" id="revisions">
                         <thead>
                         <tr>
-                            <th>{{ "td_revision"|trans({}, 'SonataAdminBundle') }}</th>
-                            <th>{{ "td_timestamp"|trans({}, 'SonataAdminBundle') }}</th>
-                            <th>{{ "td_username"|trans({}, 'SonataAdminBundle') }}</th>
-                            <th>{{ "td_action"|trans({}, 'SonataAdminBundle') }}</th>
-                            <th>{{ "td_compare"|trans({}, 'SonataAdminBundle') }}</th>
+                            <th>{{ 'td_revision'|trans({}, 'SonataAdminBundle') }}</th>
+                            <th>{{ 'td_timestamp'|trans({}, 'SonataAdminBundle') }}</th>
+                            <th>{{ 'td_username'|trans({}, 'SonataAdminBundle') }}</th>
+                            <th>{{ 'td_action'|trans({}, 'SonataAdminBundle') }}</th>
+                            <th>{{ 'td_compare'|trans({}, 'SonataAdminBundle') }}</th>
                         </tr>
                         </thead>
                         <tbody>
                         {% for revision in revisions %}
                             <tr class="{% if (currentRevision != false and revision.rev == currentRevision.rev) %}current-revision{% endif %}">
-                                <td>{{ revision.rev}}</td>
+                                <td>{{ revision.rev }}</td>
                                 <td>{% include admin.getTemplate('history_revision_timestamp') %}</td>
-                                <td>{{ revision.username}}</td>
-                                <td><a href="{{ admin.generateObjectUrl('history_view_revision', object, {'revision': revision.rev }) }}" class="revision-link" rel="{{ revision.rev }}">{{ "label_view_revision"|trans({}, 'SonataAdminBundle') }}</a></td>
+                                <td>{{ revision.username }}</td>
+                                <td>
+                                    <a href="{{ admin.generateObjectUrl('history_view_revision', object, {'revision': revision.rev }) }}" class="revision-link" rel="{{ revision.rev }}">{{ 'label_view_revision'|trans({}, 'SonataAdminBundle') }}</a>
+                                </td>
                                 <td>
                                     {% if (currentRevision == false or revision.rev == currentRevision.rev) %}
                                         /
                                     {% else %}
-                                        <a href="{{ admin.generateObjectUrl('history_compare_revisions', object, {'base_revision': currentRevision.rev, 'compare_revision': revision.rev }) }}" class="revision-compare-link" rel="{{ revision.rev }}">{{ "label_compare_revision"|trans({}, 'SonataAdminBundle') }}</a>
+                                        <a href="{{ admin.generateObjectUrl('history_compare_revisions', object, {'base_revision': currentRevision.rev, 'compare_revision': revision.rev }) }}" class="revision-compare-link" rel="{{ revision.rev }}">{{ 'label_compare_revision'|trans({}, 'SonataAdminBundle') }}</a>
                                     {% endif %}
                                 </td>
                             </tr>