aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/templates/table/relation/foreign_key_row.twig
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/templates/table/relation/foreign_key_row.twig')
-rw-r--r--srcs/phpmyadmin/templates/table/relation/foreign_key_row.twig136
1 files changed, 136 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/templates/table/relation/foreign_key_row.twig b/srcs/phpmyadmin/templates/table/relation/foreign_key_row.twig
new file mode 100644
index 0000000..3df6c34
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/relation/foreign_key_row.twig
@@ -0,0 +1,136 @@
+<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': 'tbl_relation.php',
+ 'back': 'tbl_relation.php',
+ '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'] ~ ';'|js_format %}
+ {% endif %}
+ {% if one_key['constraint'] is defined %}
+ <input type="hidden" class="drop_foreign_key_msg" value="
+ {{- js_msg }}">
+ {% set drop_url = 'sql.php' ~ get_common(this_params) %}
+ {% set drop_str = get_icon('b_drop', 'Drop'|trans) %}
+ {{ link_or_button(drop_url, 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="floatleft">
+ {# 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) %}
+ {% 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
+ } 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>