lean-console/view/page/storage/database.phtml

104 lines
5.3 KiB
PHTML
Raw Normal View History

{% extends "lean/base/console/layout" %}
{% language.set "lean.storage" %}
{% title _("title") %}
{% section "header" %}
<div class="page-title">{% _ "page-title" %}</div>
{% endsection %}
{% section "content" %}
<section>
<header>
<h1>{% _ 'database.header' %}</h1>
</header>
<article class="databases">
{% if $connections %}
<strong class="grid db-grid">
<div class="col db-connection">{% _ 'database.connection' %}</div>
<div class="col db-adapter">{% _ 'database.adapter' %}</div>
<div class="col db-host">{% _ 'database.host' %}</div>
<div class="col db-name">{% _ 'database.name' %}</div>
<div class="col db-username">{% _ 'database.username' %}</div>
</strong>
{% foreach $connections as $connection %}
{% php $conf = $connection->getConfiguration(); %}
<div class="grid db-grid">
<div class="col db-connection">{{ $connection->name }}</div>
<div class="col db-adapter">{{ $conf['adapter'] }}</div>
<div class="col db-host">{{ $conf['host'] }}:{{ $conf['port'] }}</div>
<div class="col db-name">{{ $conf['database'] }}</div>
<div class="col db-username">{{ $conf['username'] }}</div>
</div>
<details>
<summary>
{% _ 'database.table.header' %}
</summary>
<div class="tables">
<strong class="grid table-item">
<div class="col">{% _ 'database.table.name' %}</div>
<div class="col">{% _ 'database.table.table-fields' %}</div>
<div class="col col-grow-2">{% _ 'database.table.query' %}</div>
<div class="col text-right">{% _ 'database.table.actions' %}</div>
</strong>
{% ui.form.post "database" %}
{% foreach array_filter($migrations->entities, fn($e) => $e->databaseAdapter() === $connection) as $entity => $item %}
<div class="grid table-item align-items-center">
<div class="col"><span>📄</span> <span>{{ $item->tableName() }}</span></div>
<div class="col">{% _ "database.table.fields", [ 'count' => count( $item->fieldList() ) ] %}</div>
<div class="col col-grow-2">
{% if $context->status[$entity]['query'] %}
<code>{{ $context->status[$entity]['query'] }}</code>
{% else %}
<div>🗸 This table is up-to-date</div>
{% endif %}
</div>
<div class="col">
{% switch $context->status[$entity]['msg'] %}
{% case 'unexisting' %}
{% php $createAll[] = $entity %}
<div class="text-right">
<button name="create" value="{{$entity}}" class="btn-blue">🗸 {% _ 'database.table.create' %}</button>
</div>
{% break %}
{% endswitch %}
</div>
</div>
{% endforeach %}
{% if ($createAll ?? 0) > 1 %}
<div class="text-right" style="padding:0.5rem 0">
<button name="createAll" value="{{ implode(',', $createAll) }}" class="btn-red">🗸 {% _ 'database.table.createAll' %}</button>
</div>
{% endif %}
{% ui.endform %}
</div>
</details>
{% endforeach %}
{% endif %}
</article>
</section>
<style>
.databases strong.grid {background:#172842;color:#eeffee}
.databases .db-grid {padding:0.66rem 0.3rem}
.databases .db-grid strong {color:#444}
.databases .db-grid:nth-child(even) {background: #e3e3e3 }
.databases .tables .table-item {padding:0.33rem 0;background:rgba(255,255,255,0.1)}
.databases .tables .table-item:nth-child(even) {background:rgba(255,255,255,0.2)}
.databases summary {background: #172841;color:#fff;margin: 0 -8px 0 -8px;padding:7px 10px}
.tables {background: #172841;margin: 0 -8px 0 -8px;color: #fff;padding: 3px 10px;}
.tables label {padding:10px 5px;display:block}
</style>
{% endsection %}