aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/templates/table
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/templates/table')
-rw-r--r--srcs/phpmyadmin/templates/table/browse_foreigners/column_element.twig12
-rw-r--r--srcs/phpmyadmin/templates/table/browse_foreigners/show_all.twig5
-rw-r--r--srcs/phpmyadmin/templates/table/chart/tbl_chart.twig159
-rw-r--r--srcs/phpmyadmin/templates/table/gis_visualization/gis_visualization.twig80
-rw-r--r--srcs/phpmyadmin/templates/table/index_form.twig223
-rw-r--r--srcs/phpmyadmin/templates/table/insert/continue_insertion_form.twig19
-rw-r--r--srcs/phpmyadmin/templates/table/operations/view.twig31
-rw-r--r--srcs/phpmyadmin/templates/table/page_with_secondary_tabs.twig22
-rw-r--r--srcs/phpmyadmin/templates/table/relation/common_form.twig223
-rw-r--r--srcs/phpmyadmin/templates/table/relation/dropdown_generate.twig9
-rw-r--r--srcs/phpmyadmin/templates/table/relation/foreign_key_row.twig136
-rw-r--r--srcs/phpmyadmin/templates/table/relation/relational_dropdown.twig18
-rw-r--r--srcs/phpmyadmin/templates/table/search/column_comparison_operators.twig3
-rw-r--r--srcs/phpmyadmin/templates/table/search/fields_table.twig33
-rw-r--r--srcs/phpmyadmin/templates/table/search/form_tag.twig4
-rw-r--r--srcs/phpmyadmin/templates/table/search/geom_func.twig19
-rw-r--r--srcs/phpmyadmin/templates/table/search/input_box.twig97
-rw-r--r--srcs/phpmyadmin/templates/table/search/replace_preview.twig39
-rw-r--r--srcs/phpmyadmin/templates/table/search/rows_normal.twig39
-rw-r--r--srcs/phpmyadmin/templates/table/search/rows_zoom.twig74
-rw-r--r--srcs/phpmyadmin/templates/table/search/selection_form.twig226
-rw-r--r--srcs/phpmyadmin/templates/table/search/zoom_result_form.twig86
-rw-r--r--srcs/phpmyadmin/templates/table/structure/action_row_in_structure_table.twig31
-rw-r--r--srcs/phpmyadmin/templates/table/structure/display_partitions.twig145
-rw-r--r--srcs/phpmyadmin/templates/table/structure/display_structure.twig516
-rw-r--r--srcs/phpmyadmin/templates/table/structure/display_table_stats.twig169
-rw-r--r--srcs/phpmyadmin/templates/table/structure/partition_definition_form.twig14
-rw-r--r--srcs/phpmyadmin/templates/table/tracking/main.twig132
-rw-r--r--srcs/phpmyadmin/templates/table/tracking/report_table.twig27
-rw-r--r--srcs/phpmyadmin/templates/table/tracking/structure_snapshot_columns.twig56
-rw-r--r--srcs/phpmyadmin/templates/table/tracking/structure_snapshot_indexes.twig33
31 files changed, 2680 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/templates/table/browse_foreigners/column_element.twig b/srcs/phpmyadmin/templates/table/browse_foreigners/column_element.twig
new file mode 100644
index 0000000..f2ec2ba
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/browse_foreigners/column_element.twig
@@ -0,0 +1,12 @@
+<td{{ nowrap ? ' class="nowrap"' }}>
+ {{ is_selected ? '<strong>' }}
+ <a class="foreign_value" data-key="{{ keyname }}" href="#" title="
+ {%- trans 'Use this value' %}{{ title is not empty ? ': ' ~ title }}">
+ {% if nowrap %}
+ {{ keyname }}
+ {% else %}
+ {{ description }}
+ {% endif %}
+ </a>
+ {{ is_selected ? '</strong>' }}
+</td>
diff --git a/srcs/phpmyadmin/templates/table/browse_foreigners/show_all.twig b/srcs/phpmyadmin/templates/table/browse_foreigners/show_all.twig
new file mode 100644
index 0000000..4de9b81
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/browse_foreigners/show_all.twig
@@ -0,0 +1,5 @@
+{% if foreign_data.disp_row is iterable and
+ (show_all and foreign_data.the_total > max_rows) %}
+ <input class="btn btn-secondary" type="submit" id="foreign_showAll" name="foreign_showAll" value="
+ {%- trans 'Show all' %}">
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/table/chart/tbl_chart.twig b/srcs/phpmyadmin/templates/table/chart/tbl_chart.twig
new file mode 100644
index 0000000..4201599
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/chart/tbl_chart.twig
@@ -0,0 +1,159 @@
+<script type="text/javascript">
+ url_query = '{{ url_query }}';
+</script>
+{# Display Chart options #}
+<div id="div_view_options">
+ <form method="post" id="tblchartform" action="tbl_chart.php" class="ajax">
+ {{ get_hidden_inputs(url_params) }}
+ <fieldset>
+ <legend>
+ {% trans 'Display chart' %}
+ </legend>
+ <div class="chartOption">
+ <div class="formelement">
+ <input type="radio" name="chartType" value="bar" id="radio_bar">
+ <label for ="radio_bar">{% trans %}Bar{% context %}Chart type{% endtrans %}</label>
+ </div>
+ <div class="formelement">
+ <input type="radio" name="chartType" value="column" id="radio_column">
+ <label for ="radio_column">{% trans %}Column{% context %}Chart type{% endtrans %}</label>
+ </div>
+ <div class="formelement">
+ <input type="radio" name="chartType" value="line" id="radio_line" checked="checked">
+ <label for ="radio_line">{% trans %}Line{% context %}Chart type{% endtrans %}</label>
+ </div>
+ <div class="formelement">
+ <input type="radio" name="chartType" value="spline" id="radio_spline">
+ <label for ="radio_spline">{% trans %}Spline{% context %}Chart type{% endtrans %}</label>
+ </div>
+ <div class="formelement">
+ <input type="radio" name="chartType" value="area" id="radio_area">
+ <label for ="radio_area">{% trans %}Area{% context %}Chart type{% endtrans %}</label>
+ </div>
+ <span class="span_pie hide">
+ <input type="radio" name="chartType" value="pie" id="radio_pie">
+ <label for ="radio_pie">{% trans %}Pie{% context %}Chart type{% endtrans %}</label>
+ </span>
+ <span class="span_timeline hide">
+ <input type="radio" name="chartType" value="timeline" id="radio_timeline">
+ <label for ="radio_timeline">{% trans %}Timeline{% context %}Chart type{% endtrans %}</label>
+ </span>
+ <span class="span_scatter hide">
+ <input type="radio" name="chartType" value="scatter" id="radio_scatter">
+ <label for ="radio_scatter">{% trans %}Scatter{% context %}Chart type{% endtrans %}</label>
+ </span>
+ <br><br>
+ <span class="barStacked hide">
+ <input type="checkbox" name="barStacked" value="1" id="checkbox_barStacked">
+ <label for ="checkbox_barStacked">{% trans 'Stacked' %}</label>
+ </span>
+ <br><br>
+ <label for ="chartTitle">{% trans 'Chart title:' %}</label>
+ <input type="text" name="chartTitle" id="chartTitle">
+ </div>
+ {% set xaxis = null %}
+ <div class="chartOption">
+ <label for="select_chartXAxis">{% trans 'X-Axis:' %}</label>
+ <select name="chartXAxis" id="select_chartXAxis">
+ {% for idx, key in keys %}
+ {% if xaxis is same as(null) %}
+ {% set xaxis = idx %}
+ {% endif %}
+ {% if xaxis is same as(idx) %}
+ <option value="{{ idx }}" selected="selected">{{ key }}</option>
+ {% else %}
+ <option value="{{ idx }}">{{ key }}</option>
+ {% endif %}
+ {% endfor %}
+ </select>
+ <br>
+ <label for="select_chartSeries">
+ {% trans 'Series:' %}
+ </label>
+ <select name="chartSeries" id="select_chartSeries" multiple="multiple">
+ {% for idx, key in keys %}
+ {% if fields_meta[idx].type in numeric_types %}
+ {% if idx == xaxis and numeric_column_count > 1 %}
+ <option value="{{ idx }}">{{ key }}</option>
+ {% else %}
+ <option value="{{ idx }}" selected="selected">{{ key }}</option>
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ </select>
+ <input type="hidden" name="dateTimeCols" value="
+ {% set date_time_types = ['date', 'datetime', 'timestamp'] %}
+ {% for idx, key in keys %}
+ {% if fields_meta[idx].type in date_time_types %}
+ {{ idx ~ ' ' }}
+ {% endif %}
+ {% endfor %}">
+ <input type="hidden" name="numericCols" value="
+ {% for idx, key in keys %}
+ {% if fields_meta[idx].type in numeric_types %}
+ {{ idx ~ ' ' }}
+ {% endif %}
+ {% endfor %}">
+ </div>
+ <div class="chartOption">
+ <label for="xaxis_panel">
+ {% trans 'X-Axis label:' %}
+ </label>
+ <input style="margin-top:0;" type="text" name="xaxis_label" id="xaxis_label" value="{{ xaxis == -1 ? 'X Values'|trans : keys[xaxis] }}">
+ <br>
+ <label for="yaxis_label">
+ {% trans 'Y-Axis label:' %}
+ </label>
+ <input type="text" name="yaxis_label" id="yaxis_label" value="{% trans 'Y Values' %}">
+ <br>
+ </div>
+ <div class="clearfloat"></div>
+ <div>
+ <input type="checkbox" id="chkAlternative" name="chkAlternative" value="alternativeFormat">
+ <label for="chkAlternative">{% trans 'Series names are in a column' %}</label>
+ <br>
+ <label for="select_seriesColumn">
+ {% trans 'Series column:' %}
+ </label>
+ <select name="chartSeriesColumn" id="select_seriesColumn" disabled>
+ {% for idx, key in keys %}
+ <option value="{{ idx }}"
+ {% if idx == 1 %}
+ selected="selected"
+ {% endif %}>
+ {{ key }}
+ </option>
+ {% set series_column = idx %}
+ {% endfor %}
+ </select>
+ <label for="select_valueColumn">
+ {% trans 'Value Column:' %}
+ </label>
+ <select name="chartValueColumn" id="select_valueColumn" disabled>
+ {% set selected = false %}
+ {% for idx, key in keys %}
+ {% if fields_meta[idx].type in numeric_types %}
+ {% if not selected and idx != xaxis and idx != series_column %}
+ <option value="{{ idx }}" selected="selected">{{ key }}</option>
+ {% set selected = true %}
+ {% else %}
+ <option value="{{ idx }}">{{ key }}</option>
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ </select>
+ </div>
+ {{ get_start_and_number_of_rows_panel(sql_query) }}
+ <div class="clearfloat"></div>
+ <div id="resizer" style="width:600px; height:400px;">
+ <div style="position: absolute; right: 10px; top: 10px; cursor: pointer; z-index: 1000;">
+ <a class="disableAjax" id="saveChart" href="#" download="chart.png">
+ {{ get_image('b_saveimage', 'Save chart as image'|trans) }}
+ </a>
+ </div>
+ <div id="querychart" dir="ltr">
+ </div>
+ </div>
+ </fieldset>
+ </form>
+</div>
diff --git a/srcs/phpmyadmin/templates/table/gis_visualization/gis_visualization.twig b/srcs/phpmyadmin/templates/table/gis_visualization/gis_visualization.twig
new file mode 100644
index 0000000..9e82e2e
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/gis_visualization/gis_visualization.twig
@@ -0,0 +1,80 @@
+<div id="div_view_options">
+ <fieldset>
+ <legend>{% trans 'Display GIS Visualization' %}</legend>
+ <div id="gis_div" style="position:relative;">
+ <form method="post" action="tbl_gis_visualization.php">
+ {{ get_hidden_inputs(url_params) }}
+ <label for="labelColumn">
+ {% trans "Label column" %}
+ </label>
+ <select name="visualizationSettings[labelColumn]" id="labelColumn" class="autosubmit">
+ <option value="">{% trans "-- None --" %}</option>
+ {% for value in label_candidates %}
+ <option value="{{ value }}"{{ value == visualization_settings['labelColumn'] ? ' selected="selected"' }}>
+ {{ value }}
+ </option>
+ {% endfor %}
+ </select>
+ <label for="spatialColumn">
+ {% trans "Spatial column" %}
+ </label>
+ <select name="visualizationSettings[spatialColumn]" id="spatialColumn" class="autosubmit">
+ {% for value in spatial_candidates %}
+ <option value="{{ value }}"{{ value == visualization_settings['spatialColumn'] ? ' selected="selected"' }}>
+ {{ value }}
+ </option>
+ {% endfor %}
+ </select>
+ <input type="hidden" name="displayVisualization" value="redraw">
+ <tr>
+ <td class="choice" colspan="2">
+ <input type="checkbox"
+ name="visualizationSettings[choice]"
+ id="choice" value="useBaseLayer"
+ {% if visualization_settings['choice'] is defined %}
+ checked="checked"
+ {% endif %}>
+ <label for="choice" id="labelChoice">
+ {% trans "Use OpenStreetMaps as Base Layer" %}
+ </label>
+ </td>
+ </tr>
+ {{ get_start_and_number_of_rows_panel(sql_query) }}
+ </form>
+
+ <div class="pma_quick_warp" style="width: 50px; position: absolute; right: 0; top: 0; cursor: pointer;">
+ <div class="drop_list">
+ <span class="drop_button" style="padding: 0; border: 0;">
+ {{ get_image('b_saveimage', 'Save'|trans) }}
+ </span>
+ <ul>
+ <li class="warp_link">
+ <a href="{{ download_url|raw }}&fileFormat=png" class="disableAjax">PNG</a>
+ </li>
+ <li class="warp_link">
+ <a href="{{ download_url|raw }}&fileFormat=pdf" class="disableAjax">PDF</a>
+ </li>
+ <li class="warp_link">
+ <a href="{{ download_url|raw }}&fileFormat=svg" class="disableAjax">SVG</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ <div class="clearfloat"></div>
+
+ <div id="placeholder"
+ style="width:{{ visualization_settings['width'] }}px;height:{{ visualization_settings['height'] }}px;">
+ {{ visualization|raw }}
+ </div>
+ <div id="openlayersmap"></div>
+ <input type="hidden" id="pmaThemeImage" value="{{ pma_theme_image }}">
+ <script language="javascript" type="text/javascript">
+ function drawOpenLayers()
+ {
+ {{ draw_ol|raw }}
+ }
+ </script>
+ </fieldset>
+</div>
diff --git a/srcs/phpmyadmin/templates/table/index_form.twig b/srcs/phpmyadmin/templates/table/index_form.twig
new file mode 100644
index 0000000..6364599
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/index_form.twig
@@ -0,0 +1,223 @@
+<form action="tbl_indexes.php"
+ method="post"
+ name="index_frm"
+ id="index_frm"
+ class="ajax">
+
+ {{ get_hidden_inputs(form_params) }}
+
+ <fieldset id="index_edit_fields">
+ <div class="index_info">
+ <div>
+ <div class="label">
+ <strong>
+ <label for="input_index_name">
+ {% trans 'Index name:' %}
+ {{ show_hint('"PRIMARY" <b>must</b> be the name of and <b>only of</b> a primary key!'|trans) }}
+ </label>
+ </strong>
+ </div>
+
+ <input type="text"
+ name="index[Key_name]"
+ id="input_index_name"
+ size="25"
+ maxlength="64"
+ value="{{ index.getName() }}"
+ onfocus="this.select()">
+ </div>
+
+ <div>
+ <div class="label">
+ <strong>
+ <label for="select_index_choice">
+ {% trans 'Index choice:' %}
+ {{ show_mysql_docu('ALTER_TABLE') }}
+ </label>
+ </strong>
+ </div>
+ {{ index.generateIndexChoiceSelector(create_edit_table)|raw }}
+ </div>
+
+ {% include 'div_for_slider_effect.twig' with {
+ 'id': 'indexoptions',
+ 'message': 'Advanced Options'|trans,
+ 'initial_sliders_state': default_sliders_state
+ } only %}
+
+ <div>
+ <div class="label">
+ <strong>
+ <label for="input_key_block_size">
+ {% trans 'Key block size:' %}
+ </label>
+ </strong>
+ </div>
+
+ <input type="text"
+ name="index[Key_block_size]"
+ id="input_key_block_size"
+ size="30"
+ value="{{ index.getKeyBlockSize() }}">
+ </div>
+
+ <div>
+
+ <div class="label">
+ <strong>
+ <label for="select_index_type">
+ {% trans 'Index type:' %}
+ {{ show_mysql_docu('ALTER_TABLE') }}
+ </label>
+ </strong>
+ </div>
+ {{ index.generateIndexTypeSelector()|raw }}
+ </div>
+
+ <div>
+ <div class="label">
+ <strong>
+ <label for="input_parser">
+ {% trans 'Parser:' %}
+ </label>
+ </strong>
+ </div>
+
+ <input type="text"
+ name="index[Parser]"
+ id="input_parse"
+ size="30"
+ value="{{ index.getParser() }}">
+ </div>
+
+ <div>
+ <div class="label">
+ <strong>
+ <label for="input_index_comment">
+ {% trans 'Comment:' %}
+ </label>
+ </strong>
+ </div>
+
+ <input type="text"
+ name="index[Index_comment]"
+ id="input_index_comment"
+ size="30"
+ maxlength="1024"
+ value="{{ index.getComment() }}">
+ </div>
+ </div>
+ <!-- end of indexoptions div -->
+
+ <div class="clearfloat"></div>
+
+ <table id="index_columns">
+ <thead>
+ <tr>
+ <th></th>
+ <th>
+ {% trans 'Column' %}
+ </th>
+ <th>
+ {% trans 'Size' %}
+ </th>
+ </tr>
+ </thead>
+ {% set spatial_types = [
+ 'geometry',
+ 'point',
+ 'linestring',
+ 'polygon',
+ 'multipoint',
+ 'multilinestring',
+ 'multipolygon',
+ 'geomtrycollection'
+ ] %}
+ <tbody>
+ {% for column in index.getColumns() %}
+ <tr class="noclick">
+ <td>
+ <span class="drag_icon" title="{% trans 'Drag to reorder' %}"></span>
+ </td>
+ <td>
+ <select name="index[columns][names][]">
+ <option value="">
+ -- {% trans 'Ignore' %} --
+ </option>
+ {% for field_name, field_type in fields %}
+ {% if (index.getChoice() != 'FULLTEXT'
+ or field_type matches '/(char|text)/i')
+ and (index.getChoice() != 'SPATIAL'
+ or field_type in spatial_types) %}
+
+ <option value="{{ field_name }}"
+ {%- if field_name == column.getName() %}
+ selected="selected"
+ {%- endif %}>
+ {{ field_name }} [{{ field_type }}]
+ </option>
+ {% endif %}
+ {% endfor %}
+ </select>
+ </td>
+ <td>
+ <input type="text"
+ size="5"
+ onfocus="this.select()"
+ name="index[columns][sub_parts][]"
+ value="{{ index.getChoice() != 'SPATIAL' ?
+ column.getSubPart() }}">
+ </td>
+ </tr>
+ {% endfor %}
+ {% if add_fields > 0 %}
+ {% for i in range(1, add_fields) %}
+ <tr class="noclick">
+ <td>
+ <span class="drag_icon" title="{% trans 'Drag to reorder' %}"></span>
+ </td>
+ <td>
+ <select name="index[columns][names][]">
+ <option value="">-- {% trans 'Ignore' %} --</option>
+ {% set j = 0 %}
+ {% for field_name, field_type in fields %}
+ {% if create_edit_table %}
+ {% set col_index = field_type[1] %}
+ {% set field_type = field_type[0] %}
+ {% endif %}
+ {% set j = j + 1 %}
+ <option value="{{ col_index is defined ?
+ col_index : field_name }}"
+ {{- j == i ? ' selected="selected"' }}>
+ {{ field_name }} [{{ field_type }}]
+ </option>
+ {% endfor %}
+ </select>
+ </td>
+ <td>
+ <input type="text"
+ size="5"
+ onfocus="this.select()"
+ name="index[columns][sub_parts][]"
+ value="">
+ </td>
+ </tr>
+ {% endfor %}
+ {% endif %}
+ </tbody>
+ </table>
+ <div class="add_more">
+
+ <div class="slider"></div>
+ <div class="add_fields hide">
+ <input class="btn btn-secondary" type="submit"
+ id="add_fields"
+ value="{{ 'Add %s column(s) to index'|trans|format(1) }}">
+ </div>
+ </div>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <button class="btn btn-secondary" type="submit" id="preview_index_frm">{% trans 'Preview SQL' %}</button>
+ <input class="btn btn-primary" type="submit" id="save_index_frm" value="{% trans 'Go' %}">
+ </fieldset>
+</form>
diff --git a/srcs/phpmyadmin/templates/table/insert/continue_insertion_form.twig b/srcs/phpmyadmin/templates/table/insert/continue_insertion_form.twig
new file mode 100644
index 0000000..86a8215
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/insert/continue_insertion_form.twig
@@ -0,0 +1,19 @@
+<form id="continueForm" method="post" action="tbl_replace.php" name="continueForm">
+ {{ get_hidden_inputs(db, table) }}
+ <input type="hidden" name="goto" value="{{ goto }}">
+ <input type="hidden" name="err_url" value="{{ err_url }}">
+ <input type="hidden" name="sql_query" value="{{ sql_query }}">
+
+ {% if has_where_clause %}
+ {% for key_id, where_clause in where_clause_array %}
+ <input type="hidden" name="where_clause[{{ key_id }}]" value="
+ {{- where_clause|trim }}">
+ {% endfor %}
+ {% endif %}
+
+ {% set insert_rows %}
+ <input type="number" name="insert_rows" id="insert_rows" value="
+ {{- insert_rows_default }}" min="1">
+ {% endset %}
+ {{ 'Continue insertion with %s rows'|trans|format(insert_rows)|raw }}
+</form>
diff --git a/srcs/phpmyadmin/templates/table/operations/view.twig b/srcs/phpmyadmin/templates/table/operations/view.twig
new file mode 100644
index 0000000..e590532
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/operations/view.twig
@@ -0,0 +1,31 @@
+<!-- VIEW operations -->
+<div>
+ <form method="post" action="view_operations.php">
+ {{ get_hidden_inputs(db, table) }}
+ <input type="hidden" name="reload" value="1">
+ <fieldset>
+ <legend>{% trans 'Operations' %}</legend>
+ <table>
+ <!-- Change view name -->
+ <tr>
+ <td>{% trans 'Rename view to' %}</td>
+ <td><input type="text" name="new_name" onfocus="this.select()"
+ value="{{ table }}"
+ required>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input type="hidden" name="submitoptions" value="1">
+ <input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
+ </fieldset>
+ </form>
+</div>
+
+<div>
+ <fieldset class="caution">
+ <legend>{% trans 'Delete data or table' %}</legend>
+ <ul>{{ delete_data_or_table_link | raw }}</ul>
+ </fieldset>
+</div>
diff --git a/srcs/phpmyadmin/templates/table/page_with_secondary_tabs.twig b/srcs/phpmyadmin/templates/table/page_with_secondary_tabs.twig
new file mode 100644
index 0000000..2aae85a
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/page_with_secondary_tabs.twig
@@ -0,0 +1,22 @@
+{% if cfg_relation['relwork'] or is_foreign_key_supported %}
+ <ul id="topmenu2">
+ {{ get_html_tab({
+ 'icon': 'b_props',
+ 'link': 'tbl_structure.php',
+ 'text': 'Table structure'|trans,
+ 'id': 'table_strucuture_id'
+ }, url_params) }}
+ {{ get_html_tab({
+ 'icon': 'b_relations',
+ 'link': 'tbl_relation.php',
+ 'text': 'Relation view'|trans,
+ 'id': 'table_relation_id'
+ }, url_params) }}
+ </ul>
+ <div class="clearfloat"></div>
+{% endif %}
+
+<div id="structure_content">
+ {% block content %}
+ {% endblock %}
+</div>
diff --git a/srcs/phpmyadmin/templates/table/relation/common_form.twig b/srcs/phpmyadmin/templates/table/relation/common_form.twig
new file mode 100644
index 0000000..e85c6ce
--- /dev/null
+++ b/srcs/phpmyadmin/templates/table/relation/common_form.twig
@@ -0,0 +1,223 @@
+{% extends 'table/page_with_secondary_tabs.twig' %}