mirror of
https://github.com/grafana/grafana.git
synced 2024-11-28 11:44:26 -06:00
941ba1d2f7
* PanelLibrary: Adds panellib table
* Refactor: removes drop table migration
* Refactor: fixes spelling mistake
* Refactor: changes after PR comments
* Refactor: some more renames
* PanelLibrary: Adds api and db to create Library/Shared/Reusable Panel
* Refactor: reverts SqlStore change and uses RegisterOverride instead
* Refactor: fixes lint error
* Refactor: fixes imports
* Refactor: reverts unintentional changes
* Refactor: Adds repository
* Revert "Refactor: Adds repository"
This reverts commit 4c46e8a6c4
.
* Refactor: changes after PR comments
* Refactor: Simplfies further
* Chore: fixes linting
* Chore: Changes after PR comments
* Update pkg/services/librarypanels/api.go
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
* Chore: fixes import after commited suggestion
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
66 lines
2.0 KiB
Go
66 lines
2.0 KiB
Go
package librarypanels
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/api/routing"
|
|
"github.com/grafana/grafana/pkg/infra/log"
|
|
"github.com/grafana/grafana/pkg/registry"
|
|
"github.com/grafana/grafana/pkg/services/sqlstore"
|
|
"github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
)
|
|
|
|
// LibraryPanelService is the service for the Panel Library feature.
|
|
type LibraryPanelService struct {
|
|
Cfg *setting.Cfg `inject:""`
|
|
SQLStore *sqlstore.SQLStore `inject:""`
|
|
RouteRegister routing.RouteRegister `inject:""`
|
|
log log.Logger
|
|
}
|
|
|
|
func init() {
|
|
registry.RegisterService(&LibraryPanelService{})
|
|
}
|
|
|
|
// Init initializes the LibraryPanel service
|
|
func (lps *LibraryPanelService) Init() error {
|
|
lps.log = log.New("librarypanels")
|
|
|
|
lps.registerAPIEndpoints()
|
|
|
|
return nil
|
|
}
|
|
|
|
// IsEnabled returns true if the Panel Library feature is enabled for this instance.
|
|
func (lps *LibraryPanelService) IsEnabled() bool {
|
|
if lps.Cfg == nil {
|
|
return false
|
|
}
|
|
|
|
return lps.Cfg.IsPanelLibraryEnabled()
|
|
}
|
|
|
|
// AddMigration defines database migrations.
|
|
// If Panel Library is not enabled does nothing.
|
|
func (lps *LibraryPanelService) AddMigration(mg *migrator.Migrator) {
|
|
if !lps.IsEnabled() {
|
|
return
|
|
}
|
|
|
|
libraryPanelV1 := migrator.Table{
|
|
Name: "library_panel",
|
|
Columns: []*migrator.Column{
|
|
{Name: "id", Type: migrator.DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true},
|
|
{Name: "org_id", Type: migrator.DB_BigInt, Nullable: false},
|
|
{Name: "folder_id", Type: migrator.DB_BigInt, Nullable: false},
|
|
{Name: "title", Type: migrator.DB_NVarchar, Length: 255, Nullable: false},
|
|
{Name: "model", Type: migrator.DB_Text, Nullable: false},
|
|
{Name: "created", Type: migrator.DB_DateTime, Nullable: false},
|
|
{Name: "created_by", Type: migrator.DB_BigInt, Nullable: false},
|
|
{Name: "updated", Type: migrator.DB_DateTime, Nullable: false},
|
|
{Name: "updated_by", Type: migrator.DB_BigInt, Nullable: false},
|
|
},
|
|
}
|
|
|
|
mg.AddMigration("create library_panel table v1", migrator.NewAddTableMigration(libraryPanelV1))
|
|
}
|