Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Nov 18, 2021
    • Dalton's avatar
      Reimplement tooltips using tippy.js (#18880) · 80d81a10
      Dalton authored
      * add tippy and react-is
      
      * add tippy styles to vendor.css
      
      we'll probably override most things but it handles
      apply the triangle to tooltips
      
      * reimplement Tooltip using tippy
      
      * reimplement ChartTooltip using Tooltip
      
      * add tooltip theme styling
      
      * fix StoreLink styling
      
      * remove TooltipPopover
      
      * add util for easy mapping to innerRef
      
      * use innerRef util with StoreLink target
      
      * react-is type defs
      
      * convert Tooltip into tsx
      
      * convert styled-components util into typescript
      
      * fix Tooltip fallback return
      
      * use Tooltip in Icon over Tooltipify
      
      * remove Tooltipify
      
      * pass ref all the way through Icon
      
      * fix DimensionListItem styling caused by missing ref
      
      * fix ChartTooltip event target bug
      
      * fix unit test by making Icon.tsx grosser
      
      * replace popover() util with tooltip() in cy tests
      
      * fix random broken e2e test
      
      * improve types in Tooltip
      
      * move everything to a separate folder + add tests
      
      * add more examples
      
      * rmv accidental deps
      
      * fix run button styling
      
      * add Link tooltip prop to avoid tooltip on icon
      
      * wrap MetabotLogo in forwardRef
      
      * support reduced motion
      
      * remove flow type from dom.js so we can use in ts files
      
      * pass isEnabled prop to tippy's disabled prop
      
      once you've activated "control mode" in tippy you can't turn it off so
      using "visible" as a toggle doesn't work. instead, use disabled.
      
      * fix uncentered tooltip the right way
      
      tippy includes padding/margin in its centering calculations, unlike
      tether, so we will need to be careful about adding one-sides
      padding/margins to a tooltip target, otherwise the tooltip will appear
      offcenter
      
      * workaround for absolutely positioned element
      
      the tooltip appeared on the far end of the target because of a child div
      that is absolutely positioned. quick fix is to instead target the icon
      
      * fix positioning of HintIcon tooltip
      
      * lint fix
      
      * add placement prop
      
      * fix styled component tooltip target styling
      
      * place QuestionNotebookButton tooltip below
      
      * Make the NativeQueryButton an actual button
      
      * set tooltip placement to bottom
      
      * lint fix warning
      Unverified
      80d81a10
  2. Aug 03, 2021
    • Dalton's avatar
      Add the ability to verify/unverify questions (#17030) · b7fa2f34
      Dalton authored
      * rmv old bucm icons and remove verified fill color
      
      * add moderation action section to sidebar
      
      * add moderation review icon to the saved question header button
      
      * hide moderation section when is not a moderator
      
      * add UI for ModerationReviewBanner
      
      * Backend for moderation-review
      
      - create table moderation_review. Same as before but also has a
        "most_recent" boolean flag for the most recent moderation for easy
        lookup
      - POST /moderation-review/ . Status can be "verified" or nil
      - must be an admin to post
      - No PUT or edit route yet. Not sure if this is even
        necessary. _MAYBE_ to edit the text, but certainly not for the
        status, ids, etc. If there's to be history, let's build some history
      - Ensure we never have more than 10 reviews. Adding a new review will
        delete the older ones, mark all old ones as not `most_recent`, and
        add the newest one as `most_recent true`
      - Ensure the card actually exists before creating the mod review
      - Since admin only at this time, don't need to check moderate
        permission or view permission
      - When hydrating ensure reviews are ordered by id desc. Should mimic
        the created_at desc
      
      * fix moderation review banner tooltip offset
      
      * disable verification button when already verified
      
      * rmv iconOnly prop because it seems to do nothing
      
      * update getLatestModerationReview to rely on most_recent boolean
      
      * Return 400 on invalid status to post /moderation-review
      
      the schema was using keywords on the left hand side rather than the
      symbols. Required a change to the docstring generator, when it made a
      docstring for enums, it would call (sort (:vs enum)) and need to
      string em.
      
      * Add ModerationReview model to models.clj and copy infra
      
      * hydrate moderation reviews on cards
      
      * clean up + wire up to BE + ensure mod buttons don't show for normal users
      
      * rmv unused moderation redux logic from QuestionDetailsSidebarPanel
      
      * finish writing unit tests for FE
      
      * ensure getIconForReview returns an object
      
      * enable/disable verify button tooltip when unverified/verified
      
      * add e2e tests
      
      * fix tests
      
      * styling tweaks
      
      * more styling on moderationReviewBanner
      
      * add function for abbreviated timestamp
      
      * increase fontsize of timestamp back to 12
      
      * fix tooltip offset
      
      * ensure custom locale is separate from 'en' and not used for other languages
      
      * Deletion moderation reviews when deleting cards
      
      i had actually thought this was a much larger problem. But it turns
      out we almost never delete cards (thanks comment!). And so we won't
      really generate a lot of garbage.
      
      I was worried that since we aren't using actual foreign keys but just
      `moderated_item_type "card"` and `moderated_item_id 2` we would have
      deleted cards with these moderation reviews but that is not the case
      as the cards aren't deleted.
      
      * hide verify disabled button when a question is verified
      
      * update test to use queryByTestId
      
      * Hydrate moderation reviews on cards on ordered cards
      
      * Handle mysql's lack of offset functionality
      
      mysql cannot handle just a `offset` clause, it also needs a limit
      
      clause grammar from
      https://dev.mysql.com/doc/refman/8.0/en/select.html:
      
      [LIMIT {[offset,] row_count | row_count OFFSET offset}]
      
      select id, name from metabase_field offset 5;         -- errors
      select id, name from metabase_field limit 2 offset 5; -- works
      
      Since our numbers are so small here there is no worry and just do the
      offset in memory rather than jump through hoops for different dbs.
      
      * Batch hydrate moderation reviews
      
      * Don't let /api/user/:userId failure conceal moderation banner
      
      * fix moderation cy tests
      
      * work around possible bug in toucan hydration
      
      dashboards hydrate ordered cards
      (hydrate [:ordered_cards [:card :moderation_reviews] :series])
      
      Ordered_cards are dashboard_cards which have an optional card_id. But
      toucan hydration doesn't filter out the nils as they go down. It seems
      toucan returns a nil card, and then when hydrating the
      moderation_review, passes the collection of all "cards" including the
      nil ones into the hydration function for moderation_reviews
      
      This feels like a bug to me
      
      * Cleanup moderation warnings
      
      * Docstring in moderation review
      
      * include hoisted moderated_status on cards in collections api
      
      * Expect unverified in test :wrench:
      
      
      
      Co-authored-by: default avatardan sutton <dan@dpsutton.com>
      Co-authored-by: default avatarMaz Ameli <maz@metabase.com>
      Co-authored-by: default avataralxnddr <alxnddr@gmail.com>
      Unverified
      b7fa2f34
Loading