diff --git a/adminer/database.inc.php b/adminer/database.inc.php
index f3399dee..eb9f6ac3 100644
--- a/adminer/database.inc.php
+++ b/adminer/database.inc.php
@@ -57,7 +57,7 @@ if ($_POST) {
' . h($name) . '
'
+ ? '
'
: ''
) . "\n" . ($collations ? html_select("collation", array("" => "(" . lang('collation') . ")") + $collations, $collate) : "");
?>
diff --git a/adminer/dump.inc.php b/adminer/dump.inc.php
index 8004b719..b813f87a 100644
--- a/adminer/dump.inc.php
+++ b/adminer/dump.inc.php
@@ -214,7 +214,7 @@ if (DB != "") {
}
}
} else {
- echo "
";
}
}
?>
diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php
index 38bc423f..cf4ba18b 100644
--- a/adminer/include/editing.inc.php
+++ b/adminer/include/editing.inc.php
@@ -104,7 +104,7 @@ function referencable_primary($self) {
* @return null
*/
function textarea($name, $value, $rows = 10, $cols = 80) {
- echo ""; // spellcheck - not valid before HTML5
+ echo ""; // spellcheck - not valid before HTML5
}
/** Print table columns for type edit
diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php
index d3489447..f4ab0c3e 100644
--- a/adminer/include/functions.inc.php
+++ b/adminer/include/functions.inc.php
@@ -599,7 +599,7 @@ function input($field, $value, $function) {
} elseif (ereg('blob|bytea|raw|file', $field["type"]) && ini_bool("file_uploads")) {
echo "";
} elseif (ereg('text|lob', $field["type"])) {
- echo "'; // 1.2em - line-height
+ echo "'; // 1.2em - line-height
} else {
// int(3) is only a display hint
$maxlength = (!ereg('int', $field["type"]) && preg_match('~^([0-9]+)(,([0-9]+))?$~', $field["length"], $match) ? ((ereg("binary", $field["type"]) ? 2 : 1) * $match[1] + ($match[3] ? 1 : 0) + ($match[2] && !$field["unsigned"] ? 1 : 0)) : ($types[$field["type"]] ? $types[$field["type"]] + ($field["unsigned"] ? 0 : 1) : 0));
diff --git a/adminer/select.inc.php b/adminer/select.inc.php
index 441681e6..fd91e16a 100644
--- a/adminer/select.inc.php
+++ b/adminer/select.inc.php
@@ -339,7 +339,7 @@ if (!$columns) {
$editable = is_utf8($val) && !$long && $rows[$n][$key] == $row[$key] && !$functions[$key];
$text = ereg('text|lob', $field["type"]);
echo (($_GET["modify"] && $editable) || isset($value)
- ? " | " . ($text ? "" : "")
+ ? " | " . ($text ? "" : "")
: " | " . $adminer->selectVal($val, $link, $field)
);
}
diff --git a/adminer/static/editing.js b/adminer/static/editing.js
index 91ef87f1..d269b06e 100644
--- a/adminer/static/editing.js
+++ b/adminer/static/editing.js
@@ -40,6 +40,7 @@ function bodyLoad(version, protocol) {
* @return HTMLElement
*/
function formField(form, name) {
+ // required in old IE, maybe can be rewritten as form.elements[name]
for (var i=0; i < form.length; i++) {
if (form[i].name == name) {
return form[i];
@@ -399,27 +400,3 @@ function schemaMouseup(ev) {
cookie('adminer_schema=' + encodeURIComponent(s.substr(1)), 30, '; path="' + location.pathname + location.search + '"');
}
}
-
-/** 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; //! still loses focus in Opera, can be solved by handling onblur
- } 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;
-}
diff --git a/adminer/static/functions.js b/adminer/static/functions.js
index f554758a..0a441d58 100644
--- a/adminer/static/functions.js
+++ b/adminer/static/functions.js
@@ -131,6 +131,38 @@ function selectAddRow(field) {
+/** Handle Ctrl+Enter and optionally Tab in textarea
+* @param HTMLTextAreaElement
+* @param KeyboardEvent
+* @param boolean handle also Tab
+* @param HTMLInputElement submit button
+* @return boolean
+*/
+function textareaKeydown(target, event, tab, button) {
+ if (tab && 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; //! still loses focus in Opera, can be solved by handling onblur
+ } 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
+ if (button) {
+ button.click();
+ } else {
+ target.form.submit();
+ }
+ }
+ return true;
+}
+
+
+
var ajaxState = 0;
var ajaxTimeout;
@@ -207,6 +239,9 @@ function selectDblClick(td, event, text) {
rows++;
});
input.rows = rows;
+ input.onkeydown = function (event) {
+ return textareaKeydown(input, event || window.event);
+ };
}
if (document.selection) {
var range = document.selection.createRange();
diff --git a/changes.txt b/changes.txt
index ae8109be..716b9d2e 100644
--- a/changes.txt
+++ b/changes.txt
@@ -1,3 +1,7 @@
+Adminer 3.0.1-dev:
+Send the form by Ctrl+Enter in all textareas
+Catalan translation
+
Adminer 3.0.0 (released 2010-10-15):
Drivers for MS SQL, SQLite, PostgreSQL, Oracle
Allow concurrent logins on the same server
diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php
index 9c5df119..bc853542 100644
--- a/editor/include/adminer.inc.php
+++ b/editor/include/adminer.inc.php
@@ -266,7 +266,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
echo ' |