瀏覽代碼

Add an option to disable html5 validation

Thomas Rabaix 12 年之前
父節點
當前提交
e99449c2f2

+ 18 - 1
Admin/Pool.php

@@ -29,16 +29,19 @@ class Pool
 
 
     protected $titleLogo;
     protected $titleLogo;
 
 
+    protected $options;
+
     /**
     /**
      * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
      * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
      * @param string                                                    $title
      * @param string                                                    $title
      * @param string                                                    $logoTitle
      * @param string                                                    $logoTitle
      */
      */
-    public function __construct(ContainerInterface $container, $title, $logoTitle)
+    public function __construct(ContainerInterface $container, $title, $logoTitle, $options = array())
     {
     {
         $this->container = $container;
         $this->container = $container;
         $this->title     = $title;
         $this->title     = $title;
         $this->titleLogo = $logoTitle;
         $this->titleLogo = $logoTitle;
+        $this->options   = $options;
     }
     }
 
 
     /**
     /**
@@ -255,4 +258,18 @@ class Pool
     {
     {
         return $this->title;
         return $this->title;
     }
     }
+
+    /**
+     * @param $name
+     *
+     * @return mixed
+     */
+    public function getOption($name)
+    {
+        if (isset($this->options[$name])) {
+            return $this->options[$name];
+        }
+
+        return null;
+    }
 }
 }

+ 4 - 0
CHANGELOG.md

@@ -1,6 +1,10 @@
 CHANGELOG
 CHANGELOG
 =========
 =========
 
 
+### 2013-07-05
+
+*  Remove qTip
+
 ### 2012-11-25
 ### 2012-11-25
 
 
 * [BC BREAK] change the configureSideMenu signature to use the AdminInterface
 * [BC BREAK] change the configureSideMenu signature to use the AdminInterface

+ 6 - 1
DependencyInjection/Configuration.php

@@ -66,7 +66,12 @@ class Configuration implements ConfigurationInterface
 
 
                 ->scalarNode('title')->defaultValue('Sonata Admin')->cannotBeEmpty()->end()
                 ->scalarNode('title')->defaultValue('Sonata Admin')->cannotBeEmpty()->end()
                 ->scalarNode('title_logo')->defaultValue('bundles/sonataadmin/logo_title.png')->cannotBeEmpty()->end()
                 ->scalarNode('title_logo')->defaultValue('bundles/sonataadmin/logo_title.png')->cannotBeEmpty()->end()
-
+                ->arrayNode('options')
+                    ->addDefaultsIfNotSet()
+                    ->children()
+                        ->scalarNode('html5_validate')->defaultValue(true)->end()
+                    ->end()
+                ->end()
                 ->arrayNode('dashboard')
                 ->arrayNode('dashboard')
                     ->addDefaultsIfNotSet()
                     ->addDefaultsIfNotSet()
                     ->children()
                     ->children()

+ 1 - 0
DependencyInjection/SonataAdminExtension.php

@@ -60,6 +60,7 @@ class SonataAdminExtension extends Extension
         $pool = $container->getDefinition('sonata.admin.pool');
         $pool = $container->getDefinition('sonata.admin.pool');
         $pool->replaceArgument(1, $config['title']);
         $pool->replaceArgument(1, $config['title']);
         $pool->replaceArgument(2, $config['title_logo']);
         $pool->replaceArgument(2, $config['title_logo']);
+        $pool->replaceArgument(3, $config['options']);
 
 
         $container->setParameter('sonata.admin.configuration.templates', $config['templates']);
         $container->setParameter('sonata.admin.configuration.templates', $config['templates']);
         $container->setParameter('sonata.admin.configuration.admin_services', $config['admin_services']);
         $container->setParameter('sonata.admin.configuration.admin_services', $config['admin_services']);

+ 2 - 0
Resources/config/core.xml

@@ -9,6 +9,8 @@
             <argument type="service" id="service_container" />
             <argument type="service" id="service_container" />
             <argument />
             <argument />
             <argument />
             <argument />
+            <argument type="collection" />
+
             <call method="setTemplates">
             <call method="setTemplates">
                 <argument>%sonata.admin.configuration.templates%</argument>
                 <argument>%sonata.admin.configuration.templates%</argument>
             </call>
             </call>

+ 6 - 3
Resources/doc/reference/configuration.rst

@@ -25,6 +25,9 @@ Full Configuration Options
 
 
         title:      Sonata Project
         title:      Sonata Project
         title_logo: bundles/sonataadmin/logo_title.png
         title_logo: bundles/sonataadmin/logo_title.png
+        options:
+            html5_validate: false # does not use html5 validation
+            
         templates:
         templates:
             # default global templates
             # default global templates
             layout:  SonataAdminBundle::standard_layout.html.twig
             layout:  SonataAdminBundle::standard_layout.html.twig
@@ -40,14 +43,14 @@ Full Configuration Options
             delete:  SonataAdminBundle:CRUD:delete.html.twig
             delete:  SonataAdminBundle:CRUD:delete.html.twig
             batch:   SonataAdminBundle:CRUD:list__batch.html.twig
             batch:   SonataAdminBundle:CRUD:list__batch.html.twig
             batch_confirmation: SonataAdminBundle:CRUD:batch_confirmation.html.twig
             batch_confirmation: SonataAdminBundle:CRUD:batch_confirmation.html.twig
-            
+
             # list related templates
             # list related templates
             inner_list_row: SonataAdminBundle:CRUD:list_inner_row.html.twig
             inner_list_row: SonataAdminBundle:CRUD:list_inner_row.html.twig
             base_list_field: SonataAdminBundle:CRUD:base_list_field.html.twig
             base_list_field: SonataAdminBundle:CRUD:base_list_field.html.twig
-            
+
             # default values of helper templates
             # default values of helper templates
             short_object_description: SonataAdminBundle:Helper:short-object-description.html.twig
             short_object_description: SonataAdminBundle:Helper:short-object-description.html.twig
-            
+
             # default values of block templates, they should extend the base_block template
             # default values of block templates, they should extend the base_block template
             list_block: SonataAdminBundle:Block:block_admin_list.html.twig
             list_block: SonataAdminBundle:Block:block_admin_list.html.twig
 
 

+ 5 - 1
Resources/views/CRUD/base_edit_form.html.twig

@@ -6,7 +6,11 @@
             {{ "form_not_available"|trans({}, "SonataAdminBundle") }}
             {{ "form_not_available"|trans({}, "SonataAdminBundle") }}
         </div>
         </div>
     {% else %}
     {% else %}
-        <form class="form-horizontal" action="{{ admin.generateUrl(url, {'id': admin.id(object), 'uniqid': admin.uniqid, 'subclass': app.request.get('subclass')}) }}" {{ form_enctype(form) }} method="POST">
+        <form class="form-horizontal"
+              action="{{ admin.generateUrl(url, {'id': admin.id(object), 'uniqid': admin.uniqid, 'subclass': app.request.get('subclass')}) }}" {{ form_enctype(form) }}
+              method="POST"
+              {% if not admin_pool.getOption('html5_validate') %}novalidate="novalidate"{% endif %}
+              >
             {% if form.vars.errors|length > 0 %}
             {% if form.vars.errors|length > 0 %}
                 <div class="sonata-ba-form-error">
                 <div class="sonata-ba-form-error">
                     {{ form_errors(form) }}
                     {{ form_errors(form) }}