Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Aug 11, 2023
  2. Aug 10, 2023
    • Cam Saul's avatar
      Test metadata helper function consolidation (#33031) · 88451885
      Cam Saul authored
      * Test metadata helper function consolidation
      
      * More code consolidation
      88451885
    • lbrdnk's avatar
      Unify semicolon and comment handling in nested native queries (#30677) · 9fef23dc
      lbrdnk authored
      
      * Unify semicolon and comment handling in nested native queries
      
      * Use different comment and semicolon removal approach
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarmetamben <103100869+metamben@users.noreply.github.com>
      
      * Update base and effective type verification for oracle
      
      * Avoid running test with snowflake and bigquery
      
      * Update `breakout-results` and test
      
      1. In `breakout-results` case driver statement was redundant.
      Original code had field name and types hardcoded. During further
      examination, I've realized name and types are available thanks
      to the use of `qp.test/col`, so are just "unhardcoded" :)
      
      2. `card-id-native-source-queries-test` is altered, so instead of
      hardcoding native sub-queries, roughly equivalent* mbql query is
      compiled and its native form is used. This way I can hopefully avoid
      problems with extraction of cloud databases' table names for testing
      purposes.
      
      * By roughly equivalent I mean instead of using * for selecting
      fields, mbql is compiled selecting fields explicitly. Also limit is added
      in some cases, but local testing showed no problems with that.
      
      ---------
      
      Co-authored-by: default avatarmetamben <103100869+metamben@users.noreply.github.com>
      9fef23dc
    • lbrdnk's avatar
      Modify `:contains`, `:starts-with` and `:ends-with` so field or expression can... · a98bfa1f
      lbrdnk authored
      Modify `:contains`, `:starts-with` and `:ends-with` so field or expression can be used as the second argument (#32446)
      
      * Update `LIKE` to handle fields and expressions
      
      Previously only string could be used with like clause, ie. as second
      argument of `:starts-with`, `:ends-with` or `:contains`. This commit modifies
      translation of those functions, so fields or expressions can be
      used in place of second argument.
      
      * Make only expression or field args use `concat`
      
      Using concat with values unnecessarily complects generated sql.
      
      * Update tests
      
      * Extend mongo string matching capabilities
      
      Make mongo filter compilation use `$regexMatch` for `:contains`,
      `:starts-with` and `:ends-with` so expressions and fields
      can be matched against.
      
      * Adjust mongo specific tests
      
      * Update druid
      
      Druid's filters work with `:contains`, `:starts-with` and `:ends-with`,
      but only if second argument is literal pattern. This commit updates
      existing code, so expection is thrown if `pattern` has different form
      than `[:value ...]`.
      
      * Address review comments - sql
      
      * Address review comments - mongo
      
      * Use mbql `:concat` instead of `hx/call :concat`
      
      Vertica, orcacle and sqlite handle concat differently than other
      drivers. To overcome this limitation, `pre`, `post` and `arg` are
      wrapped into mbql's concat expression which is then translated
      with regards to the specifics of particular driver.
      
      * Update according to the review feedback
      
      ---------
      
      Co-authored-by: default avatarmetamben <103100869+metamben@users.noreply.github.com>
      a98bfa1f
  3. Aug 09, 2023
  4. Aug 07, 2023
  5. Aug 06, 2023
    • Cam Saul's avatar
      QP: use Malli (#32657) · 18c1b198
      Cam Saul authored
      * QP: use Malli
      
      * Fix schema names
      
      * Fix missing namespaces
      
      * Fix busted stuff
      
      * Simplify the new schema
      
      * Test fix :wrench:
      
      * Test fixes :wrench:
      
      * MongoDB fixes :wrench:
      
      * FAST mu/defn
      
      * Malli registry
      
      * Misc fixes
      
      * Some cleanup
      
      * Misc cleanup and test fixes :wrench:
      
      * mu/disable-enforcement
      
      * Test fix
      
      * Fix Cljs version of `disable-enforcement`
      
      * Misc improvements
      
      * Update tests
      
      * Fix Kondo warnings
      
      * Fix Kondo warnings
      
      * Fix busted Malli schema
      
      * PR feedback
      
      * Fix busted schema
      
      * Kondo fixx
      
      * Test fixes :wrench:
      
      * Use Malli version of `describe` now that PR was merged
      
      * Work around https://github.com/metosin/malli/issues/924
      
      * Test fixes :wrench:
      
      * Improvements
      
      * Test fix
      18c1b198
    • Cam Saul's avatar
  6. Aug 04, 2023
  7. Aug 03, 2023
  8. Aug 02, 2023
    • Cam Saul's avatar
      `join-condition-lhs-display-name` should use join condition LHS (#32805) · 2b0a2400
      Cam Saul authored
      * `join-condition-lhs-display-name` should use join condition LHS
      
      * Revert testing context changes
      
      * Appease the whitespace linter
      2b0a2400
    • Cam Saul's avatar
    • Jesse Devaney's avatar
      Enable parameter mapping for heading dash-cards (#32462) · 84537554
      Jesse Devaney authored
      
      * add parameter mapping to heading cards
      
      * update unit tests for new props
      
      * memoize parameter mapped content
      
      * add heading card tests to text parameters spec
      
      * update test descriptions
      
      * add BE for params/substitute_tags
      
      * fix tests
      
      * fix test
      
      * update FE parameter substitution to use optional flag
      
      * heading cards should not escape characters
      
      * add test for dashboard sub
      
      * remove invalid specs -> desired behavior changed
      
      - enabled parameter mapping for heading cards
        - in parameter editing mode, we should display the option to map a parameter to a heading text variable, so we should not display the original text
      
      * fix react hook dependencies
      
      * improve parameterValues type
      
      * refactor E2E test to a unit test
      
      * address nits
      
      * fix spacing
      
      * update types and add unit tests
      
      * fix type errors
      
      ---------
      
      Co-authored-by: default avatarJerry Huang <jhuang37050@gmail.com>
      84537554
    • Cam Saul's avatar
    • Kamil Mielnik's avatar
      [Epic] Allow basic deletes and updates on object detail views - Milestone 1 (#32470) · 338e80ba
      Kamil Mielnik authored
      * Add actions dropdown to object detail modal (#32331)
      
      * Rename showActions to showControls
      
      * Use Flex
      
      * Import Flex from local modules
      
      * Make horizontalAttachments a prop in EntityMenu
      
      * Use EntityMenu to create actions dropdown
      
      * Render actions menu conditionally
      
      * Add useActionListQuery
      
      * Fetch actions in ObjectDetailHeader
      
      * Remove unused canRunActions prop
      
      * Move logic to root component
      
      * Fix tests
      
      * Use canRunAction and fetch databases in ObjectDetail view
      
      * Rename actions to actionItems and getActions to getActionItems
      
      * Extract getActionItems to utils
      
      * Update tests
      
      * Rename modelActions to actions
      
      * Extract isValidImplicitDeleteAction and isValidImplicitUpdateAction out of getActionItems
      
      * Consolidate getActionItems
      
      * Use theme scale values for Mantine Flex component
      
      * Either render all controls or none
      
      * Fix default props/state in EntityMenu
      
      * Fix props
      
      * Update ObjectDetail unit tests
      
      * Add unit tests for isValidImplicitDeleteAction and isValidImplicitUpdateAction
      
      * Update tests with more specific non-implicit action cases
      
      * Use singular form to match function interface
      
      * Add unit tests for getActionItems
      
      * Update test case name
      
      * Avoid using Database constructor
      - Use metadata.database() instead
      
      * Add integration tests for basic cases when action menu is rendered and not
      
      * Fix post-merge error
      
      * Endpoint to fetch implicit actions param values (#32466)
      
      * Add default update action to actions dropdown in object detail modal (#32433)
      
      * Rename showActions to showControls
      
      * Use Flex
      
      * Import Flex from local modules
      
      * Make horizontalAttachments a prop in EntityMenu
      
      * Use EntityMenu to create actions dropdown
      
      * Render actions menu conditionally
      
      * Add useActionListQuery
      
      * Fetch actions in ObjectDetailHeader
      
      * Remove unused canRunActions prop
      
      * Move logic to root component
      
      * Fix tests
      
      * Use canRunAction and fetch databases in ObjectDetail view
      
      * Rename actions to actionItems and getActions to getActionItems
      
      * Extract getActionItems to utils
      
      * Update tests
      
      * Rename modelActions to actions
      
      * Extract isValidImplicitDeleteAction and isValidImplicitUpdateAction out of getActionItems
      
      * Consolidate getActionItems
      
      * Use theme scale values for Mantine Flex component
      
      * Either render all controls or none
      
      * Fix default props/state in EntityMenu
      
      * Fix props
      
      * Update ObjectDetail unit tests
      
      * Add unit tests for isValidImplicitDeleteAction and isValidImplicitUpdateAction
      
      * Update tests with more specific non-implicit action cases
      
      * Use singular form to match function interface
      
      * Add unit tests for getActionItems
      
      * Update test case name
      
      * Sort imports
      
      * Rename initialValues to values
      
      * Rename dashcardParamValues to initialValues
      
      * Lift fetchInitialValues up from ActionParametersInputForm
      
      * Rename refetchValues to prefetchValues
      
      * Fix tests
      
      * Refactor shouldPrefetch to be a prop
      
      * Get rid of dashboard and dashcard props from ActionParametersInputForm
      
      * Lift the canPrefetch condition up as it is not desired outside of dashboards
      
      * Hook update action with temporary API
      
      * Use executeActionId in fetchInitialValues
      
      * Fix post-merge conflict
      
      * Rename prefetchValues to prefetchDashcardValues
      
      * Use the new endpoint
      
      * Use rem values instead of scale values
      - See https://github.com/metabase/metabase/pull/32331#discussion_r1267827835
      
      * Lift data reloading out of executeRowAction
      
      * Add onSuccess prop to ActionExecuteModal
      
      * Use onSubmitSuccess from ActionParametersInputForm
      
      * Reload question after action is successful
      
      * Fix stale prop issues in ActionParametersInputForm
      
      * Fix object id in initialValues
      
      * Add prefetchesInitialValues prop to make useActionForm more generic
      
      * Ignore public actions for now
      
      * Fix id mixup
      
      * Update unit test
      
      * Remove redundant memoization
      
      * Use modern JS syntax instead of noop
      
      * Move getNextId to __support__/utils
      
      * Extract isImplicitDeleteAction & isImplicitUpdateAction
      
      * Reuse isImplicitDeleteAction
      
      * Log error to console
      
      * Get rid of useLatest
      
      * Fix post-merge build error
      
      * Add default delete action to actions dropdown in object detail modal (#32556)
      
      * Rename showActions to showControls
      
      * Use Flex
      
      * Import Flex from local modules
      
      * Make horizontalAttachments a prop in EntityMenu
      
      * Use EntityMenu to create actions dropdown
      
      * Render actions menu conditionally
      
      * Add useActionListQuery
      
      * Fetch actions in ObjectDetailHeader
      
      * Remove unused canRunActions prop
      
      * Move logic to root component
      
      * Fix tests
      
      * Use canRunAction and fetch databases in ObjectDetail view
      
      * Rename actions to actionItems and getActions to getActionItems
      
      * Extract getActionItems to utils
      
      * Update tests
      
      * Rename modelActions to actions
      
      * Extract isValidImplicitDeleteAction and isValidImplicitUpdateAction out of getActionItems
      
      * Consolidate getActionItems
      
      * Use theme scale values for Mantine Flex component
      
      * Either render all controls or none
      
      * Fix default props/state in EntityMenu
      
      * Fix props
      
      * Update ObjectDetail unit tests
      
      * Add unit tests for isValidImplicitDeleteAction and isValidImplicitUpdateAction
      
      * Update tests with more specific non-implicit action cases
      
      * Use singular form to match function interface
      
      * Add unit tests for getActionItems
      
      * Update test case name
      
      * Sort imports
      
      * Rename initialValues to values
      
      * Rename dashcardParamValues to initialValues
      
      * Lift fetchInitialValues up from ActionParametersInputForm
      
      * Rename refetchValues to prefetchValues
      
      * Fix tests
      
      * Refactor shouldPrefetch to be a prop
      
      * Get rid of dashboard and dashcard props from ActionParametersInputForm
      
      * Lift the canPrefetch condition up as it is not desired outside of dashboards
      
      * Hook update action with temporary API
      
      * Use executeActionId in fetchInitialValues
      
      * Fix post-merge conflict
      
      * Rename prefetchValues to prefetchDashcardValues
      
      * Use the new endpoint
      
      * Use rem values instead of scale values
      - See https://github.com/metabase/metabase/pull/32331#discussion_r1267827835
      
      * Lift data reloading out of executeRowAction
      
      * Add onSuccess prop to ActionExecuteModal
      
      * Use onSubmitSuccess from ActionParametersInputForm
      
      * Reload question after action is successful
      
      * Fix stale prop issues in ActionParametersInputForm
      
      * Fix object id in initialValues
      
      * Add prefetchesInitialValues prop to make useActionForm more generic
      
      * Ignore public actions for now
      
      * Fix id mixup
      
      * Update unit test
      
      * Add DeleteObjectModal
      
      * Introduce useActionQuery
      
      * Use useActionQuery in DeleteObjectModal
      
      * Hook action execution
      
      * Fix typo in copy
      
      * Sort exports
      
      * Remove redundant memoization
      
      * Use modern JS syntax instead of noop
      
      * Move getNextId to __support__/utils
      
      * Extract isImplicitDeleteAction & isImplicitUpdateAction
      
      * Reuse isImplicitDeleteAction
      
      * Fix object modal getting closed with Escape key when delete or update modals are open
      
      * Rename isUpdateModalOpen to isActionExecuteModalOpen, updateActionId to actionId
      
      * Navigate to sibling row or close the modal on deletion
      
      * Revert "Navigate to sibling row or close the modal on deletion"
      
      This reverts commit 8b24685eee5cd968f53cc14b7194a66588fb5845.
      
      * Close object detail on deletion
      
      * Add error handling
      
      * Add error handling
      
      * Greatly simplify DeleteObjectModal
      - remove useActionQuery usage
      - remove useActionQuery
      - remove DeleteObjectModal.styled.tsx
      
      * Improve diff
      
      * Shorten code
      
      * Always cast objectId to number
      - See https://metaboat.slack.com/archives/C057T1QTB3L/p1690292706101109?thread_ts=1690279562.697669&cid=C057T1QTB3L
        "the reason you’re not seeing it fail on the sample dataset is probably because you’re
        using h2 for sample-dataset. it’ll fail the same if you use a postgres one.
        h2 is probably more loose in type so it allows sending a string for id.
        nevertheless, I think you can use cast it to the correct type using the param type.
        I think we did that on the UI where we execute actions from model details page."
      
      * Inline disabled into JSX
      
      * Use a more friendly error message when failed to delete an object because it's referenced by other objects
      - See: https://metaboat.slack.com/archives/C057LE0Q4PQ/p1690377421352469?thread_ts=1690208614.530869&cid=C057LE0Q4PQ
      
      * Revert "Use a more friendly error message when failed to delete an object because it's referenced by other objects"
      
      This reverts commit 28327ac9b53ae92300e579d047b7f136d54e581e.
      
      Friendly message is going to be implemented in https://github.com/metabase/metabase/issues/32694
      
      * Rename initialValues back to dashcardParamValues in ActionVizForm
      
      * Tests for basic deletes and updates on object detail views (#32525)
      
      * Rename showActions to showControls
      
      * Use Flex
      
      * Import Flex from local modules
      
      * Make horizontalAttachments a prop in EntityMenu
      
      * Use EntityMenu to create actions dropdown
      
      * Render actions menu conditionally
      
      * Add useActionListQuery
      
      * Fetch actions in ObjectDetailHeader
      
      * Remove unused canRunActions prop
      
      * Move logic to root component
      
      * Fix tests
      
      * Use canRunAction and fetch databases in ObjectDetail view
      
      * Rename actions to actionItems and getActions to getActionItems
      
      * Extract getActionItems to utils
      
      * Update tests
      
      * Rename modelActions to actions
      
      * Extract isValidImplicitDeleteAction and isValidImplicitUpdateAction out of getActionItems
      
      * Consolidate getActionItems
      
      * Use theme scale values for Mantine Flex component
      
      * Either render all controls or none
      
      * Fix default props/state in EntityMenu
      
      * Fix props
      
      * Update ObjectDetail unit tests
      
      * Add unit tests for isValidImplicitDeleteAction and isValidImplicitUpdateAction
      
      * Update tests with more specific non-implicit action cases
      
      * Use singular form to match function interface
      
      * Add unit tests for getActionItems
      
      * Update test case name
      
      * Sort imports
      
      * Rename initialValues to values
      
      * Rename dashcardParamValues to initialValues
      
      * Lift fetchInitialValues up from ActionParametersInputForm
      
      * Rename refetchValues to prefetchValues
      
      * Fix tests
      
      * Refactor shouldPrefetch to be a prop
      
      * Get rid of dashboard and dashcard props from ActionParametersInputForm
      
      * Lift the canPrefetch condition up as it is not desired outside of dashboards
      
      * Hook update action with temporary API
      
      * Use executeActionId in fetchInitialValues
      
      * Fix post-merge conflict
      
      * Rename prefetchValues to prefetchDashcardValues
      
      * Use the new endpoint
      
      * Use rem values instead of scale values
      - See https://github.com/metabase/metabase/pull/32331#discussion_r1267827835
      
      
      
      * Lift data reloading out of executeRowAction
      
      * Add onSuccess prop to ActionExecuteModal
      
      * Use onSubmitSuccess from ActionParametersInputForm
      
      * Reload question after action is successful
      
      * Fix stale prop issues in ActionParametersInputForm
      
      * Fix object id in initialValues
      
      * Add prefetchesInitialValues prop to make useActionForm more generic
      
      * Add test cases for other types of actions
      
      * Ignore public actions for now
      
      * Add e2e test for actions in object detail view
      
      * Add second step and extract helpers
      
      * Remove duplication by changing hierarchy
      
      * Add step with enabling model actions
      
      * Fix visiting model page
      
      * Remove redundant code
      
      * Ignore public actions for now
      
      * Fix id mixup
      
      * Update unit test
      
      * Add objectId argument and function to open the modal
      
      * Define whole order object to reuse
      
      * Implement assertOrderFormPrefilled
      
      * Assert Created At
      
      * Add assertion to check whether object with new id has been reloaded
      
      * Use all caps for constants
      
      * Verify updating an object
      
      * Fix test name
      
      * Assert toast is shown on update
      
      * Format code
      
      * Use writable tables instead of sample db to avoid persisting updates between tests
      - do not mock objects, assert against whatever comes from API
      
      * Format code to wake GitHub up
      
      * Add DeleteObjectModal
      
      * Introduce useActionQuery
      
      * Use useActionQuery in DeleteObjectModal
      
      * Hook action execution
      
      * Fix typo in copy
      
      * Sort exports
      
      * Remove redundant memoization
      
      * Use modern JS syntax instead of noop
      
      * Move getNextId to __support__/utils
      
      * Extract isImplicitDeleteAction & isImplicitUpdateAction
      
      * Reuse isImplicitDeleteAction
      
      * Fix object modal getting closed with Escape key when delete or update modals are open
      
      * Rename isUpdateModalOpen to isActionExecuteModalOpen, updateActionId to actionId
      
      * Navigate to sibling row or close the modal on deletion
      
      * Revert "Navigate to sibling row or close the modal on deletion"
      
      This reverts commit 8b24685eee5cd968f53cc14b7194a66588fb5845.
      
      * Close object detail on deletion
      
      * Add error handling
      
      * Add error handling
      
      * Greatly simplify DeleteObjectModal
      - remove useActionQuery usage
      - remove useActionQuery
      - remove DeleteObjectModal.styled.tsx
      
      * Improve diff
      
      * Shorten code
      
      * Rename initialValues back to dashcardParamValues in ActionVizForm
      
      * Extract assertScoreUpdatedInTable
      
      * Extract visitModelDetail
      
      * Add deletion and toast assertion
      
      * Remove unused arguments
      
      * Assert delete failed
      
      * Update tests order after starting with writable db
      
      * Move assertions to beginning of the test, remove enableDatabaseActions
      
      * Test disabling model actions
      
      * Add extra assertion
      
      * Update names
      
      * Update the deletion assertion
      
      * Remove unused code
      
      * Wrap tests in another describe, setup dashboard test
      
      * Fix setup, use asAdmin util
      
      * Add assertion for dashboard object view
      
      * Update test names
      
      * Extract actions to a constant
      
      * Add test to open update object modal
      
      * Update assertion order
      
      * Add test to open delete object modal
      
      * Organize tests
      
      * Add a test case for implicit public delete action & implicit archived delete action
      
      * Remove redundant async
      
      * Reuse findActionInActionMenu
      
      * Remove redundant constant
      
      * Fix tests
      
      * Add a test case for databases with disabled actions
      
      * Update wording
      
      * Use dataset instad of a query question
      
      * Revert name change as it does not make sense
      
      * Format code
      
      * Add a test case for users with no write permission
      
      * Add a test case for when showControls is false
      
      * Add a test case for models with clauses
      
      * Use metadata.question() instead of new Question()
      
      * Tests for various number of PKs in a model (#32784)
      
      * Add a test case for 0 PKs in a model
      
      * Add a test case for 2 PKs in a model
      
      * Improve test names
      
      * Fix typo
      
      * Use plural form for "PK"
      
      ---------
      
      Co-authored-by: default avatarNgoc Khuat <qn.khuat@gmail.com>
      338e80ba
    • Ngoc Khuat's avatar
    • Braden Shepherdson's avatar
      [MLv2] Add `lib.field/add-field` and `remove-field` (#32679) · b24f62e6
      Braden Shepherdson authored
      These are "porcelain" APIs to make FE management of the set of selected
      columns for a query much easier.
      
      `add-field` and `remove-field` will handle regular table fields,
      explicit join fields, and custom expressions correctly.
      
      One known quirk: if the set of `:fields` on a stage happens to match the
      default set, this is *not* noticed or fixed. Once an explicit list is
      set on a stage, it will forever have a list.
      b24f62e6
  9. Aug 01, 2023
  10. Jul 31, 2023
  11. Jul 28, 2023
Loading