Commit Graph
100 Commits
Author SHA1 Message Date
Dominik Prokop 7ee7dfda2b Stacking: Ignore null/undefined-only stacks instead of assuming 0 value (#44359) 2022-01-24 10:49:47 +01:00
Dominik Prokop 7bf25f62e1 Cursor sync: Apply the settings without saving the dashboard (#44270)
* Cursor sync: Apply the settings without saving the dashboard

* Remove unnecessary code

* Lint god damn
2022-01-20 16:38:10 +01:00
Dominik ProkopandOscar Kilhed 0a5771ee6b TimeSeries/BarChart/XYChart: Allow hiding x axis (#44107)
* TimeSeries/BarChart/XYChart: Allow hiding x axis

* Update public/app/plugins/panel/barchart/utils.ts

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>

* Migrations

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2022-01-20 00:38:32 -08:00
Dominik Prokop 9f0889c402 TablePanel: Makes footer not overlap table content (#44210) 2022-01-20 00:37:49 -08:00
Dominik Prokop 2561864767 Table panel: Migrate time series aggregation Current to Last not null, instead of last (#44113) 2022-01-18 00:34:56 -08:00
Dominik Prokop 2a766c6a04 UsersTable: Render remove modal only once (#43885)
* UsersTable: Render remove modal only once

* Formatting cleanup

* Snaps update
2022-01-11 16:27:48 +01:00
Dominik Prokop 1a0f5595c3 TimeSeries/BarChart: Add support for sorting series in the tooltip (#43615)
* TimeSeries panel: Add support for sorting series in the tooltip

* Fix cue tests

* Make sortValues work with string values

* Sort values in DatHoverView and remove sort index from TooltipPlugin

* Rename sortOrder prop to sort

* DataHoverView - use raw values for sorting
2022-01-10 10:32:21 +01:00
Dominik Prokop 4b814dbcea TimeSeries: Separate field unit config for axis ticks and other display means when stacking by percent (#43713) 2022-01-10 01:18:56 -08:00
Dominik Prokop 12619065a4 Dependencies: Bump monaco to 0.31.0 (#43022) 2021-12-13 13:21:50 +01:00
Dominik Prokop 1809513575 npm/canary: Fix typo in publish script (#43020) 2021-12-13 10:38:31 +01:00
Dominik ProkopandZoltán Bedi 826b3bfd52 StateTimeline: Fix toolitp not showing when for frames with multiple fields (#42741)
* StateTimeline: Fix toolitp not showing when for frames with multiple fields

* Update public/app/plugins/panel/state-timeline/StateTimelinePanel.tsx

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* Update public/app/plugins/panel/state-timeline/StateTimelinePanel.tsx

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* Update public/app/plugins/panel/state-timeline/StateTimelinePanel.tsx

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2021-12-07 10:27:20 +01:00
Dominik Prokop fa930e7dbd KeybindingSrv: Prevent dashboard save modal when dashboard cannot be saved (#42505) 2021-12-01 13:47:47 +01:00
Dominik Prokop 2dc30dff63 grafana/ui: Expose ButtonProps type (#42221) 2021-11-24 14:25:59 +01:00
Dominik ProkopandZoltán Bedi d2d38c978f grafana/ui: Export types and utils required by grafana/experimental (#42133)
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2021-11-23 15:41:51 +01:00
Dominik Prokop 67f43cd7ab ThresholdControls: Use correct scale key when calculating handle position (#41942) 2021-11-19 14:03:27 +01:00
Dominik Prokop 92639d1475 Update latest.json (#41873) 2021-11-19 10:37:00 +01:00
Dominik Prokop 1be9a61f43 TimeSeries: Allow multiple axes for the same unit (#41635)
* TimeSeries: Allow multiple axis for the same unit

* Update snapshot

* Add axis label and soft min/max to the scale key

* Removed console.log
2021-11-18 08:55:26 +01:00
Dominik Prokop afdd9b2455 Angular: only bootstrap the root application element (#40822)
* Angular: Do not bootstrap Angular against entire document

* Do not retrieve injector by using angular instance directly.
2021-10-29 11:31:41 +02:00
Dominik Prokop 6201b5b1d9 Table panel: Fix filter not working for special characters and allow filter's case sensitivity control (#40458)
* Fix filter not working for special characters and allow case sansitive filter control

* Memoize regex
2021-10-18 09:19:05 +02:00
f887576a27 Table panel: Make filter case insensitive (#39746)
* Expose FilterInput from grafana/ui

* Make table filter case insensitive

* Update packages/grafana-ui/src/components/Table/FilterList.tsx

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-09-29 09:35:41 +02:00
Dominik Prokop 5eb46281a4 Publishing packages: Add grafana/schema (#39317) 2021-09-17 10:14:28 +02:00
Dominik Prokop b97e2da2bf Table panel: Make sure width of the tooltip is correct (#39086) 2021-09-13 14:03:32 +02:00
Dominik Prokop e68bf87de1 GraphNG: Remove plot context (#38928)
* Remove plot ctx usage: Tooltip plugin

* Remove plot ctx usage: Context menu plugin

* Remove plot ctx usage: Annotations plugin

* Remove plot ctx usage: Exemplars plugin

* Remove plot ctx usage: EventsCanvas plugin

* Remove plot ctx usage: EventsCanvas/XYCanvas plugin

* Remove plot ctx usage: AnnotationEditor plugin

* Remove plot ctx usage: AnnotationMarker

* Remove plot context

* Do not throw react warnings from uPlot performed hooks
2021-09-10 13:50:21 +02:00
Dominik Prokop 92d736665a TimeSrv: Do not update URL multiple times for same, consecutive range updates (#39083) 2021-09-10 13:05:34 +02:00
Dominik Prokop 1a566bef47 Alerting/Annotations: Bring back metrics and alert state to annotations tooltip (#39035)
* Normalize alert state name for UI descriptor retrieval

* Bring back alert state and metric values to annotation tooltip

* Make sure alert state is only shown when present

* Update test

* Handle Error alerting satte
2021-09-09 16:58:27 +02:00
Dominik Prokop 326455a9b8 Annotation tooltip: Bring back links styles (#38780) 2021-09-01 13:30:30 +02:00
1be53b4f3b TimeSeries: Add per-axis grid visibility toggle (#38502)
* Allow grid lines visibility control to XYChart and TimeSeries

* Move grid lines config to field config (axis)

* Fix merge

* Auto grid mode

* Fix ts

* Align naming

* Update packages/grafana-ui/src/components/uPlot/config/UPlotConfigBuilder.test.ts

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* Update packages/grafana-ui/src/components/uPlot/config/UPlotConfigBuilder.test.ts

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* remove 'grid' from props diff array since field.config.custom.* is handled by structureRev diffing

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-27 12:30:42 -05:00
Dominik Prokop 40a87a7851 BarChart: use uPlot's native bars pathbuilder (#36725) 2021-07-22 00:50:59 +02:00
Dominik Prokop a6aab7d0c9 Docs: Add time series annotations docs (#36657)
* Docs: Add time series annotations docs

* Review
2021-07-16 12:33:00 +02:00
Dominik Prokop 421f5040ec User analytics: Use user email as Rudderstack id (#36788) 2021-07-15 12:28:13 +02:00
Dominik ProkopandDan Cech 663a8935f7 User analytics: Add Rudderstack integration (#36567)
* Replace analytics service with Echo backend

* Add Rudderstack integration and general pageview and interaction Echo events

* Update conf/defaults.ini

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update packages/grafana-runtime/src/types/analytics.ts

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update conf/defaults.ini

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update tests

* Force cla check

Co-authored-by: Dan Cech <dcech@grafana.com>
2021-07-09 11:45:25 +02:00
Dominik ProkopandTorkel Ödegaard 7df0010412 TimeSeries panel: Allow adding annotations from the panel (#36220)
* First stab on UI for adding annotations in time series panel

* Extend panel context with annotations api

* Annotations editor UI & CRUD

* Prevent annotation markers to overflow uPlot canvas

* Do not overflow graphing area with region annotations

* Align annotation id type

* Fix exemplar markers positioning

* Use clipping region rather than adjusting annotation region bounds

* Smaller icons

* Improve annotation tooltip and editor auto positioning, reorg code

* Renames

* Enable annotations ctx menu only when adding annotations is allowed

* Wrap setSelect hooks diring init hook

* Use TagFilter instead of TagsInput

* Add id to annotation events

* Add support for cmd+click for adding point annotations

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-07-08 10:39:03 +02:00
b361fc751c PanelOptions: Don't mutate panel options/field config object when updating (#36441)
* PanelOptions: Don't mutate panel options/field config object when updating

* Review

* maybe faster, plus value === '' fix

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-07-07 08:58:07 +02:00
Dominik Prokop 7ae656ff16 TimeSeries: Do not show series in tooltip if it's hidden in the viz (#36353) 2021-07-05 10:15:34 +02:00
Dominik Prokop 6f3887ca88 TimeSeries panel: Do not reinitialize plot when thresholds mode change (#35952) 2021-06-21 08:51:39 +02:00
Dominik Prokop 60f5865ee2 GraphNG: Handle infinite numbers as nulls when converting to plot array (#35638) 2021-06-15 15:00:09 -05:00
Dominik Prokop 08bc2b402b ValueMappings: Improve singlestat value mappings migration (#35578)
* Migrate singlestat value mappings to new value mappings

* Update public/app/features/dashboard/state/DashboardMigrator.ts

* Update migration to produce single value map
2021-06-14 13:47:34 +02:00
Dominik ProkopandLeon Sorokin 7359ba44d0 Timeline/Status grid panel: Add tooltip support (#35005)
* Timeline/Status grid tooltip support first pass

* Tooltips workin

* Use getValueFormat to get the duration

* Separate boxes highlight from tooltip interpolation

* Separate state timeline tooltip component, rely on field display color to retrieve color of series

* create an onHover/onLeave API and optimize implementation

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-06-02 21:43:47 -05:00
Dominik Prokopandkay delaney a08ee057eb VizLegend: add readonly prop (#35096)
* VizLegend: add readonly prop

* Update packages/grafana-ui/src/components/VizLegend/VizLegendTableItem.tsx

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2021-06-02 15:39:20 +02:00
Dominik Prokop 823581add8 Secure from custom config being undefined in PlotLegend (#34975) 2021-05-31 19:37:34 +02:00
Dominik Prokop 573d7b8893 GraphNG: Remove fieldName and hideInLegend properties from UPlotSeriesBuilder (#34901)
* Remove fieldName and hideInLegend properties from UPlotSeriesBuilder

* Fix test
2021-05-31 09:27:57 +02:00
Dominik Prokop 1fa755bada Time series panel: Position tooltip correctly when window scrolled or resized (#34782)
* Position GraphNG tooltip correctly when window scrolled or resized

* Use syncRect uPlot hook instead of polling

* update snap?!
2021-05-27 10:51:06 +02:00
Dominik Prokop 811704fd2e PanelEdit: Allow standard field config properties extensions without altering order of standard options (#34669)
* Render tooltip options in correct category

* Allow custom field config properties that extend standard categories
2021-05-27 10:36:45 +02:00
4cbffae1b4 AppPlugins: Expose react-router to apps (#33775)
* Allow Route component usage in app plugins

* i tried

* fix catalog app

* fix catalog app

* remove catalog changes from this PR

* remove extra files

* feat(plugins): expose react-router to plugins rather than export via grafana-ui

* Bring back query and pathname to AppRootPage and add deprecation notice

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-05-19 19:10:21 +02:00
Dominik Prokop a2cbbe1b8a BarChart: value label sizing (#34229)
* Bar chart label positioning and sizing

* Dev dashbard

* Improve autosizing

* Remove sync option

* Unify text sizing options between stat-ish visualizations and bar chart

* Add simple categorical data scenario and update dev dashboard

* Remove unused options builder

* Add docs annotations

* Fix go lint
2021-05-19 17:33:56 +02:00
Dominik Prokop 5e0e91cd9a Update packages version (#34064)
* Update packages version

* update root package.json
2021-05-13 16:02:18 +02:00
Dominik Prokop 13d84d5540 Update latest.json (#34060) 2021-05-13 15:44:44 +02:00
Dominik Prokop 9826bfa786 Updates release notes and whats new link in package.json (#34039) 2021-05-13 11:37:45 +02:00
Dominik Prokop baa5ceb4c0 Do not crash timeseries panel if there is no time series data in the response (#33993) 2021-05-12 14:14:39 +02:00
Dominik ProkopandRyan McKinley 2ded2aef71 BarChart: enable series toggling via legend (#33955)
* Adds support for Tooltip in BarChartPanel

* Revert some formatting

* Remove BarChart story

* BarChart: move visualization to core

* BarChart: enable series toggling via legend

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-05-11 21:40:04 +02:00
Dominik ProkopandRyan McKinley 17305ccda3 Barchart: move viz to core (#33947)
* Adds support for Tooltip in BarChartPanel

* Revert some formatting

* Remove BarChart story

* BarChart: move visualization to core

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-05-11 20:57:52 +02:00
Dominik Prokop bf2c45db01 BarChartPanel: Adds support for Tooltip in BarChartPanel (#33938)
* Adds support for Tooltip in BarChartPanel

* Revert some formatting

* Remove BarChart story
2021-05-11 19:24:23 +02:00
Dominik ProkopandOscar Kilhed deeef321d3 Unify tooltip options across visualizations (#33892)
* Unify tooltip options across visualizations

* Update tests

* use addTooltipOptions in piechart

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2021-05-11 15:46:12 +02:00
+6 9f8fa4212f GraphNG - shared cursor (#33433)
* 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>
2021-05-10 14:24:23 +02:00
Dominik Prokop ca54b4d6b0 Routing NG: persist state on partial updates (#33687)
* Persist location state on partial updates

* Add test
2021-05-06 09:15:52 +02:00
Dominik Prokop b2d4730ca1 GraphNG: display original values in the tooltip when stacking (#33740) 2021-05-05 13:28:35 +02:00
Dominik Prokop 45c763a76b GraphNG: Bring back plot instance getter on the Plot context (#33516)
* Bring back plot instnace getter on the Plot context

* Update plot context usage
2021-04-29 13:51:21 +02:00
Dominik ProkopandDiana Payton fffa8ad8de Docs: add documentation for new stacking option in Time series panel (#33023)
* Docs: add documentation for new stacking option in Time series panel

* Update docs/sources/panels/visualizations/time-series/graph-time-series-stacking.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Post review update

* review 2

* Update docs/sources/panels/visualizations/time-series/graph-time-series-stacking.md

* Update docs/sources/panels/visualizations/time-series/graph-time-series-stacking.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/panels/visualizations/time-series/graph-time-series-stacking.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/panels/visualizations/time-series/graph-time-series-stacking.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/panels/visualizations/time-series/graph-time-series-stacking.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/panels/visualizations/time-series/graph-time-series-stacking.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-04-26 17:44:28 +02:00
Dominik ProkopandLeon Sorokin a54ac510c4 GraphNG: Make the GraphNG / uPlot flow sync (#33215)
* Move data alignment to panel

* Make uPlot plugins sync, bring back alignment to GraphNG

* Update GraphNG-like panels

* Update explore graph ng

* Cleanup unnecessary tests

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-04-26 13:30:04 +02:00
Dominik Prokop d76c056656 Revert "LegendIcon: only render color picker when the props change (#33141)" (#33313)
This reverts commit af46bbf654.
2021-04-23 15:50:34 +02:00
Dominik Prokop 0cc620aea7 GraphNG: stacking (#30749)
* First iteration

* Dev dash

* Re-use StackingMode type

* Fix ts and api issues

* Stacking work resurected

* Fix overrides

* Correct values in tooltip and updated test dashboard

* Update dev dashboard

* Apply correct bands for stacking

* Merge fix

* Update snapshot

* Revert go.sum

* Handle null values correctyl and make filleBelowTo and stacking mutual exclusive

* Snapshots update

* Graph->Time series stacking migration

* Review comments

* Indicate overrides in StandardEditorContext

* Change stacking UI editor, migrate stacking to object option

* Small refactor, fix for hiding series and dev dashboard
2021-04-15 13:00:01 +02:00
024b6b5779 Utils: Global debugger utils (#32951)
* Global debugger utils

* Update packages/grafana-ui/src/utils/debug.ts

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>

* Update packages/grafana-ui/src/utils/debug.ts

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>

* Update packages/grafana-ui/src/components/uPlot/utils.ts

Co-authored-by: Torkel Ödegaard <torkel@grafana.org>

* Update packages/grafana-ui/src/utils/debug.ts

Co-authored-by: Torkel Ödegaard <torkel@grafana.org>

* fix merge suggestion

* Typos

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
2021-04-14 12:58:56 +02:00
Dominik ProkopandRyan McKinley b47fba4b68 v8: remove Singlestat panel and add automatic migration to stat/gauge(#31904)
* Remove singlestat panel from the codebase

* Automatically migrate deprecated panels

* Migrate singlestat to stat when initializing panel

* Singlestat -> gauge detection

* Missing await

* Throw error when panel plugin not found and allow new panels to take names of the deprecated ones

* Make it pretty

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-04-12 12:47:17 +02:00
Dominik Prokop deccc97985 DataLinks: Ensure window origin to be stripped from url when using absolute urls (#32634)
* Ensure window origin to be stripped from url when using absolute urls

* Update test

* Make sure link interception works for external links

* Apply suggestions from code review

* Review
2021-04-08 17:38:56 +02:00
Dominik Prokopandachatterjee-grafana 27398625ca TablePanel: Add solid background cell display mode (#32446)
* Add solid color background cell display mode

* Update docs/sources/panels/visualizations/table/table-field-options.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/table/table-field-options.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-04-02 13:49:12 +02:00
Dominik Prokop 79dafe17a9 Filter by value: respect field config coming from the datasource (#32428)
* Make sure field config is preserved when filtering values and state of the field recalcualted

* Tests update
2021-03-30 09:30:07 +02:00
Dominik Prokop 5b2a419df8 Fix inline code being rendered as block in the panel description (#32405) 2021-03-29 11:47:37 +02:00
Dominik Prokop 95c65a1f4a GraphNG: Fix tooltip displaying wrong or no data (#32312) 2021-03-26 09:56:40 +01:00
Dominik Prokop 79e8db98a5 Update latest.json to 7.5.0-beta2 (#32167) 2021-03-19 16:28:57 +01:00
Dominik Prokop fb337e5c1d GraphNG: Ignore string fields when building data for uPlot in GraphNG (#32150) 2021-03-19 10:43:55 +01:00
Dominik Prokop a6cb9fb295 GraphNG: make sure dataset and config are in sync when initializing and re-initializing uPlot (#32106)
* Make sure dataset and uPlot config are in sync when rendering uPlot

* Tests

* Fix TS
2021-03-18 17:26:57 +01:00
Dominik Prokop b0d7e3dbee GraphNG: Fix tooltip series color for multi data frame scenario (#32098) 2021-03-18 13:16:36 +01:00
Dominik Prokop 48f46a597f GraphNG: Fix PlotLegend field display name being outdated (#32064) 2021-03-17 14:40:30 +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 e9402a56ba Make master green (#32011) 2021-03-16 09:55:02 +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
Dominik Prokop b0b2ba0157 TooltipContainer - use resize observer instead of getClientBoundingRect (#31937)
* TooltipContainer - use resize observer instead of getClientBoundingRect

* Well, let's screw Safari, shall we?

* Memoize resize observer

* Make ts happy happy happy
2021-03-15 18:08:43 +01:00
Dominik Prokop 77a024abb3 Add deprecation warnigns to $location patch (#31898) 2021-03-11 15:05:35 +01:00
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
Dominik Prokop fdc6f2cc6f DataLinks: Bring back single click links for Stat, Gauge and BarGauge panel (#31692)
* Bring back clickable Stat, Gauge and BarGauge panels

* Demo dashboard

* Add DataLinksContextMenu tests

* Only use new UI for data links, revert panel links logic
2021-03-05 10:29:19 +01:00
Dominik Prokop 0ba16acd45 Bring back correct legend sizing afer PlotLegend refactor (#31582) 2021-03-02 10:58:40 +01:00
Dominik Prokop 1380fe72bd Update grot template (needs more info) (#31350) 2021-02-19 13:18:05 +01:00
Dominik Prokop 0d6e5298b7 DatasourceSrv: Fix instance retrieval when datasource variable value set to "default" (#31347)
* Failing tests

* Fixed
2021-02-19 12:31:28 +01:00
Dominik Prokop 0253685304 Make Datetime local (No date if today) working (#31274) 2021-02-17 12:17:29 +01:00
Dominik Prokop 9c08b34e71 GraphNG: refactor core to class component (#30941)
* First attempt

* Get rid of time range as config invalidation dependency

* GraphNG class refactor

* Get rid of DataFrame dependency from Plot component, get rid of usePlotData context, rely on XYMatchers for data inspection from within plugins

* Bring back legend

* Fix Sparkline

* Fix Sparkline

* Sparkline update

* Explore update

* fix

* BarChart refactor to class

* Tweaks

* TS fix

* Fix tests

* Tests

* Update packages/grafana-ui/src/components/uPlot/utils.ts

* Update public/app/plugins/panel/timeseries/plugins/ContextMenuPlugin.tsx

* GraphNG: unified legend for BarChart, GraphNG & other uPlot based visualizations (#31175)

* Legend experiment

* Nits
2021-02-15 16:46:29 +01:00
Dominik ProkopandUchechukwu Obasi 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
Dominik ProkopandHugo Häggmark f47b72304c Make value mappings correctly interpret numeric-like strings (#30893)
* Make value mappings corectly interprete numeric-like strings

* More tests

* Update packages/grafana-data/src/utils/valueMappings.ts

* Update packages/grafana-data/src/utils/valueMappings.ts

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>

* Fix issue detected by singlestat test

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-02-04 18:00:09 +01:00
Dominik ProkopandDiana Payton 52129e24eb Docs: Time series panel, bar alignment docs (#30780)
* Docs: Time series panel, bar alignment docs

* Update graph-time-series-as-bars.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-02-03 09:02:33 +01:00
Dominik Prokop 820866e425 GraphNG: add bar alignment option (#30499)
* GraphNG: add bar alignment option

* Fix builders
2021-02-01 14:54:10 +01:00
Dominik Prokop 951b11a9a5 Update styling.md guide (#30594) 2021-01-25 12:52:22 +01:00
Dominik Prokop ef99385414 Prettier: ignore build and devenv dirs (#30501) 2021-01-21 11:11:43 -08:00
Dominik Prokop ffa68f6f91 GraphNG: Disable Plot logging by default (#30390)
* Disable Plot loggging by default

* Fix
2021-01-21 15:04:00 +01:00
Dominik Prokop 2293ae2ef2 GraphNG: assume uPlot's series stroke is always a function (#30416) 2021-01-20 11:24:17 +01:00
Dominik Prokop f004655b7d Chore: Remove not used PanelOptionsGrid component (#30358) 2021-01-18 17:49:49 +01:00
Dominik Prokop bedd662c07 Panel options UI: Allow collapsible categories (#30301) 2021-01-18 12:53:22 +01:00
Dominik Prokop a94c256516 GraphNG: remove y-axis position control from series color picker in the legend (#30302) 2021-01-15 14:24:21 +01:00
Dominik Prokop f5dfb3b24b GraphNG: stats in legend (#30251)
* StatsPickerEditor - add more config to the options ui

* Show calcs in the legend

* Refactor the way legend items are created

* Progress on refresh

* Migration update

* Use human-readable names in the legend stats

* Disable pointer cursor in table header
2021-01-15 09:14:50 +01:00
Dominik Prokop 12211e4a8e Influx: Make variable query editor input uncontrolled (#29968) 2020-12-23 13:39:30 +01:00
Dominik Prokop 24bc2b1cf4 TemplateSrv: Do not throw error for an unknown format but use glob as fallback and warn in the console (#29955) 2020-12-22 13:26:58 +01:00