]> git.joonet.de Git - adminer.git/commitdiff
SimpleDB: Allow inserting JSON
authorJakub Vrana <jakub@vrana.cz>
Fri, 9 Aug 2013 23:26:51 +0000 (16:26 -0700)
committerJakub Vrana <jakub@vrana.cz>
Fri, 9 Aug 2013 23:26:51 +0000 (16:26 -0700)
adminer/drivers/simpledb.inc.php
adminer/edit.inc.php

index 652314dc3421039762fccee15d81a6a5828b958b..40517202459e61d3524db932664566a9e32a39bb 100644 (file)
@@ -197,13 +197,14 @@ if (isset($_GET["simpledb"])) {
                        foreach ($set as $name => $value) {
                                if ($value != "NULL") {
                                        $name = idf_unescape($name);
-                                       $value = idf_unescape($value);
                                        if ($name == "itemName()") {
-                                               $params["ItemName"] = $value;
+                                               $params["ItemName"] = idf_unescape($value);
                                        } else {
-                                               $params["Attribute.$i.Name"] = $name;
-                                               $params["Attribute.$i.Value"] = $value;
-                                               $i++;
+                                               foreach ((array) $value as $val) {
+                                                       $params["Attribute.$i.Name"] = $name;
+                                                       $params["Attribute.$i.Value"] = (is_array($value) ? $val : idf_unescape($value));
+                                                       $i++;
+                                               }
                                        }
                                }
                        }
@@ -322,15 +323,14 @@ if (isset($_GET["simpledb"])) {
                $return = array();
                foreach ((array) $_POST["field_keys"] as $key => $val) {
                        if ($val != "") {
-                               $_POST["fields"][bracket_escape($val)] = $_POST["field_vals"][$key];
+                               $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));
-                       if (isset($_POST["function"][$key])) {
-                               $return[$name]["null"] = true;
-                       }
+                       $return[$name] = array("field" => $name, "privileges" => array("insert" => 1, "update" => 1), "null" => 1);
                }
                return $return;
        }
index 78f7b0b75fce6fd6cf0fe372d6c88f7df22dbe4c..96de9ba0592dde8078b663d5903ba80eb1b4c307 100644 (file)
@@ -160,7 +160,12 @@ if (!$fields) {
        }
 
        if (!support("table")) {
-               echo "<tr><th><input name='field_keys[]'><td class='function'>&nbsp;<td><input name='field_vals[]'>";
+               echo "<tr>"
+                       . "<th><input name='field_keys[]' value='" . h($_POST["field_keys"][0]) . "'>"
+                       . "<td class='function'>" . html_select("field_funs[]", $adminer->editFunctions(array()), $_POST["field_funs"][0])
+                       . "<td><input name='field_vals[]' value='" . h($_POST["field_vals"][0]) . "'>"
+                       . "\n"
+               ;
        }
 
        echo "</table>\n";