This rewrite is intended to address the numerous problems that prevented
the old autoclassify UI from recieving wide adoption, and makes the
following changes:
* Moves the code to use angular 1.5 components, for maintainability
* Reduces the number of HTTP requests to one GET / one POST (associated
with the TextLogError objects), for performance.
* Adds the concept of a selection so that operations can be performed on
multiple lines at once
* Reorganises the panel a bit to fit better with the rest of the
treeherder UI.
* Removes the "Ignore Others" action, which, though occasionally helpful,
was based on an unreliable heuristic.
* Reduces the number of unhelpful bug suggestions displayed by default
where there are many, and ensures that the most plausible suggestions
are shown first.
* Adds keybindings for all operations, so that it is possible to use the
autoclassify panel without touching the mouse.
* Adds basic heuristics for which option to select by default.
Create an per-job "extras" job button in Treeherder and put "backfill"
and the current set of taskcluster options (one click loaner, inspect task)
in there, if they exist.
* Written in react.js for speed
* Does not require custom treeherder backend API's
* Improved scrolling
* Fixes issues in URL when linking directly to line numbers
Begins migration of job rendering to react by replacing cloned revision
lists with a new react component. Related changes:
- Prepends the ignore-job-on-click attribute with data- so that react
will render it
- Makes the linkifyBugs filter wrap its html attributes in quotes
consistently
- Adds explict whitespace via CSS in a few places that previously
depended on whitespace in markup
This includes all the work from reverted PR1960 and adds some
missing ng-clicks. It also switches them to real buttons
in the markup to the block the click through, and adds
a new title generator for backfill.
Do this by making the job groups a clickable button, which is incidentally
also better behaviour for screen readers (since it gives a hint that the
element is clickable)
In this commit, Sheriff access is still maintained in the
Treeherder DB, rather than using the scopes derived from
LDAP.
For local usage with Vagrant, this requires accessing
Treeherder with localhost instead of
local.treeherder.mozilla.org
Loggin in to the Django Admin is not enabled in this
branch. Do use the admin, you must first login through
the normal Treeherder front-end. Then the admin will
be accessible if the user has the privileges to do so.
Persona login will still be technically possible through the
login.taskcluster.net site. But that choice will go away
shortly.
The menus in the app header navbar get a subtle grey background on hover.
For some reason, the same is not applying to the retrigger/backfill menu.
This patch just forces the same style change to occur for this menu.
This also reverts the previous behaviour where we'd cancel a single job
if one was selected. This new approach hopefully makes it harder to
accidentally delete all jobs when only intending to cancel one, while
still being intuitive if that's really what you want to do.
This moves the Sheriff panel out to a full-page app. The functionality
is basically the same, however. Much of the logic and HTML were just
copied from the Sheriff panel.
This also introduces ReactJS to the repo. This was used to speed up
the rendering of the reference data lists in the Exclusions detail
editor. The ``reactselect`` component is defined as normal JavaScript.
We decided not to introduce using JSX at this time.
This adds a new modal form to Treeherder's UI that appears when the user clicks the new "file bug" button.
The script pulls in information about the failure and pre-fills a lot of the form. It attempts to automatically find the product/component for the soon-to-be-filed bug based on the failure's file path, and includes a search box to find other products/components.
The summary by default is the failure line that the user clicked, but the user can show all of the failure lines from the failed job if more needs to be added.
Links to the parsed log, full log and (if applicable) the reftest viewer are included by default in the bug's first comment, but the user can opt to not include them in the submission.
Additional information can be included in the first comment by adding it to the large textarea in the form.
After you click "Submit Bug", the UI sends the new bug information to the Bugfiler API, which then formats the information properly for it to submit to Bugzilla's REST API using a server-side bugzilla account. The API returns either the bug id or a failure message. If a bug id is returned, the UI selects the failure and adds the bug to the classification. If a failure message is returned, the message is displayed to the user and the form becomes re-editable and re-submittable.
entries
This adds a pencil icon when you hover over a job exclusion in the sheriff
panel list. Also included are some spacing fixes for CSS around the
changes I made.