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/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 +++++ 34 files changed, 2104 insertions(+) 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 (limited to 'srcs/phpmyadmin/templates/server') 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 %} + +{% 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') }} +

+ + + + + + + + + + + + + + + + + + + + {% 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 %} -- cgit