Merge pull request #203 from cytopia/new-php-container
REL-0.13: New PHP Container
@ -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';
|
||||
|
||||
//
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
1831
.devilbox/www/htdocs/vendor/adminer-4.3.1-en.php
vendored
1942
.devilbox/www/htdocs/vendor/adminer-4.6.2-en.php
vendored
Normal 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/
|
166
.devilbox/www/htdocs/vendor/phpmyadmin-4.7/ChangeLog
vendored
@ -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
|
@ -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
|
@ -1 +0,0 @@
|
||||
Wed Mar 29 12:13:14 UTC 2017
|
@ -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);
|
@ -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}) (.+[^ ]) +<(.*)@users.sourceforge.net>/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}) (.+[^ ]) +<(.*@.*)>/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>
|
@ -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)
|
||||
);
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
2580
.devilbox/www/htdocs/vendor/phpmyadmin-4.7/composer.lock
generated
vendored
@ -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/>.
|
||||
*/
|
@ -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;
|
||||
}
|
@ -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>');
|
@ -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
|
||||
)
|
||||
);
|
@ -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 .= '&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
|
@ -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';
|
@ -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'])
|
||||
: ';'
|
||||
)
|
||||
);
|
@ -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();
|
Before Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 347 B |
Before Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 173 B |
Before Width: | Height: | Size: 173 B |
Before Width: | Height: | Size: 345 B |
@ -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 phpMyAdmin’s documentation! — 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> »</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’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’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> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <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>
|
655
.devilbox/www/htdocs/vendor/phpmyadmin-4.7/index.php
vendored
@ -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') . " " . __(
|
||||
'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')
|
||||
. " " . __('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') . " " . __(
|
||||
'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,
|
||||
)
|
||||
);
|
||||
}
|
@ -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.
|
@ -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
|
||||
});
|
||||
}
|
@ -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});
|
||||
|
||||
});
|
1534
.devilbox/www/htdocs/vendor/phpmyadmin-4.7/js/console.js
vendored
@ -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;
|
||||
}
|
@ -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');
|
||||
}
|
||||
});
|
||||
});
|
@ -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');
|
||||
});
|
||||
});
|
@ -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 $()
|
@ -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
|
||||
);
|
||||
});
|
@ -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;
|
||||
}
|
||||
//
|
@ -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();";
|
||||
}
|
@ -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;
|
||||
});
|
||||
|
||||
});
|
@ -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 );
|
@ -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;
|
||||
};
|
@ -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);
|
||||
});
|
||||
});
|
@ -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;
|
@ -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);
|
@ -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");
|
||||
});
|
@ -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);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 342 B |
Before Width: | Height: | Size: 405 B |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 758 B |
Before Width: | Height: | Size: 703 B |
Before Width: | Height: | Size: 753 B |
Before Width: | Height: | Size: 601 B |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 378 B |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 247 B |
Before Width: | Height: | Size: 373 B |
Before Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 291 B |
Before Width: | Height: | Size: 381 B |
Before Width: | Height: | Size: 860 B |
Before Width: | Height: | Size: 299 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |