From ce3ceaebc6317e47031a83dd0106e2f2742bee13 Mon Sep 17 00:00:00 2001 From: Jared Hancock <jared@osticket.com> Date: Fri, 7 Aug 2015 15:32:05 -0500 Subject: [PATCH] search: Fix saving of advanced search with custom fields --- include/ajax.search.php | 4 +++- include/staff/templates/advanced-search.tmpl.php | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/ajax.search.php b/include/ajax.search.php index c4e765c6d..bfa92ba3c 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 b31763e4e..cc14fa18d 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) { -- GitLab