diff --git a/libraries/build_html_for_db.lib.php b/libraries/build_html_for_db.lib.php index 360a220d0b..104f6194af 100644 --- a/libraries/build_html_for_db.lib.php +++ b/libraries/build_html_for_db.lib.php @@ -15,13 +15,12 @@ if (! defined('PHPMYADMIN')) { */ function PMA_getColumnOrder() { - $column_order['DEFAULT_COLLATION_NAME'] = array( - 'disp_name' => __('Collation'), - 'description_function' => 'PMA_getCollationDescr', - 'format' => 'string', - 'footer' => PMA_getServerCollation(), - ); + 'disp_name' => __('Collation'), + 'description_function' => 'PMA_getCollationDescr', + 'format' => 'string', + 'footer' => PMA_getServerCollation(), + ); $column_order['SCHEMA_TABLES'] = array( 'disp_name' => __('Tables'), 'format' => 'number', diff --git a/libraries/display_create_database.lib.php b/libraries/display_create_database.lib.php index b814490e1e..1b3b1a78a9 100644 --- a/libraries/display_create_database.lib.php +++ b/libraries/display_create_database.lib.php @@ -16,34 +16,47 @@ require_once './libraries/check_user_privileges.lib.php'; if ($is_create_db_priv) { // The user is allowed to create a db - ?> -
- ' - . PMA_Util::getImage('b_newdb.png') - . " " . __('Create database') - . ' ' - . PMA_Util::showMySQLDocu('SQL-Syntax', 'CREATE_DATABASE'); ?>
- - - - '; + $html .= ' ' + . PMA_Util::showMySQLDocu('SQL-Syntax', 'CREATE_DATABASE'); + $html .= '
'; + $html .= PMA_generate_common_hidden_inputs('', '', 5); + $html .= ''; + $html .= ''; + include_once './libraries/mysql_charsets.inc.php'; - echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'db_collation', null, null, true, 5); + $html .= PMA_generateCharsetDropdownBox( + PMA_CSDROPDOWN_COLLATION, + 'db_collation', + null, + null, + true, + 5 + ); if (! empty($dbstats)) { - echo ''; + $html .= ''; } - ?> - -
- '; + $html .= ''; } else { - ?> - -
- ' - . PMA_Util::getImage('s_error2.png', '', array('hspace' => 2, 'border' => 0, 'align' => 'middle')) - . '' . __('No Privileges') .''; + $html .= ''; + $html .= '' . __('Create database:') . ' ' + . PMA_Util::showMySQLDocu('SQL-Syntax', 'CREATE_DATABASE') + . '
'; + + $html .= '' + . PMA_Util::getImage( + 's_error2.png', + '', + array('hspace' => 2, 'border' => 0, 'align' => 'middle') + ) + . '' . __('No Privileges') .''; } // end create db form or message ?> diff --git a/libraries/server_common.lib.php b/libraries/server_common.lib.php index 56cf54e8f1..540a14982b 100644 --- a/libraries/server_common.lib.php +++ b/libraries/server_common.lib.php @@ -18,26 +18,33 @@ if (! defined('PHPMYADMIN')) { */ function PMA_getSubPageHeader($type) { - $res = array(); + //array contains Sub page icon and text + $header = array(); - $res['engines']['icon'] = 'b_engine.png'; - $res['engines']['text'] = __('Storage Engines'); + $header['engines']['icon'] = 'b_engine.png'; + $header['engines']['text'] = __('Storage Engines'); - $res['plugins']['icon'] = 'b_engine.png'; - $res['plugins']['text'] = __('Plugins'); + $header['plugins']['icon'] = 'b_engine.png'; + $header['plugins']['text'] = __('Plugins'); - $res['binlog']['icon'] = 's_tbl.png'; - $res['binlog']['text'] = __('Binary log'); + $header['binlog']['icon'] = 's_tbl.png'; + $header['binlog']['text'] = __('Binary log'); - $res['collations']['icon'] = 's_asci.png'; - $res['collations']['text'] = __('Character Sets and Collations'); + $header['collations']['icon'] = 's_asci.png'; + $header['collations']['text'] = __('Character Sets and Collations'); - $res['replication']['icon'] = 's_replication.png'; - $res['replication']['text'] = __('Replication'); + $header['replication']['icon'] = 's_replication.png'; + $header['replication']['text'] = __('Replication'); + + $header['database_statistics']['icon'] = 's_db.png'; + $header['database_statistics']['text'] = __('Databases statistics'); + + $header['databases']['icon'] = 's_db.png'; + $header['databases']['text'] = __('Databases'); $html = '

' . "\n" - . PMA_Util::getImage($res[$type]['icon']) - . ' ' . $res[$type]['text'] . "\n" + . PMA_Util::getImage($header[$type]['icon']) + . ' ' . $header[$type]['text'] . "\n" . '

' . "\n"; return $html; } diff --git a/libraries/server_databases.lib.php b/libraries/server_databases.lib.php new file mode 100644 index 0000000000..4def630f1d --- /dev/null +++ b/libraries/server_databases.lib.php @@ -0,0 +1,408 @@ +'; + reset($databases); + $first_database = current($databases); + // table col order + $column_order = PMA_getColumnOrder(); + + $_url_params = array( + 'pos' => $pos, + 'dbstats' => $dbstats, + 'sort_by' => $sort_by, + 'sort_order' => $sort_order, + ); + + $html .= PMA_Util::getListNavigator( + $databases_count, $pos, $_url_params, 'server_databases.php', + 'frame_content', $GLOBALS['cfg']['MaxDbList'] + ); + + $_url_params['pos'] = $pos; + $_url_params['drop_selected_dbs'] = 1; + + $html .= '
' . "\n" + . '' . "\n"; + + $html .= PMA_getHtmlForColumnOrderWithSort( + $is_superuser, + $cfg['AllowUserDropDatabase'], + $_url_params, + $sort_by, + $sort_order, + $column_order, + $first_database + ); + + $html .= PMA_getHtmlForReplicationType( + $is_superuser, + $replication_types, + $cfg['ActionLinksMode'] + ); + + $html .= '' . "\n" + . '' . "\n"; + + $html .= PMA_getHtmlForDatabaseList( + $databases, + $is_superuser, + $url_query, + $column_order, + $replication_types, + $replication_info + ); + + $html .= PMA_getHtmlForTableFooter( + $cfg['AllowUserDropDatabase'], + $is_superuser, + $databases_count, + $column_order, + $replication_types, + $first_database + ); + + $html .= '' . "\n"; + + $html .= PMA_getHtmlForTableFooterButtons( + $cfg['AllowUserDropDatabase'], + $is_superuser, + $sort_by, + $sort_order, + $dbstats + ); + + if (empty($dbstats)) { + //we should put notice above database list + $html = PMA_getHtmlForNoticeEnableStatistics($url_query, $html); + } + $html .= '
'; + $html .= ''; + + return $html; +} + +/** + * Returns the html for Table footer buttons + * + * @param bool $is_allowUserDropDatabase Allow user drop database + * @param bool $is_superuser User status + * @param string $sort_by sort by string + * @param string $sort_order sort order string + * @param Array $dbstats database status + * + * @return string + */ +function PMA_getHtmlForTableFooterButtons( + $is_allowUserDropDatabase, $is_superuser, + $sort_by, $sort_order, $dbstats) +{ + $html = ""; + if ($is_superuser || $is_allowUserDropDatabase) { + $common_url_query = PMA_generate_common_url( + array( + 'sort_by' => $sort_by, + 'sort_order' => $sort_order, + 'dbstats' => $dbstats + ) + ); + $html .= '' . __('With selected:') . '' . "\n" + . ' ' + . ' ' + . '' . __('With selected:') . '' . "\n"; + $html .= PMA_Util::getButtonOrImage( + '', + 'mult_submit' . ' ajax', + 'drop_selected_dbs', + __('Drop'), 'b_deltbl.png' + ); + } + return $html; +} + +/** + * Returns the html for Table footer + * + * @param bool $is_allowUserDropDatabase Allow user drop database + * @param bool $is_superuser User status + * @param Array $databases_count Database count + * @param string $column_order column order + * @param string $replication_types replication types + * @param string $first_database First database + * + * @return string + */ +function PMA_getHtmlForTableFooter( + $is_allowUserDropDatabase, $is_superuser, + $databases_count, $column_order, + $replication_types, $first_database) +{ + $html = '' . "\n"; + if ($is_superuser || $is_allowUserDropDatabase) { + $html .= ' ' . "\n"; + } + $html .= ' ' . __('Total') . ': ' + . $databases_count . '' . "\n"; + + $html .= PMA_getHtmlForColumnOrder($column_order, $first_database); + + foreach ($replication_types as $type) { + if ($GLOBALS["server_" . $type. "_status"]) { + $html .= ' ' . "\n"; + } + } + + if ($is_superuser) { + $html .= ' ' . "\n"; + } + $html .= '' . "\n"; + $html .= '' . "\n"; + return $html; +} + +/** + * Returns the html for Database List with Column order + * + * @param bool $databases GBI return databases + * @param bool $is_superuser User status + * @param Array $url_query Url query + * @param string $column_order column order + * @param string $replication_types replication types + * @param string $replication_info replication info + * + * @return string + */ +function PMA_getHtmlForDatabaseList( + $databases, $is_superuser, $url_query, + $column_order, $replication_types, $replication_info) +{ + $odd_row = true; + $html = '' . "\n"; + + foreach ($databases as $current) { + $tr_class = $odd_row ? 'odd' : 'even'; + if ($GLOBALS['dbi']->isSystemSchema($current['SCHEMA_NAME'], true)) { + $tr_class .= ' noclick'; + } + $html .= '' . "\n"; + $odd_row = ! $odd_row; + + list($column_order, $generated_html) = PMA_buildHtmlForDb( + $current, + $is_superuser, + $url_query, + $column_order, + $replication_types, + $replication_info + ); + + $html .= $generated_html; + + $html .= '' . "\n"; + } // end foreach ($databases as $key => $current) + unset($current, $odd_row); + $html .= ''; + return $html; +} + +/** + * Returns the html for Column Order + * + * @param bool $column_order Column order + * @param bool $first_database The first display database + * + * @return string + */ +function PMA_getHtmlForColumnOrder($column_order, $first_database) +{ + $html = ""; + foreach ($column_order as $stat_name => $stat) { + if (array_key_exists($stat_name, $first_database)) { + if ($stat['format'] === 'byte') { + list($value, $unit) = PMA_Util::formatByteDown($stat['footer'], 3, 1); + } elseif ($stat['format'] === 'number') { + $value = PMA_Util::formatNumber($stat['footer'], 0); + } else { + $value = htmlentities($stat['footer'], 0); + } + $html .= ' '; + if (isset($stat['description_function'])) { + $html .= ''; + } + $html .= $value; + if (isset($stat['description_function'])) { + $html .= ''; + } + $html .= '' . "\n"; + if ($stat['format'] === 'byte') { + $html .= ' ' . $unit . '' . "\n"; + } + } + } + + return $html; +} + + +/** + * Returns the html for Column Order with Sort + * + * @param bool $is_superuser User status + * @param bool $is_allowUserDropDatabase Allow user drop database + * @param Array $_url_params Url params + * @param string $sort_by sort colume name + * @param string $sort_order order + * @param string $column_order column order + * @param string $first_database database to show + * + * @return string + */ +function PMA_getHtmlForColumnOrderWithSort( + $is_superuser, $is_allowUserDropDatabase, + $_url_params, $sort_by, $sort_order, + $column_order, $first_database) +{ + $html = ($is_superuser || $is_allowUserDropDatabase ? ' ' . "\n" : '') + . ' ' . "\n" + . ' ' . __('Database') . "\n" + . ($sort_by == 'SCHEMA_NAME' ? ' ' + . PMA_Util::getImage( + 's_' . $sort_order . '.png', + ($sort_order == 'asc' ? __('Ascending') : __('Descending'))) . "\n" : '' + ) + . ' ' . "\n"; + $table_columns = 3; + foreach ($column_order as $stat_name => $stat) { + if (array_key_exists($stat_name, $first_database)) { + if ($stat['format'] === 'byte') { + $table_columns += 2; + $colspan = ' colspan="2"'; + } else { + $table_columns++; + $colspan = ''; + } + $_url_params['sort_by'] = $stat_name; + $_url_params['sort_order'] + = ($sort_by == $stat_name && $sort_order == 'desc') ? 'asc' : 'desc'; + $html .= ' ' + . '' . "\n" + . ' ' . $stat['disp_name'] . "\n" + . ($sort_by == $stat_name ? ' ' + . PMA_Util::getImage( + 's_' . $sort_order . '.png', + ($sort_order == 'asc' ? __('Ascending') : __('Descending'))) . "\n" : '' + ) + . ' ' . "\n"; + } + } + return $html; +} + + +/** + * Returns the html for Enable Statistics + * + * @param bool $url_query Url query + * @param string $html html for database list + * + * @return string + */ +function PMA_getHtmlForNoticeEnableStatistics($url_query, $html) +{ + $notice = PMA_Message::notice( + __( + 'Note: Enabling the database statistics here might cause ' + . 'heavy traffic between the web server and the MySQL server.' + ) + )->getDisplay(); + //we should put notice above database list + $html = $notice . $html; + $html .= '' . "\n"; + + return $html; +} + +/** + * Returns the html for database replication types + * + * @param bool $is_superuser User status + * @param Array $replication_types replication types + * @param bool $cfg_inconic cfg about Properties Iconic + * + * @return string + */ +function PMA_getHtmlForReplicationType($is_superuser, $replication_types, $cfg_inconic) +{ + $html = ''; + foreach ($replication_types as $type) { + if ($type == "master") { + $name = __('Master replication'); + } elseif ($type == "slave") { + $name = __('Slave replication'); + } + + if ($GLOBALS["server_{$type}_status"]) { + $html .= ' '. $name .'' . "\n"; + } + } + + if ($is_superuser && ! PMA_DRIZZLE) { + $html .= ' ' . ($cfg_inconic ? '' : __('Action')) . "\n" + . ' ' . "\n"; + } + return $html; +} +?> diff --git a/server_databases.php b/server_databases.php index ecf2ec23ff..7120e9d514 100644 --- a/server_databases.php +++ b/server_databases.php @@ -9,12 +9,14 @@ * Does the common work */ require_once 'libraries/common.inc.php'; +require_once 'libraries/server_common.inc.php'; +require_once 'libraries/server_databases.lib.php'; + $response = PMA_Response::getInstance(); $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('server_databases.js'); -require 'libraries/server_common.inc.php'; if (! PMA_DRIZZLE) { include_once 'libraries/replication.inc.php'; } else { @@ -75,7 +77,6 @@ $pos = empty($_REQUEST['pos']) ? 0 : (int) $_REQUEST['pos']; /** * Drops multiple databases */ - // workaround for IE behavior (it returns some coordinates based on where // the mouse was on the Drop image): if (isset($_REQUEST['drop_selected_dbs_x'])) { @@ -133,19 +134,18 @@ if ((isset($_REQUEST['drop_selected_dbs']) || isset($_REQUEST['query_type'])) /** * Displays the sub-page heading */ -echo '

' . "\n" - . PMA_Util::getImage('s_db.png') - . ($dbstats ? __('Databases statistics') : __('Databases')) . "\n" - .'

' . "\n"; +$header_type = $dbstats ? "database_statistics" : "databases"; +$response->addHTML(PMA_getSubPageHeader($header_type)); /** - * Create database. + * Displays For Create database. */ +$html = ''; if ($cfg['ShowCreateDb']) { - echo '' . "\n"; } /** @@ -164,194 +164,25 @@ if ($server > 0) { /** * Displays the page */ -$html = ''; if ($databases_count > 0) { - $html .= '
'; - reset($databases); - $first_database = current($databases); - // table col order - $column_order = PMA_getColumnOrder(); - - $_url_params = array( - 'pos' => $pos, - 'dbstats' => $dbstats, - 'sort_by' => $sort_by, - 'sort_order' => $sort_order, + $html .= PMA_getHtmlForDatabase( + $databases, + $databases_count, + $pos, + $dbstats, + $sort_by, + $sort_order, + $is_superuser, + $cfg, + $replication_types, + $replication_info, + $url_query ); - - $html .= PMA_Util::getListNavigator( - $databases_count, $pos, $_url_params, 'server_databases.php', - 'frame_content', $GLOBALS['cfg']['MaxDbList'] - ); - - $_url_params['pos'] = $pos; - $_url_params['drop_selected_dbs'] = 1; - - $html .= '
' . "\n" - . '' . "\n" - . ($is_superuser || $cfg['AllowUserDropDatabase'] ? ' ' . "\n" : '') - . ' ' . "\n" - . ' ' . __('Database') . "\n" - . ($sort_by == 'SCHEMA_NAME' ? ' ' . PMA_Util::getImage('s_' . $sort_order . '.png', ($sort_order == 'asc' ? __('Ascending') : __('Descending'))) . "\n" : '') - . ' ' . "\n"; - $table_columns = 3; - foreach ($column_order as $stat_name => $stat) { - if (array_key_exists($stat_name, $first_database)) { - if ($stat['format'] === 'byte') { - $table_columns += 2; - $colspan = ' colspan="2"'; - } else { - $table_columns++; - $colspan = ''; - } - $_url_params['sort_by'] = $stat_name; - $_url_params['sort_order'] = ($sort_by == $stat_name && $sort_order == 'desc') ? 'asc' : 'desc'; - $html .= ' ' - . '' . "\n" - . ' ' . $stat['disp_name'] . "\n" - . ($sort_by == $stat_name ? ' ' . PMA_Util::getImage('s_' . $sort_order . '.png', ($sort_order == 'asc' ? __('Ascending') : __('Descending'))) . "\n" : '') - . ' ' . "\n"; - } - } - - foreach ($replication_types as $type) { - if ($type=="master") { - $name = __('Master replication'); - } elseif ($type == "slave") { - $name = __('Slave replication'); - } - if (${"server_{$type}_status"}) { - $html .= ' '. $name .'' . "\n"; - } - } - - if ($is_superuser && ! PMA_DRIZZLE) { - $html .= ' ' - . ($cfg['ActionLinksMode'] == 'icons' ? '' : __('Action')) . "\n" - . ' ' . "\n"; - } - $html .= '' . "\n" - . '' . "\n" - . '' . "\n"; - - $odd_row = true; - foreach ($databases as $current) { - $tr_class = $odd_row ? 'odd' : 'even'; - if ($GLOBALS['dbi']->isSystemSchema($current['SCHEMA_NAME'], true)) { - $tr_class .= ' noclick'; - } - $html .= '' . "\n"; - $odd_row = ! $odd_row; - - list($column_order, $generated_html) = PMA_buildHtmlForDb( - $current, - $is_superuser, - $url_query, - $column_order, - $replication_types, - $replication_info - ); - - $html .= $generated_html; - - $html .= '' . "\n"; - } // end foreach ($databases as $key => $current) - unset($current, $odd_row); - - $html .= '' . "\n"; - if ($is_superuser || $cfg['AllowUserDropDatabase']) { - $html .= ' ' . "\n"; - } - $html .= ' ' . __('Total') . ': ' - . $databases_count . '' . "\n"; - foreach ($column_order as $stat_name => $stat) { - if (array_key_exists($stat_name, $first_database)) { - if ($stat['format'] === 'byte') { - list($value, $unit) = PMA_Util::formatByteDown($stat['footer'], 3, 1); - } elseif ($stat['format'] === 'number') { - $value = PMA_Util::formatNumber($stat['footer'], 0); - } else { - $value = htmlentities($stat['footer'], 0); - } - $html .= ' '; - if (isset($stat['description_function'])) { - $html .= ''; - } - $html .= $value; - if (isset($stat['description_function'])) { - $html .= ''; - } - $html .= '' . "\n"; - if ($stat['format'] === 'byte') { - $html .= ' ' . $unit . '' . "\n"; - } - } - } - - foreach ($replication_types as $type) { - if (${"server_{$type}_status"}) { - $html .= ' ' . "\n"; - } - } - - if ($is_superuser) { - $html .= ' ' . "\n"; - } - $html .= '' . "\n"; - $html .= '' . "\n" - .'' . "\n"; - unset($column_order, $stat_name, $stat, $databases, $table_columns); - - if ($is_superuser || $cfg['AllowUserDropDatabase']) { - $common_url_query = PMA_generate_common_url( - array( - 'sort_by' => $sort_by, - 'sort_order' => $sort_order, - 'dbstats' => $dbstats - ) - ); - $html .= '' . __('With selected:') . '' . "\n" - . ' ' - . ' ' - . '' . __('With selected:') . '' . "\n"; - $html .= PMA_Util::getButtonOrImage( - '', - 'mult_submit' . ' ajax', - 'drop_selected_dbs', - __('Drop'), 'b_deltbl.png' - ); - } - - if (empty($dbstats)) { - $html .= '' . "\n"; - } - $html .= ''; - $html .= '
'; } else { $html .= __('No databases'); } unset($databases_count); -echo $html; +$response->addHTML($html); ?>