1
0
mirror of https://github.com/vrana/adminer.git synced 2025-08-18 04:11:27 +02:00

Allow to insert Tab in SQL textareas and send the form by Ctrl+Enter

This commit is contained in:
Jakub Vrana
2010-07-13 18:18:47 +02:00
parent ed7ed84dd5
commit 9929cc6796
4 changed files with 31 additions and 4 deletions

View File

@@ -124,7 +124,7 @@ function html_select($name, $options, $value = "", $onchange = true) {
* @return null
*/
function textarea($name, $value, $rows = 10, $cols = 80) {
echo "<textarea name='$name' rows='$rows' cols='$cols' style='width: 98%;' spellcheck='false'>" . h($value) . "</textarea>"; // spellcheck - not valid before HTML5
echo "<textarea name='$name' rows='$rows' cols='$cols' style='width: 98%;' spellcheck='false' onkeydown='return textareaKeydown(this, event);'>" . h($value) . "</textarea>"; // spellcheck - not valid before HTML5
}

View File

@@ -138,14 +138,14 @@ if ($_POST) {
}
textarea("query", $q, 20);
echo ($_POST ? "" : "<script type='text/javascript'>document.getElementsByTagName('textarea')[0].focus();</script>\n");
echo "<p>" . (ini_bool("file_uploads") ? lang('File upload') . ': <input type="file" name="sql_file">' : lang('File uploads are disabled.'));
?>
<p>
<input type="hidden" name="token" value="<?php echo $token; ?>">
<input type="submit" value="<?php echo lang('Execute'); ?>">
<?php echo checkbox("error_stops", 1, $_POST["error_stops"], lang('Stop on error')); ?>
<?php
echo "<p>" . (ini_bool("file_uploads") ? lang('File upload') . ': <input type="file" name="sql_file">' : lang('File uploads are disabled.'));
echo checkbox("error_stops", 1, $_POST["error_stops"], lang('Stop on error'));
print_fieldset("webfile", lang('From server'), $_POST["webfile"]);
$compress = array();

View File

@@ -123,6 +123,32 @@ function selectAddRow(field) {
/** Handle Tab and Ctrl+Enter in textarea
* @param HTMLTextAreaElement
* @param KeyboardEvent
* @return boolean
*/
function textareaKeydown(target, event) {
if (event.keyCode == 9 && !event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey) {
// inspired by http://pallieter.org/Projects/insertTab/
if (target.setSelectionRange) {
var start = target.selectionStart;
target.value = target.value.substr(0, start) + '\t' + target.value.substr(target.selectionEnd);
target.setSelectionRange(start + 1, start + 1);
return false;
} else if (target.createTextRange) {
document.selection.createRange().text = '\t';
return false;
}
}
if (event.ctrlKey && (event.keyCode == 13 || event.keyCode == 10) && !event.altKey && !event.metaKey) { // shiftKey allowed
target.form.submit();
}
return true;
}
/** Display edit field
* @param HTMLElement
* @param MouseEvent