Commit Graph

216 Commits

Author SHA1 Message Date
noahtalerman
1b23b7b74f
Add style fixes caught during QA. Add favicon. (#119)
Changes include style fixes that were caught during a QA pass.
2020-12-10 13:09:05 -08:00
noahtalerman
5dd9b75e9c
Update query page (edit, new, manage) and packs page (edit, new, manage) styles. (#106)
The goal of this PR is to update the style across the query and packs pages so they are consistent with the latest global styles (colors, buttons, and fonts).
2020-12-08 12:07:54 -08:00
Zach Wasserman
0670db66c4
Migrate JS tests to Jest and update libraries (#74)
- Move from Mocha to Jest for JS testing (Jest seems to have better support for
 'watching' tests and a more active community these days).
- Codemod existing tests to Jest syntax (using https://github.com/skovhus/jest-codemods)
- Fix some errors in tests that were previously hidden.
- Update Babel.
2020-12-01 10:15:12 -08:00
noahtalerman
51cfb07f64
Implement global colors. Add italic font. (#64)
The goal of this PR was to insert new colors, remove legacy colors, and update only the styles accordingly. The Nunito Sans Italic font was also added.

Later PRs will include layout, copy, and style change to individual components. These later changes will more exactly resemble the current mockups.
2020-11-24 08:59:03 -08:00
Zach Wasserman
6dccabb5b0
Clean up output of JS test errors (#63)
- Output easy to parse stack traces during run of tests
- Fix some spurious warnings and errors in tests
- Add --exit flag to Mocha invocation to fix hang due to timers in ACE editor
2020-11-24 08:25:52 -08:00
noahtalerman
23ce98ec51
Add Nunito Sans font and update global styles. (#59)
This is the first PR as a part of the Fleet UI Refresh #38.

Changes include:

- Add Nunito Sans font files and modify global styles to reflect the font change.
- Modify global font variables to reflect new sizing and weight naming conventions.
-- New sizing and naming conventions:
--- SIZE: xx-small: 12px, x-small: 14px, small: 16px, medium: 20px, large: 24px, x-large: 28px
--- WEIGHT: regular: 400, bold: 700
- Remove the old Oxygen font files.

Changes to other style sheets reflect the changes to the new font sizing and weight naming conventions for global variables. The changes don't necessarily use the correct size (as illustrated by mockups). Those "up to spec" sizing changes are to come.
2020-11-19 16:51:22 -08:00
Zachary Wasserman
7494513400 Clean up and comments before merge. 2020-07-21 14:05:46 -07:00
Zachary Wasserman
b0595748f1 Implement pagination of hosts in the web UI
This commit takes advantage of the existing pagination APIs in the Fleet
server, and provides additional APIs to support pagination in the web
UI. Doing this dramatically reduces the response sizes for requests from
the UI, and limits the performance impact of UI clients on the Fleet and
MySQL servers.
2020-07-21 14:05:46 -07:00
billcobbler
a83a26b279 Add ability to disable live queries (#2167)
- Add toggle to disable live queries in advanced settings
- Add new live query status endpoint (checks for disabled via config and Redis health)
- Update QueryPage UI to use new live query status endpoint

Implements #2140
2020-01-13 16:53:04 -08:00
Zachary Wasserman
adf87140a7
Add ability to prefix Fleet URLs (#2112)
- Add the server_url_prefix flag for configuring this functionality
- Add prefix handling to the server routes
- Refactor JS to use appropriate paths from modules
- Use JS template to get URL prefix into JS environment
- Update webpack config to support prefixing

Thanks to securityonion.net for sponsoring the development of this feature.

Closes #1661
2019-10-16 16:40:45 -07:00
Zachary Wasserman
1eccf9a874
Add warning in query UI when Redis fails (#2086)
- Add warning message when Redis fails
- Disable query button when Redis fails
- Refactor SMTP warning banner into component for reuse

Closes #2073
2019-08-13 09:42:58 -07:00
Zachary Wasserman
2060d001c6
Run correct query even after targets are set (#2060)
This PR corrects the query editor behavior to run the correct query in
all (tested) circumstances.

Fixes the original issue in #2028 and #2054 (introduced by the fix in #2030)

Closes #2054
2019-06-12 10:39:50 -07:00
Zachary Wasserman
9ef377a2b0
Run correct query when navigating to query by URL (#2030)
Fixes a bug in which the default query would run rather than the query
displayed in the editor unless that query was manually edited after the
page loaded.

Fixes #2028
2019-04-25 11:00:35 -07:00
Zachary Wasserman
ca84f84078
Add query editor support for control-return (#1979)
- Control-return in the editor will now run the query

Closes #1631
2019-01-15 11:06:52 -08:00
Zachary Wasserman
6767369d48
Upgrade React to version 16 (#1983)
- Update all associated dependencies
- Very minimal changes to components
- Extensive refactoring for broken tests

Closes #1978
2019-01-14 13:45:28 -08:00
Zachary Wasserman
dc4b97d15f
Fix React deprecation warnings (#1976)
- Refactor imports of PropTypes to use the prop-types package
- Upgrade dependencies that were setting off deprecation warnings
2019-01-06 17:25:33 -08:00
Zachary Wasserman
085415aa7b
Allow selection of query targets by UUID in URL params (#1972)
Closes #1934
2019-01-06 17:21:15 -08:00
Zachary Wasserman
759a69b5b7
Upgrade Bourbon to 5.1.0 and fix deprecation warnings (#1973)
- Replace uses of deprecated Bourbon helpers with raw CSS
- Add autoprefixer into the build chain to prefix the now removed helpers

This process was achieved by running through each of the deprecation warnings and using the following bash function to replace it in all files:

```
function bourbon-deprecate() {
    grep -rl "@include $1" ./frontend --exclude-dir=.git | xargs sed -i '' -E "s/@include $1[(](.*)[)]/$1: \1/g"
}
```

For some helpers, this did not result in valid CSS, so manual modifications were made.

Closes #1189 #1274
2019-01-03 12:46:55 -08:00
Zachary Wasserman
923e4e1f08
Fix issue in which default query runs instead of entered query (#1616)
Verified to work in the following scenarios:
- Saved query loaded and run
- Saved query loaded, edited, and run
- New query edited and run

Closes #1611
2017-11-15 11:20:42 -08:00
John Murphy
f58e36e66a Fixed issue with query state, and query form title (#1550)
The component state of QueryPage was not assigned correctly, occasionally causing incorrect queries to be executed.
2017-08-23 14:00:24 -05:00
Kyle Knight
28f0247654 Fix busted scrolling after full screen query results (#1400) 2017-03-13 11:20:34 -04:00
Mike Stone
a853acd172 Fix bug selecting targets when querying a host (#1366) 2017-03-09 13:01:15 -08:00
Mike Stone
658ee2f3ee Fix 907 - stop query when websocket finishes (#1371) 2017-03-07 16:24:30 -05:00
Kyle Knight
13f06904ee Toggle small nav after leaving query page (#1355) 2017-03-06 17:34:30 -05:00
Zachary Wasserman
3d6ca7d5a4 Use sockjs to gracefully degrade websockets (#1255)
Use the [SockJS Protocol](https://github.com/sockjs/sockjs-protocol) to handle
bidirectional communication instead of plain websockets. This allows
distributed queries to function in situations in which they previously failed
(Load balancers not supporting websockets, issues with Safari and self-signed
certs, etc.).

Also includes fixes to the JS message handling logic where slightly different
message delivery semantics (when using XHR) were exposing bugs.

Fixes #1241, #1327.
2017-03-01 13:14:26 -08:00
Kyle Knight
169535afab Fix max-height issue with Full Screen Query Results (#1323) 2017-03-01 13:11:09 -06:00
Kyle Knight
4d7a850481 Fix full-screen view by removing shrinking class (#1313) 2017-02-27 12:04:52 -05:00
Kyle Knight
b7fb83ce4b Full Screen Query Results (#1238) 2017-02-24 18:01:43 -05:00
Kyle Knight
4aaf847edc Add Double Click event to Packs & Query tables (#1306) 2017-02-24 17:47:32 -05:00
Kyle Knight
0d6aa52ce2 Remove extraneous flash success messages (#1226) 2017-02-23 09:49:16 -06:00
Mike Stone
803bc41366 New query page updates (#1229)
* Stop rendering results when query hasn’t been run

* Adds QueryPageSelectTargets component

* Re-arranges target select input on Query Page

* Adds label to KolideAce component

* Re-arrange inputs on the Query Form component
2017-02-16 15:31:21 -05:00
Mike Stone
b32e489716 Fix JS test warnings (#1209) 2017-02-13 18:19:00 -05:00
Mike Stone
f0f40d3168 Indicate failed hosts on Query Results table (#1192)
* Adds hosts_count attribute to campaign with success/fail/total

* Displays error % in Progress Bar component

* Indicate failed hosts on Query Results table

* Changes ProgressBar background to silver
2017-02-10 09:39:20 -05:00
Mike Stone
eb948da80d Fix weird rendering issue when for no query results (#1146) 2017-02-02 10:39:01 -05:00
Kyle Knight
c12340b346 Update Delete Query modal style (#1149) 2017-02-02 10:25:42 -05:00
Mike Stone
9468fb3908 Reset checkedQueryIDs after queries are deleted (#1125) 2017-01-30 15:12:31 -05:00
Mike Stone
cdc3d1bf3a Renders query list in case-insensitive alpha order (#1126) 2017-01-30 15:11:13 -05:00
Mike Stone
54653127ee Clear selected targets and query results on page change (#1127) 2017-01-30 15:09:26 -05:00
Mike Stone
e18f93de02 Wait for API calls to complete before rendering page (#1117) 2017-01-27 10:05:44 -05:00
Kyle Knight
8f6cd65f4b Sorting Query and Packs tables alphabetically (#1093) 2017-01-25 08:31:29 -06:00
Mike Stone
8432d0494f Allow users to export query results (#1082) 2017-01-24 16:18:02 -05:00
Mike Stone
bc9273622c Add Query online hosts button (#1070) 2017-01-20 18:07:54 -05:00
Mike Stone
dd74d37033 Send changed params in patch requests (#1005)
* PATCH packs with updated attributes only

* PATCH queries with updated attributes only

* PATCH user updates with updated attributes only

* Prevent setting state on unmounted component

* Load all packs on the manage packs page

* Do not send target info to server if unchanged
2017-01-18 12:10:37 -05:00
Mike Stone
0dbe94573f Don’t allow user to run query without selected targets (#1000) 2017-01-18 09:38:52 -05:00
Kyle Knight
048938de0b Add spinner for running Query (#926)
* Add spinner for running query

* fixing lint

* Adding in check for this.socket

* Full height results area with centered spinner

* Don't hide table if query is stopped

* Remove results container if no results yet

* No more console.log
2017-01-12 12:28:46 -06:00
Kyle Knight
427235b837 Select Targets disabled adding padding to right side (#925) 2017-01-12 11:32:41 -05:00
Kyle Knight
73035877b3 Fixing spacing of manage packs header (#848)
* Fixing spacing of header

* Make h1 headers consistent
2017-01-10 10:27:10 -06:00
Kyle Knight
0fc4238595 Styling Manage Queries page (#793) 2017-01-09 21:58:18 -05:00
Kyle Knight
2bbad2f05a Getting New Query back in order (#830) 2017-01-09 17:13:52 -06:00
Mike Stone
fa5c0c53cd Fix run query bug where query text wasn’t changing (#821) 2017-01-09 15:32:23 -05:00
Mike Stone
39c9c6b0da Manage queries page (#762)
* renders ManageQueriesPage at /queries/manage

* Renames QueriesList components to ScheduledQueriesList components

* creates QueriesList component

* Adds side panel component to display query details

* Adds KolideAce editor to Query Details side panel

* Handle Edit Query button click

* Change text of the Delete Query button

* Show confirmation modal before deleting queries
2017-01-06 15:57:44 -05:00
Mike Stone
92d91fdebc Handle server errors (#730)
* consistent error handling

* Display server errors in InviteUserForm

* Handle errors in Form component

* Refactors query form

* creates KolideAce component

* Renders QueryForm from query page and manage hosts page

* Moves ace editor and select targets dropdown to query form

* Render base errors in Form HOC

* LoginPage and ForgotPasswordPage server errors

* Ensure unique key for user blocks

* Adds base error to login form and forgot password form

* Adds base error to query form

* Adds base error to Pack Form

* Adds errors to confirm invite form

* Adds clearErrors action

* clear errors when confirm invite page unmounts

* Handle errors in the App Setting page

* Handle server errors in the User Settings Page

* Handle server errors in the User Management Page
2017-01-05 19:01:17 -05:00
Kyle Knight
ab540cdfb5 Dropdown Button (#744) 2017-01-05 09:26:10 -06:00
Mike Stone
8567cc458c Run query (#549)
* Adds campaigns to redux state

* Update campaign with web socket data

* Destroy the current campaign when creating a new one

* close the socket when leaving the page or creating a new campaign

* Allow stopping a running query

* Update campaign with query results

* Adds QueryResultsTable

* Display flash message if campaign can't be created

* Allow filtering query results

* Adds filter icon

* Prevent query text updates when the query is running
2016-12-21 12:07:13 -05:00
Mike Stone
608cca4910 Removes unused sidebar code (#660) 2016-12-20 09:13:50 -05:00
Kyle Knight
0b70f58614 Styling Manage Hosts [Grid View] (#602) 2016-12-15 08:44:45 -06:00
Mike Arpaia
bed279b919 Remove "selected" keyword from response (#635) 2016-12-13 15:59:59 -08:00
Mike Stone
8bb2a39d86 Improves re-usability of the SelectTargetsDropdown (#518)
* Improves re-usability of the SelectTargetsDropdown
2016-11-21 10:38:23 -05:00
Zachary Wasserman
6133a61fd1 Fix flatMap logic in target selection request (#512)
The previous logic was causing nulls to be sent as IDs in the request arrays.
2016-11-18 09:20:21 -08:00
Mike Stone
bb62993ea5 Hosts side panel (#472)
* Host side panel

* Query form handles labels

* QueryComposer handles labels

* ManageHostsPage add label transitions

* Stop preventing default on click outside of ellipsis menu

* get labels from API

* use real label data in hosts side panel

* create label on label form submit

* adds platform dropdown

* Validate query text

* Label header

* validate presence of query text
2016-11-17 12:12:41 -05:00
Mike Stone
b0e856c369 Update target select (#464)
* Stop sending click event to click handler prop

* Delineates between hosts & labels in dropdown options

* Render target details when a moreInfoTarget is present

* Remove moreInfoTarget when the select is closed

* Remove modal

* refactor formatting targets API response

* Adds + icon to dropdown options

* Restructures dropdown rendering
2016-11-14 12:32:13 -05:00
Mike Stone
995d86e902 Get targets from API (#459)
* API client getTargets

* change label to display_text

* filters options

* send selected targets to server

* get targets when selected targets are added or removed

* show 0 unique hosts when no targets have been selected
2016-11-09 13:08:00 -05:00
Mike Stone
63e84715c7 Update query (#446)
* Api client update query

* Update query when user clicks "Save Changes"

* Update query text
2016-11-08 09:23:25 -05:00
Mike Stone
01e7ac2b6c Create query (#382)
* API call to create queries

* Add queries to redux

* create query when query form is submitted

* Redirect to ShowQueryPage after creating query

* Removes theme dropdown and NewQuery component header

* Extract NewQueryPage component state to redux state

* Pass logic down to NewQuery component as props

* Changes NewQuery component name to QueryComposer

* Render NewQueryPage for /queries/:id route

* Update ReduxConfig for loading a single resource

* QueryPage tests

* Get query when the query page loads

* catch errors when query is invalid

* Renames UpdateQueryForm to QueryForm to re-usability

* Changes InputField to a controlled component

* Always render the Query Form on Query Pages
2016-11-07 11:42:39 -05:00
Mike Stone
e2a5502e21 Select targets (#340)
* Api client get targets

* Allow entities to parse full api response

* responsive nav style fixes

* Add disabled prop to button

* Add targets from API to target select input

* customize target rendering in input field

* call API on select target input change

* display # hosts selected

* Adds new icons to icon font

* Customize select targets input options

* Update directory structure

* restructure select targets input

* Adds hosts to labels

* Host modal styles

* ShadowBoxInput component

* TargetInfoModal for labels

* consistent entity response in api client stubs

* Fix bug removing multiple hosts in target select input

* change Button component to use css classes
2016-10-27 12:14:30 -04:00
Mike Stone
aa275751b2 Client side query validation (#335)
* validate query text

* Update structure of submitted SaveQueryForm data

* form calls correct prop function when invalid query text

* Lowercase directory names
2016-10-21 17:58:13 -04:00