mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Preferences: Add preferences kind and remove unused navbar settings (#59621)
This commit is contained in:
@@ -50,7 +50,6 @@ type SavePreferenceCommand struct {
|
||||
WeekStart string `json:"weekStart,omitempty"`
|
||||
Theme string `json:"theme,omitempty"`
|
||||
Language string `json:"language,omitempty"`
|
||||
Navbar *NavbarPreference `json:"navbar,omitempty"`
|
||||
QueryHistory *QueryHistoryPreference `json:"queryHistory,omitempty"`
|
||||
}
|
||||
|
||||
@@ -65,24 +64,11 @@ type PatchPreferenceCommand struct {
|
||||
WeekStart *string `json:"weekStart,omitempty"`
|
||||
Theme *string `json:"theme,omitempty"`
|
||||
Language *string `json:"language,omitempty"`
|
||||
Navbar *NavbarPreference `json:"navbar,omitempty"`
|
||||
QueryHistory *QueryHistoryPreference `json:"queryHistory,omitempty"`
|
||||
}
|
||||
|
||||
type NavLink struct {
|
||||
ID string `json:"id,omitempty"`
|
||||
Text string `json:"text,omitempty"`
|
||||
Url string `json:"url,omitempty"`
|
||||
Target string `json:"target,omitempty"`
|
||||
}
|
||||
|
||||
type NavbarPreference struct {
|
||||
SavedItems []NavLink `json:"savedItems"`
|
||||
}
|
||||
|
||||
type PreferenceJSONData struct {
|
||||
Language string `json:"language"`
|
||||
Navbar NavbarPreference `json:"navbar"`
|
||||
QueryHistory QueryHistoryPreference `json:"queryHistory"`
|
||||
}
|
||||
|
||||
|
||||
@@ -65,10 +65,6 @@ func (s *Service) GetWithDefaults(ctx context.Context, query *pref.GetPreference
|
||||
res.JSONData.Language = p.JSONData.Language
|
||||
}
|
||||
|
||||
if len(p.JSONData.Navbar.SavedItems) > 0 {
|
||||
res.JSONData.Navbar = p.JSONData.Navbar
|
||||
}
|
||||
|
||||
if p.JSONData.QueryHistory.HomeTab != "" {
|
||||
res.JSONData.QueryHistory.HomeTab = p.JSONData.QueryHistory.HomeTab
|
||||
}
|
||||
@@ -134,9 +130,6 @@ func (s *Service) Save(ctx context.Context, cmd *pref.SavePreferenceCommand) err
|
||||
Language: cmd.Language,
|
||||
}
|
||||
|
||||
if cmd.Navbar != nil {
|
||||
preference.JSONData.Navbar = *cmd.Navbar
|
||||
}
|
||||
if cmd.QueryHistory != nil {
|
||||
preference.JSONData.QueryHistory = *cmd.QueryHistory
|
||||
}
|
||||
@@ -173,15 +166,6 @@ func (s *Service) Patch(ctx context.Context, cmd *pref.PatchPreferenceCommand) e
|
||||
preference.JSONData.Language = *cmd.Language
|
||||
}
|
||||
|
||||
if cmd.Navbar != nil {
|
||||
if preference.JSONData == nil {
|
||||
preference.JSONData = &pref.PreferenceJSONData{}
|
||||
}
|
||||
if cmd.Navbar.SavedItems != nil {
|
||||
preference.JSONData.Navbar.SavedItems = cmd.Navbar.SavedItems
|
||||
}
|
||||
}
|
||||
|
||||
if cmd.QueryHistory != nil {
|
||||
if preference.JSONData == nil {
|
||||
preference.JSONData = &pref.PreferenceJSONData{}
|
||||
@@ -210,16 +194,6 @@ func (s *Service) Patch(ctx context.Context, cmd *pref.PatchPreferenceCommand) e
|
||||
preference.Updated = time.Now()
|
||||
preference.Version += 1
|
||||
|
||||
// Wrap this in an if statement to maintain backwards compatibility
|
||||
if cmd.Navbar != nil {
|
||||
if preference.JSONData == nil {
|
||||
preference.JSONData = &pref.PreferenceJSONData{}
|
||||
}
|
||||
if cmd.Navbar.SavedItems != nil {
|
||||
preference.JSONData.Navbar.SavedItems = cmd.Navbar.SavedItems
|
||||
}
|
||||
}
|
||||
|
||||
if exists {
|
||||
err = s.store.Update(ctx, preference)
|
||||
} else {
|
||||
|
||||
@@ -174,51 +174,15 @@ func TestGetDefaults_JSONData(t *testing.T) {
|
||||
queryPreference := pref.QueryHistoryPreference{
|
||||
HomeTab: "hometab",
|
||||
}
|
||||
userNavbarPreferences := pref.NavbarPreference{
|
||||
SavedItems: []pref.NavLink{{
|
||||
ID: "explore",
|
||||
Text: "Explore",
|
||||
Url: "/explore",
|
||||
}},
|
||||
}
|
||||
orgNavbarPreferences := pref.NavbarPreference{
|
||||
SavedItems: []pref.NavLink{{
|
||||
ID: "alerting",
|
||||
Text: "Alerting",
|
||||
Url: "/alerting",
|
||||
}},
|
||||
}
|
||||
team1NavbarPreferences := pref.NavbarPreference{
|
||||
SavedItems: []pref.NavLink{{
|
||||
ID: "dashboards",
|
||||
Text: "Dashboards",
|
||||
Url: "/dashboards",
|
||||
}},
|
||||
}
|
||||
team2NavbarPreferences := pref.NavbarPreference{
|
||||
SavedItems: []pref.NavLink{{
|
||||
ID: "home",
|
||||
Text: "Home",
|
||||
Url: "/home",
|
||||
}},
|
||||
}
|
||||
userPreferencesJsonData := pref.PreferenceJSONData{
|
||||
Navbar: userNavbarPreferences,
|
||||
QueryHistory: queryPreference,
|
||||
}
|
||||
orgPreferencesJsonData := pref.PreferenceJSONData{
|
||||
Navbar: orgNavbarPreferences,
|
||||
}
|
||||
orgPreferencesJsonData := pref.PreferenceJSONData{}
|
||||
orgPreferencesWithLanguageJsonData := pref.PreferenceJSONData{
|
||||
Navbar: orgNavbarPreferences,
|
||||
Language: "en-GB",
|
||||
}
|
||||
team2PreferencesJsonData := pref.PreferenceJSONData{
|
||||
Navbar: team2NavbarPreferences,
|
||||
}
|
||||
team1PreferencesJsonData := pref.PreferenceJSONData{
|
||||
Navbar: team1NavbarPreferences,
|
||||
}
|
||||
team2PreferencesJsonData := pref.PreferenceJSONData{}
|
||||
team1PreferencesJsonData := pref.PreferenceJSONData{}
|
||||
|
||||
t.Run("users have precedence over org", func(t *testing.T) {
|
||||
prefService := &Service{
|
||||
@@ -274,7 +238,6 @@ func TestGetDefaults_JSONData(t *testing.T) {
|
||||
WeekStart: &weekStart,
|
||||
JSONData: &pref.PreferenceJSONData{
|
||||
Language: "en-GB",
|
||||
Navbar: userNavbarPreferences,
|
||||
QueryHistory: queryPreference,
|
||||
},
|
||||
}, preference)
|
||||
|
||||
@@ -20,13 +20,6 @@ func testIntegrationPreferencesDataAccess(t *testing.T, fn getStore) {
|
||||
weekStartOne := "1"
|
||||
ss := db.InitTestDB(t)
|
||||
prefStore := fn(ss)
|
||||
orgNavbarPreferences := pref.NavbarPreference{
|
||||
SavedItems: []pref.NavLink{{
|
||||
ID: "alerting",
|
||||
Text: "Alerting",
|
||||
Url: "/alerting",
|
||||
}},
|
||||
}
|
||||
|
||||
t.Run("Get with saved org and user home dashboard returns not found", func(t *testing.T) {
|
||||
query := &pref.Preference{OrgID: 1, UserID: 1, TeamID: 2}
|
||||
@@ -124,7 +117,7 @@ func testIntegrationPreferencesDataAccess(t *testing.T, fn getStore) {
|
||||
Timezone: "browser",
|
||||
HomeDashboardID: 5,
|
||||
WeekStart: &weekStartOne,
|
||||
JSONData: &pref.PreferenceJSONData{Navbar: orgNavbarPreferences},
|
||||
JSONData: &pref.PreferenceJSONData{},
|
||||
Created: time.Now(),
|
||||
Updated: time.Now(),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user