Update website
This commit is contained in:
parent
a0b0d3dae7
commit
ae7ef6ad45
3151 changed files with 566766 additions and 48 deletions
226
admin/phpMyAdmin/templates/table/relation/common_form.twig
Normal file
226
admin/phpMyAdmin/templates/table/relation/common_form.twig
Normal file
|
@ -0,0 +1,226 @@
|
|||
{% extends 'table/page_with_secondary_tabs.twig' %}
|
||||
|
||||
{% block content %}
|
||||
<form method="post" action="{{ url('/table/relation') }}">
|
||||
{{ get_hidden_inputs(db, table) }}
|
||||
{# InnoDB #}
|
||||
{% if is_foreign_key_supported(tbl_storage_engine) %}
|
||||
<fieldset>
|
||||
<legend>{% trans 'Foreign key constraints' %}</legend>
|
||||
<div class="table-responsive-md jsresponsive">
|
||||
<table class="relationalTable table table-light table-striped w-auto">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th>{% trans 'Actions' %}</th>
|
||||
<th>{% trans 'Constraint properties' %}</th>
|
||||
{% if tbl_storage_engine|upper == 'INNODB' %}
|
||||
<th>
|
||||
{% trans 'Column' %}
|
||||
{{ show_hint('Creating a foreign key over a non-indexed column would automatically create an index on it. Alternatively, you can define an index below, before creating the foreign key.'|trans) }}
|
||||
</th>
|
||||
{% else %}
|
||||
<th>
|
||||
{% trans 'Column' %}
|
||||
{{ show_hint('Only columns with index will be displayed. You can define an index below.'|trans) }}
|
||||
</th>
|
||||
{% endif %}
|
||||
<th colspan="3">
|
||||
{% trans 'Foreign key constraint' %}
|
||||
({{ tbl_storage_engine }})
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th>{% trans 'Database' %}</th>
|
||||
<th>{% trans 'Table' %}</th>
|
||||
<th>{% trans 'Column' %}</th>
|
||||
</tr></thead>
|
||||
{% set i = 0 %}
|
||||
{% if existrel_foreign is not empty %}
|
||||
{% for key, one_key in existrel_foreign %}
|
||||
{# Foreign database dropdown #}
|
||||
{% set foreign_db = one_key['ref_db_name'] is defined
|
||||
and one_key['ref_db_name'] is not null
|
||||
? one_key['ref_db_name'] : db %}
|
||||
{% set foreign_table = false %}
|
||||
{% if foreign_db %}
|
||||
{% set foreign_table = one_key['ref_table_name'] is defined
|
||||
and one_key['ref_table_name'] is not null
|
||||
? one_key['ref_table_name'] : false %}
|
||||
{% endif %}
|
||||
{% set unique_columns = [] %}
|
||||
{% if foreign_db and foreign_table %}
|
||||
{% set table_obj = table_get(foreign_table, foreign_db) %}
|
||||
{% set unique_columns = table_obj.getUniqueColumns(false, false) %}
|
||||
{% endif %}
|
||||
{% include 'table/relation/foreign_key_row.twig' with {
|
||||
'i': i,
|
||||
'one_key': one_key,
|
||||
'column_array': column_array,
|
||||
'options_array': options_array,
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'db': db,
|
||||
'table': table,
|
||||
'url_params': url_params,
|
||||
'databases': databases,
|
||||
'foreign_db': foreign_db,
|
||||
'foreign_table': foreign_table,
|
||||
'unique_columns': unique_columns
|
||||
} only %}
|
||||
{% set i = i + 1 %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% include 'table/relation/foreign_key_row.twig' with {
|
||||
'i': i,
|
||||
'one_key': [],
|
||||
'column_array': column_array,
|
||||
'options_array': options_array,
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'db': db,
|
||||
'table': table,
|
||||
'url_params': url_params,
|
||||
'databases': databases,
|
||||
'foreign_db': foreign_db,
|
||||
'foreign_table': foreign_table,
|
||||
'unique_columns': unique_columns
|
||||
} only %}
|
||||
{% set i = i + 1 %}
|
||||
<tr>
|
||||
<th colspan="6">
|
||||
<a class="formelement clearfloat add_foreign_key" href="">
|
||||
{% trans '+ Add constraint' %}
|
||||
</a>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</fieldset>
|
||||
{% endif %}
|
||||
|
||||
{% if cfg_relation['relwork'] %}
|
||||
{% if is_foreign_key_supported(tbl_storage_engine) %}
|
||||
<div id="ir_div"{% if default_sliders_state != 'disabled' -%}
|
||||
{{- default_sliders_state == 'closed' ? ' style="display: none; overflow:auto;"' }} class="pma_auto_slider" title="{% trans 'Internal relationships' %}"
|
||||
{%- endif %}>
|
||||
{% endif %}
|
||||
|
||||
<fieldset>
|
||||
<legend>
|
||||
{% trans 'Internal relationships' %}
|
||||
{{ show_docu('config', 'cfg_Servers_relation') }}
|
||||
</legend>
|
||||
<table class="relationalTable table table-light table-striped table-hover table-sm w-auto">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th>{% trans 'Column' %}</th>
|
||||
<th>
|
||||
{% trans 'Internal relation' %}
|
||||
{% if is_foreign_key_supported(tbl_storage_engine) %}
|
||||
{{ show_hint('An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'|trans) }}
|
||||
{% endif %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% set saved_row_cnt = save_row|length - 1 %}
|
||||
{% for i in 0..saved_row_cnt %}
|
||||
{% set myfield = save_row[i]['Field'] %}
|
||||
{# Use an md5 as array index to avoid having special characters
|
||||
in the name attribute (see bug #1746964 ) #}
|
||||
{% set myfield_md5 = column_hash_array[myfield] %}
|
||||
|
||||
{% set foreign_table = false %}
|
||||
{% set foreign_column = false %}
|
||||
|
||||
{# Database dropdown #}
|
||||
{% if existrel[myfield] is defined %}
|
||||
{% set foreign_db = existrel[myfield]['foreign_db'] %}
|
||||
{% else %}
|
||||
{% set foreign_db = db %}
|
||||
{% endif %}
|
||||
|
||||
{# Table dropdown #}
|
||||
{% set tables = [] %}
|
||||
{% if foreign_db %}
|
||||
{% if existrel[myfield] is defined %}
|
||||
{% set foreign_table = existrel[myfield]['foreign_table'] %}
|
||||
{% endif %}
|
||||
{% set tables = dbi.getTables(foreign_db) %}
|
||||
{% endif %}
|
||||
|
||||
{# Column dropdown #}
|
||||
{% set unique_columns = [] %}
|
||||
{% if foreign_db and foreign_table %}
|
||||
{% if existrel[myfield] is defined %}
|
||||
{% set foreign_column = existrel[myfield]['foreign_field'] %}
|
||||
{% endif %}
|
||||
{% set table_obj = table_get(foreign_table, foreign_db) %}
|
||||
{% set unique_columns = table_obj.getUniqueColumns(false, false) %}
|
||||
{% endif %}
|
||||
|
||||
<tr>
|
||||
<td class="vmiddle">
|
||||
<strong>{{ myfield }}</strong>
|
||||
<input type="hidden" name="fields_name[{{ myfield_md5 }}]"
|
||||
value="{{ myfield }}">
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{% include 'table/relation/relational_dropdown.twig' with {
|
||||
'name': 'destination_db[' ~ myfield_md5 ~ ']',
|
||||
'title': 'Database'|trans,
|
||||
'values': databases,
|
||||
'foreign': foreign_db
|
||||
} only %}
|
||||
|
||||
{% include 'table/relation/relational_dropdown.twig' with {
|
||||
'name': 'destination_table[' ~ myfield_md5 ~ ']',
|
||||
'title': 'Table'|trans,
|
||||
'values': tables,
|
||||
'foreign': foreign_table
|
||||
} only %}
|
||||
|
||||
{% include 'table/relation/relational_dropdown.twig' with {
|
||||
'name': 'destination_column[' ~ myfield_md5 ~ ']',
|
||||
'title': 'Column'|trans,
|
||||
'values': unique_columns,
|
||||
'foreign': foreign_column
|
||||
} only %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</fieldset>
|
||||
{% if is_foreign_key_supported(tbl_storage_engine) %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if cfg_relation['displaywork'] %}
|
||||
{% set disp = get_display_field(db, table) %}
|
||||
<fieldset>
|
||||
<label>{% trans 'Choose column to display:' %}</label>
|
||||
<select name="display_field">
|
||||
<option value="">---</option>
|
||||
{% for row in save_row %}
|
||||
<option value="{{ row['Field'] }}"
|
||||
{%- if disp is defined and row['Field'] == disp %}
|
||||
selected="selected"
|
||||
{%- endif %}>
|
||||
{{ row['Field'] }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</fieldset>
|
||||
{% endif %}
|
||||
|
||||
<fieldset class="tblFooters">
|
||||
<input class="btn btn-secondary preview_sql" type="button" value="{% trans 'Preview SQL' %}">
|
||||
<input class="btn btn-primary" type="submit" value="{% trans 'Save' %}">
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
Loading…
Add table
Add a link
Reference in a new issue