* move the name finding logic for new data sources from frontend to backend
* cleanup and fix test
* linting
* change the way the number after the ds type is incremented - keep incrementing it without adding more hyphens
* enterprise spec updates (unrelated to the PR)
* try upgrading react-redux
* memoize getNavModel selector, don't return a new object in command palette selector
* use createSelector to memoize some alert manager selectors correctly
* memoize selectors correctly in appNotifications
* memoize some datasource selectors
* use fake timers to avoid the debounce causing flakiness
* remove duplicate import
* just use memoize-one
* introduce data source admin role and fix frontend check
* introduce fixed roles for data source creator and team reader
* add documentation
* undo an unintended change
* remove unused datasource pages
* move useDataSourceSettingsNav from datasources to connections
without any modification in the code yet
The reason for this is that its only usage is in this file, so we are
going to merge it with the other useDataSourceSettingsNav hook in the
next commit.
* merge two useDataSourceSettingsNav's
and rename consts and remove duplicated calls
* simplify useDataSourceSettingsNav
* Wip
* remove name input from page body
* render title & subTitle in datasource page in connections and remove unused prop - uid
* styling on actions button group
* remove unused props in edit datasource page
* set gap as 8px between buttons
* move editable datasourcename to the header
* add subTitle component
* remove useRef and use autoFocus prop
* pass false to isDefault when dataSource is undefined
* change button text
* remove suffix icon
* remove unused import - Icon
* consolidate duplicate useDataSourceSettingsNav into datasrouces hook
* move dataSource context to useDataSourceSettingsNav
* remove Explore button in the footer
* remove unused props
* fix failing test on button group
* fix typo on file naming
* remove disabled prop
* fix param
* add test
* add test files
* disable editing title in readOnly provision datasource
* update name should save dataSource
* prevent swith toggle change from label clicking and change margin
* update tooltip message
* use datasource update on header instead of state update
* remvoe subTitle component and move subTitle component next to page Info component
* Added title
* remove subTitle in buildNavModel
* replace Button with Badge
* make datasourceheader as a component
* horizontal gap of 24px between pageInfo and actions components
* align page Info value items
* accept react node as page info label and add tooltip to Default item
* update navId for edit datasource page in connections
* update unit testing for Title
* fix gen_que
* betterer
* prettier fix
* fix e2e test
* add data-testid to nameEditIcon selector
* fix tooltip text
* fix navId for connections datasources edit page
* fix e2e selector: change autoSizeInput to Input
* adding ellipsis to EditDataSourceTitle
* override grafana-ui titleContainer h1 styles
* UI cleanup and apply readOnly to default datasource switch
* add period
* datasource name validation
* title and page info alignment
* add feature toggle - dataSourcePageHeader
* restore basicSettings component and apply feature toggle
* go lint
* Revert "title and page info alignment"
This reverts commit 681ac51f11.
* remove editable fields from page Header - name, default datasource switch
* fix go test: toggle generator
* remove test id
* remove alerting badge in BasicSettings component
* Revert "remove alerting badge in BasicSettings component"
This reverts commit fb33ff9028.
* feature toggle on alerting badge
* rename component & filename
* move DataSourceInfo type
* change button to link in test
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Miguel Palau Zarza <mpalauzarza@gmail.com>
* - initial work on data source config page
* - add links to test status box
- add tracking function
* - add test for the DataSourceConfigAlert component
* - fix flicker of the alert box
* - fix the build
* - small improvements
* - fix failing build
* - fix failing unit tests
* - prettier and betterer fixes
* - fix failing e2e tests
* - fix build again
* - rewrite solution according to the PR comments
* - cleanup
* - fix failing e2e
* - use absolute path in link
* Minor fixes
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Connections: redirects to data sources
If Data sources page is the only child of Your connections, then the
NavLandingPage doesn't really make sense.
* DataSourcesList: do not show add button twice
If there are no data sources configured, then the DataSourcesList page
shows a large CTA to add a data source. Therefore, the add new data
source button in the header is redundant, let's remove it from there
in this case.
* DataSources: redirect to Connections after delete
The primary place of the DataSourceList page is under Connections,
provided that the `dataConnectionsConsole` feature is turned on.
Therefore, let's redirect there after deleting a data source.
* Datasource Onboarding: Prevent flickering of onboarding page after first load
* add loading state to loadDatasources & refactor
* fix test
* avoid loading state when loading datasources on add
* fix test
* add explainer on why fetching datasources is needed
* fix any's in tests
* fix more any's in tests
* more test type fixes
* fixing any's in tests part 3
* more test type fixes
* fixing test any's p5
* some tidy up
* fix template_srv
* RBAC: add viewer grand if dspermissions enforcement is not enabled
* RBAC: Change permissions based on role prefix
* RBAC: Add option to for permission service to add a license middleware
* RBAC: Remove actions from query struct
* navtree.go: update Data sources title and subtitle
* DataSourceList: move add button to header
* DataSourcesList: add buttons to items
The action buttons are added inside `<Card.Tags>` so that they end up at
the right end of the card, as it was designed.
The "Build a Dashboard" button's functionality is not defined yet.
* DataSourcesListHeader: add sort picker
* fix css
* tests: look for the updated "Add new data source" text
* tests: use an async test method to verify component updates are wrapped in an act()
* update e2e selector for add data source button
* fix DataSourceList{,Page} tests
* add comment for en dash character
* simplify sorting
* add link to Build a Dashboard button
* fix test
* test build a dashboard and explore buttons
* test sorting data source elements
* DataSourceAddButton: hide button when user has no permission
* PageActionBar: remove unneeded '?'
* DataSourcesList: hide explore button if user has no permission
* DataSourcesListPage.test: make setup prop explicit
* DataSourcesList: use theme.spacing
* datasources: assure explore url includes appSubUrl
* fix tests and add test case for missing permissions
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Add phlare datasource
* Rename
* Add parca
* Add self field to parca
* Make sure phlare works with add to dashboard flow
* Add profiling category and hide behind feature flag
* Update description and logos
* Update phlare icon
* Cleanup logging
* Clean up logging
* Fix for shift+enter
* onRunQuery to set label
* Update type naming
* Fix lint
* Fix test and quality issues
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
* Revert "Revert "Prometheus: Type and flavor configuration (#56496)" (#57552)"
This reverts commit 2432ce619a.
* Adds new fields and documentation for Prometheus datasource configuration: prometheus type, and version
* Adding two new fields to the data JSON in the prometheus datasource configuration: prometheusType, and prometheusVersion.
* Version field will attempt to auto-detect via buildinfo API when prometheus Type is selected
* Added start event on adding new DS from datasources/new page
* Added end event + tests
* revert analytics.ts changes
* revert azure tracking changes
* changed version in doc
* update props name for consistency with plugin-platform PR to come
* Updated tests
* Change nav structure when topnav is enable to do initial tests with new information architecture
* Support for nested sections
* Updated
* sentance case
* Progress on plugin challange
* Rewrite to functional component
* Progress
* Updates
* Progress
* Progress on things
* missing file
* Fixing issue with runtime, need to use setter way to set component exposed via runtime
* Move PageLayoutType to grafana/data
* Fixing breadcrumb issue, adding more tests
* reverted backend change
* fix recursive issue with cleanup
* feat: show data-sources under the data-connections page
* refactor: add a constant for data-sources routes
* refactor: add a context that holds the currently active data-sources routes
* refactor: use the data-sources routes constant wherever possible
* refactor: use the data-sources routes context wherever possible
* feat(data-connections): add edit and new pages
* feat(data-connections): set the the custom routes via the context provider
* fix(data-connections): set the active tab properly
We needed to update the routes to match with the ones on the backend ("data-sources" vs "datasources"),
and we also needed to check if it is the default tab, in which case we would like to highlight the Datasources tab.
* tests: fix tests for Data Connections page
* fix: address rebase issues
* tests: find button based on role and text
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* fix: add missing closing ) paren in tests
* refactor: use implicit return types for components
* tests: change role from "button" to "link"
* refactor: stop using unnecessary wrapper components
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* refactor: move utility functions out of the redux actions
* refactor: move password handlers to the feature root
* refactor: move API related functions to an api.ts
* refactor: move components under a /components folder
* refactor: move page containers under a /pages folder and extract components
* refactor: update mocks to be easier to reuse
* refactor: move tests into a state/tests/ subfolder
* refactor: expose 'initialState' for plugins
* refactor: move generic types to the root folder of the feature
* refactor: import path fixe
* refactor: update import paths for app routes
* chore: update betterer
* refactor: fix type errors due to changed mock functions
* chore: fix mocking context_srv in tests
* refactor: udpate imports to be more concise
* fix: update failing test because of mocks
* refactor: use the new `navId` prop where we can
* fix: use UID instead ID in datasource edit links
* fix:clean up Redux state when unmounting the edit page
* refactor: use `uid` instead of `id`
* refactor: always fetch the plugin details when editing a datasource
The deleted lines could provide performance benefits, although they also make the
implementation more prone to errors. (Mostly because we are storing the information
about the currently loaded plugin in a single field, and it was not validating if it
is for the latest one).
We are planning to introduce some kind of caching, but first we would like to clean up
the underlying state a bit (plugins & datasources.
* fix: add missing dispatch() wrapper for update datasource callback
* refactor: prefer using absolute import paths
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* fix: ESLINT import order issue
* refactor: put test files next to their files
* refactor: use implicit return types for components
* fix: remove caching from datasource fetching
I have introduced a cache to only fetch data-sources once, however as we
are missing a good logic for updating the instances in the Redux store
when they change (create, update, delete), this approach is not keeping the UI in sync.
Due to this reason I have removed the caching for now, and will reintroduce it once we have a
more robust client-side state logic.
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>