summaryrefslogtreecommitdiff
path: root/public/app/controllers/JsonToForm.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/app/controllers/JsonToForm.php')
-rw-r--r--public/app/controllers/JsonToForm.php30
1 files changed, 20 insertions, 10 deletions
diff --git a/public/app/controllers/JsonToForm.php b/public/app/controllers/JsonToForm.php
index f6e9746..1e0b99b 100644
--- a/public/app/controllers/JsonToForm.php
+++ b/public/app/controllers/JsonToForm.php
@@ -113,25 +113,28 @@ class JsonToForm
return (mb_strlen($str) > $len) ? mb_substr($str, 0, $len-1) ."…" : $str;
}
+
/** json_form
- *
+ * -------------------------------------------------------------------------
* construct a form (html, javasctipt)
* from a json designer
*
- * @param $formJson (Std Object): form descriptor
- * @param $require_identity (array): array of properties and values;
+ * @param stdClass $formJson : form descriptor
+ *
+ * @param array $require_identity : array of properties and values;
* they identify the record; injected into form as hidden fields
- * @param $source (array): array of [key => value] pairs, where ...
- * `key`: the name of field, `value`: the default value of this field
+ *
+ * @return array [ html=>(string), init_js=>(string), values_js=>String ]
+ * -------------------------------------------------------------------------
*/
- public static function json_form($formJson, $require_identity = [], $source = [])
+ public static function json_form($formJson, $require_identity = [])
{
// $formJson = json_decode(json_encode($form));
$default_outer = $formJson->defaults->outer_class ?? '';
$default_inner = $formJson->defaults->inner_class ?? '';
$default_type = $formJson->defaults->type ?? 'text';
- $default_values = $formJson->defaults->values ?? ((object) ['nothing' => true]);
+ $default_values = $formJson->defaults ?? ((object) ['nothing' => true]);
// TODO handle $form->defaults->source;
@@ -186,9 +189,16 @@ class JsonToForm
// handle value assignment
if (isset($field->value)) { // if value property is set
$set_value = true; // (flag: value seted)
- $value = (($field->value == 'auto') && isset($default_values->$name))
- ? $default_values->$name // set auto value
- : $field->value; // or other set-value
+ $value = $field->value;
+ // $value = (($field->value == 'auto') && isset($default_values->$name))
+ // ? $default_values->$name // set auto value
+ // : $field->value; // or other set-value
+
+ } else if (in_array('auto', $attributes) && isset($default_values->$name)) {
+ $set_value = true; // (flag: value seted)
+ $value = $default_values->$name; // set auto value
+ // echo "\n{$name}: $value";
+
} else {
$set_value = false;
}