Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Feb 01, 2022
  2. Jan 31, 2022
    • Nemanja Glumac's avatar
    • Ariya Hidayat's avatar
    • Ariya Hidayat's avatar
    • frannietrempe's avatar
    • Noah Moss's avatar
    • Howon Lee's avatar
      Static viz funnel fix (more #18676) (#19983) · d31fac77
      Howon Lee authored
      Still pursuant to #18676
      
      1. Funnel was previously not doing lato font for the bold bit because visx's text doesn't take weights, it takes styles
      2. Columns can be nontrivial with respect to funnels, which was an oversight
      3. For some reason the first try for fixing 2 also impinged upon values being strings for funnels, which breaks things at SVG level
      4. And let's just shove in a nit for the display of trends if the previous value and current value are the same
      Unverified
      d31fac77
    • Dalton's avatar
      Remove most of the info popovers (#20070) · 466f6a4d
      Dalton authored
      * Remove DataSelector info popovers
      
      * Remove DimensionList info popover
      
      * Remove expression editor suggestion list info popover
      
      * Remove FieldPicker info popover
      
      * Remove DimensionListItem info popover
      
      * Remove info popover from data selector search results
      
      * remove TableBrowser info popover
      
      * Remove an e2e test
      Unverified
      466f6a4d
    • Alexander Lesnenko's avatar
      fix license infinite loop (#20075) · ee88eaee
      Alexander Lesnenko authored
      Unverified
      ee88eaee
    • Alexander Lesnenko's avatar
      fix select button look (#20077) · d0e1ccd8
      Alexander Lesnenko authored
      Unverified
      d0e1ccd8
    • Muhammad Redho Ayassa's avatar
      Fix empty result with suffix "%" shows "null%" in Gauge visualization (#19558) · 0e5ac729
      Muhammad Redho Ayassa authored
      * convert null value to 0 for gauge viz
      
      * set null segment range to 0
      Unverified
      0e5ac729
    • Dalton's avatar
    • Howon Lee's avatar
      Card copy trs fix (#20063) · 385fa88f
      Howon Lee authored
      
      CI was broken inasmuch as it wasn't running, so master was broken without us knowing it. Thankfully, to the best of our knowledge, it was a couple of nits. Fixes master.
      
      Co-authored-by: default avatarAleksandr Lesnenko <alxnddr@gmail.com>
      Unverified
      385fa88f
    • Dalton's avatar
      Add drag and drop reordering of pinned items (#19966) · 65e72dc5
      Dalton authored
      * onDrop unneeded
      
      * basic impl of reordering pinned items
      
      * split cards and dashboards again
      
      * Improve pin drop target styling
      
      * Fix card drop target weirdness
      
      * brand-light border --> brand
      
      * pull out separate styled drop target component
      
      * replace style prop usage
      
      * reduce the z-index
      
      * Remove prop that triggers drill functionality
      
      * Fix clobbering of pinned list on update
      
      * Fix card queries on every rerender
      
      * Add pin drop zone & split drop target components
      
      * lint fix
      
      * fix & add a few tests
      
      * update pin drop zone styling to match sorting
      Unverified
      65e72dc5
    • Alexander Polyankin's avatar
      Fix focus color (#20054) · d7223dc0
      Alexander Polyankin authored
      Unverified
      d7223dc0
    • Jeff Evans's avatar
      Fix NullPointerException in Postgres when using client SSL properties (#20034) · a2f4563c
      Jeff Evans authored
      Only attempt to read values that were actually set on the client side
      
      Add test to confirm specific combination from reported issue works
      Unverified
      a2f4563c
    • Ariya Hidayat's avatar
    • dpsutton's avatar
      Metadata lifecycle improvements master (#19899) · 1b9270fd
      dpsutton authored
      * Improve lifecycle of metadata
      
      Previously we have assumed that if valid metadata is passed into the
      card create and udpate, that that is valid metadata for the query. There
      are a few scenarios where this can fail, but they all boil down to
      editing the query after running it. Examples:
      
      - when creating a query, come up with a query, visualize, realize you
      wanted to not select all columns, edit to not select those, possibly
      select a few extra, and then save. The saved metadata might only have
      the columns from when you ran the query and not after you saved it.
      - edit an existing query and save without rerunning. Again, adding and
      removing some columns.
      
      How it affects:
      - if you remove columns, the preserved metadata can cause us to attempt
      to select columns that are no longer in that question, leading to errors
      for nested queries
      - if you add columns, the query builder won't show the new columns until
      that information is populated in the metadata by running the query.
      
      Lifecycle now:
      - should be encapsulated in `api.card/result-metadata-async`. But we
      only allow metadata to remain if is is valid metadata and the query has
      not been edited. If the query has been edited (and new queries always
      satisfy this since the previous query will be nil) we rerun the query to
      get the metadata. No more drift. However, when dealing with datasets we
      will attempt to blend the existing metadata into the newly computed
      metadata so that metadata edits can persevere.
      
      Other changes:
      
      - removed an extra indirection in the card api that made it harder to
      reason about when to recompute metadata
      - moved the `combine-metadata` function into a util namespace and gave
      some more generic parameter names
      - deleted two tests that are no longer relevant after removing the
      checksum on metadata. One had to do with how we hash floats vs ints
      which is no longer relevant since we aren't hashing at all (RIP
      checksum) and one checked that we accepted "valid" checksum-ed
      metadata.
      - new test that updating a card will update its metadata by rerunning
      the query
      - when validating the checksum, do not call s/validate since this WILL
      THROW. Instead check `(nil? (s/check ...))`.
      
      * Normalize query before comparing for changes
      
      When comparing db vs api-sent query, need to normalize otherwise they
      will always be different and our optimization will never kick in
      
      * Fix ns
      
      * Cleanup after ourselves
      
      * Move `combine-metadata` util functions to a better namespace
      
      * Allow for no query in api/card/:id patch
      
      Cypress tests would do a
      
      ```javascript
        describe("simple mode", () => {
          beforeEach(() => {
            cy.request("PUT", "/api/card/1", {
              name: "Orders Model",
              dataset: true,
            });
          });
      ```
      
      The metadata testing stuff would always use the query from the PUT to
      check whether to dump or retain the metadata. In these instances, it
      would dump the metadata and then i guess ask the qp for the metadata for
      a nil query. Similar scenario if anyone uses the API to update
      descriptions, etc.
      
      The method is PUT not PATCH, but in the saving function we have
      
      ```clojure
      (u/select-keys-when
       card-updates
       :present #{:collection_id :collection_position :description :cache_ttl :dataset}
       :non-nil #{:dataset_query :display :name :visualization_settings
                  :archived :enable_embedding :embedding_params
                  :result_metadata})
      ```
      
      So we kinda have a PATCH anyways.
      
      * Normalize metadata before blending
      
      * Ensure api blends metadata correctly
      
      When blending the metadata, need to update the field_ref to keyword the
      original. Otherwise we are attempting to match up the field with ref
      ["field" "subtotal"] against [:field "subtotal"] and they don't match.
      
      * Normalize metadata from api correctly
      
      if you just call normalize/normalize it doesn't know not to change
      `:field_ref` -> `:field-ref` so it gets out of whack. Need to pass it
      the function appropriate for that level.
      
      Also add a test that you can update _just_ the metadata. This actually
      already worked for a subtle reason, and that is possibly buggy. The
      reasoning is that the result_metadata is clobbered conditionally now
      instead of unconditionally. If the async metadata stuff returns nil it
      won't clobber and then whatever was sent over the wire goes in.
      
      * Ensure previous metadata is there
      
      When updating the query of a dataset, handle the case where just the
      query is sent, and not the whole card. If the client didn't send the
      previous metadata, we did not look it up in the database
      
      * Card api always uses metadata from `result-metadata-async`
      
      Originally this did
      
          (assoc card-data :result_metadata (a/<! result-metadata-chan))
      
      But I changed that so it only optionally did so when that channel had
      information. The problem with this is that if there was :result_metadata
      on the original request but the channel returned nil for some reason,
      whatever was in the request was going in the db. This includes invalid
      metadata, non-json strings, what ever. Obviously bad.
      
      But we need to handle PATCHs where clients don't send metadata or they
      _ONLY_ send metadata and no query, etc. So this always uses the results
      of `result-metadata-async` so it can go through that logic and we always
      clobber.
      
      And remember that if we only update the result_metadata when it is
      non-nil (`update-card-async!`). The end result is that switching from a
      PATCH model where you expect the full object to a PUT where things can
      be optional has lots of footguns. Some examples:
      - only updating the query
      - updating the query along with edits to the metadata on a card (throw
      the metadata away)
      - updating the query along with edits on a dataset (save the metadata
      but blend it into the fresh computation of the query's metadata)
      - updating the query but not sending along the metadata. Need to grab
      from the db and blend in.
      - Sending invalid metadata, changing the description. We want to toss
      away the metadata but save the description.
      Unverified
      1b9270fd
    • Alexander Lesnenko's avatar
      support stacked area static viz series (#20004) · ce4d4e67
      Alexander Lesnenko authored
      * support stacked area static viz series
      
      * fix x-ticks overflow
      
      * fix types
      
      * add specs, fix area static charts
      Unverified
      ce4d4e67
    • Ariya Hidayat's avatar
    • Alexander Lesnenko's avatar
      run eslint on typescript files (#20021) · f4388814
      Alexander Lesnenko authored
      * run eslint on typescript files
      
      * fix errors
      
      * bump timeout
      Unverified
      f4388814
  3. Jan 28, 2022
  4. Jan 27, 2022
Loading