* add modal scaffolding
* add some unit tests
* remove dummy api, add some TODO comments
* small test refactor
* another small test refactor
* fix unit tests due to aria-label/data-testid change
* add isNew notPersistedProperty to PanelModel
* if panel is newly created and user "Discard"s it, the panel is removed entirely
* add Todo's for when we remove the emptyDashboardPage FF
* add isNew to new panel after file dropping on dashboard page
* handle the "Apply" case
* CSV file dropping is not relevant to a new panel bc it doesnt open edit page
* WIP
* Add instance totals to combined rule. Use totals to display instances stats in the UI
* WIP
* add global summaries, fix TS errors
* fix useCombined test
* fix test
* use activeAt from rule when available
* Fix NaN in global stats
* Add no data total to global summary
* Add totals recalculation for filtered rules
* Fix instances totals, remove instances filtering from alert list view
* Update tests
* Fetch alerts considering filtering label matchers
* WIP - Fetch alerts appending state filter to endpoint
* Fix multiple values for state in request being applyied
* fix test
* Calculate hidden by for grafana managed alerts
* Use INSTANCES_DISPLAY_LIMIT constant for limiting alert instances instead of 1
* Rename matchers parameter according to API changes
* Fix calculating total number of grafana instances
* Rename matcher prop after previous change
* Display button to remove max instances limit
* Change matcher query param to be an array of strings
* Add test for paramsWithMatcherAndState method
* Refactor matcher to be an string array to be consistent with state
* Use matcher query string as matcher object type (encoded JSON)
* Avoind encoding matcher parameters twice
* fix tests
* Enable toggle for the limit/show all button and restore limit and filters when we come back from custom view
* Move getMatcherListFromString method to utils/alertmanager.ts
* Fix limit toggle button being shown when it's not necessary
* Use filteredTotals from be response to calculate hidden by count
* Fix variables not being replaced correctly
* Fix total shown to be all the instances filtered without limits
* Adress some PR review comments
* Move paramsWithMatcherAndState inside prometheusUrlBuilder method
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
* remove old page component
* add test to check initDashboard is only called once (prevent variables loading twice)
* add help node
* update unit tests
* remove last mentions of topnav
* fix unit tests
* remove unused props from ButtonRow interface
* remove prop from test
* adds alertstatehistory backend config to grafanaBootData
* add alertStateHistory api
* show different ASH modal when using loki implementation
* group log lines by instance (unique set of labels)
Co-Authored-By: Konrad Lalik <konrad.lalik@grafana.com>
* render log lines for each instance
Co-Authored-By: Konrad Lalik <konrad.lalik@grafana.com>
* Add visual improvements to the log record of state changes
* Add values to log records
* compute common labels and show unique labels
* Add state changes visualization
* fix common labels extraction
* Code cleanup
* Add timespan-based log record view
* WIP
* scroll to timestamp - poc
* Use SortedVector for timestamp field
* add conditional accessor for frames
* update some of the log formats and styles
* Timestamp-based visualization with scrolling
* minor improvements
* Split Loki's state history viewer into multiple files
* Add memoization to prevent graph rerender on filter updates
* make chart size shrink when fewer instances
* style updates
* show warning when instances are hidden
* Add basic label-based filtering
* Improve label-based filtering
* Add regex validation
* Improve no instances message when everything was filtered out
* Update warning message
* Move timeline viewer to a separate file, refactor handling timeline pointer changes
* Remove unused component, add comments
* Fix test snapshot, fix type error
* adds tests for common.ts
* Add tests for converting log records into data frames
* Add basic component test, fix type guards
* Use a constant for timeseries limit
* Improve a11y, update component test
* Memoize AlertStateTag, migrate from deprecated ArrayVector
* Update public/app/features/alerting/unified/components/rules/state-history/common.ts
* Move helper hook into a separate file. Add Search input component
* Change the limit of visible time series on the timeline
* Add LogRecordViewer perf improvements, refactor timeline cursor events tracking
* Use callback to pass timeline refs
* Add grouping tests for the log record viewer
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* remove metadata for single folder listing
* extendTests
* remove ac metadata from dash and folder search results
* remove test
* remove one more test
* put ac metadata back for single folder API responses
* extend tests
* remove ac metadata from folder frontend object
* undo unneeded change
* PR feedback
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* FIX: Hide Invite Button with external user management
* Hide also when login form is disabled
* add tests and readability
---------
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
* add translation keys for empty dashboard redesign
* run yarn i18n:extract; rephrase one trans key because of [warning] Found translation key already mapped to a map or parent of new key already mapped to a string: dashboard.toolbar.add.visualization
* reduce to 3-step locale phrase IDs
* extract phrase IDs
* add show context button
* improve type definition
* change to default `maxLines`
* remove context query
* add provider to tests
* add test for split view button
* improve documentation
* add tests for `getLogRowContextQuery`
* refactor LogsContainer functions
* fix spelling
* add `contextQuery` as state
* fix tests
* fix lint
* do not use callIfDefined
* make button secondary
* Prompt DS modal when the user adds the first panel to a dashboard
* Rename state prop and use toggle
* Change modal size
* Avoid flickering for dashboard modal when changing number of results
* When editing panel 1, only display when new dashboard
* clean up the components and convert to functional components
* Create hooks for getting DS
* remove focus style override from input
---------
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* feat: add clear logs to explorer's live logs
* refactor live logs pause/resume updating logic
* add tests for clearing live logs
* rm unused imports
* move `onClear` live logs logic to redux
* move clear logs tests to `query.test`
* use utils `sortLogsRows` and Button's icon props
* rename `filterLogRows` and add `clearedAt` as an arg
* mv clearedAt type closer to live tailing items and add jsdoc
* mv `filterLogRowsByTime` to `/utils` and use it at `LiveLogs` component
* make `Exit live` button consistent with other actions
* use `sortLogRows` and fix timestamp by id on `makeLogs`
* change clear live logs from based on timestamp to index on logRows
* assign `null` to `clearedAtIndex` on first batch of logs live
* move `isFirstStreaming` implementation to `clearLogs` reducer
* fix `clearLogs` tests
* Update public/app/features/explore/state/query.ts
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>