connexta / revelio Goto Github PK
View Code? Open in Web Editor NEWRevelio is a sandbox for migrating Intrigue features off of Backbone and Marionette towards GraphQL and React.
Home Page: http://connexta.com/revelio/
Revelio is a sandbox for migrating Intrigue features off of Backbone and Marionette towards GraphQL and React.
Home Page: http://connexta.com/revelio/
Port the Image Viewer to React and ensure all functionality is retained.
The Image Viewer uses redux to integrate with an external shopping cart that will need to be ported as well. This might require some design discussion.
Currently it errors because the query executor expects a list of sources at the least
Part of: #214
When useQueryExecutor was initially implemented, I skipped merging results from different sources because we were still discussing how we wanted to do so. I ended up just keeping the last result set that came in and moved forward. This is a bug that should be fixed.
ApolloError: GraphQL error: invalid json response body at https://localhost:8993/direct?_=1586371080173 reason: Unexpected end of JSON input
at new ApolloError (webpack-internal:///./node_modules/apollo-client/bundle.esm.js:76:28)
at eval (webpack-internal:///./node_modules/apollo-client/bundle.esm.js:1258:40)
at eval (webpack-internal:///./node_modules/apollo-client/bundle.esm.js:1570:25)
at Set.forEach (<anonymous>)
at eval (webpack-internal:///./node_modules/apollo-client/bundle.esm.js:1568:32)
at Map.forEach (<anonymous>)
at QueryManager.broadcastQueries (webpack-internal:///./node_modules/apollo-client/bundle.esm.js:1566:22)
at eval (webpack-internal:///./node_modules/apollo-client/bundle.esm.js:1657:27)
at Object.next (webpack-internal:///./node_modules/zen-observable/lib/Observable.js:308:23)
at notifySubscription (webpack-internal:///./node_modules/zen-observable/lib/Observable.js:130:18) {
graphQLErrors: [
FetchError: invalid json response body at https://localhost:8993/direct?_=1586371080173 reason: Unexpected end of JSON input
at eval (webpack-internal:///./node_modules/isomorphic-fetch/node_modules/node-fetch/lib/body.js:48:31)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:94:5) {
message: 'invalid json response body at https://localhost:8993/direct?_=1586371080173 reason: Unexpected end of JSON input',
locations: [],
path: [Array]
}
],
networkError: null,
message: 'GraphQL error: invalid json response body at https://localhost:8993/direct?_=1586371080173 reason: Unexpected end of JSON input',
extraInfo: undefined
}
Port AOI / Target functionality
AOI and Targets will need to be added as routes and allow for full CRUD. This should retain feature parity with what has already been implemented.
Note that AOIs and Targets are essentially the same thing with different names, so we should strive to use the same components for both. These both go through the same backend code with a different parameter to differentiate between the two as they are stored in Solr.
Features include:
As a user, I want to be able to select a search form to be used by default
Epic: #248
This PR brought the metacard interactions dropdown into the Search Forms and Result Forms Routes: #276
This issue is to add this to the workspaces route as well.
This can be broken up into a few parts:
Users should be able to set up schedules for searches such that the are run and delivered at specified times.
Finalize Map Feature Parity. Investigate any areas that haven't been implemented in the old ui and complete the map functionality.
Fully test map feature
Spawn issues as they are found
Gazetteer Search Box (H)
-- Suggester (H)
-- Pan / Zoom (H)
Layer Management (H)
Thumbnail / Overview Actions on Map (M)
Right Click Dropdown
-- Copy Coordinates (M)
-- Launch in inspector (L)
Coordinate Types Lower Left, Changes from settings (DMS , MGRS, UTM UPS, Lat / Lon) (M)
Auto focus on selected resource (L)
Overlay WMS / WMTS layer (L)
Add Ordering Preferences to the settings cog. A user should be able to create ordering preferences (such as ftp or physical delivery) for metadata within the system. The backend sends uses this information to broker requests for orders to an external system.
The modified time should be the created time of the new metacard
The function that generates the MetacardAttributes
graphql list is based on a static list of attributes https://github.com/connexta/revelio/blob/master/src/main/webapp/intrigue-api/metacards/gen-schema.js
This means that file needs to be updated any time a new attribute is added to ddf and also means that downstream projects with their own custom attributes need to maintain their own static list of their attributes.
We should base this off of the system instead, pulling them at runtime if possible.
Establish a strategy to tie in third party components. Some third party components, for example, a shopping cart, should be able to be plugged into by a consumer in their specific distribution of software. This is independent of adding third party routes. For example, I want to add an icon that calls third party code in my project that uses revelio.
We currently have two different components in the https://github.com/connexta/revelio/blob/master/src/main/webapp/components/workspaces/workspaces.js file
Workspaces: search/catalog/workspaces
https://github.com/connexta/revelio/blob/master/src/main/webapp/components/workspaces/workspaces.js#L381
Workspace: search/catalog/workspace/:id
https://github.com/connexta/revelio/blob/master/src/main/webapp/components/workspaces/workspaces.js#L79
These two components should be broken out into their own files so that the separation is more obvious
Currently devs need to go to the playground and look at the introspection query to apply the changes to the schema.json file. Investigate to see if there is a way to automatically generate the file.
Users should be able to switch between different search forms (basic, advanced, etc.) when editing a query.
Authenticated sources have the ability to receive credentials from a user for authentication. This functionality should exist within the settings cog, where each authenticated source is shown with the ability to authenticate.
Integrate the schedule component to graphql and conditionally show it if scheduling endpoints exist in the system.
When creating a basic search and adding the 'Match Types' option, the page will freeze and then turn blank. In the console it reports the following errors.
react-beautiful-dnd
An error has occurred while a drag is occurring.
Any existing drag will be cancelled.
> TypeError: immutable_1.getIn(...) is null
TBD
Share Workspace
Create Workspace
Delete Workspace
Subscribe
Duplicate Workspace
@AzGoalie - Filter Workspaces
2D Map
Table
Inspector
Histogram
Query Builders are using a different component than the user settings component. Consolidate these into a singular component:
Query builders are using: https://github.com/connexta/revelio/blob/master/src/main/webapp/sources.js#L152
User Settings is using:
https://github.com/connexta/revelio/blob/master/src/main/webapp/user-settings/source-select.js#L47
Enable HTTPS to work with revelio
List Of Searches
Run Search
Re-run Search
Edit Search
Status (Heartbeat)
Duplicate Search (M) @willwill96
Update GraphQl to show Authenticated sources in the source call response. Right now, the front end will hit the sources endpoint to obtain information about sources registered in the system. This should be expanded to show additional optional information about whether the source is an authenticated one, and if the user is authenticated with it.
Query settings in the metacard schema do not all match the JSON RPC parameter names. These parameters are currently ignored. Paging has been fixed but sort policy and others have not been.
Prepopulate dropdown with faceted query
Currently we have loading components that all use material-ui's LinearProgress
, however they are all implemented differently.
Some declare a component and then return LinearProgress
LinearProgress
directlyrevelio/src/main/webapp/user.js
Line 93 in 6f66f11
We should centralize it so all components grab it from the same place and return the same loading component. This will make it easier if we ever wanted to change the component.
When you use the metacard interaction button (three dots) on search forms and click. Delete Search Form
then click cancel, this error pops up in the console.
Warning: Failed prop type: The prop `children` is marked as required in `ForwardRef(Dialog)`, but its value is `undefined`.
in ForwardRef(Dialog) (created by WithStyles(ForwardRef(Dialog)))
in WithStyles(ForwardRef(Dialog)) (created by MetacardInteractionsDialog)
in MetacardInteractionsDialog (created by MetacardInteractionsDropdown)
in MetacardInteractionsDropdown (created by SearchForm)
in div (created by ForwardRef(CardActions))
in ForwardRef(CardActions) (created by WithStyles(ForwardRef(CardActions)))
in WithStyles(ForwardRef(CardActions)) (created by SearchForm)
in div (created by ForwardRef(Paper))
in ForwardRef(Paper) (created by WithStyles(ForwardRef(Paper)))
in WithStyles(ForwardRef(Paper)) (created by ForwardRef(Card))
in ForwardRef(Card) (created by WithStyles(ForwardRef(Card)))
in WithStyles(ForwardRef(Card)) (created by ItemContainer)
in ItemContainer (created by IndexCardItem)
in IndexCardItem (created by SearchForm)
in SearchForm (created by Route)
in div (created by IndexCards)
in IndexCards (created by Route)
in Route (created by Component)
in Component (created by LoadableComponent)
in LoadableComponent (created by Context.Consumer)
in div (created by Context.Consumer)
in Route (created by AppRouter)
in div (created by AppRouter)
in SelectionProvider (created by AppRouter)
in DrawProvider (created by AppRouter)
in AppRouter (created by _default)
in ThemeProvider (created by _default)
in _default (created by _default)
in _default (created by App)
in div (created by App)
in Router (created by BrowserRouter)
in BrowserRouter (created by App)
in ApolloProvider (created by App)
in MuiPickersUtilsProvider (created by App)
in App
in AppContainer
Update the sources view to issue faceted queries and display them as sources. The sources view should be expanded to support treating a specific attribute in the metadata (the values received from issuing a faceted query) as a source.
Currently the delete modal for index cards always says This will permanently delete the search form.
https://github.com/connexta/revelio/blob/master/src/main/webapp/index-cards/index-cards.js#L42
As a consumer of revelio, I want the ability to add in a route that calls my third party code.
It looks like it's trying to make sure Upper Left is really Upper Left, and so when the user types in values it'll swap them out from under them. Makes for a really jarring user experience.
For USNG, I have no clue what it's doing. Might be similar to DMS but it just looks random to me.
Create Search Form
View Search Form
Share Search Form
Delete Search Form
Make Default Search Form
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.