From b5bca9b88a761af9780b55caf2f2c72fe17e0dd9 Mon Sep 17 00:00:00 2001 From: Jared Hancock <jared@osticket.com> Date: Sun, 1 Jan 2017 16:57:08 -0600 Subject: [PATCH] queue: Fix search by status name The ticket status search field was supposed to mimic a text field rather than a drop-down field like the status selection. Also, since select "TicketStatus / State" from the drop-down list doesn't work, remove items from the drop-down in the advanced search dialog and queue management page which would duplicate fields already available or selected in the list of fields already displayed. --- include/class.list.php | 2 +- include/staff/templates/advanced-search-criteria.tmpl.php | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/class.list.php b/include/class.list.php index 13c9bf817..f10963a8f 100644 --- a/include/class.list.php +++ b/include/class.list.php @@ -1279,7 +1279,7 @@ implements CustomListItem, TemplateVariable, Searchable { 'state' => new TicketStateChoiceField(array( 'label' => __('State'), )), - 'name' => new TicketStatusChoiceField(array( + 'name' => new TextBoxField(array( 'label' => __('Status Name'), )), ); diff --git a/include/staff/templates/advanced-search-criteria.tmpl.php b/include/staff/templates/advanced-search-criteria.tmpl.php index 88060a600..136c7d139 100644 --- a/include/staff/templates/advanced-search-criteria.tmpl.php +++ b/include/staff/templates/advanced-search-criteria.tmpl.php @@ -9,9 +9,11 @@ foreach (array_keys($info) as $F) { } $has_errors = !!$form->errors(); $inbody = false; +$already_listed = []; $first_field = true; foreach ($form->getFields() as $name=>$field) { @list($name, $sub) = explode('+', $field->get('name'), 2); + $already_listed[$name] = 1; if ($sub === 'search') { if (!$first_field) { echo '</div></div>'; @@ -76,6 +78,9 @@ if (!$first_field) <?php if (is_array($matches)) { foreach ($matches as $path => $F) { + # Skip fields already listed above the drop-down + if (isset($already_listed[$path])) + continue; list($label, $field) = $F; ?> <option value="<?php echo $path; ?>" <?php if (isset($state[$path])) echo 'disabled="disabled"'; -- GitLab