diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 12364bce2..5ce75a762 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,4 +1,5 @@ 7.7.18 + - fixed #10766: Matrix search: search dropdowns do not match what is displayed when search form opens. - fixed #10783: Inbox Copy Sender broken - fixed #10782: Send Message friend_wholeName template var - fixed #10778: Matrix navigation: list attributes diff --git a/docs/upgrades/packages-7.7.18/matrix-search-template.wgpkg b/docs/upgrades/packages-7.7.18/matrix-search-template.wgpkg new file mode 100644 index 000000000..165c6791a Binary files /dev/null and b/docs/upgrades/packages-7.7.18/matrix-search-template.wgpkg differ diff --git a/lib/WebGUI/Asset/Wobject/Matrix.pm b/lib/WebGUI/Asset/Wobject/Matrix.pm index 6b96df517..13ed6b3cc 100644 --- a/lib/WebGUI/Asset/Wobject/Matrix.pm +++ b/lib/WebGUI/Asset/Wobject/Matrix.pm @@ -1160,6 +1160,7 @@ sub www_getCompareFormData { my @listingIds = $session->form->checkList("listingId"); $session->http->setMimeType("application/json"); + my $db = $session->db; my (@searchParams,@searchParams_sorted,@searchParamList,$searchParamList); if($form->process("search")){ @@ -1172,8 +1173,23 @@ sub www_getCompareFormData { $attributeId =~ s/^search_//; $attributeId =~ s/_____/-/g; $parameter->{attributeId} = $attributeId; - push(@searchParamList,'"'.$parameter->{attributeId}.'"'); - push(@searchParams,$parameter); + push(@searchParamList, $db->quote($parameter->{attributeId}) ); + push(@searchParams, $parameter); + } + } + if (! scalar @searchParamList) { + ##Use defaults for all form values + foreach my $category (keys %{$self->getCategories}) { + my $attributes = $db->read("select * from Matrix_attribute where category =? and assetId = ?", + [$category,$self->getId]); + while (my $attribute = $attributes->hashRef) { + push @searchParamList, $db->quote($attribute->{attributeId}); + push @searchParams, { + name => $attribute->{name}, + value => $attribute->{defaultValue}, + attributeId => $attribute->{attributeId}, + }; + } } } $searchParamList = join(',',@searchParamList);