Sfoglia il codice sorgente

support separate css files for light/dark themes.

woodsaj 10 anni fa
parent
commit
13864853a8
4 ha cambiato i file con 18 aggiunte e 7 eliminazioni
  1. 6 1
      pkg/api/dtos/index.go
  2. 1 1
      pkg/api/index.go
  3. 4 2
      pkg/plugins/models.go
  4. 7 3
      public/views/index.html

+ 6 - 1
pkg/api/dtos/index.go

@@ -8,11 +8,16 @@ type IndexViewData struct {
 	GoogleAnalyticsId  string
 	GoogleAnalyticsId  string
 	GoogleTagManagerId string
 	GoogleTagManagerId string
 
 
-	PluginCss    []string
+	PluginCss    []*PluginCss
 	PluginJs     []string
 	PluginJs     []string
 	MainNavLinks []*NavLink
 	MainNavLinks []*NavLink
 }
 }
 
 
+type PluginCss struct {
+	Light string `json:"light"`
+	Dark  string `json:"dark"`
+}
+
 type NavLink struct {
 type NavLink struct {
 	Text string `json:"text"`
 	Text string `json:"text"`
 	Icon string `json:"icon"`
 	Icon string `json:"icon"`

+ 1 - 1
pkg/api/index.go

@@ -67,7 +67,7 @@ func setIndexViewData(c *middleware.Context) (*dtos.IndexViewData, error) {
 			data.PluginJs = append(data.PluginJs, js.Module)
 			data.PluginJs = append(data.PluginJs, js.Module)
 		}
 		}
 		for _, css := range plugin.Css {
 		for _, css := range plugin.Css {
-			data.PluginCss = append(data.PluginCss, css.Href)
+			data.PluginCss = append(data.PluginCss, &dtos.PluginCss{Light: css.Light, Dark: css.Dark})
 		}
 		}
 		for _, item := range plugin.MainNavLinks {
 		for _, item := range plugin.MainNavLinks {
 			// only show menu items for the specified roles.
 			// only show menu items for the specified roles.

+ 4 - 2
pkg/plugins/models.go

@@ -37,7 +37,8 @@ type ExternalPluginRoute struct {
 }
 }
 
 
 type ExternalPluginJs struct {
 type ExternalPluginJs struct {
-	Module string `json:"module"`
+	Module    string `json:"module"`
+	Directive string `json:"Directive"`
 }
 }
 
 
 type ExternalPluginNavLink struct {
 type ExternalPluginNavLink struct {
@@ -48,7 +49,8 @@ type ExternalPluginNavLink struct {
 }
 }
 
 
 type ExternalPluginCss struct {
 type ExternalPluginCss struct {
-	Href string `json:"href"`
+	Light string `json:"light"`
+	Dark  string `json:"dark"`
 }
 }
 
 
 type ExternalPlugin struct {
 type ExternalPlugin struct {

+ 7 - 3
public/views/index.html

@@ -10,13 +10,17 @@
 
 
 		[[if .User.LightTheme]]
 		[[if .User.LightTheme]]
 		  <link rel="stylesheet" href="[[.AppSubUrl]]/css/grafana.light.min.css">
 		  <link rel="stylesheet" href="[[.AppSubUrl]]/css/grafana.light.min.css">
+		  [[ range $css := .PluginCss ]]
+			<link rel="stylesheet" href="[[$.AppSubUrl]]/[[ $css.Light ]]">
+		  [[ end ]]
 		[[else]]
 		[[else]]
 		  <link rel="stylesheet" href="[[.AppSubUrl]]/css/grafana.dark.min.css">
 		  <link rel="stylesheet" href="[[.AppSubUrl]]/css/grafana.dark.min.css">
+		  [[ range $css := .PluginCss ]]
+			<link rel="stylesheet" href="[[$.AppSubUrl]]/[[ $css.Dark ]]">
+		  [[ end ]]
 		[[end]]
 		[[end]]
 
 
-		[[ range $css := .PluginCss ]]
-			<link rel="stylesheet" href="[[$.AppSubUrl]]/[[ $css ]]">
-		[[ end ]]
+		
 
 
     <link rel="icon" type="image/png" href="[[.AppSubUrl]]/img/fav32.png">
     <link rel="icon" type="image/png" href="[[.AppSubUrl]]/img/fav32.png">
 		<base href="[[.AppSubUrl]]/" />
 		<base href="[[.AppSubUrl]]/" />