Permalink
Browse files

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

  • Loading branch information...
1 parent ed7ed84 commit 9929cc679630cd3f2deff514bf7c8e6d8e99fb56 @vrana committed Jul 13, 2010
Showing with 31 additions and 4 deletions.
  1. +1 −1 adminer/include/functions.inc.php
  2. +3 −3 adminer/sql.inc.php
  3. +26 −0 adminer/static/functions.js
  4. +1 −0 changes.txt
@@ -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
@@ -138,14 +138,14 @@
}
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();
@@ -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
View
@@ -10,6 +10,7 @@ Remember export parameters in cookie
Allow semicolon as CSV separator
Schemas, sequences and types support (PostgreSQL)
Autofocus username in login form
+Allow to insert Tab in SQL textareas and send the form by Ctrl+Enter
Disable spellchecking in SQL textareas
Display auto_increment value of inserted item
Allow disabling auto_increment value export

0 comments on commit 9929cc6

Please sign in to comment.