Commit Graph

2670 Commits

Author SHA1 Message Date
Marcus Andersson
69201bbf8c Plugins: moving the DataSourcePicker to grafana/runtime so it can be reused in plugins (#31628)
* moved the datasource picker to grafana-runtime.

* fixed imports.

* added e2e selectors as an external package.

* adding react as external package.

* exposing dependent types for DataSourcePicker.

* added docs for ui components.

* moving component to components.
2021-03-18 10:44:26 +01:00
Denis Hilt
8fafe95728 DashNav: Pass typed event through the DashNav button onClick handler (#32084)
* Pass typed event thorough the DashNav button onClick handler

Event.stopPropagation() method needs to be called in some cases. This change addresses typescript error Type '(event: ...) => void' is not assignable to type '() => void'.

* Pass typed event thorough the DashNav button onClick handler

* Import MouseEvent from React
2021-03-18 08:23:58 +01:00
Torkel Ödegaard
e935e4979f TimePicker: Fixes hidden time picker shown in kiosk TV mode (#32062)
* TimePicker: Fixes hidden time picker shown in kiosk TV mode

* Use kioskmode passed via props

* Update snaps

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2021-03-17 18:03:05 +01:00
Dominik Prokop
48eb747da0 Routing NG: Fix persistent modal after dashboard delete (#32033) 2021-03-16 17:10:47 +01:00
Dominik Prokop
e967ad9ca9 Routing NG: Fix time range zoom not working when refresh enabled (#32023)
* Fix time range zoom not working when refresh enabled

* Review update
2021-03-16 14:25:40 +01:00
Dominik Prokop
0d92425bb8 RoutingNG: Fix infinite loop caused by history state not being cleaned up (#31952)
* Fix infinite loop caused by history state not being cleaned up

* Ude forceRouteReload counter instead of bool flag

* Review fix
2021-03-16 09:27:32 +01:00
Hugo Häggmark
66177e9463 PanelInspect: Interpolates variables in CSV file name (#31936)
* PanelInspect: Variables in CSV file name are interpolated

* Chore: fixes failing test
2021-03-15 08:44:13 +01:00
Hugo Häggmark
9f92eb6859 AnnotationList: Adds spacing to UI (#31888)
* AnnotationList: Adds spacing to UI

* Tests: updates snapshots

* Chore: updates after PR comments
2021-03-11 11:59:35 +01:00
Dominik Prokop
a55a272276 Routing NG: Replace Angular routing with react-router (#31463)
* 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>
2021-03-10 18:03:36 +01:00
kay delaney
06a6fb405c Library Panels: Add "Discard" button to panel save modal (#31647)
* Library Panels: Add "Discard" button to panel save modal
2021-03-09 17:05:38 +00:00
kay delaney
0b4305c2c3 Library Panels: Choosing library panel now updates plugin type (#31643)
* Library Panels: Choosing library panel now updates plugin type
2021-03-04 13:17:57 +00:00
Hugo Häggmark
e87d48921e Admin: Keeps expired api keys visible in table after delete (#31636)
* Admin: Keeps expired keys visible in table after delete

* Chore: covers component in tests before refactor

* Refactor: splitting up into smaller components

* Chore: fixes a small issue with the validation

* Chore: forgot to export type
2021-03-04 13:20:38 +01:00
Torkel Ödegaard
4c5321bd99 Color: Fixes issue where colors where reset to gray when switch panels (#31611) 2021-03-04 08:04:45 +01:00
kay delaney
9e0d84f1cf Library Panels: Change unsaved change detection logic (#31477)
* Library Panels: Change unsaved change detection logic
Change logic from diffing panel models to setting dirty flag
2021-03-03 14:16:54 +00:00
Hugo Häggmark
d306f417d3 LibraryPanels: No save modal when user is on same dashboard (#31606) 2021-03-02 15:37:36 +00:00
Torkel Ödegaard
eddc163e78 AddPanel: Design polish (#31484)
* AddPanel: Design fixes

* More design updates

* More tweaks

* Updated snapshot

* Modal fixes

* Updated field labels

* Move icon to left again
2021-02-26 12:29:28 +01:00
Torkel Ödegaard
c41b559063 FolderPicker: Remove useNewForms from FolderPicker (#31485)
* FolderPicker: Remove useNewForms from FolderPicker

* Updated snapshot
2021-02-26 08:42:00 +01:00
Jack Westbrook
ad68f3c5e6 DashboardSettings: Migrate Link Settings to React (#31150)
* feat(dashboardsettings): migrate dashboard links EmptyListCTA to react

* feat(dashboardsettings): initial commit of links settings migration to react

* feat(dashboardsettings): add links form functionality

* refactor(dashboardsettings): separate out linksettings components and concerns

* Updates to links list

* Form improvements

* test(dashboardlinks): update links so tests run

* refactor: move _.move to arrayMove for testing purposes

* test(dashboardsettings): initial commit of link settings tests

* refactor(app): put back lodash move method for backwards compatibility

* test(dashboardsettings): add links settings tests

* style(dashboardsettings): camelcase constants

* chore(dashboardsettings): delete old angular links settings view

* fix(dashboardsettings): forceupdate links on submenuVisibilityChanged and correct imports

* chore: remove reference to old angular link settings components

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-02-25 11:50:10 +01:00
kay delaney
47d2a8085b Frontend changes for library panels feature (#30653)
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
2021-02-25 10:26:28 +00:00
Torkel Ödegaard
59c060f1f1 Streaming: Fixes an issue with time series panel and streaming data source when scrolling back from being out of view (#31431)
* Streaming: Fixes an issue with time series panel and streaming data source when scrolling back from being out of view

* Slight tweak
2021-02-24 11:12:11 +01:00
Zoltán Bedi
67c215f5f1 Chore: Upgrade eslint packages (#31408) 2021-02-23 10:02:07 +01:00
Torkel Ödegaard
372ae7fdd3 Chore: Fix strict errors, down to 416 (#31365) 2021-02-22 10:06:07 +01:00
Torkel Ödegaard
2b7628c69e DashboardLinks: Fixes another issue where dashboard links cause full page reload (#31334) 2021-02-19 08:26:22 +01:00
Marcus Efraimsson
8f20b13f1c Snapshots: Disallow anonymous user to create snapshots (#31263) 2021-02-17 09:51:50 +01:00
Torkel Ödegaard
4dfce12a81 TagsInput: Design update and component refactor (#31163)
* TagsInput: Design update and component refactor

* Update packages/grafana-ui/src/components/TagsInput/TagsInput.tsx

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* Update packages/grafana-ui/src/components/TagsInput/TagsInput.tsx

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* Update packages/grafana-ui/src/components/TagsInput/TagsInput.tsx

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* Update packages/grafana-ui/src/components/TagsInput/TagsInput.tsx

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* Updated

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2021-02-16 09:39:11 +01:00
Torkel Ödegaard
b3c32277dd StatPanels: Fixes to palette color scheme is not cleared when loading panel (#31126) 2021-02-13 11:35:39 +01:00
Torkel Ödegaard
9629dded42 DashboardLinks: Fixes links always cause full page reload (#31178) 2021-02-12 18:08:18 +01:00
Dominik Prokop
8d339a279b Eslint: no-duplicate-imports rule (bump grafana-eslint-config) (#30989)
* Eslint: no-duplicate-imports rule (bump grafana-eslint-config)

* Chore: Fix duplicate imports (#31041)

* Rebased this branch into eslint-no-duplicate-imports

* updated some changes

* merged uncaught duplicate imports

* fixes frontend test- I hope

* fixes e2e test- I hope

Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
2021-02-11 13:45:25 +01:00
Torkel Ödegaard
758d1386cd DashboardSettings: Update to new form styles (#31022)
* DashboardSettings: Update to new form styles

* Improve header margin and fixing issue in permissions tab

* Updated

* Switch to radio

* Remove unused import
2021-02-09 20:41:07 +01:00
Jack Westbrook
ef8a5b760f Dashboard: Migrate general settings to react (#30914)
* feat(dashboard): initial commit of general settings migration to react

* fix(dashboardsettings): force update of general settings when selects change

* feat(dashboardsettings): initial commit of delete dashboard button and modal

* feat(dashboardsettings): introduce useDashboardDelete hook

* feat(dashboardsettings): add tags and editable inputs

* refactor(dashboardsettings): fix typescript error in general settings

* refactor(dashboardsettings): use grafana-ui form components for general settings

* refactor(dashboardsettings): use ConfirmModal and move provisioned modal to own component

* refactor(dashboardsettings): revertDashboardModal uses ConfirmModal

* test(autorefreshintervals): remove renderCount prop to fix test

* test(dashboardsettings): put back aria-label for e2e tests

* chore(dashboardsettings): remove redundant generl settings angular code

* test: change references to now deleted SettingsCtrl to GeneralSettings

* refactor(dashboardsettings): swap out switch for inlineswitch component

* chore(timepickersettings): remove timePickerSettings angular directive definition

* feat(dashboardsettings): add tooltips, fix description field name

* refactor(dashboardsettings): remove redundant await

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* refactor(usedashboarddelete): clean up

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2021-02-09 12:04:03 +01:00
Hugo Häggmark
f42bb84cbf TextPanel: Fixes so panel title is updated when variables change (#30884)
* TextPanel: Fixes so panel title is updated when variables change

* Tests: fixes tests

* Chore: updates after PR comments
2021-02-09 06:05:34 +01:00
Oscar Kilhed
3a905847e8 Grafana/UI: Remove DismissableFeatureInfoBox and replace with LocalSt… (#30988)
* Grafana/UI: Remove DismissableFeatureInfoBox and replace with LocalStorageValueProvider
2021-02-08 16:12:05 +01:00
Ryan McKinley
11fa7c697e Transformers: add search to transform selection (#30854) 2021-02-04 12:23:05 -08:00
Oscar Kilhed
e2ecb70051 Dashboard: Ignore changes to dashboard when the user session expires (#30897)
When the user session expires, and the 401 triggers a page reload to get the user to the login page, ChangeTracker will interfer. By setting the user as logged out in the context when the session is timed out, we can ignore the changes in ChangeTracker.
2021-02-04 15:29:38 +01:00
Torkel Ödegaard
01b10ab436 Alerting: Fixes alert panel header icon not showing (#30840)
* Alerting: Fixes alert panel header icon not showing

* Remove as any
2021-02-04 09:15:01 +01:00
Ha. Huynh Sam
141202f518 DashboardLinks: Support variable expression in to tooltip - Issue #30409 (#30569)
* add compile variable in tooltip link

* test(link_srv): introduce getAnchorInfo test

* test(link_srv): introduce tests for getLinkUrl

* test(link_srv): refer to anchorInfo.url rather than hardcode expected

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-02-03 09:55:18 +01:00
Oscar Kilhed
99acad4448 GrafanaUI: Add a way to persistently close InfoBox (#30716)
* GrafanaUI: Add a way to persistently close InfoBox

InfoBox and FeatureInfoBox can take up a lot of screen realestate. This makes it easy to let the user close the boxes.

* Migrate InfoBox story to controls
2021-02-02 15:16:31 +01:00
tanner-bruce
7a4c32d703 Fix typo in transformer registry (#30712) 2021-02-02 14:01:57 +01:00
Hugo Häggmark
08eee87148 Panels: Fixes so panels are refreshed when scrolling past them fast (#30784) 2021-02-01 15:06:46 +01:00
Torkel Ödegaard
a8a3e02699 PanelEdit: Trigger refresh when changing data source (#30744) 2021-01-31 07:32:20 +01:00
Ryan McKinley
26b168f7eb BarChart: add alpha bar chart panel (#30323) 2021-01-29 12:52:52 -08:00
Divyam Bhasin
1c73ea1731 Dashboard: Top Share URL icon should share panel URL when on viewPanel page (#30000) 2021-01-28 18:27:28 +01:00
Torkel Ödegaard
02f8a139db PanelEdit: Get rid of last remaining usage of navbar-button (#30682) 2021-01-27 20:10:03 +01:00
Uchechukwu Obasi
d472c7820c CustomScrollbar: migrated styles from sass to emotion (#30506)
* CustomScrollbar: migrated styles from sass to emotion

* fixes frontend test

* updated changes

* fixed page props and applied changes to all occurences

* moved the getStyles function to the bottom of the file

* made some changes

* fixed snapshot test

* Revert "Merge branch 'refactor-customscrollbar-30354' of https://github.com/grafana/grafana into refactor-customscrollbar-30354"

This reverts commit c45ee30b6b297991a1628e9b21c4121dc78e376c, reversing
changes made to d2645534e3.

* improved props name

* made use of theme variables for style consistency

* fixed snapshot test and updated some theme changes

* removed hover effects from customScrollbar style

* made some changes

* updated some changes

* added label to class names

* changed to a functional component and improved styling

* fixes snapshot test

* fixes small nit

* minor tweaks

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-01-27 17:47:24 +01:00
Torkel Ödegaard
75cb6703a6 DashboardSettings & PanelEdit: Use new PageToolbar (#30675)
* DashboardSettings & PanelEdit: Use new PageToolbar

* Update

* removed back button
2021-01-27 16:46:01 +01:00
Torkel Ödegaard
701ad79bb5 PageToolbar: Extracting navbar styles & layout into a modern emotion based component (#30588)
* Explore: Replaces navbar-button and overriden explore button css classes with ToolbarButton and cleans up scss & markup, removes ResponsiveButton

* Change live button text when paused

* For the dashboard toolbar button I need a transparent button so I refactored the states/variants into a new ToolbarButtonVariatn

* PageToolbar wip

* Progress

* Prgress

* Minor progress

* Fixed back button and responsive titles

* Fixed tv mode

* Updated

* support tv modes and playlist

* more progress

* Fixing lots of view states and responsive features

* Minor fixes

* review fixes

* Fixes to e2e tests

* Review fixes
2021-01-27 15:02:04 +01:00
Jack Westbrook
aaa6ebb231 DashboardSettings: fixes vertical scrolling (#30640)
* fix(dashboardsettings): allow view to scroll vertically

* refactor(dashboardsettings): use theme bg colour instead of palette colour
2021-01-26 15:35:30 +01:00
Torkel Ödegaard
80294b2dbf TimeRangePicker: Updates components to use new ToolbarButton & ButtonGroup (#30570)
* WIP: Using new components

* Progress

* Everything looks to be working

* Explore: Replaces navbar-button and overriden explore button css classes with ToolbarButton and cleans up scss & markup, removes ResponsiveButton (#30571)

* Explore: Replaces navbar-button and overriden explore button css classes with ToolbarButton and cleans up scss & markup, removes ResponsiveButton

* Change live button text when paused

* Fixed story

* For the dashboard toolbar button I need a transparent button so I refactored the states/variants into a new ToolbarButtonVariatn

* Changing my mind on the transparent variant

* review fixes

* Review fixes
2021-01-25 14:01:54 +01:00
Hugo Häggmark
c5279bba7f RefreshPicker: Fixes so valid intervals in url are visible in RefreshPicker (#30474)
* RefreshPicker: Fixes so refresh intervals from url are visible in RefreshPicker

* Refactor: changes after PR comments

* Chore: adds comment
2021-01-25 08:37:41 +01:00
Oscar Kilhed
26ae35132f Dashboard: Remove Icon and change copy -> Copy to clipboard in the share embedded panel modal (#30480) 2021-01-21 11:15:14 +01:00