Skip to content
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

Complex issue filter gui #847

Merged
merged 1 commit into from
Sep 1, 2017
Merged

Conversation

csordasmarton
Copy link
Contributor

No description provided.

@@ -50,7 +59,7 @@ def conv(text):
return text.replace('*', '%')


def process_report_filter_v2(report_filter):
def process_report_filter_v2(report_filter, count_filter=None):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add a comment here how the count_filter modifies the filter expression.

@@ -41,6 +41,15 @@
LOG = LoggerFactory.get_new_logger('ACCESS HANDLER')


class CountFilter:
FILE = 1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we count from 0?

@@ -299,7 +299,7 @@ def test_get_diff_checker_counts_core_unresolved(self):
cmp_data)
# Unesolved core checkers.
test_res = {'core.NullDereference': 4, 'core.DivideZero': 3}
self.assertDictEqual(diff_res, test_res)
self.assertDictContainsSubset(test_res, diff_res)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add some comments here, how the filtering behavior changed and why a subset check is enough or we should compare to the whole result returned in diff_res as before and change test_res.

This comment applies to the other tests too which were changed.


// TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What should be done here?

Copy link
Contributor

@whisperity whisperity left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! 💛 👍

I have minor comments for now.

Is this (the input box's border being empty on the corners) intended?

  • image
  • I think the placeholder text is too large compared to the input box itself. But this is just a personal preference.
  • The enum-driven (review status, detection status) filters have an orange border for me. The "free text" filters only have this orange border when I click into the tooltip. This feels weird, and the border creates a clunky bounding box around the nice "message bubble" styled border.
  • When a "free text" filter dropdown is filtered in the text box to a value that does not exist, a No item is shown, but it still has the "click" cursor. I think it would convey this meaning if we'd use the not-allowed standard cursor.

Are we sure we want the user to filter runs when the filter sidebar is opened in a run? Consider this: I clicked Xerces to open the bugs in Xerces, and now I'm seeing all bugs.):
image

Filter counts work strange when I select multiple different filters and such, without a Ctrl-F5, the other filters don't update their counts.

  • ❓ In case of the enum-based filters, shouldn't we encode the string value (instead of the enum int) into the URL? It would make for more meaningful URLs to save.

Another minor thing I think which is easy to implement and makes this feature even nicer if one could entirely hide or make the filter sidebar very small. Currently I feel it occupies a lot of space on the page (this could be because I'm yet to get used to it) especially if I want to just scroll through my bugs without wanting to execute any filters whatsoever.

@@ -299,7 +299,7 @@ def test_get_diff_checker_counts_core_unresolved(self):
cmp_data)
# Unesolved core checkers.
test_res = {'core.NullDereference': 4, 'core.DivideZero': 3}
self.assertDictEqual(diff_res, test_res)
self.assertDictContainsSubset(test_res, diff_res)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the actual change here, why is this test change needed? Now the diff will send back more data?

/**
* Removes duplications from the given array.
*/
function arrayUnique (arr) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this approach faster than using a Set? If so, could you please move this to codechecker/util? I'll have use for this function later on!

@csordasmarton csordasmarton force-pushed the issue_filters branch 9 times, most recently from 2d9a7d3 to 2c152ff Compare August 31, 2017 15:15
@csordasmarton csordasmarton force-pushed the issue_filters branch 3 times, most recently from 9e05e90 to ab388a6 Compare September 1, 2017 11:27
@gyorb gyorb merged commit 2bde118 into Ericsson:version6 Sep 1, 2017
@csordasmarton csordasmarton deleted the issue_filters branch September 4, 2017 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants