* refactor components using bootstrap elements with reactstrap
* add template for cdn to access Bootstrap CSS
* remove bootstrap, jquery and angular library
* fixes to get tests passing and add bootstrap link to csp
This will allow us to use the SelectedJob context coming in the next commit.
These changes are tangled with that next commit, but I hoped this would
make it easier to review by removing this noise.
* Prevent flicker when switching from Perfherder to Treeherder
The page would reload an extra time while the route gets changed.
This way, we set it to the default route directly.
* Cleanup displayed message when an invalid "repo" param is set
* Improve the logic in _checkFieldFilters
* Have Perfherder use React login
This will allow better interaction between the two components. As we convert
more items (like navbars, etc) we will move them into this umbrella Treeherder
component.
This adds some new components and removes the AngularJS ng-repeat for
pushes. In the course of this work, some of the AngularJS providers were
converted to helper functions.
In a couple cases, I had to add new code to the AngularJS areas so that it
would continue to interact well between Angular and React.
Also:
* Rename some functions and CSS classes from resultset to push
* Add unlistening for events during unmount of components
This replaces the logic that was in clonejobs.js that formerly
handled rendering the pushes, platforms and jobs and converts it to
ReactJS. The ReactJS code is hosted as a directive in AngularJS
using ngReact reactDirective.
This also removes the feature where you can hide revisions because
it was believed to not be used and added unnecessary complications
to the code.
Co-authored-by: Casey Williams cwillia5@gmail.com
This adds the upgrade to Bootstrap 4, and some basic changes and
some CSS tweaks we needed to keep out UI consistent.
The simpler changes are things like:
* Classes that were renamed
* Adding classes that are now needed (dropdown-item, etc)
* Change an item from a button to a span
* Changing order of items (modal header close button, etc)
* CSS class syntax changes
The other changes are lots of CSS padding, margin, font and
other spacing tweaks.
The `class='kbd'` usages were missed from the changes in bug 1339508.
The mismatched tags have been present since the original landing in
bug 1139421.
Also removes a stray whitespace character from index.html.
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.
Add taskcluster credentials to local storage for use against
taskcluster api directly, rather than via pulse messages and
pulse_actions. This only ports backfilling for now, but eventually
all actions should be possible with this setup.
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
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.
Instead, generate the data when required. We will store the return value
of this in memcache for a day to ensure things are responsive for the sheriffs
when classifying recent failures.
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 changes ingestion, the API endpoints, and the frontend to match
the new structure. For now we continue to store text_log_summary artifacts,
though they don't do anything anymore.
Move the key events into an array, and bind once when the controller is
initalized rather than every keypress. Deal with special cases by providing
the option to override the stopCallback behaviour on a per-combo basis
rather than by dynamically unbinding and rebinding keys.
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.