This project is mirrored from https://github.com/metabase/metabase.
Pull mirroring updated .
- Jun 07, 2021
-
-
Noah Moss authored
* adjustments to CSP header in dev environment to make react dev tools work on Firefox * add test for script-src directive * fix position of doc string * fix error in common_test
-
Howon Lee authored
There was no DB migration for previous friendly field name defriendlification. This adds DB migration.
-
Nemanja Glumac authored
-
Reza Lotun authored
Signify this is for internal use for the Metabase team, and remove ETA from the template (since that's tracked outside of GitHub).
-
Alexander Lesnenko authored
-
- Jun 04, 2021
-
-
Jeff Bruemmer authored
-
Nemanja Glumac authored
#16350 Repro: "Invite someone" button overlaps activate/deactivate radio buttons on small screen widths (#16355)
-
- Jun 03, 2021
-
-
Noah Moss authored
-
Howon Lee authored
Peeps want to make questions faster, but we don't give the data about query execution in a very user-friendly way. Here's it in a user-friendly way. Co-authored-by:
Alexander Lesnenko <alxnddr@users.noreply.github.com>
-
dpsutton authored
* Add the last-edit-info to the child query just for cards right now, need to extend to dashboards and then make sure we clean it up into the proper map. Have a set of all columns that are required and ensure those are in each query. Nulls need to be cast to the correct type if they aren't a text column (at least on postgres, need to investigate h2 and mysql). * Correct find last-edit-info for cards and dashboards * Move from group-by max id to self join * Paginate and search on collection items - include the metadata information in the query - to accomplish this, make a backstop to add all columns into each query - need types to union the null. in postgres it assumes all nulls are text. Haven't checked what mysql and h2 do here yet - sort_column: name, last_edited, model - sort_direction: asc, desc * Add default sort column and direction * handle mysql mysql doesn't need types on nulls to unify them * Correct batch post processing for cards and dashboards * Correct order of expectations they were alphabetical inside of models previous order: - acme products | pulse - electro-magnetic pulse | pulse - birthday card | card - dine & Dashboard | dashboard and is now ordered solely by name * Tests and sort on lower name after timestamp When sorting by last edited, lots of things don't have this, so don't want arbitrary sorting, but sort by name afterwards * Ensure nulls go to the end of the list * Tests * trying to make h2, mysql, and pg happy sorting timestamps and always having nulls last is quite difficult * Make diff bigger this was going in as a string and losing the timezone information, so was actually advancing time. Now: (java.time.OffsetDateTime/now) "2021-06-01T13:59:33.165483Z" Minus 2 hours: (.minusHours (java.time.OffsetDateTime/now) 2) "2021-06-01T11:59:27.528500Z" As seen in the code: ;; unaltered "now" "2021-06-01T08:55:28" ;; altered "two hours ago" "2021-06-01T11:55:29" <- UTC shenanigans. so just bump back 24 hours * Sort by model ranking * Remove clj-time and use ZonedDateTime instead of OffsetDateTime
-
Anton Kulyk authored
-
Ariya Hidayat authored
-
- Jun 02, 2021
-
-
Ariya Hidayat authored
...since the back-end is already capable of handling those. * Handle PK/FK of the type STRING or STRING_LIKE
-
Gustavo Saiani authored
-
Luis Paolini authored
* Warn users about sandboxing and public sharing * Update docs/enterprise-guide/data-sandboxes.md Co-authored-by:
Jeff Bruemmer <jeff@metabase.com> Co-authored-by:
Jeff Bruemmer <jeff@metabase.com>
-
dpsutton authored
* Add type on collection * Search with collection type * Cleanup bounded heap accumulator * Make search conditionally bump official collection items * collection api and tests * Put collection type onto hydrated cards on dashboards * Move official collection type scoring into ee codebase * ensure ee and oss agree when not official collection * Mark Collections tree with type * Remove unnecessary `and`s when no check for enhancements * Tests for setting collection tree type * Include hydration for collection type on dashboards * Make sure created test collections are cleaned up * Cleanup tests, don't search on collection_type looks for all text fields and searches the term against that. official would bring back all official types. no bueno * Docstring on protocol and don't shadow comparator * update to new ee impl var passing style * Collection model ensures no type change on personal collection * Check for personal collection when updating type model checks for personal collection and rejects in the update but doesn't check for children of personal collection. * Update checking for unchangeable properties of a personal collection * Cleanup: type collection tree, batched hydration, combine error checks * Cleanup * move bounded-heap accumulator to utils * switch to test.check testing * Bad test just to see what our CI will report * remove purposeful failing test (was for CI) * collection.type -> collection.authority_level * Test the actual ee scoring impl, not the wrapped one locally i had enhancements enabled so the tests were passing, but in CI it was failing as it did not have enhancements enabled
-
Gustavo Saiani authored
-
Anton Kulyk authored
-
Anton Kulyk authored
-
- Jun 01, 2021
-
-
Ariya Hidayat authored
-
- May 28, 2021
-
-
Alexander Lesnenko authored
-
Nemanja Glumac authored
-
Luis Paolini authored
-
Alexander Lesnenko authored
* add useDebounceValue hook * add AddCardSidebar components * extract DashboardSidebars component * use AddCardSidebar component * remove the old modal for adding questions * fix specs, unify dashboard toolbar buttons * fix enterprise specs * lint * fix more specs * maz empty state tweaks * review * specs * add role attributes * `Add question` => `Add questions` * add missing onkeydown handler to the QuestionPickerItem Co-authored-by:
Maz Ameli <maz@metabase.com>
-
- May 27, 2021
-
-
Anton Kulyk authored
* Basic `react-gird-layout` usage for Dashboards (#16167) * Install react-grid-layout * Add basic NewGridLayout implementation * Wrap DashboardGrid with WidthProvider * Bind DashboardGrid's onDrag methods * Coerce layout item IDs to string * Add method rendering NewDashboardGrid * Refactor `onLayoutChange` method to handle new grid * Use react-grid-layout's CSS classes * Fix lag while dragging grid items * Switch back to ExplicitSize HOC * Fix grid in editing state is too short * Import missing `react-grid-layout` CSS * Fix RGL overwrites dragging placeholder color * Hide default RGL's resize handle * Fix random dashboard layout rearrangements Before dashboard cards' parameters (x, y, width, height) were updated individually for each card It worked fine because there was only one card moving at a time Now when cards are automatically moving when a user drags another card, a race conditon appears, cards' parameters get overwritten, and layout breaks Fixed by using bulk updates for dashboard cards drag and resizing events * Fix dashboard background grid * Align RGL with parent component edges * Fix grid offset * Fix dashboard grid height * Fix no automatic page scroll while dragging * Fix navbar is stuck when scrolling dashboard * Remove previous grid component * Fix grid doesn't respect item min size * Extract grid background into a separate utils file * Fix dashboards layout issues (#16236) * Fix RGL cards are higher than the previous ones * Return the fixed header in editing mode back * Add support for responsive dashboard layouts (#16213) * Fix `gridItemWidth` calculation * Memoize grid children * Add utility to adapt layout for breakpoints * Use responsive react-grid-layout for dashboards * Don't overwrite main layout with smaller ones * Pass correct `isMobile` prop to DashCard component * Extract `renderGridItem` method * Increase dashboard cards vertical margin for mobile * Remove dashboard's old renderMobile method * Add isMobileBreakpoint utility function * Disable dashboard drag and resize for mobile * Remove old method disabling mobile drag and resize * Fix grid background rendering * Switch to desktop and mobile breakpoints * Update card heights for dashboard's mobile view * Add a comment about `!important` in CSS * Minor code style fix * Remove not used functions
-
- May 26, 2021
-
-
Ariya Hidayat authored
-
- May 25, 2021
-
-
Gustavo Saiani authored
-
Ariya Hidayat authored
When attempting to convert a filter, check first if the filter is a comparison against a constant. Otherwise, preserve the filter is in its custom expression (MBQL) form. Each in the following list can be converted into a standard filter (since the simple UI for the standard filter only allows literal comparison): [Total] < 300 between([Discount], 5, 15) [Name] = "Joe" but none of these should be converted [Discount] <= [Tax] between([Rating], 0, [MaxRating]) [Reviewer] != UPPER([Name]) * Allow standard filter to be invalid This is necessary to allow an incomplete filter, i.e. the user hasn't filled Y in "X < Y" form yet (hence Y is undefined). The filter is not valid but it is still considered in the standard form. * Check whether string comparison can be considered a standard filter * Idiomatic with array destructuring
-
Ariya Hidayat authored
When attempting to convert a filter, check first if the filter is a comparison against a constant. Otherwise, preserve the filter is in its custom expression (MBQL) form. Each in the following list can be converted into a standard filter (since the simple UI for the standard filter only allows literal comparison): [Total] < 300 between([Discount], 5, 15) [Name] = "Joe" but none of these should be converted [Discount] <= [Tax] between([Rating], 0, [MaxRating]) [Reviewer] != UPPER([Name]) * Allow standard filter to be invalid This is necessary to allow an incomplete filter, i.e. the user hasn't filled Y in "X < Y" form yet (hence Y is undefined). The filter is not valid but it is still considered in the standard form. * Check whether string comparison can be considered a standard filter * Idiomatic with array destructuring
-
Nemanja Glumac authored
-
- May 24, 2021
-
-
dpsutton authored
* Add yyyymmddhhss coercions to type system * Implementations for h2/mysql/postgres for yyyymmddhhss bytes and strings * Mongo and oracle * Adding checksum on migration it said was bad * import OffsetDateTime * Redshift and bigquery * snowflake expectations * sql server yyyymmddhhmmss. have to format the string then parse sqlserver lacks a parse function that takes a format string, they just take an integer that specifies a predefined format string. So we have to make the string into the right format then parse. * presto yyyymmddhhmmss * Test byte conversions * Remove errant `mt/set-test-drivers!` * Remove sqlite, change keyword for multiple native types in def the spec couldn't handle different shapes under the same keyword. so just use :natives {:postgres "BYTEA"} :native "BYTEA" * Make schema work with different shape maps * hx/raw "'foo'" -> hx/literal "foo" and remove checksums * _coercion_strategy -> _coercion-strategy * Handle coercion hierarchy for :Coercion/YYYYMMDDHHMMSSBytes->Temporal
-
Howon Lee authored
This ballooned in scope by a bit. 1. FE landed onto this. So both BE and FE 2. Added an offset-pagination middleware 3. Refactored collection in addition to paginating it so it works by a giant UNION ALL 4. Refactored effective collections to work by a moderately complicated query with very many WHERE clauses to execute the effective visibility, instead of doing it in clojureland
-
Ariya Hidayat authored
* Add a Cypress test
-
- May 22, 2021
-
-
Ariya Hidayat authored
-
- May 21, 2021
-
-
Cam Saul authored
-
Cam Saul authored
-
Nemanja Glumac authored
-
Anton Kulyk authored
-
- May 20, 2021
-
-
Gustavo Saiani authored
* Add PropTypes and simplify TokenizeInput * Add PropType for forwardedRef
-
Luis Paolini authored
-