]> git.joonet.de Git - adminer.git/commitdiff
Provide size of all databases in the overview
authorJakub Vrana <jakub@vrana.cz>
Sat, 1 Mar 2014 19:38:38 +0000 (11:38 -0800)
committerJakub Vrana <jakub@vrana.cz>
Sat, 1 Mar 2014 19:38:38 +0000 (11:38 -0800)
adminer/include/bootstrap.inc.php
adminer/include/connect.inc.php
adminer/include/editing.inc.php
adminer/include/version.inc.php
adminer/lang/cs.inc.php
adminer/lang/xx.inc.php
adminer/script.inc.php
changes.txt

index c639896eabd50509d71bc5dde7054dd3586f2669..12b37a6dd3bc4bc7c09684f1209e8857d4834aa8 100644 (file)
@@ -88,7 +88,7 @@ if (!ini_bool("session.use_cookies") || @ini_set("session.use_cookies", false) !
        session_write_close(); // improves concurrency if a user opens several pages at once, may be restarted later
 }
 
-include "./include/connect.inc.php";
 include "./include/editing.inc.php";
+include "./include/connect.inc.php";
 
 $on_actions = "RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT"; ///< @var string used in foreign_keys()
index 5bfe947e40cc8daac5197b735e91ffa05e0142c3..298f65793aed4e6be7a94f35ed773169c67207b9 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 function connect_error() {
        global $adminer, $connection, $token, $error, $drivers;
-       $databases = array();
        if (DB != "") {
                header("HTTP/1.1 404 Not Found");
                page_header(lang('Database') . ": " . h(DB), lang('Invalid database.'), true);
@@ -31,15 +30,25 @@ function connect_error() {
                        $collations = collations();
                        echo "<form action='' method='post'>\n";
                        echo "<table cellspacing='0' class='checkable' onclick='tableClick(event);' ondblclick='tableClick(event, true);'>\n";
-                       echo "<thead><tr>" . (support("database") ? "<td>&nbsp;" : "") . "<th>" . lang('Database') . "<td>" . lang('Collation') . "<td>" . lang('Tables') . "</thead>\n";
+                       echo "<thead><tr>"
+                               . (support("database") ? "<td>&nbsp;" : "")
+                               . "<th>" . lang('Database')
+                               . "<td>" . lang('Collation')
+                               . "<td>" . lang('Tables')
+                               . "<td>" . lang('Size') . " - <a href='" . h(ME) . "dbsize=1' onclick=\"return !ajaxSetHtml('" . js_escape(ME) . "script=connect');\">" . lang('Compute') . "</a>"
+                               . "</thead>\n"
+                       ;
                        
-                       foreach ($databases as $db) {
+                       $databases = ($_GET["dbsize"] ? count_tables($databases) : array_flip($databases));
+                       
+                       foreach ($databases as $db => $tables) {
                                $root = h(ME) . "db=" . urlencode($db);
                                echo "<tr" . odd() . ">" . (support("database") ? "<td>" . checkbox("db[]", $db, in_array($db, (array) $_POST["db"])) : "");
                                echo "<th><a href='$root'>" . h($db) . "</a>";
                                $collation = nbsp(db_collation($db, $collations));
                                echo "<td>" . (support("database") ? "<a href='$root" . ($scheme ? "&amp;ns=" : "") . "&amp;database=' title='" . lang('Alter database') . "'>$collation</a>" : $collation);
-                               echo "<td align='right'><a href='$root&amp;schema=' id='tables-" . h($db) . "' title='" . lang('Database schema') . "'>?</a>";
+                               echo "<td align='right'><a href='$root&amp;schema=' id='tables-" . h($db) . "' title='" . lang('Database schema') . "'>" . ($_GET["dbsize"] ? $tables : "?") . "</a>";
+                               echo "<td align='right' id='size-" . h($db) . "'>" . ($_GET["dbsize"] ? db_size($db) : "?");
                                echo "\n";
                        }
                        
@@ -59,9 +68,6 @@ function connect_error() {
        }
        
        page_footer("db");
-       if ($databases) {
-               echo "<script type='text/javascript'>ajaxSetHtml('" . js_escape(ME) . "script=connect');</script>\n";
-       }
 }
 
 if (isset($_GET["status"])) {
index b5d7024c0e2bbd8dbd084d5c83b3c48a97d745d6..76e4aa2ea8880a2861b1efc18397da662ea318a1 100644 (file)
@@ -505,3 +505,19 @@ function ob_gzencode($string) {
        // ob_start() callback recieves an optional parameter $phase but gzencode() accepts optional parameter $level
        return gzencode($string);
 }
+
+/** Compute size of database
+* @param string
+* @return string formatted
+*/
+function db_size($db) {
+       global $connection;
+       if (!$connection->select_db($db)) {
+               return "?";
+       }
+       $return = 0;
+       foreach (table_status() as $table_status) {
+               $return += $table_status["Data_length"] + $table_status["Index_length"];
+       }
+       return number_format($return, 0, '.', lang(','));
+}
index 2c5973a84b36fb6ae52362a97286121098495395..5a236e595c36b4e8a5dc889d5ff1d49a6f548893 100644 (file)
@@ -1,2 +1,2 @@
 <?php
-$VERSION = "4.0.4-dev";
+$VERSION = "4.1.0-dev";
index b80042cafe4185e77db06184e99ad17511972b3a..54cd50435aff06c54caf7316156acae7e3aaaced 100644 (file)
@@ -165,6 +165,8 @@ $translations = array(
        'Default values' => 'Výchozí hodnoty',
        'Drop' => 'Odstranit',
        'Are you sure?' => 'Opravdu?',
+       'Size' => 'Velikost',
+       'Compute' => 'Spočítat',
        'Move up' => 'Přesunout nahoru',
        'Move down' => 'Přesunout dolů',
        'Remove' => 'Odebrat',
index 5e989f50e0a1d307cee0aba85274e6d142416b45..f7bfc8d135486685be4159ccfcb8b1e99f44bd6e 100644 (file)
@@ -165,6 +165,8 @@ $translations = array(
        'Default values' => 'xx',
        'Drop' => 'xx',
        'Are you sure?' => 'xx',
+       'Size' => 'xx',
+       'Compute' => 'xx',
        'Move up' => 'xx',
        'Move down' => 'xx',
        'Remove' => 'xx',
index 099c47bb7ee6f438f771eee1a9c9225f9a60011e..ab850c5f804f59b7d8d033277ec8edfcff54bc52 100644 (file)
@@ -37,7 +37,8 @@ if ($_GET["script"] == "db") {
 
 } else { // connect
        foreach (count_tables($adminer->databases()) as $db => $val) {
-               json_row("tables-" . js_escape($db), $val);
+               json_row("tables-$db", $val);
+               json_row("size-$db", db_size($db));
        }
        json_row("");
 }
index 8abfbee14d3039ded2fbf1fbc2b8ddb052b884d3..df665bb71d43b2b0b004827fdd1e10f838e38372 100644 (file)
@@ -1,4 +1,6 @@
-Adminer 4.0.4-dev:
+Adminer 4.1.0-dev:
+Provide size of all databases in the overview
+Compute number of tables in the overview explicitly
 Display edit form after error in clone or multi-edit
 Display time of the select command
 Improve gzip export ratio (bug #387)