{% extends 'base.html.twig' %} {% import "macros/widgets.html.twig" as widgets %} {% import "macros/datatables.html.twig" as tables %} {% block main %} {% if plugins|length == 0 %} {{ widgets.callout('warning', 'plugin.none_installed'|trans({}, 'plugins')) }} {% else %} {% embed '@theme/embeds/card.html.twig' %} {% block box_title %}{{ 'plugin.installed'|trans }}{% endblock %} {% block box_body_class %}p-0{% endblock %} {% block box_body %} {% set columns = { 'name': {'class': 'alwaysVisible w-25'}, 'description': {'class': 'd-none d-md-table-cell'}, 'version': {'class': 'text-center w-min'}, } %} {% set tableName = 'plugins' %} {% import "macros/datatables.html.twig" as tables %} {% import "macros/widgets.html.twig" as widgets %} {{ tables.datatable_header(tableName, columns, null, {columnConfig: false}) }} {% for plugin in plugins|sort((p1, p2) => p1.name|lower <=> p2.name|lower) %} {{ plugin.name }} {{ plugin.metadata.description }} {{ widgets.label(plugin.metadata.version, 'primary', plugin.id) }} {% endfor %} {{ tables.data_table_footer(plugins) }} {% endblock %} {% endembed %} {% endif %} {% if extensions|length > 0 %} {% embed '@theme/embeds/card.html.twig' %} {% from "macros/widgets.html.twig" import card_tool_button %} {% block box_title %}{{ 'plugin.marketplace'|trans({}, 'plugins') }}{% endblock %} {% block box_body_class %}p-0{% endblock %} {% block box_tools %} {{ card_tool_button('shop', {'title': 'shop', 'translation_domain': 'plugins', 'target': '_blank', 'url': constant('App\\Constants::HOMEPAGE') ~ '/store/', 'icon': false, 'class': 'btn-warning'}) }} {% endblock %} {% block box_body %} {% set columns = { 'name': {'class': 'alwaysVisible w-25'}, 'description': {'class': 'd-none d-md-table-cell'}, 'shop': {'class': 'w-min alwaysVisible'}, } %} {% set tableName = 'extensions' %} {% import "macros/datatables.html.twig" as tables %} {% import "macros/widgets.html.twig" as widgets %} {{ tables.datatable_header(tableName, columns, null, {columnConfig: false}) }} {% for extension in extensions|filter(e => e.bundle is not null and e.bundle not in installed) %} {{ extension.name }} {{ extension.description }} {% if extension.buy is defined and extension.buy is not empty and (extension.minimum_version is not defined or (extension.minimum_version is not empty and constant('App\\Constants::VERSION') >= extension.minimum_version)) %} {{ icon('shop') }} {% endif %} {% endfor %} {{ tables.data_table_footer(plugins) }} {% endblock %} {% endembed %} {% endif %} {% endblock %}