127 lines
4.5 KiB
Twig
127 lines
4.5 KiB
Twig
|
<div class="container-fluid">
|
||
|
<h1>{{ database }}</h1>
|
||
|
{% if comment is not empty %}
|
||
|
<p>{% trans 'Database comment:' %} <em>{{ comment }}</em></p>
|
||
|
{% endif %}
|
||
|
|
||
|
<p class="d-print-none">
|
||
|
<button type="button" class="btn btn-secondary jsPrintButton">{{ get_icon('b_print', 'Print'|trans, true) }}</button>
|
||
|
</p>
|
||
|
|
||
|
<div>
|
||
|
{% for table in tables %}
|
||
|
<div>
|
||
|
<h2>{{ table.name }}</h2>
|
||
|
{% if table.comment is not empty %}
|
||
|
<p>{% trans 'Table comments:' %} <em>{{ table.comment }}</em></p>
|
||
|
{% endif %}
|
||
|
|
||
|
<table class="table table-striped align-middle">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th>{% trans 'Column' %}</th>
|
||
|
<th>{% trans 'Type' %}</th>
|
||
|
<th>{% trans 'Null' %}</th>
|
||
|
<th>{% trans 'Default' %}</th>
|
||
|
{% if table.has_relation %}
|
||
|
<th>{% trans 'Links to' %}</th>
|
||
|
{% endif %}
|
||
|
<th>{% trans 'Comments' %}</th>
|
||
|
{% if table.has_mime %}
|
||
|
<th>{% trans 'Media type' %}</th>
|
||
|
{% endif %}
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
{% for column in table.columns %}
|
||
|
<tr>
|
||
|
<td class="text-nowrap">
|
||
|
{{ column.name }}
|
||
|
{% if column.has_primary_key %}
|
||
|
<em>({% trans 'Primary' %})</em>
|
||
|
{% endif %}
|
||
|
</td>
|
||
|
<td lang="en" dir="ltr"{{ 'set' != column.type and 'enum' != column.type ? ' class="text-nowrap"' }}>
|
||
|
{{ column.print_type }}
|
||
|
</td>
|
||
|
<td>{{ column.is_nullable ? 'Yes'|trans : 'No'|trans }}</td>
|
||
|
<td class="text-nowrap">
|
||
|
{% if column.default is null and column.is_nullable %}
|
||
|
<em>NULL</em>
|
||
|
{% else %}
|
||
|
{{ column.default }}
|
||
|
{% endif %}
|
||
|
</td>
|
||
|
{% if table.has_relation %}
|
||
|
<td>{{ column.relation }}</td>
|
||
|
{% endif %}
|
||
|
<td>{{ column.comment }}</td>
|
||
|
{% if table.has_mime %}
|
||
|
<td>{{ column.mime }}</td>
|
||
|
{% endif %}
|
||
|
</tr>
|
||
|
{% endfor %}
|
||
|
</tbody>
|
||
|
</table>
|
||
|
|
||
|
{% if table.indexes is not empty %}
|
||
|
<h3>{% trans 'Indexes' %}</h3>
|
||
|
|
||
|
<table class="table table-striped align-middle">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th>{% trans 'Keyname' %}</th>
|
||
|
<th>{% trans 'Type' %}</th>
|
||
|
<th>{% trans 'Unique' %}</th>
|
||
|
<th>{% trans 'Packed' %}</th>
|
||
|
<th>{% trans 'Column' %}</th>
|
||
|
<th>{% trans 'Cardinality' %}</th>
|
||
|
<th>{% trans 'Collation' %}</th>
|
||
|
<th>{% trans 'Null' %}</th>
|
||
|
<th>{% trans 'Comment' %}</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
|
||
|
<tbody>
|
||
|
{% for index in table.indexes %}
|
||
|
{% set columns_count = index.getColumnCount() %}
|
||
|
<tr>
|
||
|
<td rowspan="{{ columns_count }}">{{ index.getName() }}</td>
|
||
|
<td rowspan="{{ columns_count }}">{{ index.getType()|default(index.getChoice()) }}</td>
|
||
|
<td rowspan="{{ columns_count }}">{{ index.isUnique() ? 'Yes'|trans : 'No'|trans }}</td>
|
||
|
<td rowspan="{{ columns_count }}">{{ index.isPacked()|raw }}</td>
|
||
|
|
||
|
{% for column in index.getColumns() %}
|
||
|
{% if column.getSeqInIndex() > 1 %}
|
||
|
<tr>
|
||
|
{% endif %}
|
||
|
<td>
|
||
|
{{ column.getName() }}
|
||
|
{% if column.getSubPart() is not empty %}
|
||
|
({{ column.getSubPart() }})
|
||
|
{% endif %}
|
||
|
</td>
|
||
|
<td>{{ column.getCardinality() }}</td>
|
||
|
<td>{{ column.getCollation() }}</td>
|
||
|
<td>{{ column.getNull(true) }}</td>
|
||
|
|
||
|
{% if column.getSeqInIndex() == 1 %}
|
||
|
<td rowspan="{{ columns_count }}">{{ index.getComments() }}</td>
|
||
|
{% endif %}
|
||
|
</tr>
|
||
|
{% endfor %}
|
||
|
{% endfor %}
|
||
|
</tbody>
|
||
|
</table>
|
||
|
{% else %}
|
||
|
<p>{% trans 'No index defined!' %}</p>
|
||
|
{% endif %}
|
||
|
</div>
|
||
|
{% endfor %}
|
||
|
</div>
|
||
|
|
||
|
<p class="d-print-none">
|
||
|
<button type="button" class="btn btn-secondary jsPrintButton">{{ get_icon('b_print', 'Print'|trans, true) }}</button>
|
||
|
</p>
|
||
|
</div>
|