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
- ?>
-
- ';
+ $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 .= '';
+ $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 .= '
' . "\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";
+ $html .= '
- ' . "\n";
include 'libraries/display_create_database.lib.php';
- echo '
' . "\n";
- echo '
' . "\n";
+ $html .= ' ' . "\n";
+ $html .= '
' . "\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 .= '
';
- $html .= '
';
} else {
$html .= __('No databases');
}
unset($databases_count);
-echo $html;
+$response->addHTML($html);
?>