crash
crash copied to clipboard
Improving crash report listing for a specific signature
Example: http://crashreport.libreoffice.org/stats/signature/com::sun::star::datatransfer::DataFormatTranslator::create(com::sun::star::uno::Reference%3Ccom::sun::star::uno::XComponentContext%3E%20const%20&)
Suggestions:
- sort Date from latest to oldest by default (so the opposite of the current),
- add sorters at for Date and Version columns,
- add more convenient pagination to bottom (for example, move to first page, move 5 pages back, move to previous page, move to next page, move 5 pages forward, move to last page; another alternative: first, last, and a page selector dropdown)
- add selectors that can restrict list to a specific number of days and number of results, like in http://crashreport.libreoffice.org/stats/version/5.2.0.4
- add some kind of version selector, for example a dropdown or a tree view (example: https://www.jstree.com/ )
So this results in a complex filter system. This has been on my list for some time and some initial work has been done already through https://github.com/mmohrhard/crash/commit/c9083911a404119cd1a2d98bc7a7c9b9b6e9e3bf but more needs to be done and it needs to be exposed through the UI. Sadly this commit does not work well with the pagination feature that was later added.
The best way to start implementing this is to start with a few simple items: the date, the os version, ... and implement the filtering for them in https://github.com/mmohrhard/crash/blob/master/django/crashreport/stats/views.py#L165. Don't forget to expose the GET parameters also in the template.
The second step would be to add a UI similar to either the Mozilla solution (e.g. https://crash-stats.mozilla.com/signature/?product=Firefox&version=53.0a1&signature=mozilla%3A%3Anet%3A%3AnsHttpChannel%3A%3AGetCacheTokenExpirationTime&date=%3E%3D2016-12-03T19%3A26%3A30.000Z&date=%3C2016-12-10T19%3A26%3A30.000Z&_columns=date&_columns=product&_columns=version&_columns=build_id&_columns=platform&_columns=reason&_columns=address&_sort=-date&page=1#reports) or just a one based on the concepts from https://github.com/mmohrhard/crash/blob/master/django/crashreport/stats/templates/stats/version.html#L20