diff --git a/adminer/drivers/elastic.inc.php b/adminer/drivers/elastic.inc.php index d448a6b2..6698f73b 100644 --- a/adminer/drivers/elastic.inc.php +++ b/adminer/drivers/elastic.inc.php @@ -283,5 +283,5 @@ if (isset($_GET["elastic"])) { $operators = array("=", "query"); $functions = array(); $grouping = array(); - $edit_functions = array(); + $edit_functions = array(array("json")); } diff --git a/adminer/drivers/mongo.inc.php b/adminer/drivers/mongo.inc.php index 1a6eb308..e3999fc8 100644 --- a/adminer/drivers/mongo.inc.php +++ b/adminer/drivers/mongo.inc.php @@ -290,5 +290,5 @@ if (isset($_GET["mongo"])) { $operators = array("="); $functions = array(); $grouping = array(); - $edit_functions = array(); + $edit_functions = array(array("json")); } diff --git a/adminer/drivers/simpledb.inc.php b/adminer/drivers/simpledb.inc.php index 6810a5ae..652314dc 100644 --- a/adminer/drivers/simpledb.inc.php +++ b/adminer/drivers/simpledb.inc.php @@ -173,11 +173,15 @@ if (isset($_GET["simpledb"])) { $key = idf_unescape($key); if ($val == "NULL") { $delete["Attribute." . count($delete) . ".Name"] = $key; - } elseif ($key != "itemName()") { - $insert["Attribute.$i.Name"] = $key; - $insert["Attribute.$i.Value"] = idf_unescape($val); - $insert["Attribute.$i.Replace"] = "true"; - $i++; + } elseif ($key != "itemName()") { //! allow changing itemName() + foreach ((array) $val as $k => $v) { + $insert["Attribute.$i.Name"] = $key; + $insert["Attribute.$i.Value"] = (is_array($val) ? $v : idf_unescape($v)); + if (!$k) { + $insert["Attribute.$i.Replace"] = "true"; + } + $i++; + } } } $ids = $this->_extractIds($table, $queryWhere, $limit); @@ -473,5 +477,5 @@ if (isset($_GET["simpledb"])) { $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "IS NOT NULL"); $functions = array(); $grouping = array("count"); - $edit_functions = array(); + $edit_functions = array(array("json")); } diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index c5f3af97..85ecb28d 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -781,6 +781,14 @@ function input($field, $value, $function) { global $connection, $types, $adminer, $jush; $name = h(bracket_escape($field["field"])); echo "