Commit Graph

179 Commits

Author SHA1 Message Date
Torkel Ödegaard
34c397002c PanelChrome: Use react Panel Header for angular panels. (#21265)
* WIP: Angular panel chrome, this is going to be tricky

* AngularPanelChrome: initial render works

* Options are showing up

* viz options working

* Fixed singlestat background

* AngularPanels: Fixed alert tab

* Removed anuglar loading spinner

* Dashboard: Refactor dashboard reducer & actions

* Dashboard: minor refactoring

* PanelChrome: loading state moved to header

* Subscribe to render events to solve title update issue

* Time info and query errors now works

* PanelHeader: unifying angular and react behavior

* added getPanelMenu test

* Scrollable now works again

* Various fixes

* Making stuff work

* seperate event emitter for angular

* Fixed issue sending updated dimensions to angular panel

* Minor tweaks

* Fixed tests

* Alerting: alert state now works

* Fixed unit tests

* Fixed a few null check errors

* Simplified events handling

* Fixed strict null checks
2020-02-09 10:53:34 +01:00
Ryan McKinley
da395729c3 FieldEditor: extendable FieldConfig UI (#21882)
* initial POC

* fix import

* field config editor in the sidebar

* field config editor in the sidebar

* field config editor in the sidebar

* sidebar

* include threshold in sidebar

* include threshold in sidebar

* include threshold in sidebar

* init to empty threshold

* merge

* Make sure editor is fully rendered when page is refreshed

* use scrollbars

* add matcher UI folder

* remove

* Field options basic editors

* Removed deebugger

* Make number field editor controlled

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

* Update public/app/plugins/panel/gauge/GaugePanel.tsx

* Ready for production

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-02-08 18:29:09 +01:00
Dominik Prokop
e17b76ad7a
New Panel Edit: works for panels with and without queries (#22024)
* Make new edit work again

* add cx

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-02-08 13:23:16 +01:00
Dominik Prokop
9b6a843177
New panel edit: don't query when entering edit mode (#21921)
* First attempt

* Save confirmation with discard option, reusing queriess a little bit differently

* simplify cloning panels and restoring last results in panel query runner

* Remove save button

* Update public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx

* Exit/discard buttons

* Update snaps

* Review comments

* Fix lint
2020-02-07 14:59:04 +01:00
Torkel Ödegaard
0676189291
PanelChrome: Mini refactor (#21171) 2019-12-19 07:01:35 +01:00
Torkel Ödegaard
65942efb95
Panels: Add support for panels with no padding (#20012)
* Panels: Added support to set panel padding to zero

* WIP: fullChromeControl work

* Tweaks to header position

* Reverted some overlay mechanic and now back to no title only

* Fixed test

* Fixed transparent flag

* Added show title

* Added font weight to value

* Reverted back to no padding option

* Fixed issue with border and width and height
2019-11-25 13:26:18 -08:00
Dominik Prokop
9b7748ec13
Chore: Reorg packages (#20111)
Primarily- moving majority of the types and utils from @grafana/ui to @grafana/data

* Move types from grafana-ui to grafana-data

* Move valueFormats to grafana-data

* Move utils from grafana-ui to grafana-data

* Update imports in grafana-ui

* revert data's tsconfig change

* Update imports in grafana-runtime

* Fix import paths in grafana-ui

* Move rxjs to devDeps

* Core import updates batch 1

* Import updates batch 2

* Imports fix batch 3

* Imports fixes batch i don't know

* Fix imorts in grafana-toolkit

* Fix imports after master merge
2019-10-31 10:48:05 +01:00
Andrej Ocenas
945b815fe0
Fix: Unsubscribe from events in dashboards (#19788)
* Unsubscribe on unmount

* Fix unsubscribe
2019-10-16 12:54:13 +02:00
kay delaney
99411bf37a
Types: Adds type safety to appEvents (#19418)
* Types: Add type safety to appEvents
2019-10-14 09:27:47 +01:00
Torkel Ödegaard
0ec8303878 Panels: Skip re-rendering panel/visualisation in loading state (#19518)
* Loading states and partial rendering, set loading state in mixed data source, and do not render loading states for react panels

* Updated mixed data source tests
2019-10-01 01:22:41 -07:00
Hugo Häggmark
889f8e3131 PanelData: Adds timeRange prop to PanelData (#19361)
* Refactor: Adds newTimeRange property to PanelData

* Refactor: Handles timeRange prop after requests

* Refactor: Makes timeRange mandatory

* Refactor: Adds DefaultTimeRange
2019-09-25 11:19:17 +02:00
Dominik Prokop
be8097fca2
Snapshots: store DataFrameDTO instead of MutableDataFrame in snapshot data (#19247) 2019-09-20 09:40:16 +02:00
Hugo Häggmark
7ace80c71c Graph: Adds onHorizontalRegionSelected (#19083)
* Refactor: Renamed and changed Signature for OnHorizontalRegionSelected

* Refactor: Adds onHorizontalRegionSelected to GraphPanelController

* Refactor: Moves TimeSrv call to PanelChrome instead
2019-09-16 09:31:22 +02:00
Torkel Ödegaard
140ecbcf79
QueryProcessing: Observable query interface and RxJS for query & stream processing (#18899)
* I needed to learn some rxjs and understand this more, so just playing around

* Updated

* Removed all the complete calls

* Refactoring

* StreamHandler -> observable start

* progress

* simple singal works

* Handle update time range

* added error handling

* wrap old function

* minor changes

* handle data format in the subscribe function

* Use replay subject to return last value to subscribers

* Set loading state after no response in 50ms

* added missing file

* updated comment

* Added cancelation of network requests

* runRequest: Added unit test scenario framework

* Progress on tests

* minor refactor of unit tests

* updated test

* removed some old code

* Shared queries work again, and also became so much simplier

* unified query and observe methods

* implict any fix

* Fixed closed subject issue

* removed comment

* Use last returned data for loading state

* WIP: Explore to runRequest makover step1

* Minor progress

* Minor progress on explore and runRequest

* minor progress

* Things are starting to work in explore

* Updated prometheus to use new observable query response, greatly simplified code

* Revert refId change

* Found better solution for key/refId/requestId problem

* use observable with loki

* tests compile

* fix loki query prep

* Explore: correct first response handling

* Refactorings

* Refactoring

* Explore: Fixes LoadingState and GraphResults between runs (#18986)

* Refactor: Adds state to DataQueryResponse

* Fix: Fixes so we do not empty results before new data arrives
Fixes: #17409

* Transformations work

* observable test data

* remove single() from loki promise

* Fixed comment

* Explore: Fixes failing Loki and Prometheus unit tests (#18995)

* Tests: Makes datasource tests work again

* Fix: Fixes loki datasource so highligthing works

* Chore: Runs Prettier

* Fixed query runner tests

* Delay loading state indication to 200ms

* Fixed test

* fixed unit tests

* Clear cached calcs

* Fixed bug getProcesedDataFrames

* Fix the correct test is a better idea

* Fix: Fixes so queries in Explore are only run if Graph/Table is shown (#19000)

* Fix: Fixes so queries in Explore are only run if Graph/Table is shown
Fixes: #18618

* Refactor: Removes unnecessary condition

* PanelData: provide legacy data only when needed  (#19018)

* no legacy

* invert logic... now compiles

* merge getQueryResponseData and getDataRaw

* update comment about query editor

* use single getData() function

* only send legacy when it is used in explore

* pre process rather than post process

* pre process rather than post process

* Minor refactoring

* Add missing tags to test datasource response

* MixedDatasource: Adds query observable pattern to MixedDatasource (#19037)

* start mixed datasource

* Refactor: Refactors into observable parttern

* Tests: Fixes tests

* Tests: Removes console.log

* Refactor: Adds unique requestId
2019-09-12 17:28:46 +02:00
Ryan McKinley
7520ebadac
Refactor: move ScopedVars to grafana/data (#18992) 2019-09-10 12:06:01 -07:00
Ryan McKinley
7d32caeac2 Transformers: configure result transformations after query(alpha) (#18740) 2019-09-09 08:58:57 +02:00
Torkel Ödegaard
490a1d6fc9
ErrorHandling: Error boundary for every container (#18845)
* ErrorHandling: Error boundary for every container

* Remvoe custom query editor errors
2019-09-04 13:59:30 +02:00
Torkel Ödegaard
fe658d7ac2
Prometheus: Fixed Prometheus query editor error (plus new ErrorBoundaryAlert component) (#18838)
* ErrorHandling: Fixed Prometheus query editor error and added error boundary

* Update public/app/core/components/ErrorBoundary/ErrorBoundary.tsx

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

* Fixed ts error
2019-09-02 20:45:18 +02:00
Hugo Häggmark
4b3440325e
Explore: Replaces TimeSeries with GraphSeriesXY (#18475)
* Wip: Compiles and runs

* WIP: Logs Graph partially working

* Refactor: Adds GraphSeriesToggler

* Refactor: Adds tickDecimals to YAxis

* Refactor: Adds TimeZone and PlotSelection to Graph

* Refactor: Makes the graphResult work in Explore

* Refactor: Adds ExploreGraphPanel that is used by Logs and Explore

* Fix: Fixes strange behaviour with ExploreMode not beeing changed

* Fix: Adds onSelectionChanged to GraphWithLegend

* Refactor: Cleans up unused comments

* ExploreGraph: Disable colorpicker
2019-08-13 07:32:43 +02:00
Torkel Ödegaard
541981c341
Gauge/BarGauge: Rewrite of how migrations are applied (#18375) 2019-08-06 08:26:11 +02:00
Ryan McKinley
5f4b5dfecd
Refactor: use data rather than series in stream callback(#18126) 2019-08-01 23:16:29 -07:00
Ryan McKinley
3f15170914 Refactor: move some files to @grafana/data (#17952)
* moving to data WIP

* more refactoring

* add missing test

* mock full path

* remove sinon from grafana-ui
2019-07-06 08:05:53 +02:00
Ryan McKinley
e7c3d0ed97
Refactor: rename SeriesData to DataFrame (#17854) 2019-07-01 12:00:29 -07:00
Filip Barl
a04bf0cded Panel: Pass transparency prop down to React panels. (#17235) 2019-05-23 11:58:50 +02:00
Dominik Prokop
73e4178aef Panel: Apply option defaults on panel init and on save model retrieval (#17174)
* Apply panel options defaults on panel init and on save model retrieval

* Remove unnecessary argument, added tests

* Make FieldPropertiesEditor statefull to enable onBlur changes

* Remove unnecessary import

* Post-review updates

Fixes #17154
2019-05-21 13:19:19 +02:00
Torkel Ödegaard
e0b760e08e
Chore: No implict any fixes (#17020) 2019-05-13 09:38:19 +02:00
Ryan McKinley
f617cd8975 GettingStarted: convert to react panel plugin (#16985)
* getting started

* getting started
2019-05-10 07:48:31 +02:00
Ryan McKinley
56702902a1 Plugins: Remove dataFormats key and add skipDataQuery (#16984) 2019-05-10 07:46:14 +02:00
Torkel Ödegaard
48ae93048b
Panels: No title will no longer make panel header take up space (#16884)
* Panels: Initial poc of no panel titles

* moving panel-container to DashboardPanel

* Starting to work

* Gauge fix

* Panels: tweaked panel padding and title z-index stuff

* Panels: changed panel padding a bit and simplified it by having same padding in vertical and horizontal

* Lots of tweaks to panel padding related stuff

* Updated snapshot

* Added test dashboard

* Final refactorings

* Trim title befgor applying panel-container--no-title class

* Remove unnecessary type annotation

* Panels: hasTitle no need to trim

* Gauge: fixed font family
2019-05-06 15:26:09 +02:00
Ryan McKinley
c3a5204933 Dashboard: Lazy load out of view panels (#15554)
* try this again

* use element rather than grid position

* adding back console output to debug gridPos alternative

* less logging

* simplify

* subscribe/unsubscribe to event streams when view changes

* Panels: Minor change to lazy loading
2019-05-03 15:35:37 +02:00
Ryan McKinley
51a98565dc
Refactor: consistant plugin/meta usage (#16834) 2019-04-30 22:36:46 -07:00
Ryan McKinley
7dbe719fda
Plugins: rename vizPlugin to panelPlugin (#16802) 2019-04-29 09:20:58 -07:00
Ryan McKinley
5c2d38126d
Plugins: move PanelPluginMeta to grafana/ui (#16804) 2019-04-29 08:17:35 -07:00
Torkel Ödegaard
060e97bea8
Plugins: ReactPanelPlugin to VizPanelPlugin (#16779)
* Plugins: ReactPanelPlugin renamed

* Plugins: renamed PanelPlugin to PanelPluginMeta and VizPanelPlugin to PanelPlugin
2019-04-26 19:16:38 +02:00
Ryan McKinley
470634e2d6
Streaming: support streaming and a javascript test datasource (#16729) 2019-04-25 14:01:02 -04:00
Dominik Prokop
739cdcfb6e
Feature: Migrate Legend components to grafana/ui (#16468)
* Introduced Abstract list, List and InlineList components for easier lists generation
* Enable custom item key on abstract list items
* Enable $.flot in storybook
* Expose onOptionsChange to react panel. Allow React panels to be function components
* Update type on graph panel options to group graph draw options
* Introduce GraphPanelController for state and effects handling of new graph panel
* Group visualisation related stories under Visualisations
2019-04-24 10:14:18 +02:00
Ryan McKinley
5f474c6328
Refactor: move getQueryRunner() to PanelModel (#16679)
* move queryRunner to panelModel
* Added interval back as prop, not used yet
* PanelQueryRunner: Refactoring, added getQueryRunner to PanelModel
* PanelQueryRunner: interpolatel min interval
2019-04-18 14:10:18 -07:00
Ryan McKinley
5976b421fe
refactor: move timeInfo to DataRequestInfo (#16664)
* use timeInfo from request

* move timeInfo to DataRequestInfo
2019-04-18 00:00:46 -07:00
Ryan McKinley
0643dff2f6 QueryRunner: Move queryRunner to panelModel (#16656)
* move queryRunner to panelModel

* remove isEditing from PanelChrome

* move listener to QueriesTab

* Fixed issue with isFirstLoad set to false before loading state is Done

* QueryRunner: Fixed issue with error and delayed loading state indication

* Anoter fix to issues with multiple setState calls in observable callbacks
2019-04-18 08:22:14 +02:00
Ryan McKinley
f4cd9bc73c PanelQueryRunner: move error handling to QueryRunnerOptions (#16654) 2019-04-17 21:05:57 +02:00
Ryan McKinley
ed0192104c
refactor: Merge PanelChrome and DataPanel, do query execution in PanelQueryRunner (#16632)
Moves query execution logic to PanelQueryRunner and structures PanelChrome so it subscribes to the query results rather than necessarily controlling their execution.
2019-04-17 10:51:50 -07:00
Ryan McKinley
514818f16d
Panel Plugins: pass query request/response to react panel plugins (#16577)
* pass query request/response to panel plugins

* rename finishTime to endTime

* move QueryResponseData to a sub variable

* rename to PanelData

* make data not optional

* make data not optional

* missing optional
2019-04-16 13:23:34 -07:00
Torkel Ödegaard
47e51cb6b3
Refactor: Plugin exports & data source / panel types (#16364)
* wip: began work off removing meta and pluginExports from DataSourceApi interface

* WIP: changing how plugins are exports and loaded

* Down the refactoring rabit hole that keeps expanding

* TestData now returns DataSourcePlugin

* Refactoring: fixed app config page loading, type renamings and more typings

* Refactor: Correct casing on DatasourceStatus => DataSourceStatus
2019-04-04 18:30:15 +02:00
Ryan McKinley
ede2d54849 Refactor: React Panels to only use SeriesData[] (#16306)
* only use SeriesData[] in react panels
* update target
* Refactor: Added refId filtering for queryResponse and queryError
2019-04-02 07:22:52 +02:00
Ryan McKinley
77b3da3e8b refactor(data models): Renamed TableData to SeriesData (#16185) 2019-03-25 14:46:16 +01:00
ryan
7498de044c cleanup and guess all columns 2019-03-21 21:52:58 -07:00
ryan
b4a3aecbbc merge master 2019-03-13 09:03:32 -07:00
ijin08
dc98fb5e82 added two new variables in default theme for panel padding, replaced panelhorizontalpadding and variables.panelverticalpadding with new variables 2019-03-12 14:24:48 +01:00
ryan
439b044204 move toTableData to grafana/ui 2019-03-07 13:09:53 -08:00
ryan
abf015ace2 use TableData for timeseries in react 2019-03-07 12:13:38 -08:00
ryan
948729e951 remove console.log 2019-03-05 22:00:12 -08:00
ryan
f5aba36814 add ScopedVars to replace function 2019-03-05 21:56:52 -08:00
ryan
251008f590 use replaceVariables rather than onInterpolate 2019-03-04 11:44:38 -08:00
Hugo Häggmark
3a65e27e83 Fixes #15739 2019-03-04 10:42:59 +01:00
Dominik Prokop
d19616a16b Merge branch 'master' into cli/watch-sass-var 2019-02-19 17:27:25 +01:00
Torkel Ödegaard
abddb442a1
Changed how react panels store their options (#15468)
Changed how react panels store their options

* Added a ReactPanelPlugin as the interface that react panels export, this way react panels have clearer api, and gives us hooks to handle migrations and a way for panel to handle panel changes in the future
* Moved gauge value options into a sub oject and made editor more generic, will be moved out of gauge pane later and shared between singlestat, gauge, bargauge, honecomb
* Also remove nested options prop that was there due to bug
* Added missing Gauge props
* Fixed gauge issue that will require migration later and also value options editor did not handle null decimals or 0 decimals
* Fixed unit tests
* More fixes for react panels
2019-02-18 11:41:14 +01:00
Dominik Prokop
6da57d4c08 Make clear that variable scss files are generated from templates 2019-02-18 11:03:52 +01:00
Torkel Ödegaard
89ad525986 Fixed issue with PanelHeader and grid-drag-handle class still being applied in fullscreen, fixes #15480 2019-02-17 08:11:57 +01:00
Torkel Ödegaard
2bc26a01f9 Fixes to error handling and clearing, also publishing of legacy events so old query editors work with react panels fully 2019-02-14 15:18:55 +01:00
Torkel Ödegaard
cc61d9c5cc Merge branch 'master' into move-error-boundry 2019-02-14 13:10:49 +01:00
Peter Holmberg
0c72fb3be1 Merge branch 'master' into move-error-boundry 2019-02-13 16:52:52 +01:00
Torkel Ödegaard
ef9e74fabb Fixed issue with sass variables used from typescript, the prettier lowercases export variables 2019-02-13 16:36:59 +01:00
Peter Holmberg
aad558ce9c using error callback from datapanel instead 2019-02-13 15:54:10 +01:00
Peter Holmberg
1c5118748a implement show error in panelcorner 2019-02-12 17:01:07 +01:00
Peter Holmberg
f52aa4de4e Merge branch '15217-panels-without-queries' into move-error-boundry 2019-02-12 16:13:15 +01:00
Peter Holmberg
f0565684c7 Merge branch '15217-panels-without-queries' of https://github.com/grafana/grafana into 15217-panels-without-queries 2019-02-12 16:11:04 +01:00
Peter Holmberg
530a370379 bubble error from datapanel to panelchrome 2019-02-12 16:06:02 +01:00
Torkel Ödegaard
a1453607a9 Changed noQueries to a dataFormats array that will allow a panel to define supported formats and prefered (first in array) 2019-02-12 16:05:29 +01:00
Johannes Schill
c3965e332d chore: Rename renderPanel to renderPanelBody 2019-02-12 12:28:53 +01:00
Johannes Schill
d5918498da chore: Rename renderDataPanel to renderPanel 2019-02-12 12:28:53 +01:00
Johannes Schill
01208ccd68 chore: Rename renderHelper > renderDataPanel and move logic to smaller functions 2019-02-12 12:28:53 +01:00
Johannes Schill
b5dbf26dc4 chore: PR feedback, shorten boolean check 2019-02-12 12:28:53 +01:00
Johannes Schill
075fb8e91c chore: Rename isDataPanel to noQueries 2019-02-12 12:28:53 +01:00
Johannes Schill
d3115325a9 feat: Only use the DataPanel component when panel plugin has isDataPanel set to true in plugin.json. And fix PanelData when using snapshots 2019-02-12 12:28:53 +01:00
Johannes Schill
be58e275a5 chore: PR feedback, shorten boolean check 2019-02-12 09:55:09 +01:00
Johannes Schill
2db9cb3d93 chore: Rename isDataPanel to noQueries 2019-02-12 09:48:46 +01:00
Torkel Ödegaard
fc91e1cf57 Fixed issue with gauge requests being cancelled 2019-02-11 17:47:47 +01:00
Johannes Schill
ec02ddd27b feat: Only use the DataPanel component when panel plugin has isDataPanel set to true in plugin.json. And fix PanelData when using snapshots 2019-02-07 21:34:50 +01:00
Torkel Ödegaard
d1d5bbf697
Merge pull request #15188 from grafana/fix/table-data-to-component
React panel table data fix
2019-02-01 13:57:26 +01:00
Peter Holmberg
57596462a4 sending paneldata to component, gauge can handle table data 2019-02-01 10:53:58 +01:00
Torkel Ödegaard
aeaac7480b New solo panel route working in all scenarios I can test 2019-02-01 08:15:21 +01:00
Peter Holmberg
ed0f5b71c7 Merge branch 'master' into table-data-support 2019-01-31 14:16:06 +01:00
Peter Holmberg
88cb38adde creating table data type 2019-01-31 09:59:21 +01:00
Torkel Ödegaard
aafd4a339a Moved dashboard state components to state folder 2019-01-31 08:56:17 +01:00
Torkel Ödegaard
6663b2fab9 Moved time_srv to services folder, this should not belong to dashboard feature but it is too dependant on dashboard to move it out now, needs a bigger refactoring to isolate from dashboard 2019-01-31 08:44:46 +01:00
Peter Holmberg
4b47e857f2 adjusting types to match 2019-01-30 13:43:17 +01:00
Peter Holmberg
ae0b9692be first implementation 2019-01-30 10:39:42 +01:00
Hugo Häggmark
1faa5819a8 Initial commit 2019-01-15 17:15:46 +01:00
Dominik Prokop
0c8f0416a0 Move panel width/height calculation to PanelChrome 2019-01-14 14:47:41 +01:00
Johannes Schill
f428db282c fix: Remove the onRenderError prop and add an ErrorBoundary component 2019-01-08 13:32:08 +01:00
Johannes Schill
4f943687d8 feat: Display error when plot fail to render 2019-01-08 09:55:23 +01:00
Torkel Ödegaard
a02b4b47b6 Moving a couple of types to @grafana/ui 2018-12-23 09:15:32 +01:00
Johannes Schill
d62cd8a5c5 Fix transparent option #14333 2018-12-06 10:34:27 +01:00
Johannes Schill
827ffaccd3 Pass some panel props down as strings to trigger render #14333 2018-12-05 14:57:57 +01:00
Peter Holmberg
6084275119 started on thresholds 2018-11-20 17:01:58 +01:00
Peter Holmberg
cc7bf31c3e Merge remote-tracking branch 'origin/develop' into unit-picker 2018-11-16 16:54:02 +01:00
Torkel Ödegaard
080d611004 minor changes to react panels 2018-11-14 13:20:19 +01:00
Torkel Ödegaard
90c41bb087 changed how size is calcualted and propagated and added proper interval calc to DataPanel 2018-11-14 12:03:25 +01:00
Peter Holmberg
e4e41474b1 first stuff 2018-11-14 11:06:02 +01:00
Torkel Ödegaard
dedeaf541e wip panel size handling 2018-11-13 18:50:12 +01:00