Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
ffeb796a3a
@ -37,6 +37,7 @@ phpMyAdmin - ChangeLog
|
||||
- issue #13507 Fixed per server theme feature
|
||||
- issue #13523 Missing newline in ALTER exports
|
||||
- issue #13414 Fixed several compatibility issues with PHP 7.2
|
||||
- issue #13550 Fixed copy results to clipboard
|
||||
|
||||
4.7.3 (2017-07-20)
|
||||
- issue #13447 Large multi-line query removes Export operation and blanks query box options
|
||||
|
||||
@ -4585,100 +4585,6 @@ function printPage(){
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Print button
|
||||
*/
|
||||
function copyToClipboard()
|
||||
{
|
||||
var textArea = document.createElement("textarea");
|
||||
|
||||
//
|
||||
// *** This styling is an extra step which is likely not required. ***
|
||||
//
|
||||
// Why is it here? To ensure:
|
||||
// 1. the element is able to have focus and selection.
|
||||
// 2. if element was to flash render it has minimal visual impact.
|
||||
// 3. less flakyness with selection and copying which **might** occur if
|
||||
// the textarea element is not visible.
|
||||
//
|
||||
// The likelihood is the element won't even render, not even a flash,
|
||||
// so some of these are just precautions. However in IE the element
|
||||
// is visible whilst the popup box asking the user for permission for
|
||||
// the web page to copy to the clipboard.
|
||||
//
|
||||
|
||||
// Place in top-left corner of screen regardless of scroll position.
|
||||
textArea.style.position = 'fixed';
|
||||
textArea.style.top = 0;
|
||||
textArea.style.left = 0;
|
||||
|
||||
// Ensure it has a small width and height. Setting to 1px / 1em
|
||||
// doesn't work as this gives a negative w/h on some browsers.
|
||||
textArea.style.width = '2em';
|
||||
textArea.style.height = '2em';
|
||||
|
||||
// We don't need padding, reducing the size if it does flash render.
|
||||
textArea.style.padding = 0;
|
||||
|
||||
// Clean up any borders.
|
||||
textArea.style.border = 'none';
|
||||
textArea.style.outline = 'none';
|
||||
textArea.style.boxShadow = 'none';
|
||||
|
||||
// Avoid flash of white box if rendered for any reason.
|
||||
textArea.style.background = 'transparent';
|
||||
|
||||
textArea.value = '';
|
||||
|
||||
var elementList = $('#serverinfo a');
|
||||
|
||||
elementList.each(function(){
|
||||
textArea.value += $(this).text().split(':')[1].trim() + '/';
|
||||
});
|
||||
textArea.value += '\t\t' + window.location.href;
|
||||
textArea.value += '\n';
|
||||
|
||||
elementList = $('.notice,.success');
|
||||
|
||||
elementList.each(function(){
|
||||
textArea.value += $(this).clone().children().remove().end().text() + '\n\n';
|
||||
});
|
||||
|
||||
elementList = $('.sql pre');
|
||||
|
||||
elementList.each(function() {
|
||||
textArea.value += $(this).text() + '\n\n';
|
||||
});
|
||||
|
||||
elementList = $('.table_results .column_heading a');
|
||||
|
||||
elementList.each(function() {
|
||||
textArea.value += $(this).clone().children().remove().end().text() + '\t';
|
||||
});
|
||||
|
||||
textArea.value += '\n';
|
||||
elementList = $('tbody tr');
|
||||
elementList.each(function() {
|
||||
var childElementList = $(this).find('.data span');
|
||||
childElementList.each(function(){
|
||||
textArea.value += $(this).clone().children().remove().end().text() + '\t';
|
||||
});
|
||||
textArea.value += '\n';
|
||||
});
|
||||
|
||||
document.body.appendChild(textArea);
|
||||
|
||||
textArea.select();
|
||||
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
} catch (err) {
|
||||
alert('Sorry! Unable to copy');
|
||||
}
|
||||
|
||||
document.body.removeChild(textArea);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unbind all event handlers before tearing down a page
|
||||
*/
|
||||
|
||||
80
js/sql.js
80
js/sql.js
@ -213,8 +213,84 @@ AJAX.registerOnload('sql.js', function () {
|
||||
$(document).on('click', "#copyToClipBoard", function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
// Print the page
|
||||
copyToClipboard();
|
||||
var textArea = document.createElement("textarea");
|
||||
|
||||
//
|
||||
// *** This styling is an extra step which is likely not required. ***
|
||||
//
|
||||
// Why is it here? To ensure:
|
||||
// 1. the element is able to have focus and selection.
|
||||
// 2. if element was to flash render it has minimal visual impact.
|
||||
// 3. less flakyness with selection and copying which **might** occur if
|
||||
// the textarea element is not visible.
|
||||
//
|
||||
// The likelihood is the element won't even render, not even a flash,
|
||||
// so some of these are just precautions. However in IE the element
|
||||
// is visible whilst the popup box asking the user for permission for
|
||||
// the web page to copy to the clipboard.
|
||||
//
|
||||
|
||||
// Place in top-left corner of screen regardless of scroll position.
|
||||
textArea.style.position = 'fixed';
|
||||
textArea.style.top = 0;
|
||||
textArea.style.left = 0;
|
||||
|
||||
// Ensure it has a small width and height. Setting to 1px / 1em
|
||||
// doesn't work as this gives a negative w/h on some browsers.
|
||||
textArea.style.width = '2em';
|
||||
textArea.style.height = '2em';
|
||||
|
||||
// We don't need padding, reducing the size if it does flash render.
|
||||
textArea.style.padding = 0;
|
||||
|
||||
// Clean up any borders.
|
||||
textArea.style.border = 'none';
|
||||
textArea.style.outline = 'none';
|
||||
textArea.style.boxShadow = 'none';
|
||||
|
||||
// Avoid flash of white box if rendered for any reason.
|
||||
textArea.style.background = 'transparent';
|
||||
|
||||
textArea.value = '';
|
||||
|
||||
$('#serverinfo a').each(function(){
|
||||
textArea.value += $(this).text().split(':')[1].trim() + '/';
|
||||
});
|
||||
textArea.value += '\t\t' + window.location.href;
|
||||
textArea.value += '\n';
|
||||
|
||||
$('.notice,.success').each(function(){
|
||||
textArea.value += $(this).text() + '\n\n';
|
||||
});
|
||||
|
||||
$('.sql pre').each(function() {
|
||||
textArea.value += $(this).text() + '\n\n';
|
||||
});
|
||||
|
||||
$('.table_results .column_heading a').each(function() {
|
||||
textArea.value += $(this).text() + '\t';
|
||||
});
|
||||
|
||||
textArea.value += '\n';
|
||||
$('.table_results tbody tr').each(function() {
|
||||
$(this).find('.data span').each(function(){
|
||||
textArea.value += $(this).text() + '\t';
|
||||
});
|
||||
textArea.value += '\n';
|
||||
});
|
||||
|
||||
document.body.appendChild(textArea);
|
||||
|
||||
textArea.select();
|
||||
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
} catch (err) {
|
||||
alert('Sorry! Unable to copy');
|
||||
}
|
||||
|
||||
document.body.removeChild(textArea);
|
||||
|
||||
}); //end of Copy to Clipboard action
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user