Files
Grav-Admin-Plugin/themes/grav/templates/partials/plugin-data.html.twig
Andy Miller 30a90cc69b Add compatibility preflight to upgrade flow + compatibility badges
Gpm::upgradeGrav() now calls generatePreflightReport() from the new
package's Install.php before proceeding. If incompatible plugins are
detected, a detailed error message is shown listing which plugins need
to be disabled.

Adds colored compatibility badges (1.7 blue, 1.8 green) to:
- Plugin list, theme list, and plugin detail views
- SCSS badge styles (.gpm-compat-17, .gpm-compat-18, .gpm-compat-api)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 10:26:58 -06:00

87 lines
3.4 KiB
Twig

<table>
{% if plugin.author %}
<tr>
<td>{{ "PLUGIN_ADMIN.AUTHOR"|t }}:</td>
<td class="double">
{% if plugin.author.url %}
<a href="{{ plugin.author.url }}" target="_blank" rel="noopener noreferrer">{{ plugin.author.name }}</a>
{% else %}
{{ plugin.author.name }}
{% endif %}
{% if plugin.author.email %}
- <a href="mailto:{{ plugin.author.email }}">{{ plugin.author.email }}</a>
{% endif %}
</td>
</tr>
{% endif %}
{% if plugin.homepage %}
<tr>
<td>{{ "PLUGIN_ADMIN.HOMEPAGE"|t }}:</td>
<td class="double"><a href="{{ plugin.homepage }}" target="_blank" rel="noopener noreferrer">{{ plugin.homepage }}</a></td>
</tr>
{% endif %}
{% if plugin.demo %}
<tr>
<td>{{ "PLUGIN_ADMIN.DEMO"|t }}:</td>
<td class="double"><a href="{{ plugin.demo }}" target="_blank" rel="noopener noreferrer">{{ plugin.demo }}</a></td>
</tr>
{% endif %}
{% if plugin.bugs %}
<tr>
<td>{{ "PLUGIN_ADMIN.BUG_TRACKER"|t }}:</td>
<td class="double"><a href="{{ plugin.bugs }}" target="_blank" rel="noopener noreferrer">{{ plugin.bugs }}</a></td>
</tr>
{% endif %}
{% if plugin.keywords %}
<tr>
<td>{{ "PLUGIN_ADMIN.KEYWORDS"|t }}:</td>
<td class="double">{{ plugin.keywords|join(', ') }}</td>
</tr>
{% endif %}
{% if plugin.license %}
<tr>
<td>{{ "PLUGIN_ADMIN.LICENSE"|t }}:</td>
{% if plugin.license|starts_with('http') %}
<td class="double"><a href="{{ plugin.license }}" target="_blank">{{ plugin.license }}</a></td>
{% else %}
<td class="double">{{ plugin.license }}</td>
{% endif %}
</tr>
{% endif %}
<tr>
<td>Compatibility:</td>
<td class="double">
{% set compat = plugin.compatibility.grav ?? ['1.7'] %}
{% if '1.7' in compat %}<span class="gpm-compat gpm-compat-17">1.7</span>{% endif %}
{% if '1.8' in compat %}<span class="gpm-compat gpm-compat-18">1.8</span>{% endif %}
{% if plugin.compatibility.api is defined %}
{% for v in plugin.compatibility.api %}<span class="gpm-compat gpm-compat-api">api:{{ v }}</span>{% endfor %}
{% endif %}
</td>
</tr>
{% if plugin.description %}
<tr>
<td>{{ "PLUGIN_ADMIN.DESCRIPTION"|t }}:</td>
<td class="double">{{ plugin.description_html|raw }}</td>
</tr>
{% endif %}
{% if plugin.readme or plugin.homepage %}
{% set readme_link = plugin.readme ?: plugin.docs|default(plugin.homepage ~ '/blob/master/README.md') %}
<tr>
<td>{{ plugin.readme ? "PLUGIN_ADMIN.README"|t : "PLUGIN_ADMIN.DOCS"|t }}:</td>
<td class="double"><a href="{{ readme_link }}" target="_blank" rel="noopener noreferrer">{{ readme_link }}</a></td>
</tr>
{% endif %}
{% if admin.gpm.findPackage(plugin.slug, true).changelog %}
<tr>
<td>{{ "PLUGIN_ADMIN.CHANGELOG"|t }}:</td>
<td class="double"><a class="button button-small" href="#" data-remodal-target="changelog" data-remodal-changelog="{{ admin_route('/changelog/slug:' ~ plugin.slug) }}"><i class="fa fa-binoculars"></i> View Changelog</a></td>
</tr>
{% endif %}
</table>