* Grafana/ui: Add Space component
* Add responsive styles and prop docs
* Use the Box component
* Docs
* Replace the component from grafana/experimental
* Update story
* Tweak docs
* Adjust docs
* Update dependency eslint-plugin-jsx-a11y to v6.8.0
* this shouldn't be a label methinks
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Working copy-paste functionality with validation
* WIP; uses 't c' shortcut to copy time range
* shortcuts working for explore and dashboards
* cleanup
* Don't update url when pasting in explore
* Error handling, sync pane functionality, add to help modal
* cleanup
* add tests
* fix i18n
* Diferrentiate between explore and dashboard paste events; make on error prop generic
* Fix
* extract getting the copied time range logic into a function
* Remove comments
* Make error handling generic; markup for translations
* Additional translation markup
* markup for aria-label
* Fix test
* Replace fireEvent with userEvent
* fix translations to match the standard pattern
* Refactor keybindingSrv and TimeSrv to remove PasteTimeContext
* Fix test
* Remove unneccessary aria labels; update icons; buttons inline
* Change ruler API to expect the folder UID as namespace
* Update example requests
* Fix tests
* Update swagger
* Modify FIle field in /api/prometheus/grafana/api/v1/rules
* Fix ruler export
* Modify folder in responses to be formatted as <parent UID>/<title>
* Add alerting test with nested folders
* Apply suggestion from code review
* Alerting: use folder UID instead of title in rule API (#77166)
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
* Drop a few more latent uses of namespace_id
* move getNamespaceKey to models package
* switch GetAlertRulesForScheduling to use folder table
* update GetAlertRulesForScheduling to return folder titles in format `parent_uid/title`.
* fi tests
* add tests for GetAlertRulesForScheduling when parent uid
* fix integration tests after merge
* fix test after merge
* change format of the namespace to JSON array
this is needed for forward compatibility, when we migrate to full paths
* update EF code to decode nested folder
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
Co-authored-by: Alex Weaver <weaver.alex.d@gmail.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Divider: Remove core component and replace with grafana/ui components
* Update gap
* Bump experimental in tempo
---------
Co-authored-by: Fabrizio <fabrizio.casati@grafana.com>
* separate nestedFolderPickerOverride toggle to force enable it without nestedFolders
* let's call it newFolderPicker
* update unit tests and keyboard handling
* reduce spacing when no folder open chevron
---------
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
* start shared with me frontend tweaks
* prevent linking to sharedwithme folder
* tests
* make divider take up 0 height
* Prevent sharedwithme from being selected
* test
git push
* pr feedback
* prevent setting url for sharedwithme
* split iconForItem/kind functions
* Hide sharedwithme in nested folder picker
* fix test fixture
* only set the menu docked in state if the window size is big enough
* adjust sizes
* remove top border on dockedMegaMenu
* another css tweak
* use xxl consistently
* CONSISTENTLY
* ok maybe not
This PR has two steps that together create a functional dry-run capability for the migration.
By enabling the feature flag alertingPreviewUpgrade when on legacy alerting it will:
a. Allow all Grafana Alerting background services except for the scheduler to start (multiorg alertmanager, state manager, routes, …).
b. Allow the UI to show Grafana Alerting pages alongside legacy ones (with appropriate in-app warnings that UA is not actually running).
c. Show a new “Alerting Upgrade” page and register associated /api/v1/upgrade endpoints that will allow the user to upgrade their organization live without restart and present a summary of the upgrade in a table.
* Separate overlapping legacy and UA alerting routes
api/alert-notifiers, alerting/list, and alerting/notifications existed in both
legacy and UA.
Rename legacy route paths and nav ids to be independent of UA ones.
* use floating-ui instead of react-popper-tooltip in Tooltip
* remove useTheme2 usage
* remove escape handling logic in favour of useDismiss
* don't need this useEffect anymore
* convert Toggletip to use floating-ui
* use explicit version
* convert OperationInfoButton to use Toggletip
* convert nestedFolderPicker to use floating-ui
* convert Dropdown to use floating-ui and remove react-popper-tooltip
* fix Modal/Tooltip tests
* revert to old toggletip behaviour
* revert OperationInfoButton to not use Toggletip
* add mock for requestAnimationFrame
* remove requestAnimationFrame mock
* remove fakeTimers where they're not used
* use floating-ui in ButtonSelect
* Fix filters unit tests
* only attach description if label is different
* use 'fixed' strategy for Toggletip
* use stroke and strokeWidth
* set move: false to only show the tooltip if a hover event occurs
* update type for onClose
* WIP first pass
* Change to toolbarbutton/buttonselect pattern
* Move to two toolbarbuttons with dropdown
* Justify text to the right of icons
* Fix betterer
* Fix styling and tests
* Add to docs
* Perist last clicked, add translations
* move styling to core component
* use label for tooltip, let parser combine panes in multiple params
* Explore: Panes encoding suggestions (#78210)
panes encoding suggestions
* WIP-add menu groups
* Get group actions working
* add icons and non-local last selected state
* Fix translations after merge
* Add categories to translation, tweak the verbiage
* Fix translation extraction
* Fix tests
* fix translation conflict
* Log if time is absolute
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* initial start
* more progress
* behaviour working?
* only use media query when docked local storage state is true
* close menu when undocking
* remove unneeded animation code and fix focus when toggling between docked/undocked
* better feature toggle handling (can go back and forth)
* remove restoreFocus (for now)
* Add anonymous stats and user table
- anonymous users users page
- add feature toggle `anonymousAccess`
- remove check for enterprise for `Device-Id` header in request
- add anonusers/device count to stats
* promise all, review comments
* make use of promise all settled
* refactoring: devices instead of users
* review comments, moved countdevices to httpserver
* fakeAnonService for tests and generate openapi spec
* do not commit openapi3 and api-merged
* add openapi
* Apply suggestions from code review
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* formatin
* precise anon devices to avoid confusion
---------
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: jguer <me@jguer.space>
* Embed flame graph
* Update test
* Update test
* Use toggle
* Update test
* Add tests
* Use const
* Cleanup
* Update profile tag
* Move flame graph out of tags, remove request and other cleanup + tests
* Update test
* Set flame graph by profile id and simplify logic
* Cleanup and redrawListView
* Create/use feature toggle
* dock undock smoothly
* handle keyboard focus
* use ref instead of state
* run i18n:extract
* undo this change
* make dock/undock first button to focus
* only focus when going to docked, add comment
* minor tweaks
* remove all the things
* fix OldFolderPicker tests
* i18n
* remove more unused code
* remove mutation of error object since it's now frozen in the redux state
* fix error handling
* Move serializeParams to @grafana/data
* Update comment
* Update solution in Tempo
* Fix type assertions
* Use toUrlParams in serializeParams
* Update data sources
* Update
* Update packages/grafana-data/src/utils/url.ts
* feat(state-timeline-tooltip): improve status history tooltip
Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* playlist skeleton poc
* refactor into PlaylistCard
* make card actions more responsive, update skeleton color to work on secondary background
* don't loop over array
* fix unit tests
* grafana/ui: Move Stack out of unstable
* grafana/ui: Replace imports
* Replace the import from experimental
* Cleanup
* Remove invalid prop
* Add flexGrow
* Remove Stack used in Field
* Remove import
* RolePicker: Use portal for menu
* Remove logging
* Fix submenu styles
* Fix ROLE_PICKER_MAX_MENU_WIDTH calculation
* Fix first menu open glitch
* Fix menu closing on ckick
* Fix menu position
* Dashboard: Use plural values for time units
* Cleaned up code a bit and added support for negative values.
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Role picker: Load users roles in batch
* Use orgId in request
* Add roles to OrgUser type
* Improve loading logic
* Improve loading indicator
* Fix org page
* Update service accounts page
* Use bulk roles query for teams
* Use POST requests for search
* Use post request for teams
* Update betterer results
* Review suggestions
* AdminEditOrgPage: move API calls to separate file
* Update Tempo devenv to include profiles
* Update devenv to scrape profiles from local services
* Cleanup devenv
* Fix issue with flame graph
* Add width prop to ProfileTypeCascader
* Add trace to profiles settings
* Add new spanSelector API
* Add spanSelector to query editor
* Update span link query
* Conditionally show span link
* Combine profile and spanProfile query types and run specific query type in backend based on spanSelector presence
* Update placeholder
* Create feature toggle
* Remove spanProfile query type
* Cleanup
* Use feeature toggle
* Update feature toggle
* Update devenv
* Update devenv
* Tests
* Tests
* Profiles for this span
* Styling
* Types
* Update type check
* Tidier funcs
* Add config links from dataframe
* Remove time shift
* Update tests
* Update range in test
* Simplify span link logic
* Update default keys
* Update pyro link
* Use const
* try upgrading react-redux
* memoize getNavModel selector, don't return a new object in command palette selector
* use createSelector to memoize some alert manager selectors correctly
* memoize selectors correctly in appNotifications
* memoize some datasource selectors
* use fake timers to avoid the debounce causing flakiness
* remove duplicate import
* just use memoize-one
* Fix broken interpolation for mixed datasources in explore
* Add interpolation tests
* Use Promise.all and be better about dealing with invalid empty ds in query scenario
* condense logic
* Remove type declarations
* Fix tests
* Navigation: Basic e2e tests for docked mega menu
* give mega menu an e2e selector
* make existing tests narrower so menu doesn't default to docked. add test for auto docking at large viewport
* use new selector in nondocked menu
* remove wrapping div
* update tests, just gotta figure out how to handle fontawesome :(
* add spinner.svg which matches the font-awesome spinner
* add mock for react-inlinesvg
* update mock and fix some tests
* fix FormField test
* fix CorrelationsPage tests
* increase timeout
* clean up some e2e/runtime types
* fix some stories
* some more fixes
* fix route props
* update unit tests
* update more unit tests
* don't throw here
* refactor: move expand button to front
* refactor: add grid + adjust level 2
* refactor: remove grid + fix alignment for all three levels
* refactor: first iteration alignment
* refactor: styling of MegaMenuItemIcon
* refactor: remove styling of div in MegaMenuItemIcon
* refactor: styling object
* refactor: alignment of first level
* refactor: alignment of second level
* refactor: alignment of third level and active state
* feat: add connecting line for level 3
* feat: add comment
* refactor: remove unused code
* refactor: clean up styling
* refactor: clean up styling
* refactor: clean up styling
* some small tweaks
* remove unused props from getStyles
* fix dock button position and text ellipsing
* add padding to container to prevent icon button overlapping on left side
* add active overlay
* adjust font-weight, add padding to RHS
* add border-box for overlay
* adjust menu width to 300, don't use non-integer levels
* use height: 100%
* don't think we need minWidth
* make chevrons right/down
* make url required, cut down css
* move active state to container
* remove unused class
* add padding at top and bottom of menu as well
* adjust chevron size
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* moved themecontext to data
* chore(grafana-ui): re-export ThemeContext from grafana/data for backwards compatibility
* Moved icon bundling to core.
* feat(plugins): share react-inlinesvg with plugins for grafana/ui bundling
* chore(codeowners): add generate-icon-bundle.js to file
* chore(storybook): update path to iconBundle file for theme
* feat(plugins): share i18n dependency via systemjs
* Make sure that icon bundle is initialized for tests.
* Removed comment.
* added tests for icon root.
* Removing the need of having an init variable.
* feat(grafana-ui): add icon svgs to bundle for projects that don't rely on grafana
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Add option to calculate min max per field
* Fix eslint warnings
* Add back hideFromDefaults that went missing
* whitespace
* Add tests
* Refactor range calculation
* Rename localMinMax -> fieldMinMax
* Remove the lint exceptions
Removing these as to not hide these once we get around to fixing the
underlying typing issue.
* Update docs
* Create a state for dockedMegaMenu and the function to manage it
* Add the dockedMenu icon and handle the status when clicking it
* Add Megamenu to section nav area when it is docked
* get logic working
* fix mobile
* refactor state + persist in localStorage
* adjust icon and don't use position absolute
* restore old rudderstack tracking
* use Flex instead
* adjust feature toggle to be experimental
* extract out localStorage handling into utils
* don't need separate file
* use store.set/get instead
---------
Co-authored-by: eledobleefe <laura.fernandez@grafana.com>