From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- .../central_columns/edit_table_header.twig | 9 + .../templates/database/central_columns/main.twig | 418 ++++++++ .../templates/database/create_table.twig | 23 + .../templates/database/data_dictionary/index.twig | 65 ++ .../database/designer/database_tables.twig | 121 +++ .../database/designer/edit_delete_pages.twig | 13 + .../templates/database/designer/main.twig | 1105 ++++++++++++++++++++ .../templates/database/designer/page_save_as.twig | 37 + .../templates/database/designer/page_selector.twig | 10 + .../templates/database/designer/schema_export.twig | 9 + .../templates/database/multi_table_query/form.twig | 184 ++++ .../templates/database/qbe/column_select_cell.twig | 11 + .../templates/database/qbe/footer_options.twig | 16 + .../database/qbe/sort_order_select_cell.twig | 10 + .../templates/database/qbe/sort_select_cell.twig | 9 + .../phpmyadmin/templates/database/search/main.twig | 84 ++ .../templates/database/search/results.twig | 62 ++ .../database/structure/body_for_table_summary.twig | 95 ++ .../database/structure/check_all_tables.twig | 40 + .../database/structure/favorite_anchor.twig | 7 + .../templates/database/structure/index.twig | 24 + .../templates/database/structure/show_create.twig | 31 + .../database/structure/show_create_row.twig | 19 + .../database/structure/structure_table_row.twig | 223 ++++ .../templates/database/structure/table_header.twig | 78 ++ .../database/structure/tracking_icon.twig | 7 + .../templates/database/tracking/tables.twig | 161 +++ 27 files changed, 2871 insertions(+) create mode 100644 srcs/phpmyadmin/templates/database/central_columns/edit_table_header.twig create mode 100644 srcs/phpmyadmin/templates/database/central_columns/main.twig create mode 100644 srcs/phpmyadmin/templates/database/create_table.twig create mode 100644 srcs/phpmyadmin/templates/database/data_dictionary/index.twig create mode 100644 srcs/phpmyadmin/templates/database/designer/database_tables.twig create mode 100644 srcs/phpmyadmin/templates/database/designer/edit_delete_pages.twig create mode 100644 srcs/phpmyadmin/templates/database/designer/main.twig create mode 100644 srcs/phpmyadmin/templates/database/designer/page_save_as.twig create mode 100644 srcs/phpmyadmin/templates/database/designer/page_selector.twig create mode 100644 srcs/phpmyadmin/templates/database/designer/schema_export.twig create mode 100644 srcs/phpmyadmin/templates/database/multi_table_query/form.twig create mode 100644 srcs/phpmyadmin/templates/database/qbe/column_select_cell.twig create mode 100644 srcs/phpmyadmin/templates/database/qbe/footer_options.twig create mode 100644 srcs/phpmyadmin/templates/database/qbe/sort_order_select_cell.twig create mode 100644 srcs/phpmyadmin/templates/database/qbe/sort_select_cell.twig create mode 100644 srcs/phpmyadmin/templates/database/search/main.twig create mode 100644 srcs/phpmyadmin/templates/database/search/results.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/body_for_table_summary.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/check_all_tables.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/favorite_anchor.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/index.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/show_create.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/show_create_row.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/structure_table_row.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/table_header.twig create mode 100644 srcs/phpmyadmin/templates/database/structure/tracking_icon.twig create mode 100644 srcs/phpmyadmin/templates/database/tracking/tables.twig (limited to 'srcs/phpmyadmin/templates/database') diff --git a/srcs/phpmyadmin/templates/database/central_columns/edit_table_header.twig b/srcs/phpmyadmin/templates/database/central_columns/edit_table_header.twig new file mode 100644 index 0000000..947d841 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/central_columns/edit_table_header.twig @@ -0,0 +1,9 @@ + + + + + {% for header in headers %} + + {% endfor %} + + diff --git a/srcs/phpmyadmin/templates/database/central_columns/main.twig b/srcs/phpmyadmin/templates/database/central_columns/main.twig new file mode 100644 index 0000000..30b7276 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/central_columns/main.twig @@ -0,0 +1,418 @@ +{# getHtmlForAddNewColumn #} +
+ + {{ (total_rows > 0) ? '+' : '-' }}{% trans 'Add new column' %} + +
+ {{ get_hidden_inputs(db) }} + +
+
{% trans 'Structure' %}
{{ header }}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ {% trans 'Name' %} +
+
+ {% trans 'Type' %} +
+
+ {% trans 'Length/Value' %} +
+
+ {% trans 'Default' %} +
+
+ {% trans 'Collation' %} +
+
+ {% trans 'Attribute' %} +
+
+ {% trans 'Null' %} +
+
+ {% trans 'A_I' %} +
+
+ {% include 'columns_definitions/column_name.twig' with { + 'column_number': 0, + 'ci': 0, + 'ci_offset': 0, + 'column_meta': {}, + 'cfg_relation': { + 'centralcolumnswork': false + }, + 'max_rows': max_rows, + } only %} + + {% include 'columns_definitions/column_type.twig' with { + 'column_number': 0, + 'ci': 1, + 'ci_offset': 0, + 'type_upper': '', + 'column_meta': {} + } only %} + + {% include 'columns_definitions/column_length.twig' with { + 'column_number': 0, + 'ci': 2, + 'ci_offset': 0, + 'length_values_input_size': 8, + 'length_to_display': '' + } only %} + + {% include 'columns_definitions/column_default.twig' with { + 'column_number': 0, + 'ci': 3, + 'ci_offset': 0, + 'type_upper': '', + 'column_meta': {}, + 'char_editing': char_editing, + } only %} + + + + {% include 'columns_definitions/column_attribute.twig' with { + 'column_number': 0, + 'ci': 5, + 'ci_offset': 0, + 'extracted_columnspec': {}, + 'column_meta': {}, + 'submit_attribute': false, + 'attribute_types': attribute_types, + } only %} + + {% include 'columns_definitions/column_null.twig' with { + 'column_number': 0, + 'ci': 6, + 'ci_offset': 0, + 'column_meta': {} + } only %} + + {% include 'columns_definitions/column_extra.twig' with { + 'column_number': 0, + 'ci': 7, + 'ci_offset': 0, + 'column_meta': {} + } only %} + + +
+ + + +{% if total_rows <= 0 %} +
+ {% trans 'The central list of columns for the current database is empty' %} +
+{% else %} + + + + {% if pos - max_rows >= 0 %} + + {% endif %} + {% if tn_nbTotalPage > 1 %} + + {% endif %} + {% if pos + max_rows < total_rows %} + + {% endif %} + + + + + +{% endif %} +{# getHtmlForAddColumn #} + + + + + + +
+ {{ get_icon('centralColumns_add', 'Add column' | trans)|raw }} +
+ {{ get_hidden_inputs(db) | raw }} + + + + {# getHtmlForTableDropdown #} + + + +
+
+{% if total_rows > 0 %} +
+ {{ get_hidden_inputs(db) }} + + + +
+
+
+ + {% set class = 'column_heading' %} + {% set title = 'Click to sort.' | trans %} + + + + + + + + + + + + + + + + + {% set row_num = 0 %} + {% for row in rows_list %} + {# getHtmlForTableRow #} + + {{ get_hidden_inputs(db) }} + + + + + + + + + + + + + + + {% set row_num = row_num + 1 %} + {% endfor %} + +
{% trans 'Action' %} + {% trans 'Name' %} +
+
+ {% trans 'Type' %} +
+
+ {% trans 'Length/Value' %} +
+
+ {% trans 'Default' %} +
+
+ {% trans 'Collation' %} +
+
+ {% trans 'Attribute' %} +
+
+ {% trans 'Null' %} +
+
+ {% trans 'A_I' %} +
+
+ + + {{ get_icon('b_edit', 'Edit' | trans) | raw }} + + {{ get_icon('b_drop', 'Delete' | trans) }} + + + + + {{ row['col_name'] }} + + {% include 'columns_definitions/column_name.twig' with { + 'column_number': row_num, + 'ci': 0, + 'ci_offset': 0, + 'column_meta': { + 'Field': row['col_name'] + }, + 'cfg_relation': { + 'centralcolumnswork': false + }, + 'max_rows': max_rows + } only %} + + {{ row['col_type'] }} + {% include 'columns_definitions/column_type.twig' with { + 'column_number': row_num, + 'ci': 1, + 'ci_offset': 0, + 'type_upper': types_upper[row_num], + 'column_meta': {} + } only %} + + {{ (row['col_length']?(row['col_length']):'') }} + {% include 'columns_definitions/column_length.twig' with { + 'column_number': row_num, + 'ci': 2, + 'ci_offset': 0, + 'length_values_input_size': 8, + 'length_to_display': row['col_length'] + } only %} + + {% if row['col_default'] is defined %} + {{ row['col_default'] }} + {% else %} + None + {% endif %} + {% include 'columns_definitions/column_default.twig' with { + 'column_number': row_num, + 'ci': 3, + 'ci_offset': 0, + 'type_upper': types_upper[row_num], + 'column_meta': rows_meta[row_num], + 'char_editing': char_editing, + } only %} + + {{ row['col_collation'] }} + + + {{ row['col_attribute']?(row['col_attribute']):"" }} + {% include 'columns_definitions/column_attribute.twig' with { + 'column_number': row_num, + 'ci': 5, + 'ci_offset': 0, + 'extracted_columnspec': {}, + 'column_meta': row['col_attribute'], + 'submit_attribute': false, + 'attribute_types': attribute_types, + } only %} + + {{ row['col_isNull'] ? 'Yes' | trans : 'No' | trans }} + {% include 'columns_definitions/column_null.twig' with { + 'column_number': row_num, + 'ci': 6, + 'ci_offset': 0, + 'column_meta': { + 'Null': row['col_isNull'] + } + } only %} + + {{ row['col_extra'] }} + {% include 'columns_definitions/column_extra.twig' with { + 'column_number': row_num, + 'ci': 7, + 'ci_offset': 0, + 'column_meta': { + 'Extra': row['col_extra'] + } + } only %} +
+ {# getTableFooter #} + {% include 'select_all.twig' with { + 'pma_theme_image': pmaThemeImage, + 'text_dir' : text_dir, + 'form_name' : 'tableslistcontainer', + } only %} + {{ get_button_or_image( + 'edit_central_columns', + 'mult_submit change_central_columns', + 'Edit' | trans, + 'b_edit', + 'edit central columns' + ) | raw }} + {{ get_button_or_image( + 'delete_central_columns', + 'mult_submit', + 'Delete' | trans, + 'b_drop', + 'remove_from_central_columns' + ) | raw }} +
+
+{% endif %} diff --git a/srcs/phpmyadmin/templates/database/create_table.twig b/srcs/phpmyadmin/templates/database/create_table.twig new file mode 100644 index 0000000..e57d93a --- /dev/null +++ b/srcs/phpmyadmin/templates/database/create_table.twig @@ -0,0 +1,23 @@ +
+
+ + {% if show_icons('ActionLinksMode') -%} + {{ get_image('b_table_add') }} + {%- endif %} + {% trans "Create table" %} + + {{ get_hidden_inputs(db) }} +
+ {% trans "Name" %}: + +
+
+ {% trans "Number of columns" %}: + +
+
+
+
+ +
+
diff --git a/srcs/phpmyadmin/templates/database/data_dictionary/index.twig b/srcs/phpmyadmin/templates/database/data_dictionary/index.twig new file mode 100644 index 0000000..2f5dc5a --- /dev/null +++ b/srcs/phpmyadmin/templates/database/data_dictionary/index.twig @@ -0,0 +1,65 @@ +

{{ database }}

+{% if comment is not empty %} +

{% trans 'Database comment:' %} {{ comment }}

+{% endif %} + +
+ {% for table in tables %} +
+

{{ table.name }}

+ {% if table.comment is not empty %} +

{% trans 'Table comments:' %} {{ table.comment }}

+ {% endif %} + + + + + + + + {% if table.has_relation %} + + {% endif %} + + {% if table.has_mime %} + + {% endif %} + + {% for column in table.columns %} + + + + + + {% if table.has_relation %} + + {% endif %} + + {% if table.has_mime %} + + {% endif %} + + {% endfor %} +
{% trans 'Column' %}{% trans 'Type' %}{% trans 'Null' %}{% trans 'Default' %}{% trans 'Links to' %}{% trans 'Comments' %}{% trans 'Media (MIME) type' %}
+ {{ column.name }} + {% if column.has_primary_key %} + ({% trans 'Primary' %}) + {% endif %} + + {{ column.print_type }} + {{ column.is_nullable ? 'Yes'|trans : 'No'|trans }} + {% if column.default is null and column.is_nullable %} + NULL + {% else %} + {{ column.default }} + {% endif %} + {{ column.relation }}{{ column.comment }}{{ column.mime }}
+ + {{ table.indexes_table|raw }} +
+ {% endfor %} +
+ + diff --git a/srcs/phpmyadmin/templates/database/designer/database_tables.twig b/srcs/phpmyadmin/templates/database/designer/database_tables.twig new file mode 100644 index 0000000..5453bb5 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/designer/database_tables.twig @@ -0,0 +1,121 @@ +{% for designerTable in tables %} + {% set i = loop.index0 %} + {% set t_n_url = designerTable.getDbTableString()|escape('url') %} + {% set db = designerTable.getDatabaseName() %} + {% set db_url = db|escape('url') %} + {% set t_n = designerTable.getDbTableString() %} + {% set table_name = designerTable.getTableName()|escape('html') %} + + + + + + + + {% if has_query %} + + {% endif %} + + + + {% if has_query %} + + {% endif %} + + + + {% set display_field = designerTable.getDisplayField() %} + {% for j in 0..tab_column[t_n]['COLUMN_ID']|length - 1 %} + {% set col_name = tab_column[t_n]['COLUMN_NAME'][j] %} + {% set tmp_column = t_n ~ '.' ~ tab_column[t_n]['COLUMN_NAME'][j] %} + {% set click_field_param = [ + designerTable.getTableName()|escape('url'), + tab_column[t_n]['COLUMN_NAME'][j]|url_encode + ] %} + {% if not designerTable.supportsForeignkeys() %} + {% set click_field_param = click_field_param|merge([tables_pk_or_unique_keys[tmp_column] is defined ? 1 : 0]) %} + {% else %} + {# if foreign keys are supported, it's not necessary that the + index is a primary key #} + {% set click_field_param = click_field_param|merge([tables_all_keys[tmp_column] is defined ? 1 : 0]) %} + {% endif %} + {% set click_field_param = click_field_param|merge([db]) %} + + {% if has_query %} + + {% endif %} + + {% if has_query %} + + {% endif %} + + {% endfor %} + +
+ + {{ tab_pos[t_n] is not defined or tab_pos[t_n]['V'] is not empty ? 'v' : '>' }} + + + {{ designerTable.getDatabaseName() }} + {{ designerTable.getTableName() }} + +
+{% endfor %} diff --git a/srcs/phpmyadmin/templates/database/designer/edit_delete_pages.twig b/srcs/phpmyadmin/templates/database/designer/edit_delete_pages.twig new file mode 100644 index 0000000..75d1a1a --- /dev/null +++ b/srcs/phpmyadmin/templates/database/designer/edit_delete_pages.twig @@ -0,0 +1,13 @@ +
+ {{ get_hidden_inputs(db) }} +
+ + + {% include 'database/designer/page_selector.twig' with { + 'pdfwork': pdfwork, + 'pages': pages + } only %} +
+
diff --git a/srcs/phpmyadmin/templates/database/designer/main.twig b/srcs/phpmyadmin/templates/database/designer/main.twig new file mode 100644 index 0000000..f971dc5 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/designer/main.twig @@ -0,0 +1,1105 @@ +{# Invisible characters will make javascript crash #} +{% apply spaceless %} + +{% endapply %} + +{# side menu #} +{% if not has_query %} +
+ + {{ selected_page == null ? 'Untitled'|trans : selected_page }} + + + {{ selected_page == null ? '*' : '' }} + +
+{% endif %} +
+ + v + + {% trans 'Show/Hide tables list' %} + + + + + + {% trans 'View in fullscreen' %} + + + + + + {% trans 'Add tables from other databases' %} + + + {% if not has_query %} + + + + {% trans 'New page' %} + + + + + + {% trans 'Open page' %} + + + + + + {% trans 'Save page' %} + + + + + + {% trans 'Save page as' %} + + + + + + {% trans 'Delete pages' %} + + + + + + {% trans 'Create table' %} + + + + + + {% trans 'Create relationship' %} + + + + + + {% trans 'Choose column to display' %} + + + + + + {% trans 'Reload' %} + + + + + + {% trans 'Help' %} + + + {% endif %} + + + + {% trans 'Angular links' %} / {% trans 'Direct links' %} + + + + + + {% trans 'Snap to grid' %} + + + + v + + {% trans 'Small/Big All' %} + + + + + + {% trans 'Toggle small/big' %} + + + + + + {% trans 'Toggle relationship lines' %} + + + {% if not visual_builder %} + + + + {% trans 'Export schema' %} + + + {% else %} + + + + {% trans 'Build Query' %} + + + {% endif %} + + > + + {% trans 'Move Menu' %} + + + + > + + {% trans 'Pin text' %} + + +
+
+
+
+ +
+
+ +
+
+
+ {# end id_scroll_tab #} +
+ {% trans 'Number of tables:' %} 0 +
+
+
+ +
+
+
+ {# end layer_menu #} + {% include 'database/designer/database_tables.twig' with { + 'db': db, + 'get_db': get_db, + 'has_query': has_query, + 'tab_pos': tab_pos, + 'display_page': display_page, + 'tab_column': tab_column, + 'tables_all_keys': tables_all_keys, + 'tables_pk_or_unique_keys': tables_pk_or_unique_keys, + 'columns_type': columns_type, + 'tables': designerTables, + 'theme': theme, + } only %} +
+
+
+{# create relation pane #} + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + {% trans 'Create relationship' %} + +
+ + FOREIGN KEY + +
+ on delete + + +
+ on update + + +
+ + +
+
+
+
+
+
+ +
+{# delete relation pane #} + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + + + +
+ + {% trans 'Delete relationship' %} + +
+ + +
+
+
+
+
+
+ +
+{% if has_query %} + {# options pane #} + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + WHERE + +
+ {% trans 'Relationship operator' %} + + +
+ {% trans 'Value' %} +
+ {% trans 'subquery' %} +
+ +
+ + {% trans 'Rename to' %} + +
+ {% trans 'New name' %} + + +
+ + {% trans 'Aggregate' %} + +
+ {% trans 'Operator' %} + + +
+ + GROUP BY + + + +
+ + ORDER BY + + + +
+ + HAVING + +
+ {% trans 'Operator' %} + + +
+ {% trans 'Relationship operator' %} + + +
+ {% trans 'Value' %} +
+ {% trans 'subquery' %} +
+ +
+ + + + + + +
+
+
+
+
+
+ +
+ {# rename to pane #} + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + +
+ + {% trans 'Rename to' %} + +
+ {% trans 'New name' %} + + +
+ + +
+
+
+
+
+
+ +
+ {# having query panel #} + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + HAVING + +
+ {% trans 'Operator' %} + + +
+ {% trans 'Operator' %} + + +
+ {% trans 'Value' %} +
+ {% trans 'subquery' %} +
+ +
+ + +
+
+
+
+
+
+ +
+ {# aggregate query pane #} + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + +
+ + {% trans 'Aggregate' %} + +
+ {% trans 'Operator' %} + + +
+ + +
+
+
+
+
+
+ +
+ {# where query pane #} + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + WHERE + +
+ {% trans 'Operator' %} + + +
+ {% trans 'Value' %} +
+ {% trans 'subquery' %} +
+ +
+ + +
+
+
+
+
+
+ +
+ {# query details #} +
+
+
+
+
+ {% trans 'Active options' %} +
+
+ + + {{ get_hidden_inputs(get_db) }} +
+
+{% endif %} +
diff --git a/srcs/phpmyadmin/templates/database/designer/page_save_as.twig b/srcs/phpmyadmin/templates/database/designer/page_save_as.twig new file mode 100644 index 0000000..bbcf34b --- /dev/null +++ b/srcs/phpmyadmin/templates/database/designer/page_save_as.twig @@ -0,0 +1,37 @@ +
+ {{ get_hidden_inputs(db) }} +
+ + + + + + + + + + + + +
+ + {% include 'database/designer/page_selector.twig' with { + 'pdfwork': pdfwork, + 'pages': pages + } only %} +
+ {{ get_radio_fields( + 'save_page', + { + 'same': 'Save to selected page'|trans, + 'new': 'Create a page and save to it'|trans + }, + 'same', + true + ) }} +
+ + +
+
+
diff --git a/srcs/phpmyadmin/templates/database/designer/page_selector.twig b/srcs/phpmyadmin/templates/database/designer/page_selector.twig new file mode 100644 index 0000000..01c0650 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/designer/page_selector.twig @@ -0,0 +1,10 @@ + diff --git a/srcs/phpmyadmin/templates/database/designer/schema_export.twig b/srcs/phpmyadmin/templates/database/designer/schema_export.twig new file mode 100644 index 0000000..71f15f2 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/designer/schema_export.twig @@ -0,0 +1,9 @@ +
+
+ {{ get_hidden_inputs(db) }} + + {{ get_choice('Schema', 'export_type', export_list, 'format') }} + + {{ get_options('Schema', export_list) }} +
+
diff --git a/srcs/phpmyadmin/templates/database/multi_table_query/form.twig b/srcs/phpmyadmin/templates/database/multi_table_query/form.twig new file mode 100644 index 0000000..068ceda --- /dev/null +++ b/srcs/phpmyadmin/templates/database/multi_table_query/form.twig @@ -0,0 +1,184 @@ +{% include 'secondary_tabs.twig' with { + 'url_params': { + 'db': db + }, + 'sub_tabs': [ + { + 'link': 'db_multi_table_query.php', + 'text': 'Multi-table query'|trans + }, + { + 'link': 'db_qbe.php', + 'text': 'Query by example'|trans + } + ] +} only %} +{% include 'div_for_slider_effect.twig' with { + 'id': 'query_div', + 'message': 'Query window'|trans, + 'initial_sliders_state': 'open', +} only %} +
+ +
+ {% for table in tables %} + + {% endfor %} + + {% for id in 0..default_no_of_columns %} + {% if id == 0 %} + + X + +
+ {% if id == 0 %}{% endif %} + {% endfor %} + +
+ +
+ +
+ {% apply spaceless %} + + {% endapply %} +
+ + +
+ + +
+
+{# Slider div #} +
diff --git a/srcs/phpmyadmin/templates/database/qbe/column_select_cell.twig b/srcs/phpmyadmin/templates/database/qbe/column_select_cell.twig new file mode 100644 index 0000000..071249f --- /dev/null +++ b/srcs/phpmyadmin/templates/database/qbe/column_select_cell.twig @@ -0,0 +1,11 @@ + + + diff --git a/srcs/phpmyadmin/templates/database/qbe/footer_options.twig b/srcs/phpmyadmin/templates/database/qbe/footer_options.twig new file mode 100644 index 0000000..7f43f8d --- /dev/null +++ b/srcs/phpmyadmin/templates/database/qbe/footer_options.twig @@ -0,0 +1,16 @@ +
+ {% if type == 'row' %} + {% trans 'Add/Delete criteria rows' %}: + {% else %} + {% trans 'Add/Delete columns' %}: + {% endif %} + +
diff --git a/srcs/phpmyadmin/templates/database/qbe/sort_order_select_cell.twig b/srcs/phpmyadmin/templates/database/qbe/sort_order_select_cell.twig new file mode 100644 index 0000000..7a63d77 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/qbe/sort_order_select_cell.twig @@ -0,0 +1,10 @@ + + + diff --git a/srcs/phpmyadmin/templates/database/qbe/sort_select_cell.twig b/srcs/phpmyadmin/templates/database/qbe/sort_select_cell.twig new file mode 100644 index 0000000..4f0989e --- /dev/null +++ b/srcs/phpmyadmin/templates/database/qbe/sort_select_cell.twig @@ -0,0 +1,9 @@ + + + diff --git a/srcs/phpmyadmin/templates/database/search/main.twig b/srcs/phpmyadmin/templates/database/search/main.twig new file mode 100644 index 0000000..45e5e71 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/search/main.twig @@ -0,0 +1,84 @@ + +
+ {{ get_hidden_inputs(db) }} +
+ {% trans 'Search in database' %} +

+ + +

+ +
+ {% trans 'Find:' %} + {# 4th parameter set to true to add line breaks #} + {# 5th parameter set to false to avoid htmlspecialchars() escaping + in the label since we have some HTML in some labels #} + {{ get_radio_fields( + 'criteriaSearchType', + choices, + criteria_search_type, + true, + false + ) }} +
+ +
+ {% trans 'Inside tables:' %} +

+ + {% trans 'Select all' %} + / + + {% trans 'Unselect all' %} + +

+ +
+ +

+ {# Inputbox for column name entry #} + + +

+
+
+ +
+
+
+ +
+
+
+
+{# These two table-image and table-link elements display the table name in browse search results #} +
+ +
+{# Div for browsing results #} +
+ {# This browse-results div is used to load the browse and delete results in the db search #} +
+
+ {# This sqlqueryform div is used to load the delete form in the db search #} +
+{# Toggle query box link #} + diff --git a/srcs/phpmyadmin/templates/database/search/results.twig b/srcs/phpmyadmin/templates/database/search/results.twig new file mode 100644 index 0000000..3d7a780 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/search/results.twig @@ -0,0 +1,62 @@ + + + {% for row in rows %} + + + {% if row.result_count > 0 %} + {% set url_params = { + 'db': db, + 'table': row.table, + 'goto': 'db_sql.php', + 'pos': 0, + 'is_js_confirmed': 0 + } %} + + + {% else %} + + + {% endif %} + + {% endfor %} +
+ {{ 'Search results for "%s" %s:'|format( + criteria_search_string, + search_type_description + )|raw }} +
+ {% set result_message %} + {% trans %} + %1$s match in %2$s + {% plural row.result_count %} + %1$s matches in %2$s + {% endtrans %} + {% endset %} + {{ result_message|format(row.result_count, row.table)|raw }} + + + {% trans 'Browse' %} + + + + {% trans 'Delete' %} + +
+ +{% if criteria_tables|length > 1 %} +

+ {% trans %} + Total: {{ count }} match + {% plural result_total %} + Total: {{ count }} matches + {% endtrans %} +

+{% endif %} diff --git a/srcs/phpmyadmin/templates/database/structure/body_for_table_summary.twig b/srcs/phpmyadmin/templates/database/structure/body_for_table_summary.twig new file mode 100644 index 0000000..8dcebdf --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/body_for_table_summary.twig @@ -0,0 +1,95 @@ + + + + + {% set num_tables_trans -%} + {% trans %}%s table{% plural num_tables %}%s tables{% endtrans %} + {%- endset %} + {{ num_tables_trans|format(format_number(num_tables, 0)) }} + + {% if server_slave_status %} + {% trans 'Replication' %} + {% endif %} + {% set sum_colspan = db_is_system_schema ? 4 : 7 %} + {% if num_favorite_tables == 0 %} + {% set sum_colspan = sum_colspan - 1 %} + {% endif %} + {% trans 'Sum' %} + {% set row_count_sum = format_number(sum_entries, 0) %} + {# If a table shows approximate rows count, display update-all-real-count anchor. #} + {% set row_sum_url = [] %} + {% if approx_rows is defined %} + {% set row_sum_url = { + 'ajax_request': true, + 'db': db, + 'real_row_count': 'true', + 'real_row_count_all': 'true' + } %} + {% endif %} + {% if approx_rows %} + {% set cell_text -%} + ~ + {{- row_count_sum -}} + + {%- endset %} + {% else %} + {% set cell_text = row_count_sum %} + {% endif %} + {{ cell_text }} + {% if not (properties_num_columns > 1) %} + {# MySQL <= 5.5.2 #} + {% set default_engine = dbi.fetchValue('SELECT @@storage_engine;') %} + {% if default_engine is empty %} + {# MySQL >= 5.5.3 #} + {% set default_engine = dbi.fetchValue('SELECT @@default_storage_engine;') %} + {% endif %} + + + {{ default_engine }} + + + + {% if database_collation is not empty %} + + {{ database_collation.name }} + + {% endif %} + + {% endif %} + + {% if is_show_stats %} + {% set sum = format_byte_down(sum_size, 3, 1) %} + {% set sum_formatted = sum[0] %} + {% set sum_unit = sum[1] %} + {{ sum_formatted }} {{ sum_unit }} + + {% set overhead = format_byte_down(overhead_size, 3, 1) %} + {% set overhead_formatted = overhead[0] %} + {% set overhead_unit = overhead[1] %} + {{ overhead_formatted }} {{ overhead_unit }} + {% endif %} + + {% if show_charset %} + {{ database_charset }} + {% endif %} + {% if show_comment %} + + {% endif %} + {% if show_creation %} + + {{ create_time_all }} + + {% endif %} + {% if show_last_update %} + + {{ update_time_all }} + + {% endif %} + {% if show_last_check %} + + {{ check_time_all }} + + {% endif %} + + diff --git a/srcs/phpmyadmin/templates/database/structure/check_all_tables.twig b/srcs/phpmyadmin/templates/database/structure/check_all_tables.twig new file mode 100644 index 0000000..7a4e7e9 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/check_all_tables.twig @@ -0,0 +1,40 @@ + diff --git a/srcs/phpmyadmin/templates/database/structure/favorite_anchor.twig b/srcs/phpmyadmin/templates/database/structure/favorite_anchor.twig new file mode 100644 index 0000000..91e002e --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/favorite_anchor.twig @@ -0,0 +1,7 @@ + + {{ already_favorite ? titles['Favorite']|raw : titles['NoFavorite']|raw }} + diff --git a/srcs/phpmyadmin/templates/database/structure/index.twig b/srcs/phpmyadmin/templates/database/structure/index.twig new file mode 100644 index 0000000..1632839 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/index.twig @@ -0,0 +1,24 @@ +{% if has_tables %} +
+ {{ list_navigator_html|raw }} + + {{ table_list_html|raw }} + + {{ list_navigator_html|raw }} +
+
+ +{% else %} + {{ 'No tables found in database.'|trans|notice }} +{% endif %} + +{% if not is_system_schema %} + {{ create_table_html|raw }} +{% endif %} diff --git a/srcs/phpmyadmin/templates/database/structure/show_create.twig b/srcs/phpmyadmin/templates/database/structure/show_create.twig new file mode 100644 index 0000000..520e974 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/show_create.twig @@ -0,0 +1,31 @@ +
+

{% trans 'Showing create queries' %}

+ {% set views = [] %} + {% set tables = [] %} + {% for object in db_objects %} + {% if dbi.getTable(db, object).isView() %} + {% set views = views|merge([object]) %} + {% else %} + {% set tables = tables|merge([object]) %} + {% endif %} + {% endfor %} + {% if tables is not empty %} + {% include 'database/structure/show_create_row.twig' with { + 'db': db, + 'title': 'Tables'|trans, + 'raw_title': 'Table', + 'db_objects': tables, + 'dbi': dbi + } only %} + {% endif %} + + {% if views is not empty %} + {% include 'database/structure/show_create_row.twig' with { + 'db': db, + 'title': 'Views'|trans, + 'raw_title': 'View', + 'db_objects': views, + 'dbi': dbi + } only %} + {% endif %} +
diff --git a/srcs/phpmyadmin/templates/database/structure/show_create_row.twig b/srcs/phpmyadmin/templates/database/structure/show_create_row.twig new file mode 100644 index 0000000..db18cdd --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/show_create_row.twig @@ -0,0 +1,19 @@ +
+ {{ title }} + + + + + + + + + {% for object in db_objects %} + + + + + {% endfor %} + +
{{ raw_title }}{{ 'Create %s'|trans|format(raw_title) }}
{{ object|mime_default_function }}{{ dbi.getTable(db, object).showCreate()|mime_default_function }}
+
diff --git a/srcs/phpmyadmin/templates/database/structure/structure_table_row.twig b/srcs/phpmyadmin/templates/database/structure/structure_table_row.twig new file mode 100644 index 0000000..b87ea48 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/structure_table_row.twig @@ -0,0 +1,223 @@ + + + + + + + {{ browse_table_label_truename }} + + {{ tracking_icon|raw }} + + {% if server_slave_status %} + + {{ ignored ? get_image('s_cancel', 'Not replicated'|trans) }} + {{ do ? get_image('s_success', 'Replicated'|trans) }} + + {% endif %} + + {# Favorite table anchor #} + {% if num_favorite_tables > 0 %} + + {# Check if current table is already in favorite list #} + {% set fav_params = { + 'db': db, + 'ajax_request': true, + 'favorite_table': current_table['TABLE_NAME'], + ((already_favorite ? 'remove' : 'add') ~ '_favorite'): true + } %} + {% include 'database/structure/favorite_anchor.twig' with { + 'table_name_hash': table_name_hash, + 'db_table_name_hash': db_table_name_hash, + 'fav_params': fav_params, + 'already_favorite': already_favorite, + 'titles': titles + } only %} + + {% endif %} + + + + {{ browse_table_title|raw }} + + + + + + {{ titles['Structure']|raw }} + + + + + {{ search_table_title|raw }} + + + + {% if not db_is_system_schema %} + + {{ titles['Insert']|raw }} + + {% if table_is_view %} + + {{ titles['Edit']|raw }} + + {% else %} + + + {{ empty_table_title|raw }} + + + {% endif %} + + + {{ titles['Drop']|raw }} + + + {% endif %} + + {% if current_table['TABLE_ROWS'] is defined + and (current_table['ENGINE'] != null or table_is_view) %} + {# Get the row count #} + {% set row_count = format_number(current_table['TABLE_ROWS'], 0) %} + + {# Content to be appended into 'tbl_rows' cell. + If row count is approximate, display it as an anchor to get real count. #} + + {% if approx_rows %} + + + ~{{ row_count }} + + + {% else %} + {{ row_count }} + {% endif %} + {{ show_superscript|raw }} + + + {% if not (properties_num_columns > 1) %} + + {% if current_table['ENGINE'] is not empty %} + {{ current_table['ENGINE'] }} + {% elseif table_is_view %} + {% trans 'View' %} + {% endif %} + + {% if collation|length > 0 %} + + {{ collation|raw }} + + {% endif %} + {% endif %} + + {% if is_show_stats %} + + + {{ formatted_size }} {{ unit }} + + + + {{ overhead|raw }} + + {% endif %} + + {% if not (show_charset > 1) %} + {% if charset|length > 0 %} + + {{ charset|raw }} + + {% endif %} + {% endif %} + + {% if show_comment %} + {% set comment = current_table['Comment'] %} + + {% if comment|length > limit_chars %} + + {{ comment|slice(0, limit_chars) }} + ... + + {% else %} + {{ comment }} + {% endif %} + + {% endif %} + + {% if show_creation %} + + {{ create_time }} + + {% endif %} + + {% if show_last_update %} + + {{ update_time }} + + {% endif %} + + {% if show_last_check %} + + {{ check_time }} + + {% endif %} + + {% elseif table_is_view %} + - + + {% trans 'View' %} + + --- + {% if is_show_stats %} + - + - + {% endif %} + {% if show_charset %} + + {% endif %} + {% if show_comment %} + + {% endif %} + {% if show_creation %} + - + {% endif %} + {% if show_last_update %} + - + {% endif %} + {% if show_last_check %} + - + {% endif %} + + {% else %} + + {% if db_is_system_schema %} + {% set action_colspan = 3 %} + {% else %} + {% set action_colspan = 6 %} + {% endif %} + {% if num_favorite_tables > 0 %} + {% set action_colspan = action_colspan + 1 %} + {% endif %} + + {% set colspan_for_structure = action_colspan + 3 %} + + {% trans 'in use' %} + + {% endif %} + diff --git a/srcs/phpmyadmin/templates/database/structure/table_header.twig b/srcs/phpmyadmin/templates/database/structure/table_header.twig new file mode 100644 index 0000000..e479f5e --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/table_header.twig @@ -0,0 +1,78 @@ +
+{{ get_hidden_inputs(db) }} +
+ + + + + + {% if replication %} + + {% endif %} + + {% if db_is_system_schema %} + {% set action_colspan = 3 %} + {% else %} + {% set action_colspan = 6 %} + {% endif %} + {% if num_favorite_tables > 0 %} + {% set action_colspan = action_colspan + 1 %} + {% endif %} + + {# larger values are more interesting so default sort order is DESC #} + + {% if not (properties_num_columns > 1) %} + + + {% endif %} + + {% if is_show_stats %} + {# larger values are more interesting so default sort order is DESC #} + + {# larger values are more interesting so default sort order is DESC #} + + {% endif %} + + {% if show_charset %} + + {% endif %} + + {% if show_comment %} + + {% endif %} + + {% if show_creation %} + {# newer values are more interesting so default sort order is DESC #} + + {% endif %} + + {% if show_last_update %} + {# newer values are more interesting so default sort order is DESC #} + + {% endif %} + + {% if show_last_check %} + {# newer values are more interesting so default sort order is DESC #} + + {% endif %} + + + + {% for structure_table_row in structure_table_rows %} + {% include 'database/structure/structure_table_row.twig' with structure_table_row only %} + {% endfor %} + + {% if body_for_table_summary %} + {% include 'database/structure/body_for_table_summary.twig' with body_for_table_summary only %} + {% endif %} +
{{ sortable_table_header('Table'|trans, 'table') }}{% trans 'Replication' %} + {% trans 'Action' %} + + {{ sortable_table_header('Rows'|trans, 'records', 'DESC') }} + {{ show_hint('May be approximate. Click on the number to get the exact count. See [doc@faq3-11]FAQ 3.11[/doc].'|trans|sanitize) }} + {{ sortable_table_header('Type'|trans, 'type') }}{{ sortable_table_header('Collation'|trans, 'collation') }}{{ sortable_table_header('Size'|trans, 'size', 'DESC') }}{{ sortable_table_header('Overhead'|trans, 'overhead', 'DESC') }}{{ sortable_table_header('Charset'|trans, 'charset') }}{{ sortable_table_header('Comment'|trans, 'comment') }}{{ sortable_table_header('Creation'|trans, 'creation', 'DESC') }}{{ sortable_table_header('Last update'|trans, 'last_update', 'DESC') }}{{ sortable_table_header('Last check'|trans, 'last_check', 'DESC') }}
+
+{% if check_all_tables %} + {% include 'database/structure/check_all_tables.twig' with check_all_tables only %} +{% endif %} +
diff --git a/srcs/phpmyadmin/templates/database/structure/tracking_icon.twig b/srcs/phpmyadmin/templates/database/structure/tracking_icon.twig new file mode 100644 index 0000000..b09c9bb --- /dev/null +++ b/srcs/phpmyadmin/templates/database/structure/tracking_icon.twig @@ -0,0 +1,7 @@ + + {% if is_tracked -%} + {{ get_image('eye', 'Tracking is active.'|trans) }} + {%- else -%} + {{ get_image('eye_grey', 'Tracking is not active.'|trans) }} + {%- endif %} + diff --git a/srcs/phpmyadmin/templates/database/tracking/tables.twig b/srcs/phpmyadmin/templates/database/tracking/tables.twig new file mode 100644 index 0000000..7f95947 --- /dev/null +++ b/srcs/phpmyadmin/templates/database/tracking/tables.twig @@ -0,0 +1,161 @@ +{# Tracked tables exists#} +{% if head_version_exists %} +
+

{% trans 'Tracked tables' %}

+ +
+ {{ get_hidden_inputs(db) }} + + + + + + + + + + + + + + + {% for version in versions %} + + + + + + + + + + + {% endfor %} + +
{% trans 'Table' %}{% trans 'Last version' %}{% trans 'Created' %}{% trans 'Updated' %}{% trans 'Status' %}{% trans 'Action' %}{% trans 'Show' %}
+ + + + + {{ version.version }} + + {{ version.date_created }} + + {{ version.date_updated }} + + {{ version.status_button|raw }} + + + {{ get_icon('b_drop', 'Delete tracking'|trans) }} + + + + {{ get_icon('b_versions', 'Versions'|trans) }} + + + {{ get_icon('b_report', 'Tracking report'|trans) }} + + + {{ get_icon('b_props', 'Structure snapshot'|trans) }} + +
+ {% include 'select_all.twig' with { + 'pma_theme_image': pma_theme_image, + 'text_dir': text_dir, + 'form_name': 'trackedForm' + } only %} + {{ get_button_or_image( + 'submit_mult', + 'mult_submit', + 'Delete tracking'|trans, + 'b_drop', + 'delete_tracking' + ) }} +
+
+{% endif %} +{% if untracked_tables_exists %} +

{% trans 'Untracked tables' %}

+
+ {{ get_hidden_inputs(db) }} + + + + + + + + + + {% for table_name in untracked_tables %} + {% if get_tracker_version(db, table_name) == -1 %} + + + + + + {% endif %} + {% endfor %} + +
{% trans 'Table' %}{% trans 'Action' %}
+ + + + + + {{ get_icon('eye', 'Track table'|trans) }} + +
+ {% include 'select_all.twig' with { + 'pma_theme_image': pma_theme_image, + 'text_dir': text_dir, + 'form_name': 'untrackedForm' + } only %} + {{ get_button_or_image( + 'submit_mult', + 'mult_submit', + 'Track table'|trans, + 'eye', + 'track' + ) }} +
+{% endif %} -- cgit