Commit Graph

123 Commits

Author SHA1 Message Date
Marcus Efraimsson
7ce766d9d4 dashlist: Support for clear all filters 2017-11-27 11:33:54 +01:00
Torkel Ödegaard
bc81298d4c worked on search 2017-11-24 16:18:56 +01:00
Marcus Efraimsson
d9ecb59dae dashlist: Support for check/uncheck all 2017-11-23 18:32:44 +01:00
Marcus Efraimsson
7ee57b774a dashlist: When searching should reset checked state to false 2017-11-23 14:59:52 +01:00
Daniel Lee
41a3431c4e dashlist: starred filter search 2017-11-22 18:44:57 +01:00
Daniel Lee
bd2b26e9f5 dashlist: fix tag filtering and some css 2017-11-21 14:47:19 +01:00
Daniel Lee
8daff73ba2 dashlist: started fixing js/css after design changes 2017-11-20 18:15:59 +01:00
Torkel Ödegaard
8160e68f93 fix: build & tests 2017-11-17 16:18:30 +01:00
Torkel Ödegaard
10fcf2f5be Merge branch 'master' into develop 2017-11-02 15:56:09 +01:00
Torkel Ödegaard
84b10df887 Merge branch 'develop' of github.com:grafana/grafana into develop 2017-10-31 16:14:40 +01:00
Torkel Ödegaard
9aa6a6b4c4 Merge branch 'linkSrv-js-to-ts' 2017-10-31 14:29:42 +01:00
Daniel Lee
a366b137a2 dashfolders: bulk edit tag filtering
Still ugly though
2017-10-30 19:34:55 +01:00
Daniel Lee
e85abf6810 dashboards: bulk edit delete
If both a parent folder and a child is chosen then
only sends the parent folder for deletion as the
child folder will be deleted anyway.
2017-10-29 22:08:26 +01:00
bergquist
e1765e360e tech: add missing include 2017-10-29 20:21:41 +01:00
bergquist
728471eef4 save as should only delete threshold for panels with alerts
closes #9681
2017-10-27 15:41:53 +02:00
Patrick O'Carroll
f097bce565 more link fixes 2017-10-26 14:47:07 +02:00
Torkel Ödegaard
9718fa7c03 grid: work in progress on row repeats 2017-10-26 09:53:48 +02:00
Daniel Lee
7f3293ce80 dashfolders: rough draft of bulk edit 2017-10-25 16:12:03 +02:00
Torkel Ödegaard
7559982b05 grid: minor changes 2017-10-25 12:38:08 +02:00
Torkel Ödegaard
df12cbc4a7 tests: added test for DashboardRow 2017-10-24 15:46:03 +02:00
Torkel Ödegaard
15024e96e4 ux: row collapse / expand starting to work 2017-10-24 12:33:14 +02:00
Torkel Ödegaard
3e89ec4ff2 ux: updated icons 2017-10-24 10:47:24 +02:00
Torkel Ödegaard
bc8c2409c0 ux: work on rows 2017-10-17 14:53:52 +02:00
Torkel Ödegaard
cd10be0f52 newgrid: row progress 2017-10-16 16:09:23 +02:00
Torkel Ödegaard
70005d3e37 grid: repeat refactoring and unit tests 2017-10-13 14:50:16 +02:00
Torkel Ödegaard
e5a6cb6241 newgrid: added constants, changed grid to 24 cols, added tests for panel repeats 2017-10-13 13:51:05 +02:00
Torkel Ödegaard
8bb9d92a73 grid: minor progress on panel repeats 2017-10-12 21:37:27 +02:00
Torkel Ödegaard
215d59865e changed name back to use underscore instead of camelcase, need to think more about this 2017-10-12 20:02:07 +02:00
Torkel Ödegaard
83e496606e fixed dashboard sorting 2017-10-12 19:55:52 +02:00
Torkel Ödegaard
770a21b368 newgrid: worked panel duplicate 2017-10-12 19:01:02 +02:00
Daniel Lee
4c5bf76829 dashgrid: fix or skip tests for repeat rows 2017-10-12 12:01:13 +02:00
Daniel Lee
5272dd6605 dashboardgrid: disable dynamic_dashboard_srv for now
The row concept is probably going to change a lot so disabling
the repeating panels and repeating rows code and tests for now.
2017-10-12 11:04:38 +02:00
Torkel Ödegaard
087b55aece newgrid: progress on fullscreen/edit view modes 2017-10-11 11:42:49 +02:00
Torkel Ödegaard
9e61cacd16 tests: found the unhandled promise issue in the dash import tests 2017-10-08 15:56:42 +02:00
Torkel Ödegaard
b228c23dbe testing: fixing tests 2017-10-07 22:05:31 +02:00
Torkel Ödegaard
25aa9df270 Create annotations (#8197)
* annotations: add 25px space for events section

* annotations: restored create annotation action

* annotations: able to use fa icons as event markers

* annotations: initial emoji support from twemoji lib

* annotations: adjust fa icon position

* annotations: initial emoji picker

* annotation: include user info into annotation requests

* annotation: add icon info

* annotation: display user info in tooltip

* annotation: fix region saving

* annotation: initial region markers

* annotation: fix region clearing (add flot-temp-elem class)

* annotation: adjust styles a bit

* annotations: minor fixes

* annoations: removed userId look in loop, need a sql join or a user cache for this

* annotation: fix invisible events

* lib: changed twitter emoij lib to be npm dependency

* annotation: add icon picker to Add Annotation dialog

* annotation: save icon to annotation table

* annotation: able to set custom icon for annotation added by user

* annotations: fix emoji after library upgrade (switch to 72px)

* emoji: temporary remove bad code points

* annotations: improve icon picker

* annotations: icon show icon picker at the top

* annotations: use svg for emoji

* annotations: fix region drawing when add annotation editor opened

* annotations: use flot lib for drawing region fill

* annotations: move regions building into event_manager

* annotations: don't draw additional space if no events are got

* annotations: deduplicate events

* annotations: properly render cut regions

* annotations: fix cut region building

* annotations: refactor

* annotations: adjust event section size

* add-annotations: fix undefined default icon

* create-annotations:  edit event (frontend part)

* fixed bug causes error when hover event marker

* create-annotations:  update event (backend)

* ignore grafana-server debug binary in git (created VS Code)

* create-annotations: use PUT request for updating annotation.

* create-annotations: fixed time format when editing existing event

* create-annotations: support for region update

* create-annotations: fix bug with limit and event type

* create-annotations: delete annotation

* create-annotations: show only selected icon in edit mode

* create-annotations: show event editor only for users with at least Editor role

* create-annotations: handle double-sized emoji codepoints

* create-annotations: refactor

use CP_SEPARATOR from emojiDef

* create-annotations: update emoji list, add categories.

* create-annotations: copy SVG emoji into public/vendor/npm and use it as a base path

* create-annotations: initial tabs for emoji picker

* emoji-picker: adjust styles

* emoji-picker: minor refactor

* emoji-picker: refactor - rename and move into one directory

* emoji-picker: build emoji elements on app load, not on picker open

* emoji-picker: fix emoji searching

* emoji-picker: refactor

* emoji-picker: capitalize category name

* emoji-picker: refactor

move buildEmojiElem() into emoji_converter.ts for future reuse.

* jquery.flot.events: refactor

use buildEmojiElem() for making emojis, remove unused code for font awesome based icons.

* emoji_converter: handle converting error

* tech: updated

* merged with master

* shore: clean up some stuff

* annotation: wip tags

* annotation: filtering by tags

* tags: parse out spaces etc. from a tags string

* annotations: use tagsinput component for tag filtering

* annotation: wip work on how we query alert & panel annotations

* annotations: support for updating tags in an annotation

* linting

* annotations: work on unifying how alert history annotations and manual panel annotations are created

* tslint: fixes

* tags: create tag on blur as well

Currently, the tags directive only creates the tag when the
user presses enter. This change means the tag is created on
blur as well (when the user clicks outside the input field).

* annotations: fix update after refactoring

* annotations: progress on how alert annotations are fetched

* annotations: minor progress

* annotations: progress

* annotation: minor progress

* annotations: move tag parsing from tooltip to ds

Instead of parsing a tag string into an array in the annotation_tooltip
class, this moves the parsing to the datasources. InfluxDB ds already
does that parsing. Graphite now has it.

* annotations: more work on querying

* annotations: change from tags as string to array

when saving in the db and in the api.

* annotations: delete tag link if removed on edit

* annotation: more work on depricating annotation title

* annotations: delete tag links on delete

* annotations: fix for find

* annotation: added user to annotation tooltip and added alertName to annoation dto

* annotations: use id from route instead from cmd for updating

* annotations: http api docs

* create annotation: last edits

* annotations: minor fix for querying annotations before dashboard saved

* annotations: fix for popover placement when legend is on the side (and doubel render pass is causing original marker to be removed)

* annotations: changing how the built in query gets added

* annotation: added time to header in edit mode

* tests: fixed jshint built issue
2017-10-07 10:31:39 +02:00
Torkel Ödegaard
4cc878b56d build: fixed build 2017-10-02 17:10:23 +02:00
Torkel Ödegaard
0c86241c5b Webpack (#9391)
* webpack poc, this is not going to work for plugins, dam

* tech: webpack and systemjs for plugins starting to work

* tech: webpack and systemjs combo starting to work

* tech: webpack + karma tests progress

* tech: webpack + karma progress

* tech: working on tests

* tech: webpack

* tech: webpack + karma, all tests pass

* tech: webpack + karma, all tests pass

* tech: webpack all tests pass

* webpack: getting closer

* tech: webpack progress

* webpack: further build refinements

* webpack: ng annotate fixes

* webpack: optimized build fix

* tech: minor fix for elasticsearch

* tech: webpack + ace editor

* tech: restored lodash move mixin compatability

* tech: added enzyme react test and upgraded to react v16

* tech: package version fix

* tech: added testdata to built in bundle

* webpack: sass progress

* tech: prod & dev build is working for the sass

* tech: clean up unused grunt stuff and moved to scripts folder

* tech: added vendor and manifest chunks, updated readme and docs

* tech: webpack finishing touches
2017-10-01 20:02:25 +02:00
Torkel Ödegaard
7aa753a25f tech: migrating elasticsearch to typescript 2017-09-28 12:52:39 +02:00
Torkel Ödegaard
b8d9722b4f tech: removing unused variables from typescript files, and making tslint rules more strict 2017-09-21 16:40:18 +02:00
Torkel Ödegaard
ef1dfed0d8 dasboard_history: big refactoring of how the compare api looked, now a POST with a model for new & base version, refactored a simplified UI code as well, this was done to lay foundation to make it possible to do diff against current in browser unsaved version 2017-06-07 11:50:09 +02:00
Torkel Ödegaard
9b629cd5a6 dashboard_history: fixed history srv unit tests 2017-06-06 14:28:21 +02:00
Torkel Ödegaard
e43d09e15b fix: fixed failing frontend test 2017-06-05 23:31:45 +02:00
Torkel Ödegaard
cabbfe9adc refactoring: moved dashboard history item formating (message) and fixed dashboard history migration issue, and removed from frontend tests that where no longer needed 2017-06-05 22:59:04 +02:00
sanchitraizada
77c046aac6 Implement review feedback 2017-06-01 17:57:09 -04:00
Ben Tranter
b6e46c9eb8 History and Version Control for Dashboard Updates
A simple version control system for dashboards. Closes #1504.

Goals

1. To create a new dashboard version every time a dashboard is saved.
2. To allow users to view all versions of a given dashboard.
3. To allow users to rollback to a previous version of a dashboard.
4. To allow users to compare two versions of a dashboard.

Usage

Navigate to a dashboard, and click the settings cog. From there, click
the "Changelog" button to be brought to the Changelog view. In this
view, a table containing each version of a dashboard can be seen. Each
entry in the table represents a dashboard version. A selectable
checkbox, the version number, date created, name of the user who created
that version, and commit message is shown in the table, along with a
button that allows a user to restore to a previous version of that
dashboard. If a user wants to restore to a previous version of their
dashboard, they can do so by clicking the previously mentioned button.
If a user wants to compare two different versions of a dashboard, they
can do so by clicking the checkbox of two different dashboard versions,
then clicking the "Compare versions" button located below the dashboard.
From there, the user is brought to a view showing a summary of the
dashboard differences. Each summarized change contains a link that can
be clicked to take the user a JSON diff highlighting the changes line by
line.

Overview of Changes

Backend Changes

- A `dashboard_version` table was created to store each dashboard
  version, along with a dashboard version model and structs to represent
  the queries and commands necessary for the dashboard version API
  methods.
- API endpoints were created to support working with dashboard
  versions.
- Methods were added to create, update, read, and destroy dashboard
  versions in the database.
  - Logic was added to compute the diff between two versions, and
  display it to the user.
  - The dashboard migration logic was updated to save a "Version
  1" of each existing dashboard in the database.

Frontend Changes

- New views
- Methods to pull JSON and HTML from endpoints

New API Endpoints

Each endpoint requires the authorization header to be sent in
the format,

```
Authorization: Bearer <jwt>
```

where `<jwt>` is a JSON web token obtained from the Grafana
admin panel.

`GET "/api/dashboards/db/:dashboardId/versions?orderBy=<string>&limit=<int>&start=<int>"`

Get all dashboard versions for the given dashboard ID. Accepts
three URL parameters:

- `orderBy` String to order the results by. Possible values
  are `version`, `created`, `created_by`, `message`. Default
  is `versions`. Ordering is always in descending order.
- `limit` Maximum number of results to return
- `start` Position in results to start from

`GET "/api/dashboards/db/:dashboardId/versions/:id"`

Get an individual dashboard version by ID, for the given
dashboard ID.

`POST "/api/dashboards/db/:dashboardId/restore"`

Restore to the given dashboard version. Post body is of
content-type `application/json`, and must contain.

```json
{
  "dashboardId": <int>,
  "version": <int>
}
```

`GET "/api/dashboards/db/:dashboardId/compare/:versionA...:versionB"`

Compare two dashboard versions by ID for the given
dashboard ID, returning a JSON delta formatted
representation of the diff. The URL format follows
what GitHub does. For example, visiting
[/api/dashboards/db/18/compare/22...33](http://ec2-54-80-139-44.compute-1.amazonaws.com:3000/api/dashboards/db/18/compare/22...33)
will return the diff between versions 22 and 33 for
the dashboard ID 18.

Dependencies Added

- The Go package [gojsondiff](https://github.com/yudai/gojsondiff)
  was added and vendored.
2017-05-24 19:14:39 -04:00
Torkel Ödegaard
752b42798a annotations: added new options hide toggle, and show option 2017-04-12 15:01:17 +02:00
Torkel Ödegaard
4d4e165be7 links: updated links from grafana.net to grafana.com 2017-03-20 10:20:32 +01:00
Torkel Ödegaard
49fe74228b fix(browser history): fixes and enhancements to browser history, it now works properly again AND it can restore previous time ranges in dashboards, closes #7259 2017-01-13 17:37:53 +01:00
Torkel Ödegaard
45d2e70ba7 feat(dashboard): sorting dashboard model kekeys, refactoring PR #7139 2017-01-06 10:09:11 +01:00
Torkel Ödegaard
7425c63528 fix(dashboard): fixed unit test 2016-12-14 14:42:25 +01:00
Torkel Ödegaard
98d1748e43 fix(templating): work on fixing exporting issues when using templating variables, like data source variables, and panel repeats, requires more work #6189 2016-11-17 12:32:11 +01:00
Torkel Ödegaard
9c7f8268dc fix(build): fixed failing unit test 2016-11-16 14:39:17 +01:00
Torkel Ödegaard
18056e53cc ux(dashboard): Fixing broken unit test made by changes for dash edit mode, #6442 2016-11-01 14:35:35 +01:00
Torkel Ödegaard
c1567ae595 fix(build): fixes #6284 2016-10-15 08:00:48 +02:00
Torkel Ödegaard
2e21613be7 fix(templating): fixed issues with dynamic dashboard srv (panel/row) repeats, fixes #6237 2016-10-11 15:17:47 +02:00
Torkel Ödegaard
73fc659011 fix(graph): fixed issue with old threshold to new threshold model migration, fixes #6236 2016-10-11 13:22:46 +02:00
Torkel Ödegaard
4a1693196c fix(mixed datasource): fixed issue when exporting dashboard using mixed data source, fixes #6032 2016-09-21 14:57:19 +02:00
Torkel Ödegaard
5ded88fa4d feat(templating): progress on variable system refactoring, #6048 2016-09-19 11:34:08 +02:00
Torkel Ödegaard
524f505664 tech(templating): refactoring, updated dashboardSrv to typescript 2016-09-19 10:08:05 +02:00
Torkel Ödegaard
0fa0066cd9 tech(lodash): began migration work 2016-09-13 22:10:44 +02:00
Torkel Ödegaard
58df60f670 fix(templating): another fix for repeating panels and having old panels/scoped vars stuck after switching repeat variable, fixes #5795 2016-08-14 14:45:49 +02:00
Julian Einwag
cbf0e77add fix repeat panels (#5796) 2016-08-14 13:59:16 +02:00
Torkel Ödegaard
c8965d0f9a feat(export): export will add templatize constant variables 2016-05-28 20:27:44 +02:00
Torkel Ödegaard
c3708b3096 feat(import): import directly from grafana.net id/url now works 2016-05-27 16:11:05 +02:00
Torkel Ödegaard
540def2c39 feat(import): working on unit tests for import ctrl 2016-05-27 13:52:19 +02:00
Torkel Ödegaard
fb74d10573 feat(export): added grafana version to requires array, #5084 2016-05-19 10:21:16 +02:00
Torkel Ödegaard
430bcf192f feat(export): templetize annotations and template vars, #5084 2016-05-19 10:01:31 +02:00
Torkel Ödegaard
ad7a1e15b4 feat(export): began working on export modal 2016-05-17 10:29:57 +02:00
Torkel Ödegaard
5b42753b8b feat(export): progress on dashboard export 2016-05-10 21:09:15 +02:00
Torkel Ödegaard
79a8017fe9 feat(export): more progress on dashboard export 2016-05-10 20:31:47 +02:00
Torkel Ödegaard
0f71838fdf feat(dash export): dashboard export can now replace datasource names with variable and add inputs section 2016-04-14 21:13:01 -04:00
Torkel Ödegaard
4d0b14fbb4 feat(exporter): stared work on dashboard exporter that cleans up repeated panels etc 2016-04-14 17:31:34 -04:00