From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- srcs/phpmyadmin/templates/changelog.twig | 15 + srcs/phpmyadmin/templates/checkbox.twig | 6 + .../column_adjust_privileges.twig | 16 + .../columns_definitions/column_attribute.twig | 21 + .../columns_definitions/column_attributes.twig | 246 +++++ .../columns_definitions/column_auto_increment.twig | 7 + .../columns_definitions/column_comment.twig | 6 + .../columns_definitions/column_default.twig | 35 + .../column_definitions_form.twig | 155 +++ .../columns_definitions/column_extra.twig | 7 + .../columns_definitions/column_indexes.twig | 24 + .../columns_definitions/column_length.twig | 11 + .../templates/columns_definitions/column_name.twig | 42 + .../templates/columns_definitions/column_null.twig | 8 + .../templates/columns_definitions/column_type.twig | 8 + .../columns_definitions/column_virtuality.twig | 32 + .../templates/columns_definitions/mime_type.twig | 17 + .../templates/columns_definitions/move_column.twig | 15 + .../templates/columns_definitions/partitions.twig | 180 ++++ .../table_fields_definitions.twig | 122 +++ .../columns_definitions/transformation.twig | 26 + .../columns_definitions/transformation_option.twig | 9 + .../templates/components/error_message.twig | 4 + .../templates/config/form_display/errors.twig | 6 + .../config/form_display/fieldset_bottom.twig | 14 + .../config/form_display/fieldset_top.twig | 17 + .../templates/config/form_display/form_bottom.twig | 1 + .../config/form_display/group_header.twig | 5 + .../templates/config/form_display/tabs_bottom.twig | 1 + .../templates/console/bookmark_content.twig | 25 + srcs/phpmyadmin/templates/console/display.twig | 192 ++++ .../phpmyadmin/templates/console/query_action.twig | 12 + srcs/phpmyadmin/templates/console/toolbar.twig | 10 + .../templates/create_tracking_version.twig | 79 ++ .../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 +++ .../templates/display/export/format_dropdown.twig | 4 + .../templates/display/export/hidden_inputs.twig | 23 + .../templates/display/export/method.twig | 22 + .../templates/display/export/option_header.twig | 12 + .../templates/display/export/options_format.twig | 24 + .../templates/display/export/options_output.twig | 54 + .../display/export/options_output_charset.twig | 16 + .../display/export/options_output_compression.twig | 24 + .../display/export/options_output_format.twig | 13 + .../display/export/options_output_radio.twig | 7 + .../display/export/options_output_save_dir.twig | 15 + .../export/options_output_separate_files.twig | 12 + .../display/export/options_quick_export.twig | 20 + .../templates/display/export/options_rows.twig | 35 + .../templates/display/export/select_options.twig | 19 + .../templates/display/export/selection.twig | 10 + .../templates/display/export/template_loading.twig | 27 + .../templates/display/export/template_options.twig | 7 + .../templates/display/import/import.twig | 195 ++++ .../templates/display/import/javascript.twig | 162 +++ .../templates/display/results/comment_for_row.twig | 10 + .../results/data_for_resetting_column_order.twig | 9 + .../templates/display/results/empty_display.twig | 1 + .../templates/display/results/null_display.twig | 7 + .../templates/display/results/options_block.twig | 121 +++ .../templates/display/results/page_selector.twig | 6 + .../templates/display/results/sort_by_key.twig | 9 + .../templates/display/results/table.twig | 11 + .../templates/display/results/table_headers.twig | 23 + .../display/results/table_navigation.twig | 82 ++ .../display/results/table_navigation_button.twig | 12 + .../templates/display/results/value_display.twig | 3 + .../templates/div_for_slider_effect.twig | 16 + srcs/phpmyadmin/templates/dropdown.twig | 11 + .../templates/encoding/kanji_encoding_form.twig | 20 + srcs/phpmyadmin/templates/error/generic.twig | 40 + srcs/phpmyadmin/templates/error/report_form.twig | 32 + srcs/phpmyadmin/templates/export/alias_add.twig | 49 + srcs/phpmyadmin/templates/export/alias_item.twig | 10 + srcs/phpmyadmin/templates/filter.twig | 8 + srcs/phpmyadmin/templates/fk_checkbox.twig | 4 + srcs/phpmyadmin/templates/footer.twig | 24 + .../phpmyadmin/templates/gis_data_editor_form.twig | 221 ++++ srcs/phpmyadmin/templates/header.twig | 66 ++ srcs/phpmyadmin/templates/header_location.twig | 22 + srcs/phpmyadmin/templates/home/index.twig | 203 ++++ srcs/phpmyadmin/templates/javascript/display.twig | 7 + srcs/phpmyadmin/templates/list/item.twig | 19 + srcs/phpmyadmin/templates/list/unordered.twig | 14 + srcs/phpmyadmin/templates/login/footer.twig | 4 + srcs/phpmyadmin/templates/login/header.twig | 16 + srcs/phpmyadmin/templates/login/twofactor.twig | 7 + .../templates/login/twofactor/application.twig | 4 + .../login/twofactor/application_configure.twig | 17 + .../templates/login/twofactor/invalid.twig | 3 + .../login/twofactor/key-https-warning.twig | 5 + srcs/phpmyadmin/templates/login/twofactor/key.twig | 5 + .../templates/login/twofactor/key_configure.twig | 5 + .../templates/login/twofactor/simple.twig | 1 + .../templates/navigation/item_unhide_dialog.twig | 29 + srcs/phpmyadmin/templates/navigation/main.twig | 98 ++ .../templates/navigation/tree/database_select.twig | 22 + .../phpmyadmin/templates/navigation/tree/path.twig | 12 + .../templates/navigation/tree/state.twig | 16 + .../phpmyadmin/templates/preferences/autoload.twig | 15 + .../templates/preferences/forms/main.twig | 8 + .../templates/preferences/manage/error.twig | 20 + .../templates/preferences/manage/main.twig | 112 ++ .../preferences/two_factor/configure.twig | 11 + .../templates/preferences/two_factor/confirm.twig | 12 + .../templates/preferences/two_factor/main.twig | 60 ++ srcs/phpmyadmin/templates/preview_sql.twig | 11 + srcs/phpmyadmin/templates/radio_fields.twig | 11 + .../templates/rte/routines/parameter_row.twig | 54 + srcs/phpmyadmin/templates/scripts.twig | 24 + srcs/phpmyadmin/templates/secondary_tabs.twig | 6 + srcs/phpmyadmin/templates/select_all.twig | 6 + srcs/phpmyadmin/templates/select_lang.twig | 32 + srcs/phpmyadmin/templates/server/binlog/index.twig | 107 ++ .../templates/server/collations/index.twig | 32 + .../templates/server/databases/index.twig | 323 ++++++ .../phpmyadmin/templates/server/engines/index.twig | 27 + srcs/phpmyadmin/templates/server/engines/show.twig | 48 + .../phpmyadmin/templates/server/plugins/index.twig | 58 + .../server/privileges/add_user_fieldset.twig | 8 + .../server/privileges/choose_user_group.twig | 9 + .../server/privileges/column_privileges.twig | 24 + .../server/privileges/delete_user_fieldset.twig | 17 + .../server/privileges/edit_routine_privileges.twig | 26 + .../server/privileges/global_priv_table.twig | 22 + .../templates/server/privileges/initials_row.twig | 26 + .../server/privileges/privileges_summary.twig | 104 ++ .../server/privileges/require_options.twig | 32 + .../server/privileges/resource_limits.twig | 21 + .../server/replication/change_master.twig | 35 + .../server/replication/database_multibox.twig | 9 + .../templates/server/replication/index.twig | 36 + .../server/replication/master_add_slave_user.twig | 84 ++ .../server/replication/master_configuration.twig | 32 + .../server/replication/master_replication.twig | 52 + .../server/replication/slave_configuration.twig | 109 ++ .../templates/server/replication/status_table.twig | 34 + .../templates/server/status/advisor/index.twig | 39 + srcs/phpmyadmin/templates/server/status/base.twig | 39 + .../templates/server/status/monitor/index.twig | 268 +++++ .../templates/server/status/processes/index.twig | 53 + .../templates/server/status/processes/list.twig | 65 ++ .../templates/server/status/queries/index.twig | 56 + .../templates/server/status/status/index.twig | 78 ++ .../templates/server/status/variables/index.twig | 137 +++ .../templates/server/sub_page_header.twig | 16 + .../templates/server/variables/index.twig | 78 ++ srcs/phpmyadmin/templates/setup/base.twig | 48 + srcs/phpmyadmin/templates/setup/config/index.twig | 29 + srcs/phpmyadmin/templates/setup/error.twig | 19 + srcs/phpmyadmin/templates/setup/form/index.twig | 8 + srcs/phpmyadmin/templates/setup/home/index.twig | 121 +++ srcs/phpmyadmin/templates/setup/servers/index.twig | 16 + srcs/phpmyadmin/templates/sql/bookmark.twig | 31 + srcs/phpmyadmin/templates/sql/detailed_table.twig | 8 + .../templates/sql/enum_column_dropdown.twig | 6 + srcs/phpmyadmin/templates/sql/profiling_chart.twig | 97 ++ .../templates/sql/relational_column_dropdown.twig | 4 + srcs/phpmyadmin/templates/sql/set_column.twig | 5 + .../templates/sql/sql_query_results.twig | 10 + .../templates/start_and_number_of_rows_panel.twig | 20 + .../table/browse_foreigners/column_element.twig | 12 + .../table/browse_foreigners/show_all.twig | 5 + .../templates/table/chart/tbl_chart.twig | 159 +++ .../table/gis_visualization/gis_visualization.twig | 80 ++ srcs/phpmyadmin/templates/table/index_form.twig | 223 ++++ .../table/insert/continue_insertion_form.twig | 19 + .../templates/table/operations/view.twig | 31 + .../templates/table/page_with_secondary_tabs.twig | 22 + .../templates/table/relation/common_form.twig | 223 ++++ .../table/relation/dropdown_generate.twig | 9 + .../templates/table/relation/foreign_key_row.twig | 136 +++ .../table/relation/relational_dropdown.twig | 18 + .../table/search/column_comparison_operators.twig | 3 + .../templates/table/search/fields_table.twig | 33 + .../templates/table/search/form_tag.twig | 4 + .../templates/table/search/geom_func.twig | 19 + .../templates/table/search/input_box.twig | 97 ++ .../templates/table/search/replace_preview.twig | 39 + .../templates/table/search/rows_normal.twig | 39 + .../templates/table/search/rows_zoom.twig | 74 ++ .../templates/table/search/selection_form.twig | 226 ++++ .../templates/table/search/zoom_result_form.twig | 86 ++ .../structure/action_row_in_structure_table.twig | 31 + .../table/structure/display_partitions.twig | 145 +++ .../table/structure/display_structure.twig | 516 +++++++++ .../table/structure/display_table_stats.twig | 169 +++ .../table/structure/partition_definition_form.twig | 14 + srcs/phpmyadmin/templates/table/tracking/main.twig | 132 +++ .../templates/table/tracking/report_table.twig | 27 + .../table/tracking/structure_snapshot_columns.twig | 56 + .../table/tracking/structure_snapshot_indexes.twig | 33 + srcs/phpmyadmin/templates/test/add_data.twig | 2 + srcs/phpmyadmin/templates/test/echo.twig | 1 + .../phpmyadmin/templates/test/gettext/gettext.twig | 1 + srcs/phpmyadmin/templates/test/gettext/notes.twig | 5 + .../templates/test/gettext/pgettext.twig | 5 + srcs/phpmyadmin/templates/test/gettext/plural.twig | 5 + .../templates/test/gettext/plural_notes.twig | 7 + srcs/phpmyadmin/templates/test/static.twig | 1 + srcs/phpmyadmin/templates/theme_preview.twig | 16 + srcs/phpmyadmin/templates/themes.twig | 7 + srcs/phpmyadmin/templates/toggle_button.twig | 24 + .../templates/transformation_overview.twig | 49 + srcs/phpmyadmin/templates/view_create.twig | 120 +++ 231 files changed, 12081 insertions(+) create mode 100644 srcs/phpmyadmin/templates/changelog.twig create mode 100644 srcs/phpmyadmin/templates/checkbox.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_adjust_privileges.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_attribute.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_attributes.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_auto_increment.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_comment.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_default.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_definitions_form.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_extra.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_indexes.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_length.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_name.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_null.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_type.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/column_virtuality.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/mime_type.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/move_column.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/partitions.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/table_fields_definitions.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/transformation.twig create mode 100644 srcs/phpmyadmin/templates/columns_definitions/transformation_option.twig create mode 100644 srcs/phpmyadmin/templates/components/error_message.twig create mode 100644 srcs/phpmyadmin/templates/config/form_display/errors.twig create mode 100644 srcs/phpmyadmin/templates/config/form_display/fieldset_bottom.twig create mode 100644 srcs/phpmyadmin/templates/config/form_display/fieldset_top.twig create mode 100644 srcs/phpmyadmin/templates/config/form_display/form_bottom.twig create mode 100644 srcs/phpmyadmin/templates/config/form_display/group_header.twig create mode 100644 srcs/phpmyadmin/templates/config/form_display/tabs_bottom.twig create mode 100644 srcs/phpmyadmin/templates/console/bookmark_content.twig create mode 100644 srcs/phpmyadmin/templates/console/display.twig create mode 100644 srcs/phpmyadmin/templates/console/query_action.twig create mode 100644 srcs/phpmyadmin/templates/console/toolbar.twig create mode 100644 srcs/phpmyadmin/templates/create_tracking_version.twig 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 create mode 100644 srcs/phpmyadmin/templates/display/export/format_dropdown.twig create mode 100644 srcs/phpmyadmin/templates/display/export/hidden_inputs.twig create mode 100644 srcs/phpmyadmin/templates/display/export/method.twig create mode 100644 srcs/phpmyadmin/templates/display/export/option_header.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_format.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_output.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_output_charset.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_output_compression.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_output_format.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_output_radio.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_output_save_dir.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_output_separate_files.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_quick_export.twig create mode 100644 srcs/phpmyadmin/templates/display/export/options_rows.twig create mode 100644 srcs/phpmyadmin/templates/display/export/select_options.twig create mode 100644 srcs/phpmyadmin/templates/display/export/selection.twig create mode 100644 srcs/phpmyadmin/templates/display/export/template_loading.twig create mode 100644 srcs/phpmyadmin/templates/display/export/template_options.twig create mode 100644 srcs/phpmyadmin/templates/display/import/import.twig create mode 100644 srcs/phpmyadmin/templates/display/import/javascript.twig create mode 100644 srcs/phpmyadmin/templates/display/results/comment_for_row.twig create mode 100644 srcs/phpmyadmin/templates/display/results/data_for_resetting_column_order.twig create mode 100644 srcs/phpmyadmin/templates/display/results/empty_display.twig create mode 100644 srcs/phpmyadmin/templates/display/results/null_display.twig create mode 100644 srcs/phpmyadmin/templates/display/results/options_block.twig create mode 100644 srcs/phpmyadmin/templates/display/results/page_selector.twig create mode 100644 srcs/phpmyadmin/templates/display/results/sort_by_key.twig create mode 100644 srcs/phpmyadmin/templates/display/results/table.twig create mode 100644 srcs/phpmyadmin/templates/display/results/table_headers.twig create mode 100644 srcs/phpmyadmin/templates/display/results/table_navigation.twig create mode 100644 srcs/phpmyadmin/templates/display/results/table_navigation_button.twig create mode 100644 srcs/phpmyadmin/templates/display/results/value_display.twig create mode 100644 srcs/phpmyadmin/templates/div_for_slider_effect.twig create mode 100644 srcs/phpmyadmin/templates/dropdown.twig create mode 100644 srcs/phpmyadmin/templates/encoding/kanji_encoding_form.twig create mode 100644 srcs/phpmyadmin/templates/error/generic.twig create mode 100644 srcs/phpmyadmin/templates/error/report_form.twig create mode 100644 srcs/phpmyadmin/templates/export/alias_add.twig create mode 100644 srcs/phpmyadmin/templates/export/alias_item.twig create mode 100644 srcs/phpmyadmin/templates/filter.twig create mode 100644 srcs/phpmyadmin/templates/fk_checkbox.twig create mode 100644 srcs/phpmyadmin/templates/footer.twig create mode 100644 srcs/phpmyadmin/templates/gis_data_editor_form.twig create mode 100644 srcs/phpmyadmin/templates/header.twig create mode 100644 srcs/phpmyadmin/templates/header_location.twig create mode 100644 srcs/phpmyadmin/templates/home/index.twig create mode 100644 srcs/phpmyadmin/templates/javascript/display.twig create mode 100644 srcs/phpmyadmin/templates/list/item.twig create mode 100644 srcs/phpmyadmin/templates/list/unordered.twig create mode 100644 srcs/phpmyadmin/templates/login/footer.twig create mode 100644 srcs/phpmyadmin/templates/login/header.twig create mode 100644 srcs/phpmyadmin/templates/login/twofactor.twig create mode 100644 srcs/phpmyadmin/templates/login/twofactor/application.twig create mode 100644 srcs/phpmyadmin/templates/login/twofactor/application_configure.twig create mode 100644 srcs/phpmyadmin/templates/login/twofactor/invalid.twig create mode 100644 srcs/phpmyadmin/templates/login/twofactor/key-https-warning.twig create mode 100644 srcs/phpmyadmin/templates/login/twofactor/key.twig create mode 100644 srcs/phpmyadmin/templates/login/twofactor/key_configure.twig create mode 100644 srcs/phpmyadmin/templates/login/twofactor/simple.twig create mode 100644 srcs/phpmyadmin/templates/navigation/item_unhide_dialog.twig create mode 100644 srcs/phpmyadmin/templates/navigation/main.twig create mode 100644 srcs/phpmyadmin/templates/navigation/tree/database_select.twig create mode 100644 srcs/phpmyadmin/templates/navigation/tree/path.twig create mode 100644 srcs/phpmyadmin/templates/navigation/tree/state.twig create mode 100644 srcs/phpmyadmin/templates/preferences/autoload.twig create mode 100644 srcs/phpmyadmin/templates/preferences/forms/main.twig create mode 100644 srcs/phpmyadmin/templates/preferences/manage/error.twig create mode 100644 srcs/phpmyadmin/templates/preferences/manage/main.twig create mode 100644 srcs/phpmyadmin/templates/preferences/two_factor/configure.twig create mode 100644 srcs/phpmyadmin/templates/preferences/two_factor/confirm.twig create mode 100644 srcs/phpmyadmin/templates/preferences/two_factor/main.twig create mode 100644 srcs/phpmyadmin/templates/preview_sql.twig create mode 100644 srcs/phpmyadmin/templates/radio_fields.twig create mode 100644 srcs/phpmyadmin/templates/rte/routines/parameter_row.twig create mode 100644 srcs/phpmyadmin/templates/scripts.twig create mode 100644 srcs/phpmyadmin/templates/secondary_tabs.twig create mode 100644 srcs/phpmyadmin/templates/select_all.twig create mode 100644 srcs/phpmyadmin/templates/select_lang.twig create mode 100644 srcs/phpmyadmin/templates/server/binlog/index.twig create mode 100644 srcs/phpmyadmin/templates/server/collations/index.twig create mode 100644 srcs/phpmyadmin/templates/server/databases/index.twig create mode 100644 srcs/phpmyadmin/templates/server/engines/index.twig create mode 100644 srcs/phpmyadmin/templates/server/engines/show.twig create mode 100644 srcs/phpmyadmin/templates/server/plugins/index.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/add_user_fieldset.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/choose_user_group.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/column_privileges.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/delete_user_fieldset.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/edit_routine_privileges.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/global_priv_table.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/initials_row.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/privileges_summary.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/require_options.twig create mode 100644 srcs/phpmyadmin/templates/server/privileges/resource_limits.twig create mode 100644 srcs/phpmyadmin/templates/server/replication/change_master.twig create mode 100644 srcs/phpmyadmin/templates/server/replication/database_multibox.twig create mode 100644 srcs/phpmyadmin/templates/server/replication/index.twig create mode 100644 srcs/phpmyadmin/templates/server/replication/master_add_slave_user.twig create mode 100644 srcs/phpmyadmin/templates/server/replication/master_configuration.twig create mode 100644 srcs/phpmyadmin/templates/server/replication/master_replication.twig create mode 100644 srcs/phpmyadmin/templates/server/replication/slave_configuration.twig create mode 100644 srcs/phpmyadmin/templates/server/replication/status_table.twig create mode 100644 srcs/phpmyadmin/templates/server/status/advisor/index.twig create mode 100644 srcs/phpmyadmin/templates/server/status/base.twig create mode 100644 srcs/phpmyadmin/templates/server/status/monitor/index.twig create mode 100644 srcs/phpmyadmin/templates/server/status/processes/index.twig create mode 100644 srcs/phpmyadmin/templates/server/status/processes/list.twig create mode 100644 srcs/phpmyadmin/templates/server/status/queries/index.twig create mode 100644 srcs/phpmyadmin/templates/server/status/status/index.twig create mode 100644 srcs/phpmyadmin/templates/server/status/variables/index.twig create mode 100644 srcs/phpmyadmin/templates/server/sub_page_header.twig create mode 100644 srcs/phpmyadmin/templates/server/variables/index.twig create mode 100644 srcs/phpmyadmin/templates/setup/base.twig create mode 100644 srcs/phpmyadmin/templates/setup/config/index.twig create mode 100644 srcs/phpmyadmin/templates/setup/error.twig create mode 100644 srcs/phpmyadmin/templates/setup/form/index.twig create mode 100644 srcs/phpmyadmin/templates/setup/home/index.twig create mode 100644 srcs/phpmyadmin/templates/setup/servers/index.twig create mode 100644 srcs/phpmyadmin/templates/sql/bookmark.twig create mode 100644 srcs/phpmyadmin/templates/sql/detailed_table.twig create mode 100644 srcs/phpmyadmin/templates/sql/enum_column_dropdown.twig create mode 100644 srcs/phpmyadmin/templates/sql/profiling_chart.twig create mode 100644 srcs/phpmyadmin/templates/sql/relational_column_dropdown.twig create mode 100644 srcs/phpmyadmin/templates/sql/set_column.twig create mode 100644 srcs/phpmyadmin/templates/sql/sql_query_results.twig create mode 100644 srcs/phpmyadmin/templates/start_and_number_of_rows_panel.twig create mode 100644 srcs/phpmyadmin/templates/table/browse_foreigners/column_element.twig create mode 100644 srcs/phpmyadmin/templates/table/browse_foreigners/show_all.twig create mode 100644 srcs/phpmyadmin/templates/table/chart/tbl_chart.twig create mode 100644 srcs/phpmyadmin/templates/table/gis_visualization/gis_visualization.twig create mode 100644 srcs/phpmyadmin/templates/table/index_form.twig create mode 100644 srcs/phpmyadmin/templates/table/insert/continue_insertion_form.twig create mode 100644 srcs/phpmyadmin/templates/table/operations/view.twig create mode 100644 srcs/phpmyadmin/templates/table/page_with_secondary_tabs.twig create mode 100644 srcs/phpmyadmin/templates/table/relation/common_form.twig create mode 100644 srcs/phpmyadmin/templates/table/relation/dropdown_generate.twig create mode 100644 srcs/phpmyadmin/templates/table/relation/foreign_key_row.twig create mode 100644 srcs/phpmyadmin/templates/table/relation/relational_dropdown.twig create mode 100644 srcs/phpmyadmin/templates/table/search/column_comparison_operators.twig create mode 100644 srcs/phpmyadmin/templates/table/search/fields_table.twig create mode 100644 srcs/phpmyadmin/templates/table/search/form_tag.twig create mode 100644 srcs/phpmyadmin/templates/table/search/geom_func.twig create mode 100644 srcs/phpmyadmin/templates/table/search/input_box.twig create mode 100644 srcs/phpmyadmin/templates/table/search/replace_preview.twig create mode 100644 srcs/phpmyadmin/templates/table/search/rows_normal.twig create mode 100644 srcs/phpmyadmin/templates/table/search/rows_zoom.twig create mode 100644 srcs/phpmyadmin/templates/table/search/selection_form.twig create mode 100644 srcs/phpmyadmin/templates/table/search/zoom_result_form.twig create mode 100644 srcs/phpmyadmin/templates/table/structure/action_row_in_structure_table.twig create mode 100644 srcs/phpmyadmin/templates/table/structure/display_partitions.twig create mode 100644 srcs/phpmyadmin/templates/table/structure/display_structure.twig create mode 100644 srcs/phpmyadmin/templates/table/structure/display_table_stats.twig create mode 100644 srcs/phpmyadmin/templates/table/structure/partition_definition_form.twig create mode 100644 srcs/phpmyadmin/templates/table/tracking/main.twig create mode 100644 srcs/phpmyadmin/templates/table/tracking/report_table.twig create mode 100644 srcs/phpmyadmin/templates/table/tracking/structure_snapshot_columns.twig create mode 100644 srcs/phpmyadmin/templates/table/tracking/structure_snapshot_indexes.twig create mode 100644 srcs/phpmyadmin/templates/test/add_data.twig create mode 100644 srcs/phpmyadmin/templates/test/echo.twig create mode 100644 srcs/phpmyadmin/templates/test/gettext/gettext.twig create mode 100644 srcs/phpmyadmin/templates/test/gettext/notes.twig create mode 100644 srcs/phpmyadmin/templates/test/gettext/pgettext.twig create mode 100644 srcs/phpmyadmin/templates/test/gettext/plural.twig create mode 100644 srcs/phpmyadmin/templates/test/gettext/plural_notes.twig create mode 100644 srcs/phpmyadmin/templates/test/static.twig create mode 100644 srcs/phpmyadmin/templates/theme_preview.twig create mode 100644 srcs/phpmyadmin/templates/themes.twig create mode 100644 srcs/phpmyadmin/templates/toggle_button.twig create mode 100644 srcs/phpmyadmin/templates/transformation_overview.twig create mode 100644 srcs/phpmyadmin/templates/view_create.twig (limited to 'srcs/phpmyadmin/templates') diff --git a/srcs/phpmyadmin/templates/changelog.twig b/srcs/phpmyadmin/templates/changelog.twig new file mode 100644 index 0000000..cdda84f --- /dev/null +++ b/srcs/phpmyadmin/templates/changelog.twig @@ -0,0 +1,15 @@ + + + + + + + + + phpMyAdmin - ChangeLog + + +

phpMyAdmin - ChangeLog

+
{{ changelog|raw }}
+ + diff --git a/srcs/phpmyadmin/templates/checkbox.twig b/srcs/phpmyadmin/templates/checkbox.twig new file mode 100644 index 0000000..2b29f7e --- /dev/null +++ b/srcs/phpmyadmin/templates/checkbox.twig @@ -0,0 +1,6 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_adjust_privileges.twig b/srcs/phpmyadmin/templates/columns_definitions/column_adjust_privileges.twig new file mode 100644 index 0000000..d0d1e91 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_adjust_privileges.twig @@ -0,0 +1,16 @@ +{% if privs_available %} + +{% else %} + +{% endif %} diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_attribute.twig b/srcs/phpmyadmin/templates/columns_definitions/column_attribute.twig new file mode 100644 index 0000000..905d093 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_attribute.twig @@ -0,0 +1,21 @@ +{% if submit_attribute is defined and submit_attribute != false %} + {% set attribute = submit_attribute %} +{% elseif column_meta['Extra'] is defined + and column_meta['Extra'] == 'on update CURRENT_TIMESTAMP' %} + {% set attribute = 'on update CURRENT_TIMESTAMP' %} +{% elseif extracted_columnspec['attribute'] is defined %} + {% set attribute = extracted_columnspec['attribute'] %} +{% else %} + {% set attribute = '' %} +{% endif %} +{% set attribute = attribute|upper %} + diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_attributes.twig b/srcs/phpmyadmin/templates/columns_definitions/column_attributes.twig new file mode 100644 index 0000000..89eef86 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_attributes.twig @@ -0,0 +1,246 @@ +{# Cell index: If certain fields get left out, the counter shouldn't change. #} +{% set ci = 0 %} + +{# Every time a cell shall be left out the STRG-jumping feature, $ci_offset has + to be incremented ($ci_offset++) #} +{% set ci_offset = -1 %} + + + {# column name #} + {% include 'columns_definitions/column_name.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'cfg_relation': cfg_relation, + 'max_rows': max_rows + } only %} + {% set ci = ci + 1 %} + + + {# column type #} + {% include 'columns_definitions/column_type.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'type_upper': type_upper + } only %} + {% set ci = ci + 1 %} + + + {# column length #} + {% include 'columns_definitions/column_length.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'length_values_input_size': length_values_input_size, + 'length_to_display': length + } only %} + {% set ci = ci + 1 %} + + + {# column default #} + {% include 'columns_definitions/column_default.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'type_upper': type_upper, + 'default_value': default_value, + 'char_editing': char_editing + } only %} + {% set ci = ci + 1 %} + + + {# column collation #} + + {% set ci = ci + 1 %} + + + {# column attribute #} + {% include 'columns_definitions/column_attribute.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'extracted_columnspec': extracted_columnspec, + 'submit_attribute': submit_attribute, + 'attribute_types': attribute_types + } only %} + {% set ci = ci + 1 %} + + + {# column NULL #} + {% include 'columns_definitions/column_null.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta + } only %} + {% set ci = ci + 1 %} + +{% if change_column is defined and change_column is not empty %} + {# column Adjust privileges, Only for 'Edit' Column(s) #} + + {% include 'columns_definitions/column_adjust_privileges.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'privs_available': privs_available + } only %} + {% set ci = ci + 1 %} + +{% endif %} +{% if not is_backup %} + {# column indexes, See my other comment about this 'if'. #} + + {% include 'columns_definitions/column_indexes.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta + } only %} + {% set ci = ci + 1 %} + +{% endif %} + + {# column auto_increment #} + {% include 'columns_definitions/column_auto_increment.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta + } only %} + {% set ci = ci + 1 %} + + + {# column comments #} + {% include 'columns_definitions/column_comment.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'max_length': max_length, + 'value': column_meta['Field'] is defined + and comments_map is iterable + and comments_map[column_meta['Field']] is defined + ? comments_map[column_meta['Field']]|e + } only %} + {% set ci = ci + 1 %} + + {# column virtuality #} +{% if is_virtual_columns_supported %} + + {% include 'columns_definitions/column_virtuality.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'char_editing': char_editing, + 'expression': column_meta['Expression'] is defined ? column_meta['Expression'], + 'options': options + } only %} + {% set ci = ci + 1 %} + +{% endif %} +{# move column #} +{% if fields_meta is defined %} + {% set current_index = 0 %} + {% set cols = move_columns|length - 1 %} + {% set break = false %} + {% for mi in 0..cols %} + {% if move_columns[mi].name == column_meta['Field'] and not break %} + {% set current_index = mi %} + {% set break = true %} + {% endif %} + {% endfor %} + + + {% include 'columns_definitions/move_column.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'move_columns': move_columns, + 'current_index': current_index + } only %} + {% set ci = ci + 1 %} + +{% endif %} + +{% if cfg_relation['mimework'] and browse_mime and cfg_relation['commwork'] %} + + {# Column Mime-type #} + {% include 'columns_definitions/mime_type.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'available_mime': available_mime, + 'mime_map': mime_map + } only %} + {% set ci = ci + 1 %} + + + {# Column Browser transformation #} + {% include 'columns_definitions/transformation.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'available_mime': available_mime, + 'mime_map': mime_map, + 'type': 'transformation' + } only %} + {% set ci = ci + 1 %} + + + {# column Transformation options #} + {% include 'columns_definitions/transformation_option.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'mime_map': mime_map, + 'type_prefix': '' + } only %} + {% set ci = ci + 1 %} + + + {# Column Input transformation #} + {% include 'columns_definitions/transformation.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'available_mime': available_mime, + 'mime_map': mime_map, + 'type': 'input_transformation' + } only %} + {% set ci = ci + 1 %} + + + {# column Input transformation options #} + {% include 'columns_definitions/transformation_option.twig' with { + 'column_number': column_number, + 'ci': ci, + 'ci_offset': ci_offset, + 'column_meta': column_meta, + 'mime_map': mime_map, + 'type_prefix': 'input_' + } only %} + {% set ci = ci + 1 %} + +{% endif %} diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_auto_increment.twig b/srcs/phpmyadmin/templates/columns_definitions/column_auto_increment.twig new file mode 100644 index 0000000..46bfb42 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_auto_increment.twig @@ -0,0 +1,7 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_comment.twig b/srcs/phpmyadmin/templates/columns_definitions/column_comment.twig new file mode 100644 index 0000000..653441b --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_comment.twig @@ -0,0 +1,6 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_default.twig b/srcs/phpmyadmin/templates/columns_definitions/column_default.twig new file mode 100644 index 0000000..dcb6644 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_default.twig @@ -0,0 +1,35 @@ +{# here we put 'NONE' as the default value of drop-down; otherwise users would +have problems if they forget to enter the default value (example, for an INT) #} +{% set translation %}{% trans %}None{% context %}for default{% endtrans %}{% endset %} +{% set default_options = { + 'NONE': translation, + 'USER_DEFINED': 'As defined:'|trans, + 'NULL': 'NULL', + 'CURRENT_TIMESTAMP': 'CURRENT_TIMESTAMP' +} %} + + +{% if char_editing == 'textarea' %} + +{% else %} + +{% endif %} diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_definitions_form.twig b/srcs/phpmyadmin/templates/columns_definitions/column_definitions_form.twig new file mode 100644 index 0000000..1fd4b64 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_definitions_form.twig @@ -0,0 +1,155 @@ +
+ {{ get_hidden_inputs(form_params) }} + {# happens when an index has been set on a column #} + {# and a column is added to the table creation dialog #} + {# This contains a JSON-encoded string #} + + + + + + + {% if action == 'tbl_create.php' %} +
+ + + + + +
{% trans 'Table name' %}: + + + {% trans 'Add' %} + + {% trans 'column(s)' %} + +
+
+ {% endif %} + {% if content_cells is iterable %} + {% include 'columns_definitions/table_fields_definitions.twig' with { + 'is_backup': is_backup, + 'fields_meta': fields_meta, + 'mimework': mimework, + 'content_cells': content_cells, + 'change_column': change_column, + 'is_virtual_columns_supported': is_virtual_columns_supported, + 'browse_mime': browse_mime, + 'server_type': server_type, + 'max_rows': max_rows, + 'char_editing': char_editing, + 'attribute_types': attribute_types, + 'privs_available': privs_available, + 'max_length': max_length, + 'charsets': charsets + } only %} + {% endif %} + {% if action == 'tbl_create.php' %} +
+ + + + + + + + + + + + + + + + + + + + {% if have_partitioning %} + + + + + + + {% endif %} +
{% trans 'Table comments:' %} {% trans 'Collation:' %}  + {% trans 'Storage Engine:' %} + {{ show_mysql_docu('Storage_engines') }} +   + {% trans 'Connection:' %} + {{ show_mysql_docu('federated-create-connection') }} +
+ +   + +   + {{ get_html_select( + 'tbl_storage_engine', + null, + tbl_storage_engine + ) }} +   + +
+ {% trans 'PARTITION definition:' %} + {{ show_mysql_docu('Partitioning') }} +
+ {% include 'columns_definitions/partitions.twig' with { + 'partition_details': partition_details + } only %} +
+
+ {% endif %} +
+ + +
+
+
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_extra.twig b/srcs/phpmyadmin/templates/columns_definitions/column_extra.twig new file mode 100644 index 0000000..7f61f5c --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_extra.twig @@ -0,0 +1,7 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_indexes.twig b/srcs/phpmyadmin/templates/columns_definitions/column_indexes.twig new file mode 100644 index 0000000..3980229 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_indexes.twig @@ -0,0 +1,24 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_length.twig b/srcs/phpmyadmin/templates/columns_definitions/column_length.twig new file mode 100644 index 0000000..ef7e5f0 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_length.twig @@ -0,0 +1,11 @@ + +

+ + {% trans 'Edit ENUM/SET values' %} + +

diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_name.twig b/srcs/phpmyadmin/templates/columns_definitions/column_name.twig new file mode 100644 index 0000000..a0a31ad --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_name.twig @@ -0,0 +1,42 @@ +{% set title = '' %} +{% if column_meta['column_status'] is defined %} + {% if column_meta['column_status']['isReferenced'] %} + {% set title = title ~ 'Referenced by %s.'|trans|format( + column_meta['column_status']['references']|join(',') + ) %} + {% endif %} + {% if column_meta['column_status']['isForeignKey'] %} + {% if title is not empty %} + {% set title = title ~ '\n'|raw %} + {% endif %} + {% set title = title ~ 'Is a foreign key.'|trans %} + {% endif %} +{% endif %} +{% if title is empty %} + {% set title = 'Column'|trans %} +{% endif %} + + + +{% if cfg_relation['centralcolumnswork'] + and not (column_meta['column_status'] is defined + and not column_meta['column_status']['isEditable']) %} +

+ + {% trans 'Pick from Central Columns' %} + +

+{% endif %} diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_null.twig b/srcs/phpmyadmin/templates/columns_definitions/column_null.twig new file mode 100644 index 0000000..5afd649 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_null.twig @@ -0,0 +1,8 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_type.twig b/srcs/phpmyadmin/templates/columns_definitions/column_type.twig new file mode 100644 index 0000000..e74eb0e --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_type.twig @@ -0,0 +1,8 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_virtuality.twig b/srcs/phpmyadmin/templates/columns_definitions/column_virtuality.twig new file mode 100644 index 0000000..96f020e --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/column_virtuality.twig @@ -0,0 +1,32 @@ + + +{% if char_editing == 'textarea' %} + {% apply spaceless %} + + {% endapply %} +{% else %} + +{% endif %} diff --git a/srcs/phpmyadmin/templates/columns_definitions/mime_type.twig b/srcs/phpmyadmin/templates/columns_definitions/mime_type.twig new file mode 100644 index 0000000..ef395b6 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/mime_type.twig @@ -0,0 +1,17 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/move_column.twig b/srcs/phpmyadmin/templates/columns_definitions/move_column.twig new file mode 100644 index 0000000..7c0b3f4 --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/move_column.twig @@ -0,0 +1,15 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/partitions.twig b/srcs/phpmyadmin/templates/columns_definitions/partitions.twig new file mode 100644 index 0000000..b8c88af --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/partitions.twig @@ -0,0 +1,180 @@ +{% set partition_options = [ + '', + 'HASH', + 'LINEAR HASH', + 'KEY', + 'LINEAR KEY', + 'RANGE', + 'RANGE COLUMNS', + 'LIST', + 'LIST COLUMNS' +] %} +{% set sub_partition_options = ['', 'HASH', 'LINEAR HASH', 'KEY', 'LINEAR KEY'] %} +{% set value_type_options = ['', 'LESS THAN', 'LESS THAN MAXVALUE', 'IN'] %} + + + + + + + + + + + + {% if partition_details['can_have_subpartitions'] %} + + + + + + + + + + {% endif %} +
+ + + () +
+ +
+ + + () +
+ +
+{% if partition_details['partition_count'] > 1 %} + + + + {% if partition_details['value_enabled'] %} + + {% endif %} + {% if partition_details['can_have_subpartitions'] + and partition_details['subpartition_count'] > 1 %} + + {% endif %} + + + + + + + + + + {% for partition in partition_details['partitions'] %} + {% set rowspan = partition['subpartition_count'] is not empty + ? partition['subpartition_count'] + 1 : 2 %} + + + {% if partition_details['value_enabled'] %} + + {% endif %} + + + {% if partition['subpartitions'] is defined %} + {% set subpartitions = partition['subpartitions'] %} + {% else %} + {% set subpartitions = [partition] %} + {% endif %} + + {% for subpartition in subpartitions %} + + {% if partition_details['can_have_subpartitions'] + and partition_details['subpartition_count'] > 1 %} + + {% endif %} + + + + + + + + + + {% endfor %} + {% endfor %} +
{% trans 'Partition' %}{% trans 'Values' %}{% trans 'Subpartition' %}{% trans 'Engine' %}{% trans 'Comment' %}{% trans 'Data directory' %}{% trans 'Index directory' %}{% trans 'Max rows' %}{% trans 'Min rows' %}{% trans 'Table space' %}{% trans 'Node group' %}
+ + + + +
+ + + {{ get_html_select( + subpartition['prefix'] ~ '[engine]', + null, + subpartition['engine'], + false, + true + ) }} + + {% apply spaceless %} + + {% endapply %} + + + + + + + + + + + + +
+{% endif %} diff --git a/srcs/phpmyadmin/templates/columns_definitions/table_fields_definitions.twig b/srcs/phpmyadmin/templates/columns_definitions/table_fields_definitions.twig new file mode 100644 index 0000000..f23b2fe --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/table_fields_definitions.twig @@ -0,0 +1,122 @@ +
+ + + + + + + + + + + + {# Only for 'Edit' Column(s) #} + {% if change_column is defined and change_column is not empty %} + + {% endif %} + + {# We could remove this 'if' and let the key information be shown and + editable. However, for this to work, structure.lib.php must be + modified to use the key fields, as tbl_addfield does. #} + {% if not is_backup %} + + {% endif %} + + + + + {% if is_virtual_columns_supported %} + + {% endif %} + + {% if fields_meta is defined %} + + {% endif %} + + {% if mimework and browse_mime %} + + + + + + {% endif %} + + {% set options = {'': '', 'VIRTUAL': 'VIRTUAL'} %} + {% if server_type == 'MariaDB' %} + {% set options = options|merge({'PERSISTENT': 'PERSISTENT'}) %} + {% set options = options|merge({'STORED': 'STORED'}) %} + {% else %} + {% set options = options|merge({'STORED': 'STORED'}) %} + {% endif %} + {% for content_row in content_cells %} + + {% include 'columns_definitions/column_attributes.twig' with content_row|merge({ + 'options': options, + 'change_column': change_column, + 'is_virtual_columns_supported': is_virtual_columns_supported, + 'browse_mime': browse_mime, + 'max_rows': max_rows, + 'char_editing': char_editing, + 'attribute_types': attribute_types, + 'privs_available': privs_available, + 'max_length': max_length, + 'charsets': charsets + }) only %} + + {% endfor %} +
+ {% trans 'Structure' %} + {{ show_mysql_docu('CREATE_TABLE') }} +
+ {% trans 'Name' %} + + {% trans 'Type' %} + {{ show_mysql_docu('data-types') }} + + {% trans 'Length/Values' %} + {{ show_hint('If column type is "enum" or "set", please enter the values using this format: \'a\',\'b\',\'c\'…
If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').'|trans) }} +
+ {% trans 'Default' %} + {{ show_hint('For default values, please enter just a single value, without backslash escaping or quotes, using this format: a'|trans) }} + + {% trans 'Collation' %} + + {% trans 'Attributes' %} + + {% trans 'Null' %} + + {% trans 'Adjust privileges' %} + {{ show_docu('faq', 'faq6-39') }} + + {% trans 'Index' %} + + A_I + + {% trans 'Comments' %} + + {% trans 'Virtuality' %} + + {% trans 'Move column' %} + + {% trans 'Media (MIME) type' %} + + + {% trans 'Browser display transformation' %} + + + {% trans 'Browser display transformation options' %} + {{ show_hint('Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'…
If you ever need to put a backslash ("\\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').'|trans) }} +
+ + {% trans 'Input transformation' %} + + + {% trans 'Input transformation options' %} + {{ show_hint('Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'…
If you ever need to put a backslash ("\\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').'|trans) }} +
+
diff --git a/srcs/phpmyadmin/templates/columns_definitions/transformation.twig b/srcs/phpmyadmin/templates/columns_definitions/transformation.twig new file mode 100644 index 0000000..9aec94a --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/transformation.twig @@ -0,0 +1,26 @@ + diff --git a/srcs/phpmyadmin/templates/columns_definitions/transformation_option.twig b/srcs/phpmyadmin/templates/columns_definitions/transformation_option.twig new file mode 100644 index 0000000..f87ba7c --- /dev/null +++ b/srcs/phpmyadmin/templates/columns_definitions/transformation_option.twig @@ -0,0 +1,9 @@ +{% set options_key = type_prefix ~ 'transformation_options' %} + diff --git a/srcs/phpmyadmin/templates/components/error_message.twig b/srcs/phpmyadmin/templates/components/error_message.twig new file mode 100644 index 0000000..5b964c3 --- /dev/null +++ b/srcs/phpmyadmin/templates/components/error_message.twig @@ -0,0 +1,4 @@ +
+ + {{ msg }} +
diff --git a/srcs/phpmyadmin/templates/config/form_display/errors.twig b/srcs/phpmyadmin/templates/config/form_display/errors.twig new file mode 100644 index 0000000..b243ce4 --- /dev/null +++ b/srcs/phpmyadmin/templates/config/form_display/errors.twig @@ -0,0 +1,6 @@ +
+
{{ name }}
+ {% for error in error_list %} +
{{ error|raw }}
+ {% endfor %} +
diff --git a/srcs/phpmyadmin/templates/config/form_display/fieldset_bottom.twig b/srcs/phpmyadmin/templates/config/form_display/fieldset_bottom.twig new file mode 100644 index 0000000..1c8d570 --- /dev/null +++ b/srcs/phpmyadmin/templates/config/form_display/fieldset_bottom.twig @@ -0,0 +1,14 @@ +{% set colspan = 2 %} +{% if is_setup %} + {% set colspan = colspan + 1 %} +{% endif %} +{% if show_buttons %} + + + + + + +{% endif %} + + diff --git a/srcs/phpmyadmin/templates/config/form_display/fieldset_top.twig b/srcs/phpmyadmin/templates/config/form_display/fieldset_top.twig new file mode 100644 index 0000000..e359e92 --- /dev/null +++ b/srcs/phpmyadmin/templates/config/form_display/fieldset_top.twig @@ -0,0 +1,17 @@ +
+{{ title }} +{% if description is not empty %} +

{{ description|raw }}

+{% endif %} +{# This must match with displayErrors() in scripts.js #} +{% if errors is iterable and errors|length > 0 %} +
+ {% for error in errors %} +
{{ error }}
+ {% endfor %} +
+{% endif %} + diff --git a/srcs/phpmyadmin/templates/config/form_display/form_bottom.twig b/srcs/phpmyadmin/templates/config/form_display/form_bottom.twig new file mode 100644 index 0000000..5582354 --- /dev/null +++ b/srcs/phpmyadmin/templates/config/form_display/form_bottom.twig @@ -0,0 +1 @@ + diff --git a/srcs/phpmyadmin/templates/config/form_display/group_header.twig b/srcs/phpmyadmin/templates/config/form_display/group_header.twig new file mode 100644 index 0000000..47f1388 --- /dev/null +++ b/srcs/phpmyadmin/templates/config/form_display/group_header.twig @@ -0,0 +1,5 @@ + + + diff --git a/srcs/phpmyadmin/templates/config/form_display/tabs_bottom.twig b/srcs/phpmyadmin/templates/config/form_display/tabs_bottom.twig new file mode 100644 index 0000000..04f5b84 --- /dev/null +++ b/srcs/phpmyadmin/templates/config/form_display/tabs_bottom.twig @@ -0,0 +1 @@ + diff --git a/srcs/phpmyadmin/templates/console/bookmark_content.twig b/srcs/phpmyadmin/templates/console/bookmark_content.twig new file mode 100644 index 0000000..259edbf --- /dev/null +++ b/srcs/phpmyadmin/templates/console/bookmark_content.twig @@ -0,0 +1,25 @@ +
+ {{ welcome_message }} +
+{% for bookmark in bookmarks %} + +{% endfor %} diff --git a/srcs/phpmyadmin/templates/console/display.twig b/srcs/phpmyadmin/templates/console/display.twig new file mode 100644 index 0000000..3d54c9e --- /dev/null +++ b/srcs/phpmyadmin/templates/console/display.twig @@ -0,0 +1,192 @@ +
+
+ {# Console toolbar #} + {% include 'console/toolbar.twig' with { + 'parent_div_classes': 'collapsed', + 'content_array': [ + {0: 'switch_button console_switch', 1: 'Console'|trans, 'image': image}, + ['button clear', 'Clear'|trans], + ['button history', 'History'|trans], + ['button options', 'Options'|trans], + cfg_bookmark is defined ? ['button bookmarks', 'Bookmarks'|trans] : null, + ['button debug hide', 'Debug SQL'|trans] + ] + } only %} + {# Console messages #} +
+
+
+ + {% trans 'Press Ctrl+Enter to execute query' %} + + + {% trans 'Press Enter to execute query' %} + +
+ {% if sql_history is not empty %} + {% for record in sql_history|reverse %} + + {% endfor %} + {% endif %} +
+
+ +
+
+ {# Drak the console with other cards over it #} +
+ {# Debug SQL card #} +
+ {% include 'console/toolbar.twig' with { + 'parent_div_classes': '', + 'content_array': [ + ['button order order_asc', 'ascending'|trans], + ['button order order_desc', 'descending'|trans], + ['text', 'Order:'|trans], + ['switch_button', 'Debug SQL'|trans], + ['button order_by sort_count', 'Count'|trans], + ['button order_by sort_exec', 'Execution order'|trans], + ['button order_by sort_time', 'Time taken'|trans], + ['text', 'Order by:'|trans], + ['button group_queries', 'Group queries'|trans], + ['button ungroup_queries', 'Ungroup queries'|trans] + ] + } only %} +
+
+
+
+
+ {% include 'console/query_action.twig' with { + 'parent_div_classes': 'debug_query action_content', + 'content_array': [ + ['action collapse', 'Collapse'|trans], + ['action expand', 'Expand'|trans], + ['action dbg_show_trace', 'Show trace'|trans], + ['action dbg_hide_trace', 'Hide trace'|trans], + ['text count hide', 'Count'|trans], + ['text time', 'Time taken'|trans] + ] + } only %} +
+
+ {% if cfg_bookmark %} +
+ {% include 'console/toolbar.twig' with { + 'parent_div_classes': '', + 'content_array': [ + ['switch_button', 'Bookmarks'|trans], + ['button refresh', 'Refresh'|trans], + ['button add', 'Add'|trans] + ] + } only %} +
+ {{ bookmark_content|raw }} +
+
+
+ {% include 'console/toolbar.twig' with { + 'parent_div_classes': '', + 'content_array': [ + ['switch_button', 'Add bookmark'|trans] + ] + } only %} +
+
+ + + + +
+
+ +
+
+
+
+ {% endif %} + {# Options card #} +
+ {% include 'console/toolbar.twig' with { + 'parent_div_classes': '', + 'content_array': [ + ['switch_button', 'Options'|trans], + ['button default', 'Set default'|trans] + ] + } only %} +
+ +
+ +
+ +
+ +
+ +
+
+
+
+ {# Templates for console message actions #} + {% include 'console/query_action.twig' with { + 'parent_div_classes': 'query_actions', + 'content_array': [ + ['action collapse', 'Collapse'|trans], + ['action expand', 'Expand'|trans], + ['action requery', 'Requery'|trans], + ['action edit', 'Edit'|trans], + ['action explain', 'Explain'|trans], + ['action profiling', 'Profiling'|trans], + cfg_bookmark is defined ? ['action bookmark', 'Bookmark'|trans] : null, + ['text failed', 'Query failed'|trans], + {0: 'text targetdb', 1: 'Database'|trans, 'extraSpan': ''}, + {0: 'text query_time', 1: 'Queried time'|trans, 'extraSpan': ''} + ] + } only %} +
+
+
diff --git a/srcs/phpmyadmin/templates/console/query_action.twig b/srcs/phpmyadmin/templates/console/query_action.twig new file mode 100644 index 0000000..62bc30a --- /dev/null +++ b/srcs/phpmyadmin/templates/console/query_action.twig @@ -0,0 +1,12 @@ +
+ {% for content in content_array %} + {% if content is defined %} + + {{ content[1] }} + {% if content['extraSpan'] is defined %} + : {{ content['extraSpan'] }} + {% endif %} + + {% endif %} + {% endfor %} +
diff --git a/srcs/phpmyadmin/templates/console/toolbar.twig b/srcs/phpmyadmin/templates/console/toolbar.twig new file mode 100644 index 0000000..b16c290 --- /dev/null +++ b/srcs/phpmyadmin/templates/console/toolbar.twig @@ -0,0 +1,10 @@ +
+ {% for content in content_array %} + {% if content is defined %} +
+ {{ content['image'] is defined ? content['image']|raw }} + {{ content[1] }} +
+ {% endif %} + {% endfor %} +
diff --git a/srcs/phpmyadmin/templates/create_tracking_version.twig b/srcs/phpmyadmin/templates/create_tracking_version.twig new file mode 100644 index 0000000..ba93434 --- /dev/null +++ b/srcs/phpmyadmin/templates/create_tracking_version.twig @@ -0,0 +1,79 @@ +
+
+ {{ get_hidden_inputs(db) }} + {% for selected_table in selected %} + + {% endfor %} + +
+ + {% if selected|length == 1 %} + {{ 'Create version %1$s of %2$s'|trans|format( + last_version + 1, + db ~ '.' ~ selected[0] + ) }} + {% else %} + {{ 'Create version %1$s'|trans|format(last_version + 1) }} + {% endif %} + + +

{% trans 'Track these data definition statements:' %}

+ + {% if type == 'both' or type == 'table' %} + + ALTER TABLE
+ + RENAME TABLE
+ + CREATE TABLE
+ + DROP TABLE
+ {% endif %} + {% if type == 'both' %} +
+ {% endif %} + {% if type == 'both' or type == 'view' %} + + ALTER VIEW
+ + CREATE VIEW
+ + DROP VIEW
+ {% endif %} +
+ + + CREATE INDEX
+ + DROP INDEX
+ +

{% trans 'Track these data manipulation statements:' %}

+ + INSERT
+ + UPDATE
+ + DELETE
+ + TRUNCATE
+
+ +
+ + +
+ +
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 @@ +
+ {{ header_text }} +
+ + + + {% 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 #} +
{% 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 %} + +
+
+
+ +
+
+ +
+
+
+ {# 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 %} diff --git a/srcs/phpmyadmin/templates/display/export/format_dropdown.twig b/srcs/phpmyadmin/templates/display/export/format_dropdown.twig new file mode 100644 index 0000000..adda19b --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/format_dropdown.twig @@ -0,0 +1,4 @@ +
+

{% trans 'Format:' %}

+ {{ dropdown|raw }} +
diff --git a/srcs/phpmyadmin/templates/display/export/hidden_inputs.twig b/srcs/phpmyadmin/templates/display/export/hidden_inputs.twig new file mode 100644 index 0000000..fc7c04e --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/hidden_inputs.twig @@ -0,0 +1,23 @@ +{% if export_type == 'server' %} + {{ get_hidden_inputs('', '', 1) }} +{% elseif export_type == 'database' %} + {{ get_hidden_inputs(db, '', 1) }} +{% else %} + {{ get_hidden_inputs(db, table, 1) }} +{% endif %} + +{# Just to keep this value for possible next display of this form after saving on server #} +{% if single_table is not empty %} + +{% endif %} + + + +{# The export method (quick, custom or custom-no-form) #} + + +{% if sql_query is not empty %} + +{% endif %} + + diff --git a/srcs/phpmyadmin/templates/display/export/method.twig b/srcs/phpmyadmin/templates/display/export/method.twig new file mode 100644 index 0000000..5521f57 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/method.twig @@ -0,0 +1,22 @@ +{% if export_method != 'custom-no-form' %} +
+

{% trans 'Export method:' %}

+ +
+{% endif %} diff --git a/srcs/phpmyadmin/templates/display/export/option_header.twig b/srcs/phpmyadmin/templates/display/export/option_header.twig new file mode 100644 index 0000000..03e4f6b --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/option_header.twig @@ -0,0 +1,12 @@ + diff --git a/srcs/phpmyadmin/templates/display/export/options_format.twig b/srcs/phpmyadmin/templates/display/export/options_format.twig new file mode 100644 index 0000000..6b09814 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_format.twig @@ -0,0 +1,24 @@ +
+

{% trans 'Format-specific options:' %}

+

+ {% trans 'Scroll down to fill in the options for the selected format and ignore the options for other formats.' %} +

+ {{ options|raw }} +
+ +{% if can_convert_kanji %} + {# Japanese encoding setting #} +
+

{% trans 'Encoding Conversion:' %}

+ {% include 'encoding/kanji_encoding_form.twig' %} +
+{% endif %} + +
+ 0 %} + onclick="Export.checkTimeOut({{ exec_time_limit }})" + {%- endif %}> +
diff --git a/srcs/phpmyadmin/templates/display/export/options_output.twig b/srcs/phpmyadmin/templates/display/export/options_output.twig new file mode 100644 index 0000000..60d721c --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_output.twig @@ -0,0 +1,54 @@ +
+

{% trans 'Output:' %}

+ + + ' + )|raw }} +
diff --git a/srcs/phpmyadmin/templates/display/export/options_output_charset.twig b/srcs/phpmyadmin/templates/display/export/options_output_charset.twig new file mode 100644 index 0000000..bd316bf --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_output_charset.twig @@ -0,0 +1,16 @@ +
  • + + +
  • diff --git a/srcs/phpmyadmin/templates/display/export/options_output_compression.twig b/srcs/phpmyadmin/templates/display/export/options_output_compression.twig new file mode 100644 index 0000000..1905981 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_output_compression.twig @@ -0,0 +1,24 @@ +{% if is_zip or is_gzip %} +
  • + + +
  • +{% else %} + +{% endif %} diff --git a/srcs/phpmyadmin/templates/display/export/options_output_format.twig b/srcs/phpmyadmin/templates/display/export/options_output_format.twig new file mode 100644 index 0000000..d75d330 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_output_format.twig @@ -0,0 +1,13 @@ +
  • + + + + +
  • diff --git a/srcs/phpmyadmin/templates/display/export/options_output_radio.twig b/srcs/phpmyadmin/templates/display/export/options_output_radio.twig new file mode 100644 index 0000000..7adf21e --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_output_radio.twig @@ -0,0 +1,7 @@ +
  • + + +
  • diff --git a/srcs/phpmyadmin/templates/display/export/options_output_save_dir.twig b/srcs/phpmyadmin/templates/display/export/options_output_save_dir.twig new file mode 100644 index 0000000..b4526aa --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_output_save_dir.twig @@ -0,0 +1,15 @@ +
  • + + +
  • +
  • + + +
  • diff --git a/srcs/phpmyadmin/templates/display/export/options_output_separate_files.twig b/srcs/phpmyadmin/templates/display/export/options_output_separate_files.twig new file mode 100644 index 0000000..fec85c4 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_output_separate_files.twig @@ -0,0 +1,12 @@ +
  • + + +
  • diff --git a/srcs/phpmyadmin/templates/display/export/options_quick_export.twig b/srcs/phpmyadmin/templates/display/export/options_quick_export.twig new file mode 100644 index 0000000..b3bd159 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_quick_export.twig @@ -0,0 +1,20 @@ +
    +

    {% trans 'Output:' %}

    + +
    diff --git a/srcs/phpmyadmin/templates/display/export/options_rows.twig b/srcs/phpmyadmin/templates/display/export/options_rows.twig new file mode 100644 index 0000000..1d4f866 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/options_rows.twig @@ -0,0 +1,35 @@ +
    +

    {% trans 'Rows:' %}

    + +
    diff --git a/srcs/phpmyadmin/templates/display/export/select_options.twig b/srcs/phpmyadmin/templates/display/export/select_options.twig new file mode 100644 index 0000000..4ca00ba --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/select_options.twig @@ -0,0 +1,19 @@ +
    +

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

    + + +
    diff --git a/srcs/phpmyadmin/templates/display/export/selection.twig b/srcs/phpmyadmin/templates/display/export/selection.twig new file mode 100644 index 0000000..6f691f5 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/selection.twig @@ -0,0 +1,10 @@ +
    + {% if export_type == 'server' %} +

    {% trans 'Databases:' %}

    + {% elseif export_type == 'database' %} +

    {% trans 'Tables:' %}

    + {% endif %} + {% if multi_values is not empty %} + {{ multi_values|raw }} + {% endif %} +
    diff --git a/srcs/phpmyadmin/templates/display/export/template_loading.twig b/srcs/phpmyadmin/templates/display/export/template_loading.twig new file mode 100644 index 0000000..16eaa6d --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/template_loading.twig @@ -0,0 +1,27 @@ +
    +

    {% trans 'Export templates:' %}

    + +
    +
    +

    {% trans 'New template:' %}

    + + +
    +
    + +
    +
    +

    {% trans 'Existing templates:' %}

    + + + + +
    +
    + +
    +
    diff --git a/srcs/phpmyadmin/templates/display/export/template_options.twig b/srcs/phpmyadmin/templates/display/export/template_options.twig new file mode 100644 index 0000000..ddcd4f5 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/export/template_options.twig @@ -0,0 +1,7 @@ + + +{% for template in templates %} + +{% endfor %} diff --git a/srcs/phpmyadmin/templates/display/import/import.twig b/srcs/phpmyadmin/templates/display/import/import.twig new file mode 100644 index 0000000..dab14a3 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/import/import.twig @@ -0,0 +1,195 @@ + +
    +
    + ajax clock + + + +
    + + + {% if import_type == 'server' %} + {{ get_hidden_inputs('', '', 1) }} + {% elseif import_type == 'database' %} + {{ get_hidden_inputs(db, '', 1) }} + {% else %} + {{ get_hidden_inputs(db, table, 1) }} + {% endif %} + + + + +
    +

    {% trans 'File to import:' %}

    + + {# We don't have show anything about compression, when no supported #} + {% if compressions is not empty %} +
    +

    + {{ 'File may be compressed (%s) or uncompressed.'|trans|format(compressions|join(', ')) }} +
    + {% trans 'A compressed file\'s name must end in .[format].[compression]. Example: .sql.zip' %} +

    +
    + {% endif %} + +
    + {% if is_upload and upload_dir is not empty %} +
      +
    • + + {{ get_browse_upload_file_block(max_upload_size) }} + {% trans 'You may also drag and drop a file on any page.' %} +
    • +
    • + + {{ get_select_upload_file_block( + import_list, + upload_dir + ) }} +
    • +
    + {% elseif is_upload %} + {{ get_browse_upload_file_block(max_upload_size) }} +

    {% trans 'You may also drag and drop a file on any page.' %}

    + {% elseif not is_upload %} + {{ 'File uploads are not allowed on this server.'|trans|notice }} + {% elseif upload_dir is not empty %} + {{ get_select_upload_file_block( + import_list, + upload_dir + ) }} + {% endif %} +
    + +
    + {# Charset of file #} + + {% if is_encoding_supported %} + + {% else %} + + {% endif %} +
    +
    + +
    +

    {% trans 'Partial import:' %}

    + + {% if timeout_passed is defined and timeout_passed %} +
    + + {{ 'Previous import timed out, after resubmitting will continue from position %d.'|trans|format(offset) }} +
    + {% endif %} + +
    + + +
    + + {% if not (timeout_passed is defined and timeout_passed) %} +
    + + +
    + {% else %} + {# If timeout has passed, + do not show the Skip dialog to avoid the risk of someone + entering a value here that would interfere with "skip" #} + + {% endif %} +
    + +
    +

    {% trans 'Other options:' %}

    +
    + {{ get_fk_checkbox() }} +
    +
    + +
    +

    {% trans 'Format:' %}

    + {{ get_choice('Import', 'format', import_list) }} +
    +
    + +
    +

    {% trans 'Format-specific options:' %}

    +

    + {% trans 'Scroll down to fill in the options for the selected format and ignore the options for other formats.' %} +

    + {{ get_options('Import', import_list) }} +
    +
    + + {# Japanese encoding setting #} + {% if can_convert_kanji %} +
    +

    {% trans 'Encoding Conversion:' %}

    + {% include 'encoding/kanji_encoding_form.twig' %} +
    + {% endif %} + +
    + +
    +
    +
    diff --git a/srcs/phpmyadmin/templates/display/import/javascript.twig b/srcs/phpmyadmin/templates/display/import/javascript.twig new file mode 100644 index 0000000..ec91e3c --- /dev/null +++ b/srcs/phpmyadmin/templates/display/import/javascript.twig @@ -0,0 +1,162 @@ +$( function() { + {# Add event when user click on "Go" button #} + $("#buttonGo").on("click", function() { + {# Hide form #} + $("#upload_form_form").css("display", "none"); + + {% if handler != 'PhpMyAdmin\\Plugins\\Import\\Upload\\UploadNoplugin' %} + {# Some variable for javascript #} + {% set ajax_url = 'import_status.php?id=' ~ upload_id ~ get_common_raw({ + 'import_status': 1 + }, '&') %} + {% set promot_str = 'The file being uploaded is probably larger than the maximum allowed size or this is a known bug in webkit based (Safari, Google Chrome, Arora etc.) browsers.'|trans|js_format(false) %} + {% set statustext_str = '%s of %s'|trans|escape_js_string %} + {% set second_str = '%s/sec.'|trans|js_format(false) %} + {% set remaining_min = 'About %MIN min. %SEC sec. remaining.'|trans|js_format(false) %} + {% set remaining_second = 'About %SEC sec. remaining.'|trans|js_format(false) %} + {% set processed_str = 'The file is being processed, please be patient.'|trans|js_format(false) %} + {% set import_url = get_common_raw({'import_status': 1}, '&') %} + + {% set upload_html %} + {% apply spaceless %} +
    +
    +
    +
    +
    +
    +
    +
    + ajax clock {{ 'Uploading your import file…'|trans|js_format(false) -}} +
    +
    +
    + {% endapply %} + {% endset %} + + {# Start output #} + var finished = false; + var percent = 0.0; + var total = 0; + var complete = 0; + var original_title = parent && parent.document ? parent.document.title : false; + var import_start; + + var perform_upload = function () { + new $.getJSON( + "{{ ajax_url|raw }}", + {}, + function(response) { + finished = response.finished; + percent = response.percent; + total = response.total; + complete = response.complete; + + if (total==0 && complete==0 && percent==0) { + $("#upload_form_status_info").html('ajax clock {{ promot_str|raw }}'); + $("#upload_form_status").css("display", "none"); + } else { + var now = new Date(); + now = Date.UTC( + now.getFullYear(), + now.getMonth(), + now.getDate(), + now.getHours(), + now.getMinutes(), + now.getSeconds()) + + now.getMilliseconds() - 1000; + var statustext = Functions.sprintf( + "{{ statustext_str|raw }}", + Functions.formatBytes( + complete, 1, Messages.strDecimalSeparator + ), + Functions.formatBytes( + total, 1, Messages.strDecimalSeparator + ) + ); + + if ($("#importmain").is(":visible")) { + {# Show progress UI #} + $("#importmain").hide(); + $("#import_form_status") + .html('{{ upload_html|raw }}') + .show(); + import_start = now; + } + else if (percent > 9 || complete > 2000000) { + {# Calculate estimated time #} + var used_time = now - import_start; + var seconds = parseInt(((total - complete) / complete) * used_time / 1000); + var speed = Functions.sprintf( + "{{ second_str|raw }}", + Functions.formatBytes(complete / used_time * 1000, 1, Messages.strDecimalSeparator) + ); + + var minutes = parseInt(seconds / 60); + seconds %= 60; + var estimated_time; + if (minutes > 0) { + estimated_time = "{{ remaining_min|raw }}" + .replace("%MIN", minutes) + .replace("%SEC", seconds); + } + else { + estimated_time = "{{ remaining_second|raw }}" + .replace("%SEC", seconds); + } + + statustext += "
    " + speed + "

    " + estimated_time; + } + + var percent_str = Math.round(percent) + "%"; + $("#status").animate({width: percent_str}, 150); + $(".percentage").text(percent_str); + + {# Show percent in window title #} + if (original_title !== false) { + parent.document.title + = percent_str + " - " + original_title; + } + else { + document.title + = percent_str + " - " + original_title; + } + $("#statustext").html(statustext); + } + + if (finished == true) { + if (original_title !== false) { + parent.document.title = original_title; + } + else { + document.title = original_title; + } + $("#importmain").hide(); + {# Loads the message, either success or mysql error #} + $("#import_form_status") + .html('ajax clock {{ processed_str|raw }}') + .show(); + $("#import_form_status").load("import_status.php?message=true&{{ import_url|raw }}"); + Navigation.reload(); + + {# If finished #} + } + else { + setTimeout(perform_upload, 1000); + } + }); + }; + setTimeout(perform_upload, 1000); + {% else %} + {# No plugin available #} + {% set image_tag -%} + ajax clock + {{- 'Please be patient, the file is being uploaded. Details about the upload are not available.'|trans|js_format(false) -}} + {{- show_docu('faq', 'faq2-9') -}} + {%- endset %} + $('#upload_form_status_info').html('{{ image_tag|raw }}'); + $("#upload_form_status").css("display", "none"); + {% endif %} + }); +}); diff --git a/srcs/phpmyadmin/templates/display/results/comment_for_row.twig b/srcs/phpmyadmin/templates/display/results/comment_for_row.twig new file mode 100644 index 0000000..f232375 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/comment_for_row.twig @@ -0,0 +1,10 @@ +{% if comments_map[fields_meta.table] is defined + and comments_map[fields_meta.table][fields_meta.name] is defined %} +
    + {% if comments_map[fields_meta.table][fields_meta.name]|length > limit_chars %} + {{ comments_map[fields_meta.table][fields_meta.name]|slice(0, limit_chars) }}… + {% else %} + {{ comments_map[fields_meta.table][fields_meta.name] }} + {% endif %} + +{% endif %} diff --git a/srcs/phpmyadmin/templates/display/results/data_for_resetting_column_order.twig b/srcs/phpmyadmin/templates/display/results/data_for_resetting_column_order.twig new file mode 100644 index 0000000..6a345e7 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/data_for_resetting_column_order.twig @@ -0,0 +1,9 @@ +{% if column_order %} + +{% endif %} +{% if column_visibility %} + +{% endif %} +{% if not is_view %} + +{% endif %} diff --git a/srcs/phpmyadmin/templates/display/results/empty_display.twig b/srcs/phpmyadmin/templates/display/results/empty_display.twig new file mode 100644 index 0000000..cd43ebc --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/empty_display.twig @@ -0,0 +1 @@ + diff --git a/srcs/phpmyadmin/templates/display/results/null_display.twig b/srcs/phpmyadmin/templates/display/results/null_display.twig new file mode 100644 index 0000000..f2ea2e5 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/null_display.twig @@ -0,0 +1,7 @@ + + NULL + diff --git a/srcs/phpmyadmin/templates/display/results/options_block.twig b/srcs/phpmyadmin/templates/display/results/options_block.twig new file mode 100644 index 0000000..d185fec --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/options_block.twig @@ -0,0 +1,121 @@ + diff --git a/srcs/phpmyadmin/templates/display/results/page_selector.twig b/srcs/phpmyadmin/templates/display/results/page_selector.twig new file mode 100644 index 0000000..1791270 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/page_selector.twig @@ -0,0 +1,6 @@ + +
    + {{ get_hidden_inputs(url_params) }} + {{ page_selector|raw }} +
    + diff --git a/srcs/phpmyadmin/templates/display/results/sort_by_key.twig b/srcs/phpmyadmin/templates/display/results/sort_by_key.twig new file mode 100644 index 0000000..fb26f10 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/sort_by_key.twig @@ -0,0 +1,9 @@ + diff --git a/srcs/phpmyadmin/templates/display/results/table.twig b/srcs/phpmyadmin/templates/display/results/table.twig new file mode 100644 index 0000000..760ca1c --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/table.twig @@ -0,0 +1,11 @@ +{{ sql_query_message|raw }} +{{ navigation|raw }} +{{ headers|raw }} + + {{ body|raw }} + + + +{{ multi_row_operation_links|raw }} +{{ navigation|raw }} +{{ operations|raw }} diff --git a/srcs/phpmyadmin/templates/display/results/table_headers.twig b/srcs/phpmyadmin/templates/display/results/table_headers.twig new file mode 100644 index 0000000..506a6c0 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/table_headers.twig @@ -0,0 +1,23 @@ + +
    + {{ get_hidden_inputs(db, table) }} +
    + +{{ data_for_resetting_column_order|raw }} +{{ options_block|raw }} + +{% if delete_link == delete_row or delete_link == kill_process %} +
    + {{ get_hidden_inputs(db, table, 1) }} + +{% endif %} + +
    + + + {{ button|raw }} + {{ table_headers_for_columns|raw }} + {{ column_at_right_side|raw }} + + + diff --git a/srcs/phpmyadmin/templates/display/results/table_navigation.twig b/srcs/phpmyadmin/templates/display/results/table_navigation.twig new file mode 100644 index 0000000..0746243 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/table_navigation.twig @@ -0,0 +1,82 @@ +
    + + + {{ move_backward_buttons|raw }} + {{ page_selector|raw }} + {{ move_forward_buttons|raw }} + {% if number_total_page > 1 %} + + {% endif %} + {% if has_show_all %} + + + {% endif %} + + + + + + + + + diff --git a/srcs/phpmyadmin/templates/display/results/table_navigation_button.twig b/srcs/phpmyadmin/templates/display/results/table_navigation_button.twig new file mode 100644 index 0000000..2573c0c --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/table_navigation_button.twig @@ -0,0 +1,12 @@ + +
    + {{ get_hidden_inputs(db, table) }} + + + + + {{ input_for_real_end|raw }} + +
    + diff --git a/srcs/phpmyadmin/templates/display/results/value_display.twig b/srcs/phpmyadmin/templates/display/results/value_display.twig new file mode 100644 index 0000000..35640b9 --- /dev/null +++ b/srcs/phpmyadmin/templates/display/results/value_display.twig @@ -0,0 +1,3 @@ + + {{ value|raw }} + diff --git a/srcs/phpmyadmin/templates/div_for_slider_effect.twig b/srcs/phpmyadmin/templates/div_for_slider_effect.twig new file mode 100644 index 0000000..6453999 --- /dev/null +++ b/srcs/phpmyadmin/templates/div_for_slider_effect.twig @@ -0,0 +1,16 @@ +{% if initial_sliders_state == 'disabled' %} + +{% else %} + {# + Bad hack on the next line. document.write() conflicts with jQuery, + hence, opening the
    with PHP itself instead of JavaScript. + + @todo find a better solution that uses $.append(), the recommended + method maybe by using an additional param, the id of the div to + append to + #} +
    +{% endif %} +{% if not is_ajax and not is_minimal %} + {{ self_link|raw }} + +
    + {{ error_messages|raw }} +
    + + {{ scripts|raw }} + + {% if is_demo %} +
    + {{ demo_message|raw }} +
    + {% endif %} + + {{ footer|raw }} +{% endif %} +{% if not is_ajax %} + + +{% endif %} diff --git a/srcs/phpmyadmin/templates/gis_data_editor_form.twig b/srcs/phpmyadmin/templates/gis_data_editor_form.twig new file mode 100644 index 0000000..412561a --- /dev/null +++ b/srcs/phpmyadmin/templates/gis_data_editor_form.twig @@ -0,0 +1,221 @@ +
    + +
    +

    {{ 'Value for the column "%s"'|trans|format(field) }}

    + + + {# The input field to which the final result should be added and corresponding null checkbox #} + {% if input_name is not null %} + + {% endif %} + {{ get_hidden_inputs() }} + + {# Visualization section #} +
    + {{ visualization|raw }} +
    + +
    + +
    + + +
    + + + {# End of visualization section #} + + {# Header section - Inclueds GIS type selector and input field for SRID #} +
    + + + + +
    + {# End of header section #} + + {# Data section #} +
    + {% if geom_type == 'GEOMETRYCOLLECTION' %} + + {% endif %} + + {% for a in 0..geom_count - 1 %} + {% if gis_data[a] is not null %} + {% if geom_type == 'GEOMETRYCOLLECTION' %} +

    + {{ 'Geometry %d:'|trans|format(a + 1) }} +
    + {% if gis_data[a]['gis_type'] is not null %} + {% set type = gis_data[a]['gis_type'] %} + {% else %} + {% set type = gis_types[0] %} + {% endif %} + + {% else %} + {% set type = geom_type %} + {% endif %} + + {% if type == 'POINT' %} +
    + {% trans 'Point:' %} + + + + + {% elseif type == 'MULTIPOINT' or type == 'LINESTRING' %} + {% set no_of_points = gis_data[a][type]['no_of_points'] ?? 1 %} + {% if type == 'LINESTRING' and no_of_points < 2 %} + {% set no_of_points = 2 %} + {% endif %} + {% if type == 'MULTIPOINT' and no_of_points < 1 %} + {% set no_of_points = 1 %} + {% endif %} + {% if gis_data[a][type]['add_point'] is not null %} + {% set no_of_points = no_of_points + 1 %} + {% endif %} + + + {% for i in 0..no_of_points - 1 %} +
    + {{ 'Point %d:'|trans|format(i + 1) }} + + + + + {% endfor %} + + {% elseif type == 'MULTILINESTRING' or type == 'POLYGON' %} + {% set no_of_lines = gis_data[a][type]['no_of_lines'] ?? 1 %} + {% if no_of_lines < 1 %} + {% set no_of_lines = 1 %} + {% endif %} + {% if gis_data[a][type]['add_line'] is not null %} + {% set no_of_lines = no_of_lines + 1 %} + {% endif %} + + + {% for i in 0..no_of_lines - 1 %} +
    + {% if type == 'MULTILINESTRING' %} + {{ 'Linestring %d:'|trans|format(i + 1) }} + {% elseif i == 0 %} + {% trans 'Outer ring:' %} + {% else %} + {{ 'Inner ring %d:'|trans|format(i) }} + {% endif %} + + {% set no_of_points = gis_data[a][type][i]['no_of_points'] ?? 2 %} + {% if type == 'MULTILINESTRING' and no_of_points < 2 %} + {% set no_of_points = 2 %} + {% endif %} + {% if type == 'POLYGON' and no_of_points < 4 %} + {% set no_of_points = 4 %} + {% endif %} + {% if gis_data[a][type][i]['add_point'] is not null %} + {% set no_of_points = no_of_points + 1 %} + {% endif %} + + + {% for j in 0..no_of_points - 1 %} +
    + {{ 'Point %d:'|trans|format(j + 1) }} + + + + + {% endfor %} + + {% endfor %} +
    + + {% elseif type == 'MULTIPOLYGON' %} + {% set no_of_polygons = gis_data[a][type]['no_of_polygons'] ?? 1 %} + {% if no_of_polygons < 1 %} + {% set no_of_polygons = 1 %} + {% endif %} + {% if gis_data[a][type]['add_polygon'] is not null %} + {% set no_of_polygons = no_of_polygons + 1 %} + {% endif %} + + + {% for k in 0..no_of_polygons - 1 %} +
    + {{ 'Polygon %d:'|trans|format(k + 1) }} + {% set no_of_lines = gis_data[a][type][k]['no_of_lines'] ?? 1 %} + {% if no_of_lines < 1 %} + {% set no_of_lines = 1 %} + {% endif %} + {% if gis_data[a][type][k]['add_line'] is not null %} + {% set no_of_lines = no_of_lines + 1 %} + {% endif %} + + + {% for i in 0..no_of_lines - 1 %} +

    + {% if i == 0 %} + {% trans 'Outer ring:' %} + {% else %} + {{ 'Inner ring %d:'|trans|format(i) }} + {% endif %} + + {% set no_of_points = gis_data[a][type][k][i]['no_of_points'] ?? 4 %} + {% if no_of_points < 4 %} + {% set no_of_points = 4 %} + {% endif %} + {% if gis_data[a][type][k][i]['add_point'] is not null %} + {% set no_of_points = no_of_points + 1 %} + {% endif %} + + + {% for j in 0..no_of_points - 1 %} +
    + {{ 'Point %d:'|trans|format(j + 1) }} + + + + + {% endfor %} + + {% endfor %} +
    + +
    + {% endfor %} +
    + + {% endif %} + {% endif %} + {% endfor %} + {% if geom_type == 'GEOMETRYCOLLECTION' %} +

    + + {% endif %} +
    + {# End of data section #} + +
    + + +
    +

    {% trans 'Output' %}

    +

    + {% trans 'Choose "GeomFromText" from the "Function" column and paste the string below into the "Value" field.' %} +

    + +
    +
    +
    diff --git a/srcs/phpmyadmin/templates/header.twig b/srcs/phpmyadmin/templates/header.twig new file mode 100644 index 0000000..c931e8c --- /dev/null +++ b/srcs/phpmyadmin/templates/header.twig @@ -0,0 +1,66 @@ +{% if not is_ajax and is_enabled -%} + + + + + + + + + + {% if not allow_third_party_framing -%} + + {%- endif %} + + + + {% if is_print_view %} + + {% else %} + + + + + + + {% endif %} + {{ title }} + {{ scripts|raw }} + + + + {% endif %} + + {% if is_menu_enabled and server > 0 %} + {{ menu|raw }} + + + + {{ get_image('s_cog', 'Page-related settings'|trans) }} + + {{ get_image('s_top', 'Click on the bar to scroll to top of page'|trans) }} + + {% endif %} + + {{ console|raw }} + +
    + {{ messages|raw }} +{% endif %} + +{% if is_enabled and has_recent_table %} + {{ recent_table|raw }} +{% endif %} diff --git a/srcs/phpmyadmin/templates/header_location.twig b/srcs/phpmyadmin/templates/header_location.twig new file mode 100644 index 0000000..f6e97a6 --- /dev/null +++ b/srcs/phpmyadmin/templates/header_location.twig @@ -0,0 +1,22 @@ +{# Manage HTML redirection #} + + + - - - + + + + + + + + + + diff --git a/srcs/phpmyadmin/templates/home/index.twig b/srcs/phpmyadmin/templates/home/index.twig new file mode 100644 index 0000000..e0fb63a --- /dev/null +++ b/srcs/phpmyadmin/templates/home/index.twig @@ -0,0 +1,203 @@ +{% if is_git_revision %} +
    +{% endif %} + +{{ message|raw }} + +{{ partial_logout|raw }} + +
    + {{ sync_favorite_tables|raw }} + +
    + {% if has_server %} + {% if is_demo %} +
    +

    {% trans 'phpMyAdmin Demo Server' %}

    +

    + {% apply format('demo.phpmyadmin.net')|raw %} + {% trans %} + You are using the demo server. You can do anything here, but please do not change root, debian-sys-maint and pma users. More information is available at %s. + {% endtrans %} + {% endapply %} +

    +
    + {% endif %} + +
    +

    {% trans 'General settings' %}

    +
      + {% if has_server_selection %} +
    • + {{ get_image('s_host') }} + {{ server_selection|raw }} +
    • + {% endif %} + + {% if server > 0 %} + {{ change_password is not empty ? change_password|raw }} + +
    • +
      + {{ get_hidden_inputs(null, null, 4, 'collation_connection') }} + + {% if charsets is not empty %} + + {% endif %} +
      +
    • + {% endif %} + {{ user_preferences is not empty ? user_preferences|raw }} +
    +
    + {% endif %} + +
    +

    {% trans 'Appearance settings' %}

    +
      + {% if language_selector is not empty %} +
    • + {{ get_image('s_lang') }} + {{ language_selector|raw }} +
    • + {% endif %} + + {% if theme_selection is not empty %} +
    • + {{ get_image('s_theme') }} + {{ theme_selection|raw }} +
    • + {% endif %} +
    +
    +
    + +
    + {% if database_server is not empty %} +
    +

    {% trans 'Database server' %}

    +
      +
    • + {% trans 'Server:' %} + {{ database_server.host }} +
    • +
    • + {% trans 'Server type:' %} + {{ database_server.type }} +
    • +
    • + {% trans 'Server connection:' %} + {{ database_server.connection|raw }} +
    • +
    • + {% trans 'Server version:' %} + {{ database_server.version }} +
    • +
    • + {% trans 'Protocol version:' %} + {{ database_server.protocol }} +
    • +
    • + {% trans 'User:' %} + {{ database_server.user }} +
    • +
    • + {% trans 'Server charset:' %} + + {{ database_server.charset }} + +
    • +
    +
    + {% endif %} + + {% if web_server is not empty or php_info is not empty %} +
    +

    {% trans 'Web server' %}

    +
      + {% if web_server is not empty %} +
    • + {{ web_server.software }} +
    • +
    • + {% trans 'Database client version:' %} + {{ web_server.database }} +
    • +
    • + {% trans 'PHP extension:' %} + {% for extension in web_server.php_extensions %} + {{ extension }} + {{ show_php_docu('book.' ~ extension ~ '.php') }} + {% endfor %} +
    • +
    • + {% trans 'PHP version:' %} + {{ web_server.php_version }} +
    • + {% endif %} + {% if php_info is not empty %} + {{ php_info|raw }} + {% endif %} +
    +
    + {% endif %} + + +
    +
    + +{{ config_storage_message|raw }} diff --git a/srcs/phpmyadmin/templates/javascript/display.twig b/srcs/phpmyadmin/templates/javascript/display.twig new file mode 100644 index 0000000..12027ef --- /dev/null +++ b/srcs/phpmyadmin/templates/javascript/display.twig @@ -0,0 +1,7 @@ + diff --git a/srcs/phpmyadmin/templates/list/item.twig b/srcs/phpmyadmin/templates/list/item.twig new file mode 100644 index 0000000..78f5e38 --- /dev/null +++ b/srcs/phpmyadmin/templates/list/item.twig @@ -0,0 +1,19 @@ + + + {% if url is defined and url is iterable and url['href'] is not empty %} + + {% endif %} + {{ content|raw }} + {% if url is defined and url is iterable and url['href'] is not empty %} + + {% endif %} + {% if mysql_help_page is not empty %} + {{ show_mysql_docu(mysql_help_page) }} + {% endif %} + diff --git a/srcs/phpmyadmin/templates/list/unordered.twig b/srcs/phpmyadmin/templates/list/unordered.twig new file mode 100644 index 0000000..11f114e --- /dev/null +++ b/srcs/phpmyadmin/templates/list/unordered.twig @@ -0,0 +1,14 @@ + + + {% if items is not empty %} + {% for item in items %} + {% if item is not iterable %} + {% set item = {'content': item} %} + {% endif %} + {% include 'list/item.twig' with item only %} + {% endfor %} + {% elseif content is not empty %} + {{ content|raw }} + {% endif %} + diff --git a/srcs/phpmyadmin/templates/login/footer.twig b/srcs/phpmyadmin/templates/login/footer.twig new file mode 100644 index 0000000..d9e9659 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/footer.twig @@ -0,0 +1,4 @@ +
    +{% if check_timeout == true %} +
    +{% endif %} diff --git a/srcs/phpmyadmin/templates/login/header.twig b/srcs/phpmyadmin/templates/login/header.twig new file mode 100644 index 0000000..a21dee5 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/header.twig @@ -0,0 +1,16 @@ +{% if session_expired == true %} +
    +{% endif %} +
    + +

    {{ 'Welcome to %s'|trans|format('phpMyAdmin')|raw }}

    + + + +
    +{{ "There is a mismatch between HTTPS indicated on the server and client. This can lead to a non working phpMyAdmin or a security risk. Please fix your server configuration to indicate HTTPS properly."|trans|error }} +
    diff --git a/srcs/phpmyadmin/templates/login/twofactor.twig b/srcs/phpmyadmin/templates/login/twofactor.twig new file mode 100644 index 0000000..af2bae3 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/twofactor.twig @@ -0,0 +1,7 @@ +
    + {{ get_hidden_inputs() }} + {{ form|raw }} + {% if show_submit %} + + {% endif %} +
    diff --git a/srcs/phpmyadmin/templates/login/twofactor/application.twig b/srcs/phpmyadmin/templates/login/twofactor/application.twig new file mode 100644 index 0000000..3077e03 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/twofactor/application.twig @@ -0,0 +1,4 @@ +

    + +

    +

    {% trans "Open the two-factor authentication app on your device to view your authentication code and verify your identity." %}

    diff --git a/srcs/phpmyadmin/templates/login/twofactor/application_configure.twig b/srcs/phpmyadmin/templates/login/twofactor/application_configure.twig new file mode 100644 index 0000000..e823bb3 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/twofactor/application_configure.twig @@ -0,0 +1,17 @@ +{{ get_hidden_inputs() }} +

    + {% trans "Please scan following QR code into the two-factor authentication app on your device and enter authentication code it generates." %} +

    +

    + {% if has_imagick %} + + {% else %} + {{ image|raw }} + {% endif %} +

    +

    + {% trans "Secret/key:" %} {{ secret }} +

    +

    + +

    diff --git a/srcs/phpmyadmin/templates/login/twofactor/invalid.twig b/srcs/phpmyadmin/templates/login/twofactor/invalid.twig new file mode 100644 index 0000000..568dd94 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/twofactor/invalid.twig @@ -0,0 +1,3 @@ +
    +{% trans "The configured two factor authentication is not available, please install missing dependencies." %} +
    diff --git a/srcs/phpmyadmin/templates/login/twofactor/key-https-warning.twig b/srcs/phpmyadmin/templates/login/twofactor/key-https-warning.twig new file mode 100644 index 0000000..d3f9c04 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/twofactor/key-https-warning.twig @@ -0,0 +1,5 @@ +{% if not is_https %} +
    +{% trans "You are not using https to access phpMyAdmin, therefore FIDO U2F device will most likely refuse to authenticate you." %} +
    +{% endif %} diff --git a/srcs/phpmyadmin/templates/login/twofactor/key.twig b/srcs/phpmyadmin/templates/login/twofactor/key.twig new file mode 100644 index 0000000..79ade47 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/twofactor/key.twig @@ -0,0 +1,5 @@ +{% include 'login/twofactor/key-https-warning.twig' %} +

    +{% trans "Please connect your FIDO U2F device into your computer's USB port. Then confirm login on the device." %} +

    + diff --git a/srcs/phpmyadmin/templates/login/twofactor/key_configure.twig b/srcs/phpmyadmin/templates/login/twofactor/key_configure.twig new file mode 100644 index 0000000..8b502dc --- /dev/null +++ b/srcs/phpmyadmin/templates/login/twofactor/key_configure.twig @@ -0,0 +1,5 @@ +{% include 'login/twofactor/key-https-warning.twig' %} +

    +{% trans "Please connect your FIDO U2F device into your computer's USB port. Then confirm registration on the device." %} +

    + diff --git a/srcs/phpmyadmin/templates/login/twofactor/simple.twig b/srcs/phpmyadmin/templates/login/twofactor/simple.twig new file mode 100644 index 0000000..eeae140 --- /dev/null +++ b/srcs/phpmyadmin/templates/login/twofactor/simple.twig @@ -0,0 +1 @@ + diff --git a/srcs/phpmyadmin/templates/navigation/item_unhide_dialog.twig b/srcs/phpmyadmin/templates/navigation/item_unhide_dialog.twig new file mode 100644 index 0000000..8303b59 --- /dev/null +++ b/srcs/phpmyadmin/templates/navigation/item_unhide_dialog.twig @@ -0,0 +1,29 @@ +
    +
    + {{ get_hidden_inputs(database, table) }} + + {% for type, label in types %} + {% if (item_type is empty or item_type == type) and hidden[type] is iterable %} + {{ not loop.first ? '
    ' }} + {{ label }} + + + {% for item in hidden[type] %} + + + + + {% endfor %} + +
    {{ item }} + {{ get_icon('show', 'Unhide'|trans) }} +
    + {% endif %} + {% endfor %} +
    +
    diff --git a/srcs/phpmyadmin/templates/navigation/main.twig b/srcs/phpmyadmin/templates/navigation/main.twig new file mode 100644 index 0000000..574e3f4 --- /dev/null +++ b/srcs/phpmyadmin/templates/navigation/main.twig @@ -0,0 +1,98 @@ +{% if not is_ajax %} +
    +
    +
    +
    +
    + + + {% if logo.is_displayed %} + + {% endif %} + + + + {% if is_servers_displayed and servers|length > 1 %} +
    + {{ server_select|raw }} +
    + {% endif %} + + {{ get_image('ajax_clock_small', 'Loading…'|trans, { + 'style': 'visibility: hidden; display:none', + 'class': 'throbber' + }) }} +
    +
    +{% endif %} + +{% if not navigation_tree %} + {{ 'An error has occurred while loading the navigation display'|trans|error }} +{% else %} + {{ navigation_tree|raw }} +{% endif %} + +{% if not is_ajax %} +
    + +
    + {% if is_navigation_settings_enabled %} + {{ navigation_settings|raw }} + {% endif %} +
    +
    + + {% if is_drag_drop_import_enabled %} +
    + {% trans 'Drop files here' %} +
    +
    +

    + {% trans 'SQL upload' %} + ( 0 ) + x + - +

    +
    +
    + {% endif %} +
    +{% endif %} diff --git a/srcs/phpmyadmin/templates/navigation/tree/database_select.twig b/srcs/phpmyadmin/templates/navigation/tree/database_select.twig new file mode 100644 index 0000000..9b8beda --- /dev/null +++ b/srcs/phpmyadmin/templates/navigation/tree/database_select.twig @@ -0,0 +1,22 @@ +{{ quick_warp|raw }} + +
    + {{ list_navigator|raw }} + +
    +
    + {{ get_hidden_fields({'server': server}) }} + + +
    +
    +
    + +
    +
      + {{ nodes|raw }} +
    +
    diff --git a/srcs/phpmyadmin/templates/navigation/tree/path.twig b/srcs/phpmyadmin/templates/navigation/tree/path.twig new file mode 100644 index 0000000..540a992 --- /dev/null +++ b/srcs/phpmyadmin/templates/navigation/tree/path.twig @@ -0,0 +1,12 @@ +
    + + {{ list_content|raw }} + + + {% if not is_tree %} + {{ parent_name|url_encode }} + {% if list_content is empty %} +
    {% trans 'No tables found in database.' %}
    + {% endif %} + {% endif %} +
    diff --git a/srcs/phpmyadmin/templates/navigation/tree/state.twig b/srcs/phpmyadmin/templates/navigation/tree/state.twig new file mode 100644 index 0000000..c59573d --- /dev/null +++ b/srcs/phpmyadmin/templates/navigation/tree/state.twig @@ -0,0 +1,16 @@ +{{ quick_warp|raw }} + +
    + +
      + {{ fast_filter|raw }} + {{ controls|raw }} +
    + +{{ page_selector|raw }} + +
    +
      + {{ nodes|raw }} +
    +
    diff --git a/srcs/phpmyadmin/templates/preferences/autoload.twig b/srcs/phpmyadmin/templates/preferences/autoload.twig new file mode 100644 index 0000000..4c61045 --- /dev/null +++ b/srcs/phpmyadmin/templates/preferences/autoload.twig @@ -0,0 +1,15 @@ + diff --git a/srcs/phpmyadmin/templates/preferences/forms/main.twig b/srcs/phpmyadmin/templates/preferences/forms/main.twig new file mode 100644 index 0000000..563b385 --- /dev/null +++ b/srcs/phpmyadmin/templates/preferences/forms/main.twig @@ -0,0 +1,8 @@ +{{ error|raw }} +{% if has_errors %} +
    + {% trans 'Cannot save settings, submitted form contains errors!' %} + {{ errors|raw }} +
    +{% endif %} +{{ form|raw }} diff --git a/srcs/phpmyadmin/templates/preferences/manage/error.twig b/srcs/phpmyadmin/templates/preferences/manage/error.twig new file mode 100644 index 0000000..d6b3522 --- /dev/null +++ b/srcs/phpmyadmin/templates/preferences/manage/error.twig @@ -0,0 +1,20 @@ +{{ 'Configuration contains incorrect data for some fields.'|trans|error }} +
    + {{ form_errors|raw }} +
    +
    + {{ get_hidden_inputs() }} + + + {% if import_merge is not empty %} + + {% endif %} + {% if return_url %} + + {% endif %} +

    + {% trans 'Do you want to import remaining settings?' %} +

    + + +
    diff --git a/srcs/phpmyadmin/templates/preferences/manage/main.twig b/srcs/phpmyadmin/templates/preferences/manage/main.twig new file mode 100644 index 0000000..0e51327 --- /dev/null +++ b/srcs/phpmyadmin/templates/preferences/manage/main.twig @@ -0,0 +1,112 @@ +{{ error|raw }} + +
    +
    +
    +

    {% trans 'Import' %}

    +
    + {{ generate_hidden_max_file_size(max_upload_size) }} + {{ get_hidden_inputs() }} + + + +
    + + +
    + + +
    +
    + {% trans 'Settings will be imported from your browser\'s local storage.' %} +
    +
    + {% trans 'Saved on: @DATE@' %} +
    +
    + {{ 'You have no saved settings!'|trans|notice }} +
    +
    +
    + {{ 'This feature is not supported by your web browser'|trans|notice }} +
    +
    + + +

    + +
    +
    + {% if exists_setup_and_not_exists_config %} + {# show only if setup script is available, allows to disable this message #} + {# by simply removing setup directory #} + {# Also do not show in config exists (and setup would refuse to work) #} +
    +

    {% trans 'More settings' %}

    +
    + {{ 'You can set more settings by modifying config.inc.php, eg. by using %sSetup script%s.'|trans|format('','')|raw }} + {{ show_docu('setup', 'setup-script') }} +
    +
    + {% endif %} +
    +
    +
    +

    {% trans 'Export' %}

    +
    + {{ 'Configuration has been saved.'|trans|raw_success }} +
    +
    + {{ get_hidden_inputs() }} +
    + +
    + +
    + + +
    +
    + + {% trans 'Settings will be saved in your browser\'s local storage.' %} +
    + + {% trans 'Existing settings will be overwritten!' %} + +
    +
    +
    + {{ 'This feature is not supported by your web browser'|trans|notice }} +
    +
    +
    + +
    +
    +
    +

    {% trans 'Reset' %}

    +
    + {{ get_hidden_inputs() }} + {% trans 'You can reset all your settings and restore them to default values.' %} +

    + +
    +
    +
    +
    +
    diff --git a/srcs/phpmyadmin/templates/preferences/two_factor/configure.twig b/srcs/phpmyadmin/templates/preferences/two_factor/configure.twig new file mode 100644 index 0000000..574f112 --- /dev/null +++ b/srcs/phpmyadmin/templates/preferences/two_factor/configure.twig @@ -0,0 +1,11 @@ +
    +

    {% trans "Configure two-factor authentication" %}

    +
    +
    +{{ get_hidden_inputs() }} + +{{ form|raw }} + +
    +
    +
    diff --git a/srcs/phpmyadmin/templates/preferences/two_factor/confirm.twig b/srcs/phpmyadmin/templates/preferences/two_factor/confirm.twig new file mode 100644 index 0000000..f1ef175 --- /dev/null +++ b/srcs/phpmyadmin/templates/preferences/two_factor/confirm.twig @@ -0,0 +1,12 @@ +
    +

    {% trans "Confirm disabling two-factor authentication" %}

    +
    +
    +{{ "By disabling two factor authentication you will be again able to login using password only."|trans|notice }} +{{ get_hidden_inputs() }} +{{ form|raw }} + + +
    +
    +
    diff --git a/srcs/phpmyadmin/templates/preferences/two_factor/main.twig b/srcs/phpmyadmin/templates/preferences/two_factor/main.twig new file mode 100644 index 0000000..f95c047 --- /dev/null +++ b/srcs/phpmyadmin/templates/preferences/two_factor/main.twig @@ -0,0 +1,60 @@ +
    +

    + {% trans "Two-factor authentication status" %} + {{ show_docu('two_factor') }} +

    +
    + {% if enabled %} + {% if num_backends == 0 %} +

    {% trans "Two-factor authentication is not available, please install optional dependencies to enable authentication backends." %}

    +

    {% trans "Following composer packages are missing:" %}

    +
      + {% for item in missing %} +
    • {{ item.dep }} ({{ item.class }})
    • + {% endfor %} +
    + {% else %} + {% if backend_id %} +

    {% trans "Two-factor authentication is available and configured for this account." %}

    + {% else %} +

    {% trans "Two-factor authentication is available, but not configured for this account." %}

    + {% endif %} + {% endif %} + {% else %} +

    {% trans "Two-factor authentication is not available, enable phpMyAdmin configuration storage to use it." %}

    + {% endif %} +
    +
    + +{% if backend_id %} +
    +

    {{ backend_name }}

    +
    +

    {% trans "You have enabled two factor authentication." %}

    +

    {{ backend_description }}

    +
    + {{ get_hidden_inputs() }} + +
    +
    +
    +{% elseif num_backends > 0 %} +
    +

    {% trans "Configure two-factor authentication" %}

    +
    +
    + {{ get_hidden_inputs() }} + {% for backend in backends %} + + {% endfor %} + +
    +
    +
    +{% endif %} diff --git a/srcs/phpmyadmin/templates/preview_sql.twig b/srcs/phpmyadmin/templates/preview_sql.twig new file mode 100644 index 0000000..5102341 --- /dev/null +++ b/srcs/phpmyadmin/templates/preview_sql.twig @@ -0,0 +1,11 @@ +
    + {% if query_data is empty %} + {% trans 'No change' %} + {% elseif query_data is iterable %} + {% for query in query_data %} + {{ format_sql(query) }} + {% endfor %} + {% else %} + {{ format_sql(query_data) }} + {% endif %} +
    diff --git a/srcs/phpmyadmin/templates/radio_fields.twig b/srcs/phpmyadmin/templates/radio_fields.twig new file mode 100644 index 0000000..58730e3 --- /dev/null +++ b/srcs/phpmyadmin/templates/radio_fields.twig @@ -0,0 +1,11 @@ +{% if class is not empty %} +
    +{% endif %} + + +{% if is_line_break %} +
    +{% endif %} +{% if class is not empty %} +
    +{% endif %} diff --git a/srcs/phpmyadmin/templates/rte/routines/parameter_row.twig b/srcs/phpmyadmin/templates/rte/routines/parameter_row.twig new file mode 100644 index 0000000..e15ea13 --- /dev/null +++ b/srcs/phpmyadmin/templates/rte/routines/parameter_row.twig @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + --- + + + + --- + + + + + + {{ get_icon('b_drop', 'Drop'|trans) }} + + + diff --git a/srcs/phpmyadmin/templates/scripts.twig b/srcs/phpmyadmin/templates/scripts.twig new file mode 100644 index 0000000..13a29a3 --- /dev/null +++ b/srcs/phpmyadmin/templates/scripts.twig @@ -0,0 +1,24 @@ +{% for file in files %} + +{% endfor %} + + diff --git a/srcs/phpmyadmin/templates/secondary_tabs.twig b/srcs/phpmyadmin/templates/secondary_tabs.twig new file mode 100644 index 0000000..76b5725 --- /dev/null +++ b/srcs/phpmyadmin/templates/secondary_tabs.twig @@ -0,0 +1,6 @@ +
      + {% for tab in sub_tabs %} + {{ get_html_tab(tab, url_params) }} + {% endfor %} +
    +
    diff --git a/srcs/phpmyadmin/templates/select_all.twig b/srcs/phpmyadmin/templates/select_all.twig new file mode 100644 index 0000000..a0eb1eb --- /dev/null +++ b/srcs/phpmyadmin/templates/select_all.twig @@ -0,0 +1,6 @@ +{% trans 'With selected:' %} + + +{% trans 'With selected:' %} diff --git a/srcs/phpmyadmin/templates/select_lang.twig b/srcs/phpmyadmin/templates/select_lang.twig new file mode 100644 index 0000000..a8bddc8 --- /dev/null +++ b/srcs/phpmyadmin/templates/select_lang.twig @@ -0,0 +1,32 @@ +
    + {{ get_hidden_inputs(_form_params) }} + + {% if use_fieldset %} +
    + {{ language_title|raw }} + {% else %} + + + + {% endif %} + + + + {% if use_fieldset %} +
    + {% endif %} + +
    diff --git a/srcs/phpmyadmin/templates/server/binlog/index.twig b/srcs/phpmyadmin/templates/server/binlog/index.twig new file mode 100644 index 0000000..cdc85dc --- /dev/null +++ b/srcs/phpmyadmin/templates/server/binlog/index.twig @@ -0,0 +1,107 @@ +

    + {{ get_image('s_tbl') }} + {% trans 'Binary log' %} +

    + +
    + {{ get_hidden_inputs(url_params) }} +
    + + {% trans 'Select binary log to view' %} + + + {% set full_size = 0 %} + + {{ binary_logs|length }} + {% trans 'Files' %}, + {% if full_size > 0 %} + {{ format_byte_down(full_size)|join(' ') }} + {% endif %} +
    + +
    + +
    +
    + +{{ sql_message|raw }} + + + + + + + + + + + + + + + + + + {% for value in values %} + + + + + + + + + {% endfor %} + +
    + {% if has_previous %} + {% if has_icons %} + + « + + {% else %} + + {% trans %}Previous{% context %}Previous page{% endtrans %} « + + {% endif %} + - + {% endif %} + + {% if is_full_query %} + + {% trans 'Truncate shown queries' %} + + {% else %} + + {% trans 'Show full queries' %} + + {% endif %} + + {% if has_next %} + - + {% if has_icons %} + + » + + {% else %} + + {% trans %}Next{% context %}Next page{% endtrans %} » + + {% endif %} + {% endif %} +
    {% trans 'Log name' %}{% trans 'Position' %}{% trans 'Event type' %}{% trans 'Server ID' %}{% trans 'Original position' %}{% trans 'Information' %}
    {{ value['Log_name'] }}{{ value['Pos'] }}{{ value['Event_type'] }}{{ value['Server_id'] }} + {{- value['Orig_log_pos'] is defined ? value['Orig_log_pos'] : value['End_log_pos'] -}} + {{ format_sql(value['Info'], not is_full_query) }}
    diff --git a/srcs/phpmyadmin/templates/server/collations/index.twig b/srcs/phpmyadmin/templates/server/collations/index.twig new file mode 100644 index 0000000..bb9dfb3 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/collations/index.twig @@ -0,0 +1,32 @@ +

    + {{ get_image('s_asci') }} + {% trans 'Character sets and collations' %} +

    + +
    + + + + + + + + + {% for charset in charsets %} + + + + {% for collation in charset.collations %} + + + + + {% endfor %} + {% endfor %} +
    {% trans 'Collation' %}{% trans 'Description' %}
    + {{ charset.name }} + {% if charset.description is not empty %} + ({{ charset.description }}) + {% endif %} +
    {{ collation.name }}{{ collation.description }}
    +
    diff --git a/srcs/phpmyadmin/templates/server/databases/index.twig b/srcs/phpmyadmin/templates/server/databases/index.twig new file mode 100644 index 0000000..ebff55f --- /dev/null +++ b/srcs/phpmyadmin/templates/server/databases/index.twig @@ -0,0 +1,323 @@ +

    + {{ get_image('s_db') }} + {% if has_statistics %} + {% trans 'Databases statistics' %} + {% else %} + {% trans 'Databases' %} + {% endif %} +

    + +{% if is_create_database_shown %} +
      +
    • + {% if has_create_database_privileges %} +
      +

      + + + {{ show_mysql_docu('CREATE_DATABASE') }} + +

      + + {{ get_hidden_inputs('', '', 5) }} + + {% if has_statistics %} + + {% endif %} + + + + {% if charsets is not empty %} + + {% endif %} + + +
      + {% else %} +

      + + {{ get_image('b_newdb') }} + {% trans 'Create database' %} + {{ show_mysql_docu('CREATE_DATABASE') }} + +

      + + + {{ get_image('s_error', '', { + 'hspace': 2, + 'border': 0, + 'align': 'middle' + }) }} + {% trans 'No privileges to create databases' %} + + {% endif %} +
    • +
    +{% endif %} + +{% if database_count > 0 %} + {% include 'filter.twig' with {'filter_value': ''} only %} + +
    + {{ get_list_navigator( + database_count, + pos, + url_params, + 'server_databases.php', + 'frame_content', + max_db_list + ) }} + +
    + {{ get_hidden_inputs(url_params) }} +
    + + + + {% if is_drop_allowed %} + + {% endif %} + + + + + {% if has_statistics %} + {% for name, statistic in header_statistics %} + + + {{ statistic.title }} + {% if url_params.sort_by == name %} + {% if url_params.sort_order == 'asc' %} + {{ get_image('s_asc', 'Ascending'|trans) }} + {% else %} + {{ get_image('s_desc', 'Descending'|trans) }} + {% endif %} + {% endif %} + + + {% endfor %} + {% endif %} + + {% if has_master_replication %} + + {% endif %} + + {% if has_slave_replication %} + + {% endif %} + + + + + + + {% for database in databases %} + + {% if is_drop_allowed %} + + {% endif %} + + + + + + {% if has_statistics %} + {% for statistic in database.statistics %} + {% if statistic.format is same as('byte') %} + {% set value = format_byte_down(statistic.raw, 3, 1) %} + + + {% else %} + + {% endif %} + {% endfor %} + {% endif %} + + {% if database.replication.master.status %} + {% if database.replication.master.is_replicated %} + + {% else %} + + {% endif %} + {% endif %} + + {% if database.replication.slave.status %} + {% if database.replication.slave.is_replicated %} + + {% else %} + + {% endif %} + {% endif %} + + + + {% endfor %} + + + + + + + {% if has_statistics %} + {% for statistic in total_statistics %} + {% if statistic.format is same as('byte') %} + {% set value = format_byte_down(statistic.raw, 3, 1) %} + + + {% else %} + + {% endif %} + {% endfor %} + {% endif %} + + {% if has_master_replication %} + + {% endif %} + + {% if has_slave_replication %} + + {% endif %} + + + + +
    + + {% trans 'Database' %} + {% if url_params.sort_by == 'SCHEMA_NAME' %} + {% if url_params.sort_order == 'asc' %} + {{ get_image('s_asc', 'Ascending'|trans) }} + {% else %} + {{ get_image('s_desc', 'Descending'|trans) }} + {% endif %} + {% endif %} + + + + {% trans 'Collation' %} + {% if url_params.sort_by == 'DEFAULT_COLLATION_NAME' %} + {% if url_params.sort_order == 'asc' %} + {{ get_image('s_asc', 'Ascending'|trans) }} + {% else %} + {{ get_image('s_desc', 'Descending'|trans) }} + {% endif %} + {% endif %} + + {% trans 'Master replication' %}{% trans 'Slave replication' %}{% trans 'Action' %}
    + + + + {{ database.name }} + + + + {{ database.collation.name }} + + + + {{ value[0] }} + + {{ value[1] }} + + {{ format_number(statistic.raw, 0) }} + + + {{ get_icon('s_success', 'Replicated'|trans) }} + + {{ get_icon('s_cancel', 'Not replicated'|trans) }} + + {{ get_icon('s_success', 'Replicated'|trans) }} + + {{ get_icon('s_cancel', 'Not replicated'|trans) }} + + + {{ get_icon('s_rights', 'Check privileges'|trans) }} + +
    + {% trans 'Total:' %} + + {{- database_count -}} + + + + {{ value[0] }} + + {{ value[1] }} + + {{ format_number(statistic.raw, 0) }} + +
    +
    + + {# Footer buttons #} + {% if is_drop_allowed %} + {% include 'select_all.twig' with { + 'pma_theme_image': pma_theme_image, + 'text_dir': text_dir, + 'form_name': 'dbStatsForm' + } only %} + + {{ get_button_or_image( + '', + 'mult_submit ajax', + 'Drop'|trans, + 'b_deltbl' + ) }} + {% endif %} + + {# Enable statistics #} + {% if not has_statistics %} + {{ 'Note: Enabling the database statistics here might cause heavy traffic between the web server and the MySQL server.'|trans|notice }} + + {% endif %} +
    +
    +{% else %} +

    {{ 'No databases'|trans|notice }}

    +{% endif %} diff --git a/srcs/phpmyadmin/templates/server/engines/index.twig b/srcs/phpmyadmin/templates/server/engines/index.twig new file mode 100644 index 0000000..2b92dc1 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/engines/index.twig @@ -0,0 +1,27 @@ +

    + {{ get_image('b_engine') }} + {% trans 'Storage engines' %} +

    + + + + + + + + + + {% for engine, details in engines %} + + + + + {% endfor %} + +
    {% trans 'Storage Engine' %}{% trans 'Description' %}
    + + {{ details['Engine'] }} + + {{ details['Comment'] }}
    diff --git a/srcs/phpmyadmin/templates/server/engines/show.twig b/srcs/phpmyadmin/templates/server/engines/show.twig new file mode 100644 index 0000000..088e3a0 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/engines/show.twig @@ -0,0 +1,48 @@ +

    + {{ get_image('b_engine') }} + {% trans 'Storage engines' %} +

    + +{% if engine is not empty %} +

    + {{ get_image('b_engine') }} + {{ engine.title }} + {{ show_mysql_docu(engine.help_page) }} +

    +

    {{ engine.comment }}

    + + {% if engine.info_pages is not empty and engine.info_pages is iterable %} +

    + [ + {% if page is empty %} + {% trans 'Variables' %} + {% else %} + + {% trans 'Variables' %} + + {% endif %} + {% for current, label in engine.info_pages %} + | + {% if page is defined and page == current %} + {{ label }} + {% else %} + + {{ label }} + + {% endif %} + {% endfor %} + ] +

    + {% endif %} + + {% if engine.page is not empty %} + {{ engine.page|raw }} + {% else %} +

    {{ engine.support }}

    + {{ engine.variables|raw }} + {% endif %} +{% else %} +

    {{ 'Unknown storage engine.'|trans|error }}

    +{% endif %} diff --git a/srcs/phpmyadmin/templates/server/plugins/index.twig b/srcs/phpmyadmin/templates/server/plugins/index.twig new file mode 100644 index 0000000..ec8bbd4 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/plugins/index.twig @@ -0,0 +1,58 @@ +

    + {{ get_image('b_plugin') }} + {% trans 'Plugins' %} +

    + +
    + + {% for type, list in plugins %} +
    + + + + + + + + + + + + + {% for plugin in list %} + + + + + + + + {% endfor %} + +
    + {{ type }} +
    {% trans 'Plugin' %}{% trans 'Description' %}{% trans 'Version' %}{% trans 'Author' %}{% trans 'License' %}
    + {{ plugin.name }} + {% if plugin.status != 'ACTIVE' %} + + {% if plugin.status == 'INACTIVE' %} + {% trans 'inactive' %} + {% elseif plugin.status == 'DISABLED' %} + {% trans 'disabled' %} + {% elseif plugin.status == 'DELETING' %} + {% trans 'deleting' %} + {% elseif plugin.status == 'DELETED' %} + {% trans 'deleted' %} + {% endif %} + + {% endif %} + {{ plugin.description }}{{ plugin.version }}{{ plugin.author }}{{ plugin.license }}
    +
    + {% endfor %} +
    diff --git a/srcs/phpmyadmin/templates/server/privileges/add_user_fieldset.twig b/srcs/phpmyadmin/templates/server/privileges/add_user_fieldset.twig new file mode 100644 index 0000000..26f0419 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/add_user_fieldset.twig @@ -0,0 +1,8 @@ +
    + {% trans %}New{% context %}Create new user{% endtrans %} + + {{ get_icon('b_usradd') }}{% trans 'Add user account' %} +
    diff --git a/srcs/phpmyadmin/templates/server/privileges/choose_user_group.twig b/srcs/phpmyadmin/templates/server/privileges/choose_user_group.twig new file mode 100644 index 0000000..a28f302 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/choose_user_group.twig @@ -0,0 +1,9 @@ +
    + {{ get_hidden_inputs(params) }} +
    + {% trans 'User group' %} + {% trans 'User group' %}: + {{ get_dropdown('userGroup', all_user_groups, user_group, 'userGroup_select') }} + +
    +
    diff --git a/srcs/phpmyadmin/templates/server/privileges/column_privileges.twig b/srcs/phpmyadmin/templates/server/privileges/column_privileges.twig new file mode 100644 index 0000000..b49efa5 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/column_privileges.twig @@ -0,0 +1,24 @@ +
    + + + + + {% trans 'Or' %} + +
    diff --git a/srcs/phpmyadmin/templates/server/privileges/delete_user_fieldset.twig b/srcs/phpmyadmin/templates/server/privileges/delete_user_fieldset.twig new file mode 100644 index 0000000..84d288f --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/delete_user_fieldset.twig @@ -0,0 +1,17 @@ +
    + + {{ get_icon('b_usrdrop') }}{% trans 'Remove selected user accounts' %} + + +

    ({% trans 'Revoke all active privileges from the users and delete them afterwards.' %})

    + + +
    + + diff --git a/srcs/phpmyadmin/templates/server/privileges/edit_routine_privileges.twig b/srcs/phpmyadmin/templates/server/privileges/edit_routine_privileges.twig new file mode 100644 index 0000000..12f8433 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/edit_routine_privileges.twig @@ -0,0 +1,26 @@ +
    + {{ header|raw }} + +
    diff --git a/srcs/phpmyadmin/templates/server/privileges/global_priv_table.twig b/srcs/phpmyadmin/templates/server/privileges/global_priv_table.twig new file mode 100644 index 0000000..54b1046 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/global_priv_table.twig @@ -0,0 +1,22 @@ +{% for key, table in priv_table %} +
    + + + + + {% for priv in table %} + {% set checked = row[priv[0] ~ '_priv'] is defined and row[priv[0] ~ '_priv'] == 'Y' ? ' checked="checked"' %} + {% set formatted_priv = format_privilege(priv, true) %} +
    + + +
    + {% endfor %} +
    +{% endfor %} diff --git a/srcs/phpmyadmin/templates/server/privileges/initials_row.twig b/srcs/phpmyadmin/templates/server/privileges/initials_row.twig new file mode 100644 index 0000000..feadc46 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/initials_row.twig @@ -0,0 +1,26 @@ + + + {% for tmp_initial, initial_was_found in array_initials %} + {% if tmp_initial is not same as(null) %} + {% if initial_was_found %} + + {% else %} + + {% endif %} + {% endif %} + {% endfor %} + + +
    + + {{- tmp_initial|raw -}} + + {{ tmp_initial|raw }} + + {% trans 'Show all' %} + +
    diff --git a/srcs/phpmyadmin/templates/server/privileges/privileges_summary.twig b/srcs/phpmyadmin/templates/server/privileges/privileges_summary.twig new file mode 100644 index 0000000..438ecb7 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/privileges_summary.twig @@ -0,0 +1,104 @@ + diff --git a/srcs/phpmyadmin/templates/server/privileges/require_options.twig b/srcs/phpmyadmin/templates/server/privileges/require_options.twig new file mode 100644 index 0000000..03da691 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/require_options.twig @@ -0,0 +1,32 @@ +
    + SSL +
    + {% for require_option in require_options %} + {% if require_option['name'] is same as('ssl_cipher') %} +
    + {% endif %} +
    + {% if require_option['radio'] %} + + + {% else %} + + + {% endif %} +
    + {% endfor %} +
    {# END specified_div #} +
    {# END require_ssl_div #} +
    diff --git a/srcs/phpmyadmin/templates/server/privileges/resource_limits.twig b/srcs/phpmyadmin/templates/server/privileges/resource_limits.twig new file mode 100644 index 0000000..2569bd7 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/privileges/resource_limits.twig @@ -0,0 +1,21 @@ +
    + {% trans 'Resource limits' %} +

    + + {% trans 'Note: Setting these options to 0 (zero) removes the limit.' %} + +

    + {% for limit in limits %} +
    + + +
    + {% endfor %} +
    diff --git a/srcs/phpmyadmin/templates/server/replication/change_master.twig b/srcs/phpmyadmin/templates/server/replication/change_master.twig new file mode 100644 index 0000000..1ff75ba --- /dev/null +++ b/srcs/phpmyadmin/templates/server/replication/change_master.twig @@ -0,0 +1,35 @@ +
    + {{ get_hidden_inputs('', '') }} +
    + + {% trans 'Slave configuration' %} - + {% trans 'Change or reconfigure master server' %} + +

    + {% trans 'Make sure you have a unique server-id in your configuration file (my.cnf). If not, please add the following line into [mysqld] section:' %} +

    +
    server-id={{ server_id }}
    + +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    diff --git a/srcs/phpmyadmin/templates/server/replication/database_multibox.twig b/srcs/phpmyadmin/templates/server/replication/database_multibox.twig new file mode 100644 index 0000000..816db08 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/replication/database_multibox.twig @@ -0,0 +1,9 @@ + +

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

    diff --git a/srcs/phpmyadmin/templates/server/replication/index.twig b/srcs/phpmyadmin/templates/server/replication/index.twig new file mode 100644 index 0000000..c40df0d --- /dev/null +++ b/srcs/phpmyadmin/templates/server/replication/index.twig @@ -0,0 +1,36 @@ +

    + {{ get_image('s_replication') }} + {% trans 'Replication' %} +

    + +{% if is_super_user %} +
    + {{ error_messages|raw }} + + {% if is_master %} + {{ master_replication_html|raw }} + {% elseif master_configure is null and clear_screen is null %} +
    + {% trans 'Master replication' %} + {% apply format('', '')|raw %} + {% trans %} + This server is not configured as master in a replication process. Would you like to %sconfigure%s it? + {% endtrans %} + {% endapply %} +
    + {% endif %} + + {% if master_configure is not null %} + {{ master_configuration_html|raw }} + {% else %} + {% if clear_screen is null %} + {{ slave_configuration_html|raw }} + {% endif %} + {% if slave_configure is not null %} + {{ change_master_html|raw }} + {% endif %} + {% endif %} +
    +{% else %} + {{ 'No privileges'|trans|error }} +{% endif %} diff --git a/srcs/phpmyadmin/templates/server/replication/master_add_slave_user.twig b/srcs/phpmyadmin/templates/server/replication/master_add_slave_user.twig new file mode 100644 index 0000000..5c2eec3 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/replication/master_add_slave_user.twig @@ -0,0 +1,84 @@ +
    +
    + {{ get_hidden_inputs('', '') }} + +
    + {% trans 'Add slave replication user' %} + + + + {# Needed for the replication slaves. #} + + + +
    + + + + + +
    + +
    + + + + + + {{ show_hint('When Host table is used, this field is ignored and values stored in Host table are used instead.'|trans) }} +
    + +
    + + + + + +
    + +
    + + + +
    + +
    + + + + + +
    +
    + + +
    +
    diff --git a/srcs/phpmyadmin/templates/server/replication/master_configuration.twig b/srcs/phpmyadmin/templates/server/replication/master_configuration.twig new file mode 100644 index 0000000..5243bac --- /dev/null +++ b/srcs/phpmyadmin/templates/server/replication/master_configuration.twig @@ -0,0 +1,32 @@ +
    + {% trans 'Master configuration' %} +

    + {% trans %} + This server is not configured as a master server in a replication process. You can choose from either replicating all databases and ignoring some of them (useful if you want to replicate a majority of the databases) or you can choose to ignore all databases by default and allow only certain databases to be replicated. Please select the mode: + {% endtrans %} +

    + +

    {% trans 'Please select databases:' %}

    + {{ database_multibox|raw }} +

    + {% trans %} + Now, add the following lines at the end of [mysqld] section in your my.cnf and please restart the MySQL server afterwards. + {% endtrans %} +

    +
    
    +  

    + {% trans %} + Once you restarted MySQL server, please click on Go button. Afterwards, you should see a message informing you, that this server is configured as master. + {% endtrans %} +

    +
    + +
    +
    + {{ get_hidden_inputs('', '') }} + +
    +
    diff --git a/srcs/phpmyadmin/templates/server/replication/master_replication.twig b/srcs/phpmyadmin/templates/server/replication/master_replication.twig new file mode 100644 index 0000000..8ba5d1b --- /dev/null +++ b/srcs/phpmyadmin/templates/server/replication/master_replication.twig @@ -0,0 +1,52 @@ +{% if not clear_screen %} +
    + {% trans 'Master replication' %} + {% trans 'This server is configured as master in a replication process.' %} + +
    +{% endif %} diff --git a/srcs/phpmyadmin/templates/server/replication/slave_configuration.twig b/srcs/phpmyadmin/templates/server/replication/slave_configuration.twig new file mode 100644 index 0000000..5b12ea7 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/replication/slave_configuration.twig @@ -0,0 +1,109 @@ +
    + {% trans 'Slave replication' %} + {% if server_slave_multi_replication %} + {% trans 'Master connection:' %} +
    + {{ get_hidden_inputs(url_params) }} + + +
    +
    +
    + {% endif %} + + {% if server_slave_status %} +
    + {% if not slave_sql_running %} + {{ 'Slave SQL Thread not running!'|trans|error }} + {% endif %} + {% if not slave_io_running %} + {{ 'Slave IO Thread not running!'|trans|error }} + {% endif %} + +

    {% trans 'Server is configured as slave in a replication process. Would you like to:' %}

    + +
    + {% elseif not has_slave_configure %} + {% apply format('', '')|raw %} + {% trans 'This server is not configured as slave in a replication process. Would you like to %sconfigure%s it?' %} + {% endapply %} + {% endif %} +
    diff --git a/srcs/phpmyadmin/templates/server/replication/status_table.twig b/srcs/phpmyadmin/templates/server/replication/status_table.twig new file mode 100644 index 0000000..79c45f6 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/replication/status_table.twig @@ -0,0 +1,34 @@ + diff --git a/srcs/phpmyadmin/templates/server/status/advisor/index.twig b/srcs/phpmyadmin/templates/server/status/advisor/index.twig new file mode 100644 index 0000000..b1bc3a9 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/status/advisor/index.twig @@ -0,0 +1,39 @@ +{% extends 'server/status/base.twig' %} +{% set active = 'advisor' %} + +{% block content %} + + {% if data is not empty %} + {{ get_icon('b_help', 'Instructions'|trans) }} + +
    + +
    +

    + {% trans %} + The Advisor system can provide recommendations on server variables by analyzing the server status variables. + {% endtrans %} +

    +

    + {% trans %} + Do note however that this system provides recommendations based on simple calculations and by rule of thumb which may not necessarily apply to your system. + {% endtrans %} +

    +

    + {% trans %} + Prior to changing any of the configuration, be sure to know what you are changing (by reading the documentation) and how to undo the change. Wrong tuning can have a very negative effect on performance. + {% endtrans %} +

    +

    + {% trans %} + The best way to tune your system would be to change only one setting at a time, observe or benchmark your database, and undo the change if there was no clearly measurable improvement. + {% endtrans %} +

    +
    + +
    {{ data }}
    + {% else %} + {{ 'Not enough privilege to view the advisor.'|trans|error }} + {% endif %} + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/server/status/base.twig b/srcs/phpmyadmin/templates/server/status/base.twig new file mode 100644 index 0000000..66547a8 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/status/base.twig @@ -0,0 +1,39 @@ +
    + +
    + +
    + {% block content %}{% endblock %} +
    +
    diff --git a/srcs/phpmyadmin/templates/server/status/monitor/index.twig b/srcs/phpmyadmin/templates/server/status/monitor/index.twig new file mode 100644 index 0000000..c4c7277 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/status/monitor/index.twig @@ -0,0 +1,268 @@ +{% extends 'server/status/base.twig' %} +{% set active = 'monitor' %} +{% block content %} + + + +
    + + {{ get_image('b_chart') }} + {% trans 'Add chart' %} + + + {{ get_image('b_tblops') }} + {% trans 'Enable charts dragging' %} + +
    + +
    + {% trans 'Refresh rate' %} +
    + +
    +
    + +
    + {% trans 'Chart columns' %} +
    + +
    + +
    + {% trans 'Chart arrangement' %} + {{ show_hint('The arrangement of the charts is stored to the browsers local storage. You may want to export it if you have a complicated set up.'|trans) }} +
    + + {% trans 'Import' %} + - + + {% trans 'Export' %} + - + + {% trans 'Reset to default' %} + +
    +
    + +
    +

    + {% trans %} + The phpMyAdmin Monitor can assist you in optimizing the server configuration and track down time intensive queries. For the latter you will need to set log_output to 'TABLE' and have either the slow_query_log or general_log enabled. Note however, that the general_log produces a lot of data and increases server load by up to 15%. + {% endtrans %} +

    + {% trans 'Loading…' %} + +
    +
    + +
    +

    {% trans 'Using the monitor:' %}

    +

    + {% trans %} + Your browser will refresh all displayed charts in a regular interval. You may add charts and change the refresh rate under 'Settings', or remove any chart using the cog icon on each respective chart. + {% endtrans %} +

    +

    + {% trans %} + To display queries from the logs, select the relevant time span on any chart by holding down the left mouse button and panning over the chart. Once confirmed, this will load a table of grouped queries, there you may click on any occurring SELECT statements to further analyze them. + {% endtrans %} +

    +

    + {{ get_image('s_attention') }} + {% trans 'Please note:' %} +

    +

    + {% trans %} + Enabling the general_log may increase the server load by 5-15%. Also be aware that generating statistics from the logs is a load intensive task, so it is advisable to select only a small time span and to disable the general_log and empty its table once monitoring is not required any more. + {% endtrans %} +

    +
    +
    + +
    +
    +

    + +

    + + + + +
    + + + +
    + +
    + +
    + +
    + + + +
    + + + +
    + + + + + + + ({% trans 'KiB' %}, + {% trans 'MiB' %}) + +
    + + + + + + + +

    + + {% trans 'Add this series' %} + + + | {% trans 'Clear series' %} + +

    + + {% trans 'Series in chart:' %} +
    + + {% trans 'None' %} + +
    +
    +
    + +
    +

    + {% trans 'Selected time range:' %} + + - + +

    + + + +
    + + + + +

    + {% trans 'Choose from which log you want the statistics to be generated from.' %} +

    +

    + {% trans 'Results are grouped by query text.' %} +

    +
    + +
    + +
    +
    +
    + +
    +

    + + + +
    + {% for name, value in form %} + + {% endfor %} +
    + +
    + {{ show_mysql_docu('general-thread-states') }} +
    + +
    + {{ show_mysql_docu('explain-output') }} +
    + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/server/status/processes/index.twig b/srcs/phpmyadmin/templates/server/status/processes/index.twig new file mode 100644 index 0000000..bb73156 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/status/processes/index.twig @@ -0,0 +1,53 @@ +{% extends 'server/status/base.twig' %} +{% set active = 'processes' %} +{% block content %} + +
    + {% trans 'Filters' %} +
    + {{ get_hidden_inputs(url_params) }} + +
    + + +
    +
    +
    + +{{ server_process_list|raw }} + +{{ 'Note: Enabling the auto refresh here might cause heavy traffic between the web server and the MySQL server.'|trans|notice }} + + + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/server/status/processes/list.twig b/srcs/phpmyadmin/templates/server/status/processes/list.twig new file mode 100644 index 0000000..83561f9 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/status/processes/list.twig @@ -0,0 +1,65 @@ +
    + + + + + {% for column in columns %} + + {% endfor %} + + + + + {% for row in rows %} + + + + + + + + + + + + {% endfor %} + +
    {% trans 'Processes' %} + + {{ column.name }} + {% if column.is_sorted %} + 
+                  {%- trans 'Descending' %} + 
+                  {%- trans 'Ascending' %} + {% endif %} + + {% if column.has_full_query %} + + {% if column.is_full %} + {{ get_image( + 's_partialtext', + 'Truncate shown queries'|trans, + {'class': 'icon_fulltext'} + ) }} + {% else %} + {{ get_image( + 's_fulltext', + 'Show full queries'|trans, + {'class': 'icon_fulltext'} + ) }} + {% endif %} + + {% endif %} +
    + + {% trans 'Kill' %} + + {{ row.id }}{{ row.user }}{{ row.host }} + {% if row.db != '' %} + {{ row.db }} + {% else %} + {% trans 'None' %} + {% endif %} + {{ row.command }}{{ row.time }}{{ row.state }}{{ row.progress }}{{ row.info|raw }}
    +
    diff --git a/srcs/phpmyadmin/templates/server/status/queries/index.twig b/srcs/phpmyadmin/templates/server/status/queries/index.twig new file mode 100644 index 0000000..be743b9 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/status/queries/index.twig @@ -0,0 +1,56 @@ +{% extends 'server/status/base.twig' %} +{% set active = 'queries' %} +{% block content %} + +{% if is_data_loaded %} +

    + {% trans %} + Questions since startup: + {% notes %} + Questions is the name of a MySQL Status variable + {% endtrans %} + {{ format_number(stats.total, 0) }} + {{ show_mysql_docu('server-status-variables', false, null, null, 'statvar_Questions') }} +

    + +
      +
    • ø {% trans 'per hour:' %} {{ format_number(stats.per_hour, 0) }}
    • +
    • ø {% trans 'per minute:' %} {{ format_number(stats.per_minute, 0) }}
    • + {% if stats.per_second >= 1 %} +
    • ø {% trans 'per second:' %} {{ format_number(stats.per_second, 0) }}
    • + {% endif %} +
    + + + + + + + + + + + + + + + + + + {% for query in queries %} + + + + + + + {% endfor %} + +
    {% trans 'Statements' %}{% trans %}#{% notes %}# = Amount of queries{% endtrans %}ø {% trans 'per hour' %}%
    {{ query.name }}{{ format_number(query.value, 5, 0, true) }}{{ format_number(query.per_hour, 4, 1, true) }}{{ format_number(query.percentage, 0, 2) }}
    + +
    +{% else %} + {{ 'Not enough privilege to view query statistics.'|trans|error }} +{% endif %} + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/server/status/status/index.twig b/srcs/phpmyadmin/templates/server/status/status/index.twig new file mode 100644 index 0000000..53fd63f --- /dev/null +++ b/srcs/phpmyadmin/templates/server/status/status/index.twig @@ -0,0 +1,78 @@ +{% extends 'server/status/base.twig' %} +{% set active = 'status' %} +{% block content %} + +{% if is_data_loaded %} +

    {{ 'Network traffic since startup: %s'|trans|format(network_traffic) }}

    +

    {{ 'This MySQL server has been running for %1$s. It started up on %2$s.'|trans|format(uptime, start_time) }}

    + + + + + + + + + + + + {% for each_traffic in traffic %} + + + + + + {% endfor %} + +
    + {% trans 'Traffic' %} + {{ show_hint('On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'|trans) }} + #ø {% trans 'per hour' %}
    {{ each_traffic.name }}{{ each_traffic.number }}{{ each_traffic.per_hour }}
    + + + + + + + + + + + + + {% for connection in connections %} + + + + + + + {% endfor %} + +
    {% trans 'Connections' %}#ø {% trans 'per hour' %}%
    {{ connection.name }}{{ connection.number }}{{ connection.per_hour }}{{ connection.percentage }}
    + + {% if is_master or is_slave %} +

    + {% if is_master and is_slave %} + {% trans 'This MySQL server works as master and slave in replication process.' %} + {% elseif is_master %} + {% trans 'This MySQL server works as master in replication process.' %} + {% elseif is_slave %} + {% trans 'This MySQL server works as slave in replication process.' %} + {% endif %} +

    + +
    + +

    + {% trans 'Replication status' %} +

    + + {{ replication|raw }} + {% endif %} + +{% else %} + {{ 'Not enough privilege to view server status.'|trans|error }} +{% endif %} + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/server/status/variables/index.twig b/srcs/phpmyadmin/templates/server/status/variables/index.twig new file mode 100644 index 0000000..a5f8724 --- /dev/null +++ b/srcs/phpmyadmin/templates/server/status/variables/index.twig @@ -0,0 +1,137 @@ +{% extends 'server/status/base.twig' %} +{% set active = 'variables' %} +{% block content %} + +{% if is_data_loaded %} +
    + {% trans 'Filters' %} +
    + {{ get_hidden_inputs() }} + + + +
    + + +
    + +
    + + +
    + +
    + +
    + +
    + + +
    +
    +
    + + + +
    + + + + + + + + + + + + + + + {% for variable in variables %} + + + + + + + + {% endfor %} + +
    {% trans 'Variable' %}{% trans 'Value' %}{% trans 'Description' %}
    + {{ variable.name|replace({'_': ' '}) }} + {{ variable.doc|raw }} + + + {% if variable.has_alert %} + + {% endif %} + + {% if variable.name ends with '%' %} + {{ format_number(variable.value, 0, 2) }} % + {% elseif 'Uptime' in variable.name %} + {{ timespan_format(variable.value) }} + {% elseif variable.is_numeric and variable.value >= 1000 %} + + {{ format_number(variable.value, 3, 1) }} + + {% elseif variable.is_numeric %} + {{ format_number(variable.value, 3, 1) }} + {% else %} + {{ variable.value }} + {% endif %} + + {% if variable.has_alert %} + + {% endif %} + + + {% if variable.has_alert %} + + {% endif %} + {{ variable.value }} + {% if variable.has_alert %} + + {% endif %} + + + {{ variable.description }} + {% for doc in variable.description_doc %} + {% if doc.name == 'doc' %} + {{ show_mysql_docu(doc.url) }} + {% else %} + {{ doc.name }} + {% endif %} + {% endfor %} +
    +
    +{% else %} + {{ 'Not enough privilege to view status variables.'|trans|error }} +{% endif %} + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/server/sub_page_header.twig b/srcs/phpmyadmin/templates/server/sub_page_header.twig new file mode 100644 index 0000000..d1c521c --- /dev/null +++ b/srcs/phpmyadmin/templates/server/sub_page_header.twig @@ -0,0 +1,16 @@ +{# array contains Sub page icon and text #} +{% set header = { + 'privileges': { + 'image': 'b_usrlist', + 'text': 'Privileges'|trans + } +} %} +

    + {% if is_image|default(true) %} + {{ get_image(header[type]['image']) }} + {% else %} + {{ get_icon(header[type]['image']) }} + {% endif %} + {{ header[type]['text'] }} + {{ link is defined ? show_mysql_docu(link) }} +

    diff --git a/srcs/phpmyadmin/templates/server/variables/index.twig b/srcs/phpmyadmin/templates/server/variables/index.twig new file mode 100644 index 0000000..75020cb --- /dev/null +++ b/srcs/phpmyadmin/templates/server/variables/index.twig @@ -0,0 +1,78 @@ +

    + {{ get_image('s_vars') }} + {% trans 'Server variables and settings' %} + {{ show_mysql_docu('server_system_variables') }} +

    + +{% if variables is not empty %} + + {{ get_icon('b_save', 'Save'|trans) }} + + + {{ get_icon('b_close', 'Cancel'|trans) }} + + {{ get_image('b_help', 'Documentation'|trans, { + 'class': 'hide', + 'id': 'docImage' + }) }} + + {% include 'filter.twig' with { + 'filter_value': filter_value + } only %} + +
    + + + + + + + + + + + {% for variable in variables %} + + + + + + + {% if variable.has_session_value %} + + + + + + {% endif %} + {% endfor %} + +
    {% trans 'Action' %}{% trans 'Variable' %}{% trans 'Value' %}
    + {% if variable.is_editable %} + {{ get_icon('b_edit', 'Edit'|trans) }} + {% else %} + + {{ get_icon('bd_edit', 'Edit'|trans) }} + + {% endif %} + + {% if variable.doc_link != null %} + + {{ variable.doc_link|raw }} + + {% else %} + {{ variable.name|replace({'_': ' '}) }} + {% endif %} + + {% if variable.is_escaped %} + {{ variable.value|raw }} + {% else %} + {{ variable.value|e|replace({',': ',​'})|raw }} + {% endif %} +
    ({% trans 'Session value' %}){{ variable.session_value }}
    +
    +{% else %} + {{ 'Not enough privilege to view server variables and settings. %s'|trans|format( + link_to_var_documentation('show_compatibility_56', is_mariadb) + )|error }} +{% endif %} diff --git a/srcs/phpmyadmin/templates/setup/base.twig b/srcs/phpmyadmin/templates/setup/base.twig new file mode 100644 index 0000000..7fe7fb6 --- /dev/null +++ b/srcs/phpmyadmin/templates/setup/base.twig @@ -0,0 +1,48 @@ + + + + + phpMyAdmin setup + + + + + + + + + + + + +

    + phpMyAdmin + setup +

    + + + +
    + {% block content %}{% endblock %} +
    + + + diff --git a/srcs/phpmyadmin/templates/setup/config/index.twig b/srcs/phpmyadmin/templates/setup/config/index.twig new file mode 100644 index 0000000..9f42695 --- /dev/null +++ b/srcs/phpmyadmin/templates/setup/config/index.twig @@ -0,0 +1,29 @@ +{% extends 'setup/base.twig' %} +{% block content %} + +

    {% trans 'Configuration file' %}

    + +{{ form_top_html|raw }} + + + +{{ fieldset_top_html|raw }} + + + + + + + + + + + + + +{{ form_bottom_html|raw }} +{{ fieldset_bottom_html|raw }} + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/setup/error.twig b/srcs/phpmyadmin/templates/setup/error.twig new file mode 100644 index 0000000..17f042b --- /dev/null +++ b/srcs/phpmyadmin/templates/setup/error.twig @@ -0,0 +1,19 @@ +
    +

    {% trans 'Warning' %}

    +

    {% trans 'Submitted form contains errors' %}

    +

    + + {% trans 'Try to revert erroneous fields to their default values' %} + +

    +
    + +{{ errors|raw }} + + + {% trans 'Ignore errors' %} + + + + {% trans 'Show form' %} + diff --git a/srcs/phpmyadmin/templates/setup/form/index.twig b/srcs/phpmyadmin/templates/setup/form/index.twig new file mode 100644 index 0000000..c7970eb --- /dev/null +++ b/srcs/phpmyadmin/templates/setup/form/index.twig @@ -0,0 +1,8 @@ +{% extends 'setup/base.twig' %} +{% block content %} + +

    {{ name }}

    + +{{ page|raw }} + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/setup/home/index.twig b/srcs/phpmyadmin/templates/setup/home/index.twig new file mode 100644 index 0000000..a289af7 --- /dev/null +++ b/srcs/phpmyadmin/templates/setup/home/index.twig @@ -0,0 +1,121 @@ +{% extends 'setup/base.twig' %} +{% block content %} + +
    + {{ get_hidden_inputs() }} + + + +
    + +
    + +

    {% trans 'Overview' %}

    + + + {% trans 'Show hidden messages' %} (#MSG_COUNT) + + +{% for message in messages %} +
    +

    {{ message.title }}

    + {{ message.message|raw }} +
    +{% endfor %} + +
    + {% trans 'Servers' %} + + {{ servers_form_top_html|raw }} + +
    + {% if server_count > 0 %} + + + + + + + + + {% for server in servers %} + + + + + + + + {% endfor %} +
    #{% trans 'Name' %}{% trans 'Authentication type' %}DSN
    {{ server.id }}{{ server.name }}{{ server.auth_type }}{{ server.dsn }} + + + {% trans 'Edit' %} + + | + + {% trans 'Delete' %} + + +
    + {% else %} + + + + +
    + {% trans 'There are no configured servers' %} +
    + {% endif %} + + + + + +
    + +
    +
    + + {{ form_bottom_html|raw }} + +
    + +
    + {% trans 'Configuration file' %} + + {{ config_form_top_html|raw }} + + + {{ default_language_input|raw }} + {{ server_default_input|raw }} + {{ eol_input|raw }} + + + + +
    + + + +
    + + {{ form_bottom_html|raw }} + +
    + + + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/setup/servers/index.twig b/srcs/phpmyadmin/templates/setup/servers/index.twig new file mode 100644 index 0000000..42b0745 --- /dev/null +++ b/srcs/phpmyadmin/templates/setup/servers/index.twig @@ -0,0 +1,16 @@ +{% extends 'setup/base.twig' %} +{% block content %} + +{% if mode == 'edit' and has_server %} +

    + {% trans 'Edit server' %} + {{ server_id }} + ({{ server_dsn }}) +

    +{% elseif mode != 'revert' or not has_server %} +

    {% trans 'Add a new server' %}

    +{% endif %} + +{{ page|raw }} + +{% endblock %} diff --git a/srcs/phpmyadmin/templates/sql/bookmark.twig b/srcs/phpmyadmin/templates/sql/bookmark.twig new file mode 100644 index 0000000..71abc3d --- /dev/null +++ b/srcs/phpmyadmin/templates/sql/bookmark.twig @@ -0,0 +1,31 @@ + diff --git a/srcs/phpmyadmin/templates/sql/detailed_table.twig b/srcs/phpmyadmin/templates/sql/detailed_table.twig new file mode 100644 index 0000000..4d8fe9c --- /dev/null +++ b/srcs/phpmyadmin/templates/sql/detailed_table.twig @@ -0,0 +1,8 @@ + + {{ index }} + {{ status|title }} + + {{ format_number(duration, 3, 1) }}s + {{ duration }} + + diff --git a/srcs/phpmyadmin/templates/sql/enum_column_dropdown.twig b/srcs/phpmyadmin/templates/sql/enum_column_dropdown.twig new file mode 100644 index 0000000..f8be9a8 --- /dev/null +++ b/srcs/phpmyadmin/templates/sql/enum_column_dropdown.twig @@ -0,0 +1,6 @@ + diff --git a/srcs/phpmyadmin/templates/sql/profiling_chart.twig b/srcs/phpmyadmin/templates/sql/profiling_chart.twig new file mode 100644 index 0000000..0f80954 --- /dev/null +++ b/srcs/phpmyadmin/templates/sql/profiling_chart.twig @@ -0,0 +1,97 @@ +
    + {% trans 'Profiling' %} +
    +

    {% trans 'Detailed profile' %}

    + + + + + + + + + + {{ detailed_table|raw }} + +
    + {% trans 'Order' %} +
    +
    + {% trans 'State' %} + {{ show_mysql_docu('general-thread-states') }} +
    +
    + {% trans 'Time' %} +
    +
    +
    + +
    +

    {% trans 'Summary by state' %}

    + + + + + + + + + + + + {% for name, stats in states %} + + + + + + + + {% endfor %} + +
    + {% trans 'State' %} + {{ show_mysql_docu('general-thread-states') }} +
    +
    + {% trans 'Total Time' %} +
    +
    + {% trans '% Time' %} +
    +
    + {% trans 'Calls' %} +
    +
    + {% trans 'ø Time' %} +
    +
    {{ name }} + {{ format_number(stats['total_time'], 3, 1) }}s + {{ stats['total_time'] }} + + {{ format_number(100 * (stats['total_time'] / total_time), 0, 2) }}% + {{ stats['calls'] }} + {{ format_number(stats['total_time'] / stats['calls'], 3, 1) }}s + + {{ (stats['total_time'] / stats['calls'])|number_format(8, '.', '') }} + +
    + + +
    +
    + +
    + {{ chart_json|json_encode() }} +
    +
    + + +
    diff --git a/srcs/phpmyadmin/templates/sql/relational_column_dropdown.twig b/srcs/phpmyadmin/templates/sql/relational_column_dropdown.twig new file mode 100644 index 0000000..6a2aaff --- /dev/null +++ b/srcs/phpmyadmin/templates/sql/relational_column_dropdown.twig @@ -0,0 +1,4 @@ +{{ current_value }} + + {% trans 'Browse foreign values' %} + diff --git a/srcs/phpmyadmin/templates/sql/set_column.twig b/srcs/phpmyadmin/templates/sql/set_column.twig new file mode 100644 index 0000000..989812e --- /dev/null +++ b/srcs/phpmyadmin/templates/sql/set_column.twig @@ -0,0 +1,5 @@ + diff --git a/srcs/phpmyadmin/templates/sql/sql_query_results.twig b/srcs/phpmyadmin/templates/sql/sql_query_results.twig new file mode 100644 index 0000000..d9f2c3b --- /dev/null +++ b/srcs/phpmyadmin/templates/sql/sql_query_results.twig @@ -0,0 +1,10 @@ +{{ table_maintenance|raw }} +
    + {{ previous_update_query|raw }} + {{ profiling_chart|raw }} + {{ missing_unique_column_message|raw }} + {{ bookmark_created_message|raw }} + {{ table|raw }} + {{ indexes_problems|raw }} + {{ bookmark_support|raw }} +
    diff --git a/srcs/phpmyadmin/templates/start_and_number_of_rows_panel.twig b/srcs/phpmyadmin/templates/start_and_number_of_rows_panel.twig new file mode 100644 index 0000000..78d16f6 --- /dev/null +++ b/srcs/phpmyadmin/templates/start_and_number_of_rows_panel.twig @@ -0,0 +1,20 @@ +
    +
    + + 0 -%} + max="{{ unlim_num_rows - 1 }}" + {%- endif %} + value="{{ pos }}"> + + + + + + +
    +
    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 @@ + + {{ is_selected ? '' }} + + {% if nowrap %} + {{ keyname }} + {% else %} + {{ description }} + {% endif %} + + {{ is_selected ? '' }} + 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) %} + +{% 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 @@ + +{# Display Chart options #} +
    +
    + {{ get_hidden_inputs(url_params) }} +
    + + {% trans 'Display chart' %} + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + + + + + + + + + + + + +

    + + + + +

    + + +
    + {% set xaxis = null %} +
    + + +
    + + + + +
    +
    + + +
    + + +
    +
    +
    +
    + + +
    + + + + +
    + {{ get_start_and_number_of_rows_panel(sql_query) }} +
    + +
    +
    +
    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 @@ +
    +
    + {% trans 'Display GIS Visualization' %} +
    +
    + {{ get_hidden_inputs(url_params) }} + + + + + + + + + + + + {{ get_start_and_number_of_rows_panel(sql_query) }} +
    + +
    +
    + + {{ get_image('b_saveimage', 'Save'|trans) }} + + +
    +
    +
    + +
    + +
    + {{ visualization|raw }} +
    +
    + + +
    +
    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 @@ +
    + + {{ get_hidden_inputs(form_params) }} + +
    +
    +
    +
    + + + +
    + + +
    + +
    +
    + + + +
    + {{ index.generateIndexChoiceSelector(create_edit_table)|raw }} +
    + + {% include 'div_for_slider_effect.twig' with { + 'id': 'indexoptions', + 'message': 'Advanced Options'|trans, + 'initial_sliders_state': default_sliders_state + } only %} + +
    +
    + + + +
    + + +
    + +
    + +
    + + + +
    + {{ index.generateIndexTypeSelector()|raw }} +
    + +
    +
    + + + +
    + + +
    + +
    +
    + + + +
    + + +
    +
    + + +
    + + + + + + + + + + {% set spatial_types = [ + 'geometry', + 'point', + 'linestring', + 'polygon', + 'multipoint', + 'multilinestring', + 'multipolygon', + 'geomtrycollection' + ] %} + + {% for column in index.getColumns() %} + + + + + + {% endfor %} + {% if add_fields > 0 %} + {% for i in range(1, add_fields) %} + + + + + + {% endfor %} + {% endif %} + +
    + {% trans 'Column' %} + + {% trans 'Size' %} +
    + + + + + +
    + + + + + +
    +
    + +
    +
    + +
    +
    +
    +
    + + +
    +
    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 @@ +
    + {{ get_hidden_inputs(db, table) }} + + + + + {% if has_where_clause %} + {% for key_id, where_clause in where_clause_array %} + + {% endfor %} + {% endif %} + + {% set insert_rows %} + + {% endset %} + {{ 'Continue insertion with %s rows'|trans|format(insert_rows)|raw }} +
    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 @@ + +
    +
    + {{ get_hidden_inputs(db, table) }} + +
    + {% trans 'Operations' %} + + + + + + +
    {% trans 'Rename view to' %} +
    +
    +
    + + +
    +
    +
    + +
    +
    + {% trans 'Delete data or table' %} +
      {{ delete_data_or_table_link | raw }}
    +
    +
    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 %} +
      + {{ 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) }} +
    +
    +{% endif %} + +
    + {% block content %} + {% endblock %} +
    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' %} + +{% block content %} +
    + {{ get_hidden_inputs(db, table) }} + {# InnoDB #} + {% if is_foreign_key_supported(tbl_storage_engine) %} +
    + {% trans 'Foreign key constraints' %} +
    + + + + + {% if tbl_storage_engine|upper == 'INNODB' %} + + {% else %} + + {% endif %} + + + + + + + + + + + {% 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 %} + + + +
    {% trans 'Actions' %}{% trans 'Constraint properties' %} + {% 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) }} + + {% trans 'Column' %} + {{ show_hint('Only columns with index will be displayed. You can define an index below.'|trans) }} + + {% trans 'Foreign key constraint' %} + ({{ tbl_storage_engine }}) +
    {% trans 'Database' %}{% trans 'Table' %}{% trans 'Column' %}
    + + {% trans '+ Add constraint' %} + +
    +
    +
    + {% endif %} + + {% if cfg_relation['relwork'] %} + {% if is_foreign_key_supported(tbl_storage_engine) %} + {% include 'div_for_slider_effect.twig' with { + 'id': 'ir_div', + 'message': 'Internal relationships'|trans, + 'initial_sliders_state': default_sliders_state + } only %} + {% endif %} + +
    + + {% trans 'Internal relationships' %} + {{ show_docu('config', 'cfg_Servers_relation') }} + + + + + + {% 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 %} + + + + + + + {% endfor %} +
    {% trans 'Column' %}{% 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 %} +
    + {{ myfield }} + + + {% 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 %} +
    +
    + {% if is_foreign_key_supported(tbl_storage_engine) %} +
    + {% endif %} + {% endif %} + + {% if cfg_relation['displaywork'] %} + {% set disp = get_display_field(db, table) %} +
    + + +
    + {% endif %} + +
    + + +
    + +{% if foreignKeySupported %} + {{ displayIndexesHtml|raw }} +{% endif %} +{% endblock %} diff --git a/srcs/phpmyadmin/templates/table/relation/dropdown_generate.twig b/srcs/phpmyadmin/templates/table/relation/dropdown_generate.twig new file mode 100644 index 0000000..ff179bc --- /dev/null +++ b/srcs/phpmyadmin/templates/table/relation/dropdown_generate.twig @@ -0,0 +1,9 @@ +{{ dropdown_question is not empty ? dropdown_question -}} + 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 @@ + + {# Drop key anchor #} + + {% 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 %} + + {% 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 %} + + + + + +
    + {# 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' %} + + {% include 'table/relation/dropdown_generate.twig' with { + 'dropdown_question': 'ON DELETE', + 'select_name': 'on_delete[' ~ i ~ ']', + 'choices': options_array, + 'selected_value': on_delete + } only %} + + + {% include 'table/relation/dropdown_generate.twig' with { + 'dropdown_question': 'ON UPDATE', + 'select_name': 'on_update[' ~ i ~ ']', + 'choices': options_array, + 'selected_value': on_update + } only %} + +
    + + + {% if one_key['index_list'] is defined %} + {% for key, column in one_key['index_list'] %} + + {% include 'table/relation/dropdown_generate.twig' with { + 'dropdown_question': '', + 'select_name': 'foreign_key_fields_name[' ~ i ~ '][]', + 'choices': column_array, + 'selected_value': column + } only %} + + {% endfor %} + {% else %} + + {% include 'table/relation/dropdown_generate.twig' with { + 'dropdown_question': '', + 'select_name': 'foreign_key_fields_name[' ~ i ~ '][]', + 'choices': column_array, + 'selected_value': '' + } only %} + + {% endif %} + + {% trans '+ Add column' %} + + + {% set tables = [] %} + {% if foreign_db %} + {% set tables = get_tables(foreign_db, tbl_storage_engine) %} + {% endif %} + + + {% include 'table/relation/relational_dropdown.twig' with { + 'name': 'destination_foreign_db[' ~ i ~ ']', + 'title': 'Database'|trans, + 'values': databases, + 'foreign': foreign_db + } only %} + + + + + {% include 'table/relation/relational_dropdown.twig' with { + 'name': 'destination_foreign_table[' ~ i ~ ']', + 'title': 'Table'|trans, + 'values': tables, + 'foreign': foreign_table + } only %} + + + + {% if foreign_db and foreign_table %} + {% for foreign_column in one_key['ref_index_list'] %} + + {% include 'table/relation/relational_dropdown.twig' with { + 'name': 'destination_foreign_column[' ~ i ~ '][]', + 'title': 'Column'|trans, + 'values': unique_columns, + 'foreign': foreign_column + } only %} + + {% endfor %} + {% else %} + + {% include 'table/relation/relational_dropdown.twig' with { + 'name': 'destination_foreign_column[' ~ i ~ '][]', + 'title': 'Column'|trans, + 'values': [], + 'foreign': '' + } only %} + + {% endif %} + + diff --git a/srcs/phpmyadmin/templates/table/relation/relational_dropdown.twig b/srcs/phpmyadmin/templates/table/relation/relational_dropdown.twig new file mode 100644 index 0000000..9d5f3c9 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/relation/relational_dropdown.twig @@ -0,0 +1,18 @@ + diff --git a/srcs/phpmyadmin/templates/table/search/column_comparison_operators.twig b/srcs/phpmyadmin/templates/table/search/column_comparison_operators.twig new file mode 100644 index 0000000..b72e530 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/column_comparison_operators.twig @@ -0,0 +1,3 @@ + diff --git a/srcs/phpmyadmin/templates/table/search/fields_table.twig b/srcs/phpmyadmin/templates/table/search/fields_table.twig new file mode 100644 index 0000000..8b74939 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/fields_table.twig @@ -0,0 +1,33 @@ + + + + {% if geom_column_flag %} + + {% endif %} + + + + + + + + + {% if search_type == 'zoom' %} + {% include 'table/search/rows_zoom.twig' with { + 'self': self, + 'column_names': column_names, + 'keys': keys, + 'criteria_column_names': criteria_column_names, + 'criteria_column_types': criteria_column_types + } only %} + {% else %} + {% include 'table/search/rows_normal.twig' with { + 'self': self, + 'geom_column_flag': geom_column_flag, + 'column_names': column_names, + 'column_types': column_types, + 'column_collations': column_collations + } only %} + {% endif %} + +
    {% trans 'Function' %}{% trans 'Column' %}{% trans 'Type' %}{% trans 'Collation' %}{% trans 'Operator' %}{% trans 'Value' %}
    diff --git a/srcs/phpmyadmin/templates/table/search/form_tag.twig b/srcs/phpmyadmin/templates/table/search/form_tag.twig new file mode 100644 index 0000000..1017abd --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/form_tag.twig @@ -0,0 +1,4 @@ +
    + {{ get_hidden_inputs(db, table) }} + + diff --git a/srcs/phpmyadmin/templates/table/search/geom_func.twig b/srcs/phpmyadmin/templates/table/search/geom_func.twig new file mode 100644 index 0000000..f7a7415 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/geom_func.twig @@ -0,0 +1,19 @@ +{# Displays 'Function' column if it is present #} + + {% set geom_types = get_gis_datatypes() %} + {% if column_types[column_index] in geom_types %} + + {% else %} +   + {% endif %} + diff --git a/srcs/phpmyadmin/templates/table/search/input_box.twig b/srcs/phpmyadmin/templates/table/search/input_box.twig new file mode 100644 index 0000000..5c30535 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/input_box.twig @@ -0,0 +1,97 @@ +{# Get inputbox based on different column types (Foreign key, geometrical, enum) #} +{% if foreigners and search_column_in_foreigners(foreigners, column_name) %} + {% if foreign_data['disp_row'] is iterable %} + + {% elseif foreign_data['foreign_link'] == true %} + + + {{ titles['Browse']|replace({"'": "\\'"})|raw }} + + {% endif %} +{% elseif column_type in get_gis_datatypes() %} + + {% if in_fbs %} + {% set edit_url = 'gis_data_editor.php' ~ get_common() %} + {% set edit_str = get_icon('b_edit', 'Edit/Insert'|trans) %} + + {{ link_or_button(edit_url, edit_str, [], '_blank') }} + + {% endif %} +{% elseif column_type starts with 'enum' + or (column_type starts with 'set' and in_zoom_search_edit) %} + {% set in_zoom_search_edit = false %} + {% set value = column_type|e|slice(5, -1)|replace({''': ''})|split(', ') %} + {% set cnt_value = value|length %} + {# + Enum in edit mode --> dropdown + Enum in search mode --> multiselect + Set in edit mode --> multiselect + Set in search mode --> input (skipped here, so the 'else' section would handle it) + #} + {% if (column_type starts with 'enum' and not in_zoom_search_edit) + or (column_type starts with 'set' and in_zoom_search_edit) %} + + {% endif %} + {# Add select options #} + + {% for i in 0..cnt_value - 1 %} + {% if criteria_values[column_index] is defined + and criteria_values[column_index] is iterable + and value[i] in criteria_values[column_index] %} + + {% else %} + + {% endif %} + {% endfor %} + +{% else %} + {% set the_class = 'textfield' %} + {% if column_type == 'date' %} + {% set the_class = the_class ~ ' datefield' %} + {% elseif column_type == 'datetime' or column_type starts with 'timestamp' %} + {% set the_class = the_class ~ ' datetimefield' %} + {% elseif column_type starts with 'bit' %} + {% set the_class = the_class ~ ' bit' %} + {% endif %} + +{% endif %} diff --git a/srcs/phpmyadmin/templates/table/search/replace_preview.twig b/srcs/phpmyadmin/templates/table/search/replace_preview.twig new file mode 100644 index 0000000..e7a2423 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/replace_preview.twig @@ -0,0 +1,39 @@ + + {{ get_hidden_inputs(db, table) }} + + + + + + +
    + {% trans 'Find and replace - preview' %} + + + + + + + + + + {% if result is iterable %} + {% for row in result %} + + {# count #} + {# original #} + {# replaced #} + + {% endfor %} + {% endif %} + +
    {% trans 'Count' %}{% trans 'Original string' %}{% trans 'Replaced string' %}
    {{ row[2] }}{{ row[0] }}{{ row[1] }}
    +
    + +
    + +
    +
    diff --git a/srcs/phpmyadmin/templates/table/search/rows_normal.twig b/srcs/phpmyadmin/templates/table/search/rows_normal.twig new file mode 100644 index 0000000..5e21efa --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/rows_normal.twig @@ -0,0 +1,39 @@ +{% for column_index in 0..column_names|length - 1 %} + + {# If 'Function' column is present trying to change comment #} + {% if geom_column_flag %} + {% include 'table/search/geom_func.twig' with { + 'column_index': column_index, + 'column_types': column_types + } only %} + {% endif %} + {# Displays column's name, type, collation and value #} + + {{ column_names[column_index] }} + + {% set properties = self.getColumnProperties(column_index, column_index) %} + + {{ properties['type'] }} + + + {{ properties['collation'] }} + + + {{ properties['func']|raw }} + + {# here, the data-type attribute is needed for a date/time picker #} + + {{ properties['value']|raw }} + {# Displays hidden fields #} + + + + + +{% endfor %} diff --git a/srcs/phpmyadmin/templates/table/search/rows_zoom.twig b/srcs/phpmyadmin/templates/table/search/rows_zoom.twig new file mode 100644 index 0000000..dc46f1d --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/rows_zoom.twig @@ -0,0 +1,74 @@ +{# Get already set search criteria (if any) #} +{% set type = [] %} +{% set collation = [] %} +{% set func = [] %} +{% set value = [] %} + +{% for i in 0..3 %} + {# After X-Axis and Y-Axis column rows, display additional criteria option #} + {% if i == 2 %} + + + {% trans 'Additional search criteria' %} + + + {% endif %} + + + + + {% if criteria_column_names[i] is defined + and criteria_column_names[i] != 'pma_null' %} + {% set key = keys[criteria_column_names[i]] %} + {% set properties = self.getColumnProperties(i, key) %} + {% set type = type|merge({i: properties['type']}) %} + {% set collation = collation|merge({i: properties['collation']}) %} + {% set func = func|merge({i: properties['func']}) %} + {% set value = value|merge({i: properties['value']}) %} + {% endif %} + {# Column type #} + + {{ type[i] is defined ? type[i] }} + + {# Column Collation #} + + {{ collation[i] is defined ? collation[i] }} + + {# Select options for column operators #} + + {{ func[i] is defined ? func[i]|raw }} + + {# Inputbox for search criteria value #} + + + + {{ value[i] is defined ? value[i]|raw }} + {# Displays hidden fields #} + + + + +{% endfor %} diff --git a/srcs/phpmyadmin/templates/table/search/selection_form.twig b/srcs/phpmyadmin/templates/table/search/selection_form.twig new file mode 100644 index 0000000..2ba4d60 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/selection_form.twig @@ -0,0 +1,226 @@ +{% if search_type == 'zoom' %} + {% include 'table/search/form_tag.twig' with { + 'script_name': 'tbl_zoom_select.php', + 'form_id': 'zoom_search_form', + 'db': db, + 'table': table, + 'goto': goto + } only %} + +{% elseif search_type == 'normal' %} + {% include 'table/search/form_tag.twig' with { + 'script_name': 'tbl_select.php', + 'form_id': 'tbl_search_form', + 'db': db, + 'table': table, + 'goto': goto + } only %} + +{% elseif search_type == 'replace' %} + {% include 'table/search/form_tag.twig' with { + 'script_name': 'tbl_find_replace.php', + 'form_id': 'find_replace_form', + 'db': db, + 'table': table, + 'goto': goto + } only %} +
    +
    + + {% trans 'Find and replace' %} + {% trans 'Find:' %} + + {% trans 'Replace with:' %} + + + {% trans 'Column:' %} + + + {% include 'checkbox.twig' with { + 'html_field_id': 'useRegex', + 'html_field_name': 'useRegex', + 'label': 'Use regular expression'|trans, + 'checked': false, + 'onclick': false + } only %} +
    +
    +{% else %} + {% include 'table/search/form_tag.twig' with { + 'script_name': '', + 'form_id': '', + 'db': db, + 'table': table, + 'goto': goto + } only %} +{% endif %} + +{# Displays selection form's footer elements #} +
    + +
    + +
    diff --git a/srcs/phpmyadmin/templates/table/search/zoom_result_form.twig b/srcs/phpmyadmin/templates/table/search/zoom_result_form.twig new file mode 100644 index 0000000..7543f85 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/search/zoom_result_form.twig @@ -0,0 +1,86 @@ +
    + {{ get_hidden_inputs(db, table) }} + + + +
    + {% trans 'Browse/Edit the points' %} + + {# JSON encode the data(query result) #} +
    + {% if zoom_submit and data is not empty %} +
    +
    + + {% trans 'How to use' %} + +
    +
    + {{ data_json }} +
    +
    + +
    + {% endif %} +
    + + {# Displays rows in point edit form #} +
    + + + + + + + + + + {% for column_index in 0..column_names|length - 1 %} + {% set field_popup = column_names[column_index] %} + {% set foreign_data = get_foreign_data( + foreigners, + field_popup, + false, + '', + '' + ) %} + + + {# Null checkbox if column can be null #} + + {# Column's Input box #} + + + {% endfor %} + +
    {% trans 'Column' %}{% trans 'Null' %}{% trans 'Value' %}
    {{ column_names[column_index] }} + {% if column_null_flags[column_index] == 'YES' %} + + {% endif %} + + {% include 'table/search/input_box.twig' with { + 'str': '', + 'column_type': column_types[column_index], + 'column_id': column_types[column_index] ? 'edit_fieldID_' : 'fieldID_', + 'in_zoom_search_edit': true, + 'foreigners': foreigners, + 'column_name': field_popup, + 'column_name_hash': column_name_hashes[field_popup], + 'foreign_data': foreign_data, + 'table': table, + 'column_index': column_index, + 'foreign_max_limit': foreign_max_limit, + 'criteria_values': '', + 'db': db, + 'titles': titles, + 'in_fbs': false + } only %} +
    +
    + +
    +
    diff --git a/srcs/phpmyadmin/templates/table/structure/action_row_in_structure_table.twig b/srcs/phpmyadmin/templates/table/structure/action_row_in_structure_table.twig new file mode 100644 index 0000000..d9c629c --- /dev/null +++ b/srcs/phpmyadmin/templates/table/structure/action_row_in_structure_table.twig @@ -0,0 +1,31 @@ +
  • +{% if type == 'text' + or type == 'blob' + or tbl_storage_engine == 'ARCHIVE' + or has_field %} + {{ titles['No' ~ action]|raw }} +{% else %} + + {{ titles[action]|raw }} + +{% endif %} +
  • diff --git a/srcs/phpmyadmin/templates/table/structure/display_partitions.twig b/srcs/phpmyadmin/templates/table/structure/display_partitions.twig new file mode 100644 index 0000000..b10a0bc --- /dev/null +++ b/srcs/phpmyadmin/templates/table/structure/display_partitions.twig @@ -0,0 +1,145 @@ +
    +
    + + {% trans 'Partitions' %} + {{ show_mysql_docu('partitioning') }} + + {% if partitions is empty %} + {{ 'No partitioning defined!'|trans|notice }} + {% else %} +

    + {% trans 'Partitioned by:' %} + {{ partition_method }}({{ partition_expression }}) +

    + {% if has_sub_partitions %} +

    + {% trans 'Sub partitioned by:' %} + {{ sub_partition_method }}({{ sub_partition_expression }}) +

    + {% endif %} + + + + + + {% if has_description %} + + {% endif %} + + + + + + + + + {% for partition in partitions %} + + {% if has_sub_partitions %} + + + {% else %} + + {% endif %} + + {% if has_description %} + + {% endif %} + + + + + {% for action, icon in action_icons %} + + {% endfor %} + + {% if has_sub_partitions %} + {% for sub_partition in partition.getSubPartitions() %} + + + + + {% if has_description %} + + {% endif %} + + + + + + + {% endfor %} + {% endif %} + + {% endfor %} + +
    #{% trans 'Partition' %}{% trans 'Expression' %}{% trans 'Rows' %}{% trans 'Data length' %}{% trans 'Index length' %}{% trans 'Comment' %} + {% trans 'Action' %} +
    {{ partition.getOrdinal() }}{{ partition.getOrdinal() }}{{ partition.getName() }} + + {{- partition.getExpression() -}} + {{- partition.getMethod() == 'LIST' ? ' IN (' : ' < ' -}} + {{- partition.getDescription() -}} + {{- partition.getMethod() == 'LIST' ? ')' -}} + + {{ partition.getRows() }} + {% set data_length = format_byte_down( + partition.getDataLength(), + 3, + 1 + ) %} + {{ data_length[0] }} + {{ data_length[1] }} + + {% set index_length = format_byte_down( + partition.getIndexLength(), + 3, + 1 + ) %} + {{ index_length[0] }} + {{ index_length[1] }} + {{ partition.getComment() }} + + {{ icon|raw }} + +
    {{ sub_partition.getOrdinal() }}{{ sub_partition.getName() }}{{ sub_partition.getRows() }} + {% set data_length = format_byte_down( + sub_partition.getDataLength(), + 3, + 1 + ) %} + {{ data_length[0] }} + {{ data_length[1] }} + + {% set index_length = format_byte_down( + sub_partition.getIndexLength(), + 3, + 1 + ) %} + {{ index_length[0] }} + {{ index_length[1] }} + {{ sub_partition.getComment() }}
    + {% endif %} +

    + +
    diff --git a/srcs/phpmyadmin/templates/table/structure/display_structure.twig b/srcs/phpmyadmin/templates/table/structure/display_structure.twig new file mode 100644 index 0000000..16e11db --- /dev/null +++ b/srcs/phpmyadmin/templates/table/structure/display_structure.twig @@ -0,0 +1,516 @@ +{% extends 'table/page_with_secondary_tabs.twig' %} +{% block content %} +
    + {{ get_hidden_inputs(db, table) }} + +
    + + {# Table header #} + + + + + + + + + + + {% if show_column_comments -%} + + {%- endif %} + + {# @see table/structure.js, function moreOptsMenuResize() #} + {% if not db_is_system_schema and not tbl_is_view %} + + {% endif %} + + + + {# Table body #} + {% set rownum = 0 %} + {% for row in fields %} + {% set rownum = rownum + 1 %} + + {% set extracted_columnspec = extracted_columnspecs[rownum] %} + {% set field_name = row['Field']|e %} + {# For column comments #} + {% set comments = row_comments[rownum] %} + {# Underline commented fields and display a hover-title (CSS only) #} + + + + + + + + {{ extracted_columnspec['displayed_type']|raw }} + {% if relation_commwork and relation_mimework and browse_mime + and mime_map[row['Field']]['mimetype'] is defined %} +
    {% trans 'Media (MIME) type:' %} {{ mime_map[row['Field']]['mimetype']|replace({'_': '/'})|lower }} + {% endif %} +
    + +
    + + + + {% if show_column_comments %} + + {% endif %} + + {% if not tbl_is_view and not db_is_system_schema %} + + + {% endif %} + + {% if not tbl_is_view and not db_is_system_schema %} + {% set type = extracted_columnspec['print_type'] is not empty ? extracted_columnspec['print_type'] %} + + {% endif %} + + {% endfor %} + +
    #{% trans 'Name' %}{% trans 'Type' %}{% trans 'Collation' %}{% trans 'Attributes' %}{% trans 'Null' %}{% trans 'Default' %}{% trans 'Comments' %}{% trans 'Extra' %}{% trans 'Action' %}
    {{ rownum }} + + + {% if row['Collation'] is not empty %} + {{ collations[row['Collation']].name }} + {% endif %} + {{ attributes[rownum] }}{{ row['Null'] == 'YES' ? 'Yes'|trans : 'No'|trans }} + {% if row['Default'] is not null %} + {% if extracted_columnspec['type'] == 'bit' %} + {{ row['Default']|convert_bit_default_value }} + {% else %} + {{ row['Default'] }} + {% endif %} + {% elseif row['Null'] == 'YES' %} + NULL + {% else %} + {% trans %}None{% context %}None for default{% endtrans %} + {% endif %} + + {{ comments }} + {{ row['Extra']|upper }}
    +
    + +
    + +
    +

    {% trans 'Move the columns by dragging them up and down.' %}

    +
    +
    + {{ get_hidden_inputs(db, table) }} +
      +
      +
      +
      +{# Work on the table #} + +{% if not tbl_is_view and not db_is_system_schema %} +
      + {{ get_hidden_inputs(db, table) }} + {% if show_icons('ActionLinksMode') %} + {{ get_image('b_insrow', 'Add column'|trans) }}  + {% endif %} + {% set num_fields -%} + + {%- endset %} + {{ 'Add %s column(s)'|trans|format(num_fields)|raw }} +   + {# I tried displaying the drop-down inside the label but with Firefox the drop-down was blinking #} + + +
      +{% endif %} + +{# Displays indexes #} +{% if not tbl_is_view and not db_is_system_schema + and 'ARCHIVE' != tbl_storage_engine %} + {{ displayIndexesHtml|raw }} +{% endif %} + +{# Display partition details #} +{% if have_partitioning %} + {# Detect partitioning #} + {% if partition_names is not empty and partition_names[0] is not null %} + {% set first_partition = partitions[0] %} + {% set range_or_list = first_partition.getMethod() == 'RANGE' + or first_partition.getMethod() == 'RANGE COLUMNS' + or first_partition.getMethod() == 'LIST' + or first_partition.getMethod() == 'LIST COLUMNS' %} + {% set sub_partitions = first_partition.getSubPartitions() %} + {% set has_sub_partitions = first_partition.hasSubPartitions() %} + {% if has_sub_partitions %} + {% set first_sub_partition = sub_partitions[0] %} + {% endif %} + + {% set action_icons = { + 'ANALYZE': get_icon('b_search', 'Analyze'|trans), + 'CHECK': get_icon('eye', 'Check'|trans), + 'OPTIMIZE': get_icon('normalize', 'Optimize'|trans), + 'REBUILD': get_icon('s_tbl', 'Rebuild'|trans), + 'REPAIR': get_icon('b_tblops', 'Repair'|trans), + 'TRUNCATE': get_icon('b_empty', 'Truncate'|trans), + } %} + {% if range_or_list %} + {% set action_icons = action_icons|merge({'DROP': get_icon('b_drop', 'Drop'|trans)}) %} + {% endif %} + + {# open Slider Effect div #} + {% include 'div_for_slider_effect.twig' with { + 'id': 'partitions-2', + 'message': 'Partitions'|trans, + 'initial_sliders_state': default_sliders_state + } only %} + + {% set remove_sql = 'ALTER TABLE ' ~ backquote(table) ~ ' REMOVE PARTITIONING' %} + {% set remove_url = 'sql.php' ~ url_query ~ '&sql_query=' ~ remove_sql|url_encode %} + + {% include 'table/structure/display_partitions.twig' with { + 'db': db, + 'table': table, + 'url_query': url_query, + 'partitions': partitions, + 'partition_method': first_partition.getMethod(), + 'partition_expression': first_partition.getExpression(), + 'has_description': first_partition.getDescription() is not empty, + 'has_sub_partitions': has_sub_partitions, + 'sub_partition_method': has_sub_partitions ? first_sub_partition.getMethod(), + 'sub_partition_expression': has_sub_partitions ? first_sub_partition.getExpression(), + 'action_icons': action_icons, + 'range_or_list': range_or_list, + 'remove_url': remove_url + } only %} + {% else %} + {% include 'table/structure/display_partitions.twig' with { + 'db': db, + 'table': table + } only %} + {% endif %} + {# For closing Slider effect div #} +
      +{% endif %} + +{# Displays Space usage and row statistics #} +{% if show_stats %} + {{ table_stats|raw }} +{% endif %} +
      +{% endblock %} diff --git a/srcs/phpmyadmin/templates/table/structure/display_table_stats.twig b/srcs/phpmyadmin/templates/table/structure/display_table_stats.twig new file mode 100644 index 0000000..01c74ae --- /dev/null +++ b/srcs/phpmyadmin/templates/table/structure/display_table_stats.twig @@ -0,0 +1,169 @@ +
      +
      + {% trans 'Information' %} + {% if showtable['TABLE_COMMENT'] %} +

      + {% trans 'Table comments:' %} + {{ showtable['TABLE_COMMENT'] }} +

      + {% endif %} + + + {% if not tbl_is_view and not db_is_system_schema %} + + + + + + + + + + {% if index_size is defined %} + + + + + + {% endif %} + + {% if free_size is defined %} + + + + + + + + + + + {% endif %} + + {% if tot_size is defined and mergetable == false %} + + + + + + {% endif %} + + {# Optimize link if overhead #} + {% if free_size is defined + and (tbl_storage_engine == 'MYISAM' + or tbl_storage_engine == 'ARIA' + or tbl_storage_engine == 'MARIA' + or tbl_storage_engine == 'BDB') + or (tbl_storage_engine == 'INNODB' and innodb_file_per_table == true) %} + + + + {% endif %} + +
      {% trans 'Space usage' %}
      {% trans 'Data' %}{{ data_size }}{{ data_unit }}
      {% trans 'Index' %}{{ index_size }}{{ index_unit }}
      {% trans 'Overhead' %}{{ free_size }}{{ free_unit }}
      {% trans 'Effective' %}{{ effect_size }}{{ effect_unit }}
      {% trans 'Total' %}{{ tot_size }}{{ tot_unit }}
      + {% endif %} + + {% set avg_size = avg_size is defined ? avg_size : null %} + {% set avg_unit = avg_unit is defined ? avg_unit : null %} + + + + {% if showtable['Row_format'] is defined %} + + + {% if showtable['Row_format'] == 'Fixed' %} + + {% elseif showtable['Row_format'] == 'Dynamic' %} + + {% else %} + + {% endif %} + + {% endif %} + + {% if showtable['Create_options'] is not empty %} + + + {% if showtable['Create_options'] == 'partitioned' %} + + {% else %} + + {% endif %} + + {% endif %} + + {% if table_collation is not empty %} + + + + + {% endif %} + + {% if not is_innodb and showtable['Rows'] is defined %} + + + + + {% endif %} + + {% if not is_innodb + and showtable['Avg_row_length'] is defined + and showtable['Avg_row_length'] > 0 %} + + + {% set avg_row_length = format_byte_down(showtable['Avg_row_length'], 6, 1) %} + + + {% endif %} + + {% if not is_innodb + and showtable['Data_length'] is defined + and showtable['Rows'] is defined + and showtable['Rows'] > 0 + and mergetable == false %} + + + + + {% endif %} + + {% if showtable['Auto_increment'] is defined %} + + + + + {% endif %} + + {% if showtable['Create_time'] is defined %} + + + + + {% endif %} + + {% if showtable['Update_time'] is defined %} + + + + + {% endif %} + + {% if showtable['Check_time'] is defined %} + + + + + {% endif %} + +
      {% trans 'Row statistics' %}
      {% trans 'Format' %}{% trans 'static' %}{% trans 'dynamic' %}{{ showtable['Row_format'] }}
      {% trans 'Options' %}{% trans 'partitioned' %}{{ showtable['Create_options'] }}
      {% trans 'Collation' %} + + {{ table_collation.name }} + +
      {% trans 'Rows' %}{{ format_number(showtable['Rows'], 0) }}
      {% trans 'Row length' %}{{ avg_row_length[0] }} {{ avg_row_length[1] }}
      {% trans 'Row size' %}{{ avg_size }} {{ avg_unit }}
      {% trans 'Next autoindex' %}{{ format_number(showtable['Auto_increment'], 0) }}
      {% trans 'Creation' %}{{ localised_date(showtable['Create_time']|date('U')) }}
      {% trans 'Last update' %}{{ localised_date(showtable['Update_time']|date('U')) }}
      {% trans 'Last check' %}{{ localised_date(showtable['Check_time']|date('U')) }}
      +
      +
      diff --git a/srcs/phpmyadmin/templates/table/structure/partition_definition_form.twig b/srcs/phpmyadmin/templates/table/structure/partition_definition_form.twig new file mode 100644 index 0000000..7cf5e8d --- /dev/null +++ b/srcs/phpmyadmin/templates/table/structure/partition_definition_form.twig @@ -0,0 +1,14 @@ +
      + {{ get_hidden_inputs(db, table) }} + + +
      + {% trans 'Edit partitioning' %} + {% include 'columns_definitions/partitions.twig' with { + 'partition_details': partition_details + } only %} +
      +
      + +
      +
      diff --git a/srcs/phpmyadmin/templates/table/tracking/main.twig b/srcs/phpmyadmin/templates/table/tracking/main.twig new file mode 100644 index 0000000..ff6c5c4 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/tracking/main.twig @@ -0,0 +1,132 @@ +{% if selectable_tables_num_rows > 0 %} +
      + {{ get_hidden_inputs(db, table) }} + + +
      +{% endif %} +
      +{% if last_version > 0 %} +
      + {{ get_hidden_inputs(db, table) }} + + + + + + + + + + + + + + {% for version in versions %} + + + + + + {% if version['tracking_active'] == 1 %} + {% set last_version_status = 1 %} + + {% else %} + {% set last_version_status = 0 %} + + {% endif %} + + + + {% endfor %} + +
      {% trans 'Version' %}{% trans 'Created' %}{% trans 'Updated' %}{% trans 'Status' %}{% trans 'Action' %}{% trans 'Show' %}
      + + + + {{ version['date_created']|escape }}{{ version['date_updated']|escape }}{% trans 'active' %}{% trans 'not active' %} + + {{ get_icon('b_drop', 'Delete version'|trans) }} + + + + {{ get_icon('b_report', 'Tracking report'|trans) }} + + + {{ get_icon('b_props', 'Structure snapshot'|trans) }} + +
      + {% include 'select_all.twig' with { + 'pma_theme_image': pmaThemeImage, + 'text_dir': text_dir, + 'form_name': 'versionsForm', + } only %} + {{ get_button_or_image( + 'submit_mult', + 'mult_submit', + 'Delete version'|trans, + 'b_drop', + 'delete_version' + ) }} +
      + {% set last_version_element = versions|first %} +
      +
      + {{ get_hidden_inputs(db, table) }} +
      + + {% if last_version_element['tracking_active'] == 0 %} + {% set legend = 'Activate tracking for %s'|trans %} + {% set value = 'activate_now' %} + {% set button = 'Activate now'|trans %} + {% else %} + {% set legend = 'Deactivate tracking for %s'|trans %} + {% set value = 'deactivate_now' %} + {% set button = 'Deactivate now'|trans %} + {% endif %} + + {{ legend|format(db ~ '.' ~ table) }} + + + + +
      +
      +
      +{% endif %} +{% include 'create_tracking_version.twig' with { + 'url_query': url_query, + 'last_version': last_version, + 'db': db, + 'selected': [table], + 'type': type, + 'default_statements': default_statements, +} only %} diff --git a/srcs/phpmyadmin/templates/table/tracking/report_table.twig b/srcs/phpmyadmin/templates/table/tracking/report_table.twig new file mode 100644 index 0000000..fe00526 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/tracking/report_table.twig @@ -0,0 +1,27 @@ + + + + + + + + + + + + {% for entry in entries %} + + + + + + + + {% endfor %} + +
      {% trans %}#{% context %}Number{% endtrans %}{% trans 'Date' %}{% trans 'Username' %}{{ header_message }}{% trans 'Action' %}
      {{ entry.line_number }}{{ entry.date }}{{ entry.username }}{{ entry.formated_statement|raw }} + + {{ drop_image_or_text|raw }} + +
      diff --git a/srcs/phpmyadmin/templates/table/tracking/structure_snapshot_columns.twig b/srcs/phpmyadmin/templates/table/tracking/structure_snapshot_columns.twig new file mode 100644 index 0000000..4ef8c21 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/tracking/structure_snapshot_columns.twig @@ -0,0 +1,56 @@ +

      {% trans 'Structure' %}

      + + + + + + + + + + + + + + + {% set index = 1 %} + {% for field in columns %} + + + {% set index = index + 1 %} + + + + + + + + + {% endfor %} + +
      {% trans %}#{% context %}Number{% endtrans %}{% trans 'Column' %}{% trans 'Type' %}{% trans 'Collation' %}{% trans 'Null' %}{% trans 'Default' %}{% trans 'Extra' %}{% trans 'Comment' %}
      {{ index }} + + {{ field['Field'] }} + {% if field['Key'] == 'PRI' %} + {{ get_image('b_primary', 'Primary'|trans) }} + {% elseif field['Key'] is not empty %} + {{ get_image('bd_primary', 'Index'|trans) }} + {% endif %} + + {{ field['Type'] }}{{ field['Collation'] }}{{ field['Null'] == 'YES' ? 'Yes'|trans : 'No'|trans }} + {% if field['Default'] is defined %} + {% set extracted_columnspec = extract_column_spec(field['Type']) %} + {% if extracted_columnspec['type'] == 'bit' %} + {# here, $field['Default'] contains something like b'010' #} + {{ field['Default']|convert_bit_default_value }} + {% else %} + {{ field['Default'] }} + {% endif %} + {% else %} + {% if field['Null'] == 'YES' %} + NULL + {% else %} + {% trans %}None{% context %}None for default{% endtrans %} + {% endif %} + {% endif %} + {{ field['Extra'] }}{{ field['Comment'] }}
      diff --git a/srcs/phpmyadmin/templates/table/tracking/structure_snapshot_indexes.twig b/srcs/phpmyadmin/templates/table/tracking/structure_snapshot_indexes.twig new file mode 100644 index 0000000..a919252 --- /dev/null +++ b/srcs/phpmyadmin/templates/table/tracking/structure_snapshot_indexes.twig @@ -0,0 +1,33 @@ +

      {% trans 'Indexes' %}

      + + + + + + + + + + + + + + + + {% for index in indexes %} + + + + + + + + + + + + {% endfor %} + +
      {% trans 'Keyname' %}{% trans 'Type' %}{% trans 'Unique' %}{% trans 'Packed' %}{% trans 'Column' %}{% trans 'Cardinality' %}{% trans 'Collation' %}{% trans 'Null' %}{% trans 'Comment' %}
      + {{ index['Key_name'] }} + {{ index['Index_type'] }}{{ index['Non_unique'] == 0 ? 'Yes'|trans : 'No'|trans }}{{ index['Packed'] != '' ? 'Yes'|trans : 'No'|trans }}{{ index['Column_name'] }}{{ index['Cardinality'] }}{{ index['Collation'] }}{{ index['Null'] }}{{ index['Comment'] }}
      diff --git a/srcs/phpmyadmin/templates/test/add_data.twig b/srcs/phpmyadmin/templates/test/add_data.twig new file mode 100644 index 0000000..d562612 --- /dev/null +++ b/srcs/phpmyadmin/templates/test/add_data.twig @@ -0,0 +1,2 @@ +{{ variable1 }} +{{ variable2 }} diff --git a/srcs/phpmyadmin/templates/test/echo.twig b/srcs/phpmyadmin/templates/test/echo.twig new file mode 100644 index 0000000..9c5fc60 --- /dev/null +++ b/srcs/phpmyadmin/templates/test/echo.twig @@ -0,0 +1 @@ +{{ variable -}} diff --git a/srcs/phpmyadmin/templates/test/gettext/gettext.twig b/srcs/phpmyadmin/templates/test/gettext/gettext.twig new file mode 100644 index 0000000..4fcf61b --- /dev/null +++ b/srcs/phpmyadmin/templates/test/gettext/gettext.twig @@ -0,0 +1 @@ +{% trans "Text" %} diff --git a/srcs/phpmyadmin/templates/test/gettext/notes.twig b/srcs/phpmyadmin/templates/test/gettext/notes.twig new file mode 100644 index 0000000..e5a38e4 --- /dev/null +++ b/srcs/phpmyadmin/templates/test/gettext/notes.twig @@ -0,0 +1,5 @@ +{% trans %} +Text +{% notes %} +Notes +{% endtrans %} diff --git a/srcs/phpmyadmin/templates/test/gettext/pgettext.twig b/srcs/phpmyadmin/templates/test/gettext/pgettext.twig new file mode 100644 index 0000000..5365027 --- /dev/null +++ b/srcs/phpmyadmin/templates/test/gettext/pgettext.twig @@ -0,0 +1,5 @@ +{% trans %} +Text +{% context %} +Text context +{% endtrans %} diff --git a/srcs/phpmyadmin/templates/test/gettext/plural.twig b/srcs/phpmyadmin/templates/test/gettext/plural.twig new file mode 100644 index 0000000..5bc44e9 --- /dev/null +++ b/srcs/phpmyadmin/templates/test/gettext/plural.twig @@ -0,0 +1,5 @@ +{% trans %} +One table +{% plural table_count %} +{{ count }} tables +{% endtrans %} diff --git a/srcs/phpmyadmin/templates/test/gettext/plural_notes.twig b/srcs/phpmyadmin/templates/test/gettext/plural_notes.twig new file mode 100644 index 0000000..0c6da18 --- /dev/null +++ b/srcs/phpmyadmin/templates/test/gettext/plural_notes.twig @@ -0,0 +1,7 @@ +{% trans %} +One table +{% plural table_count %} +{{ count }} tables +{% notes %} +Number of tables +{% endtrans %} diff --git a/srcs/phpmyadmin/templates/test/static.twig b/srcs/phpmyadmin/templates/test/static.twig new file mode 100644 index 0000000..703390d --- /dev/null +++ b/srcs/phpmyadmin/templates/test/static.twig @@ -0,0 +1 @@ +static content \ No newline at end of file diff --git a/srcs/phpmyadmin/templates/theme_preview.twig b/srcs/phpmyadmin/templates/theme_preview.twig new file mode 100644 index 0000000..f8308ff --- /dev/null +++ b/srcs/phpmyadmin/templates/theme_preview.twig @@ -0,0 +1,16 @@ + diff --git a/srcs/phpmyadmin/templates/themes.twig b/srcs/phpmyadmin/templates/themes.twig new file mode 100644 index 0000000..c03089c --- /dev/null +++ b/srcs/phpmyadmin/templates/themes.twig @@ -0,0 +1,7 @@ +

      phpMyAdmin - {% trans 'Theme' %}

      +

      + + {% trans 'Get more themes!' %} + +

      +{{ previews|raw }} diff --git a/srcs/phpmyadmin/templates/toggle_button.twig b/srcs/phpmyadmin/templates/toggle_button.twig new file mode 100644 index 0000000..85a8320 --- /dev/null +++ b/srcs/phpmyadmin/templates/toggle_button.twig @@ -0,0 +1,24 @@ +
      +
      +
      + + + + + + + + + +
      + {{ link_on|raw }} +
      {{ toggle_on }}
      +
       
      + {{ link_off|raw }} +
      {{ toggle_off }}
      +
      + {{ callback }} + {{ text_dir }} +
      +
      +
      diff --git a/srcs/phpmyadmin/templates/transformation_overview.twig b/srcs/phpmyadmin/templates/transformation_overview.twig new file mode 100644 index 0000000..d6690fa --- /dev/null +++ b/srcs/phpmyadmin/templates/transformation_overview.twig @@ -0,0 +1,49 @@ +

      {% trans 'Available media (MIME) types' %}

      + + + +

      {% trans 'Available browser display transformations' %}

      + + + + + + + + + + {% for transformation in transformations.transformation %} + + + + + {% endfor %} + +
      {% trans 'Browser display transformation' %}{% trans %}Description{% context %}for media (MIME) type transformation{% endtrans %}
      {{ transformation.name }}{{ transformation.description }}
      + +

      {% trans 'Available input transformations' %}

      + + + + + + + + + + {% for transformation in transformations.input_transformation %} + + + + + {% endfor %} + +
      {% trans 'Input transformation' %}{% trans %}Description{% context %}for media (MIME) type transformation{% endtrans %}
      {{ transformation.name }}{{ transformation.description }}
      diff --git a/srcs/phpmyadmin/templates/view_create.twig b/srcs/phpmyadmin/templates/view_create.twig new file mode 100644 index 0000000..857762f --- /dev/null +++ b/srcs/phpmyadmin/templates/view_create.twig @@ -0,0 +1,120 @@ + +
      +
      + {{ get_hidden_inputs(url_params) }} +
      + + {% if ajax_dialog %} + {% trans 'Details' %} + {% else %} + {% if view['operation'] == 'create' %} + {% trans 'Create view' %} + {% else %} + {% trans 'Edit view' %} + {% endif %} + {% endif %} + + + {% if view['operation'] == 'create' %} + + + + + {% endif %} + + + + + + + + + + + + + + + + + {% if view['operation'] == 'create' %} + + + + + {% else %} + + + + {% endif %} + + + + + + + + + + + + + + + + +
      + +
      + +
      {% trans 'Definer' %}
      SQL SECURITY + +
      {% trans 'VIEW name' %} + +
      + +
      {% trans 'Column names' %} + +
      AS +
      + + +
      WITH CHECK OPTION + +
      +
      + + + + + {% if ajax_dialog == false %} + + + {% endif %} + +
      +
      -- cgit