]> git.joonet.de Git - adminer.git/commitdiff
Defer loading of JUSH
authorJakub Vrana <jakub@vrana.cz>
Thu, 30 Jan 2014 16:27:56 +0000 (08:27 -0800)
committerJakub Vrana <jakub@vrana.cz>
Thu, 30 Jan 2014 16:27:56 +0000 (08:27 -0800)
adminer/file.inc.php
adminer/include/adminer.inc.php
compile.php

index f46df20ad7f7aa13998d18b580a09db0aaf43b3d..219fac01edf462bc6935d6f5824d795bf5ea420d 100644 (file)
@@ -15,7 +15,10 @@ if ($_GET["file"] == "favicon.ico") {
        echo lzw_decompress(compile_file('../adminer/static/default.css;../externals/jush/jush.css', 'minify_css'));
 } elseif ($_GET["file"] == "functions.js") {
        header("Content-Type: text/javascript; charset=utf-8");
-       echo lzw_decompress(compile_file('../adminer/static/functions.js;static/editing.js;../externals/jush/modules/jush.js;../externals/jush/modules/jush-textarea.js;../externals/jush/modules/jush-txt.js;../externals/jush/modules/jush-sql.js;../externals/jush/modules/jush-pgsql.js;../externals/jush/modules/jush-sqlite.js;../externals/jush/modules/jush-mssql.js;../externals/jush/modules/jush-oracle.js;../externals/jush/modules/jush-simpledb.js', 'minify_js'));
+       echo lzw_decompress(compile_file('../adminer/static/functions.js;static/editing.js', 'minify_js'));
+} elseif ($_GET["file"] == "jush.js") {
+       header("Content-Type: text/javascript; charset=utf-8");
+       echo lzw_decompress(compile_file('../externals/jush/modules/jush.js;../externals/jush/modules/jush-textarea.js;../externals/jush/modules/jush-txt.js;../externals/jush/modules/jush-sql.js;../externals/jush/modules/jush-pgsql.js;../externals/jush/modules/jush-sqlite.js;../externals/jush/modules/jush-mssql.js;../externals/jush/modules/jush-oracle.js;../externals/jush/modules/jush-simpledb.js', 'minify_js'));
 } else {
        header("Content-Type: image/gif");
        switch ($_GET["file"]) {
index 63f3ae891146bb8f67cfa1c20380967a4d5eeb34..9c27b7d19ae49d320ffb5eaa9145733f90baddb9 100644 (file)
@@ -68,16 +68,9 @@ class Adminer {
        * @return bool true to link adminer.css if exists
        */
        function head() {
-               global $jush;
-               if (support("sql")) {
-                       ?>
+               ?>
 <link rel="stylesheet" type="text/css" href="../externals/jush/jush.css">
-<script type="text/javascript" src="../externals/jush/modules/jush.js"></script>
-<script type="text/javascript" src="../externals/jush/modules/jush-textarea.js"></script>
-<script type="text/javascript" src="../externals/jush/modules/jush-txt.js"></script>
-<script type="text/javascript" src="../externals/jush/modules/jush-<?php echo $jush; ?>.js"></script>
 <?php
-               }
                return true;
        }
 
@@ -794,6 +787,14 @@ username.form['auth[driver]'].onchange();
                                }
                        }
                } else {
+                       if (support("sql")) {
+                               ?>
+<script type="text/javascript" src="../externals/jush/modules/jush.js"></script>
+<script type="text/javascript" src="../externals/jush/modules/jush-textarea.js"></script>
+<script type="text/javascript" src="../externals/jush/modules/jush-txt.js"></script>
+<script type="text/javascript" src="../externals/jush/modules/jush-<?php echo $jush; ?>.js"></script>
+<?php
+                       }
                        $this->databasesPrint($missing);
                        if (DB == "" || !$missing) {
                                echo "<p class='links'>" . (support("sql") ? "<a href='" . h(ME) . "sql='" . bold(isset($_GET["sql"]) && !isset($_GET["import"])) . ">" . lang('SQL command') . "</a>\n<a href='" . h(ME) . "import='" . bold(isset($_GET["import"])) . ">" . lang('Import') . "</a>\n" : "") . "";
@@ -814,7 +815,6 @@ username.form['auth[driver]'].onchange();
                                                        $links[] = preg_quote($table, '/');
                                                }
                                                echo "<script type='text/javascript'>\n";
-                                               echo "var jushLang = '$jush';\n";
                                                echo "var jushLinks = { $jush: [ '" . js_escape(ME) . (support("table") ? "table=" : "select=") . "\$&', /\\b(" . implode("|", $links) . ")\\b/g ] };\n";
                                                foreach (array("bac", "bra", "sqlite_quo", "mssql_bra") as $val) {
                                                        echo "jushLinks.$val = jushLinks.$jush;\n";
index e87f31be49f71b0cffa5c310f4120ce02ca00405..62eaee7835f5081452217472b6416c823afc2a6d 100755 (executable)
@@ -287,11 +287,14 @@ function minify_js($file) {
 function compile_file($match) {
        global $project;
        $file = "";
-       foreach (explode(";", $match[1]) as $filename) {
-               $file .= file_get_contents(dirname(__FILE__) . "/$project/$filename");
+       list(, $filenames, $callback) = $match;
+       if ($filenames != "") {
+               foreach (explode(";", $filenames) as $filename) {
+                       $file .= file_get_contents(dirname(__FILE__) . "/$project/$filename");
+               }
        }
-       if ($match[2]) {
-               $file = call_user_func($match[2], $file);
+       if ($callback) {
+               $file = call_user_func($callback, $file);
        }
        return '"' . add_quo_slashes($file) . '"';
 }
@@ -378,7 +381,7 @@ if ($driver) {
 }
 if ($project == "editor") {
        $file = preg_replace('~;../externals/jush/jush.css~', '', $file);
-       $file = preg_replace('~;../externals/jush/modules/jush[^.]*.js~', '', $file);
+       $file = preg_replace('~;?../externals/jush/modules/jush[^.]*.js~', '', $file);
 }
 $file = preg_replace_callback("~lang\\('((?:[^\\\\']+|\\\\.)*)'([,)])~s", 'lang_ids', $file);
 $file = preg_replace_callback('~\\b(include|require) "([^"]*\\$LANG.inc.php)";~', 'put_file_lang', $file);
@@ -390,7 +393,6 @@ if ($_SESSION["lang"]) {
        $file = str_replace('<?php echo $LANG; ?>', $_SESSION["lang"], $file);
 }
 $file = str_replace('<script type="text/javascript" src="static/editing.js"></script>' . "\n", "", $file);
-$file = str_replace('<script type="text/javascript" src="../externals/jush/modules/jush.js"></script>' . "\n", "", $file);
 $file = str_replace('<script type="text/javascript" src="../externals/jush/modules/jush-textarea.js"></script>' . "\n", "", $file);
 $file = str_replace('<script type="text/javascript" src="../externals/jush/modules/jush-txt.js"></script>' . "\n", "", $file);
 $file = str_replace('<script type="text/javascript" src="../externals/jush/modules/jush-<?php echo $jush; ?>.js"></script>' . "\n", "", $file);
@@ -399,6 +401,7 @@ $file = preg_replace_callback("~compile_file\\('([^']+)'(?:, '([^']*)')?\\)~", '
 $replace = 'h(preg_replace("~\\\\\\\\?.*~", "", ME)) . "?file=\\1&amp;version=' . $VERSION . ($driver ? '&amp;driver=' . $driver : '');
 $file = preg_replace('~\\.\\./adminer/static/(default\\.css|functions\\.js|favicon\\.ico)~', '<?php echo ' . $replace . '"; ?>', $file);
 $file = preg_replace('~\\.\\./adminer/static/([^\'"]*)~', '" . ' . $replace, $file);
+$file = preg_replace('~\\.\\./externals/jush/modules/(jush\\.js)~', '<?php echo ' . $replace . '"; ?>', $file);
 $file = preg_replace("~<\\?php\\s*\\?>\n?|\\?>\n?<\\?php~", '', $file);
 $file = php_shrink($file);