-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed: Blank select on custom reports causing empty exports #14110
Conversation
PR Summary
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few questions/fixes requested.
@else | ||
<option value="" role="option">{{ trans('general.select_location') }}</option> | ||
@endif | ||
{{ ((isset($multiple)) && ($multiple=='true')) ? " multiple='multiple'" : '' }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure what this check does?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, what we want to do is check that there is a multiple value set, so ignore anything that does NOT ever deal with multiple values. and then also that that value is true.
The original way I wrote it (the in red bits) was how I figured out how to get rid of the bug. It took some trial and error and that's how I came up with the fix, tho it was a bit dupilcative with how it was written.
Addmittedly I am still a bit new with ternary syntax, so I might have oopsed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@endif | ||
{{ ((isset($multiple)) && ($multiple=='true')) ? " multiple='multiple'" : '' }} | ||
@if($location_id = old($fieldname, (isset($item)) ? $item->{$fieldname} : '')) | ||
<option value="{{ $location_id }}" selected="selected" role="option" aria-selected="true" role="option"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
role="option"
is in here twice
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can remove that, but that is actually in the selects a LOT. including blades I never touched.
for example: resources/views/partials/forms/edit/asset-select.blade.php or resources/views/partials/forms/edit/user-select.blade.php
I'll update those too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR actually fixes the bug but there are some changes that should be made before merging.
@else | ||
<option value="" role="option">{{ trans('general.select_location') }}</option> | ||
@endif | ||
{{ ((isset($multiple)) && ($multiple=='true')) ? " multiple='multiple'" : '' }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<option value="" role="option">{{ trans('general.select_location') }}</option> | ||
@endif | ||
{{ ((isset($multiple)) && ($multiple=='true')) ? " multiple='multiple'" : '' }} | ||
@if($location_id = old($fieldname, (isset($item)) ? $item->{$fieldname} : '')) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This @if
isn't closed properly. I'm not sure if it's working because @endisset
is closing it but it should have a matching @endif
added.
(the other selects in this PR should be updated as well)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Thanks for the fix 😄
This comment was marked as spam.
This comment was marked as spam.
no code changes, only merge conflicts resolved, and tests are failing. the tests are newer than this branch, but still we don't want em failing. so, gonna have to figure those out. |
{{ (\App\Models\Statuslabel::find($status_id)) ? \App\Models\Statuslabel::find($status_id)->name : '' }} | ||
</option> | ||
@else | ||
<option value="" role="option">{{ trans('general.select_status') }}</option> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC, we have that here because in some places these fields are required and in some they are not, and the dropdowns don't provide a "Select blah" option automatically. This would need to be tested across other things that use these dropdown partials.
@@ -5,7 +5,7 @@ | |||
<div class="col-md-7{{ ((isset($required)) && ($required=='true')) ? ' required' : '' }}"> | |||
<select class="js-data-ajax" data-endpoint="users" data-placeholder="{{ trans('general.select_user') }}" name="{{ $fieldname }}" style="width: 100%" id="assigned_user_select" aria-label="{{ $fieldname }}"> | |||
@if ($user_id = old($fieldname, (isset($item)) ? $item->{$fieldname} : '')) | |||
<option value="{{ $user_id }}" selected="selected" role="option" aria-selected="true" role="option"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch on the duplicate code!
fixed in PR-15418 |
Description
Custom reports have some fields that are multi select. It was originally possible to select an option, and then x out that option, but leave a "blank" choice in that field. Generating the report would end up passing that blank option as a search parameter, and returning an empty report.
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
created and ran tests to confirm payload is as expected
practical testing for visual confirmation
Checklist: