Commit Graph
100 Commits
Author SHA1 Message Date
Dominik Prokop 7db050d9a4 Include IANA timezone canonical name in TimeZoneInfo (#27591) 2020-09-17 08:59:20 +02:00
Dominik Prokop e04e3e7d46 Field config: Add support for paths in default field config setup (#27570)
* Add support for paths in default field config setup

* Typecheck fix
2020-09-15 10:17:58 +02:00
Dominik ProkopandHugo Häggmark 377485cf4c Panel view: Make sure repeated panel has inView property set correctly (#27424)
* Make sure repeated panel has inView property set correctly

* Test

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

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

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2020-09-08 14:19:54 +02:00
Dominik Prokop 6dbb803b3f Transformations: enable transformations reordering (#27197)
* Transformations: enable queries reorder by drag and drop

* Satisfy ts

* Update unicons and replace ellipsis with draggabledot

* remove import

* Remove that snap

* Review

* review 2
2020-08-31 08:47:27 +02:00
Dominik Prokopandkay delaney f7950491a3 Field overrides: Overrides UI improvements (#27073)
* Add filter name by regex matcher for overrides

* Update docs

* Introduce UI improvements to overrides list

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

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

* Review improvements

* Fix merge

* Remove ellipsis

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2020-08-24 12:07:44 +02:00
Dominik ProkopandRyan McKinley ed1b929fe5 Field overrides: Filter by field name using regex (#27070)
* Add filter name by regex matcher for overrides

* Update docs

* rever schema change

* add docs for by type

* add docs for by type

* add docs for by type

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-08-20 08:54:49 +02:00
Dominik Prokop 718b78c4ce Bring back scripts evaluation in TextPanel (#26413) 2020-07-17 18:00:58 +02:00
Dominik Prokop e5b6e641ec Update latest.json to 7.1.0 2020-07-16 17:17:14 +02:00
Dominik Prokop 5eefbab59b Update CHANGELOG.md 2020-07-16 16:21:09 +02:00
Dominik Prokop d0e6822a81 Update CHANGELOG.md 2020-07-16 16:21:09 +02:00
Dominik Prokop 06c14a10dc Update CHANGELOG.md 2020-07-16 16:21:09 +02:00
Dominik Prokop 523c651c63 Update CHANGELOG.md 2020-07-16 16:21:09 +02:00
Dominik Prokop 5d3ff8f00b Update changelog for 7.1.0 2020-07-16 16:21:09 +02:00
Dominik Prokop dd3fcab144 Update whats new article with info about time zone selection (#26341) 2020-07-15 11:54:03 +02:00
Dominik ProkopandSofia Papagiannaki 187612ca8d SignIn button - use correct url (#26239)
* SignIn button - use correct url

* Fix SignIn test (#26266)

* Don't use absolute URL

* post review

* Fix snap

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-07-14 12:56:55 +02:00
Dominik Prokop 30a682a4da Do not break dashboard settings UI when time intervals end with trailing comma (#26126) 2020-07-08 08:52:06 +02:00
Dominik Prokop 74b2c2acdc Fix lint (#26130) 2020-07-07 16:48:25 +02:00
Dominik Prokop eb4391a228 grafana/ui: Do not rename export for InlineFormLabel (#26118) 2020-07-07 14:09:58 +02:00
Dominik Prokop 36e9d262c0 Add guide and tooling for local packages registry setup (#26110) 2020-07-07 14:07:00 +02:00
Dominik Prokop aa671c863e Chore: Bump rxjs to latest (#26084) 2020-07-07 10:45:15 +02:00
Dominik Prokop 19d27351e9 Fix few null checks to make master green (#25965) 2020-07-01 11:40:37 +02:00
Dominik Prokop a47fac72bf grafana/ui: Fix storybook dev (#25928)
* Minimize css and js only for storybook build

* Update CodeEditor story, make it internal

* Update storybook webpack config
2020-06-30 11:44:38 +02:00
Dominik Prokop 6eabe6c29f grafana-ui: Make output chunks correct (#25922) 2020-06-30 09:22:09 +02:00
Dominik Prokop 75706a4a8b Toolkit: fix grafana-toolkit binary path so toolkit is not run in linked mode (#25860) 2020-06-26 10:45:39 -07:00
Dominik Prokop e4642de505 Update latest.json(7.0.4) (#25833) 2020-06-25 14:22:48 +02:00
Dominik Prokop 657dc612d5 Update changelog (7.0.4) (#25823) 2020-06-25 12:25:12 +02:00
Dominik Prokop a8b660d919 Improve yarn start output (#25773) 2020-06-24 14:37:36 +02:00
e5d21461a0 Refactor panel inspector (#24480)
* Inspect: Should not subscribe to transformed data

* PQR- allow controll whether or not field overrides and transformations should be applied

* UI for inspector data options

* fix

* Null check fix

* Refactor PanelInspector

* TS fix

* Merge fix

* fix test

* Update public/app/features/dashboard/components/Inspector/InspectDataTab.tsx

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>

* review batch 1

* Update API of usePanelLatestData

* css

* review batch 2

* Update usePanelLatestData hook

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2020-06-18 14:31:30 +02:00
Dominik Prokop c53435f7a7 Graph: Fix XSS vulnerability with series overrides (#25401)
* Fix XSS vulnerability with Graph series overrides

* Update public/app/plugins/datasource/testdata/partials/query.editor.html
2020-06-08 17:13:01 +02:00
Dominik Prokop 0f5b894256 Provide correct field scoped vars for data links interpolation (#25318) 2020-06-04 08:35:15 +02:00
Dominik Prokop b12df9d64c Do not show alerts tab when alerting is disabled (#25285)
* Do not show alerts tab when alerting is disabled

* Add tests
2020-06-02 13:21:49 +02:00
Dominik Prokop 9a59f387d9 Organize transformer: Use display name in field order comparer (#24984)
* Use display name in field order comparer

* Post review
2020-05-25 11:54:33 +02:00
Dominik Prokop 10041bca99 Chore: Add frontend platform ownership (#25066) 2020-05-25 11:42:43 +02:00
Dominik Prokop ad870c07cf DataLinks: Bring back variables interpolation in title (#24970) 2020-05-25 10:24:50 +02:00
Dominik Prokop bb099cb141 PanelEditor Fix missing labels and description if there is only single option in category (#24905) 2020-05-20 13:54:42 +02:00
Dominik Prokop cfac591234 SaveDashboard: Allow editing provisioned dashboard JSON and add confirmation when JSON is copied to dashboard (#24680) 2020-05-14 13:45:26 +02:00
Dominik Prokop f769ed035d PanelEdit: Make sure side pane is displayed with tabs by default (#24636)
* Make sure side pane is displayed with tabs by default

* Update e2e tests for
2020-05-14 09:55:40 +02:00
Dominik Prokop 9e24c0944f Transformations: Make transform dropdowns not cropped (#24615) 2020-05-13 13:01:10 +02:00
Dominik Prokop bffa0fa4f6 UI spelling: use US form of visualization (#24558) 2020-05-12 11:11:54 +02:00
Dominik Prokop 2e69b86990 PluginsList: Remove unused panel options (#24501)
* Remove unused panel options

* satisfy ts
2020-05-11 14:26:25 +02:00
Dominik ProkopandArve Knudsen c5fc18ac02 grafana/toolkit: Support paging in cherrypick task (#24402)
* Support paging in cherrypick task

* Update packages/grafana-toolkit/src/cli/tasks/cherrypick.ts

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update packages/grafana-toolkit/src/cli/tasks/cherrypick.ts

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Do not cherry pick closed PRs

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-11 10:24:06 +02:00
Dominik Prokop 2f5003ebf1 Packages: Fix cross dependencies version for canary releases (#24489) 2020-05-11 08:20:13 +02:00
Dominik Prokop 63d25944c4 Minor UI touches (#24371)
* Justify to alignment in stat

* No stats label in inspect

* Use sentence case in panel names

* typos

* typo

* Typo

* Query -> query options

* prettier

* Transformer -> transform data

* Do not show deprecated plugins in the viz picker

* Update viz picker layout
2020-05-08 12:40:42 +02:00
Dominik Prokop 62aa15f760 PanelEdit: Field Config options Fix numeric option bug (#24397) 2020-05-07 21:40:23 +02:00
Dominik Prokop 07fc248626 Field/panel options - do not trigger change events onChange, but onBlur or enter key press (#24388)
* Field options - do not trigger change events onChange, but onBlur or enter key press

* Review changes

* fix ts
2020-05-07 16:07:49 +02:00
Dominik Prokop 368594e89e Field options: show field name when title option config is empty (#24335) 2020-05-06 14:52:17 +02:00
Dominik Prokop 97c0285543 Enable svg bundle with rollup (#24258) 2020-05-05 10:39:49 +02:00
Dominik Prokop 89db44e6f3 DataLinks: Do not add empty links (#24088)
* Do not add empty links

* Review
2020-05-04 17:36:57 +02:00
Dominik Prokop 7601e0bbd3 NewPanelEditor: minor UI twekas (#24042)
* Forward ref for tabs, use html props

* Inspect:  add inspect label to drawer title

* Add tooltips to sidebar pane tabs, copy changes

* Remove unused import

* Place tooltips over tabs

* Inspector: dont show transformations select if there is only one data frame

* Review
2020-04-29 15:41:33 +02:00
Dominik Prokop 8de606aa22 Various 7.0 UI tweaks (#23972)
* Set min height of panel pane to 200px

* Disable badge on viz picker when item is in disabled in search results

* Fix UserProfile inputs width

* Remove select caret in user admin permissions editor

* fix 23911
2020-04-27 23:28:24 +02:00
Dominik Prokop 594ad77125 Make sidemenu header accept onClick events (#23957) 2020-04-27 20:36:28 +02:00
Dominik Prokop be712157e3 NewPanelEditor: fix wrong path to time regions template causing panel editor to bug (#23946) 2020-04-27 15:33:27 +02:00
Dominik Prokop 410e2a8ca0 NewPanelEditor: Fix visualisation list badge verflow (#23936) 2020-04-27 14:05:45 +02:00
Dominik Prokop 9ac7263e66 DashboardSave: fix save dashboard when changes are detected (#23909) 2020-04-27 08:07:56 +02:00
Dominik Prokop 3bd9e1dda3 NewPanelEditor: vis picker UI update (#23894)
* Fix storybook

* Add deprecated/alpha badge to panels in viz picker, fix long title display

* Move getFocusCss to mixins

* Updated hover/active state of vis picker item

* try fixing e2e

* Add removed label for e2e to be happy happy happy
2020-04-26 13:16:31 +02:00
Dominik Prokop 6dfad3b352 grafana/toolkit: Do not suggest Angular panel anymore, add note about Grafana tutorials (#23902) 2020-04-26 13:16:04 +02:00
Dominik Prokop 4b00594758 Docs: Add doc comments for PanelPlugin (#23896) 2020-04-26 11:14:21 +02:00
Dominik Prokop af00fa7214 PanelPlugin: add deprecation notice to setEditor method (#23895) 2020-04-25 22:46:51 +02:00
Dominik Prokop a56e55ac6c NewPanelEditor: increase sidebar min width, value mappings radio no longer full width (#23889) 2020-04-25 17:38:37 +02:00
Dominik Prokop d654255d32 NewPanelEditor: adjust panel menu items (#23888) 2020-04-25 16:15:08 +02:00
Dominik Prokop c7b7a08baf NewPanelEditor: Make variables wrap and small layout refactor (#23862)
* NewPanelEditor: Make variables wrap  and small layout refactor

* review fix
2020-04-25 07:55:42 +02:00
Dominik Prokop 6320e5c91f NewPanelEditor: bring back queries not being run on editmode navigation (#23837) 2020-04-23 22:10:08 +02:00
Dominik Prokop de1e70a474 NewPanelEditor: don't break when plugin is skipDataQuery (#23836) 2020-04-23 20:36:42 +02:00
Dominik Prokop e0dbd87a5a Transformations: Organise fields transformer fixes & detailing (#23812)
* Transformers: Organise fields transformer detailing

* Table header cell - fix text overflowing columns
2020-04-23 16:21:54 +02:00
Dominik Prokop c9e7796b33 Table: Add default cell link style and tooltip to data links in table (#23818) 2020-04-23 13:57:08 +02:00
Dominik Prokop fe28e2a6b1 Transformations: UI tweaks, filter by name regex validation (#23800)
* Add validation to filter by name regex, minor layout tweaks

* Use cards uin for non configured transformations
2020-04-23 10:12:06 +02:00
Dominik Prokop 4b42697912 Transformations: debug mode tweaks (#23802) 2020-04-23 09:56:56 +02:00
Dominik Prokop eae11f53f3 Transformations: Make sidebar subscribe to panel's query runner (#23785)
* Make panel edit sidebar options use lates data from panel query runner

* Update select's z-index

* Review
2020-04-22 19:21:48 +02:00
Dominik Prokop 6715cf22a3 Transformations: Improve UI and add some love to filter by name (#23751)
* Change filterByName options to accept arrays instead of strings

* Improve transformations UI

* Minor updates

* Minor UI changes

* Review
2020-04-22 13:38:50 +02:00
Dominik Prokop 40114e8c07 NewPanelEditor: UI update of add panel widget (#23715)
* Small update proposal to add panel widget

* Fix smoketest

* Minor tweaks

* update snaps god damn it
2020-04-21 13:40:49 +02:00
Dominik Prokop b37e66f915 NewPanelEditor: Move visualisation picker to the sidebar pane (#23696)
* Move visualisation picker to the sidebar pane

* Remove vis tab from bottom pane

* Visualisation to panel type title
2020-04-20 20:29:32 +02:00
Dominik Prokop 4ea41dc19d Fix failing master (#23702) 2020-04-20 14:53:51 +02:00
Dominik Prokop d2a13c4715 FieldOverride: Support data links via field overrides (#23590)
* Move xss and sanitize packages to grafana-data

* Move text, url and location utils to grafana-data

* Move grafana config types to grafana-data

* Move field display value proxy to grafana-data

* Fix

* Move data links built in vars to grafana-data

* Attach links supplier to when applying field overrides

* Prep tests

* Use links suppliers attached via field overrides

* locationUtil dependencies type

* Move sanitize-url declaration to grafana-data

* Revert "Move sanitize-url declaration to grafana-data"

This reverts commit 11db9f5e55.

* Fix typo

* fix ts vol1

* Remove import from runtime in data.... Make TS happy at the same time ;)

* Lovely TS, please shut up

* Lovely TS, please shut up vol2

* fix tests

* Fixes

* minor refactor

* Attach get links to FieldDisplayValue for seamless usage

* Update packages/grafana-data/src/field/fieldOverrides.ts

* Make storybook build
2020-04-20 07:37:38 +02:00
Dominik Prokop a78ca939d1 Fix: grafana/ui imports (#23680) 2020-04-19 13:18:36 +02:00
Dominik Prokop 539edba31b Overrides: Show option group counters for options that represent collections (#23655) 2020-04-18 14:05:38 +02:00
Dominik Prokop a7904f13cc Remove temporary NewPanelEditorContext (#23652) 2020-04-17 18:04:57 +02:00
Dominik Prokop 416111c5f6 FieldOverrides: UI updates (#23630)
* UI improvements for field overrides

* Update tests

* Fix missing key

* Fix e2e
2020-04-17 12:52:01 +02:00
Dominik Prokop 16bc5c118d DashboardSave: Display error message when folder/dashboard name validation fails (#23416)
* Display error message when folder/dashboard name validation fails

* Fix test

* Better error handling

* Fix tests
2020-04-14 10:55:27 +02:00
Dominik Prokop 58257a95a3 Transformations: Refactor to use single registry for transformations (#23502)
* Use single registry for transformations

* Fix transformations tests

* Added documentation comments and minor refactor

* Added documentation comments and minor refactor
Minor misunderstanding between me and Typescript. We should be good friends back now.

* Fix registry import
2020-04-10 19:21:49 +02:00
Dominik Prokop f9c0c22d85 Add documentation comments for declarative options API (#23495) 2020-04-10 13:29:48 +02:00
Dominik Prokop 3ebba56f6b NewPanelEdit: Remove legacy editors for thresholds, value mappings and field properties (#23497)
* Remove legacy value mappings editor

* Remove FieldPropertiesEditor

* Remove legacy ThresholdsEditor
2020-04-10 13:29:16 +02:00
Dominik Prokop 94f87c7288 Fix react missing key warnings (#23498) 2020-04-10 13:28:26 +02:00
Dominik ProkopandTorkel Ödegaard 712564f66a NewPanelEdit: Add unified UI to queries and transformations (#23478)
* Do not use pointer cursor on icon by default

* Allow items alignment in the HorizontalGroup layout

* Add util for rendering components based on their type (element or function)

* Components for rendering query and transformation rows in a unified way

* Apply new UI fo query and transformation rows

* Add some tests

* Minor fix for scroll area

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-04-09 21:23:22 +02:00
Dominik ProkopandTorkel Ödegaard 76827d2152 NewPanelEdit: General options categorisation (#23145)
* First bar gauge panel option

* Update doc comments

* Minor changes

* progress

* Minor type updates

* Fixing typing errors

* Fix that TS!

* Bring satisfaction to that beast called typescript

* Prototype

* Remove import

* Experimenting with different named categories

* Experimenting with category naming

* Naming is very hard

* merge master

* Remove commented code

* Fix merge

* Categorise panel options into collapsible sections

* Remove categories from table panel

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-04-09 21:22:43 +02:00
Dominik Prokop 94f2a3ebae Packages: Fix for imports from indexes (#23458), fixes e2e 2020-04-09 11:30:25 +02:00
Dominik Prokop ea792edd3a NewPanelEditor/Panels: refactor setDefault to setPanelOptions (#23404)
* Remove deprecated setDefault usages

* Add simple support for conditinal field config properties

* Use new API in NewsPanel

* Update tests

* Fix check
2020-04-08 19:21:26 +02:00
Dominik Prokop 7425f9b400 Fix merge 2020-04-07 16:23:04 +02:00
Dominik Prokop 92231cc42e FieldConfig: Set field config defaults based on config registry (#23376)
* Set field config defaults based on config registry

* Rename FIeldPropertyEditorItem to FieldConfigPopertyItem

* Remove console.log

* Simplify overrides persistence model and add support for nested properties in overrides

* Review updates
2020-04-07 15:02:08 +02:00
Dominik Prokop b5af933183 Packages: make jaeger workspace package private (#23329) 2020-04-03 16:50:27 +02:00
Dominik Prokop bf046d7577 NewPanelEditor Render search results in front of the list of plugins (#23302) 2020-04-03 08:39:57 +02:00
Dominik Prokop 0cf5ae5001 DashboardSave: fix light theme JSON preview (#23279) 2020-04-02 16:53:24 +02:00
Dominik Prokop 59467d3cb3 NewPanelEdit: add search, scroll and some layout to vis tab (#23253) 2020-04-01 22:09:14 +02:00
Dominik ProkopandRyan McKinley dcf6bbc14f NewPanelEditor: Options/FieldConfig API for defaults and common options selection (#23214)
* Add "some" typesafety to panel options/field config APIs

* Allow selected common field config properties config, allow option defaults config via fluent API

* Update packages/grafana-data/src/panel/PanelPlugin.ts

Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>

* Add defaults support for custom field config

* Enable defaults setting for standard and custom field configs

* Remove setFieldConfigDefaults from PanelPlugin API and replace it with useStandardFieldConfig

* Update API for standard field config defaults

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-04-01 15:33:10 +02:00
Dominik Prokop 4eae1b5483 NewPanelEditor: fluent API for custom field config and panel options creation (#23070)
* Registry of standard option editors

* Move override processors  to grafana data

* API for declaratively creating field config/panel options

* Enable declarative API in PanelPlugin for options and field config

* Use new api in react table panel

* Add color and unit picker to option registries

* Add some docs and tests

* Fix tests
2020-03-26 21:48:46 +01:00
Dominik Prokop 046d9c1af4 DashboardSave: Add new dashboard check (#23104) 2020-03-26 12:09:39 +01:00
Dominik ProkopandTorkel Ödegaard bdb5659977 NewPanelEdit: Organise sidebar in tabs (#22870)
* Refactor value mappings UI to work better with new panel edit

* TS fix

* Experimenting with tabs in the sidebar

* Small refactor and added Panel general settings

* Merge fixes

* fix fieldOptions being used instead of fieldConfig

* Added icons to tabs (testing)

* Only 3 tabs i think, panel specific options need ot exist in first tab, some style tweaks

* Moved title and no value up

* Updated

* Render panel options in Options tab and add old options styles hack to display those vertically

* Basic settings to Panel settings

* Make nullcheck pass

* Snaps bump

* Fix standard configs not update

* Organise sidebar better, add tmp NewPanelEditorContext to hide duplicate legacy options

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-03-20 15:15:04 +01:00
Dominik Prokop cb9dd6631b Fix ValueMappingEditor test TS issue (#22895)
* fix test

* Revert "CircleCI: Don't build Storybook on PR (#22865)"

This reverts commit 492264abc3.
2020-03-19 16:48:49 +01:00
Dominik Prokop f2742d4a28 NewPanelEdit: Refactor value mappings UI to work better with new panel edit (#22808)
* Refactor value mappings UI to work better with new panel edit

* TS fix
2020-03-19 12:28:05 +01:00
Dominik ProkopandTorkel Ödegaard bf7579d984 FieldOverrides: Move FieldConfigSource from fieldOptions to PanelModel.fieldConfig (#22600)
* Apply field overrides in PanelChrome

* Move applyFieldOverrides to panel query runner

* Review updates

* Make sure overrides are applied back on souce panel when exiting the new edit mode

* TS ignores in est

* Make field display work in viz repeater

* Review updates

* Review and test updates

* Change the way overrides and trransformations are retrieved in PQR

* Add fieldConfig property to PanelModel

* Dashboard migration v1

* Use field config when exiting new panel edit mode

* Gauge - use fieldConfig from panel model

* FieldDisplayOptions - don's extend FieldConfigSource

* Fix fieldDisplay ts

* StatPanel updated

* Stat panel defaults applied

* Table2 panel options  update

* React graph updates

* BarGauge updated

* PieChart, Gauge, BarGauge and Stat updates

* PieChart - remove field config defaults from options

* FieldDisplayEditor - remove unused methos

* PanelModel - remove debugger

* Remove fieldConfig from field options when migrating dashboard

* Update data links migrations

* Update fieldDisaplay tests to respect new fieldConfig

* Update dashboard schema version in snapshots

* Fix BarGaugePanel test

* Rebase fixes

* Add onFieldConfigChange to PanelProps type

* Update shared single stat migration

* Pass PanelModel instead of options only for panel type change handler [breaking]

* Renames

* Don't mutate panel options

* Migrations update

* Remove obsolete snap

* Minor updates after review

* Fix null checks

* Temporarily (until we decide to switch to new pane edit) bring back old aditors

* Temporarily rename ValueMappingEditor and MappingRow to Legacy*

* Migrations update

* Updae setFieldConfigDefaults API

* Update the way field config defaults are applied

* Use standard field config for gauge, bar gauge and stat panels

* refactoring

* Revert dashboard fieldOptions migrations as those are handled by single stat migrator

* Fix ts in tests

* Strict null fix and some minor fixes

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-03-19 11:50:31 +01:00
Dominik Prokop 6070f749c7 Webpack: Fix webpack for enterprise (#22863) 2020-03-18 11:18:48 +01:00