* Add keybindings to explore, allow override of dashboard model update for explore update
* Remove edits to Dashboard Model, add definition when url params should be updated
* Add tests
* Add and expose util function instead of bringing in unrelated library do not define explicit path to library file
* Use more generic model for TimeSrv
* Remove url utility functions, use javascript function instead
* Break out TimeModel into new type and bring it in
* condense object creation
* chore(tsconfig): update grafana/tsconfig to 1.2.0 for outputting es6
* rewrote the unsubscription part to use first().
* test: update failing tests to work with es6 output
* removed bug where we dispatch a promise instead of an array of ritch history.
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Update jest monorepo
* Update version of marked so it doesn't throw an error, set testEnvironment
* Fix some unit tests
* Remove all these tests that aren't actually working...
* use spyOn instead of mocking the whole module
* Fix linting
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* GraphOld: Mark old graph panel as deprecated so that it can no longer be picked in the UI
* Add migration button
* remove deprecation
* add timeseries to graph query
* update language
* Slight tweak
* Update public/app/plugins/panel/graph/tab_display.html
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
* Getting close
* Restore angular app boot at startup
* Moving angular annotations dependencies to app/angular or old graph
* Remove redundant setLinkSrv call
* Fixing graph test
* Minor refactor based on review feedback
* Create in get function
* Refactor: adds affectedPanelIds and fixes some bugs
* Refactor: Fixes all dependencies and affected panel ids
* Refactor: glue it together with events
* Chore: remove debug code
* Chore: remove unused events
* Chore: removes unused function
* Chore: reverts processRepeats
* Chore: update to use redux state
* Refactor: adds feature toggle in variables settings
* Refactor: adds appEvents to jest-setup
* Tests: adds tests for strict panel refresh logic
* Refactor: small refactor
* Refactor: moved to more events
* Tests: fixes test
* Refactor: makes sure we store strictPanelRefreshMode in dashboard model
* Refactor: reporting and adds tests
* Tests: fix broken tests
* Tests: fix broken initDashboard test
* Tests: fix broken Wrapper test
* Refactor: adds solution for $__all_variables
* Chore: updates to radio button
* Refactor: removes toggle and calculates threshold instead
* Chore: fix up tests
* Refactor: moving functions around
* Tests: fixes broken test
* Update public/app/features/dashboard/services/TimeSrv.ts
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
* Chore: fix after PR comments
* Chore: fix import and add comment
* Chore: update after PR comments
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
* Initial pass to move panel state to it's own, and make it by key not panel.id
* Progress
* Not making much progress, having panel.key be mutable is causing a lot of issues
* Think this is starting to work
* Began fixing tests
* Add selector
* Bug fixes and changes to cleanup, and fixing all flicking when switching library panels
* Removed console.log
* fixes after merge
* fixing tests
* fixing tests
* Added new test for changePlugin thunk
* Initial struture in place
* responding to state changes in another part of the state
* bha
* going in a different direction
* This is getting exciting
* minor
* More structure
* More real
* Added builder to reduce boiler plate
* Lots of progress
* Adding more visualizations
* More smarts
* tweaks
* suggestions
* Move to separate view
* Refactoring to builder concept
* Before hover preview test
* Increase line width in preview
* More suggestions
* Removed old elements of onSuggestVisualizations
* Don't call suggestion suppliers if there is no data
* Restore card styles to only borders
* Changing supplier interface to support data vs option suggestion scenario
* Renamed functions
* Add dynamic width support
* not sure about this
* Improve suggestions
* Improve suggestions
* Single grid/list
* Store vis select pane & size
* Prep for option suggestions
* more suggestions
* Name/title option for preview cards
* Improve barchart suggestions
* Support suggestions when there are no data
* Minor change
* reverted some changes
* Improve suggestions for stacking
* Removed size option
* starting on unit tests, hit cyclic dependency issue
* muuu
* First test for getting suggestion seems to work, going to bed
* add missing file
* A basis for more unit tests
* More tests
* More unit tests
* Fixed unit tests
* Update
* Some extreme scenarios
* Added basic e2e test
* Added another unit test for changePanelPlugin action
* More cleanup
* Minor tweak
* add wait to e2e test
* Renamed function and cleanup of unused function
* Adding search support and adding search test to e2e test
* Initial pass to move panel state to it's own, and make it by key not panel.id
* Progress
* Not making much progress, having panel.key be mutable is causing a lot of issues
* Think this is starting to work
* Began fixing tests
* Add selector
* Bug fixes and changes to cleanup, and fixing all flicking when switching library panels
* Removed console.log
* fixes after merge
* fixing tests
* fixing tests
* Added new test for changePlugin thunk
* Dashboard: Show logs on time series when hovering
* Fix passing hover handler to LogRow
* use DataHoverEvent
* use DataHoverEvent
* Clean up
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Security: Update default content_security_policy_template
- Add 'strict-dynamic' back to script-src
- Add ws(s)://$ROOT_PATH to connect-src
- Change onEvent to on-event in angular templates to fix CSP issues in firefox.
- Add blob: to style-src
* Initial work
* WIP add cursor in debug panel
* shared cursor.sync filter
* explicit uplot events
* explicit uplot events
* uplot events
* uplot events
* depend on master uplot
* sync sync sync
* Fix merge
* Get rid of PlotSyncContext and sync tooltip positions
* make sync optional
* Improve shared tooltip positioning
* Plugins: add level and signature badges to plugin details page (#33553)
* feat(grafana-ui): badge can accept react node for text, add shield-exclamation to icons
* feat(plugins): add PluginSignatureType type
* feat(pluginpage): introduce PluginSignatureDetailsBadge. Fix sidebar icon margin
* feat(pluginlistpage): update filterinput placeholder, introduce filter by plugin type
* Variables: Removes the never refresh option (#33533)
* Variables: Removes the never refresh option
* Tests: fixes DashboardModel repeat tests
* Tests: fixs snapshots
* Tests: fixes processVariable test
* Tests: fixes DashboardModel tests
* PageLayout: Fixes max-width breakpoint so that it triggers only when there is room for margin+ (#33558)
* Alerting: Remove datasource (name) from migration (#33544)
no longer needed as of https://github.com/grafana/grafana/pull/33416
for https://github.com/grafana/alerting-squad/issues/126
* Library panels: Adds description to library panels tab (#33428)
* CodeOwners: Set owners of unified alerting migration (#33571)
* ButtonSelect: updates component with the new theme model (#33565)
* EmptySearchResult: updates component with the new theme model (#33573)
* DashboardSettings: Slight design tweak to fix page toolbar padding and align design (#33575)
* DashboardSettings: Slight design tweak to fix page toolbar padding and align design
* Fixed font weight
* Removed comment
* Update
* gitignore: Ignore files for accesscontrol provisioning (#33577)
* Alerting/metrics (#33547)
* moves alerting metrics to their own pkg
* adds grafana_alerting_alerts (by state) metric
* alerts_received_{total,invalid}
* embed alertmanager alerting struct in ng metrics & remove duplicated notification metrics (already embed alertmanager notifier metrics)
* use silence metrics from alertmanager lib
* fix - manager has metrics
* updates ngalert tests
* comment lint
Signed-off-by: Owen Diehl <ow.diehl@gmail.com>
* cleaner prom registry code
* removes ngalert global metrics
* new registry use in all tests
* ngalert metrics impl service, hack testinfra code to prevent duplicate metric registrations
* nilmetrics unexported
* Add note to Snapshot API doc to specify that user has to provide the entire dashboard model (#33572)
* Added note as suggested by Macus E.
* Update docs/sources/http_api/snapshot.md
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
* Alerting: backend "ng" code cleanup (#33578)
* AlertMigration: remove alert_rule UID db check (#33568)
do not believe this is needed due to uniqueness promised by shortid lib
since there is no provisioning yet. https://github.com/teris-io/shortid
* Live: persisting last message in cache for broadcast scope (#32938)
* Alerting: Load annotations from rule into State cache (#33542)
for https://github.com/grafana/alerting-squad/issues/127
* add template for dashboard url parameters (#33549)
* Update dashboard-links.md
parameters with plain text like `var-something=value` can make confusion.
template it to clarify .
* describe way for template link.
* AlertingMigration: Create alert_rule_version entry (#33585)
Create the alert rule version entry during the migration so it is consistent with rules created via api.
for https://github.com/grafana/alerting-squad/issues/123
* Build: Fix with cleanup call maybe? (#33590)
* add selector for code editor (#33554)
* broadcast over eventBus
* broadcasting to eventbus (but not useing it yet)
* merge master
* moved to context
* fix yarn.lock
* update snapshot
* Fix direct state mutation
* Persist location state on partial updates
* GraphNG- use getStream rather than subscribe
* Sync LegacyGraphHoverEvent with GraphNG
* Chenge plotRef signature
* use subscription
* subscription
* one fewer file
* Update types
* Remove unnecessary filtering
* Disable cursor sync when in edit mode
* GraphNG - bring back logging
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
Co-authored-by: gamab <gamab@users.noreply.github.com>
Co-authored-by: Owen Diehl <ow.diehl@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
Co-authored-by: Nagle Zhang <nagle.zhang@sap.com>
Co-authored-by: Erik Sundell <erik.sundell@grafana.com>
* WIP updating getColorForTheme
* Progress
* More fixes
* Updating more parts
* Fixing unit tests
* Fixing more tests
* Fixing storybook issues
* More refactoring
* Fixed test
* WIP: initial commit
* Fix: Fixed $timeout call when testing snapshots
* Chore: reverts changes to metrics_panel_ctrl.ts
* Chore: reverts changes to annotations_srv
* Refactor: adds DashboardQueryRunner.run to initdashboard
* Refactor: adds run to dashboard model start refresh
* Refactor: move to own folder and split up into smaller files
* Tests: adds tests for LegacyAnnotationQueryRunner
* Tests: adds tests for AnnotationsQueryRunner
* Tests: adds tests for SnapshotWorker
* Refactor: renames from canRun|run to canWork|work
* Tests: adds tests for AlertStatesWorker
* Tests: adds tests for AnnotationsWorker
* Refactor: renames operators
* Refactor: renames operators
* Tests: adds tests for DashboardQueryRunner
* Refactor: adds mergePanelAndDashboardData function
* Tests: fixes broken tests
* Chore: Fixes errors after merge with master
* Chore: Removes usage of AnnotationSrv from event_editor and initDashboard
* WIP: getting annotations and alerts working in graph (snapshot not working)
* Refactor: fixes snapshot data for React panels
* Refactor: Fixes so snapshots work for Graph
* Refactor: moves alert types to grafana-data
* Refactor: changes to some for readability
* Tests: skipping tests for now, needs rewrite
* Refactor: refactors out common static functions to utils
* Refactor: fixes resolving annotations from dataframes
* Refactor: removes getRunners/Workers functions
* Docs: fixes docs errors
* Docs: trying to fix doc error
* Refactor: changes after PR comments
* Refactor: hides everything behind a factory instead
* Refactor: adds cancellation between runs and explicitly
* Performance: Standardize lodash imports to use destructured members
Changes lodash imports of the form `import x from 'lodash/x'` to
`import { x } from 'lodash'` to reduce bundle size.
* Remove unnecessary _ import from Graph component
* Enforce lodash import style
* Fix remaining lodash imports
* Babel: Updates babel dependencies to latest version
* Fixed problem introduced by babel where calling super with prefedefined this is not supported
* fixing test
* Fixed tests
* Improve fix for QueryCtrl
* Fixed more tests
* Updated tests
* Menu: refactor MenuItem and MenuGroup to be standalone component
* fixes small nits
* Chore: Refactored other components to correspond with the new Menu system (#31676)
* fixes affected components using Menu
* fixes affected components using Menu components
* fixes frontend test- I hope
* fixes frontend docs test- I hope
* fixes frontend docs test- I hope
* fixes frontend docs test- I hope
* fixes frontend docs test- I hope
* fixes frontend docs test- I hope
* added support for accessibility
* fixes frontend test- I hope
* Improve storybook story and simplify ButtonSelect
* Fixed broken graph context menu
* fixes frontend test- I hope
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Add router packages
* Get react app root work instead of Angular one
* Logger util
* Patch Angular routing ($routeProvider, $routeParamsProvider)
* Use react-router-dom history instead of separate dependency
* Add test routes
* Sidemenu - use Link instead of anchors
* Patch Angular $location service (stub)
* WIP: geting rid of $location provider from TimeSrv
* Intercept anchor clicks to use history under the hood
* Sync Redux location slice with history state
* Make login/logout work
* Debug routes for testing
* Make force login work
* Make sure query param change does not recreate page components
* Hide side menu in specified locations
* Make the dashboar route query parameters work, make panel edit menu work
* Enable more routes
* Fix side menu
* Handle view modes
* Disable playlist routes
* Make SafeDynamicImport work again
* Bring back router-debug
* Separate redux location sync from route rendering
* Refactor updateLocation to thunk and move force refresh(login) to it
* Fixing init dashboard issue
* Support switching between dashboards without an unmount of DashboardPage
* More fixes for init dashboard and panel edit
* More type fixes
* Moving angular location wrapper out of main LocationService, and fixing typescript issues
* Fixed last typescript errors
* LocationService: Move to runtime and remove getLocationService and export singleston const instead (#31523)
* Moving location service implementation to runtime and removing get function and making it a package const singleton
* Added test that used locationService directly
* removed unused import
* AngularApp: Moving angular dependencies and the app boot out of the main app into it's own file (#31525)
* Fixes angular panels by calling the monkey patch
* Moving angular stuff to to it's own files
* udpated
* Fixing clicking on divs and spans inside anchor
* Moving app notifications out of angular app and removing angular directive wrapper
* Moving search from angular to react and removing angular search wrapper
* Clean up, tried to remove the redux location wrapper but requires a big update for DashboardPage, so adding it back
* Moving AppWrapper to root to limit circular dependencies (app/core -> app/routing and back)
* Open and close search now works
* Hide sidemenu when in kiosk mode
* Restoring some keybindings like ESC key
* Removed kiosk events and simplified it, just handled through updating URL
* Fixing typescript errors
* Simplified GrafanaRouteComponentProps and renamed to ContainerProps
* renamed back
* Changed AlertRuleList to use GrafanaRouteComponentProps and location.search passed to it
* Removing the reloadOnSearch property, this is not needed now for react as react by default does not unmount components when only url match or query parmas change
* SafeDynamicImport causing unmount un every search update, not sure how to fix yet
* Fix signature for SafeDynamicImport so we do not create new route components on every route render
* Removing the redux location wrapper as it was causing errors, and making dashboard page work with RouteProps (location, match) etc
* Updating DashboardPage and SoloPanelPage to use match params and history location
* Fixed DashboardPage tests
* Fixing solo route tests
* LocationService: Rename getCurrentLocation to just getLocation
* do not intercept link clicks with target blank or self
* Experimental useUrlParams hook
* Update DataSourceSettingsPage to use router match params
* fix links with urls that have no starting / to work like before
* Fix forceLogin
* Add queryParams to GrafanaRouteComponentProps
* PanelEditor get rid of updateLocation and location state
* Improve grafana route query params typing
* Add getSearchObject to LocationService
* Use DashboardPAge queryParams instead of location.search parsing
* Fix DashboardPage typing
* Fix some tests weirdness
* Bring back KeyboardSrv
* Fixes typescript issues
* Team pages now use router match params
* Get rid of from GrafanaRouteComponent props
* Removed unnessary calls to getSearchObject when calling locationService.partial
* Updated DashboardPage tests after queryParams was added
* Fixing dashboard settings back
* GrafanaRoute: Adding tests and remove use of global locationService
* Fixing tests and typescript errors
* Bring back kiosk modes and add tests
* Fix TimeSrv tests
* Fix typecheck errors
* Fixing tests
* Updated SideMenu test to react-testing and wrapped component in Router, and fixed issue importing createMemoryHistory
* Get rid of routeChange event from TimeSrv from
* Fixed TopSectionItem test
* Trying to make basename work but failing
* Update TopSectionItem snapshot
* Fix TopSectionItem snapshot test
* Fix API keys creation
* Remove Angular dependencies from KeybindingSrv (#31617)
* Remove Angular dependency from KeybindingsSrv
* Fix tests and typecheck issues
* basename is starting to work
* Make dashboard save work
* KeybindingSrv: Remove as angular service and no usage angular scope
* So long bridge_srv, we won't miss you
* Update snapshots
* Dashboard: Refactoring ChangeTracker to use History api and no angular (#31653)
* Dashboard: Refactoring ChangeTracker to use History api and no angular
* Updated
* Removed logging
* fixed unit tests
* updated snapshots
* Mechanism for force reloading routes (#31683)
* e2e: Fixes various things in e2e scenarios after router migration (#31685)
* Explore: Update reading query params from router props and updating location via locationService (ReactRouter) (#31688)
* RoutingNG: Initial explore redux location to router location migration
* Updated explore Wrapper tests
* Fixing more tests
* remove loggin
* rename back to make naming consistent
* Fixing return to dashboard button
* fixing navigation to explore from dashboard
* updated routeProps
* Updated tests
* Make DashboardListPage work
* Fixing navigation after add new data source, and fixes explore e2e
* Fixing solo panel page
* PluginsPage now works
* RoutingNG: When parsing and rendering url search/query params preseve old logic of handling booleans and arrays (#31725)
* RoutingNG: When parsing and rendering url search/query params preserve old logic of handling booleans and arrays
* Fixed test
* Make snapshots list work
* fixed alert notification channel edit page
* Simplify LocationService, did not need special handling for login or forceLogin as target _self on link already handles that
* fixed UserAdminPage
* fixed edit orgs page
* Fixing LdapPage
* fixing dashboard import
* Fixed new folder page
* Fixed data source dashboards page
* fixing Folder permissions and folder settings page
* fixing snapshot list page nav model
* remove unused file
* Added placeholder page for playlist
* Moved browser compatability to index-template
* Restored 404/default page
* Fixed reset password page
* Fixed SignUpInvited page
* Fixing CreateTeam, Create user page, add panel widget
* Restore browwser file to make tests happy
* Fixed unit tests
* Removed unused import
* Replacing usage of updateLocation
* Fixed test
* Updating search filters to use history / location service for filters
* remove unused file
* AppRootPage fixed
* Fixing test and search issue
* Changes to support enterprise extensions
* remove console.log
* Removing more use of redux location
* Fixed signup page
* removed unused old angular controllers
* Fixing bugs
* one final bugfix
* Removed location from redux state
* Fixing ts issues and tests
* Fixing test issue
* fixing tests
* Fixing tests
* removed unused stuff
* Fixed search test
* Adding some doc comments
* Routing NG: Angular location provider patch (#31773)
* Patch Angulars $location provider
* Update public/app/angular/bridgeReactAngularRouting.ts
* Remove only test
* Update tests, disable loggers in test env
* Routing NG: remove $location provider usage (#31816)
* Remove dashboard_loaders
* Remove $location from Analytics service, track page views form GrafanaRoute
* Remove NotificationsEditCtrl
* Remove Angular dependencies from uploadDashboardDirective
* Update public/app/features/dashboard/containers/DashboardPage.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/features/dashboard/containers/DashboardPage.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Remove unused test helpers (#31831)
* Playlist react (#31829)
* playlist list in react
* Playlist start
* Things started to work
* Updated
* Handle empty list
* Fix ts
* Fixes and kiosk mode stuff
* Removed unused events
* fixing ts issue
* Another ts issue
* Fixing tests
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* fixed test
* Update public/app/AppWrapper.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/AppWrapper.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Remove Angular dependency from DashboardLoaderSrv (#31863)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Graph: Fixes so graph is shown for non numeric time values
* Tests: changes times to UTC
* Tests: forgot one value in time array
* GraphNG: make time series panel work with string time stamps (#30981)
* Make Time series panel work with data that time is represented as string
* Map to for
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>