diff --git a/adminer/drivers/mongo.inc.php b/adminer/drivers/mongo.inc.php
index c3a0dce9..874bf100 100644
--- a/adminer/drivers/mongo.inc.php
+++ b/adminer/drivers/mongo.inc.php
@@ -245,7 +245,7 @@ if (isset($_GET["mongo"])) {
}
function fields($table) {
- return array();
+ return fields_from_edit();
}
function convert_field($field) {
diff --git a/adminer/drivers/simpledb.inc.php b/adminer/drivers/simpledb.inc.php
index d317e051..231791d3 100644
--- a/adminer/drivers/simpledb.inc.php
+++ b/adminer/drivers/simpledb.inc.php
@@ -323,19 +323,7 @@ if (isset($_GET["simpledb"])) {
}
function fields($table) {
- $return = array();
- foreach ((array) $_POST["field_keys"] as $key => $val) {
- if ($val != "") {
- $val = bracket_escape($val);
- $_POST["function"][$val] = $_POST["field_funs"][$key];
- $_POST["fields"][$val] = $_POST["field_vals"][$key];
- }
- }
- foreach ((array) $_POST["fields"] as $key => $val) {
- $name = bracket_escape($key, 1); // 1 - back
- $return[$name] = array("field" => $name, "privileges" => array("insert" => 1, "update" => 1), "null" => 1);
- }
- return $return;
+ return fields_from_edit();
}
function foreign_keys($table) {
diff --git a/adminer/edit.inc.php b/adminer/edit.inc.php
index faa3434d..c5de310b 100644
--- a/adminer/edit.inc.php
+++ b/adminer/edit.inc.php
@@ -165,9 +165,9 @@ if (!$fields) {
if (!support("table")) {
echo "
"
- . ""
- . " | " . html_select("field_funs[]", $adminer->editFunctions(array()), $_POST["field_funs"][0])
- . " | "
+ . " | "
+ . " | " . html_select("field_funs[]", $adminer->editFunctions(array()))
+ . " | "
. "\n"
;
}
diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php
index a0178cec..ed570541 100644
--- a/adminer/include/functions.inc.php
+++ b/adminer/include/functions.inc.php
@@ -903,6 +903,25 @@ function process_input($field) {
return $adminer->processInput($field, $value, $function);
}
+/** Compute fields() from $_POST edit data
+* @return array
+*/
+function fields_from_edit() {
+ $return = array();
+ foreach ((array) $_POST["field_keys"] as $key => $val) {
+ if ($val != "") {
+ $val = bracket_escape($val);
+ $_POST["function"][$val] = $_POST["field_funs"][$key];
+ $_POST["fields"][$val] = $_POST["field_vals"][$key];
+ }
+ }
+ foreach ((array) $_POST["fields"] as $key => $val) {
+ $name = bracket_escape($key, 1); // 1 - back
+ $return[$name] = array("field" => $name, "privileges" => array("insert" => 1, "update" => 1), "null" => 1);
+ }
+ return $return;
+}
+
/** Print results of search in all tables
* @uses $_GET["where"][0]
* @uses $_POST["tables"]
diff --git a/changes.txt b/changes.txt
index f921a5fc..1fdd70c0 100644
--- a/changes.txt
+++ b/changes.txt
@@ -1,3 +1,6 @@
+Adminer 4.0.3-dev:
+MongoDB: insert
+
Adminer 4.0.2 (released 2014-01-11):
Fix handling of long text in SQL textarea
Support paste to SQL textarea in Opera
|