Merge pull request #203 from cytopia/new-php-container

REL-0.13: New PHP Container
This commit is contained in:
cytopia 2018-04-15 10:43:38 +02:00 committed by GitHub
commit 96041807a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6689 changed files with 229940 additions and 507692 deletions

View File

@ -13,8 +13,8 @@ error_reporting(-1);
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
$DEVILBOX_VERSION = 'v0.12.1';
$DEVILBOX_DATE = '2018-01-30';
$DEVILBOX_VERSION = 'v0.13';
$DEVILBOX_DATE = '2018-04-14';
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
//

View File

@ -19,7 +19,7 @@
<div class="col-md-6">
<h2>Contributors</h2>
<p>The following people have contributed to the <a href="https://github.com/cytopia/devilbox">Devilbox</a>.</p>
<p>The following people have contributed to the <a href="https://github.com/cytopia/devilbox/graphs/contributors">Devilbox</a>.</p>
<table class="table table-striped ">
<thead class="thead-inverse ">
<tr>

View File

@ -372,40 +372,6 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
<th>Postfix</th>
<td><?php echo loadClass('Helper')->getEnv('ENABLE_MAIL') ? 'Enabled' : '<span class="bg-danger">No</span> Disabled';?></td>
</tr>
<tr>
<th>Xdebug</th>
<td>
<?php $Xdebug = (loadClass('Helper')->getEnv('PHP_XDEBUG_ENABLE') == 0) ? '' : loadClass('Helper')->getEnv('PHP_XDEBUG_ENABLE'); ?>
<?php if ($Xdebug == loadClass('Php')->getConfig('xdebug.remote_enable')): ?>
<?php echo loadClass('Php')->getConfig('xdebug.remote_enable') == 1 ? 'Yes' : 'No'; ?>
<?php else: ?>
<?php echo '<span class="text-danger">not installed</span>.env file setting differs from custom php .ini file</span><br/>'; ?>
<?php echo 'Effective setting: '.loadClass('Php')->getConfig('xdebug.remote_enable'); ?>
<?php endif; ?>
</td>
</tr>
<tr>
<th>Xdebug Remote</th>
<td>
<?php if (loadClass('Helper')->getEnv('PHP_XDEBUG_REMOTE_HOST') == loadClass('Php')->getConfig('xdebug.remote_host')): ?>
<?php echo loadClass('Php')->getConfig('xdebug.remote_host'); ?>
<?php else: ?>
<?php echo '<span class="text-danger">not installed</span>.env file setting differs from custom php .ini file</span><br/>'; ?>
<?php echo 'Effective setting: '.loadClass('Php')->getConfig('xdebug.remote_host'); ?>
<?php endif; ?>
</td>
</tr>
<tr>
<th>Xdebug Port</th>
<td>
<?php if (loadClass('Helper')->getEnv('PHP_XDEBUG_REMOTE_PORT') == loadClass('Php')->getConfig('xdebug.remote_port')): ?>
<?php echo loadClass('Php')->getConfig('xdebug.remote_port'); ?>
<?php else: ?>
<?php echo '<span class="text-danger">not installed</span>.env file setting differs from custom php .ini file</span><br/>'; ?>
<?php echo 'Effective setting: '.loadClass('Php')->getConfig('xdebug.remote_port'); ?>
<?php endif; ?>
</td>
</tr>
</tbody>
</table>
@ -765,10 +731,15 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
</thead>
<tbody>
<tr>
<th>php</th>
<td>./cfg/<?php echo loadClass('Helper')->getEnv('PHP_SERVER'); ?></td>
<th>php (ini)</th>
<td>./cfg/php-ini-<?php echo loadClass('Helper')->getEnv('PHP_SERVER'); ?></td>
<td>/etc/php-custom.d</td>
</tr>
<tr>
<th>php (fpm)</th>
<td>./cfg/php-fpm-<?php echo loadClass('Helper')->getEnv('PHP_SERVER'); ?></td>
<td>/etc/php-fpm-custom.d</td>
</tr>
<tr>
<th>httpd</th>
<td>./cfg/<?php echo loadClass('Helper')->getEnv('HTTPD_SERVER'); ?></td>
@ -841,7 +812,7 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
<tbody>
<tr>
<th>php</th>
<td>./log/<?php echo loadClass('Helper')->getEnv('PHP_SERVER'); ?></td>
<td>./log/php-fpm-<?php echo loadClass('Helper')->getEnv('PHP_SERVER'); ?></td>
<td>/var/log/php</td>
</tr>
<tr>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,35 +0,0 @@
# Contributing to phpMyAdmin
As an open source project, phpMyAdmin welcomes contributions of many forms.
## Bug reporting
We appreciate your effort to improve phpMyAdmin by submitting a bug report. Before doing so, please check the following things:
1. Check whether the bug you face **hasn't been already reported**. Duplicate reports takes us time, that we could be used to fix other bugs or make improvements.
2. Specify the phpMyAdmin, server, PHP, MySQL and browser information that may be helpful to fix the problem, especially exact **version numbers**.
3. If you got some error, please **describe what happened** and add error message. Reports like "I get error when I clicked on some link." are useless.
4. Provide easy steps to reproduce and if possible include your table structure (``SHOW CREATE TABLE `tbl_name```); if your problem implies specific data, attach a small export file for sample rows.
5. **Security problems** should not be reported here. See [our security page](https://www.phpmyadmin.net/security/).
Thanks for your help!
Please report [bugs on GitHub][1].
[1]: https://github.com/phpmyadmin/phpmyadmin/issues/new
## Patches submission
Patches are welcome as [pull requests on GitHub][2]. Please include a
Signed-off-by tag in the commit message (you can do this by passing `--signoff`
parameter to Git). Note that by submitting patches with the Signed-off-by tag,
you are giving permission to license the patch as GPLv2-or-later. See [the DCO
file][3] for details.
[2]: https://github.com/phpmyadmin/phpmyadmin/pulls
[3]: https://github.com/phpmyadmin/phpmyadmin/blob/master/DCO
## More information
You can find more information on our website:
https://www.phpmyadmin.net/contribute/

View File

@ -1,166 +0,0 @@
phpMyAdmin - ChangeLog
======================
4.7.0 (2017-03-28)
- patch #12233 [Display] Improve message when renaming database to same name
- issue #6146 Log authentication attempts to syslog
- issue #11981 Remove support for Swekey authentication
- issue #11987 Remove code for no longer supported MSIE versions
+ issue #11962 Remove embedded PHP libraries, use composer to install them
+ issue #12017 Cannot easily select multiple tables when exporting
+ issue #12047 Add javascript filtering for databases
- issue #12166 More compact rendering of navigation tree
+ issue #12129 Improve performance with SkipLockedTables
- issue #12173 Do not hide indexes under a slider
- issue Improve performance of zip file import
- issue #12196 Removed $cfg['ThemePath']
- issue #6274 Add support for export user settings as config.inc.php snippet
- issue #5555 Better report query errors while generating SQL exports
- issue #12307 Produce valid JSON on export
- issue #12325 Setup script icons broken
- issue #12378 Support IPv6 proxies
- issue Removed MySQL connection retry without password
- issue #12218 Allow to specify further parameters for control connection
- issue #12162 Show charset for each table on Database structure page
- issue #12463 Incorrect link in the href of icon at Hide/Show unhide links
- issue #12330 Shortcut for closing console
- issue #12465 Improved handling of http requests
- issue #12474 Broken links in Setup forms Navigation
- issue #12494 Can't add a new User
- issue #12523 Add 'token' Parameter in all POST requests (Fix 'Token mismatch' errors)
- issue #12302 Improved usage of number_format
- issue #12656 Server selection not working
- issue #12543 NULL results in dataset are colored grey
- issue #12664 Create Bookmark broken
- issue #12688 Use unsigned int for storing bookmark ID
- issue #12352 Added password strength indicator
- issue #12713 Correctly handle HTTP status when doing requests
- issue #12247 Add option to delete settings from browser storage
- issue #12783 Remove unused PMA_addJSCode function
- issue #12069 Add table filtering to database structure
- issue #12799 Allow to configure signon session parameters
- issue #12854 Drop database is broken
- issue #12863 Can't toggle Event Scheduler on
- issue #12742 Finish removing dead code references to xls/xlsx import and export, which was removed some time ago.
- issue #12536 Rename "Relations" to "Relationships" in many places as it's the more proper term
- issue #12834 Fixed margins in central columns feature
- issue #12903 Document more export configuration options
- issue #12897 Use consistent numeric format for table overhead
- issue #12901 Use server returned table name on renaming table
- issue #12918 Always use \r\n as newline when editing fields
- issue #12923 Fixed server side search in navigation panel
- issue #12929 Undefined index warning with ssl_ca_paths
- issue #12924 Do not show errors from OpenSSL cookie encryption/decryption
- issue #12945 Fixed hint rendering on adding new user
- issue #12941 Fixed sorting of tables in relation view
- issue #12936 Fixed tables pagination in navigation panel
- issue #12904 Do not collapse add form for central columns if there are none
- issue #12955 Fixed database renaming
- issue #12954 Fixed export of tracking data
- issue #12960 Enclose exports in transaction by default
- issue #12966 After adding a column ADD INDEX option won't be displayed when enabling AI
- issue #12972 Better error message when Composer has not been run
- issue #12988 Do not show language selector without choices
- issue #12993 Fixed external links to php documentation
- issue #12990 Fixed error when loading favorite tables to console
- issue #12981 Improved rendering of new version information
- issue #12922 Fixed bookmarks ordering
- issue #12964 Fixed table search in navigation
- issue #12985 Fixed rendering of foreign key browsing
- issue #12957 Fixed manipulation with GIS data having zero coordinates
- issue #12804 Fixed various designer javascript errors
- issue #12934 Fixed possible javascript error on server status page
- issue #12927 Fixed javascript error on 3NF normalization
- issue #12996 List all databses in navigation panel database dropdown
- issue #12980 Better defaults when creating multi field foreign key
- issue #12976 Improved foreign key editor behavior
- issue #12958 Always show error reporting dialog on top
- issue #12693 Improved support for TokuDB
- issue #11231 Try harder to honor LoginCookieValidity setting
- issue #13016 and #13017 Slight improvements to the table layout of Relation view
- issue #12345 Correctly show affected rows for LOAD DATA queries
- issue #13010 Copy database: SQL error for copying PMADB metadata
- issue #13002 Fixed OpenDocument exports
- issue #13000 Align NULL values according to the column alignment
- issue #13021 Show phpMyAdmin errors even with error_reporting set to 0
- issue #13020 Removed warning about client and server versions mismatch
- issue Hide comments on table Structure tab when no comment is set
- issue Fixed submission of error reports
- issue #13033 Use Referrer-Policy header to specify referrer policy
- issue Fixed javascript confirmation of dangerous queries
- issue #13040 Compatibility with hhvm 3.18
- issue #13031 Fixed displaying of all rows
- issue #12967 Fixed related field selection for native relations
- issue #13045 Properly escape MIME transformatoin names
- issue #13028 Always show 100% in font selector
- issue #13047 Fix query simulating for more servers
- issue #12846 Fix new version check for sites with wrongly configured curl
- issue #12951 When exporting to Excel, the default is now to include column names in the first row
- issue #13059 Removed debugging code
- issue #13029 Fixed table tracking for nested table groups
- issue #13053 Fixed broken links in setup
- issue #12708 Removed phpMyAdmin version from User-Agent header
- issue #13084 Do not point users to setup when it is disabled
- issue #12660 Delete only phpMyAdmin cookies on upgrade
- issue #13088 Fixed editing of rows with text primary key
- issue #13092 Do not try to sync favorite tables if configuration storage is not enabled
- issue #13105 Fixed changing attribute for virtual field
- issue #12757 Fixed setting password on recent MariaDB with non working plugins
- issue #12349 Fixed undefined variable on import from some formats
- issue #13103 Do not offer default names for copying/renaming databases
- issue [security] Possible to bypass $cfg['Servers'][$i]['AllowNoPassword'], see PMASA-2017-08
4.6.6 (2017-01-23)
- issue #12759 Fix Notice regarding 'Undefined index: old_usergroup'
- issue #12760 Fix Notice regarding 'Undefined index: users'
- issue #12762 Fixed parsing of SQL with BINARY function
- issue #12588 ReCaptcha now works without allow_url_fopen
- issue #12699 Show no local storage warning only on settings tab
- issue #12778 Syntax Error in Adding/Changing TIMESTAMP columns with default value as NULL
- issue #12769 Edit/Export links are not clickable under Routines tab
- issue #12757 Fixed creating new user with older MariaDB
- issue #12784 Remove ctype installation suggestion
- issue #12780 Format button replaces all text with blank spaces
- issue #12786 Fixed database searching
- issue #12792 Fixed javascript error on new version link
- issue #12785 Add information about required and suggested extensions to composer.json
- issue #12801 Custom header shown twice with cookie login form
- issue #12802 Custom footer not shown with auth_type http login failure
- issue #12434 Improve documentation for servers running with Suhosin
- issue #12800 Updated embedded phpSecLib to 2.0.4
- issue #12800 Fixed various issues with PHP 7.1
- issue #11816 Fixed operation with lower_case_table_names=2
- issue #12813 Fixed stored procedure execution
- issue #12826 Honor user configured connection collation
- issue #12293 Correctly report OpenSSL errors from cookie encryption
- issue #12814 DateTime won't allow to input length in Routine editor
- issue #12840 Fix Notice regarding 'Undefined index: row_format' when altering table options
- issue #12841 Fixed moving of columns with whitespace in name
- issue #12847 Fixed editing of virtual columns
- issue #12859 Changed WHERE condition to 0 instead of 1 for SQL query window to avoid accidents
- issue #12872 Use same query for display and execution when dropping index
- issue #12868 Fix check for user groups freatures being enabled
- issue #12876 Fix notices and warning related to dbs_to_test global
- issue #12831 Fix table formatting on Insert tab, which mostly affected row highlighting
- issue #12495 Reintroduced phpinfo page with limited capabilities
- issue #12861 Fix renaming tables with lower_case_table_names=2
- issue #12876 Fix possible PHP error in navigation
- issue #12881 Fix database search with newer php-gettext
- issue #12894 Fix linter error on unterminated variable name
- issue #12732 Fixed filtering for active processes
- issue [security] Multiple vulnerabilities in setup script, see PMASA-2016-44.
- issue [security] Open redirect, see PMASA-2017-1.
- issue [security] php-gettext code execution, see PMASA-2017-2.
- issue [security] DOS vulnerabiltiy in table editing, see PMASA-2017-3.
- issue [security] CSS injection in themes, see PMASA-2017-4.
- issue [security] Cookie attribute injection attack, see PMASA-2017-5.
- issue [security] SSRF in replication, see PMASA-2017-6.
- issue [security] DOS in replication status, see PMASA-2017-7.
--- Older ChangeLogs can be found on our project website ---
https://www.phpmyadmin.net/old-stuff/ChangeLogs/
# vim: et ts=4 sw=4 sts=4
# vim: ft=changelog fenc=utf-8
# vim: fde=getline(v\:lnum-1)=~'^\\s*$'&&getline(v\:lnum)=~'\\S'?'>1'\:1&&v\:lnum>4&&getline(v\:lnum)!~'^#'
# vim: fdn=1 fdm=expr

View File

@ -1,52 +0,0 @@
phpMyAdmin - Readme
===================
Version 4.7.0
A web interface for MySQL and MariaDB.
https://www.phpmyadmin.net/
Summary
-------
phpMyAdmin is intended to handle the administration of MySQL over the web.
For a summary of features, list of requirements, and installation instructions,
please see the documentation in the ./doc/ folder or at https://docs.phpmyadmin.net/
Copyright
---------
Copyright © 1998 onwards -- the phpMyAdmin team
Certain libraries are copyrighted by their respective authors;
see the full copyright list for details.
For full copyright information, please see ./doc/copyright.rst
License
-------
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License version 2, as published by the
Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Licensing of current contributions
----------------------------------
Beginning on 2013-12-01, new contributions to this codebase are all licensed
under terms compatible with GPLv2-or-later. phpMyAdmin is currently
transitioning older code to GPLv2-or-later, but work is not yet complete.
Enjoy!
------
The phpMyAdmin team

View File

@ -1 +0,0 @@
Wed Mar 29 12:13:14 UTC 2017

View File

@ -1,61 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* display selection for relational field values
*
* @package PhpMyAdmin
*/
use PMA\libraries\Response;
require_once 'libraries/common.inc.php';
require_once 'libraries/transformations.lib.php';
require_once 'libraries/browse_foreigners.lib.php';
/**
* Sets globals from $_REQUEST
*/
$request_params = array(
'data',
'field'
);
foreach ($request_params as $one_request_param) {
if (isset($_REQUEST[$one_request_param])) {
$GLOBALS[$one_request_param] = $_REQUEST[$one_request_param];
}
}
PMA\libraries\Util::checkParameters(array('db', 'table', 'field'));
$response = Response::getInstance();
$response->getFooter()->setMinimal();
$header = $response->getHeader();
$header->disableMenuAndConsole();
$header->setBodyId('body_browse_foreigners');
/**
* Displays the frame
*/
$foreigners = PMA_getForeigners($db, $table);
$foreign_limit = PMA_getForeignLimit(
isset($_REQUEST['foreign_showAll']) ? $_REQUEST['foreign_showAll'] : null
);
$foreignData = PMA_getForeignData(
$foreigners, $_REQUEST['field'], true,
isset($_REQUEST['foreign_filter'])
? $_REQUEST['foreign_filter']
: '',
isset($foreign_limit) ? $foreign_limit : null,
true // for getting value in $foreignData['the_total']
);
// HTML output
$html = PMA_getHtmlForRelationalFieldSelection(
$db, $table, $_REQUEST['field'], $foreignData,
isset($fieldkey) ? $fieldkey : null,
isset($data) ? $data : null
);
$response->addHtml($html);

View File

@ -1,160 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Simple script to set correct charset for changelog
*
* @package PhpMyAdmin
*/
use PMA\libraries\Response;
/**
* Gets core libraries and defines some variables
*/
require 'libraries/common.inc.php';
$response = Response::getInstance();
$response->disable();
$response->getHeader()->sendHttpHeaders();
$filename = CHANGELOG_FILE;
/**
* Read changelog.
*/
// Check if the file is available, some distributions remove these.
if (@is_readable($filename)) {
// Test if the if is in a compressed format
if (substr($filename, -3) == '.gz') {
ob_start();
readgzfile($filename);
$changelog = ob_get_contents();
ob_end_clean();
} else {
$changelog = file_get_contents($filename);
}
} else {
printf(
__(
'The %s file is not available on this system, please visit ' .
'%s for more information.'
),
$filename,
'<a href="https://www.phpmyadmin.net/">phpmyadmin.net</a>'
);
exit;
}
/**
* Whole changelog in variable.
*/
$changelog = htmlspecialchars($changelog);
$tracker_url = 'https://sourceforge.net/support/tracker.php?aid=\\1';
$tracker_url_bug = 'https://sourceforge.net/p/phpmyadmin/bugs/\\1/';
$tracker_url_rfe = 'https://sourceforge.net/p/phpmyadmin/feature-requests/\\1/';
$tracker_url_patch = 'https://sourceforge.net/p/phpmyadmin/patches/\\1/';
$github_url = 'https://github.com/phpmyadmin/phpmyadmin/';
$faq_url = 'https://docs.phpmyadmin.net/en/latest/faq.html';
$replaces = array(
'@(https?://[./a-zA-Z0-9.-_-]*[/a-zA-Z0-9_])@'
=> '<a href="url.php?url=\\1">\\1</a>',
// sourceforge users
'/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +&lt;(.*)@users.sourceforge.net&gt;/i'
=> '\\1 <a href="url.php?url=https://sourceforge.net/users/\\3/">\\2</a>',
'/thanks to ([^\(\r\n]+) \(([-\w]+)\)/i'
=> 'thanks to <a href="url.php?url=https://sourceforge.net/users/\\2/">\\1</a>',
'/thanks to ([^\(\r\n]+) -\s+([-\w]+)/i'
=> 'thanks to <a href="url.php?url=https://sourceforge.net/users/\\2/">\\1</a>',
// mail address
'/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +&lt;(.*@.*)&gt;/i'
=> '\\1 <a href="mailto:\\3">\\2</a>',
// linking patches
'/patch\s*#?([0-9]{6,})/i'
=> '<a href="url.php?url=' . $tracker_url . '">patch #\\1</a>',
// linking RFE
'/(?:rfe|feature)\s*#?([0-9]{6,})/i'
=> '<a href="url.php?url=https://sourceforge.net/support/tracker.php?aid=\\1">RFE #\\1</a>',
// linking files
'/(\s+)([\\/a-z_0-9\.]+\.(?:php3?|html|pl|js|sh))/i'
=> '\\1<a href="url.php?url=' . $github_url . 'commits/HEAD/\\2">\\2</a>',
// FAQ entries
'/FAQ ([0-9]+)\.([0-9a-z]+)/i'
=> '<a href="url.php?url=' . $faq_url . '#faq\\1-\\2">FAQ \\1.\\2</a>',
// linking bugs
'/bug\s*#?([0-9]{6,})/i'
=> '<a href="url.php?url=https://sourceforge.net/support/tracker.php?aid=\\1">bug #\\1</a>',
// all other 6+ digit numbers are treated as bugs
'/(?<!bug|RFE|patch) #?([0-9]{6,})/i'
=> '<a href="url.php?url=' . $tracker_url . '">bug #\\1</a>',
// GitHub issues
'/issue\s*#?([0-9]{4,5}) /i'
=> '<a href="url.php?url=' . $github_url . 'issues/\\1">issue #\\1</a> ',
// transitioned SF.net project bug/rfe/patch links
// by the time we reach 6-digit numbers, we can probably retire the above links
'/patch\s*#?([0-9]{4,5}) /i'
=> '<a href="url.php?url=' . $tracker_url_patch . '">patch #\\1</a> ',
'/(?:rfe|feature)\s*#?([0-9]{4,5}) /i'
=> '<a href="url.php?url=' . $tracker_url_rfe . '">RFE #\\1</a> ',
'/bug\s*#?([0-9]{4,5}) /i'
=> '<a href="url.php?url=' . $tracker_url_bug . '">bug #\\1</a> ',
'/(?<!bug|RFE|patch) #?([0-9]{4,5}) /i'
=> '<a href="url.php?url=' . $tracker_url_bug . '">bug #\\1</a> ',
// CVE/CAN entries
'/((CAN|CVE)-[0-9]+-[0-9]+)/'
=> '<a href="url.php?url=https://cve.mitre.org/cgi-bin/cvename.cgi?name=\\1">\\1</a>',
// PMASAentries
'/(PMASA-[0-9]+-[0-9]+)/'
=> '<a href="url.php?url=https://www.phpmyadmin.net/security/\\1/">\\1</a>',
// Highlight releases (with links)
'/([0-9]+)\.([0-9]+)\.([0-9]+)\.0 (\([0-9-]+\))/'
=> '<a name="\\1_\\2_\\3"></a>'
. '<a href="url.php?url=' . $github_url . 'commits/RELEASE_\\1_\\2_\\3">'
. '\\1.\\2.\\3.0 \\4</a>',
'/([0-9]+)\.([0-9]+)\.([0-9]+)\.([1-9][0-9]*) (\([0-9-]+\))/'
=> '<a name="\\1_\\2_\\3_\\4"></a>'
. '<a href="url.php?url=' . $github_url . 'commits/RELEASE_\\1_\\2_\\3_\\4">'
. '\\1.\\2.\\3.\\4 \\5</a>',
// Highlight releases (not linkable)
'/( ### )(.*)/'
=> '\\1<b>\\2</b>',
// Links target and rel
'/a href="/' => 'a target="_blank" rel="noopener noreferrer" href="/'
);
header('Content-type: text/html; charset=utf-8');
?>
<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<title>phpMyAdmin - ChangeLog</title>
<meta charset="utf-8" />
</head>
<body>
<h1>phpMyAdmin - ChangeLog</h1>
<?php
echo '<pre>';
echo preg_replace(array_keys($replaces), $replaces, $changelog);
echo '</pre>';
?>
</body>
</html>

View File

@ -1,33 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Displays status of phpMyAdmin configuration storage
*
* @package PhpMyAdmin
*/
use PMA\libraries\Response;
require_once 'libraries/common.inc.php';
// If request for creating the pmadb
if (isset($_REQUEST['create_pmadb'])) {
if (PMA_createPMADatabase()) {
PMA_fixPMATables('phpmyadmin');
}
}
// If request for creating all PMA tables.
if (isset($_REQUEST['fixall_pmadb'])) {
PMA_fixPMATables($GLOBALS['db']);
}
$cfgRelation = PMA_getRelationsParam();
// If request for creating missing PMA tables.
if (isset($_REQUEST['fix_pmadb'])) {
PMA_fixPMATables($cfgRelation['db']);
}
$response = Response::getInstance();
$response->addHTML(
PMA_getRelationsParamDiagnostic($cfgRelation)
);

View File

@ -1,66 +0,0 @@
{
"name": "phpmyadmin/phpmyadmin",
"type": "application",
"description": "MySQL web administration tool",
"keywords": ["phpmyadmin","mysql","web"],
"homepage": "https://www.phpmyadmin.net/",
"license": "GPL-2.0+",
"authors": [
{
"name": "The phpMyAdmin Team",
"email": "developers@phpmyadmin.net",
"homepage": "https://www.phpmyadmin.net/team/"
}
],
"support": {
"forum": "https://www.phpmyadmin.net/support/",
"issues": "https://github.com/phpmyadmin/phpmyadmin/issues",
"wiki": "https://wiki.phpmyadmin.net/",
"docs": "https://docs.phpmyadmin.net/",
"source": "https://github.com/phpmyadmin/phpmyadmin"
},
"non-feature-branches": ["RELEASE_.*"],
"autoload": {
"psr-4": {
"PMA\\": "./"
}
},
"require": {
"php": ">=5.5.0",
"ext-mbstring": "*",
"ext-mysqli": "*",
"ext-xml": "*",
"ext-pcre": "*",
"ext-json": "*",
"phpmyadmin/sql-parser": "^4.1.2",
"phpmyadmin/motranslator": "^3.0",
"phpmyadmin/shapefile": "^2.0",
"tecnickcom/tcpdf": "^6.2",
"phpseclib/phpseclib": "^2.0",
"google/recaptcha": "^1.1"
},
"suggest": {
"ext-openssl": "Cookie encryption",
"ext-curl": "Updates checking",
"ext-opcache": "Better performance",
"ext-zlib": "For gz import and export",
"ext-bz2": "For bzip2 import and export",
"ext-zip": "For zip import and export",
"ext-gd2": "For image transformations",
"tecnickcom/tcpdf": "For PDF support"
},
"require-dev": {
"satooshi/php-coveralls": "^1.0",
"phpunit/phpunit": "~4.1",
"codacy/coverage": "dev-master",
"phpunit/phpunit-selenium": "~1.2",
"squizlabs/php_codesniffer": "2.*",
"phpmyadmin/coding-standard": ">=0.1.0"
},
"repositories": [
{
"type": "composer",
"url": "https://www.phpmyadmin.net"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@ -1,154 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* phpMyAdmin sample configuration, you can use it as base for
* manual configuration. For easier setup you can use setup/
*
* All directives are explained in documentation in the doc/ folder
* or at <https://docs.phpmyadmin.net/>.
*
* @package PhpMyAdmin
*/
/**
* This is needed for cookie based authentication to encrypt password in
* cookie. Needs to be 32 chars long.
*/
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/**
* Servers configuration
*/
$i = 0;
/**
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/**
* phpMyAdmin configuration storage settings.
*/
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
/**
* End of servers configuration
*/
/**
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
/**
* Whether to display icons or text or both icons and text in table row
* action segment. Value can be either of 'icons', 'text' or 'both'.
* default = 'both'
*/
//$cfg['RowActionType'] = 'icons';
/**
* Defines whether a user should be displayed a "show all (records)"
* button in browse mode or not.
* default = false
*/
//$cfg['ShowAll'] = true;
/**
* Number of rows displayed when browsing a result set. If the result
* set contains more rows, "Previous" and "Next".
* Possible values: 25, 50, 100, 250, 500
* default = 25
*/
//$cfg['MaxRows'] = 50;
/**
* Disallow editing of binary fields
* valid values are:
* false allow editing
* 'blob' allow editing except for BLOB fields
* 'noblob' disallow editing except for BLOB fields
* 'all' disallow editing
* default = 'blob'
*/
//$cfg['ProtectBinary'] = false;
/**
* Default language to use, if not browser-defined or user-defined
* (you find all languages in the locale folder)
* uncomment the desired line:
* default = 'en'
*/
//$cfg['DefaultLang'] = 'en';
//$cfg['DefaultLang'] = 'de';
/**
* How many columns should be used for table display of a database?
* (a value larger than 1 results in some information being hidden)
* default = 1
*/
//$cfg['PropertiesNumColumns'] = 2;
/**
* Set to true if you want DB-based query history.If false, this utilizes
* JS-routines to display query history (lost by window close)
*
* This requires configuration storage enabled, see above.
* default = false
*/
//$cfg['QueryHistoryDB'] = true;
/**
* When using DB-based query history, how many entries should be kept?
* default = 25
*/
//$cfg['QueryHistoryMax'] = 100;
/**
* Whether or not to query the user before sending the error report to
* the phpMyAdmin team when a JavaScript error occurs
*
* Available options
* ('ask' | 'always' | 'never')
* default = 'ask'
*/
//$cfg['SendErrorReports'] = 'always';
/**
* You can find more configuration options in the documentation
* in the doc/ folder or at <https://docs.phpmyadmin.net/>.
*/

View File

@ -1,154 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Central Columns view/edit
*
* @package PhpMyAdmin
*/
use PMA\libraries\URL;
use PMA\libraries\Response;
/**
* Gets some core libraries
*/
require_once 'libraries/common.inc.php';
require_once 'libraries/central_columns.lib.php';
if (isset($_POST['edit_save']) || isset($_POST['add_new_column'])) {
$col_name = $_POST['col_name'];
if (isset($_POST['edit_save'])) {
$orig_col_name = $_POST['orig_col_name'];
}
$col_default = $_POST['col_default'];
if ($col_default == 'NONE' && $_POST['col_default_sel'] != 'USER_DEFINED') {
$col_default = "";
}
$col_extra = isset($_POST['col_extra']) ? $_POST['col_extra'] : '';
$col_isNull = isset($_POST['col_isNull'])?1:0;
$col_length = $_POST['col_length'];
$col_attribute = $_POST['col_attribute'];
$col_type = $_POST['col_type'];
$collation = $_POST['collation'];
if (isset($orig_col_name) && $orig_col_name) {
echo PMA_updateOneColumn(
$db, $orig_col_name, $col_name, $col_type, $col_attribute,
$col_length, $col_isNull, $collation, $col_extra, $col_default
);
exit;
} else {
$tmp_msg = PMA_updateOneColumn(
$db, "", $col_name, $col_type, $col_attribute,
$col_length, $col_isNull, $collation, $col_extra, $col_default
);
}
}
if (isset($_POST['populateColumns'])) {
$selected_tbl = $_POST['selectedTable'];
echo PMA_getHTMLforColumnDropdown($db, $selected_tbl);
exit;
}
if (isset($_POST['getColumnList'])) {
echo PMA_getCentralColumnsListRaw($db, $_POST['cur_table']);
exit;
}
if (isset($_POST['add_column'])) {
$selected_col = array();
$selected_tbl = $_POST['table-select'];
$selected_col[] = $_POST['column-select'];
$tmp_msg = PMA_syncUniqueColumns($selected_col, false, $selected_tbl);
}
$response = Response::getInstance();
$header = $response->getHeader();
$scripts = $header->getScripts();
$scripts->addFile('jquery/jquery.uitablefilter.js');
$scripts->addFile('jquery/jquery.tablesorter.js');
$scripts->addFile('db_central_columns.js');
$cfgCentralColumns = PMA_centralColumnsGetParams();
$pmadb = $cfgCentralColumns['db'];
$pmatable = $cfgCentralColumns['table'];
$max_rows = intval($GLOBALS['cfg']['MaxRows']);
if (isset($_REQUEST['edit_central_columns_page'])) {
$selected_fld = $_REQUEST['selected_fld'];
$selected_db = $_REQUEST['db'];
$edit_central_column_page = PMA_getHTMLforEditingPage(
$selected_fld, $selected_db
);
$response->addHTML($edit_central_column_page);
exit;
}
if (isset($_POST['multi_edit_central_column_save'])) {
$message = PMA_updateMultipleColumn();
if (!is_bool($message)) {
$response->setRequestStatus(false);
$response->addJSON('message', $message);
}
}
if (isset($_POST['delete_save'])) {
$col_name = array();
parse_str($_POST['col_name'], $col_name);
$tmp_msg = PMA_deleteColumnsFromList($col_name['selected_fld'], false);
}
if (isset($_REQUEST['total_rows']) && $_REQUEST['total_rows']) {
$total_rows = $_REQUEST['total_rows'];
} else {
$total_rows = PMA_getCentralColumnsCount($db);
}
if (PMA_isValid($_REQUEST['pos'], 'integer')) {
$pos = intval($_REQUEST['pos']);
} else {
$pos = 0;
}
$addNewColumn = PMA_getHTMLforAddNewColumn($db, $total_rows);
$response->addHTML($addNewColumn);
if ($total_rows <= 0) {
$response->addHTML(
'<fieldset>' . __(
'The central list of columns for the current database is empty.'
) . '</fieldset>'
);
$columnAdd = PMA_getHTMLforAddCentralColumn($total_rows, $pos, $db);
$response->addHTML($columnAdd);
exit;
}
$table_navigation_html = PMA_getHTMLforTableNavigation($total_rows, $pos, $db);
$response->addHTML($table_navigation_html);
$columnAdd = PMA_getHTMLforAddCentralColumn($total_rows, $pos, $db);
$response->addHTML($columnAdd);
$deleteRowForm = '<form method="post" id="del_form" action="db_central_columns.php">'
. URL::getHiddenInputs(
$db
)
. '<input id="del_col_name" type="hidden" name="col_name" value="">'
. '<input type="hidden" name="pos" value="' . $pos . '">'
. '<input type="hidden" name="delete_save" value="delete"></form>';
$response->addHTML($deleteRowForm);
$table_struct = '<div id="tableslistcontainer">'
. '<form name="tableslistcontainer">'
. '<table id="table_columns" class="tablesorter" '
. 'style="min-width:100%" class="data">';
$response->addHTML($table_struct);
$tableheader = PMA_getCentralColumnsTableHeader(
'column_heading', __('Click to sort.'), 2
);
$response->addHTML($tableheader);
$result = PMA_getColumnsList($db, $pos, $max_rows);
$row_num = 0;
foreach ($result as $row) {
$tableHtmlRow = PMA_getHTMLforCentralColumnsTableRow(
$row, $row_num, $db
);
$response->addHTML($tableHtmlRow);
$row_num++;
}
$response->addHTML('</table>');
$tablefooter = PMA_getCentralColumnsTableFooter($pmaThemeImage, $text_dir);
$response->addHTML($tablefooter);
$response->addHTML('</form></div>');
$message = PMA\libraries\Message::success(
sprintf(__('Showing rows %1$s - %2$s.'), ($pos + 1), ($pos + count($result)))
);
if (isset($tmp_msg) && $tmp_msg !== true) {
$message = $tmp_msg;
}

View File

@ -1,191 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* phpMyAdmin designer general code
*
* @package PhpMyAdmin-Designer
*/
use PMA\libraries\Response;
require_once 'libraries/common.inc.php';
require_once 'libraries/pmd_common.php';
require_once 'libraries/db_designer.lib.php';
$response = Response::getInstance();
if (isset($_REQUEST['dialog'])) {
if ($_REQUEST['dialog'] == 'edit') {
$html = PMA_getHtmlForEditOrDeletePages($GLOBALS['db'], 'editPage');
} else if ($_REQUEST['dialog'] == 'delete') {
$html = PMA_getHtmlForEditOrDeletePages($GLOBALS['db'], 'deletePage');
} else if ($_REQUEST['dialog'] == 'save_as') {
$html = PMA_getHtmlForPageSaveAs($GLOBALS['db']);
} else if ($_REQUEST['dialog'] == 'export') {
include_once 'libraries/plugin_interface.lib.php';
$html = PMA_getHtmlForSchemaExport(
$GLOBALS['db'], $_REQUEST['selected_page']
);
}
if (! empty($html)) {
$response->addHTML($html);
}
return;
}
if (isset($_REQUEST['operation'])) {
if ($_REQUEST['operation'] == 'deletePage') {
$success = PMA_deletePage($_REQUEST['selected_page']);
$response->setRequestStatus($success);
} elseif ($_REQUEST['operation'] == 'savePage') {
if ($_REQUEST['save_page'] == 'same') {
$page = $_REQUEST['selected_page'];
} else { // new
$page = PMA_createNewPage($_REQUEST['selected_value'], $GLOBALS['db']);
$response->addJSON('id', $page);
}
$success = PMA_saveTablePositions($page);
$response->setRequestStatus($success);
} elseif ($_REQUEST['operation'] == 'setDisplayField') {
PMA_saveDisplayField(
$_REQUEST['db'], $_REQUEST['table'], $_REQUEST['field']
);
$response->setRequestStatus(true);
} elseif ($_REQUEST['operation'] == 'addNewRelation') {
list($success, $message) = PMA_addNewRelation(
$_REQUEST['db'],
$_REQUEST['T1'],
$_REQUEST['F1'],
$_REQUEST['T2'],
$_REQUEST['F2'],
$_REQUEST['on_delete'],
$_REQUEST['on_update']
);
$response->setRequestStatus($success);
$response->addJSON('message', $message);
} elseif ($_REQUEST['operation'] == 'removeRelation') {
list($success, $message) = PMA_removeRelation(
$_REQUEST['T1'],
$_REQUEST['F1'],
$_REQUEST['T2'],
$_REQUEST['F2']
);
$response->setRequestStatus($success);
$response->addJSON('message', $message);
} elseif ($_REQUEST['operation'] == 'save_setting_value') {
$success = PMA_saveDesignerSetting($_REQUEST['index'], $_REQUEST['value']);
$response->setRequestStatus($success);
}
return;
}
require 'libraries/db_common.inc.php';
$script_display_field = PMA_getTablesInfo();
$tab_column = PMA_getColumnsInfo();
$script_tables = PMA_getScriptTabs();
$tables_pk_or_unique_keys = PMA_getPKOrUniqueKeys();
$tables_all_keys = PMA_getAllKeys();
$classes_side_menu = PMA_returnClassNamesFromMenuButtons();
$display_page = -1;
$selected_page = null;
if (isset($_REQUEST['query'])) {
$display_page = PMA_getDefaultPage($_REQUEST['db']);
} else {
if (! empty($_REQUEST['page'])) {
$display_page = $_REQUEST['page'];
} else {
$display_page = PMA_getLoadingPage($_REQUEST['db']);
}
}
if ($display_page != -1) {
$selected_page = PMA_getPageName($display_page);
}
$tab_pos = PMA_getTablePositions($display_page);
$script_contr = PMA_getScriptContr();
$params = array('lang' => $GLOBALS['lang']);
if (isset($_GET['db'])) {
$params['db'] = $_GET['db'];
}
$response = Response::getInstance();
$response->getFooter()->setMinimal();
$header = $response->getHeader();
$header->setBodyId('pmd_body');
$scripts = $header->getScripts();
$scripts->addFile('jquery/jquery.fullscreen.js');
$scripts->addFile('pmd/designer_db.js');
$scripts->addFile('pmd/designer_objects.js');
$scripts->addFile('pmd/designer_page.js');
$scripts->addFile('pmd/history.js');
$scripts->addFile('pmd/move.js');
$scripts->addFile('pmd/init.js');
list(
$tables,
$num_tables,
$total_num_tables,
$sub_part,
$is_show_stats,
$db_is_system_schema,
$tooltip_truename,
$tooltip_aliasname,
$pos
) = PMA\libraries\Util::getDbInfo($db, isset($sub_part) ? $sub_part : '');
// Embed some data into HTML, later it will be read
// by pmd/init.js and converted to JS variables.
$response->addHTML(
PMA_getHtmlForJSFields(
$script_tables, $script_contr, $script_display_field, $display_page
)
);
$response->addHTML(
PMA_getDesignerPageMenu(
isset($_REQUEST['query']),
$selected_page,
$classes_side_menu
)
);
$response->addHTML('<div id="canvas_outer">');
$response->addHTML(
'<form action="" id="container-form" method="post" name="form1">'
);
$response->addHTML(PMA_getHTMLCanvas());
$response->addHTML(PMA_getHTMLTableList($tab_pos, $display_page));
$response->addHTML(
PMA_getDatabaseTables(
$tab_pos, $display_page, $tab_column,
$tables_all_keys, $tables_pk_or_unique_keys
)
);
$response->addHTML('</form>');
$response->addHTML('</div>'); // end canvas_outer
$response->addHTML('<div id="pmd_hint"></div>');
$response->addHTML(PMA_getNewRelationPanel());
$response->addHTML(PMA_getDeleteRelationPanel());
if (isset($_REQUEST['query'])) {
$response->addHTML(PMA_getOptionsPanel());
$response->addHTML(PMA_getRenameToPanel());
$response->addHTML(PMA_getHavingQueryPanel());
$response->addHTML(PMA_getAggregateQueryPanel());
$response->addHTML(PMA_getWhereQueryPanel());
$response->addHTML(PMA_getQueryDetails());
}
$response->addHTML('<div id="PMA_disable_floating_menubar"></div>');

View File

@ -1,46 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Database import page
*
* @package PhpMyAdmin
*/
use PMA\libraries\Response;
use PMA\libraries\config\PageSettings;
require_once 'libraries/common.inc.php';
require_once 'libraries/config/user_preferences.forms.php';
require_once 'libraries/config/page_settings.forms.php';
PageSettings::showGroup('Import');
$response = Response::getInstance();
$header = $response->getHeader();
$scripts = $header->getScripts();
$scripts->addFile('import.js');
/**
* Gets tables information and displays top links
*/
require 'libraries/db_common.inc.php';
list(
$tables,
$num_tables,
$total_num_tables,
$sub_part,
$is_show_stats,
$db_is_system_schema,
$tooltip_truename,
$tooltip_aliasname,
$pos
) = PMA\libraries\Util::getDbInfo($db, isset($sub_part) ? $sub_part : '');
require 'libraries/display_import.lib.php';
$response = Response::getInstance();
$response->addHTML(
PMA_getImportDisplay(
'database', $db, $table, $max_upload_size
)
);

View File

@ -1,308 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* handles miscellaneous db operations:
* - move/rename
* - copy
* - changing collation
* - changing comment
* - adding tables
* - viewing PDF schemas
*
* @package PhpMyAdmin
*/
use PMA\libraries\Response;
use PMA\libraries\plugins\export\ExportSql;
/**
* requirements
*/
require_once 'libraries/common.inc.php';
require_once 'libraries/display_create_table.lib.php';
/**
* functions implementation for this script
*/
require_once 'libraries/check_user_privileges.lib.php';
require_once 'libraries/operations.lib.php';
// add a javascript file for jQuery functions to handle Ajax actions
$response = Response::getInstance();
$header = $response->getHeader();
$scripts = $header->getScripts();
$scripts->addFile('db_operations.js');
$sql_query = '';
/**
* Rename/move or copy database
*/
if (strlen($GLOBALS['db']) > 0
&& (! empty($_REQUEST['db_rename']) || ! empty($_REQUEST['db_copy']))
) {
if (! empty($_REQUEST['db_rename'])) {
$move = true;
} else {
$move = false;
}
if (! isset($_REQUEST['newname']) || strlen($_REQUEST['newname']) === 0) {
$message = PMA\libraries\Message::error(__('The database name is empty!'));
} else {
$_error = false;
if ($move || ! empty($_REQUEST['create_database_before_copying'])) {
PMA_createDbBeforeCopy();
}
// here I don't use DELIMITER because it's not part of the
// language; I have to send each statement one by one
// to avoid selecting alternatively the current and new db
// we would need to modify the CREATE definitions to qualify
// the db name
PMA_runProcedureAndFunctionDefinitions($GLOBALS['db']);
// go back to current db, just in case
$GLOBALS['dbi']->selectDb($GLOBALS['db']);
$tables_full = $GLOBALS['dbi']->getTablesFull($GLOBALS['db']);
include_once "libraries/plugin_interface.lib.php";
// remove all foreign key constraints, otherwise we can get errors
/* @var $export_sql_plugin ExportSql */
$export_sql_plugin = PMA_getPlugin(
"export",
"sql",
'libraries/plugins/export/',
array(
'single_table' => isset($single_table),
'export_type' => 'database'
)
);
// create stand-in tables for views
$views = PMA_getViewsAndCreateSqlViewStandIn(
$tables_full, $export_sql_plugin, $GLOBALS['db']
);
// copy tables
$sqlConstratints = PMA_copyTables(
$tables_full, $move, $GLOBALS['db']
);
// handle the views
if (! $_error) {
PMA_handleTheViews($views, $move, $GLOBALS['db']);
}
unset($views);
// now that all tables exist, create all the accumulated constraints
if (! $_error && count($sqlConstratints) > 0) {
PMA_createAllAccumulatedConstraints($sqlConstratints);
}
unset($sqlConstratints);
if (PMA_MYSQL_INT_VERSION >= 50100) {
// here DELIMITER is not used because it's not part of the
// language; each statement is sent one by one
PMA_runEventDefinitionsForDb($GLOBALS['db']);
}
// go back to current db, just in case
$GLOBALS['dbi']->selectDb($GLOBALS['db']);
// Duplicate the bookmarks for this db (done once for each db)
PMA_duplicateBookmarks($_error, $GLOBALS['db']);
if (! $_error && $move) {
if (isset($_REQUEST['adjust_privileges'])
&& ! empty($_REQUEST['adjust_privileges'])
) {
PMA_AdjustPrivileges_moveDB($GLOBALS['db'], $_REQUEST['newname']);
}
/**
* cleanup pmadb stuff for this db
*/
include_once 'libraries/relation_cleanup.lib.php';
PMA_relationsCleanupDatabase($GLOBALS['db']);
// if someday the RENAME DATABASE reappears, do not DROP
$local_query = 'DROP DATABASE '
. PMA\libraries\Util::backquote($GLOBALS['db']) . ';';
$sql_query .= "\n" . $local_query;
$GLOBALS['dbi']->query($local_query);
$message = PMA\libraries\Message::success(
__('Database %1$s has been renamed to %2$s.')
);
$message->addParam($GLOBALS['db']);
$message->addParam($_REQUEST['newname']);
} elseif (! $_error) {
if (isset($_REQUEST['adjust_privileges'])
&& ! empty($_REQUEST['adjust_privileges'])
) {
PMA_AdjustPrivileges_copyDB($GLOBALS['db'], $_REQUEST['newname']);
}
$message = PMA\libraries\Message::success(
__('Database %1$s has been copied to %2$s.')
);
$message->addParam($GLOBALS['db']);
$message->addParam($_REQUEST['newname']);
} else {
$message = PMA\libraries\Message::error();
}
$reload = true;
/* Change database to be used */
if (! $_error && $move) {
$GLOBALS['db'] = $_REQUEST['newname'];
} elseif (! $_error) {
if (isset($_REQUEST['switch_to_new'])
&& $_REQUEST['switch_to_new'] == 'true'
) {
$GLOBALS['PMA_Config']->setCookie('pma_switch_to_new', 'true');
$GLOBALS['db'] = $_REQUEST['newname'];
} else {
$GLOBALS['PMA_Config']->setCookie('pma_switch_to_new', '');
}
}
}
/**
* Database has been successfully renamed/moved. If in an Ajax request,
* generate the output with {@link PMA\libraries\Response} and exit
*/
if ($response->isAjax()) {
$response->setRequestStatus($message->isSuccess());
$response->addJSON('message', $message);
$response->addJSON('newname', $_REQUEST['newname']);
$response->addJSON(
'sql_query',
PMA\libraries\Util::getMessage(null, $sql_query)
);
$response->addJSON('db', $GLOBALS['db']);
exit;
}
}
/**
* Settings for relations stuff
*/
$cfgRelation = PMA_getRelationsParam();
/**
* Check if comments were updated
* (must be done before displaying the menu tabs)
*/
if (isset($_REQUEST['comment'])) {
PMA_setDbComment($GLOBALS['db'], $_REQUEST['comment']);
}
require 'libraries/db_common.inc.php';
$url_query .= '&amp;goto=db_operations.php';
// Gets the database structure
$sub_part = '_structure';
list(
$tables,
$num_tables,
$total_num_tables,
$sub_part,
$is_show_stats,
$db_is_system_schema,
$tooltip_truename,
$tooltip_aliasname,
$pos
) = PMA\libraries\Util::getDbInfo($db, isset($sub_part) ? $sub_part : '');
echo "\n";
if (isset($message)) {
echo PMA\libraries\Util::getMessage($message, $sql_query);
unset($message);
}
$_REQUEST['db_collation'] = $GLOBALS['dbi']->getDbCollation($GLOBALS['db']);
$is_information_schema = $GLOBALS['dbi']->isSystemSchema($GLOBALS['db']);
$response->addHTML('<div id="boxContainer" data-box-width="300">');
if (!$is_information_schema) {
if ($cfgRelation['commwork']) {
/**
* database comment
*/
$response->addHTML(PMA_getHtmlForDatabaseComment($GLOBALS['db']));
}
$response->addHTML('<div class="operations_half_width">');
$response->addHTML(PMA_getHtmlForCreateTable($db));
$response->addHTML('</div>');
/**
* rename database
*/
if ($GLOBALS['db'] != 'mysql') {
$response->addHTML(PMA_getHtmlForRenameDatabase($GLOBALS['db']));
}
// Drop link if allowed
// Don't even try to drop information_schema.
// You won't be able to. Believe me. You won't.
// Don't allow to easily drop mysql database, RFE #1327514.
if (($is_superuser || $GLOBALS['cfg']['AllowUserDropDatabase'])
&& ! $db_is_system_schema
&& $GLOBALS['db'] != 'mysql'
) {
$response->addHTML(PMA_getHtmlForDropDatabaseLink($GLOBALS['db']));
}
/**
* Copy database
*/
$response->addHTML(PMA_getHtmlForCopyDatabase($GLOBALS['db']));
/**
* Change database charset
*/
$response->addHTML(PMA_getHtmlForChangeDatabaseCharset($GLOBALS['db'], $table));
if (! $cfgRelation['allworks']
&& $cfg['PmaNoRelation_DisableWarning'] == false
) {
$message = PMA\libraries\Message::notice(
__(
'The phpMyAdmin configuration storage has been deactivated. ' .
'%sFind out why%s.'
)
);
$message->addParamHtml('<a href="./chk_rel.php' . $url_query . '">');
$message->addParamHtml('</a>');
/* Show error if user has configured something, notice elsewhere */
if (!empty($cfg['Servers'][$server]['pmadb'])) {
$message->isError(true);
}
} // end if
} // end if (!$is_information_schema)
$response->addHTML('</div>');
// not sure about displaying the PDF dialog in case db is information_schema
if ($cfgRelation['pdfwork'] && $num_tables > 0) {
// We only show this if we find something in the new pdf_pages table
$test_query = '
SELECT *
FROM ' . PMA\libraries\Util::backquote($GLOBALS['cfgRelation']['db'])
. '.' . PMA\libraries\Util::backquote($cfgRelation['pdf_pages']) . '
WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($GLOBALS['db'])
. '\'';
$test_rs = PMA_queryAsControlUser(
$test_query,
false,
PMA\libraries\DatabaseInterface::QUERY_STORE
);
} // end if

View File

@ -1,24 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Routines management.
*
* @package PhpMyAdmin
*/
/**
* Include required files
*/
require_once 'libraries/common.inc.php';
/**
* Include all other files
*/
require_once 'libraries/check_user_privileges.lib.php';
require_once 'libraries/rte/rte_routines.lib.php';
/**
* Do the magic
*/
$_PMA_RTE = 'RTN';
require_once 'libraries/rte/rte_main.inc.php';

View File

@ -1,48 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Database SQL executor
*
* @package PhpMyAdmin
*/
use PMA\libraries\config\PageSettings;
use PMA\libraries\Response;
/**
*
*/
require_once 'libraries/common.inc.php';
require_once 'libraries/config/user_preferences.forms.php';
require_once 'libraries/config/page_settings.forms.php';
PageSettings::showGroup('Sql_queries');
/**
* Runs common work
*/
$response = Response::getInstance();
$header = $response->getHeader();
$scripts = $header->getScripts();
$scripts->addFile('makegrid.js');
$scripts->addFile('jquery/jquery.uitablefilter.js');
$scripts->addFile('sql.js');
require 'libraries/db_common.inc.php';
require_once 'libraries/sql_query_form.lib.php';
// After a syntax error, we return to this script
// with the typed query in the textarea.
$goto = 'db_sql.php';
$back = 'db_sql.php';
/**
* Query box, bookmark, insert data from textfile
*/
$response->addHTML(
PMA_getHtmlForSqlQueryForm(
true, false,
isset($_REQUEST['delimiter'])
? htmlspecialchars($_REQUEST['delimiter'])
: ';'
)
);

View File

@ -1,40 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Database structure manipulation
*
* @package PhpMyAdmin
*/
namespace PMA;
use PMA\libraries\controllers\database\DatabaseStructureController;
use PMA\libraries\Response;
use PMA\libraries\Util;
require_once 'libraries/common.inc.php';
require_once 'libraries/db_common.inc.php';
$container = libraries\di\Container::getDefaultContainer();
$container->factory(
'PMA\libraries\controllers\database\DatabaseStructureController'
);
$container->alias(
'DatabaseStructureController',
'PMA\libraries\controllers\database\DatabaseStructureController'
);
$container->set('PMA\libraries\Response', Response::getInstance());
$container->alias('response', 'PMA\libraries\Response');
/* Define dependencies for the concerned controller */
$dependency_definitions = array(
'db' => $db,
'url_query' => &$GLOBALS['url_query'],
);
/** @var DatabaseStructureController $controller */
$controller = $container->get(
'DatabaseStructureController',
$dependency_definitions
);
$controller->indexAction();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 B

View File

@ -1,217 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome to phpMyAdmins documentation! &#8212; phpMyAdmin 4.7.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '4.7.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="copyright" title="Copyright" href="copyright.html" />
<link rel="top" title="phpMyAdmin 4.7.0 documentation" href="#" />
<link rel="next" title="Introduction" href="intro.html" />
</head>
<body role="document">
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="intro.html" title="Introduction"
accesskey="N">next</a> |</li>
<li class="nav-item nav-item-0"><a href="#">phpMyAdmin 4.7.0 documentation</a> &#187;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="welcome-to-phpmyadmin-s-documentation">
<h1>Welcome to phpMyAdmin&#8217;s documentation!<a class="headerlink" href="#welcome-to-phpmyadmin-s-documentation" title="Permalink to this headline"></a></h1>
<p>Contents:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="intro.html#supported-features">Supported features</a></li>
<li class="toctree-l2"><a class="reference internal" href="intro.html#shortcut-keys">Shortcut keys</a></li>
<li class="toctree-l2"><a class="reference internal" href="intro.html#a-word-about-users">A word about users</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="require.html">Requirements</a><ul>
<li class="toctree-l2"><a class="reference internal" href="require.html#web-server">Web server</a></li>
<li class="toctree-l2"><a class="reference internal" href="require.html#php">PHP</a></li>
<li class="toctree-l2"><a class="reference internal" href="require.html#database">Database</a></li>
<li class="toctree-l2"><a class="reference internal" href="require.html#web-browser">Web browser</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="setup.html">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="setup.html#linux-distributions">Linux distributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#installing-on-windows">Installing on Windows</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#installing-from-git">Installing from Git</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#installing-using-composer">Installing using Composer</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#installing-using-docker">Installing using Docker</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#quick-install">Quick Install</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#verifying-phpmyadmin-releases">Verifying phpMyAdmin releases</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#phpmyadmin-configuration-storage">phpMyAdmin configuration storage</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#upgrading-from-an-older-version">Upgrading from an older version</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#using-authentication-modes">Using authentication modes</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#securing-your-phpmyadmin-installation">Securing your phpMyAdmin installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="setup.html#known-issues">Known issues</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration</a><ul>
<li class="toctree-l2"><a class="reference internal" href="config.html#basic-settings">Basic settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#server-connection-settings">Server connection settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#generic-settings">Generic settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#cookie-authentication-options">Cookie authentication options</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#navigation-panel-setup">Navigation panel setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#main-panel">Main panel</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#database-structure">Database structure</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#browse-mode">Browse mode</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#editing-mode">Editing mode</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#export-and-import-settings">Export and import settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#tabs-display-settings">Tabs display settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#pdf-options">PDF Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#languages">Languages</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#web-server-settings">Web server settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#theme-settings">Theme settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#design-customization">Design customization</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#text-fields">Text fields</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#sql-query-box-settings">SQL query box settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#web-server-upload-save-import-directories">Web server upload/save/import directories</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#various-display-setting">Various display setting</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#page-titles">Page titles</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#theme-manager-settings">Theme manager settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#default-queries">Default queries</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#mysql-settings">MySQL settings</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#developer">Developer</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html#examples">Examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="user.html">User Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="transformations.html">Transformations</a></li>
<li class="toctree-l2"><a class="reference internal" href="bookmarks.html">Bookmarks</a></li>
<li class="toctree-l2"><a class="reference internal" href="privileges.html">User management</a></li>
<li class="toctree-l2"><a class="reference internal" href="relations.html">Relations</a></li>
<li class="toctree-l2"><a class="reference internal" href="charts.html">Charts</a></li>
<li class="toctree-l2"><a class="reference internal" href="import_export.html">Import and export</a></li>
<li class="toctree-l2"><a class="reference internal" href="other.html">Other sources of information</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ - Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#server">Server</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#configuration">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#known-limitations">Known limitations</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#isps-multi-user-installations">ISPs, multi-user installations</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#browsers-or-client-os">Browsers or client OS</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#using-phpmyadmin">Using phpMyAdmin</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#phpmyadmin-project">phpMyAdmin project</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#security">Security</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#synchronization">Synchronization</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers Information</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors.html">Distributing and packaging phpMyAdmin</a><ul>
<li class="toctree-l2"><a class="reference internal" href="vendors.html#external-libraries">External libraries</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="copyright.html">Copyright</a><ul>
<li class="toctree-l2"><a class="reference internal" href="copyright.html#third-party-licenses">Third party licenses</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a><ul>
<li class="toctree-l2"><a class="reference internal" href="credits.html#credits-in-chronological-order">Credits, in chronological order</a></li>
<li class="toctree-l2"><a class="reference internal" href="credits.html#translators">Translators</a></li>
<li class="toctree-l2"><a class="reference internal" href="credits.html#documentation-translators">Documentation translators</a></li>
<li class="toctree-l2"><a class="reference internal" href="credits.html#original-credits-of-version-2-1-0">Original Credits of Version 2.1.0</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
</ul>
</div>
</div>
<div class="section" id="indices-and-tables">
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></li>
<li><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></li>
<li><a class="reference internal" href="glossary.html#glossary"><span class="std std-ref">Glossary</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="#">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Welcome to phpMyAdmin&#8217;s documentation!</a></li>
<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
</ul>
<h4>Next topic</h4>
<p class="topless"><a href="intro.html"
title="next chapter">Introduction</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/index.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<div><input type="text" name="q" /></div>
<div><input type="submit" value="Go" /></div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="intro.html" title="Introduction"
>next</a> |</li>
<li class="nav-item nav-item-0"><a href="#">phpMyAdmin 4.7.0 documentation</a> &#187;</li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; <a href="copyright.html">Copyright</a> 2012 - 2017, The phpMyAdmin devel team.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.9.
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -1,655 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Main loader script
*
* @package PhpMyAdmin
*/
use PMA\libraries\Response;
use PMA\libraries\RecentFavoriteTable;
use PMA\libraries\URL;
use PMA\libraries\Sanitize;
use PMA\libraries\Charsets;
use PMA\libraries\ThemeManager;
use PMA\libraries\LanguageManager;
/**
* Gets some core libraries and displays a top message if required
*/
require_once 'libraries/common.inc.php';
/**
* display Git revision if requested
*/
require_once 'libraries/display_git_revision.lib.php';
/**
* pass variables to child pages
*/
$drops = array(
'lang',
'server',
'collation_connection',
'db',
'table'
);
foreach ($drops as $each_drop) {
if (array_key_exists($each_drop, $_GET)) {
unset($_GET[$each_drop]);
}
}
unset($drops, $each_drop);
/*
* Black list of all scripts to which front-end must submit data.
* Such scripts must not be loaded on home page.
*
*/
$target_blacklist = array (
'import.php', 'export.php'
);
// If we have a valid target, let's load that script instead
if (! empty($_REQUEST['target'])
&& is_string($_REQUEST['target'])
&& ! preg_match('/^index/', $_REQUEST['target'])
&& ! in_array($_REQUEST['target'], $target_blacklist)
&& in_array($_REQUEST['target'], $goto_whitelist)
) {
include $_REQUEST['target'];
exit;
}
if (isset($_REQUEST['ajax_request']) && ! empty($_REQUEST['access_time'])) {
exit;
}
// See FAQ 1.34
if (! empty($_REQUEST['db'])) {
$page = null;
if (! empty($_REQUEST['table'])) {
$page = PMA\libraries\Util::getScriptNameForOption(
$GLOBALS['cfg']['DefaultTabTable'], 'table'
);
} else {
$page = PMA\libraries\Util::getScriptNameForOption(
$GLOBALS['cfg']['DefaultTabDatabase'], 'database'
);
}
include $page;
exit;
}
$response = Response::getInstance();
/**
* Check if it is an ajax request to reload the recent tables list.
*/
if ($response->isAjax() && ! empty($_REQUEST['recent_table'])) {
$response->addJSON(
'list',
RecentFavoriteTable::getInstance('recent')->getHtmlList()
);
exit;
}
if ($GLOBALS['PMA_Config']->isGitRevision()) {
if (isset($_REQUEST['git_revision']) && $response->isAjax()) {
PMA_printGitRevision();
exit;
}
echo '<div id="is_git_revision"></div>';
}
// Handles some variables that may have been sent by the calling script
$GLOBALS['db'] = '';
$GLOBALS['table'] = '';
$show_query = '1';
// Any message to display?
if (! empty($message)) {
echo PMA\libraries\Util::getMessage($message);
unset($message);
}
$common_url_query = URL::getCommon();
$mysql_cur_user_and_host = '';
// when $server > 0, a server has been chosen so we can display
// all MySQL-related information
if ($server > 0) {
include 'libraries/server_common.inc.php';
// Use the verbose name of the server instead of the hostname
// if a value is set
$server_info = '';
if (! empty($cfg['Server']['verbose'])) {
$server_info .= htmlspecialchars($cfg['Server']['verbose']);
if ($GLOBALS['cfg']['ShowServerInfo']) {
$server_info .= ' (';
}
}
if ($GLOBALS['cfg']['ShowServerInfo'] || empty($cfg['Server']['verbose'])) {
$server_info .= $GLOBALS['dbi']->getHostInfo();
}
if (! empty($cfg['Server']['verbose']) && $GLOBALS['cfg']['ShowServerInfo']) {
$server_info .= ')';
}
$mysql_cur_user_and_host = $GLOBALS['dbi']->fetchValue('SELECT USER();');
// should we add the port info here?
$short_server_info = (!empty($GLOBALS['cfg']['Server']['verbose'])
? $GLOBALS['cfg']['Server']['verbose']
: $GLOBALS['cfg']['Server']['host']);
}
echo '<div id="maincontainer">' , "\n";
// Anchor for favorite tables synchronization.
echo RecentFavoriteTable::getInstance('favorite')->getHtmlSyncFavoriteTables();
echo '<div id="main_pane_left">';
if ($server > 0 || count($cfg['Servers']) > 1
) {
if ($cfg['DBG']['demo']) {
echo '<div class="group">';
echo '<h2>' , __('phpMyAdmin Demo Server') , '</h2>';
echo '<p style="margin: 0.5em 1em 0.5em 1em">';
printf(
__(
'You are using the demo server. You can do anything here, but '
. 'please do not change root, debian-sys-maint and pma users. '
. 'More information is available at %s.'
),
'<a href="url.php?url=https://demo.phpmyadmin.net/" target="_blank" rel="noopener noreferrer">demo.phpmyadmin.net</a>'
);
echo '</p>';
echo '</div>';
}
echo '<div class="group">';
echo '<h2>' , __('General settings') , '</h2>';
echo '<ul>';
/**
* Displays the MySQL servers choice form
*/
if ($cfg['ServerDefault'] == 0
|| (! $cfg['NavigationDisplayServers']
&& (count($cfg['Servers']) > 1
|| ($server == 0 && count($cfg['Servers']) == 1)))
) {
echo '<li id="li_select_server" class="no_bullets" >';
include_once 'libraries/select_server.lib.php';
echo PMA\libraries\Util::getImage('s_host.png') , " "
, PMA_selectServer(true, true);
echo '</li>';
}
/**
* Displays the mysql server related links
*/
if ($server > 0) {
include_once 'libraries/check_user_privileges.lib.php';
// Logout for advanced authentication
if ($cfg['Server']['auth_type'] != 'config') {
if ($cfg['ShowChgPassword']) {
$conditional_class = 'ajax';
PMA_printListItem(
PMA\libraries\Util::getImage('s_passwd.png') . "&nbsp;" . __(
'Change password'
),
'li_change_password',
'user_password.php' . $common_url_query,
null,
null,
'change_password_anchor',
"no_bullets",
$conditional_class
);
}
} // end if
echo ' <li id="li_select_mysql_collation" class="no_bullets" >';
echo ' <form method="post" action="index.php">' , "\n"
. URL::getHiddenInputs(null, null, 4, 'collation_connection')
. ' <label for="select_collation_connection">' . "\n"
. ' ' . PMA\libraries\Util::getImage('s_asci.png')
. "&nbsp;" . __('Server connection collation') . "\n"
// put the doc link in the form so that it appears on the same line
. PMA\libraries\Util::showMySQLDocu('Charset-connection')
. ': ' . "\n"
. ' </label>' . "\n"
. Charsets::getCollationDropdownBox(
'collation_connection',
'select_collation_connection',
$collation_connection,
true,
true
)
. ' </form>' . "\n"
. ' </li>' . "\n";
} // end of if ($server > 0)
echo '</ul>';
echo '</div>';
}
echo '<div class="group">';
echo '<h2>' , __('Appearance settings') , '</h2>';
echo ' <ul>';
// Displays language selection combo
$language_manager = LanguageManager::getInstance();
if (empty($cfg['Lang']) && $language_manager->hasChoice()) {
echo '<li id="li_select_lang" class="no_bullets">';
echo PMA\libraries\Util::getImage('s_lang.png') , " "
, $language_manager->getSelectorDisplay();
echo '</li>';
}
// ThemeManager if available
if ($GLOBALS['cfg']['ThemeManager']) {
echo '<li id="li_select_theme" class="no_bullets">';
echo PMA\libraries\Util::getImage('s_theme.png') , " "
, ThemeManager::getInstance()->getHtmlSelectBox();
echo '</li>';
}
echo '<li id="li_select_fontsize">';
echo PMA\libraries\Config::getFontsizeForm();
echo '</li>';
echo '</ul>';
// User preferences
if ($server > 0) {
echo '<ul>';
PMA_printListItem(
PMA\libraries\Util::getImage('b_tblops.png') . "&nbsp;" . __(
'More settings'
),
'li_user_preferences',
'prefs_manage.php' . $common_url_query,
null,
null,
null,
"no_bullets"
);
echo '</ul>';
}
echo '</div>';
echo '</div>';
echo '<div id="main_pane_right">';
if ($server > 0 && $GLOBALS['cfg']['ShowServerInfo']) {
echo '<div class="group">';
echo '<h2>' , __('Database server') , '</h2>';
echo '<ul>' , "\n";
PMA_printListItem(
__('Server:') . ' ' . $server_info,
'li_server_info'
);
PMA_printListItem(
__('Server type:') . ' ' . PMA\libraries\Util::getServerType(),
'li_server_type'
);
PMA_printListItem(
__('Server version:')
. ' '
. PMA_MYSQL_STR_VERSION . ' - ' . PMA_MYSQL_VERSION_COMMENT,
'li_server_version'
);
PMA_printListItem(
__('Protocol version:') . ' ' . $GLOBALS['dbi']->getProtoInfo(),
'li_mysql_proto'
);
PMA_printListItem(
__('User:') . ' ' . htmlspecialchars($mysql_cur_user_and_host),
'li_user_info'
);
echo ' <li id="li_select_mysql_charset">';
echo ' ' , __('Server charset:') , ' '
. ' <span lang="en" dir="ltr">';
$unicode = Charsets::$mysql_charset_map['utf-8'];
$charsets = Charsets::getMySQLCharsetsDescriptions();
echo ' ' , $charsets[$unicode], ' (' . $unicode, ')';
echo ' </span>'
. ' </li>'
. ' </ul>'
. ' </div>';
}
if ($GLOBALS['cfg']['ShowServerInfo'] || $GLOBALS['cfg']['ShowPhpInfo']) {
echo '<div class="group">';
echo '<h2>' , __('Web server') , '</h2>';
echo '<ul>';
if ($GLOBALS['cfg']['ShowServerInfo']) {
PMA_printListItem($_SERVER['SERVER_SOFTWARE'], 'li_web_server_software');
if ($server > 0) {
$client_version_str = $GLOBALS['dbi']->getClientInfo();
if (preg_match('#\d+\.\d+\.\d+#', $client_version_str)) {
$client_version_str = 'libmysql - ' . $client_version_str;
}
PMA_printListItem(
__('Database client version:') . ' ' . $client_version_str,
'li_mysql_client_version'
);
$php_ext_string = __('PHP extension:') . ' ';
$extensions = PMA\libraries\Util::listPHPExtensions();
foreach ($extensions as $extension) {
$php_ext_string .= ' ' . $extension
. PMA\libraries\Util::showPHPDocu('book.' . $extension . '.php');
}
PMA_printListItem(
$php_ext_string,
'li_used_php_extension'
);
$php_version_string = __('PHP version:') . ' ' . phpversion();
PMA_printListItem(
$php_version_string,
'li_used_php_version'
);
}
}
if ($cfg['ShowPhpInfo']) {
PMA_printListItem(
__('Show PHP information'),
'li_phpinfo',
'phpinfo.php' . $common_url_query,
null,
'_blank'
);
}
echo ' </ul>';
echo ' </div>';
}
echo '<div class="group pmagroup">';
echo '<h2>phpMyAdmin</h2>';
echo '<ul>';
$class = null;
if ($GLOBALS['cfg']['VersionCheck']) {
$class = 'jsversioncheck';
}
PMA_printListItem(
__('Version information:') . ' <span class="version">' . PMA_VERSION . '</span>',
'li_pma_version',
null,
null,
null,
null,
$class
);
PMA_printListItem(
__('Documentation'),
'li_pma_docs',
PMA\libraries\Util::getDocuLink('index'),
null,
'_blank'
);
// does not work if no target specified, don't know why
PMA_printListItem(
__('Official Homepage'),
'li_pma_homepage',
PMA_linkURL('https://www.phpmyadmin.net/'),
null,
'_blank'
);
PMA_printListItem(
__('Contribute'),
'li_pma_contribute',
PMA_linkURL('https://www.phpmyadmin.net/contribute/'),
null,
'_blank'
);
PMA_printListItem(
__('Get support'),
'li_pma_support',
PMA_linkURL('https://www.phpmyadmin.net/support/'),
null,
'_blank'
);
PMA_printListItem(
__('List of changes'),
'li_pma_changes',
'changelog.php' . URL::getCommon(),
null,
'_blank'
);
PMA_printListItem(
__('License'),
'li_pma_license',
'license.php' . URL::getCommon(),
null,
'_blank'
);
echo ' </ul>';
echo ' </div>';
echo '</div>';
echo '</div>';
/**
* mbstring is used for handling multibytes inside parser, so it is good
* to tell user something might be broken without it, see bug #1063149.
*/
if (! @extension_loaded('mbstring')) {
trigger_error(
__(
'The mbstring PHP extension was not found and you seem to be using'
. ' a multibyte charset. Without the mbstring extension phpMyAdmin'
. ' is unable to split strings correctly and it may result in'
. ' unexpected results.'
),
E_USER_WARNING
);
}
/**
* Missing functionality
*/
if (! extension_loaded('curl') && ! ini_get('allow_url_fopen')) {
trigger_error(
__(
'The curl extension was not found and allow_url_fopen is '
. 'disabled. Due to this some features such as error reporting '
. 'or version check are disabled.'
)
);
}
if ($cfg['LoginCookieValidityDisableWarning'] == false) {
/**
* Check whether session.gc_maxlifetime limits session validity.
*/
$gc_time = (int)@ini_get('session.gc_maxlifetime');
if ($gc_time < $GLOBALS['cfg']['LoginCookieValidity'] ) {
trigger_error(
__(
'Your PHP parameter [a@https://secure.php.net/manual/en/session.' .
'configuration.php#ini.session.gc-maxlifetime@_blank]session.' .
'gc_maxlifetime[/a] is lower than cookie validity configured ' .
'in phpMyAdmin, because of this, your login might expire sooner ' .
'than configured in phpMyAdmin.'
),
E_USER_WARNING
);
}
}
/**
* Check whether LoginCookieValidity is limited by LoginCookieStore.
*/
if ($GLOBALS['cfg']['LoginCookieStore'] != 0
&& $GLOBALS['cfg']['LoginCookieStore'] < $GLOBALS['cfg']['LoginCookieValidity']
) {
trigger_error(
__(
'Login cookie store is lower than cookie validity configured in ' .
'phpMyAdmin, because of this, your login will expire sooner than ' .
'configured in phpMyAdmin.'
),
E_USER_WARNING
);
}
/**
* Check if user does not have defined blowfish secret and it is being used.
*/
if (! empty($_SESSION['encryption_key'])) {
if (empty($GLOBALS['cfg']['blowfish_secret'])) {
trigger_error(
__(
'The configuration file now needs a secret passphrase (blowfish_secret).'
),
E_USER_WARNING
);
} elseif (strlen($GLOBALS['cfg']['blowfish_secret']) < 32) {
trigger_error(
__(
'The secret passphrase in configuration (blowfish_secret) is too short.'
),
E_USER_WARNING
);
}
}
/**
* Check for existence of config directory which should not exist in
* production environment.
*/
if (@file_exists('config')) {
trigger_error(
__(
'Directory [code]config[/code], which is used by the setup script, ' .
'still exists in your phpMyAdmin directory. It is strongly ' .
'recommended to remove it once phpMyAdmin has been configured. ' .
'Otherwise the security of your server may be compromised by ' .
'unauthorized people downloading your configuration.'
),
E_USER_WARNING
);
}
if ($server > 0) {
$cfgRelation = PMA_getRelationsParam();
if (! $cfgRelation['allworks']
&& $cfg['PmaNoRelation_DisableWarning'] == false
) {
$msg_text = __(
'The phpMyAdmin configuration storage is not completely '
. 'configured, some extended features have been deactivated. '
. '%sFind out why%s. '
);
if ($cfg['ZeroConf'] == true) {
$msg_text .= '<br>' .
__(
'Or alternately go to \'Operations\' tab of any database '
. 'to set it up there.'
);
}
$msg = PMA\libraries\Message::notice($msg_text);
$msg->addParamHtml('<a href="./chk_rel.php' . $common_url_query . '">');
$msg->addParamHtml('</a>');
/* Show error if user has configured something, notice elsewhere */
if (!empty($cfg['Servers'][$server]['pmadb'])) {
$msg->isError(true);
}
$msg->display();
} // end if
}
/**
* Warning about Suhosin only if its simulation mode is not enabled
*/
if ($cfg['SuhosinDisableWarning'] == false
&& @ini_get('suhosin.request.max_value_length')
&& @ini_get('suhosin.simulation') == '0'
) {
trigger_error(
sprintf(
__(
'Server running with Suhosin. Please refer to %sdocumentation%s ' .
'for possible issues.'
),
'[doc@faq1-38]',
'[/doc]'
),
E_USER_WARNING
);
}
/**
* Warning about incomplete translations.
*
* The data file is created while creating release by ./scripts/remove-incomplete-mo
*/
if (@file_exists('libraries/language_stats.inc.php')) {
include 'libraries/language_stats.inc.php';
/*
* This message is intentionally not translated, because we're
* handling incomplete translations here and focus on english
* speaking users.
*/
if (isset($GLOBALS['language_stats'][$lang])
&& $GLOBALS['language_stats'][$lang] < $cfg['TranslationWarningThreshold']
) {
trigger_error(
'You are using an incomplete translation, please help to make it '
. 'better by [a@https://www.phpmyadmin.net/translate/'
. '@_blank]contributing[/a].',
E_USER_NOTICE
);
}
}
/**
* prints list item for main page
*
* @param string $name displayed text
* @param string $listId id, used for css styles
* @param string $url make item as link with $url as target
* @param string $mysql_help_page display a link to MySQL's manual
* @param string $target special target for $url
* @param string $a_id id for the anchor,
* used for jQuery to hook in functions
* @param string $class class for the li element
* @param string $a_class class for the anchor element
*
* @return void
*/
function PMA_printListItem($name, $listId = null, $url = null,
$mysql_help_page = null, $target = null, $a_id = null, $class = null,
$a_class = null
) {
echo PMA\libraries\Template::get('list/item')
->render(
array(
'content' => $name,
'id' => $listId,
'class' => $class,
'url' => array(
'href' => $url,
'target' => $target,
'id' => $a_id,
'class' => $a_class,
),
'mysql_help_page' => $mysql_help_page,
)
);
}

View File

@ -1,19 +0,0 @@
Copyright (C) 2016 by Marijn Haverbeke <marijnh@gmail.com> and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@ -1,40 +0,0 @@
CodeMirror.sqlLint = function(text, updateLinting, options, cm) {
// Skipping check if text box is empty.
if(text.trim() == "") {
updateLinting(cm, []);
return;
}
function handleResponse(response) {
var found = [];
for (var idx in response) {
found.push({
from: CodeMirror.Pos(
response[idx].fromLine, response[idx].fromColumn
),
to: CodeMirror.Pos(
response[idx].toLine, response[idx].toColumn
),
message: response[idx].message,
severity : response[idx].severity
});
}
updateLinting(cm, found);
}
$.ajax({
method: "POST",
url: "lint.php",
dataType: 'json',
data: {
sql_query: text,
token: PMA_commonParams.get('token'),
server: PMA_commonParams.get('server'),
options: options.lintOptions,
no_history: true,
},
success: handleResponse
});
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,394 +0,0 @@
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
(function(mod) {
if (typeof exports == "object" && typeof module == "object") // CommonJS
mod(require("../../lib/codemirror"));
else if (typeof define == "function" && define.amd) // AMD
define(["../../lib/codemirror"], mod);
else // Plain browser env
mod(CodeMirror);
})(function(CodeMirror) {
"use strict";
var htmlConfig = {
autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,
'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,
'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,
'track': true, 'wbr': true, 'menuitem': true},
implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,
'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,
'th': true, 'tr': true},
contextGrabbers: {
'dd': {'dd': true, 'dt': true},
'dt': {'dd': true, 'dt': true},
'li': {'li': true},
'option': {'option': true, 'optgroup': true},
'optgroup': {'optgroup': true},
'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,
'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,
'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,
'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,
'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},
'rp': {'rp': true, 'rt': true},
'rt': {'rp': true, 'rt': true},
'tbody': {'tbody': true, 'tfoot': true},
'td': {'td': true, 'th': true},
'tfoot': {'tbody': true},
'th': {'td': true, 'th': true},
'thead': {'tbody': true, 'tfoot': true},
'tr': {'tr': true}
},
doNotIndent: {"pre": true},
allowUnquoted: true,
allowMissing: true,
caseFold: true
}
var xmlConfig = {
autoSelfClosers: {},
implicitlyClosed: {},
contextGrabbers: {},
doNotIndent: {},
allowUnquoted: false,
allowMissing: false,
caseFold: false
}
CodeMirror.defineMode("xml", function(editorConf, config_) {
var indentUnit = editorConf.indentUnit
var config = {}
var defaults = config_.htmlMode ? htmlConfig : xmlConfig
for (var prop in defaults) config[prop] = defaults[prop]
for (var prop in config_) config[prop] = config_[prop]
// Return variables for tokenizers
var type, setStyle;
function inText(stream, state) {
function chain(parser) {
state.tokenize = parser;
return parser(stream, state);
}
var ch = stream.next();
if (ch == "<") {
if (stream.eat("!")) {
if (stream.eat("[")) {
if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
else return null;
} else if (stream.match("--")) {
return chain(inBlock("comment", "-->"));
} else if (stream.match("DOCTYPE", true, true)) {
stream.eatWhile(/[\w\._\-]/);
return chain(doctype(1));
} else {
return null;
}
} else if (stream.eat("?")) {
stream.eatWhile(/[\w\._\-]/);
state.tokenize = inBlock("meta", "?>");
return "meta";
} else {
type = stream.eat("/") ? "closeTag" : "openTag";
state.tokenize = inTag;
return "tag bracket";
}
} else if (ch == "&") {
var ok;
if (stream.eat("#")) {
if (stream.eat("x")) {
ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";");
} else {
ok = stream.eatWhile(/[\d]/) && stream.eat(";");
}
} else {
ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";");
}
return ok ? "atom" : "error";
} else {
stream.eatWhile(/[^&<]/);
return null;
}
}
inText.isInText = true;
function inTag(stream, state) {
var ch = stream.next();
if (ch == ">" || (ch == "/" && stream.eat(">"))) {
state.tokenize = inText;
type = ch == ">" ? "endTag" : "selfcloseTag";
return "tag bracket";
} else if (ch == "=") {
type = "equals";
return null;
} else if (ch == "<") {
state.tokenize = inText;
state.state = baseState;
state.tagName = state.tagStart = null;
var next = state.tokenize(stream, state);
return next ? next + " tag error" : "tag error";
} else if (/[\'\"]/.test(ch)) {
state.tokenize = inAttribute(ch);
state.stringStartCol = stream.column();
return state.tokenize(stream, state);
} else {
stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);
return "word";
}
}
function inAttribute(quote) {
var closure = function(stream, state) {
while (!stream.eol()) {
if (stream.next() == quote) {
state.tokenize = inTag;
break;
}
}
return "string";
};
closure.isInAttribute = true;
return closure;
}
function inBlock(style, terminator) {
return function(stream, state) {
while (!stream.eol()) {
if (stream.match(terminator)) {
state.tokenize = inText;
break;
}
stream.next();
}
return style;
};
}
function doctype(depth) {
return function(stream, state) {
var ch;
while ((ch = stream.next()) != null) {
if (ch == "<") {
state.tokenize = doctype(depth + 1);
return state.tokenize(stream, state);
} else if (ch == ">") {
if (depth == 1) {
state.tokenize = inText;
break;
} else {
state.tokenize = doctype(depth - 1);
return state.tokenize(stream, state);
}
}
}
return "meta";
};
}
function Context(state, tagName, startOfLine) {
this.prev = state.context;
this.tagName = tagName;
this.indent = state.indented;
this.startOfLine = startOfLine;
if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))
this.noIndent = true;
}
function popContext(state) {
if (state.context) state.context = state.context.prev;
}
function maybePopContext(state, nextTagName) {
var parentTagName;
while (true) {
if (!state.context) {
return;
}
parentTagName = state.context.tagName;
if (!config.contextGrabbers.hasOwnProperty(parentTagName) ||
!config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {
return;
}
popContext(state);
}
}
function baseState(type, stream, state) {
if (type == "openTag") {
state.tagStart = stream.column();
return tagNameState;
} else if (type == "closeTag") {
return closeTagNameState;
} else {
return baseState;
}
}
function tagNameState(type, stream, state) {
if (type == "word") {
state.tagName = stream.current();
setStyle = "tag";
return attrState;
} else {
setStyle = "error";
return tagNameState;
}
}
function closeTagNameState(type, stream, state) {
if (type == "word") {
var tagName = stream.current();
if (state.context && state.context.tagName != tagName &&
config.implicitlyClosed.hasOwnProperty(state.context.tagName))
popContext(state);
if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {
setStyle = "tag";
return closeState;
} else {
setStyle = "tag error";
return closeStateErr;
}
} else {
setStyle = "error";
return closeStateErr;
}
}
function closeState(type, _stream, state) {
if (type != "endTag") {
setStyle = "error";
return closeState;
}
popContext(state);
return baseState;
}
function closeStateErr(type, stream, state) {
setStyle = "error";
return closeState(type, stream, state);
}
function attrState(type, _stream, state) {
if (type == "word") {
setStyle = "attribute";
return attrEqState;
} else if (type == "endTag" || type == "selfcloseTag") {
var tagName = state.tagName, tagStart = state.tagStart;
state.tagName = state.tagStart = null;
if (type == "selfcloseTag" ||
config.autoSelfClosers.hasOwnProperty(tagName)) {
maybePopContext(state, tagName);
} else {
maybePopContext(state, tagName);
state.context = new Context(state, tagName, tagStart == state.indented);
}
return baseState;
}
setStyle = "error";
return attrState;
}
function attrEqState(type, stream, state) {
if (type == "equals") return attrValueState;
if (!config.allowMissing) setStyle = "error";
return attrState(type, stream, state);
}
function attrValueState(type, stream, state) {
if (type == "string") return attrContinuedState;
if (type == "word" && config.allowUnquoted) {setStyle = "string"; return attrState;}
setStyle = "error";
return attrState(type, stream, state);
}
function attrContinuedState(type, stream, state) {
if (type == "string") return attrContinuedState;
return attrState(type, stream, state);
}
return {
startState: function(baseIndent) {
var state = {tokenize: inText,
state: baseState,
indented: baseIndent || 0,
tagName: null, tagStart: null,
context: null}
if (baseIndent != null) state.baseIndent = baseIndent
return state
},
token: function(stream, state) {
if (!state.tagName && stream.sol())
state.indented = stream.indentation();
if (stream.eatSpace()) return null;
type = null;
var style = state.tokenize(stream, state);
if ((style || type) && style != "comment") {
setStyle = null;
state.state = state.state(type || style, stream, state);
if (setStyle)
style = setStyle == "error" ? style + " error" : setStyle;
}
return style;
},
indent: function(state, textAfter, fullLine) {
var context = state.context;
// Indent multi-line strings (e.g. css).
if (state.tokenize.isInAttribute) {
if (state.tagStart == state.indented)
return state.stringStartCol + 1;
else
return state.indented + indentUnit;
}
if (context && context.noIndent) return CodeMirror.Pass;
if (state.tokenize != inTag && state.tokenize != inText)
return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
// Indent the starts of attribute names.
if (state.tagName) {
if (config.multilineTagIndentPastTag !== false)
return state.tagStart + state.tagName.length + 2;
else
return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);
}
if (config.alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
var tagAfter = textAfter && /^<(\/)?([\w_:\.-]*)/.exec(textAfter);
if (tagAfter && tagAfter[1]) { // Closing tag spotted
while (context) {
if (context.tagName == tagAfter[2]) {
context = context.prev;
break;
} else if (config.implicitlyClosed.hasOwnProperty(context.tagName)) {
context = context.prev;
} else {
break;
}
}
} else if (tagAfter) { // Opening tag spotted
while (context) {
var grabbers = config.contextGrabbers[context.tagName];
if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))
context = context.prev;
else
break;
}
}
while (context && context.prev && !context.startOfLine)
context = context.prev;
if (context) return context.indent + indentUnit;
else return state.baseIndent || 0;
},
electricInput: /<\/[\s\w:]+>$/,
blockCommentStart: "<!--",
blockCommentEnd: "-->",
configuration: config.htmlMode ? "html" : "xml",
helperType: config.htmlMode ? "html" : "xml",
skipAttribute: function(state) {
if (state.state == attrValueState)
state.state = attrState
}
};
});
CodeMirror.defineMIME("text/xml", "xml");
CodeMirror.defineMIME("application/xml", "xml");
if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});
});

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Conditionally included if framing is not allowed
*/
if (self == top) {
var style_element = document.getElementById("cfs-style");
// check if style_element has already been removed
// to avoid frequently reported js error
if (typeof(style_element) != 'undefined' && style_element != null) {
style_element.parentNode.removeChild(style_element);
}
} else {
top.location = self.location;
}

View File

@ -1,238 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* @fileoverview events handling from central columns page
* @name Central columns
*
* @requires jQuery
*/
/**
* AJAX scripts for db_central_columns.php
*
* Actions ajaxified here:
* Inline Edit and save of a result row
* Delete a row
* Multiple edit and delete option
*
*/
AJAX.registerTeardown('db_central_columns.js', function () {
$(".edit").unbind('click');
$(".edit_save_form").unbind('click');
$('.edit_cancel_form').unbind('click');
$(".del_row").unbind('click');
$(document).off("keyup", ".filter_rows");
$('.edit_cancel_form').unbind('click');
$('#table-select').unbind('change');
$('#column-select').unbind('change');
$("#add_col_div").find(">a").unbind('click');
$('#add_new').unbind('submit');
$('#multi_edit_central_columns').unbind('submit');
$("select.default_type").unbind('change');
$("button[name='delete_central_columns']").unbind('click');
$("button[name='edit_central_columns']").unbind('click');
});
AJAX.registerOnload('db_central_columns.js', function () {
$('#tableslistcontainer input,#tableslistcontainer select,#tableslistcontainer .default_value,#tableslistcontainer .open_enum_editor').hide();
$('#tableslistcontainer').find('.checkall').show();
$('#tableslistcontainer').find('.checkall_box').show();
if ($('#table_columns').find('tbody tr').length > 0) {
$("#table_columns").tablesorter({
headers: {
0: {sorter: false},
1: {sorter: false}, // hidden column
4: {sorter: "integer"}
}
});
}
$('#tableslistcontainer').find('button[name="delete_central_columns"]').click(function(event){
event.preventDefault();
var multi_delete_columns = $('.checkall:checkbox:checked').serialize();
if(multi_delete_columns === ''){
PMA_ajaxShowMessage(PMA_messages.strRadioUnchecked);
return false;
}
PMA_ajaxShowMessage();
$("#del_col_name").val(multi_delete_columns);
$("#del_form").submit();
});
$('#tableslistcontainer').find('button[name="edit_central_columns"]').click(function(event){
event.preventDefault();
var editColumnList = $('.checkall:checkbox:checked').serialize();
if(editColumnList === ''){
PMA_ajaxShowMessage(PMA_messages.strRadioUnchecked);
return false;
}
var editColumnData = editColumnList+ '&edit_central_columns_page=true&ajax_request=true&ajax_page_request=true&token='+PMA_commonParams.get('token')+'&db='+PMA_commonParams.get('db');
PMA_ajaxShowMessage();
AJAX.source = $(this);
$.get('db_central_columns.php', editColumnData, AJAX.responseHandler);
});
$('#multi_edit_central_columns').submit(function(event){
event.preventDefault();
event.stopPropagation();
var multi_column_edit_data = $("#multi_edit_central_columns").serialize()+'&multi_edit_central_column_save=true&ajax_request=true&ajax_page_request=true&token='+PMA_commonParams.get('token')+'&db='+PMA_commonParams.get('db');
PMA_ajaxShowMessage();
AJAX.source = $(this);
$.post('db_central_columns.php', multi_column_edit_data, AJAX.responseHandler);
});
$('#add_new').find('td').each(function(){
if ($(this).attr('name') !== 'undefined') {
$(this).find('input,select:first').attr('name', $(this).attr('name'));
}
});
$("#field_0_0").attr('required','required');
$('#add_new input[type="text"], #add_new input[type="number"], #add_new select')
.css({
'width' : '10em',
'-moz-box-sizing' : 'border-box'
});
window.scrollTo(0, 0);
$(document).on("keyup", ".filter_rows", function () {
// get the column names
var cols = $('th.column_heading').map(function () {
return $.trim($(this).text());
}).get();
$.uiTableFilter($("#table_columns"), $(this).val(), cols, null, "td span");
});
$('.edit').click(function() {
var rownum = $(this).parent().data('rownum');
$('#save_' + rownum).show();
$(this).hide();
$('#f_' + rownum + ' td span').hide();
$('#f_' + rownum + ' input, #f_' + rownum + ' select, #f_' + rownum + ' .open_enum_editor').show();
var attribute_val = $('#f_' + rownum + ' td[name=col_attribute] span').html();
$('#f_' + rownum + ' select[name=field_attribute\\['+ rownum +'\\] ] option[value="' + attribute_val + '"]').attr("selected","selected");
if($('#f_' + rownum + ' .default_type').val() === 'USER_DEFINED') {
$('#f_' + rownum + ' .default_type').siblings('.default_value').show();
} else {
$('#f_' + rownum + ' .default_type').siblings('.default_value').hide();
}
});
$(".del_row").click(function (event) {
event.preventDefault();
event.stopPropagation();
var $td = $(this);
var question = PMA_messages.strDeleteCentralColumnWarning;
$td.PMA_confirm(question, null, function (url) {
var rownum = $td.data('rownum');
$("#del_col_name").val("selected_fld%5B%5D="+$('#checkbox_row_' + rownum ).val());
$("#del_form").submit();
});
});
$('.edit_cancel_form').click(function(event) {
event.preventDefault();
event.stopPropagation();
var rownum = $(this).data('rownum');
$('#save_' + rownum).hide();
$('#edit_' + rownum).show();
$('#f_' + rownum + ' td span').show();
$('#f_' + rownum + ' input, #f_' + rownum + ' select,#f_'+rownum+' .default_value, #f_' + rownum + ' .open_enum_editor').hide();
$('#tableslistcontainer').find('.checkall').show();
});
$('.edit_save_form').click(function(event) {
event.preventDefault();
event.stopPropagation();
var rownum = $(this).data('rownum');
$('#f_' + rownum + ' td').each(function() {
if ($(this).attr('name') !== 'undefined') {
$(this).find(':input[type!="hidden"],select:first')
.attr('name', $(this).attr('name'));
}
});
if($('#f_' + rownum + ' .default_type').val() === 'USER_DEFINED') {
$('#f_' + rownum + ' .default_type').attr('name','col_default_sel');
} else {
$('#f_' + rownum + ' .default_value').attr('name','col_default_val');
}
var datastring = $('#f_' + rownum + ' :input').serialize();
$.ajax({
type: "POST",
url: "db_central_columns.php",
data: datastring+'&ajax_request=true',
dataType: "json",
success: function(data) {
if (data.message !== '1') {
PMA_ajaxShowMessage(
'<div class="error">' +
data.message +
'</div>',
false
);
} else {
$('#f_' + rownum + ' td[name=col_name] span').text($('#f_' + rownum + ' input[name=col_name]').val()).html();
$('#f_' + rownum + ' td[name=col_type] span').text($('#f_' + rownum + ' select[name=col_type]').val()).html();
$('#f_' + rownum + ' td[name=col_length] span').text($('#f_' + rownum + ' input[name=col_length]').val()).html();
$('#f_' + rownum + ' td[name=collation] span').text($('#f_' + rownum + ' select[name=collation]').val()).html();
$('#f_' + rownum + ' td[name=col_attribute] span').text($('#f_' + rownum + ' select[name=col_attribute]').val()).html();
$('#f_' + rownum + ' td[name=col_isNull] span').text($('#f_' + rownum +' input[name=col_isNull]').is(":checked")?"Yes":"No").html();
$('#f_' + rownum + ' td[name=col_extra] span').text($('#f_' + rownum + ' input[name=col_extra]').is(":checked") ? "auto_increment" : "").html();
$('#f_' + rownum + ' td[name=col_default] span').text($('#f_' + rownum + ' :input[name=col_default]').val()).html();
}
$('#save_' + rownum).hide();
$('#edit_' + rownum).show();
$('#f_' + rownum + ' td span').show();
$('#f_' + rownum + ' input, #f_' + rownum + ' select,#f_' + rownum + ' .default_value, #f_' + rownum + ' .open_enum_editor').hide();
$('#tableslistcontainer').find('.checkall').show();
},
error: function() {
PMA_ajaxShowMessage(
'<div class="error">' +
PMA_messages.strErrorProcessingRequest +
'</div>',
false
);
}
});
});
$('#table-select').change(function(e) {
var selectvalue = $(this).val();
var default_column_select = $('#column-select').find('option:first');
var href = "db_central_columns.php";
var params = {
'ajax_request' : true,
'token' : PMA_commonParams.get('token'),
'server' : PMA_commonParams.get('server'),
'db' : PMA_commonParams.get('db'),
'selectedTable' : selectvalue,
'populateColumns' : true
};
$('#column-select').html('<option value="">' + PMA_messages.strLoading + '</option>');
if (selectvalue !== "") {
$.post(href, params, function (data) {
$('#column-select').empty().append(default_column_select);
$('#column-select').append(data.message);
});
}
});
$('#column-select').change(function(e) {
var selectvalue = $(this).val();
if (selectvalue !== "") {
$("#add_column").submit();
}
});
$("#add_col_div").find(">a").click(function(event){
$('#add_new').slideToggle("slow");
var $addColDivLinkSpan = $("#add_col_div").find(">a span");
if($addColDivLinkSpan.html() === '+') {
$addColDivLinkSpan.html('-');
} else {
$addColDivLinkSpan.html('+');
}
});
$('#add_new').submit(function(event){
$('#add_new').toggle();
});
$("#tableslistcontainer").find("select.default_type").change(function () {
if ($(this).val() === 'USER_DEFINED') {
$(this).siblings('.default_value').attr('name','col_default');
$(this).attr('name','col_default_sel');
} else {
$(this).attr('name','col_default');
$(this).siblings('.default_value').attr('name','col_default_val');
}
});
});

View File

@ -1,77 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* @fileoverview function used in QBE for DB
* @name Database Operations
*
* @requires jQuery
* @requires jQueryUI
* @requires js/functions.js
*
*/
/**
* Ajax event handlers here for db_qbe.php
*
* Actions Ajaxified here:
* Select saved search
*/
/**
* Unbind all event handlers before tearing down a page
*/
AJAX.registerTeardown('db_qbe.js', function () {
$(document).off('change', 'select[name^=criteriaColumn]');
$(document).off('change', "#searchId");
$(document).off('click', "#saveSearch");
$(document).off('click', "#updateSearch");
$(document).off('click', "#deleteSearch");
});
AJAX.registerOnload('db_qbe.js', function () {
PMA_getSQLEditor($('#textSqlquery'), {}, 'both');
/**
* Ajax handler to check the corresponding 'show' checkbox when column is selected
*/
$(document).on('change', 'select[name^=criteriaColumn]', function (event) {
if ($(this).val()) {
var index = (/\d+/).exec($(this).attr('name'));
$('input[name=criteriaShow\\[' + index + '\\]]').prop('checked', true);
}
});
/**
* Ajax event handlers for 'Select saved search'
*/
$(document).on('change', "#searchId", function (event) {
$('#action').val('load');
$('#formQBE').submit();
});
/**
* Ajax event handlers for 'Create bookmark'
*/
$(document).on('click', "#saveSearch", function () {
$('#action').val('create');
});
/**
* Ajax event handlers for 'Update bookmark'
*/
$(document).on('click', "#updateSearch", function (event) {
$('#action').val('update');
});
/**
* Ajax event handlers for 'Delete bookmark'
*/
$(document).on('click', "#deleteSearch", function (event) {
var question = PMA_sprintf(PMA_messages.strConfirmDeleteQBESearch, $("#searchId").find("option:selected").text());
if (!confirm(question)) {
return false;
}
$('#action').val('delete');
});
});

View File

@ -1,248 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* JavaScript functions used on Database Search page
*
* @requires jQuery
* @requires js/functions.js
*
* @package PhpMyAdmin
*/
/**
* AJAX script for the Database Search page.
*
* Actions ajaxified here:
* Retrieve result of SQL query
*/
/**
* Unbind all event handlers before tearing down a page
*/
AJAX.registerTeardown('db_search.js', function () {
$('a.browse_results').unbind('click');
$('a.delete_results').unbind('click');
$('#buttonGo').unbind('click');
$('#togglesearchresultlink').unbind('click');
$("#togglequerybox").unbind('click');
$('#togglesearchformlink').unbind('click');
$(document).off('submit', "#db_search_form.ajax");
});
AJAX.registerOnload('db_search.js', function () {
/** Hide the table link in the initial search result */
var icon = PMA_getImage('s_tbl.png', '', {'id': 'table-image'}).toString();
$("#table-info").prepend(icon).hide();
/** Hide the browse and deleted results in the new search criteria */
$('#buttonGo').click(function () {
$("#table-info").hide();
$('#browse-results').hide();
$('#sqlqueryform').hide();
$('#togglequerybox').hide();
});
/**
* Prepare a div containing a link for toggle the search results
*/
$('#togglesearchresultsdiv')
/** don't show it until we have results on-screen */
.hide();
/**
* Changing the displayed text according to
* the hide/show criteria in search result forms
*/
$('#togglesearchresultlink')
.html(PMA_messages.strHideSearchResults)
.bind('click', function () {
var $link = $(this);
$('#searchresults').slideToggle();
if ($link.text() == PMA_messages.strHideSearchResults) {
$link.text(PMA_messages.strShowSearchResults);
} else {
$link.text(PMA_messages.strHideSearchResults);
}
/** avoid default click action */
return false;
});
/**
* Prepare a div containing a link for toggle the search form,
* otherwise it's incorrectly displayed after a couple of clicks
*/
$('#togglesearchformdiv')
.hide(); // don't show it until we have results on-screen
/**
* Changing the displayed text according to
* the hide/show criteria in search form
*/
$("#togglequerybox")
.hide()
.bind('click', function () {
var $link = $(this);
$('#sqlqueryform').slideToggle("medium");
if ($link.text() == PMA_messages.strHideQueryBox) {
$link.text(PMA_messages.strShowQueryBox);
} else {
$link.text(PMA_messages.strHideQueryBox);
}
/** avoid default click action */
return false;
});
/** don't show it until we have results on-screen */
/**
* Changing the displayed text according to
* the hide/show criteria in search criteria form
*/
$('#togglesearchformlink')
.html(PMA_messages.strShowSearchCriteria)
.bind('click', function () {
var $link = $(this);
$('#db_search_form').slideToggle();
if ($link.text() == PMA_messages.strHideSearchCriteria) {
$link.text(PMA_messages.strShowSearchCriteria);
} else {
$link.text(PMA_messages.strHideSearchCriteria);
}
/** avoid default click action */
return false;
});
/*
* Ajax Event handler for retrieving the results from a table
*/
$(document).on('click', 'a.browse_results', function(e){
e.preventDefault();
/** Hides the results shown by the delete criteria */
var $msg = PMA_ajaxShowMessage(PMA_messages.strBrowsing, false);
$('#sqlqueryform').hide();
$('#togglequerybox').hide();
/** Load the browse results to the page */
$("#table-info").show();
var table_name = $(this).data('table-name');
$('#table-link').attr({"href" : $(this).attr('href')}).text(table_name);
var url = $(this).attr('href') + "#searchresults";
var browse_sql = $(this).data('browse-sql');
var params = {
'ajax_request': true,
'is_js_confirmed': true,
'sql_query' : browse_sql,
'token' : PMA_commonParams.get('token')
};
$.post(url, params, function (data) {
if (typeof data !== 'undefined' && data.success) {
$('#browse-results').html(data.message);
PMA_ajaxRemoveMessage($msg);
$('.table_results').each(function () {
PMA_makegrid(this, true, true, true, true);
});
$('#browse-results').show();
PMA_highlightSQL($('#browse-results'));
$('html, body')
.animate({
scrollTop: $("#browse-results").offset().top
}, 1000);
} else {
PMA_ajaxShowMessage(data.error, false);
}
});
});
/*
* Ajax Event handler for deleting the results from a table
*/
$(document).on('click', 'a.delete_results', function(e){
e.preventDefault();
/** Hides the results shown by the browse criteria */
$("#table-info").hide();
$('#sqlqueryform').hide();
$('#togglequerybox').hide();
/** Conformation message for deletion */
var msg = PMA_sprintf(
PMA_messages.strConfirmDeleteResults,
$(this).data('table-name')
);
if (confirm(msg)) {
var $msg = PMA_ajaxShowMessage(PMA_messages.strDeleting, false);
/** Load the deleted option to the page*/
$('#sqlqueryform').html('');
var params = {
'ajax_request': true,
'is_js_confirmed': true,
'sql_query': $(this).data('delete-sql'),
'token' : PMA_commonParams.get('token')
};
var url = $(this).attr('href');
$.post(url, params, function (data) {
if (typeof data === 'undefined' || !data.success) {
PMA_ajaxShowMessage(data.error, false);
return;
}
$('#sqlqueryform').html(data.sql_query);
/** Refresh the search results after the deletion */
document.getElementById('buttonGo').click();
$('#togglequerybox').html(PMA_messages.strHideQueryBox);
/** Show the results of the deletion option */
$('#browse-results').hide();
$('#sqlqueryform').show();
$('#togglequerybox').show();
$('html, body')
.animate({
scrollTop: $("#browse-results").offset().top
}, 1000);
PMA_ajaxRemoveMessage($msg);
});
}
});
/**
* Ajax Event handler for retrieving the result of an SQL Query
*/
$(document).on('submit', "#db_search_form.ajax", function (event) {
event.preventDefault();
var $msgbox = PMA_ajaxShowMessage(PMA_messages.strSearching, false);
// jQuery object to reuse
var $form = $(this);
PMA_prepareForAjaxRequest($form);
var url = $form.serialize() + "&submit_search=" + $("#buttonGo").val();
$.post($form.attr('action'), url, function (data) {
if (typeof data !== 'undefined' && data.success === true) {
// found results
$("#searchresults").html(data.message);
$('#togglesearchresultlink')
// always start with the Show message
.text(PMA_messages.strHideSearchResults);
$('#togglesearchresultsdiv')
// now it's time to show the div containing the link
.show();
$('#searchresults').show();
$('#db_search_form')
// workaround for Chrome problem (bug #3168569)
.slideToggle()
.hide();
$('#togglesearchformlink')
// always start with the Show message
.text(PMA_messages.strShowSearchCriteria);
$('#togglesearchformdiv')
// now it's time to show the div containing the link
.show();
} else {
// error message (zero rows)
$("#searchresults").html(data.error).show();
}
PMA_ajaxRemoveMessage($msgbox);
});
});
}); // end $()

View File

@ -1,863 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Functions used in the export tab
*
*/
/**
* Disables the "Dump some row(s)" sub-options
*/
function disable_dump_some_rows_sub_options()
{
$("label[for='limit_to']").fadeTo('fast', 0.4);
$("label[for='limit_from']").fadeTo('fast', 0.4);
$("input[type='text'][name='limit_to']").prop('disabled', 'disabled');
$("input[type='text'][name='limit_from']").prop('disabled', 'disabled');
}
/**
* Enables the "Dump some row(s)" sub-options
*/
function enable_dump_some_rows_sub_options()
{
$("label[for='limit_to']").fadeTo('fast', 1);
$("label[for='limit_from']").fadeTo('fast', 1);
$("input[type='text'][name='limit_to']").prop('disabled', '');
$("input[type='text'][name='limit_from']").prop('disabled', '');
}
/**
* Return template data as a json object
*
* @returns template data
*/
function getTemplateData()
{
var $form = $('form[name="dump"]');
var blacklist = ['token', 'server', 'db', 'table', 'single_table',
'export_type', 'export_method', 'sql_query', 'template_id'];
var obj = {};
var arr = $form.serializeArray();
$.each(arr, function () {
if ($.inArray(this.name, blacklist) < 0) {
if (obj[this.name] !== undefined) {
if (! obj[this.name].push) {
obj[this.name] = [obj[this.name]];
}
obj[this.name].push(this.value || '');
} else {
obj[this.name] = this.value || '';
}
}
});
// include unchecked checboxes (which are ignored by serializeArray()) with null
// to uncheck them when loading the template
$form.find('input[type="checkbox"]:not(:checked)').each(function () {
if (obj[this.name] === undefined) {
obj[this.name] = null;
}
});
// include empty multiselects
$form.find('select').each(function () {
if ($(this).find('option:selected').length == 0) {
obj[this.name] = [];
}
});
return obj;
}
/**
* Create a template with selected options
*
* @param name name of the template
*/
function createTemplate(name)
{
var templateData = getTemplateData();
var params = {
ajax_request : true,
token : PMA_commonParams.get('token'),
server : PMA_commonParams.get('server'),
db : PMA_commonParams.get('db'),
table : PMA_commonParams.get('table'),
exportType : $('input[name="export_type"]').val(),
templateAction : 'create',
templateName : name,
templateData : JSON.stringify(templateData)
};
PMA_ajaxShowMessage();
$.post('tbl_export.php', params, function (response) {
if (response.success === true) {
$('#templateName').val('');
$('#template').html(response.data);
$("#template").find("option").each(function() {
if ($(this).text() == name) {
$(this).prop('selected', true);
}
});
PMA_ajaxShowMessage(PMA_messages.strTemplateCreated);
} else {
PMA_ajaxShowMessage(response.error, false);
}
});
}
/**
* Loads a template
*
* @param id ID of the template to load
*/
function loadTemplate(id)
{
var params = {
ajax_request : true,
token : PMA_commonParams.get('token'),
server : PMA_commonParams.get('server'),
db : PMA_commonParams.get('db'),
table : PMA_commonParams.get('table'),
exportType : $('input[name="export_type"]').val(),
templateAction : 'load',
templateId : id,
};
PMA_ajaxShowMessage();
$.post('tbl_export.php', params, function (response) {
if (response.success === true) {
var $form = $('form[name="dump"]');
var options = JSON.parse(response.data);
$.each(options, function (key, value) {
var $element = $form.find('[name="' + key + '"]');
if ($element.length) {
if (($element.is('input') && $element.attr('type') == 'checkbox') && value === null) {
$element.prop('checked', false);
} else {
if (($element.is('input') && $element.attr('type') == 'checkbox') ||
($element.is('input') && $element.attr('type') == 'radio') ||
($element.is('select') && $element.attr('multiple') == 'multiple')) {
if (! value.push) {
value = [value];
}
}
$element.val(value);
}
$element.trigger('change');
}
});
$('input[name="template_id"]').val(id);
PMA_ajaxShowMessage(PMA_messages.strTemplateLoaded);
} else {
PMA_ajaxShowMessage(response.error, false);
}
});
}
/**
* Updates an existing template with current options
*
* @param id ID of the template to update
*/
function updateTemplate(id)
{
var templateData = getTemplateData();
var params = {
ajax_request : true,
token : PMA_commonParams.get('token'),
server : PMA_commonParams.get('server'),
db : PMA_commonParams.get('db'),
table : PMA_commonParams.get('table'),
exportType : $('input[name="export_type"]').val(),
templateAction : 'update',
templateId : id,
templateData : JSON.stringify(templateData)
};
PMA_ajaxShowMessage();
$.post('tbl_export.php', params, function (response) {
if (response.success === true) {
PMA_ajaxShowMessage(PMA_messages.strTemplateUpdated);
} else {
PMA_ajaxShowMessage(response.error, false);
}
});
}
/**
* Delete a template
*
* @param id ID of the template to delete
*/
function deleteTemplate(id)
{
var params = {
ajax_request : true,
token : PMA_commonParams.get('token'),
server : PMA_commonParams.get('server'),
db : PMA_commonParams.get('db'),
table : PMA_commonParams.get('table'),
exportType : $('input[name="export_type"]').val(),
templateAction : 'delete',
templateId : id,
};
PMA_ajaxShowMessage();
$.post('tbl_export.php', params, function (response) {
if (response.success === true) {
$('#template').find('option[value="' + id + '"]').remove();
PMA_ajaxShowMessage(PMA_messages.strTemplateDeleted);
} else {
PMA_ajaxShowMessage(response.error, false);
}
});
}
/**
* Unbind all event handlers before tearing down a page
*/
AJAX.registerTeardown('export.js', function () {
$("#plugins").unbind('change');
$("input[type='radio'][name='sql_structure_or_data']").unbind('change');
$("input[type='radio'][name$='_structure_or_data']").off('change');
$("input[type='radio'][name='output_format']").unbind('change');
$("#checkbox_sql_include_comments").unbind('change');
$("input[type='radio'][name='quick_or_custom']").unbind('change');
$("input[type='radio'][name='allrows']").unbind('change');
$('#btn_alias_config').off('click');
$('#db_alias_select').off('change');
$('.table_alias_select').off('change');
$('input[name="table_select[]"]').off('change');
$('input[name="table_structure[]"]').off('change');
$('input[name="table_data[]"]').off('change');
$('#table_structure_all').off('change');
$('#table_data_all').off('change');
$('input[name="createTemplate"]').off('click');
$('select[name="template"]').off('change');
$('input[name="updateTemplate"]').off('click');
$('input[name="deleteTemplate"]').off('click');
});
AJAX.registerOnload('export.js', function () {
/**
* Export template handling code
*/
// create a new template
$('input[name="createTemplate"]').on('click', function (e) {
e.preventDefault();
var name = $('input[name="templateName"]').val();
if (name.length) {
createTemplate(name);
}
});
// load an existing template
$('select[name="template"]').on('change', function (e) {
e.preventDefault();
var id = $(this).val();
if (id.length) {
loadTemplate(id);
}
});
// udpate an existing template with new criteria
$('input[name="updateTemplate"]').on('click', function (e) {
e.preventDefault();
var id = $('select[name="template"]').val();
if (id.length) {
updateTemplate(id);
}
});
// delete an existing template
$('input[name="deleteTemplate"]').on('click', function (e) {
e.preventDefault();
var id = $('select[name="template"]').val();
if (id.length) {
deleteTemplate(id);
}
});
/**
* Toggles the hiding and showing of each plugin's options
* according to the currently selected plugin from the dropdown list
*/
$("#plugins").change(function () {
$("#format_specific_opts").find("div.format_specific_options").hide();
var selected_plugin_name = $("#plugins").find("option:selected").val();
$("#" + selected_plugin_name + "_options").show();
});
/**
* Toggles the enabling and disabling of the SQL plugin's comment options that apply only when exporting structure
*/
$("input[type='radio'][name='sql_structure_or_data']").change(function () {
var comments_are_present = $("#checkbox_sql_include_comments").prop("checked");
var show = $("input[type='radio'][name='sql_structure_or_data']:checked").val();
if (show == 'data') {
// disable the SQL comment options
if (comments_are_present) {
$("#checkbox_sql_dates").prop('disabled', true).parent().fadeTo('fast', 0.4);
}
$("#checkbox_sql_relation").prop('disabled', true).parent().fadeTo('fast', 0.4);
$("#checkbox_sql_mime").prop('disabled', true).parent().fadeTo('fast', 0.4);
} else {
// enable the SQL comment options
if (comments_are_present) {
$("#checkbox_sql_dates").prop('disabled', false).parent().fadeTo('fast', 1);
}
$("#checkbox_sql_relation").prop('disabled', false).parent().fadeTo('fast', 1);
$("#checkbox_sql_mime").prop('disabled', false).parent().fadeTo('fast', 1);
}
if (show == 'structure') {
$('#checkbox_sql_auto_increment').prop('disabled', true).parent().fadeTo('fast', 0.4);
} else {
$("#checkbox_sql_auto_increment").prop('disabled', false).parent().fadeTo('fast', 1);
}
});
// For separate-file exports only ZIP compression is allowed
$('input[type="checkbox"][name="as_separate_files"]').change(function(){
if ($(this).is(':checked')) {
$('#compression').val('zip');
}
});
$('#compression').change(function(){
if ($('option:selected').val() !== 'zip') {
$('input[type="checkbox"][name="as_separate_files"]').prop('checked', false);
}
});
});
function setup_table_structure_or_data() {
if ($("input[name='export_type']").val() != 'database') {
return;
}
var pluginName = $("#plugins").find("option:selected").val();
var formElemName = pluginName + "_structure_or_data";
var force_structure_or_data = !($("input[name='" + formElemName + "_default']").length);
if (force_structure_or_data === true) {
$('input[name="structure_or_data_forced"]').val(1);
$('.export_structure input[type="checkbox"], .export_data input[type="checkbox"]')
.prop('disabled', true);
$('.export_structure, .export_data').fadeTo('fast', 0.4);
} else {
$('input[name="structure_or_data_forced"]').val(0);
$('.export_structure input[type="checkbox"], .export_data input[type="checkbox"]')
.prop('disabled', false);
$('.export_structure, .export_data').fadeTo('fast', 1);
var structure_or_data = $('input[name="' + formElemName + '_default"]').val();
if (structure_or_data == 'structure') {
$('.export_data input[type="checkbox"]')
.prop('checked', false);
} else if (structure_or_data == 'data') {
$('.export_structure input[type="checkbox"]')
.prop('checked', false);
}
if (structure_or_data == 'structure' || structure_or_data == 'structure_and_data') {
if (!$('.export_structure input[type="checkbox"]:checked').length) {
$('input[name="table_select[]"]:checked')
.closest('tr')
.find('.export_structure input[type="checkbox"]')
.prop('checked', true);
}
}
if (structure_or_data == 'data' || structure_or_data == 'structure_and_data') {
if (!$('.export_data input[type="checkbox"]:checked').length) {
$('input[name="table_select[]"]:checked')
.closest('tr')
.find('.export_data input[type="checkbox"]')
.prop('checked', true);
}
}
check_selected_tables();
check_table_select_all();
}
}
/**
* Toggles the hiding and showing of plugin structure-specific and data-specific
* options
*/
function toggle_structure_data_opts()
{
var pluginName = $("select#plugins").val();
var radioFormName = pluginName + "_structure_or_data";
var dataDiv = "#" + pluginName + "_data";
var structureDiv = "#" + pluginName + "_structure";
var show = $("input[type='radio'][name='" + radioFormName + "']:checked").val();
if (show == 'data') {
$(dataDiv).slideDown('slow');
$(structureDiv).slideUp('slow');
} else {
$(structureDiv).slideDown('slow');
if (show == 'structure') {
$(dataDiv).slideUp('slow');
} else {
$(dataDiv).slideDown('slow');
}
}
}
/**
* Toggles the disabling of the "save to file" options
*/
function toggle_save_to_file()
{
var $ulSaveAsfile = $("#ul_save_asfile");
if (!$("#radio_dump_asfile").prop("checked")) {
$ulSaveAsfile.find("> li").fadeTo('fast', 0.4);
$ulSaveAsfile.find("> li > input").prop('disabled', true);
$ulSaveAsfile.find("> li > select").prop('disabled', true);
} else {
$ulSaveAsfile.find("> li").fadeTo('fast', 1);
$ulSaveAsfile.find("> li > input").prop('disabled', false);
$ulSaveAsfile.find("> li > select").prop('disabled', false);
}
}
AJAX.registerOnload('export.js', function () {
toggle_save_to_file();
$("input[type='radio'][name='output_format']").change(toggle_save_to_file);
});
/**
* For SQL plugin, toggles the disabling of the "display comments" options
*/
function toggle_sql_include_comments()
{
$("#checkbox_sql_include_comments").change(function () {
var $ulIncludeComments = $("#ul_include_comments");
if (!$("#checkbox_sql_include_comments").prop("checked")) {
$ulIncludeComments.find("> li").fadeTo('fast', 0.4);
$ulIncludeComments.find("> li > input").prop('disabled', true);
} else {
// If structure is not being exported, the comment options for structure should not be enabled
if ($("#radio_sql_structure_or_data_data").prop("checked")) {
$("#text_sql_header_comment").prop('disabled', false).parent("li").fadeTo('fast', 1);
} else {
$ulIncludeComments.find("> li").fadeTo('fast', 1);
$ulIncludeComments.find("> li > input").prop('disabled', false);
}
}
});
}
function check_table_select_all() {
var total = $('input[name="table_select[]"]').length;
var str_checked = $('input[name="table_structure[]"]:checked').length;
var data_checked = $('input[name="table_data[]"]:checked').length;
var str_all = $('#table_structure_all');
var data_all = $('#table_data_all');
if (str_checked == total) {
str_all
.prop("indeterminate", false)
.prop('checked', true);
} else if (str_checked === 0) {
str_all
.prop("indeterminate", false)
.prop('checked', false);
} else {
str_all
.prop("indeterminate", true)
.prop('checked', false);
}
if (data_checked == total) {
data_all
.prop("indeterminate", false)
.prop('checked', true);
} else if (data_checked === 0) {
data_all
.prop("indeterminate", false)
.prop('checked', false);
} else {
data_all
.prop("indeterminate", true)
.prop('checked', false);
}
}
function toggle_table_select_all_str() {
var str_all = $('#table_structure_all').is(':checked');
if (str_all) {
$('input[name="table_structure[]"]').prop('checked', true);
} else {
$('input[name="table_structure[]"]').prop('checked', false);
}
}
function toggle_table_select_all_data() {
var data_all = $('#table_data_all').is(':checked');
if (data_all) {
$('input[name="table_data[]"]').prop('checked', true);
} else {
$('input[name="table_data[]"]').prop('checked', false);
}
}
function check_selected_tables(argument) {
$('.export_table_select tbody tr').each(function() {
check_table_selected(this);
});
}
function check_table_selected(row) {
var $row = $(row);
var table_select = $row.find('input[name="table_select[]"]');
var str_check = $row.find('input[name="table_structure[]"]');
var data_check = $row.find('input[name="table_data[]"]');
var data = data_check.is(':checked:not(:disabled)');
var structure = str_check.is(':checked:not(:disabled)');
if (data && structure) {
table_select.prop({checked: true, indeterminate: false});
$row.addClass('marked');
} else if (data || structure) {
table_select.prop({checked: true, indeterminate: true});
$row.removeClass('marked');
} else {
table_select.prop({checked: false, indeterminate: false});
$row.removeClass('marked');
}
}
function toggle_table_select(row) {
var $row = $(row);
var table_selected = $row.find('input[name="table_select[]"]').is(':checked');
if (table_selected) {
$row.find('input[type="checkbox"]:not(:disabled)').prop('checked', true);
$row.addClass('marked');
} else {
$row.find('input[type="checkbox"]:not(:disabled)').prop('checked', false);
$row.removeClass('marked');
}
}
function handleAddProcCheckbox() {
if ($('#table_structure_all').is(':checked') === true
&& $('#table_data_all').is(':checked') === true
) {
$('#checkbox_sql_procedure_function').prop('checked', true);
} else {
$('#checkbox_sql_procedure_function').prop('checked', false);
}
}
AJAX.registerOnload('export.js', function () {
/**
* For SQL plugin, if "CREATE TABLE options" is checked/unchecked, check/uncheck each of its sub-options
*/
var $create = $("#checkbox_sql_create_table_statements");
var $create_options = $("#ul_create_table_statements").find("input");
$create.change(function () {
$create_options.prop('checked', $(this).prop("checked"));
});
$create_options.change(function () {
if ($create_options.is(":checked")) {
$create.prop('checked', true);
}
});
/**
* Disables the view output as text option if the output must be saved as a file
*/
$("#plugins").change(function () {
var active_plugin = $("#plugins").find("option:selected").val();
var force_file = $("#force_file_" + active_plugin).val();
if (force_file == "true") {
if ($("#radio_dump_asfile").prop('checked') !== true) {
$("#radio_dump_asfile").prop('checked', true);
toggle_save_to_file();
}
$("#radio_view_as_text").prop('disabled', true).parent().fadeTo('fast', 0.4);
} else {
$("#radio_view_as_text").prop('disabled', false).parent().fadeTo('fast', 1);
}
});
$("input[type='radio'][name$='_structure_or_data']").on('change', function () {
toggle_structure_data_opts();
});
$('input[name="table_select[]"]').on('change', function() {
toggle_table_select($(this).closest('tr'));
check_table_select_all();
handleAddProcCheckbox();
});
$('input[name="table_structure[]"]').on('change', function() {
check_table_selected($(this).closest('tr'));
check_table_select_all();
handleAddProcCheckbox();
});
$('input[name="table_data[]"]').on('change', function() {
check_table_selected($(this).closest('tr'));
check_table_select_all();
handleAddProcCheckbox();
});
$('#table_structure_all').on('change', function() {
toggle_table_select_all_str();
check_selected_tables();
handleAddProcCheckbox();
});
$('#table_data_all').on('change', function() {
toggle_table_select_all_data();
check_selected_tables();
handleAddProcCheckbox();
});
if ($("input[name='export_type']").val() == 'database') {
// Hide structure or data radio buttons
$("input[type='radio'][name$='_structure_or_data']").each(function() {
var $this = $(this);
var name = $this.prop('name');
var val = $('input[name="' + name + '"]:checked').val();
var name_default = name + '_default';
if (!$('input[name="' + name_default + '"]').length) {
$this
.after(
$('<input type="hidden" name="' + name_default + '" value="' + val + '" disabled>')
)
.after(
$('<input type="hidden" name="' + name + '" value="structure_and_data">')
);
$this.parent().find('label').remove();
} else {
$this.parent().remove();
}
});
$("input[type='radio'][name$='_structure_or_data']").remove();
// Disable CREATE table checkbox for sql
var createTableCheckbox = $('#checkbox_sql_create_table');
createTableCheckbox.prop('checked', true);
var dummyCreateTable = $('#checkbox_sql_create_table')
.clone()
.removeAttr('id')
.attr('type', 'hidden');
createTableCheckbox
.prop('disabled', true)
.after(dummyCreateTable)
.parent()
.fadeTo('fast', 0.4);
setup_table_structure_or_data();
}
/**
* Handle force structure_or_data
*/
$("#plugins").change(setup_table_structure_or_data);
});
/**
* Toggles display of options when quick and custom export are selected
*/
function toggle_quick_or_custom()
{
if ($("input[name='quick_or_custom']").length === 0 // custom_no_form option
|| $("#radio_custom_export").prop("checked") // custom
) {
$("#databases_and_tables").show();
$("#rows").show();
$("#output").show();
$("#format_specific_opts").show();
$("#output_quick_export").hide();
var selected_plugin_name = $("#plugins").find("option:selected").val();
$("#" + selected_plugin_name + "_options").show();
} else { // quick
$("#databases_and_tables").hide();
$("#rows").hide();
$("#output").hide();
$("#format_specific_opts").hide();
$("#output_quick_export").show();
}
}
var time_out;
function check_time_out(time_limit)
{
if (typeof time_limit === 'undefined' || time_limit === 0) {
return true;
}
//margin of one second to avoid race condition to set/access session variable
time_limit = time_limit + 1;
var href = "export.php";
var params = {
'ajax_request' : true,
'token' : PMA_commonParams.get('token'),
'check_time_out' : true
};
clearTimeout(time_out);
time_out = setTimeout(function(){
$.get(href, params, function (data) {
if (data.message === 'timeout') {
PMA_ajaxShowMessage(
'<div class="error">' +
PMA_messages.strTimeOutError +
'</div>',
false
);
}
});
}, time_limit * 1000);
}
/**
* Handler for Database/table alias select
*
* @param event object the event object
*
* @return void
*/
function aliasSelectHandler(event) {
var sel = event.data.sel;
var type = event.data.type;
var inputId = $(this).val();
var $label = $(this).next('label');
$('input#' + $label.attr('for')).addClass('hide');
$('input#' + inputId).removeClass('hide');
$label.attr('for', inputId);
$('#alias_modal ' + sel + '[id$=' + type + ']:visible').addClass('hide');
var $inputWrapper = $('#alias_modal ' + sel + '#' + inputId + type);
$inputWrapper.removeClass('hide');
if (type === '_cols' && $inputWrapper.length > 0) {
var outer = $inputWrapper[0].outerHTML;
// Replace opening tags
var regex = /<dummy_inp/gi;
if (outer.match(regex)) {
var newTag = outer.replace(regex, '<input');
// Replace closing tags
regex = /<\/dummy_inp/gi;
newTag = newTag.replace(regex, '</input');
// Assign replacement
$inputWrapper.replaceWith(newTag);
}
} else if (type === '_tables') {
$('.table_alias_select:visible').change();
}
$("#alias_modal").dialog("option", "position", "center");
}
/**
* Handler for Alias dialog box
*
* @param event object the event object
*
* @return void
*/
function createAliasModal(event) {
event.preventDefault();
var dlgButtons = {};
dlgButtons[PMA_messages.strResetAll] = function() {
$(this).find('input[type="text"]').val('');
};
dlgButtons[PMA_messages.strReset] = function() {
$(this).find('input[type="text"]:visible').val('');
};
dlgButtons[PMA_messages.strSaveAndClose] = function() {
$(this).dialog("close");
// do not fillup form submission with empty values
$.each($(this).find('input[type="text"]'), function (i, e) {
if ($(e).val().trim().length == 0) {
$(e).prop('disabled', true);
}
});
$('#alias_modal').parent().appendTo($('form[name="dump"]'));
};
$('#alias_modal').find('input[type="text"]').prop('disabled', false);
$('#alias_modal').dialog({
width: Math.min($(window).width() - 100, 700),
maxHeight: $(window).height(),
modal: true,
dialogClass: "alias-dialog",
buttons: dlgButtons,
create: function() {
$(this).css('maxHeight', $(window).height() - 150);
$('.alias-dialog .ui-dialog-titlebar-close').remove();
},
close: function() {
var isEmpty = true;
$(this).find('input[type="text"]').each(function() {
// trim input fields on close
$(this).val($(this).val().trim());
// check if non empty field present
if ($(this).val()) {
isEmpty = false;
}
});
$('input#btn_alias_config').prop('checked', !isEmpty);
},
position: { my: "center top", at: "center top", of: window }
});
// Call change event of .table_alias_select
$('.table_alias_select:visible').trigger('change');
}
AJAX.registerOnload('export.js', function () {
$("input[type='radio'][name='quick_or_custom']").change(toggle_quick_or_custom);
$("#scroll_to_options_msg").hide();
$("#format_specific_opts").find("div.format_specific_options")
.hide()
.css({
"border": 0,
"margin": 0,
"padding": 0
})
.find("h3")
.remove();
toggle_quick_or_custom();
toggle_structure_data_opts();
toggle_sql_include_comments();
check_table_select_all();
handleAddProcCheckbox();
/**
* Initially disables the "Dump some row(s)" sub-options
*/
disable_dump_some_rows_sub_options();
/**
* Disables the "Dump some row(s)" sub-options when it is not selected
*/
$("input[type='radio'][name='allrows']").change(function () {
if ($("input[type='radio'][name='allrows']").prop("checked")) {
enable_dump_some_rows_sub_options();
} else {
disable_dump_some_rows_sub_options();
}
});
// Open Alias Modal Dialog on click
$('#btn_alias_config').on('click', createAliasModal);
// Database alias select on change event
$('#db_alias_select').on(
'change',
{sel: 'span', type: '_tables'},
aliasSelectHandler
);
// Table alias select on change event
$('.table_alias_select').on(
'change',
{sel: 'table', type: '_cols'},
aliasSelectHandler
);
});

File diff suppressed because it is too large Load Diff

View File

@ -1,152 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Provides the functionality for retreiving images
* which may be actual images or an icon from a sprite
*
* @package PhpMyAdmin
*/
if (!defined('TESTSUITE')) {
chdir('..');
// Send correct type:
header('Content-Type: text/javascript; charset=UTF-8');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
// Avoid loading the full common.inc.php because this would add many
// non-js-compatible stuff like DOCTYPE
define('PMA_MINIMUM_COMMON', true);
define('PMA_PATH_TO_BASEDIR', '../');
require_once './libraries/common.inc.php';
}
$buffer = PMA\libraries\OutputBuffering::getInstance();
$buffer->start();
if (!defined('TESTSUITE')) {
register_shutdown_function(
function () {
echo PMA\libraries\OutputBuffering::getInstance()->getContents();
}
);
}
// Get the data for the sprites, if it's available
$sprites = $_SESSION['PMA_Theme']->getSpriteData();
// We only need the keys from the array of sprites data,
// since they contain the (partial) class names
$keys = array();
foreach ($sprites as $key => $value) {
$keys[] = "'$key'";
}
?>
/**
* Returns an HTML IMG tag for a particular image from a theme,
* which may be an actual file or an icon from a sprite
*
* @param string image The name of the file to get
* @param string alternate Used to set 'alt' and 'title' attributes of the image
* @param object attributes An associative array of other attributes
*
* @return Object The requested image, this object has two methods:
* .toString() - Returns the IMG tag for the requested image
* .attr(name) - Returns a particular attribute of the IMG
* tag given it's name
* .attr(name, value) - Sets a particular attribute of the IMG
* tag to the given value
* And one property:
* .isSprite - Whether the image is a sprite or not
*/
function PMA_getImage(image, alternate, attributes) {
var in_array = function (needle, haystack) {
for (var i in haystack) {
if (haystack[i] == needle) {
return true;
}
}
return false;
};
var sprites = [
<?php echo implode($keys, ",\n ") , "\n"; ?>
];
// custom image object, it will eventually be returned by this functions
var retval = {
data: {
// this is private
alt: '',
title: '',
src: (typeof PMA_TEST_THEME == 'undefined' ? '' : '../')
+ 'themes/dot.gif'
},
isSprite: true,
attr: function (name, value) {
if (value == undefined) {
if (this.data[name] == undefined) {
return '';
} else {
return this.data[name];
}
} else {
this.data[name] = value;
}
},
toString: function () {
var retval = '<' + 'img';
for (var i in this.data) {
retval += ' ' + i + '="' + this.data[i] + '"';
}
retval += ' /' + '>';
return retval;
}
};
// initialise missing parameters
if (attributes == undefined) {
attributes = {};
}
if (alternate == undefined) {
alternate = '';
}
// set alt
if (attributes.alt != undefined) {
retval.attr('alt', escapeHtml(attributes.alt));
} else {
retval.attr('alt', escapeHtml(alternate));
}
// set title
if (attributes.title != undefined) {
retval.attr('title', escapeHtml(attributes.title));
} else {
retval.attr('title', escapeHtml(alternate));
}
// set src
var klass = image.replace('.gif', '').replace('.png', '');
if (in_array(klass, sprites)) {
// it's an icon from a sprite
retval.attr('class', 'icon ic_' + klass);
} else {
// it's an image file
retval.isSprite = false;
retval.attr(
'src',
"<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>" + image
);
}
// set all other attrubutes
for (var i in attributes) {
if (i == 'src') {
// do not allow to override the 'src' attribute
continue;
}
if (i == 'class') {
retval.attr(i, retval.attr('class') + ' ' + attributes[i]);
} else {
retval.attr(i, attributes[i]);
}
}
return retval;
}
//

View File

@ -1,68 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Concatenates several js files to reduce the number of
* http requests sent to the server
*
* @package PhpMyAdmin
*/
if (!defined('TESTSUITE')) {
chdir('..');
// Close session early as we won't write anything there
session_write_close();
// Send correct type
header('Content-Type: text/javascript; charset=UTF-8');
// Enable browser cache for 1 hour
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
// When a token is not presented, even though whitelisted arrays are removed
// in PMA_removeRequestVars(). This is a workaround for that.
$_GET['scripts'] = json_encode($_GET['scripts']);
// Avoid loading the full common.inc.php because this would add many
// non-js-compatible stuff like DOCTYPE
define('PMA_MINIMUM_COMMON', true);
define('PMA_PATH_TO_BASEDIR', '../');
require_once './libraries/common.inc.php';
}
$buffer = PMA\libraries\OutputBuffering::getInstance();
$buffer->start();
if (!defined('TESTSUITE')) {
register_shutdown_function(
function () {
echo PMA\libraries\OutputBuffering::getInstance()->getContents();
}
);
}
$_GET['scripts'] = json_decode($_GET['scripts']);
if (! empty($_GET['scripts']) && is_array($_GET['scripts'])) {
// Only up to 10 scripts as this is what we generate
foreach (array_slice($_GET['scripts'], 0, 10) as $script) {
// Sanitise filename
$script_name = 'js';
$path = explode("/", $script);
foreach ($path as $filename) {
// Allow alphanumeric, "." and "-" chars only, no files starting
// with .
if (preg_match("@^[\w][\w\.-]+$@", $filename)) {
$script_name .= DIRECTORY_SEPARATOR . $filename;
}
}
// Output file contents
if (preg_match("@\.js$@", $script_name) && is_readable($script_name)) {
readfile($script_name);
echo ";\n\n";
}
}
}
if (isset($_GET['call_done'])) {
echo "AJAX.scriptHandler.done();";
}

View File

@ -1,158 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Functions used in the import tab
*
*/
/**
* Toggles the hiding and showing of each plugin's options
* according to the currently selected plugin from the dropdown list
*/
function changePluginOpts()
{
$("#format_specific_opts").find("div.format_specific_options").each(function () {
$(this).hide();
});
var selected_plugin_name = $("#plugins").find("option:selected").val();
$("#" + selected_plugin_name + "_options").fadeIn('slow');
if (selected_plugin_name == "csv") {
$("#import_notification").text(PMA_messages.strImportCSV);
} else {
$("#import_notification").text("");
}
}
/**
* Toggles the hiding and showing of each plugin's options and sets the selected value
* in the plugin dropdown list according to the format of the selected file
*/
function matchFile(fname)
{
var fname_array = fname.toLowerCase().split(".");
var len = fname_array.length;
if (len !== 0) {
var extension = fname_array[len - 1];
if (extension == "gz" || extension == "bz2" || extension == "zip") {
len--;
}
// Only toggle if the format of the file can be imported
if ($("select[name='format'] option").filterByValue(fname_array[len - 1]).length == 1) {
$("select[name='format'] option").filterByValue(fname_array[len - 1]).prop('selected', true);
changePluginOpts();
}
}
}
/**
* Unbind all event handlers before tearing down a page
*/
AJAX.registerTeardown('import.js', function () {
$("#plugins").unbind('change');
$("#input_import_file").unbind('change');
$("#select_local_import_file").unbind('change');
$("#input_import_file").unbind('change').unbind('focus');
$("#select_local_import_file").unbind('focus');
$("#text_csv_enclosed").add("#text_csv_escaped").unbind('keyup');
});
AJAX.registerOnload('import.js', function () {
// import_file_form validation.
$(document).on('submit', '#import_file_form', function (event) {
var radioLocalImport = $("#radio_local_import_file");
var radioImport = $("#radio_import_file");
var fileMsg = '<div class="error"><img src="themes/dot.gif" title="" alt="" class="icon ic_s_error" /> ' + PMA_messages.strImportDialogMessage + '</div>';
if (radioLocalImport.length !== 0) {
// remote upload.
if (radioImport.is(":checked") && $("#input_import_file").val() === '') {
$("#input_import_file").focus();
PMA_ajaxShowMessage(fileMsg, false);
return false;
}
if (radioLocalImport.is(":checked")) {
if ($("#select_local_import_file").length === 0) {
PMA_ajaxShowMessage('<div class="error"><img src="themes/dot.gif" title="" alt="" class="icon ic_s_error" /> ' + PMA_messages.strNoImportFile + ' </div>', false);
return false;
}
if ($("#select_local_import_file").val() === '') {
$("#select_local_import_file").focus();
PMA_ajaxShowMessage(fileMsg, false);
return false;
}
}
} else {
// local upload.
if ($("#input_import_file").val() === '') {
$("#input_import_file").focus();
PMA_ajaxShowMessage(fileMsg, false);
return false;
}
}
// show progress bar.
$("#upload_form_status").css("display", "inline");
$("#upload_form_status_info").css("display", "inline");
});
// Initially display the options for the selected plugin
changePluginOpts();
// Whenever the selected plugin changes, change the options displayed
$("#plugins").change(function () {
changePluginOpts();
});
$("#input_import_file").change(function () {
matchFile($(this).val());
});
$("#select_local_import_file").change(function () {
matchFile($(this).val());
});
/*
* When the "Browse the server" form is clicked or the "Select from the web server upload directory"
* form is clicked, the radio button beside it becomes selected and the other form becomes disabled.
*/
$("#input_import_file").bind("focus change", function () {
$("#radio_import_file").prop('checked', true);
$("#radio_local_import_file").prop('checked', false);
});
$("#select_local_import_file").focus(function () {
$("#radio_local_import_file").prop('checked', true);
$("#radio_import_file").prop('checked', false);
});
/**
* Set up the interface for Javascript-enabled browsers since the default is for
* Javascript-disabled browsers
*/
$("#scroll_to_options_msg").hide();
$("#format_specific_opts").find("div.format_specific_options")
.css({
"border": 0,
"margin": 0,
"padding": 0
})
.find("h3")
.remove();
//$("form[name=import] *").unwrap();
/**
* for input element text_csv_enclosed and text_csv_escaped allow just one character to enter.
* as mysql allows just one character for these fields,
* if first character is escape then allow two including escape character.
*/
$("#text_csv_enclosed").add("#text_csv_escaped").bind('keyup', function() {
if($(this).val().length === 2 && $(this).val().charAt(0) !== "\\") {
$(this).val($(this).val().substring(0, 1));
return false;
}
return true;
});
});

View File

@ -1,540 +0,0 @@
/*!
* jQuery Migrate - v3.0.0 - 2016-06-09
* Copyright jQuery Foundation and other contributors
*/
(function( jQuery, window ) {
"use strict";
jQuery.migrateVersion = "3.0.0";
( function() {
// Support: IE9 only
// IE9 only creates console object when dev tools are first opened
// Also, avoid Function#bind here to simplify PhantomJS usage
var log = window.console && window.console.log &&
function() { window.console.log.apply( window.console, arguments ); },
rbadVersions = /^[12]\./;
if ( !log ) {
return;
}
// Need jQuery 3.0.0+ and no older Migrate loaded
if ( !jQuery || rbadVersions.test( jQuery.fn.jquery ) ) {
log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
}
if ( jQuery.migrateWarnings ) {
log( "JQMIGRATE: Migrate plugin loaded multiple times" );
}
// Show a message on the console so devs know we're active
log( "JQMIGRATE: Migrate is installed" +
( jQuery.migrateMute ? "" : " with logging active" ) +
", version " + jQuery.migrateVersion );
} )();
var warnedAbout = {};
// List of warnings already given; public read only
jQuery.migrateWarnings = [];
// Set to false to disable traces that appear with warnings
if ( jQuery.migrateTrace === undefined ) {
jQuery.migrateTrace = true;
}
// Forget any warnings we've already given; public
jQuery.migrateReset = function() {
warnedAbout = {};
jQuery.migrateWarnings.length = 0;
};
function migrateWarn( msg ) {
var console = window.console;
if ( !warnedAbout[ msg ] ) {
warnedAbout[ msg ] = true;
jQuery.migrateWarnings.push( msg );
if ( console && console.warn && !jQuery.migrateMute ) {
console.warn( "JQMIGRATE: " + msg );
if ( jQuery.migrateTrace && console.trace ) {
console.trace();
}
}
}
}
function migrateWarnProp( obj, prop, value, msg ) {
Object.defineProperty( obj, prop, {
configurable: true,
enumerable: true,
get: function() {
migrateWarn( msg );
return value;
}
} );
}
if ( document.compatMode === "BackCompat" ) {
// JQuery has never supported or tested Quirks Mode
migrateWarn( "jQuery is not compatible with Quirks Mode" );
}
var oldInit = jQuery.fn.init,
oldIsNumeric = jQuery.isNumeric,
oldFind = jQuery.find,
rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
jQuery.fn.init = function( arg1 ) {
var args = Array.prototype.slice.call( arguments );
if ( typeof arg1 === "string" && arg1 === "#" ) {
// JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0
migrateWarn( "jQuery( '#' ) is not a valid selector" );
args[ 0 ] = [];
}
return oldInit.apply( this, args );
};
jQuery.fn.init.prototype = jQuery.fn;
jQuery.find = function( selector ) {
var args = Array.prototype.slice.call( arguments );
// Support: PhantomJS 1.x
// String#match fails to match when used with a //g RegExp, only on some strings
if ( typeof selector === "string" && rattrHashTest.test( selector ) ) {
// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
// First see if qS thinks it's a valid selector, if so avoid a false positive
try {
document.querySelector( selector );
} catch ( err1 ) {
// Didn't *look* valid to qSA, warn and try quoting what we think is the value
selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {
return "[" + attr + op + "\"" + value + "\"]";
} );
// If the regexp *may* have created an invalid selector, don't update it
// Note that there may be false alarms if selector uses jQuery extensions
try {
document.querySelector( selector );
migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
args[ 0 ] = selector;
} catch ( err2 ) {
migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
}
}
}
return oldFind.apply( this, args );
};
// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
var findProp;
for ( findProp in oldFind ) {
if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {
jQuery.find[ findProp ] = oldFind[ findProp ];
}
}
// The number of elements contained in the matched element set
jQuery.fn.size = function() {
migrateWarn( "jQuery.fn.size() is deprecated; use the .length property" );
return this.length;
};
jQuery.parseJSON = function() {
migrateWarn( "jQuery.parseJSON is deprecated; use JSON.parse" );
return JSON.parse.apply( null, arguments );
};
jQuery.isNumeric = function( val ) {
// The jQuery 2.2.3 implementation of isNumeric
function isNumeric2( obj ) {
var realStringObj = obj && obj.toString();
return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
}
var newValue = oldIsNumeric( val ),
oldValue = isNumeric2( val );
if ( newValue !== oldValue ) {
migrateWarn( "jQuery.isNumeric() should not be called on constructed objects" );
}
return oldValue;
};
migrateWarnProp( jQuery, "unique", jQuery.uniqueSort,
"jQuery.unique is deprecated, use jQuery.uniqueSort" );
// Now jQuery.expr.pseudos is the standard incantation
migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos,
"jQuery.expr.filters is now jQuery.expr.pseudos" );
migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos,
"jQuery.expr[\":\"] is now jQuery.expr.pseudos" );
var oldAjax = jQuery.ajax;
jQuery.ajax = function( ) {
var jQXHR = oldAjax.apply( this, arguments );
// Be sure we got a jQXHR (e.g., not sync)
if ( jQXHR.promise ) {
migrateWarnProp( jQXHR, "success", jQXHR.done,
"jQXHR.success is deprecated and removed" );
migrateWarnProp( jQXHR, "error", jQXHR.fail,
"jQXHR.error is deprecated and removed" );
migrateWarnProp( jQXHR, "complete", jQXHR.always,
"jQXHR.complete is deprecated and removed" );
}
return jQXHR;
};
var oldRemoveAttr = jQuery.fn.removeAttr,
oldToggleClass = jQuery.fn.toggleClass,
rmatchNonSpace = /\S+/g;
jQuery.fn.removeAttr = function( name ) {
var self = this;
jQuery.each( name.match( rmatchNonSpace ), function( i, attr ) {
if ( jQuery.expr.match.bool.test( attr ) ) {
migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
self.prop( attr, false );
}
} );
return oldRemoveAttr.apply( this, arguments );
};
jQuery.fn.toggleClass = function( state ) {
// Only deprecating no-args or single boolean arg
if ( state !== undefined && typeof state !== "boolean" ) {
return oldToggleClass.apply( this, arguments );
}
migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" );
// Toggle entire class name of each element
return this.each( function() {
var className = this.getAttribute && this.getAttribute( "class" ) || "";
if ( className ) {
jQuery.data( this, "__className__", className );
}
// If the element has a class name or if we're passed `false`,
// then remove the whole classname (if there was one, the above saved it).
// Otherwise bring back whatever was previously saved (if anything),
// falling back to the empty string if nothing was stored.
if ( this.setAttribute ) {
this.setAttribute( "class",
className || state === false ?
"" :
jQuery.data( this, "__className__" ) || ""
);
}
} );
};
var internalSwapCall = false;
// If this version of jQuery has .swap(), don't false-alarm on internal uses
if ( jQuery.swap ) {
jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) {
var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;
if ( oldHook ) {
jQuery.cssHooks[ name ].get = function() {
var ret;
internalSwapCall = true;
ret = oldHook.apply( this, arguments );
internalSwapCall = false;
return ret;
};
}
} );
}
jQuery.swap = function( elem, options, callback, args ) {
var ret, name,
old = {};
if ( !internalSwapCall ) {
migrateWarn( "jQuery.swap() is undocumented and deprecated" );
}
// Remember the old values, and insert the new ones
for ( name in options ) {
old[ name ] = elem.style[ name ];
elem.style[ name ] = options[ name ];
}
ret = callback.apply( elem, args || [] );
// Revert the old values
for ( name in options ) {
elem.style[ name ] = old[ name ];
}
return ret;
};
var oldData = jQuery.data;
jQuery.data = function( elem, name, value ) {
var curData;
// If the name is transformed, look for the un-transformed name in the data object
if ( name && name !== jQuery.camelCase( name ) ) {
curData = jQuery.hasData( elem ) && oldData.call( this, elem );
if ( curData && name in curData ) {
migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name );
if ( arguments.length > 2 ) {
curData[ name ] = value;
}
return curData[ name ];
}
}
return oldData.apply( this, arguments );
};
var oldTweenRun = jQuery.Tween.prototype.run;
jQuery.Tween.prototype.run = function( percent ) {
if ( jQuery.easing[ this.easing ].length > 1 ) {
migrateWarn(
"easing function " +
"\"jQuery.easing." + this.easing.toString() +
"\" should use only first argument"
);
jQuery.easing[ this.easing ] = jQuery.easing[ this.easing ].bind(
jQuery.easing,
percent, this.options.duration * percent, 0, 1, this.options.duration
);
}
oldTweenRun.apply( this, arguments );
};
var oldLoad = jQuery.fn.load,
originalFix = jQuery.event.fix;
jQuery.event.props = [];
jQuery.event.fixHooks = {};
jQuery.event.fix = function( originalEvent ) {
var event,
type = originalEvent.type,
fixHook = this.fixHooks[ type ],
props = jQuery.event.props;
if ( props.length ) {
migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() );
while ( props.length ) {
jQuery.event.addProp( props.pop() );
}
}
if ( fixHook && !fixHook._migrated_ ) {
fixHook._migrated_ = true;
migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type );
if ( ( props = fixHook.props ) && props.length ) {
while ( props.length ) {
jQuery.event.addProp( props.pop() );
}
}
}
event = originalFix.call( this, originalEvent );
return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
};
jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
jQuery.fn[ name ] = function() {
var args = Array.prototype.slice.call( arguments, 0 );
// If this is an ajax load() the first arg should be the string URL;
// technically this could also be the "Anything" arg of the event .load()
// which just goes to show why this dumb signature has been deprecated!
// jQuery custom builds that exclude the Ajax module justifiably die here.
if ( name === "load" && typeof args[ 0 ] === "string" ) {
return oldLoad.apply( this, args );
}
migrateWarn( "jQuery.fn." + name + "() is deprecated" );
args.splice( 0, 0, name );
if ( arguments.length ) {
return this.on.apply( this, args );
}
// Use .triggerHandler here because:
// - load and unload events don't need to bubble, only applied to window or image
// - error event should not bubble to window, although it does pre-1.7
// See http://bugs.jquery.com/ticket/11820
this.triggerHandler.apply( this, args );
return this;
};
} );
// Trigger "ready" event only once, on document ready
jQuery( function() {
jQuery( document ).triggerHandler( "ready" );
} );
jQuery.event.special.ready = {
setup: function() {
if ( this === document ) {
migrateWarn( "'ready' event is deprecated" );
}
}
};
jQuery.fn.extend( {
bind: function( types, data, fn ) {
migrateWarn( "jQuery.fn.bind() is deprecated" );
return this.on( types, null, data, fn );
},
unbind: function( types, fn ) {
migrateWarn( "jQuery.fn.unbind() is deprecated" );
return this.off( types, null, fn );
},
delegate: function( selector, types, data, fn ) {
migrateWarn( "jQuery.fn.delegate() is deprecated" );
return this.on( types, selector, data, fn );
},
undelegate: function( selector, types, fn ) {
migrateWarn( "jQuery.fn.undelegate() is deprecated" );
return arguments.length === 1 ?
this.off( selector, "**" ) :
this.off( types, selector || "**", fn );
}
} );
var oldOffset = jQuery.fn.offset;
jQuery.fn.offset = function() {
var docElem,
elem = this[ 0 ],
origin = { top: 0, left: 0 };
if ( !elem || !elem.nodeType ) {
migrateWarn( "jQuery.fn.offset() requires a valid DOM element" );
return origin;
}
docElem = ( elem.ownerDocument || document ).documentElement;
if ( !jQuery.contains( docElem, elem ) ) {
migrateWarn( "jQuery.fn.offset() requires an element connected to a document" );
return origin;
}
return oldOffset.apply( this, arguments );
};
var oldParam = jQuery.param;
jQuery.param = function( data, traditional ) {
var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
if ( traditional === undefined && ajaxTraditional ) {
migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
traditional = ajaxTraditional;
}
return oldParam.call( this, data, traditional );
};
var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
jQuery.fn.andSelf = function() {
migrateWarn( "jQuery.fn.andSelf() replaced by jQuery.fn.addBack()" );
return oldSelf.apply( this, arguments );
};
var oldDeferred = jQuery.Deferred,
tuples = [
// Action, add listener, callbacks, .then handlers, final state
[ "resolve", "done", jQuery.Callbacks( "once memory" ),
jQuery.Callbacks( "once memory" ), "resolved" ],
[ "reject", "fail", jQuery.Callbacks( "once memory" ),
jQuery.Callbacks( "once memory" ), "rejected" ],
[ "notify", "progress", jQuery.Callbacks( "memory" ),
jQuery.Callbacks( "memory" ) ]
];
jQuery.Deferred = function( func ) {
var deferred = oldDeferred(),
promise = deferred.promise();
deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
var fns = arguments;
migrateWarn( "deferred.pipe() is deprecated" );
return jQuery.Deferred( function( newDefer ) {
jQuery.each( tuples, function( i, tuple ) {
var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
// Deferred.done(function() { bind to newDefer or newDefer.resolve })
// deferred.fail(function() { bind to newDefer or newDefer.reject })
// deferred.progress(function() { bind to newDefer or newDefer.notify })
deferred[ tuple[ 1 ] ]( function() {
var returned = fn && fn.apply( this, arguments );
if ( returned && jQuery.isFunction( returned.promise ) ) {
returned.promise()
.done( newDefer.resolve )
.fail( newDefer.reject )
.progress( newDefer.notify );
} else {
newDefer[ tuple[ 0 ] + "With" ](
this === promise ? newDefer.promise() : this,
fn ? [ returned ] : arguments
);
}
} );
} );
fns = null;
} ).promise();
};
if ( func ) {
func.call( deferred, deferred );
}
return deferred;
};
})( jQuery, window );

View File

@ -1,91 +0,0 @@
/*jslint browser: true */ /*global jQuery: true */
/**
* jQuery Cookie plugin
*
* Copyright (c) 2010 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
// TODO JsDoc
/**
* Create a cookie with the given key and value and other optional parameters.
*
* @example $.cookie('the_cookie', 'the_value');
* @desc Set the value of a cookie.
* @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
* @desc Create a cookie with all available options.
* @example $.cookie('the_cookie', 'the_value');
* @desc Create a session cookie.
* @example $.cookie('the_cookie', null);
* @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
* used when the cookie was set.
*
* @param String key The key of the cookie.
* @param String value The value of the cookie.
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
* If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
* If set to null or omitted, the cookie will be a session cookie and will not be retained
* when the the browser exits.
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
* require a secure protocol (like HTTPS).
* @type undefined
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
/**
* Get the value of a cookie with the given key.
*
* @example $.cookie('the_cookie');
* @desc Get the value of a cookie.
*
* @param String key The key of the cookie.
* @return The value of the cookie.
* @type String
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
jQuery.cookie = function (key, value, options) {
// key and at least value given, set cookie...
if (arguments.length > 1 && String(value) !== "[object Object]") {
options = jQuery.extend({}, options);
if (value === null || value === undefined) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=',
options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// key and possibly options given, get cookie...
options = value || {};
var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};

File diff suppressed because one or more lines are too long

View File

@ -1,144 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
// global var that holds: 0- if ctrl key is not pressed 1- if ctrl key is pressed
var ctrlKeyHistory = 0;
/**
* Allows moving around inputs/select by Ctrl+arrows
*
* @param object event data
*/
function onKeyDownArrowsHandler(e)
{
e = e || window.event;
var o = (e.srcElement || e.target);
if (!o) {
return;
}
if (o.tagName != "TEXTAREA" && o.tagName != "INPUT" && o.tagName != "SELECT") {
return;
}
if ((e.which != 17) && (e.which != 37) && (e.which != 38) && (e.which != 39) && (e.which !=40)) {
return;
}
if (!o.id) {
return;
}
if (e.type == "keyup") {
if (e.which==17) {
ctrlKeyHistory = 0;
}
return;
}
else if (e.type == "keydown") {
if (e.which == 17) {
ctrlKeyHistory = 1;
}
}
if (ctrlKeyHistory != 1) {
return;
}
e.preventDefault();
var pos = o.id.split("_");
if (pos[0] != "field" || typeof pos[2] == "undefined") {
return;
}
var x = pos[2], y = pos[1];
switch (e.keyCode) {
case 38:
// up
y--;
break;
case 40:
// down
y++;
break;
case 37:
// left
x--;
break;
case 39:
// right
x++;
break;
default:
return;
}
var is_firefox = navigator.userAgent.toLowerCase().indexOf("firefox/") > -1;
var id = "field_" + y + "_" + x;
var nO = document.getElementById(id);
if (! nO) {
id = "field_" + y + "_" + x + "_0";
nO = document.getElementById(id);
}
// skip non existent fields
if (! nO) {
return;
}
// for firefox select tag
var lvalue = o.selectedIndex;
var nOvalue = nO.selectedIndex;
nO.focus();
if (is_firefox) {
var ffcheck = 0;
var ffversion;
for (ffversion = 3 ; ffversion < 25 ; ffversion++) {
var is_firefox_v_24 = navigator.userAgent.toLowerCase().indexOf('firefox/'+ffversion) > -1;
if (is_firefox_v_24) {
ffcheck = 1;
break;
}
}
if (ffcheck == 1) {
if (e.which == 38 || e.which == 37) {
nOvalue++;
}
else if (e.which == 40 || e.which == 39) {
nOvalue--;
}
nO.selectedIndex=nOvalue;
}
else {
if (e.which == 38 || e.which == 37) {
lvalue++;
}
else if (e.which == 40 || e.which == 39) {
lvalue--;
}
o.selectedIndex=lvalue;
}
}
if (nO.tagName != 'SELECT') {
nO.select();
}
e.returnValue = false;
}
AJAX.registerTeardown('keyhandler.js', function () {
$(document).off('keydown keyup', '#table_columns');
$(document).off('keydown keyup', 'table.insertRowTable');
});
AJAX.registerOnload('keyhandler.js', function () {
$(document).on('keydown keyup', '#table_columns', function (event) {
onKeyDownArrowsHandler(event.originalEvent);
});
$(document).on('keydown keyup', 'table.insertRowTable', function (event) {
onKeyDownArrowsHandler(event.originalEvent);
});
});

View File

@ -1,669 +0,0 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* An autogenerated file that stores the line counts of javascript files
*
* @package PhpMyAdmin
*/
if (! defined('PHPMYADMIN')) {
exit;
}
define('LINE_COUNTS', true);
$LINE_COUNT = array();
$LINE_COUNT['server_variables.js'] = 154;
$LINE_COUNT['cross_framing_protection.js'] = 14;
$LINE_COUNT['tbl_zoom_plot_jqplot.js'] = 632;
$LINE_COUNT['tbl_relation.js'] = 239;
$LINE_COUNT['navigation.js'] = 1652;
$LINE_COUNT['sprintf.js'] = 211;
$LINE_COUNT['pmd/designer_objects.js'] = 17;
$LINE_COUNT['pmd/history.js'] = 869;
$LINE_COUNT['pmd/init.js'] = 40;
$LINE_COUNT['pmd/designer_db.js'] = 136;
$LINE_COUNT['pmd/designer_page.js'] = 172;
$LINE_COUNT['pmd/move.js'] = 2090;
$LINE_COUNT['error_report.js'] = 311;
$LINE_COUNT['console.js'] = 1534;
$LINE_COUNT['jqplot/plugins/jqplot.canvasTextRenderer.js'] = 448;
$LINE_COUNT['jqplot/plugins/jqplot.byteFormatter.js'] = 46;
$LINE_COUNT['jqplot/plugins/jqplot.pointLabels.js'] = 379;
$LINE_COUNT['jqplot/plugins/jqplot.dateAxisRenderer.js'] = 741;
$LINE_COUNT['jqplot/plugins/jqplot.canvasAxisLabelRenderer.js'] = 202;
$LINE_COUNT['jqplot/plugins/jqplot.categoryAxisRenderer.js'] = 679;
$LINE_COUNT['jqplot/plugins/jqplot.barRenderer.js'] = 801;
$LINE_COUNT['jqplot/plugins/jqplot.highlighter.js'] = 464;
$LINE_COUNT['jqplot/plugins/jqplot.cursor.js'] = 1108;
$LINE_COUNT['jqplot/plugins/jqplot.pieRenderer.js'] = 945;
$LINE_COUNT['jqplot/jquery.jqplot.js'] = 11477;
$LINE_COUNT['keyhandler.js'] = 144;
$LINE_COUNT['common.js'] = 550;
$LINE_COUNT['server_status_variables.js'] = 101;
$LINE_COUNT['db_tracking.js'] = 93;
$LINE_COUNT['server_status_advisor.js'] = 99;
$LINE_COUNT['page_settings.js'] = 59;
$LINE_COUNT['import.js'] = 158;
$LINE_COUNT['tbl_structure.js'] = 533;
$LINE_COUNT['indexes.js'] = 760;
$LINE_COUNT['server_status_sorter.js'] = 69;
$LINE_COUNT['server_privileges.js'] = 478;
$LINE_COUNT['tbl_operations.js'] = 314;
$LINE_COUNT['server_status_processes.js'] = 188;
$LINE_COUNT['menu-resizer.js'] = 183;
$LINE_COUNT['gis_data_editor.js'] = 399;
$LINE_COUNT['functions.js'] = 5067;
$LINE_COUNT['db_central_columns.js'] = 238;
$LINE_COUNT['codemirror/addon/runmode/runmode.js'] = 72;
$LINE_COUNT['codemirror/addon/lint/sql-lint.js'] = 40;
$LINE_COUNT['codemirror/addon/lint/lint.js'] = 239;
$LINE_COUNT['codemirror/addon/hint/show-hint.js'] = 438;
$LINE_COUNT['codemirror/addon/hint/sql-hint.js'] = 271;
$LINE_COUNT['codemirror/mode/javascript/javascript.js'] = 795;
$LINE_COUNT['codemirror/mode/xml/xml.js'] = 394;
$LINE_COUNT['codemirror/mode/sql/sql.js'] = 413;
$LINE_COUNT['codemirror/lib/codemirror.js'] = 9112;
$LINE_COUNT['replication.js'] = 94;
$LINE_COUNT['db_operations.js'] = 162;
$LINE_COUNT['server_plugins.js'] = 16;
$LINE_COUNT['makegrid.js'] = 2286;
$LINE_COUNT['tbl_gis_visualization.js'] = 365;
$LINE_COUNT['server_status_queries.js'] = 34;
$LINE_COUNT['jquery/jquery.mousewheel.js'] = 221;
$LINE_COUNT['jquery/jquery.debounce-1.0.5.js'] = 70;
$LINE_COUNT['jquery/jquery-ui.min.js'] = 13;
$LINE_COUNT['jquery/jquery.svg.js'] = 1352;
$LINE_COUNT['jquery/jquery.min.js'] = 4;
$LINE_COUNT['jquery/jquery.ba-hashchange-1.3.js'] = 390;
$LINE_COUNT['jquery/src/jquery-ui/tabbable.js'] = 35;
$LINE_COUNT['jquery/src/jquery-ui/core.js'] = 21;
$LINE_COUNT['jquery/src/jquery-ui/ie.js'] = 15;
$LINE_COUNT['jquery/src/jquery-ui/plugin.js'] = 44;
$LINE_COUNT['jquery/src/jquery-ui/position.js'] = 498;
$LINE_COUNT['jquery/src/jquery-ui/widgets/resizable.js'] = 1201;
$LINE_COUNT['jquery/src/jquery-ui/widgets/droppable.js'] = 497;
$LINE_COUNT['jquery/src/jquery-ui/widgets/dialog.js'] = 940;
$LINE_COUNT['jquery/src/jquery-ui/widgets/selectable.js'] = 310;
$LINE_COUNT['jquery/src/jquery-ui/widgets/mouse.js'] = 226;
$LINE_COUNT['jquery/src/jquery-ui/widgets/datepicker.js'] = 2120;
$LINE_COUNT['jquery/src/jquery-ui/widgets/autocomplete.js'] = 682;
$LINE_COUNT['jquery/src/jquery-ui/widgets/tabs.js'] = 924;
$LINE_COUNT['jquery/src/jquery-ui/widgets/checkboxradio.js'] = 286;
$LINE_COUNT['jquery/src/jquery-ui/widgets/draggable.js'] = 1250;
$LINE_COUNT['jquery/src/jquery-ui/widgets/progressbar.js'] = 178;
$LINE_COUNT['jquery/src/jquery-ui/widgets/spinner.js'] = 575;
$LINE_COUNT['jquery/src/jquery-ui/widgets/menu.js'] = 673;
$LINE_COUNT['jquery/src/jquery-ui/widgets/selectmenu.js'] = 687;
$LINE_COUNT['jquery/src/jquery-ui/widgets/sortable.js'] = 1554;
$LINE_COUNT['jquery/src/jquery-ui/widgets/slider.js'] = 752;
$LINE_COUNT['jquery/src/jquery-ui/widgets/button.js'] = 386;
$LINE_COUNT['jquery/src/jquery-ui/widgets/controlgroup.js'] = 298;
$LINE_COUNT['jquery/src/jquery-ui/widgets/accordion.js'] = 613;
$LINE_COUNT['jquery/src/jquery-ui/widgets/tooltip.js'] = 520;
$LINE_COUNT['jquery/src/jquery-ui/safe-active-element.js'] = 40;
$LINE_COUNT['jquery/src/jquery-ui/jquery-1-7.js'] = 89;
$LINE_COUNT['jquery/src/jquery-ui/data.js'] = 39;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-bounce.js'] = 110;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-shake.js'] = 74;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-clip.js'] = 65;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-explode.js'] = 111;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-highlight.js'] = 57;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-drop.js'] = 69;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-transfer.js'] = 40;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-blind.js'] = 70;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-fade.js'] = 47;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-scale.js'] = 56;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-size.js'] = 191;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-pulsate.js'] = 64;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-puff.js'] = 42;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-fold.js'] = 89;
$LINE_COUNT['jquery/src/jquery-ui/effects/effect-slide.js'] = 76;
$LINE_COUNT['jquery/src/jquery-ui/disable-selection.js'] = 46;
$LINE_COUNT['jquery/src/jquery-ui/unique-id.js'] = 49;
$LINE_COUNT['jquery/src/jquery-ui/keycode.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/safe-blur.js'] = 21;
$LINE_COUNT['jquery/src/jquery-ui/form.js'] = 20;
$LINE_COUNT['jquery/src/jquery-ui/effect.js'] = 1635;
$LINE_COUNT['jquery/src/jquery-ui/scroll-parent.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/labels.js'] = 62;
$LINE_COUNT['jquery/src/jquery-ui/version.js'] = 17;
$LINE_COUNT['jquery/src/jquery-ui/escape-selector.js'] = 21;
$LINE_COUNT['jquery/src/jquery-ui/widget.js'] = 733;
$LINE_COUNT['jquery/src/jquery-ui/form-reset-mixin.js'] = 77;
$LINE_COUNT['jquery/src/jquery-ui/focusable.js'] = 84;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-bg.js'] = 38;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-zh-TW.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-lb.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-tj.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-fi.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-sr.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-cy-GB.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-uk.js'] = 38;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ko.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ru.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-sk.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-he.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ca.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-id.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-sl.js'] = 38;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-km.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-hr.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-en-GB.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ka.js'] = 48;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ms.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-af.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ml.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-zh-CN.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-it.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-hi.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-tr.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-en-NZ.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-hy.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-eu.js'] = 36;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-fa.js'] = 73;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-gl.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ro.js'] = 40;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-de.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-el.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-pt-BR.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-lv.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-fr-CA.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-da.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ky.js'] = 38;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-th.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ta.js'] = 53;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-fr-CH.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-es.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ja.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-bs.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-no.js'] = 50;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-zh-HK.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-lt.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-nl-BE.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-sq.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-cs.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-sv.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-nb.js'] = 49;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-nn.js'] = 49;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-kk.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ar-DZ.js'] = 39;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-be.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-az.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-hu.js'] = 36;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-nl.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-fo.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-eo.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-ar.js'] = 39;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-en-AU.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-pt.js'] = 44;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-sr-SR.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-rm.js'] = 61;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-pl.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-fr.js'] = 39;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-it-CH.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-mk.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-vi.js'] = 37;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-et.js'] = 45;
$LINE_COUNT['jquery/src/jquery-ui/i18n/datepicker-is.js'] = 45;
$LINE_COUNT['jquery/src/jquery/core.js'] = 482;
$LINE_COUNT['jquery/src/jquery/css/var/getStyles.js'] = 17;
$LINE_COUNT['jquery/src/jquery/css/var/rmargin.js'] = 5;
$LINE_COUNT['jquery/src/jquery/css/var/cssExpand.js'] = 5;
$LINE_COUNT['jquery/src/jquery/css/var/rnumnonpx.js'] = 7;
$LINE_COUNT['jquery/src/jquery/css/var/swap.js'] = 26;
$LINE_COUNT['jquery/src/jquery/css/var/isHiddenWithinTree.js'] = 34;
$LINE_COUNT['jquery/src/jquery/css/hiddenVisibleSelectors.js'] = 15;
$LINE_COUNT['jquery/src/jquery/css/adjustCSS.js'] = 71;
$LINE_COUNT['jquery/src/jquery/css/support.js'] = 89;
$LINE_COUNT['jquery/src/jquery/css/showHide.js'] = 105;
$LINE_COUNT['jquery/src/jquery/css/addGetHookIf.js'] = 26;
$LINE_COUNT['jquery/src/jquery/css/curCSS.js'] = 59;
$LINE_COUNT['jquery/src/jquery/deprecated.js'] = 30;
$LINE_COUNT['jquery/src/jquery/wrap.js'] = 77;
$LINE_COUNT['jquery/src/jquery/jquery.js'] = 41;
$LINE_COUNT['jquery/src/jquery/data/Data.js'] = 161;
$LINE_COUNT['jquery/src/jquery/data/var/dataUser.js'] = 7;
$LINE_COUNT['jquery/src/jquery/data/var/dataPriv.js'] = 7;
$LINE_COUNT['jquery/src/jquery/data/var/acceptData.js'] = 19;
$LINE_COUNT['jquery/src/jquery/css.js'] = 426;
$LINE_COUNT['jquery/src/jquery/selector.js'] = 3;
$LINE_COUNT['jquery/src/jquery/event/trigger.js'] = 185;
$LINE_COUNT['jquery/src/jquery/event/alias.js'] = 29;
$LINE_COUNT['jquery/src/jquery/event/support.js'] = 11;
$LINE_COUNT['jquery/src/jquery/event/focusin.js'] = 55;
$LINE_COUNT['jquery/src/jquery/event/ajax.js'] = 22;
$LINE_COUNT['jquery/src/jquery/offset.js'] = 232;
$LINE_COUNT['jquery/src/jquery/manipulation.js'] = 486;
$LINE_COUNT['jquery/src/jquery/var/fnToString.js'] = 7;
$LINE_COUNT['jquery/src/jquery/var/hasOwn.js'] = 7;
$LINE_COUNT['jquery/src/jquery/var/slice.js'] = 7;
$LINE_COUNT['jquery/src/jquery/var/rcssNum.js'] = 9;
$LINE_COUNT['jquery/src/jquery/var/rnothtmlwhite.js'] = 8;
$LINE_COUNT['jquery/src/jquery/var/toString.js'] = 7;
$LINE_COUNT['jquery/src/jquery/var/arr.js'] = 5;
$LINE_COUNT['jquery/src/jquery/var/class2type.js'] = 6;
$LINE_COUNT['jquery/src/jquery/var/indexOf.js'] = 7;
$LINE_COUNT['jquery/src/jquery/var/ObjectFunctionString.js'] = 7;
$LINE_COUNT['jquery/src/jquery/var/support.js'] = 6;
$LINE_COUNT['jquery/src/jquery/var/documentElement.js'] = 7;
$LINE_COUNT['jquery/src/jquery/var/getProto.js'] = 5;
$LINE_COUNT['jquery/src/jquery/var/document.js'] = 5;
$LINE_COUNT['jquery/src/jquery/var/push.js'] = 7;
$LINE_COUNT['jquery/src/jquery/var/pnum.js'] = 5;
$LINE_COUNT['jquery/src/jquery/var/concat.js'] = 7;
$LINE_COUNT['jquery/src/jquery/queue.js'] = 145;
$LINE_COUNT['jquery/src/jquery/deferred.js'] = 389;
$LINE_COUNT['jquery/src/jquery/traversing.js'] = 178;
$LINE_COUNT['jquery/src/jquery/deferred/exceptionHook.js'] = 21;
$LINE_COUNT['jquery/src/jquery/data.js'] = 179;
$LINE_COUNT['jquery/src/jquery/effects/Tween.js'] = 123;
$LINE_COUNT['jquery/src/jquery/effects/animatedSelector.js'] = 15;
$LINE_COUNT['jquery/src/jquery/dimensions.js'] = 56;
$LINE_COUNT['jquery/src/jquery/effects.js'] = 693;
$LINE_COUNT['jquery/src/jquery/manipulation/buildFragment.js'] = 104;
$LINE_COUNT['jquery/src/jquery/manipulation/wrapMap.js'] = 29;
$LINE_COUNT['jquery/src/jquery/manipulation/var/rcheckableType.js'] = 5;
$LINE_COUNT['jquery/src/jquery/manipulation/var/rtagName.js'] = 5;
$LINE_COUNT['jquery/src/jquery/manipulation/var/rscriptType.js'] = 5;
$LINE_COUNT['jquery/src/jquery/manipulation/setGlobalEval.js'] = 22;
$LINE_COUNT['jquery/src/jquery/manipulation/getAll.js'] = 31;
$LINE_COUNT['jquery/src/jquery/manipulation/support.js'] = 35;
$LINE_COUNT['jquery/src/jquery/manipulation/_evalUrl.js'] = 23;
$LINE_COUNT['jquery/src/jquery/traversing/var/rneedsContext.js'] = 8;
$LINE_COUNT['jquery/src/jquery/traversing/var/dir.js'] = 22;
$LINE_COUNT['jquery/src/jquery/traversing/var/siblings.js'] = 17;
$LINE_COUNT['jquery/src/jquery/traversing/findFilter.js'] = 106;
$LINE_COUNT['jquery/src/jquery/serialize.js'] = 130;
$LINE_COUNT['jquery/src/jquery/queue/delay.js'] = 24;
$LINE_COUNT['jquery/src/jquery/event.js'] = 745;
$LINE_COUNT['jquery/src/jquery/selector-sizzle.js'] = 19;
$LINE_COUNT['jquery/src/jquery/attributes/attr.js'] = 140;
$LINE_COUNT['jquery/src/jquery/attributes/prop.js'] = 143;
$LINE_COUNT['jquery/src/jquery/attributes/val.js'] = 188;
$LINE_COUNT['jquery/src/jquery/attributes/support.js'] = 33;
$LINE_COUNT['jquery/src/jquery/attributes/classes.js'] = 174;
$LINE_COUNT['jquery/src/jquery/callbacks.js'] = 234;
$LINE_COUNT['jquery/src/jquery/ajax/parseXML.js'] = 30;
$LINE_COUNT['jquery/src/jquery/ajax/var/nonce.js'] = 7;
$LINE_COUNT['jquery/src/jquery/ajax/var/rquery.js'] = 5;
$LINE_COUNT['jquery/src/jquery/ajax/var/location.js'] = 5;
$LINE_COUNT['jquery/src/jquery/ajax/xhr.js'] = 169;
$LINE_COUNT['jquery/src/jquery/ajax/jsonp.js'] = 102;
$LINE_COUNT['jquery/src/jquery/ajax/script.js'] = 77;
$LINE_COUNT['jquery/src/jquery/ajax/load.js'] = 76;
$LINE_COUNT['jquery/src/jquery/exports/amd.js'] = 26;
$LINE_COUNT['jquery/src/jquery/exports/global.js'] = 34;
$LINE_COUNT['jquery/src/jquery/selector-native.js'] = 237;
$LINE_COUNT['jquery/src/jquery/core/init.js'] = 127;
$LINE_COUNT['jquery/src/jquery/core/ready-no-deferred.js'] = 105;
$LINE_COUNT['jquery/src/jquery/core/ready.js'] = 95;
$LINE_COUNT['jquery/src/jquery/core/var/rsingleTag.js'] = 6;
$LINE_COUNT['jquery/src/jquery/core/support.js'] = 20;
$LINE_COUNT['jquery/src/jquery/core/access.js'] = 70;
$LINE_COUNT['jquery/src/jquery/core/DOMEval.js'] = 16;
$LINE_COUNT['jquery/src/jquery/core/readyException.js'] = 13;
$LINE_COUNT['jquery/src/jquery/core/parseHTML.js'] = 65;
$LINE_COUNT['jquery/src/jquery/core/stripAndCollapse.js'] = 14;
$LINE_COUNT['jquery/src/jquery/attributes.js'] = 13;
$LINE_COUNT['jquery/src/jquery/ajax.js'] = 855;
$LINE_COUNT['jquery/jquery.sortableTable.js'] = 271;
$LINE_COUNT['jquery/jquery.fullscreen.js'] = 184;
$LINE_COUNT['jquery/jquery.cookie.js'] = 91;
$LINE_COUNT['jquery/jquery.tablesorter.js'] = 1032;
$LINE_COUNT['jquery/jquery.event.drag-2.2.js'] = 401;
$LINE_COUNT['jquery/jquery-ui-timepicker-addon.js'] = 2291;
$LINE_COUNT['jquery/additional-methods.js'] = 1068;
$LINE_COUNT['jquery/jquery-migrate-3.0.0.js'] = 540;
$LINE_COUNT['jquery/jquery.validate.js'] = 1573;
$LINE_COUNT['jquery/jquery.uitablefilter.js'] = 117;
$LINE_COUNT['db_search.js'] = 248;
$LINE_COUNT['rte.js'] = 1087;
$LINE_COUNT['transformations/image_upload.js'] = 28;
$LINE_COUNT['transformations/sql_editor.js'] = 12;
$LINE_COUNT['transformations/json_editor.js'] = 17;
$LINE_COUNT['transformations/xml_editor.js'] = 16;
$LINE_COUNT['transformations/json.js'] = 17;
$LINE_COUNT['transformations/xml.js'] = 18;
$LINE_COUNT['normalization.js'] = 710;
$LINE_COUNT['microhistory.js'] = 332;
$LINE_COUNT['server_user_groups.js'] = 42;
$LINE_COUNT['export.js'] = 863;
$LINE_COUNT['zxcvbn.js'] = 28;
$LINE_COUNT['sql.js'] = 922;
$LINE_COUNT['tbl_find_replace.js'] = 47;
$LINE_COUNT['multi_column_sort.js'] = 81;
$LINE_COUNT['doclinks.js'] = 365;
$LINE_COUNT['server_status_monitor.js'] = 2167;
$LINE_COUNT['server_databases.js'] = 183;
$LINE_COUNT['shortcuts_handler.js'] = 112;
$LINE_COUNT['tbl_tracking.js'] = 109;
$LINE_COUNT['config.js'] = 879;
$LINE_COUNT['tbl_select.js'] = 409;
$LINE_COUNT['tbl_chart.js'] = 415;
$LINE_COUNT['tbl_change.js'] = 725;
$LINE_COUNT['db_structure.js'] = 457;
$LINE_COUNT['tracekit/tracekit.js'] = 1244;
$LINE_COUNT['chart.js'] = 664;
$LINE_COUNT['openlayers/src/openlayers/lib/deprecated.js'] = 5842;
$LINE_COUNT['openlayers/src/openlayers/lib/Rico/Color.js'] = 253;
$LINE_COUNT['openlayers/src/openlayers/lib/Rico/license.js'] = 19;
$LINE_COUNT['openlayers/src/openlayers/lib/Rico/Corner.js'] = 339;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers.js'] = 429;
$LINE_COUNT['openlayers/src/openlayers/lib/Firebug/firebugx.js'] = 10;
$LINE_COUNT['openlayers/src/openlayers/lib/Firebug/firebug.js'] = 674;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control.js'] = 371;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Tween.js'] = 361;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/pl.js'] = 88;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/sk.js'] = 44;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/hr.js'] = 37;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/gl.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/pt.js'] = 55;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/oc.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/cs-CZ.js'] = 45;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/pt-BR.js'] = 54;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/fur.js'] = 35;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/es.js'] = 90;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/br.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/fr.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/nn.js'] = 19;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/lt.js'] = 47;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/ar.js'] = 32;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/vi.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/zh-CN.js'] = 80;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/zh-TW.js'] = 81;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/km.js'] = 23;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/ru.js'] = 56;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/ca.js'] = 89;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/hsb.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/en-CA.js'] = 21;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/bg.js'] = 25;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/fi.js'] = 32;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/is.js'] = 27;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/gsw.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/hu.js'] = 54;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/ia.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/io.js'] = 19;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/sv-SE.js'] = 45;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/de.js'] = 55;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/nb.js'] = 82;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/ja.js'] = 54;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/id.js'] = 54;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/ksh.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/el.js'] = 19;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/be-tarask.js'] = 54;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/it.js'] = 80;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/da-DK.js'] = 80;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/nl.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/te.js'] = 27;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/en.js'] = 89;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/ro.js'] = 69;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang/nds.js'] = 37;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/LineString.js'] = 646;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/Curve.js'] = 89;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/Point.js'] = 283;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/Polygon.js'] = 255;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/Collection.js'] = 563;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/MultiPolygon.js'] = 42;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/LinearRing.js'] = 433;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/MultiPoint.js'] = 66;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry/MultiLineString.js'] = 258;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Marker.js'] = 241;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Feature.js'] = 225;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Util/vendorPrefix.js'] = 130;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/ScaleLine.js'] = 220;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/TransformFeature.js'] = 624;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Panel.js'] = 431;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/MousePosition.js'] = 227;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/CacheWrite.js'] = 257;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js'] = 532;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/EditingToolbar.js'] = 81;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/KeyboardDefaults.js'] = 142;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/PinchZoom.js'] = 157;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/SLDSelect.js'] = 567;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/SelectFeature.js'] = 643;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Attribution.js'] = 104;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Snapping.js'] = 560;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/ZoomBox.js'] = 129;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Permalink.js'] = 257;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Zoom.js'] = 138;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/ZoomPanel.js'] = 54;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Graticule.js'] = 377;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/NavigationHistory.js'] = 423;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/WMTSGetFeatureInfo.js'] = 400;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/PanZoomBar.js'] = 407;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/UTFGrid.js'] = 240;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/DrawFeature.js'] = 229;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Scale.js'] = 100;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Geolocate.js'] = 192;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/ModifyFeature.js'] = 835;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Navigation.js'] = 345;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/GetFeature.js'] = 597;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/NavToolbar.js'] = 57;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/DragFeature.js'] = 366;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/ArgParser.js'] = 182;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/PanZoom.js'] = 233;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/DragPan.js'] = 156;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Button.js'] = 44;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/ZoomToMaxExtent.js'] = 35;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/ZoomOut.js'] = 29;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/LayerSwitcher.js'] = 521;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/PanPanel.js'] = 73;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/ZoomIn.js'] = 29;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/TouchNavigation.js'] = 182;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/OverviewMap.js'] = 750;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Measure.js'] = 379;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Split.js'] = 494;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/Pan.js'] = 95;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Control/CacheRead.js'] = 156;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/StyleMap.js'] = 161;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Marker/Box.js'] = 120;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/WPSClient.js'] = 223;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/WorldWind.js'] = 105;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/PointGrid.js'] = 299;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/SphericalMercator.js'] = 146;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/OSM.js'] = 123;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Vector/RootContainer.js'] = 154;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/MapGuide.js'] = 443;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/PointTrack.js'] = 125;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/KaMapCache.js'] = 143;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Image.js'] = 259;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Boxes.js'] = 76;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/FixedZoomLevels.js'] = 319;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/KaMap.js'] = 192;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Grid.js'] = 1343;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/MapServer.js'] = 181;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/TileCache.js'] = 140;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/ArcGIS93Rest.js'] = 225;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/ArcIMS.js'] = 425;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/WMS.js'] = 267;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Bing.js'] = 333;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/UTFGrid.js'] = 184;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Vector.js'] = 1007;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Text.js'] = 267;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/EventPane.js'] = 441;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/TMS.js'] = 202;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Google/v3.js'] = 351;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/HTTPRequest.js'] = 230;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/ArcGISCache.js'] = 480;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/WMTS.js'] = 510;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/XYZ.js'] = 172;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Google.js'] = 809;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Markers.js'] = 187;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/Zoomify.js'] = 260;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer/GeoRSS.js'] = 265;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol.js'] = 291;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Layer.js'] = 1377;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Symbolizer.js'] = 55;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Projection.js'] = 322;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler.js'] = 325;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Lang.js'] = 134;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Popup.js'] = 1065;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/TileManager.js'] = 462;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Symbolizer/Line.js'] = 74;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Symbolizer/Point.js'] = 157;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Symbolizer/Polygon.js'] = 88;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Symbolizer/Raster.js'] = 34;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Symbolizer/Text.js'] = 70;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format.js'] = 123;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Style2.js'] = 112;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/SingleFile.js'] = 78;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/BaseTypes/Size.js'] = 89;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/BaseTypes/Pixel.js'] = 143;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/BaseTypes/Bounds.js'] = 837;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/BaseTypes/Class.js'] = 121;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/BaseTypes/LonLat.js'] = 215;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/BaseTypes/Date.js'] = 123;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/BaseTypes/Element.js'] = 189;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Kinetic.js'] = 178;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Spherical.js'] = 67;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Map.js'] = 2867;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js'] = 595;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js'] = 104;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMC/v1.js'] = 1267;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js'] = 149;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/SOSCapabilities.js'] = 48;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js'] = 199;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/CSWGetRecords.js'] = 34;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js'] = 251;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/CQL.js'] = 452;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js'] = 170;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js'] = 54;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js'] = 109;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/ArcXML/Features.js'] = 46;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js'] = 296;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/Atom.js'] = 712;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/OSM.js'] = 465;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/GeoJSON.js'] = 716;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/ArcXML.js'] = 1028;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/CSWGetDomain.js'] = 34;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMC.js'] = 182;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js'] = 230;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/Context.js'] = 334;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/QueryStringFilter.js'] = 183;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/JSON.js'] = 398;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/XLS.js'] = 68;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js'] = 190;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/XLS/v1.js'] = 304;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js'] = 48;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js'] = 122;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/SLD.js'] = 81;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/GPX.js'] = 385;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WCSCapabilities.js'] = 47;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/OWSCommon.js'] = 78;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js'] = 185;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js'] = 30;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js'] = 60;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js'] = 368;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js'] = 85;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js'] = 122;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js'] = 57;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js'] = 128;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js'] = 108;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/SOSGetObservation.js'] = 302;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js'] = 119;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js'] = 212;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js'] = 234;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/Text.js'] = 151;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js'] = 46;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js'] = 149;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/SLD/v1.js'] = 1309;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/GML/Base.js'] = 645;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/GML/v3.js'] = 477;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/GML/v2.js'] = 193;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/EncodedPolyline.js'] = 557;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WPSCapabilities.js'] = 48;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/GML.js'] = 923;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/Filter.js'] = 53;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js'] = 457;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFSCapabilities.js'] = 47;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WKT.js'] = 392;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/XML.js'] = 897;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFS.js'] = 223;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WPSExecute.js'] = 395;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js'] = 174;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFST/v1.js'] = 446;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js'] = 189;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFST.js'] = 34;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/OWSContext.js'] = 86;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/KML.js'] = 1517;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js'] = 240;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js'] = 158;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js'] = 62;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js'] = 318;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js'] = 116;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js'] = 115;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js'] = 129;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js'] = 63;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/WMSCapabilities.js'] = 56;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js'] = 183;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/Filter/v1.js'] = 504;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js'] = 222;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Format/GeoRSS.js'] = 409;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Geometry.js'] = 500;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Renderer/SVG.js'] = 1012;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Renderer/Elements.js'] = 1053;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Renderer/VML.js'] = 985;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Renderer/Canvas.js'] = 906;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Console.js'] = 250;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/CSW.js'] = 30;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/HTTP.js'] = 580;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/Script.js'] = 377;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/CSW/v2_0_2.js'] = 127;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/WFS/v1_0_0.js'] = 44;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/WFS/v1.js'] = 453;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/WFS/v1_1_0.js'] = 68;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/WFS.js'] = 86;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/SOS.js'] = 33;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Protocol/SOS/v1_0_0.js'] = 133;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/BaseTypes.js'] = 463;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Filter.js'] = 87;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/WPSProcess.js'] = 501;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Animation.js'] = 102;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Strategy/Save.js'] = 231;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Strategy/Refresh.js'] = 141;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Strategy/Cluster.js'] = 283;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Strategy/BBOX.js'] = 290;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Strategy/Filter.js'] = 159;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Strategy/Paging.js'] = 233;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Strategy/Fixed.js'] = 135;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Renderer.js'] = 432;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Events/featureclick.js'] = 321;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Events/buttonclick.js'] = 206;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Tile/Image.js'] = 510;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Tile/UTFGrid.js'] = 252;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Tile/Image/IFrame.js'] = 233;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Strategy.js'] = 121;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Util.js'] = 1773;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Request/XMLHttpRequest.js'] = 458;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Style.js'] = 448;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Request.js'] = 429;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Popup/Anchored.js'] = 195;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Popup/FramedCloud.js'] = 227;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Popup/Framed.js'] = 343;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Rule.js'] = 235;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Icon.js'] = 243;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Events.js'] = 1170;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/RegularPolygon.js'] = 429;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Feature.js'] = 434;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Point.js'] = 556;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Polygon.js'] = 305;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/MouseWheel.js'] = 264;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Drag.js'] = 547;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Keyboard.js'] = 117;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Box.js'] = 244;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Click.js'] = 505;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Path.js'] = 543;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Hover.js'] = 180;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Handler/Pinch.js'] = 239;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Filter/Comparison.js'] = 267;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Filter/Logical.js'] = 121;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Filter/Spatial.js'] = 122;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Filter/FeatureId.js'] = 87;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Filter/Function.js'] = 49;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Feature/Vector.js'] = 510;
$LINE_COUNT['openlayers/src/openlayers/lib/OpenLayers/Tile.js'] = 292;
$LINE_COUNT['openlayers/OpenLayers.js'] = 1443;
$LINE_COUNT['db_qbe.js'] = 76;
$LINE_COUNT['ajax.js'] = 797;

View File

@ -1,183 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Handles the resizing of a menu according to the available screen width
*
* Uses themes/original/css/resizable-menu.css.php
*
* To initialise:
* $('#myMenu').menuResizer(function () {
* // This function will be called to find out how much
* // available horizontal space there is for the menu
* return $('body').width() - 5; // Some extra margin for good measure
* });
*
* To trigger a resize operation:
* $('#myMenu').menuResizer('resize'); // Bind this to $(window).resize()
*
* To restore the menu to a state like before it was initialized:
* $('#myMenu').menuResizer('destroy');
*
* @package PhpMyAdmin
*/
(function ($) {
function MenuResizer($container, widthCalculator) {
var self = this;
self.$container = $container;
self.widthCalculator = widthCalculator;
// create submenu container
var link = $('<a />', {href: '#', 'class': 'tab nowrap'})
.text(PMA_messages.strMore)
.bind('click', false); // same as event.preventDefault()
var img = $container.find('li img');
if (img.length) {
$(PMA_getImage('b_more.png').toString()).prependTo(link);
}
var $submenu = $('<li />', {'class': 'submenu'})
.append(link)
.append($('<ul />'))
.mouseenter(function() {
if ($(this).find('ul .tabactive').length === 0) {
$(this)
.addClass('submenuhover')
.find('> a')
.addClass('tabactive');
}
})
.mouseleave(function() {
if ($(this).find('ul .tabactive').length === 0) {
$(this)
.removeClass('submenuhover')
.find('> a')
.removeClass('tabactive');
}
});
$container.children('.clearfloat').remove();
$container.append($submenu).append("<div class='clearfloat'></div>");
setTimeout(function () {
self.resize();
}, 4);
}
MenuResizer.prototype.resize = function () {
var wmax = this.widthCalculator.call(this.$container);
var $submenu = this.$container.find('.submenu:last');
var submenu_w = $submenu.outerWidth(true);
var $submenu_ul = $submenu.find('ul');
var $li = this.$container.find('> li');
var $li2 = $submenu_ul.find('li');
var more_shown = $li2.length > 0;
// Calculate the total width used by all the shown tabs
var total_len = more_shown ? submenu_w : 0;
var l = $li.length - 1;
var i;
for (i = 0; i < l; i++) {
total_len += $($li[i]).outerWidth(true);
}
// Now hide menu elements that don't fit into the menubar
var hidden = false; // Whether we have hidden any tabs
while (total_len >= wmax && --l >= 0) { // Process the tabs backwards
hidden = true;
var el = $($li[l]);
var el_width = el.outerWidth(true);
el.data('width', el_width);
if (! more_shown) {
total_len -= el_width;
el.prependTo($submenu_ul);
total_len += submenu_w;
more_shown = true;
} else {
total_len -= el_width;
el.prependTo($submenu_ul);
}
}
// If we didn't hide any tabs, then there might be some space to show some
if (! hidden) {
// Show menu elements that do fit into the menubar
for (i = 0, l = $li2.length; i < l; i++) {
total_len += $($li2[i]).data('width');
// item fits or (it is the last item
// and it would fit if More got removed)
if (total_len < wmax ||
(i == $li2.length - 1 && total_len - submenu_w < wmax)
) {
$($li2[i]).insertBefore($submenu);
} else {
break;
}
}
}
// Show/hide the "More" tab as needed
if ($submenu_ul.find('li').length > 0) {
$submenu.addClass('shown');
} else {
$submenu.removeClass('shown');
}
if (this.$container.find('> li').length == 1) {
// If there is only the "More" tab left, then we need
// to align the submenu to the left edge of the tab
$submenu_ul.removeClass().addClass('only');
} else {
// Otherwise we align the submenu to the right edge of the tab
$submenu_ul.removeClass().addClass('notonly');
}
if ($submenu.find('.tabactive').length) {
$submenu
.addClass('active')
.find('> a')
.removeClass('tab')
.addClass('tabactive');
} else {
$submenu
.removeClass('active')
.find('> a')
.addClass('tab')
.removeClass('tabactive');
}
};
MenuResizer.prototype.destroy = function () {
var $submenu = this.$container.find('li.submenu').removeData();
$submenu.find('li').appendTo(this.$container);
$submenu.remove();
};
/** Public API */
var methods = {
init: function(widthCalculator) {
return this.each(function () {
var $this = $(this);
if (! $this.data('menuResizer')) {
$this.data(
'menuResizer',
new MenuResizer($this, widthCalculator)
);
}
});
},
resize: function () {
return this.each(function () {
var self = $(this).data('menuResizer');
if (self) {
self.resize();
}
});
},
destroy: function () {
return this.each(function () {
var self = $(this).data('menuResizer');
if (self) {
self.destroy();
}
});
}
};
/** Extend jQuery */
$.fn.menuResizer = function(method) {
if (methods[method]) {
return methods[method].call(this);
} else if (typeof method === 'function') {
return methods.init.apply(this, [method]);
} else {
$.error('Method ' + method + ' does not exist on jQuery.menuResizer');
}
};
})(jQuery);

View File

@ -1,81 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* @fileoverview Implements the shiftkey + click remove column
* from order by clause funcationality
* @name columndelete
*
* @requires jQuery
*/
function captureURL(url)
{
var URL = {};
url = '' + url;
// Exclude the url part till HTTP
url = url.substr(url.search("sql.php"), url.length);
// The url part between ORDER BY and &session_max_rows needs to be replaced.
URL.head = url.substr(0, url.indexOf('ORDER+BY') + 9);
URL.tail = url.substr(url.indexOf("&session_max_rows"), url.length);
return URL;
}
/**
* This function is for navigating to the generated URL
*
* @param object target HTMLAnchor element
* @param object parent HTMLDom Object
*/
function removeColumnFromMultiSort(target, parent)
{
var URL = captureURL(target);
var begin = target.indexOf('ORDER+BY') + 8;
var end = target.indexOf('&session_max_rows');
// get the names of the columns involved
var between_part = target.substr(begin, end-begin);
var columns = between_part.split('%2C+');
// If the given column is not part of the order clause exit from this function
var index = parent.find('small').length ? parent.find('small').text() : '';
if (index === ''){
return '';
}
// Remove the current clicked column
columns.splice(index-1, 1);
// If all the columns have been removed dont submit a query with nothing
// After order by clause.
if (columns.length === 0) {
var head = URL.head;
head = head.slice(0,head.indexOf('ORDER+BY'));
URL.head = head;
// removing the last sort order should have priority over what
// is remembered via the RememberSorting directive
URL.tail += '&discard_remembered_sort=1';
}
var middle_part = columns.join('%2C+');
url = URL.head + middle_part + URL.tail;
return url;
}
AJAX.registerOnload('keyhandler.js', function () {
$("th.draggable.column_heading.pointer.marker a").on('click', function (event) {
var url = $(this).parent().find('input').val();
if (event.ctrlKey || event.altKey) {
event.preventDefault();
url = removeColumnFromMultiSort(url, $(this).parent());
if (url) {
AJAX.source = $(this);
PMA_ajaxShowMessage();
$.get(url, {'ajax_request' : true, 'ajax_page_request' : true}, AJAX.responseHandler);
}
} else if (event.shiftKey) {
event.preventDefault();
AJAX.source = $(this);
PMA_ajaxShowMessage();
$.get(url, {'ajax_request' : true, 'ajax_page_request' : true}, AJAX.responseHandler);
}
});
});
AJAX.registerTeardown('keyhandler.js', function () {
$(document).off('click', "th.draggable.column_heading.pointer.marker a");
});

View File

@ -1,710 +0,0 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* @fileoverview events handling from normalization page
* @name normalization
*
* @requires jQuery
*/
/**
* AJAX scripts for normalization.php
*
*/
var normalizeto = '1nf';
var primary_key;
var data_parsed = null;
function appendHtmlColumnsList()
{
$.get(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"getColumns": true
},
function(data) {
if (data.success === true) {
$('select[name=makeAtomic]').html(data.message);
}
}
);
}
function goTo3NFStep1(newTables)
{
if (Object.keys(newTables).length === 1) {
newTables = [PMA_commonParams.get('table')];
}
$.post(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"tables": newTables,
"step": '3.1'
}, function(data) {
$("#page_content").find("h3").html(PMA_messages.str3NFNormalization);
$("#mainContent").find("legend").html(data.legendText);
$("#mainContent").find("h4").html(data.headText);
$("#mainContent").find("p").html(data.subText);
$("#mainContent").find("#extra").html(data.extra);
$("#extra").find("form").each(function() {
var form_id = $(this).attr('id');
var colname = $(this).data('colname');
$("#" + form_id + " input[value='" + colname + "']").next().remove();
$("#" + form_id + " input[value='" + colname + "']").remove();
});
$("#mainContent").find("#newCols").html('');
$('.tblFooters').html('');
if (data.subText !== "") {
$('.tblFooters').html('<input type="button" onClick="processDependencies(\'\', true);" value="' + PMA_messages.strDone + '"/>');
}
}
);
}
function goTo2NFStep1() {
$.post(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"step": '2.1'
}, function(data) {
$("#page_content h3").html(PMA_messages.str2NFNormalization);
$("#mainContent legend").html(data.legendText);
$("#mainContent h4").html(data.headText);
$("#mainContent p").html(data.subText);
$("#mainContent #extra").html(data.extra);
$("#mainContent #newCols").html('');
if (data.subText !== '') {
$('.tblFooters').html('<input type="submit" value="' + PMA_messages.strDone + '" onclick="processDependencies(\'' + escapeJsString(escapeHtml(data.primary_key)) + '\');">');
} else {
if (normalizeto === '3nf') {
$("#mainContent #newCols").html(PMA_messages.strToNextStep);
setTimeout(function() {
goTo3NFStep1([PMA_commonParams.get('table')]);
}, 3000);
}
}
});
}
function goToFinish1NF()
{
if (normalizeto !== '1nf') {
goTo2NFStep1();
return true;
}
$("#mainContent legend").html(PMA_messages.strEndStep);
$("#mainContent h4").html(
"<h3>" + PMA_sprintf(PMA_messages.strFinishMsg, escapeHtml(PMA_commonParams.get('table'))) + "</h3>"
);
$("#mainContent p").html('');
$("#mainContent #extra").html('');
$("#mainContent #newCols").html('');
$('.tblFooters').html('');
}
function goToStep4()
{
$.post(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"step4": true
}, function(data) {
$("#mainContent legend").html(data.legendText);
$("#mainContent h4").html(data.headText);
$("#mainContent p").html(data.subText);
$("#mainContent #extra").html(data.extra);
$("#mainContent #newCols").html('');
$('.tblFooters').html('');
for(var pk in primary_key) {
$("#extra input[value='" + escapeJsString(primary_key[pk]) + "']").attr("disabled","disabled");
}
}
);
}
function goToStep3()
{
$.post(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"step3": true
}, function(data) {
$("#mainContent legend").html(data.legendText);
$("#mainContent h4").html(data.headText);
$("#mainContent p").html(data.subText);
$("#mainContent #extra").html(data.extra);
$("#mainContent #newCols").html('');
$('.tblFooters').html('');
primary_key = JSON.parse(data.primary_key);
for(var pk in primary_key) {
$("#extra input[value='" + escapeJsString(primary_key[pk]) + "']").attr("disabled","disabled");
}
}
);
}
function goToStep2(extra)
{
$.post(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"step2": true
}, function(data) {
$("#mainContent legend").html(data.legendText);
$("#mainContent h4").html(data.headText);
$("#mainContent p").html(data.subText);
$("#mainContent #extra,#mainContent #newCols").html('');
$('.tblFooters').html('');
if (data.hasPrimaryKey === "1") {
if(extra === 'goToStep3') {
$("#mainContent h4").html(PMA_messages.strPrimaryKeyAdded);
$("#mainContent p").html(PMA_messages.strToNextStep);
}
if(extra === 'goToFinish1NF') {
goToFinish1NF();
} else {
setTimeout(function() {
goToStep3();
}, 3000);
}
} else {
//form to select columns to make primary
$("#mainContent #extra").html(data.extra);
}
}
);
}
function goTo2NFFinish(pd)
{
var tables = {};
for (var dependson in pd) {
tables[dependson] = $('#extra input[name="' + dependson + '"]').val();
}
datastring = {"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"pd": JSON.stringify(pd),
"newTablesName":JSON.stringify(tables),
"createNewTables2NF":1};
$.ajax({
type: "POST",
url: "normalization.php",
data: datastring,
async:false,
success: function(data) {
if (data.success === true) {
if(data.queryError === false) {
if (normalizeto === '3nf') {
$("#pma_navigation_reload").click();
goTo3NFStep1(tables);
return true;
}
$("#mainContent legend").html(data.legendText);
$("#mainContent h4").html(data.headText);
$("#mainContent p").html('');
$("#mainContent #extra").html('');
$('.tblFooters').html('');
} else {
PMA_ajaxShowMessage(data.extra, false);
}
$("#pma_navigation_reload").click();
} else {
PMA_ajaxShowMessage(data.error, false);
}
}
});
}
function goTo3NFFinish(newTables)
{
for (var table in newTables) {
for (var newtbl in newTables[table]) {
var updatedname = $('#extra input[name="' + newtbl + '"]').val();
newTables[table][updatedname] = newTables[table][newtbl];
if (updatedname !== newtbl) {
delete newTables[table][newtbl];
}
}
}
datastring = {"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"newTables":JSON.stringify(newTables),
"createNewTables3NF":1};
$.ajax({
type: "POST",
url: "normalization.php",
data: datastring,
async:false,
success: function(data) {
if (data.success === true) {
if(data.queryError === false) {
$("#mainContent legend").html(data.legendText);
$("#mainContent h4").html(data.headText);
$("#mainContent p").html('');
$("#mainContent #extra").html('');
$('.tblFooters').html('');
} else {
PMA_ajaxShowMessage(data.extra, false);
}
$("#pma_navigation_reload").click();
} else {
PMA_ajaxShowMessage(data.error, false);
}
}
});
}
var backup = '';
function goTo2NFStep2(pd, primary_key)
{
$("#newCols").html('');
$("#mainContent legend").html(PMA_messages.strStep + ' 2.2 ' + PMA_messages.strConfirmPd);
$("#mainContent h4").html(PMA_messages.strSelectedPd);
$("#mainContent p").html(PMA_messages.strPdHintNote);
var extra = '<div class="dependencies_box">';
var pdFound = false;
for (var dependson in pd) {
if (dependson !== primary_key) {
pdFound = true;
extra += '<p class="displayblock desc">' + escapeHtml(dependson) + " -> " + escapeHtml(pd[dependson].toString()) + '</p>';
}
}
if(!pdFound) {
extra += '<p class="displayblock desc">' + PMA_messages.strNoPdSelected + '</p>';
extra += '</div>';
} else {
extra += '</div>';
datastring = {"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"pd": JSON.stringify(pd),
"getNewTables2NF":1};
$.ajax({
type: "POST",
url: "normalization.php",
data: datastring,
async:false,
success: function(data) {
if (data.success === true) {
extra += data.message;
} else {
PMA_ajaxShowMessage(data.error, false);
}
}
});
}
$("#mainContent #extra").html(extra);
$('.tblFooters').html('<input type="button" value="' + PMA_messages.strBack + '" id="backEditPd"/><input type="button" id="goTo2NFFinish" value="' + PMA_messages.strGo + '"/>');
$("#goTo2NFFinish").click(function(){
goTo2NFFinish(pd);
});
}
function goTo3NFStep2(pd, tablesTds)
{
$("#newCols").html('');
$("#mainContent legend").html(PMA_messages.strStep + ' 3.2 ' + PMA_messages.strConfirmTd);
$("#mainContent h4").html(PMA_messages.strSelectedTd);
$("#mainContent p").html(PMA_messages.strPdHintNote);
var extra = '<div class="dependencies_box">';
var pdFound = false;
for (var table in tablesTds) {
for (var i in tablesTds[table]) {
dependson = tablesTds[table][i];
if (dependson !== '' && dependson !== table) {
pdFound = true;
extra += '<p class="displayblock desc">' + escapeHtml(dependson) + " -> " + escapeHtml(pd[dependson].toString()) + '</p>';
}
}
}
if(!pdFound) {
extra += '<p class="displayblock desc">' + PMA_messages.strNoTdSelected + '</p>';
extra += '</div>';
} else {
extra += '</div>';
datastring = {"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"tables": JSON.stringify(tablesTds),
"pd": JSON.stringify(pd),
"getNewTables3NF":1};
$.ajax({
type: "POST",
url: "normalization.php",
data: datastring,
async:false,
success: function(data) {
data_parsed = data;
if (data.success === true) {
extra += data_parsed.html;
} else {
PMA_ajaxShowMessage(data.error, false);
}
}
});
}
$("#mainContent #extra").html(extra);
$('.tblFooters').html('<input type="button" value="' + PMA_messages.strBack + '" id="backEditPd"/><input type="button" id="goTo3NFFinish" value="' + PMA_messages.strGo + '"/>');
$("#goTo3NFFinish").click(function(){
if (!pdFound) {
goTo3NFFinish([]);
} else {
goTo3NFFinish(data_parsed.newTables);
}
});
}
function processDependencies(primary_key, isTransitive)
{
var pd = {};
var tablesTds = {};
var dependsOn;
pd[primary_key] = [];
$("#extra form").each(function() {
var tblname;
if (isTransitive === true) {
tblname = $(this).data('tablename');
primary_key = tblname;
if (!(tblname in tablesTds)) {
tablesTds[tblname] = [];
}
tablesTds[tblname].push(primary_key);
}
var form_id = $(this).attr('id');
$('#' + form_id + ' input[type=checkbox]:not(:checked)').prop('checked', false);
dependsOn = '';
$('#' + form_id + ' input[type=checkbox]:checked').each(function(){
dependsOn += $(this).val() + ', ';
$(this).attr("checked","checked");
});
if (dependsOn === '') {
dependsOn = primary_key;
} else {
dependsOn = dependsOn.slice(0, -2);
}
if (! (dependsOn in pd)) {
pd[dependsOn] = [];
}
pd[dependsOn].push($(this).data('colname'));
if (isTransitive === true) {
if (!(tblname in tablesTds)) {
tablesTds[tblname] = [];
}
if ($.inArray(dependsOn, tablesTds[tblname]) === -1) {
tablesTds[tblname].push(dependsOn);
}
}
});
backup = $("#mainContent").html();
if (isTransitive === true) {
goTo3NFStep2(pd, tablesTds);
} else {
goTo2NFStep2(pd, primary_key);
}
return false;
}
function moveRepeatingGroup(repeatingCols) {
var newTable = $("input[name=repeatGroupTable]").val();
var newColumn = $("input[name=repeatGroupColumn]").val();
if (!newTable) {
$("input[name=repeatGroupTable]").focus();
return false;
}
if (!newColumn) {
$("input[name=repeatGroupColumn]").focus();
return false;
}
datastring = {"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"repeatingColumns": repeatingCols,
"newTable":newTable,
"newColumn":newColumn,
"primary_columns":primary_key.toString()
};
$.ajax({
type: "POST",
url: "normalization.php",
data: datastring,
async:false,
success: function(data) {
if (data.success === true) {
if(data.queryError === false) {
goToStep3();
}
PMA_ajaxShowMessage(data.message, false);
$("#pma_navigation_reload").click();
} else {
PMA_ajaxShowMessage(data.error, false);
}
}
});
}
AJAX.registerTeardown('normalization.js', function () {
$("#extra").off("click", "#selectNonAtomicCol");
$("#splitGo").unbind('click');
$('.tblFooters').off("click", "#saveSplit");
$("#extra").off("click", "#addNewPrimary");
$(".tblFooters").off("click", "#saveNewPrimary");
$("#extra").off("click", "#removeRedundant");
$("#mainContent p").off("click", "#createPrimaryKey");
$("#mainContent").off("click", "#backEditPd");
$("#mainContent").off("click", "#showPossiblePd");
$("#mainContent").off("click", ".pickPd");
});
AJAX.registerOnload('normalization.js', function() {
var selectedCol;
normalizeto = $("#mainContent").data('normalizeto');
$("#extra").on("click", "#selectNonAtomicCol", function() {
if ($(this).val() === 'no_such_col') {
goToStep2();
} else {
selectedCol = $(this).val();
}
});
$("#splitGo").click(function() {
if(!selectedCol || selectedCol === '') {
return false;
}
var numField = $("#numField").val();
$.get(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"splitColumn": true,
"numFields": numField
},
function(data) {
if (data.success === true) {
$('#newCols').html(data.message);
$('.default_value').hide();
$('.enum_notice').hide();
$('.tblFooters').html("<input type='submit' id='saveSplit' value='" + PMA_messages.strSave + "'/>" +
"<input type='submit' id='cancelSplit' value='" + PMA_messages.strCancel + "' " +
"onclick=\"$('#newCols').html('');$(this).parent().html('')\"/>");
}
}
);
return false;
});
$('.tblFooters').on("click","#saveSplit", function() {
central_column_list = [];
if ($("#newCols #field_0_1").val() === '') {
$("#newCols #field_0_1").focus();
return false;
}
datastring = $('#newCols :input').serialize();
datastring += "&ajax_request=1&do_save_data=1&field_where=last";
$.post("tbl_addfield.php", datastring, function(data) {
if (data.success) {
$.post(
"sql.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"dropped_column": selectedCol,
"purge" : 1,
"sql_query": 'ALTER TABLE `' + PMA_commonParams.get('table') + '` DROP `' + selectedCol + '`;',
"is_js_confirmed": 1
},
function(data) {
if (data.success === true) {
appendHtmlColumnsList();
$('#newCols').html('');
$('.tblFooters').html('');
} else {
PMA_ajaxShowMessage(data.error, false);
}
selectedCol = '';
}
);
} else {
PMA_ajaxShowMessage(data.error, false);
}
});
});
$("#extra").on("click", "#addNewPrimary", function() {
$.get(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"addNewPrimary": true
},
function(data) {
if (data.success === true) {
$('#newCols').html(data.message);
$('.default_value').hide();
$('.enum_notice').hide();
$('.tblFooters').html("<input type='submit' id='saveNewPrimary' value='" + PMA_messages.strSave + "'/>" +
"<input type='submit' id='cancelSplit' value='" + PMA_messages.strCancel + "' " +
"onclick=\"$('#newCols').html('');$(this).parent().html('')\"/>");
} else {
PMA_ajaxShowMessage(data.error, false);
}
}
);
return false;
});
$(".tblFooters").on("click", "#saveNewPrimary", function() {
var datastring = $('#newCols :input').serialize();
datastring += "&field_key[0]=primary_0&ajax_request=1&do_save_data=1&field_where=last";
$.post("tbl_addfield.php", datastring, function(data) {
if (data.success === true) {
$("#mainContent h4").html(PMA_messages.strPrimaryKeyAdded);
$("#mainContent p").html(PMA_messages.strToNextStep);
$("#mainContent #extra").html('');
$("#mainContent #newCols").html('');
$('.tblFooters').html('');
setTimeout(function() {
goToStep3();
}, 2000);
} else {
PMA_ajaxShowMessage(data.error, false);
}
});
});
$("#extra").on("click", "#removeRedundant", function() {
var dropQuery = 'ALTER TABLE `' + PMA_commonParams.get('table') + '` ';
$("#extra input[type=checkbox]:checked").each(function() {
dropQuery += 'DROP `' + $(this).val() + '`, ';
});
dropQuery = dropQuery.slice(0, -2);
$.post(
"sql.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"sql_query": dropQuery,
"is_js_confirmed": 1
},
function(data) {
if (data.success === true) {
goToStep2('goToFinish1NF');
} else {
PMA_ajaxShowMessage(data.error, false);
}
}
);
});
$("#extra").on("click", "#moveRepeatingGroup", function() {
var repeatingCols = '';
$("#extra input[type=checkbox]:checked").each(function() {
repeatingCols += $(this).val() + ', ';
});
if (repeatingCols !== '') {
var newColName = $("#extra input[type=checkbox]:checked:first").val();
repeatingCols = repeatingCols.slice(0, -2);
var confirmStr = PMA_sprintf(PMA_messages.strMoveRepeatingGroup, escapeHtml(repeatingCols), escapeHtml(PMA_commonParams.get('table')));
confirmStr += '<input type="text" name="repeatGroupTable" placeholder="' + PMA_messages.strNewTablePlaceholder + '"/>' +
'( ' + escapeHtml(primary_key.toString()) + ', <input type="text" name="repeatGroupColumn" placeholder="' + PMA_messages.strNewColumnPlaceholder + '" value="' + escapeHtml(newColName) + '">)' +
'</ol>';
$("#newCols").html(confirmStr);
$('.tblFooters').html('<input type="submit" value="' + PMA_messages.strCancel + '" onclick="$(\'#newCols\').html(\'\');$(\'#extra input[type=checkbox]\').prop(\'checked\', false)"/>' +
'<input type="submit" value="' + PMA_messages.strGo + '" onclick="moveRepeatingGroup(\'' + escapeJsString(escapeHtml(repeatingCols)) + '\')"/>');
}
});
$("#mainContent p").on("click", "#createPrimaryKey", function(event) {
event.preventDefault();
var url = { create_index: 1,
server: PMA_commonParams.get('server'),
db: PMA_commonParams.get('db'),
table: PMA_commonParams.get('table'),
token: PMA_commonParams.get('token'),
added_fields: 1,
add_fields:1,
index: {Key_name:'PRIMARY'},
ajax_request: true
};
var title = PMA_messages.strAddPrimaryKey;
indexEditorDialog(url, title, function(){
//on success
$(".sqlqueryresults").remove();
$('.result_query').remove();
$('.tblFooters').html('');
goToStep2('goToStep3');
});
return false;
});
$("#mainContent").on("click", "#backEditPd", function(){
$("#mainContent").html(backup);
});
$("#mainContent").on("click", "#showPossiblePd", function(){
if($(this).hasClass('hideList')) {
$(this).html('+ ' + PMA_messages.strShowPossiblePd);
$(this).removeClass('hideList');
$("#newCols").slideToggle("slow");
return false;
}
if($("#newCols").html() !== '') {
$("#showPossiblePd").html('- ' + PMA_messages.strHidePd);
$("#showPossiblePd").addClass('hideList');
$("#newCols").slideToggle("slow");
return false;
}
$("#newCols").insertAfter("#mainContent h4");
$("#newCols").html('<div class="center">' + PMA_messages.strLoading + '<br/>' + PMA_messages.strWaitForPd + '</div>');
$.post(
"normalization.php",
{
"token": PMA_commonParams.get('token'),
"ajax_request": true,
"db": PMA_commonParams.get('db'),
"table": PMA_commonParams.get('table'),
"findPdl": true
}, function(data) {
$("#showPossiblePd").html('- ' + PMA_messages.strHidePd);
$("#showPossiblePd").addClass('hideList');
$("#newCols").html(data.message);
});
});
$("#mainContent").on("click", ".pickPd", function(){
var strColsLeft = $(this).next('.determinants').html();
var colsLeft = strColsLeft.split(',');
var strColsRight = $(this).next().next().html();
var colsRight = strColsRight.split(',');
for (var i in colsRight) {
$('form[data-colname="' + colsRight[i].trim() + '"] input[type="checkbox"]').prop('checked', false);
for (var j in colsLeft) {
$('form[data-colname="' + colsRight[i].trim() + '"] input[value="' + colsLeft[j].trim() + '"]').prop('checked', true);
}
}
});
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More