The code for listing all of the defined queries is mixed together with the code for editing a single query. Notably, this results in large amounts of unnecessary data being loaded for the list view, which causes substantial rendering slowdowns.
To address this issue, we now only load the necessary data for the list view, and load the full data when it's actually needed (any endpoint that returns a single query). The primary changes that achieve this are:
- Create a new `QueryDetailsSerializer` serialiser, which includes all of the query info, and change the existing `QuerySerializer` serialiser to only include the necessary attributes of each query for generating a list of them all.
- Split the monolith `/plugins/explorer` route into `/plugins/explorer` for showing just the list of queries, and `/plugins/explorer/queries/:query_id`, for showing/editing/running a specific query.
What does this fix?
===================
When creating a data explorer query that includes parameters, the
parameter input boxes don’t display until the page is refreshed.
After this commit, when the query is saved, the input boxes will appear.
ref: t/113297
- Drop `explorer-container` and move its logic to `admin-plugin-explorer` container
- Convert resizing of the query edit pane from jquery -> draggable modifier
* [WIP] group ids saving on new reports
* Add groups to default queries, and added tab connector
* group_ids set to empty array for default queries
* group reports route (in & and) action
* [WIP] created group reports show route/controller
* Find correct query in show route
* Removed empty array for group_ids in query file
* Add report show view, where users can run queries
* Removed unneeded commas from queries.rb
* Allow non-admin group members to access reports
* query-result component dynamic download url based on location
* Removed accidental changes, and corrected tab size
* Group members can add params to queries
* Specs for new QueryController actions
* remove "Inlude query plan" from group reports
* Run prettier
* return and return -> return render
Co-Authored-By: Robin Ward <[email protected]>
* [WIP] changes from review
* Remove weird [-1] group_ids logic, for a simply check for [] in query update action
* Added integration tests for group report access
* Using guardian for securing endpoints, and much improved specs
* Update assets/javascripts/discourse/components/group-reports-nav-item.js.es6
Co-Authored-By: Robin Ward <[email protected]>