core23 9 rokov pred
rodič
commit
3ae239a2aa

+ 1 - 0
Block/AdminSearchBlockService.php

@@ -98,6 +98,7 @@ class AdminSearchBlockService extends BaseBlockService
             'query'      => '',
             'page'       => 0,
             'per_page'   => 10,
+            'icon'       => '<i class="fa fa-list"></i>',
         ));
     }
 }

+ 4 - 0
Resources/public/css/layout.css

@@ -355,6 +355,10 @@ body.fixed .content-header .navbar.stuck {
     border-radius: 0;
 }
 
+.sonata-search-result-list > li {
+    word-wrap: break-word;
+}
+
 .form-actions.stuck {
     position:fixed;
     bottom:0;

+ 39 - 33
Resources/views/Block/block_search_result.html.twig

@@ -12,43 +12,49 @@ file that was distributed with this source code.
 {% extends sonata_block.templates.block_base %}
 
 {% block block %}
-    <div class="col-md-3">
-        <div>
-            <h4>
-                {% if admin.hasRoute('list') %}
-                    <a href="{{ admin.generateUrl('list') }}">{{ admin.label|trans({}, admin.translationdomain) }}</a>
-                {% else %}
+    <div class="col-lg-4 col-md-6">
+        <div class="box">
+            <div class="box-header with-border">
+                {% set icon = settings.icon|default('') %}
+                {{ icon|raw }}
+                <h3 class="box-title">
                     {{ admin.label|trans({}, admin.translationdomain) }}
-                {% endif %}
-
-                {% if pager and pager.getNbResults() > 0 %}
-                    <span class="label label-info">{{ pager.getNbResults() }}</span>
-                {% endif %}
-            </h4>
-        </div>
-
-        <ul>
-            {% if pager %}
-                {% for result in pager.getResults() %}
-                    {% if admin.hasRoute('edit') %}
-                        <li><a href="{{ admin.generateObjectUrl('edit', result) }}">{{ admin.toString(result) }}</a></li>
-                    {% else %}
-                        <li><i>{{ admin.toString(result) }}</i></li>
+                </h3>
+
+                <div class="box-tools pull-right">
+                    {% if pager and pager.getNbResults() > 0 %}
+                        <span class="badge">{{ pager.getNbResults() }}</span>
+                    {% elseif admin.hasRoute('create') and admin.isGranted('CREATE') %}
+                        <a href="{{ admin.generateUrl('create') }}" class="btn btn-box-tool">
+                            <i class="fa fa-plus"></i>
+                        </a>
                     {% endif %}
-                {% else %}
-                    {% if admin.hasRoute('create') %}
-                        <li><i>{{ 'no_results_found'|trans({}, 'SonataAdminBundle') }} ~ <a href="{{ admin.generateUrl('create') }}">{{ 'add_new_entry'|trans({}, 'SonataAdminBundle') }}</a></i></li>
-                    {% else %}
-                        <li><i>{{ 'no_results_found'|trans({}, 'SonataAdminBundle') }}</i></li>
+                    {% if admin.hasRoute('list') and admin.isGranted('LIST') %}
+                        <a href="{{ admin.generateUrl('list') }}" class="btn btn-box-tool">
+                            <i class="fa fa-list"></i>
+                        </a>
                     {% endif %}
-                {% endfor %}
+                </div>
+            </div>
+            {% if pager and pager.getResults()|length %}
+                <div class="box-body no-padding">
+                    <ul class="nav nav-stacked sonata-search-result-list">
+                        {% for result in pager.getResults() %}
+                            {% if admin.hasRoute('edit') and admin.isGranted('EDIT', result) %}
+                                <li><a href="{{ admin.generateObjectUrl('edit', result) }}">{{ admin.toString(result) }}</a></li>
+                            {% else %}
+                                <li><a>{{ admin.toString(result) }}</a></li>
+                            {% endif %}
+                        {% endfor %}
+                    </ul>
+                </div>
             {% else %}
-                {% if admin.hasRoute('create') %}
-                    <li><i>{{ 'no_results_found'|trans({}, 'SonataAdminBundle') }} ~ <a href="{{ admin.generateUrl('create') }}">{{ 'add_new_entry'|trans({}, 'SonataAdminBundle') }}</a></i></li>
-                {% else %}
-                    <li><i>{{ 'no_results_found'|trans({}, 'SonataAdminBundle') }}</i></li>
-                {% endif %}
+                <div class="box-body">
+                    <p>
+                        <em>{{ 'no_results_found'|trans({}, 'SonataAdminBundle') }}</em>
+                    </p>
+                </div>
             {% endif %}
-        </ul>
+        </div>
     </div>
 {% endblock %}

+ 24 - 38
Resources/views/Core/search.html.twig

@@ -11,52 +11,38 @@ file that was distributed with this source code.
 
 {% extends base_template %}
 
-{% block title %}{{ 'title_search_results'|trans({'%query%': query}, 'SonataAdminBundle') }}{% endblock%}
+{% block title %}{{ 'title_search_results'|trans({'%query%': query}, 'SonataAdminBundle') }}{% endblock %}
 {% block breadcrumb %}{% endblock %}
 {% block content %}
-    <!--
-    <div class="row">
-        <form action="{{ path('sonata_admin_search') }}" method="GET"  class="form-search">
-            <div class="input-append">
-                <input type="text" name="q" value="{{ query }}" class="input-large search-query">
-                <button type="submit" class="btn">Search</button>
-            </div>
-        </form>
-    </div>
-    -->
-
-    <h1>{{ 'title_search_results'|trans({'%query%': query}, 'SonataAdminBundle') }}</h1>
+    <h2 class="page-header">{{ 'title_search_results'|trans({'%query%': query}, 'SonataAdminBundle') }}</h2>
 
     {% if query is defined and query is not same as(false) %}
         {% set count = 0 %}
         <div class="row">
 
-            {% for group in groups %}
-                {% set display = (group.roles is empty or is_granted('ROLE_SUPER_ADMIN') ) %}
-                {% for role in group.roles if not display %}
-                    {% set display = is_granted(role)%}
-                {% endfor %}
-
-                {% if display %}
-                    {% for admin in group.items %}
-                        {% if count % 3 == 0 %}
-                            </div><div class="row">
-                        {% endif %}
-
-                        {% set count = count + 1 %}
-                        {% if admin.hasroute('create') and admin.isGranted('CREATE') or admin.hasroute('list') and admin.isGranted('LIST') %}
-                            {{ sonata_block_render({
-                                'type': 'sonata.admin.block.search_result'
-                            }, {
-                                'query': query,
-                                'admin_code': admin.code,
-                                'page': 0,
-                                'per_page': 10
-                            }) }}
-                        {% endif %}
-                    {% endfor %}
-                {% endif %}
+        {% for group in groups %}
+            {% set display = (group.roles is empty or is_granted('ROLE_SUPER_ADMIN') ) %}
+            {% for role in group.roles if not display %}
+                {% set display = is_granted(role) %}
             {% endfor %}
+
+            {% if display %}
+                {% for admin in group.items %}
+                    {% set count = count + 1 %}
+                    {% if admin.hasRoute('create') and admin.isGranted('CREATE') or admin.hasRoute('list') and admin.isGranted('LIST') %}
+                        {{ sonata_block_render({
+                            'type': 'sonata.admin.block.search_result'
+                        }, {
+                            'query': query,
+                            'admin_code': admin.code,
+                            'page': 0,
+                            'per_page': 10,
+                            'icon': group.icon
+                        }) }}
+                    {% endif %}
+                {% endfor %}
+            {% endif %}
+        {% endfor %}
         </div>
     {% endif %}
 

+ 1 - 0
Tests/Block/AdminSearchBlockServiceTest.php

@@ -49,6 +49,7 @@ class AdminSearchBlockServiceTest extends AbstractBlockServiceTest
             'query'      => '',
             'page'       => 0,
             'per_page'   => 10,
+            'icon'       => '<i class="fa fa-list"></i>',
         ), $blockContext);
     }
 }