mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 23:13:15 +00:00
PHRAS-2796_actionbar-enhancements_4.1
port code from 4.0
This commit is contained in:
@@ -341,10 +341,20 @@ class QueryController extends Controller
|
|||||||
|
|
||||||
if ($result->getTotal() === 0) {
|
if ($result->getTotal() === 0) {
|
||||||
$template = 'prod/results/help.html.twig';
|
$template = 'prod/results/help.html.twig';
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$template = 'prod/results/records.html.twig';
|
$template = 'prod/results/records.html.twig';
|
||||||
}
|
}
|
||||||
$json['results'] = $this->render($template, ['results'=> $result]);
|
|
||||||
|
/** @var \Closure $filter */
|
||||||
|
$filter = $this->app['plugin.filter_by_authorization'];
|
||||||
|
|
||||||
|
$plugins = [
|
||||||
|
'workzone' => $filter('workzone'),
|
||||||
|
'actionbar' => $filter('actionbar'),
|
||||||
|
];
|
||||||
|
|
||||||
|
$json['results'] = $this->render($template, ['results'=> $result, 'plugins'=>$plugins]);
|
||||||
|
|
||||||
|
|
||||||
// add technical fields
|
// add technical fields
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
{% include 'prod/results/record.html.twig' with {
|
{% include 'prod/results/record.html.twig' with {
|
||||||
'record': record,
|
'record': record,
|
||||||
'settings': settings
|
'settings': settings,
|
||||||
|
'plugins': plugins
|
||||||
} %}
|
} %}
|
||||||
|
@@ -7,7 +7,8 @@
|
|||||||
<td valign="top" style='width:{{ settings.images_size + 50 }}px'>
|
<td valign="top" style='width:{{ settings.images_size + 50 }}px'>
|
||||||
{% include 'prod/results/record.html.twig' with {
|
{% include 'prod/results/record.html.twig' with {
|
||||||
'record': record,
|
'record': record,
|
||||||
'settings': settings
|
'settings': settings,
|
||||||
|
'plugins': plugins
|
||||||
} %}
|
} %}
|
||||||
</td>
|
</td>
|
||||||
<td valign="middle">
|
<td valign="middle">
|
||||||
|
@@ -155,6 +155,29 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{# add plugins entries #}
|
||||||
|
{% for plugin in plugins.actionbar|default([]) %}
|
||||||
|
{% set menu = plugin.ActionBar['_context_']|default([]) %}
|
||||||
|
{% for k, action in menu %}
|
||||||
|
{% if plugin.isContextMenuOptionAvailable(k, record) %}
|
||||||
|
<div title="" class="context-menu-item"
|
||||||
|
onclick="{{ plugin.getContextMenuJS(k) }}('{{ k }}', '{{record.baseId}}', '{{record.recordId}}', '{{ record.id }}');">
|
||||||
|
<div class="context-menu-item-inner">
|
||||||
|
{% set icon = (action.icon ?? false) ? plugin_asset(plugin.PluginName, action.icon) : null %}
|
||||||
|
{% set label = (action.label ?? false) ? (action.label|trans({}, plugin.PluginLocale)) : 'undefined label' %}
|
||||||
|
<a title="{{ label }}" href="#">
|
||||||
|
{% if icon %}
|
||||||
|
<img style="cursor:pointer;" src="{{ icon }}" alt="{{ label }}">
|
||||||
|
{% endif %}
|
||||||
|
<span>{{ label }}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@@ -31,7 +31,8 @@
|
|||||||
'doctype_display': doctype_display,
|
'doctype_display': doctype_display,
|
||||||
'handle_dblclick' : true,
|
'handle_dblclick' : true,
|
||||||
'show_context_menu': true
|
'show_context_menu': true
|
||||||
}
|
},
|
||||||
|
'plugins': plugins
|
||||||
} %}
|
} %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@@ -44,270 +44,153 @@
|
|||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="dropdownButton">
|
{% set menus = {
|
||||||
<div class="btn-group">
|
'export': [
|
||||||
<button id="TOOL_disktt" class="default_action TOOL_disktt_btn results_window btn btn-inverse" data-selection-source="search-result">
|
{
|
||||||
<img src="/assets/common/images/icons/disktt_history.png" height="16" width="16" class="btn-image"/> {{ 'action : exporter' | trans }}
|
'class':'TOOL_disktt_btn',
|
||||||
</button>
|
'icon':'/assets/common/images/icons/disktt_history.png',
|
||||||
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span class="caret"></span>
|
'label':'action : exporter' | trans },
|
||||||
</button>
|
{
|
||||||
<ul class="dropdown-menu">
|
'class':'TOOL_print_btn',
|
||||||
<li>
|
'icon':'/assets/common/images/icons/print_history.png',
|
||||||
<a class="TOOL_print_btn results_window" data-selection-source="search-result">
|
'label':'action : print' | trans }
|
||||||
<img src="/assets/common/images/icons/print_history.png" height="16" width="16" class="btn-image"/>
|
],
|
||||||
{{ 'action : print' | trans }}
|
'edit': [],
|
||||||
</a>
|
'push': [],
|
||||||
</li>
|
'tools': [],
|
||||||
</ul>
|
'delete': []
|
||||||
</div>
|
} %}
|
||||||
</span>
|
|
||||||
|
|
||||||
{% set actions = {} %}
|
{# menu "edit" #}
|
||||||
|
{% set m = [] %}
|
||||||
{% if acl.has_right(constant('\\ACL::CANMODIFRECORD')) %}
|
{% if acl.has_right(constant('\\ACL::CANMODIFRECORD')) %}
|
||||||
{% set label %}
|
{% set m = m|merge([
|
||||||
{{ 'action : editer' | trans }}
|
{
|
||||||
{% endset %}
|
'class':'TOOL_ppen_btn',
|
||||||
{% set actions = actions|merge( { 'edit' : {'icon': "/assets/common/images/icons/ppen_history.png", 'class':'TOOL_ppen_btn', 'label' : label} }) %}
|
'icon':'/assets/common/images/icons/edit-pen.png',
|
||||||
{% set label %}
|
'label':'action : editer' | trans }
|
||||||
{{ 'prod::toolbar : video editor' | trans }}
|
]) %}
|
||||||
{% endset %}
|
|
||||||
{% set actions = actions|merge( { 'video' : {'icon': "/assets/common/images/icons/icon-video-editor.png", 'class':'TOOL_videoeditor_btn', 'label' : label} }) %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if acl.has_right(constant('\\ACL::CHGSTATUS')) %}
|
{% if acl.has_right(constant('\\\ACL::CHGSTATUS')) %}
|
||||||
{% set label %}
|
{% set m = m|merge([
|
||||||
{{ 'action : status' | trans }}
|
{
|
||||||
{% endset %}
|
'class':'TOOL_chgstatus_btn',
|
||||||
{% set actions = actions|merge( { 'status' : {'icon': "/assets/common/images/icons/chgstatus_history.png", 'class':'TOOL_chgstatus_btn', 'label' : label} }) %}
|
'icon':'/assets/common/images/icons/chgstatus_history.png',
|
||||||
|
'label':'action : status' | trans }
|
||||||
|
]) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if acl.has_right(constant('\\ACL::CANDELETERECORD')) and acl.has_right(constant('\\ACL::CANADDRECORD')) %}
|
{% if acl.has_right(constant('\\ACL::CANDELETERECORD')) and acl.has_right(constant('\\ACL::CANADDRECORD')) %}
|
||||||
{% set label %}
|
{% set m = m|merge([
|
||||||
{{ 'action : collection' | trans }}
|
{
|
||||||
{% endset %}
|
'class':'TOOL_chgcoll_btn',
|
||||||
{% set actions = actions|merge( { 'move' : {'icon': "/assets/common/images/icons/chgcoll_history.png", 'class':'TOOL_chgcoll_btn', 'label' : label} }) %}
|
'icon':'/assets/common/images/icons/chgcoll_history.png',
|
||||||
|
'label':'action : collection' | trans }
|
||||||
|
]) %}
|
||||||
|
{% endif %}
|
||||||
|
{% set menus = menus|merge({'edit' : m}) %}
|
||||||
|
|
||||||
|
{# menu "push" #}
|
||||||
|
{% set m = [] %}
|
||||||
|
{% if acl.has_right(constant('\\ACL::CANPUSH')) %}
|
||||||
|
{% set m = m|merge([
|
||||||
|
{
|
||||||
|
'class':'TOOL_pushdoc_btn',
|
||||||
|
'icon':'/assets/common/images/icons/push-icon.png',
|
||||||
|
'label':'action : push' | trans },
|
||||||
|
{
|
||||||
|
'class':'TOOL_feedback_btn',
|
||||||
|
'icon':'/assets/common/images/icons/feedback-icon.png',
|
||||||
|
'label':'Feedback' | trans }
|
||||||
|
]) %}
|
||||||
|
{% endif %}
|
||||||
|
{% if acl.has_right(constant('\\ACL::BAS_CHUPUB')) %}
|
||||||
|
{% set m = m|merge([
|
||||||
|
{
|
||||||
|
'class':'TOOL_publish_btn',
|
||||||
|
'icon':'/assets/common/images/icons/rss-publish.png',
|
||||||
|
'label':'action : publier' | trans }
|
||||||
|
]) %}
|
||||||
|
{% endif %}
|
||||||
|
{% set menus = menus|merge({'push' : m}) %}
|
||||||
|
|
||||||
|
{# menu "tools" #}
|
||||||
|
{% if acl.has_right(constant('\\ACL::IMGTOOLS')) %}
|
||||||
|
{% set menus = menus|merge({'tools' : [
|
||||||
|
{
|
||||||
|
'class':'TOOL_imgtools_btn',
|
||||||
|
'icon':'/assets/common/images/icons/imgtools_history.png',
|
||||||
|
'label':'action : outils' | trans }
|
||||||
|
]}) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% set n_actions = actions|length %}
|
{# menu "delete" #}
|
||||||
{% if n_actions > 1 %}
|
{% if acl.has_right(constant('\\ACL::CANDELETERECORD')) %}
|
||||||
<span class="dropdownButton">
|
{% set menus = menus|merge({'delete' : [
|
||||||
<div class="btn-group">
|
{
|
||||||
{% for action in actions %}
|
'class':'TOOL_trash_btn',
|
||||||
{% if loop.first %}
|
'icon':'/assets/common/images/icons/delete.png',
|
||||||
<button class="default_action {{ action.class }} results_window btn btn-inverse" data-selection-source="search-result">
|
'label':'action : supprimer' | trans }
|
||||||
<img src="{{ action.icon }}" height="16" width="16" class="btn-image"/> {{ action.label }}
|
]}) %}
|
||||||
</button>
|
{% endif %}
|
||||||
{% endif %}
|
|
||||||
|
{# add plugins entries #}
|
||||||
|
{% if plugins.actionbar is not empty %}
|
||||||
|
{% for plugin in plugins.actionbar %}
|
||||||
|
{% for k, menu in plugin.getActionBar() %}
|
||||||
|
{% set m = menus[k]|default([]) %}
|
||||||
|
{% for action in menu %}
|
||||||
|
{% set m = m|merge([{
|
||||||
|
'class':action.classes|default(''),
|
||||||
|
'icon':plugin_asset(plugin.PluginName, action.icon),
|
||||||
|
'label':action.label|trans({}, plugin.PluginLocale) }])
|
||||||
|
%}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
|
{% set menus = menus|merge({(k) : m}) %}
|
||||||
class="caret"></span></button>
|
{% endfor %}
|
||||||
<ul class="dropdown-menu">
|
{% endfor %}
|
||||||
{% for action in actions %}
|
{% endif %}
|
||||||
{% if not loop.first %}
|
|
||||||
<li>
|
{# print #}
|
||||||
<a class="{{ action.class }} results_window" data-selection-source="search-result">
|
{% for menu_entries in menus %}
|
||||||
<img src="{{ action.icon }}" height="16" width="16" class="btn-image"/>
|
{% if menu_entries|length > 0 %}
|
||||||
{{ action.label }}
|
<span class="dropdownButton">
|
||||||
</a>
|
<div class="btn-group">
|
||||||
</li>
|
{% set menu_entry = menu_entries[0] %}
|
||||||
{% if not loop.last %}
|
<button class="results_window btn btn-inverse {{ menu_entry.class }}">
|
||||||
<li class="divider"></li>
|
<img src="{{ menu_entry.icon }}" class="btn-image"/>
|
||||||
{% endif %}
|
{{ menu_entry.label }}
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
{% elseif n_actions == 1 %}
|
|
||||||
<span class="classicButton">
|
|
||||||
<div class="btn-group">
|
|
||||||
{% for action in actions %}
|
|
||||||
<button class="{{ action.class }} results_window btn btn-inverse" data-selection-source="search-result">
|
|
||||||
<img src="{{ action.icon }}" height="16" width="16" class="btn-image"/> {{ action.label }}
|
|
||||||
</button>
|
</button>
|
||||||
{% endfor %}
|
{% set menu_entries = menu_entries|slice(1) %}
|
||||||
</div>
|
{% if menu_entries|length > 0 %}
|
||||||
</span>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if acl.has_right(constant('\\ACL::CANPUSH')) and acl.has_right(constant('\\ACL::BAS_CHUPUB')) %}
|
|
||||||
<span class="dropdownButton">
|
|
||||||
<div class="btn-group">
|
|
||||||
<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse" data-selection-source="search-result">
|
|
||||||
<img src="/assets/common/images/icons/push16.png" height="16" width="16" class="btn-image"/> {{ 'action : push' | trans }}
|
|
||||||
</button>
|
|
||||||
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
|
|
||||||
class="caret"></span></button>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li>
|
|
||||||
<a class="TOOL_feedback_btn results_window" data-selection-source="search-result">
|
|
||||||
<img src="/assets/common/images/icons/feedback16.png" height="16" width="16" class="btn-image"/>
|
|
||||||
{{ 'Feedback' | trans }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{#<li class="divider"></li>#}
|
|
||||||
{#<li>#}
|
|
||||||
{#<a class="TOOL_bridge_btn results_window" href="{{ path("prod_bridge_manager") }}" data-selection-source="search-result">#}
|
|
||||||
{#<img src="/assets/common/images/icons/door.png" height="16" width="16" class="btn-image"/>#}
|
|
||||||
{#{{ 'action : bridge' | trans }}#}
|
|
||||||
{#</a>#}
|
|
||||||
{#</li>#}
|
|
||||||
<li class="divider"></li>
|
|
||||||
<li>
|
|
||||||
<a class="TOOL_publish_btn results_window" data-selection-source="search-result">
|
|
||||||
<img src="/assets/common/images/icons/rss16.png" height="16" width="16" class="btn-image"/>
|
|
||||||
{{ 'action : publier' | trans }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% if plugins.actionbar is not empty %}
|
|
||||||
{% for plugin in plugins.actionbar %}
|
|
||||||
<li class="divider"></li>
|
|
||||||
{% for key, action in plugin.getActionBar().push|default([]) %}
|
|
||||||
<li>
|
|
||||||
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
|
|
||||||
{% if action.icon %}
|
|
||||||
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16" class="btn-image"/>
|
|
||||||
{% endif %}
|
|
||||||
{{ action.label|trans({}, plugin.PluginLocale) }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
{% elseif acl.has_right(constant('\\ACL::CANPUSH')) %}
|
|
||||||
<span class="dropdownButton">
|
|
||||||
<div class="btn-group">
|
|
||||||
<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse" data-selection-source="search-result">
|
|
||||||
<img src="/assets/common/images/icons/push16.png" height="16" width="16" class="btn-image"/> {{ 'action : push' | trans }}
|
|
||||||
</button>
|
|
||||||
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
|
|
||||||
class="caret"></span></button>
|
|
||||||
<ul class="submenu dropdown-menu">
|
|
||||||
<li>
|
|
||||||
<a class="TOOL_feedback_btn results_window" data-selection-source="search-result">
|
|
||||||
<img src="/assets/common/images/icons/feedback16.png" height="16" width="16" class="btn-image"/>
|
|
||||||
{{ 'Feedback' | trans }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% if plugins.actionbar is not empty %}
|
|
||||||
{% for plugin in plugins.actionbar %}
|
|
||||||
<li class="divider"></li>
|
|
||||||
{% for key, action in plugin.getActionBar().push|default([]) %}
|
|
||||||
<li>
|
|
||||||
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
|
|
||||||
{% if action.icon %}
|
|
||||||
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16" class="btn-image"/>
|
|
||||||
{% endif %}
|
|
||||||
{{ action.label|trans({}, plugin.PluginLocale) }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
{% elseif acl.has_right(constant('\\ACL::BAS_CHUPUB')) %}
|
|
||||||
<span class="dropdownButton">
|
|
||||||
<div class="btn-group">
|
|
||||||
{#<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse" data-selection-source="search-result">#}
|
|
||||||
{#<img src="/assets/common/images/icons/door.png" height="16" width="16" class="btn-image"/> {{ 'action : bridge' | trans }}#}
|
|
||||||
{#</button>#}
|
|
||||||
<button class="TOOL_publish_btn results_window btn btn-inverse">
|
|
||||||
<img src="/assets/common/images/icons/rss16.png" height="16" width="16" class="btn-image"/>
|
|
||||||
{{ 'action : publier' | trans }}
|
|
||||||
</button>
|
|
||||||
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
|
|
||||||
class="caret"></span></button>
|
|
||||||
{% if plugins.actionbar is not empty %}
|
|
||||||
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
|
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
|
||||||
class="caret"></span></button>
|
class="caret"></span></button>
|
||||||
<ul class="submenu dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
{% for plugin in plugins.actionbar %}
|
{% for menu_entry in menu_entries %}
|
||||||
<li class="divider"></li>
|
|
||||||
{% for key, action in plugin.getActionBar().push|default([]) %}
|
|
||||||
<li>
|
|
||||||
<a class="results_window {{ action.classes|default('') }}">
|
|
||||||
{% if action.icon %}
|
|
||||||
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}"
|
|
||||||
height="16" width="16" class="btn-image"/>
|
|
||||||
{% endif %}
|
|
||||||
{{ action.label|trans({}, plugin.PluginLocale) }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
{% elseif plugins.actionbar is not empty %}
|
|
||||||
<span class="dropdownButton">
|
|
||||||
<div class="btn-group">
|
|
||||||
{% set firstButton = true %}
|
|
||||||
{% for plugin in plugins.actionbar %}
|
|
||||||
{% for key, action in plugin.getActionBar().push|default([]) %}
|
|
||||||
{% if firstButton %}
|
|
||||||
<button class="default_action results_window btn btn-inverse" data-selection-source="search-result">
|
|
||||||
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
|
|
||||||
{% if action.icon %}
|
|
||||||
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16"/>
|
|
||||||
{% endif %}
|
|
||||||
{{ action.label|trans({}, plugin.PluginLocale) }}
|
|
||||||
</a>
|
|
||||||
</button>
|
|
||||||
{% if not (loop.last and loop.parent.loop.last) %}
|
|
||||||
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
|
||||||
<ul class="submenu dropdown-menu">
|
|
||||||
{% endif %}
|
|
||||||
{% if not loop.first %}<li class="divider"></li>{% endif %}
|
|
||||||
{% if not firstButton %}
|
|
||||||
<li>
|
<li>
|
||||||
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
|
<a class="results_window {{ menu_entry.class }}">
|
||||||
{% if action.icon %}
|
<img src="{{ menu_entry.icon }}" class="btn-image"/>
|
||||||
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16" class="btn-image"/>
|
{{ menu_entry.label }}
|
||||||
{% endif %}
|
|
||||||
{{ action.label|trans({}, plugin.PluginLocale) }}
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% else %}
|
{% endfor %}
|
||||||
{% set firstButton = false %}
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
</div>
|
||||||
{% endfor %}
|
</span>
|
||||||
{% endfor %}
|
{% endif %}
|
||||||
{% if not firstButton %}
|
{% endfor %}
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if acl.has_right(constant('\\ACL::IMGTOOLS')) %}
|
|
||||||
<span class="classicButton">
|
|
||||||
<div class="btn-group">
|
|
||||||
<button class="TOOL_imgtools_btn results_window btn btn-inverse" data-selection-source="search-result">
|
|
||||||
<img src="/assets/common/images/icons/imgtools_history.png" height="16" width="16" class="btn-image"/> {{ 'action : outils' | trans }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
{% endif %}
|
|
||||||
{% if acl.has_right(constant('\\ACL::CANDELETERECORD')) %}
|
|
||||||
<span class="classicButton">
|
|
||||||
<div class="btn-group">
|
|
||||||
<button class="TOOL_trash_btn results_window btn btn-inverse" data-selection-source="search-result">
|
|
||||||
<img src="/assets/common/images/icons/delete.png" height="16" width="16" class="btn-image"/> {{ 'action : supprimer' | trans }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block toolbarJS %}
|
{% block toolbarJS %}
|
||||||
{% if plugins.actionbar is not empty %}
|
{% if plugins.actionbar is not empty %}
|
||||||
{% for plugin in plugins.actionbar %}
|
{% for pluginId, plugin in plugins.actionbar %}
|
||||||
{{ (plugin.JS|default(''))|raw }}
|
{% if plugin.getActionBarTemplate is defined %}
|
||||||
{% endfor %}
|
{% set template = plugin.getActionBarTemplate() %}
|
||||||
|
{% if template %}
|
||||||
|
{% include template with {'app': app, 'plugin_id': pluginId, 'plugin': plugin} only %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
Reference in New Issue
Block a user