You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
5.7 KiB
138 lines
5.7 KiB
<tr> |
|
{# Drop key anchor #} |
|
<td> |
|
{% set js_msg = '' %} |
|
{% set this_params = null %} |
|
{% if one_key['constraint'] is defined %} |
|
{% set drop_fk_query = 'ALTER TABLE ' ~ backquote(db) ~ '.' ~ backquote(table) |
|
~ ' DROP FOREIGN KEY ' |
|
~ backquote(one_key['constraint']) ~ ';' |
|
%} |
|
{% set this_params = url_params %} |
|
{% set this_params = { |
|
'goto': url('/table/relation'), |
|
'back': url('/table/relation'), |
|
'sql_query': drop_fk_query, |
|
'message_to_show': 'Foreign key constraint %s has been dropped'|trans|format( |
|
one_key['constraint'] |
|
) |
|
} %} |
|
{% set js_msg = 'ALTER TABLE ' ~ db ~ '.' ~ table ~ ' DROP FOREIGN KEY ' ~ one_key['constraint'] ~ ';' %} |
|
{% endif %} |
|
{% if one_key['constraint'] is defined %} |
|
<input type="hidden" class="drop_foreign_key_msg" value=" |
|
{{- js_msg }}"> |
|
{% set drop_str = get_icon('b_drop', 'Drop'|trans) %} |
|
{{ link_or_button(url('/sql'), this_params, drop_str, {'class': 'drop_foreign_key_anchor ajax'}) }} |
|
{% endif %} |
|
</td> |
|
<td> |
|
<span class="formelement clearfloat"> |
|
<input type="text" name="constraint_name[{{ i }}]" value=" |
|
{{- one_key['constraint'] is defined ? one_key['constraint'] -}} |
|
" placeholder="{% trans 'Constraint name' %}" maxlength="64"> |
|
</span> |
|
<div class="float-start"> |
|
{# For ON DELETE and ON UPDATE, the default action |
|
is RESTRICT as per MySQL doc; however, a SHOW CREATE TABLE |
|
won't display the clause if it's set as RESTRICT. #} |
|
{% set on_delete = one_key['on_delete'] is defined |
|
? one_key['on_delete'] : 'RESTRICT' %} |
|
{% set on_update = one_key['on_update'] is defined |
|
? one_key['on_update'] : 'RESTRICT' %} |
|
<span class="formelement"> |
|
{% include 'table/relation/dropdown_generate.twig' with { |
|
'dropdown_question': 'ON DELETE', |
|
'select_name': 'on_delete[' ~ i ~ ']', |
|
'choices': options_array, |
|
'selected_value': on_delete |
|
} only %} |
|
</span> |
|
<span class="formelement"> |
|
{% include 'table/relation/dropdown_generate.twig' with { |
|
'dropdown_question': 'ON UPDATE', |
|
'select_name': 'on_update[' ~ i ~ ']', |
|
'choices': options_array, |
|
'selected_value': on_update |
|
} only %} |
|
</span> |
|
</div> |
|
</td> |
|
<td> |
|
{% if one_key['index_list'] is defined %} |
|
{% for key, column in one_key['index_list'] %} |
|
<span class="formelement clearfloat"> |
|
{% include 'table/relation/dropdown_generate.twig' with { |
|
'dropdown_question': '', |
|
'select_name': 'foreign_key_fields_name[' ~ i ~ '][]', |
|
'choices': column_array, |
|
'selected_value': column |
|
} only %} |
|
</span> |
|
{% endfor %} |
|
{% else %} |
|
<span class="formelement clearfloat"> |
|
{% include 'table/relation/dropdown_generate.twig' with { |
|
'dropdown_question': '', |
|
'select_name': 'foreign_key_fields_name[' ~ i ~ '][]', |
|
'choices': column_array, |
|
'selected_value': '' |
|
} only %} |
|
</span> |
|
{% endif %} |
|
<a class="formelement clearfloat add_foreign_key_field" data-index=" |
|
{{- i }}" href=""> |
|
{% trans '+ Add column' %} |
|
</a> |
|
</td> |
|
{% set tables = [] %} |
|
{% if foreign_db %} |
|
{% set tables = get_tables(foreign_db, tbl_storage_engine) %} |
|
{% else %} |
|
{% set tables = get_tables(db, tbl_storage_engine) %} |
|
{% endif %} |
|
<td> |
|
<span class="formelement clearfloat"> |
|
{% include 'table/relation/relational_dropdown.twig' with { |
|
'name': 'destination_foreign_db[' ~ i ~ ']', |
|
'title': 'Database'|trans, |
|
'values': databases, |
|
'foreign': foreign_db, |
|
'db': db |
|
} only %} |
|
</span> |
|
</td> |
|
<td> |
|
<span class="formelement clearfloat"> |
|
{% include 'table/relation/relational_dropdown.twig' with { |
|
'name': 'destination_foreign_table[' ~ i ~ ']', |
|
'title': 'Table'|trans, |
|
'values': tables, |
|
'foreign': foreign_table |
|
} only %} |
|
</span> |
|
</td> |
|
<td> |
|
{% if foreign_db and foreign_table %} |
|
{% for foreign_column in one_key['ref_index_list'] %} |
|
<span class="formelement clearfloat"> |
|
{% include 'table/relation/relational_dropdown.twig' with { |
|
'name': 'destination_foreign_column[' ~ i ~ '][]', |
|
'title': 'Column'|trans, |
|
'values': unique_columns, |
|
'foreign': foreign_column |
|
} only %} |
|
</span> |
|
{% endfor %} |
|
{% else %} |
|
<span class="formelement clearfloat"> |
|
{% include 'table/relation/relational_dropdown.twig' with { |
|
'name': 'destination_foreign_column[' ~ i ~ '][]', |
|
'title': 'Column'|trans, |
|
'values': [], |
|
'foreign': '' |
|
} only %} |
|
</span> |
|
{% endif %} |
|
</td> |
|
</tr>
|
|
|