Finished up autocomplete_sources action and added frontend to fetch data only when its needed
Added wait_for_ajax to specs
Fixed builds and improved the setup/destroy lifecycle
Changed global namespace and DRYed up loading logic
Added safety for accidentally loading data twice
Removed destroy as its not necessary and is messing with click events from a blur race condition
Created AutocompleteSourcesController and updated routes
Fixed @undefined from tabbing before load ends
Disable tabSelectsMatch until we have loaded data
Review changes
Add ESLint
## What does this MR do?
- create `package.json`
- add ESLint dependencies to `package.json`
- add JavaScript linting to CI
- add Rake task `lint:javascript`as alias for `eslint` (which itself is an alias for `npm run eslint`)
## Are there points in the code the reviewer needs to double check?
Probably not.
## Why was this MR needed?
My hovercraft was full of eels.
## What are the relevant issue numbers?
- https://gitlab.com/gitlab-org/gitlab-ce/issues/13224#note_12537431
- https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5006#note_13255658
See merge request !5445
CoffeeScript generated JavaScript contains some unreadable
expressions. This refactoring addresses complex uses of
the exestential operator that produced unreadable Javascript.
Use just SQL to check is a user can admin_issue on a project
Using offset pagination instead pages to avoid a count query
Tradeoff
- we duplicate how we check admin_issue in a SQL relation in the Ability class