Added an very basic system to configure info providers

This commit is contained in:
Jan Böhmer 2023-07-09 14:27:41 +02:00
parent 9e3cb4d694
commit e0301f096f
12 changed files with 689 additions and 0 deletions

View file

@ -0,0 +1,52 @@
{% macro provider_info_table(providers) %}
<table class="table table-striped table-hover">
<tbody>
{% for provider in providers %}
{# @var provider \App\Services\InfoProviderSystem\Providers\InfoProviderInterface #}
<tr>
<td>
<div class="row">
<div class="col-6">
<h5>
{% if provider.providerInfo.url is defined and provider.providerInfo.url is not empty %}
<a href="{{ provider.providerInfo.url }}" target="_blank">{{ provider.providerInfo.name }}</a>
{% else %}
{{ provider.providerInfo.name | trans }}
{% endif %}
</h5>
<div>
{% if provider.providerInfo.description is defined and provider.providerInfo.description is not null %}
{{ provider.providerInfo.description | trans }}
{% endif %}
</div>
</div>
<div class="col-6">
{% for capability in provider.capabilities %}
{# @var capability \App\Services\InfoProviderSystem\Providers\ProviderCapabilities #}
<span class="badge text-bg-secondary">
<i class="{{ capability.fAIconClass }} fa-fw"></i>
{{ capability.translationKey|trans }}
</span>
{% endfor %}
</div>
</div>
{% if provider.active == false %}
<div class="row">
<div class="col text-danger">
<i class="fa-solid fa-circle-exclamation"></i> <b>{% trans %}info_providers.providers_list.disabled{% endtrans %}</b>
{% if provider.providerInfo.disabled_help is defined and provider.providerInfo.disabled_help is not empty %}
<br>
<span class="text-muted">{{ provider.providerInfo.disabled_help|trans }}</span>
{% endif %}
</div>
</div>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endmacro %}

View file

@ -0,0 +1,33 @@
{% extends "main_card.html.twig" %}
{% import "info_providers/providers.macro.html.twig" as providers_macro %}
{% block title %}{% trans %}info_providers.providers_list.title{% endtrans %}{% endblock %}
{% block card_title %}
<i class="fas fa-cloud-arrow-down"></i> {% trans %}info_providers.providers_list.title{% endtrans %}
{% endblock %}
{% block card_content %}
<nav>
<div class="nav nav-tabs" id="nav-tab" role="tablist">
<button class="nav-link active" id="server_infos-partdb-tab" data-bs-toggle="tab" data-bs-target="#providers_list_active" type="button" role="tab" aria-controls="providers_list_active" aria-selected="true">
{% trans %}info_providers.providers_list.active{% endtrans %}
<span class="badge bg-secondary">{{ active_providers|length }}</span>
</button>
<button class="nav-link" id="server_infos-php-tab" data-bs-toggle="tab" data-bs-target="#providers_list_disabled" type="button" role="tab" aria-controls="providers_list_disabled" aria-selected="false">
{% trans %}info_providers.providers_list.disabled{% endtrans %}
<span class="badge bg-secondary">{{ disabled_providers|length }}</span>
</button>
</div>
</nav>
<div class="tab-content" id="tabContent">
<div class="tab-pane fade show active" id="providers_list_active" role="tabpanel" aria-labelledby="server_infos-partdb-tab">
{{ providers_macro.provider_info_table(active_providers) }}
</div>
<div class="tab-pane fade" id="providers_list_disabled" role="tabpanel" aria-labelledby="server_infos-php-tab">
{{ providers_macro.provider_info_table(disabled_providers) }}
</div>
</div>
{% endblock %}