Commit Graph

56 Commits

Author SHA1 Message Date
jjaffeux 6205bb8569 DEV: linting 2020-09-22 17:11:41 +02:00
Joffrey JAFFEUX e0a3ad12a6
DEV: apply coding standards (#66) 2020-09-04 13:23:11 +02:00
Krzysztof Kotlarek fe0806eb2a
FEATURE: introduce data-explorer tables (#61)
Instead of using `PluginStoreRow` we should use plugin-specific models like `DataExplorer::Query` and `DataExplorer::QueryGroup`
2020-08-27 10:29:57 +10:00
Ricky Chon dcfb92d7f8
FEATURE: Add ability to soft delete (hide) queries and revert deletion with rake tasks (#54)
* FEATURE: Add hide button (toggleable) for all queries (frontend only)

* Switches between hide/unhide on click
* Works almost like the delete button, but toggles between the query's
hidden attribute instead
* So far this is only a frontend feature, the backend implementation
still needs work

* Revert "FEATURE: Add hide button (toggleable) for all queries (frontend only)"

This reverts commit a8771d2ad5.

REVERT: Remove button that hides queries (frontend)

* Prepare for migration of old frontend logic to backend
* We are going to reuse the existing delete button, but change its
backend logic to enable soft deletion. From the user's perspective
nothing will change, but any deletion mistakes can be reverted.

* DEV: Hide user queries upon deletion, but keep them in store

* Creating a new query will set its hidden attribute to false by
default
* Deleting a user-made query will not delete it from the store, but
set its hidden attribute to true
* User queries will not be indexed if they are hidden
* Undeleting a query will unhide it, and will be indexed
* Updating a hidden query will unhide it, and will be indexed

* SPEC: Add spec for hidden/deleted queries

* Hidden queries should not be shown

* FEATURE: Add ability to delete/hide system queries

* System queries are now able to be deleted from view, but will remain
in the backend for retrieval, if necessary

* FEATURE/DEV: Add rake commands for query soft deletion

* query:list_hidden - Shows a list of hidden queries
* query:hide_all[only_default] - Hides all queries, w/ boolean arg to
hide only default ones
* query:unhide[id] - Unhides a query by id
* query:unhide_all[exclude_default] - Unhides all hidden queries,
w/ boolean arg to exclude default ones

* Remove rails loggers

* UX/DEV: Update query rake tasks to be more user friendly

* Split query:hide_all[only_default] into two tasks:
    * query:hide_all - Hides all queries
    * query:hide_all:only_default - Hide only default queries
* Split query:unhide_all[exclude_default] into two tasks:
    * query:unhide_all - Unhides all hidden queries
    * query:unhide_all:exclude_default - Unhides all non-default
    queries
* Rename file to match task name

* UX: query:unhide can accept multiple arguments

* Example: rake query:unhide[-5,-6,-7,3,5,6,-13,-14,-10]

* UX: Update query rake tasks to output cleaner messages

* Remove unneeded comment

* DEV: Keep only necessary rake tasks, use more specific naming

* UX/DEV: Add rake task for hard deletion, better console logs

* User is able to hard delete a query only if it is hidden, otherwise
output a message stating so
* Add commented examples above each task
* Add rainbow support for more readable console logs
* Successful messages will display green, failures display red,
additional info displays yellow
* Separate multiple queries with spaces instead of lines

* DEV: Remove rainbow colorizing in console logs

* Rainbow is a dependency of rubocop and it may go away in the future
* Rainbow is only used for dev and test environments

* DEV: Add Rails engine to enable rake tasks to be loaded at runtime

* DEV: Favor require - load files only if they are not already loaded

* SPEC: Add tests for data_explorer[id] rake command

* Test if a single query is hidden correctly
    * Expect length of query list to not be modified
    * Expect array of hidden queries to have exactly 1 element
    * Expect that one element to have the same ID as the one invoked to
    be hidden
* Test if multiple queries are hidden correctly
    * Expect length of query list to not be modified
    * Expect array of hidden queries to have the number of elements
    equal to the number invoked to be hidden
    * Expect the elements to have the same ID as the ones invoked to be
    hidden
* Test if a query exists in PluginStore
    * Expect query list to be empty

* DEV: Clear pre-existing tasks before redefining

* This prevents double invocation when user invokes the task once

* SPEC: Add tests for unhide_query rake task

* Test if a single query unhides correctly
    * Expect length of query list to not be modified
    * Expect array of hidden queries to have exactly 1 element after
    unhiding 1 of 2 queries
    * Expect remaining element to be hidden
* Test if multiple queries unhide correctly
    * Expect length of query list to not be modified
    * Expect array of hidden queries to have exactly 1 element after
    unhiding 3 of 4 queries
    * Expect remaining element to be hidden
* Test if a query exists in PluginStore
    * Expect query list to not be modified

* SPEC: Add tests for hard_delete rake task

* Test if a single query hard deletes correctly
    * Expect length of query list to be shorter by 1
    * Expect array of hidden queries to have exactly 1 element after
    hard deleting 1 of 2 queries
    * Expect 1 remaining hidden element
* Test if multiple queries hard delete correctly
    * Expect length of query list to be shorter by 3 after hard deleting
    3 of 4 queries
    * Expect array of hidden queries to have exactly 1 element after
    hard deleting 3 of 4 queries
    * Expect 1 remaining hidden element
* Test if a query exists in PluginStore
    * Expect hidden query list to not be modified
* Test if a query is not hidden
    * Expect query list to not be modified

* UX: Favor newline char in place of puts for logs

* Condensed console logs to output newline char instead of another puts
statement (reduces number of lines used significantly)
2020-07-29 16:50:24 +10:00
Penar Musaraj 277346b097 DEV: Find/replace deprecated decorators 2020-02-19 11:57:59 -05:00
Justin DiRose 48f0e2b982
FIX: Return all groups instead of truncated list (#42) 2019-11-14 12:39:55 -06:00
Joffrey JAFFEUX aa9a3a8ce5
minor code cleaning (#40) 2019-10-16 12:43:35 +02:00
Joffrey JAFFEUX 4196321e41
FIX: ensures group_ids are not "" or nil (#39) 2019-10-16 12:43:10 +02:00
Joffrey JAFFEUX a3ae064654 linting 2019-09-11 10:30:39 -05:00
Mark VanLandingham 30fe9289b8 Allow groups to access queries (#36)
* [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 <robin.ward@gmail.com>

* [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 <robin.ward@gmail.com>
2019-09-11 10:09:41 -04:00
Joffrey JAFFEUX b9169ec28e
REFACTOR: old patterns, deprecations and dead code (#35) 2019-07-16 12:46:32 +02:00
Osama Sayegh 859021bb3c
UX: make SQL editor resizable (#33) 2019-04-07 09:05:43 +03:00
Rishabh a96bfdf6d5 DEV: Remove ESLint warnings 🚨 2019-01-22 17:19:01 +05:30
Joffrey JAFFEUX 0d655221f4 FIX: ensures filteredContent is recomputed when sortBy changes (#30) 2018-12-28 14:58:28 +05:30
Joffrey JAFFEUX 2b6357f8b4
FIX: ember 3 support 2018-12-16 15:22:23 +01:00
Rishabh 0af2453c23 FEATURE: Make searching case-insensitive 2018-11-16 16:13:40 +05:30
Rishabh 344f6e357d
FEATURE: Replace combo-box with search filter (#28)
* FEATURE: Replace combo-box with search filter
* Delete unused listname property and css fixes
* Use ES6 syntax and `@computed` decorator
2018-11-02 18:11:20 +05:30
Rishabh Nambiar 9d7db064af run Prettier 2018-10-10 17:31:14 +05:30
Rishabh b352e747c7
FEATURE: Ship default queries with the Data Explorer
Load default queries from queries.rb and save when run.
Each time a query is run, it picks up changes from queries.rb.
2018-10-10 16:59:13 +05:30
Rishabh Nambiar 68059b540e UX: Style improvements in query edit & result view 2018-09-12 18:58:54 +05:30
Rishabh Nambiar 5edb8ea7f8 UX: Make Explorer UI similar to User Activity and Groups pages 2018-08-31 23:41:33 +05:30
Rishabh Nambiar 5a75b6c1e1 FIX: Fix ESLint issues and use d-icon instead of <i> tags 2018-08-30 21:35:43 +05:30
Rishabh Nambiar d5d933c2a8 FEATURE: Sort queries by names, last_run_at by clicking table headers 2018-08-30 17:32:52 +05:30
Rishabh Nambiar 80f97d9514 UX: Force refresh model to update last_run_at after a query is run 2018-08-30 14:13:40 +05:30
Rishabh Nambiar 1b68847d21 FEATURE: Sort queries by last_run_at as default 2018-08-27 20:10:25 +05:30
Rishabh Nambiar feb8a1ce0f FIX: Don't save placeholder text only if description is empty 2018-08-25 23:02:43 +05:30
Rishabh Nambiar 2f0400a7e0 FIX: Don't save placeholder text if description is empty 2018-08-24 12:43:18 +05:30
Rishabh Nambiar 86a4957bd1 FIX: Ensure that back button always redirects to index page 2018-08-17 15:30:07 +05:30
Rishabh Nambiar a64ef6c6c7 Added button to go back to query list after visiting a query 2018-08-16 23:14:07 +05:30
Rishabh Nambiar 83b1fcb54b Added User.find() & fixed scroll history bug 2018-08-14 17:38:08 +05:30
Rishabh Nambiar 6e806cc1df Added clickable rows, default query sorting by id and clickable usernames 2018-08-14 17:38:08 +05:30
Rishabh Nambiar e341d5a6fa List all previous queries on Data Explorer homepage 2018-08-14 17:38:08 +05:30
Régis Hanol 7c94f98436 FIX: prevent creation of query with an empty name 2018-05-09 22:23:56 +02:00
Arpit Jalan 0d6af9d920 FIX: importing query was broken 2017-04-04 14:07:07 +05:30
Robin Ward 8d72e979a5 FIX: Old Ember idioms 2016-11-09 11:58:18 -05:00
Guo Xiang Tan 414cda5578 FIX: Import `ajax` instead. 2016-10-31 09:12:01 +08:00
Kane York 7201823c6b Remove HTTPS warning 2015-08-03 15:09:51 -07:00
Kane York 5156ab1f72 Use HTTP status 422 for failures 2015-07-15 12:51:33 -07:00
Kane York 198c64d86a Don't show the ace editor right away, wait for edit pencil to be clicked 2015-07-14 10:34:23 -07:00
Kane York c7a947542e Allow expanding/collapsing the schema view 2015-07-14 09:44:42 -07:00
Kane York 71c3b73ef8 FEATURE: 'Download Result' removes 250-row limit 2015-07-09 12:03:25 -07:00
Kane York dad55e085b Restyling of data explorer 2015-07-08 16:46:36 -07:00
Kane York d9dbfc8408 Add text for no queries, keep results in query object 2015-07-02 09:15:55 -07:00
Kane York 88d7fa955a Add HTTPS warning 2015-06-30 21:21:14 -07:00
Kane York 1ea74847ae Display errors, convert integers 2015-06-30 19:51:38 -07:00
Kane York a81f8495b0 Update URL. Regression - select2 not updating 2015-06-30 15:56:09 -07:00
Kane York c56a40cacd Import the result table and we're live 2015-06-30 15:12:12 -07:00
Kane York dba181d92e Bunch of progress. Tuesday 1PM 2015-06-30 12:52:17 -07:00
Kane York 78dafcc631 Rename the stylesheet 2015-06-30 10:37:48 -07:00
Kane York ee1cc2d96d Tuesday morning, 10AM 2015-06-30 10:20:22 -07:00