diff --git a/include/ajax.search.php b/include/ajax.search.php index c4e765c6d68710297d14192ad8cf98078ae1fb6b..bfa92ba3c9162e66b18252e1730d3ca64fe901e5 100644 --- a/include/ajax.search.php +++ b/include/ajax.search.php @@ -128,7 +128,7 @@ class SearchAjaxAPI extends AjaxController { else $data[$name] = $info['value']; } - $form = $search->getForm(); + $form = $search->getForm($data); $form->setSource($data); if (!$data || !$form->isValid()) { Http::response(422, 'Validation errors exist on form'); @@ -137,6 +137,8 @@ class SearchAjaxAPI extends AjaxController { $search->config = JsonDataEncoder::encode($form->getState()); if (isset($_POST['name'])) $search->title = $_POST['name']; + elseif ($search->__new__) + Http::response(400, 'A name is required'); if (!$search->save()) { Http::response(500, 'Internal error. Unable to update search'); } diff --git a/include/staff/templates/advanced-search.tmpl.php b/include/staff/templates/advanced-search.tmpl.php index b31763e4e666ac8951ba13f44729b33fed2caad8..cc14fa18df075e28b0369cb40474791cbd5a5cde 100644 --- a/include/staff/templates/advanced-search.tmpl.php +++ b/include/staff/templates/advanced-search.tmpl.php @@ -12,11 +12,13 @@ foreach ($form->errors(true) ?: array() as $message) { } $info = $search->getSearchFields($form); +foreach (array_keys($info) as $F) { + ?><input type="hidden" name="fields[]" value="<?php echo $F; ?>"/><?php +} $errors = !!$form->errors(); $inbody = false; $first_field = true; foreach ($form->getFields() as $name=>$field) { - ?><input type="hidden" name="fields[]" value="<?php echo $name; ?>"/><?php @list($name, $sub) = explode('+', $field->get('name'), 2); if ($sub === 'search') { if (!$first_field) {