浏览代码

feat(apps): began work on support for apps that contain data sources

Torkel Ödegaard 10 年之前
父节点
当前提交
fe2e6b8a80
共有 3 个文件被更改,包括 19 次插入1 次删除
  1. 13 0
      pkg/plugins/app_plugin.go
  2. 2 0
      public/app/features/apps/edit_ctrl.ts
  3. 4 1
      public/app/features/apps/partials/edit.html

+ 13 - 0
pkg/plugins/app_plugin.go

@@ -77,6 +77,19 @@ func (app *AppPlugin) Load(decoder *json.Decoder, pluginDir string) error {
 		}
 	}
 
+	// check if we have child datasources
+	for _, ds := range DataSources {
+		if strings.HasPrefix(ds.PluginDir, app.PluginDir) {
+			ds.IncludedInAppId = app.Id
+			app.Includes = append(app.Includes, &AppIncludeInfo{
+				Name: ds.Name,
+				Id:   ds.Id,
+				Type: ds.Type,
+			})
+		}
+	}
+
+	// slugify pages
 	for _, page := range app.Pages {
 		if page.Slug == "" {
 			page.Slug = slug.Make(page.Name)

+ 2 - 0
public/app/features/apps/edit_ctrl.ts

@@ -7,6 +7,7 @@ export class AppEditCtrl {
   appModel: any;
   appId: any;
   includedPanels: any;
+  includedDatasources: any;
 
   /** @ngInject */
   constructor(private backendSrv: any, private $routeParams: any) {
@@ -16,6 +17,7 @@ export class AppEditCtrl {
     this.backendSrv.get(`/api/org/apps/${this.appId}/settings`).then(result => {
       this.appModel = result;
       this.includedPanels = _.where(result.includes, {type: 'panel'});
+      this.includedDatasources = _.where(result.includes, {type: 'datasource'});
     });
   }
 

+ 4 - 1
public/app/features/apps/partials/edit.html

@@ -68,7 +68,10 @@
 					Datasources
 				</div>
 				<ul>
-					<li><em class="small">None</em></li>
+					<li ng-show="!ctrl.includedDatasources.length"><em class="small">None</em></li>
+					<li ng-repeat="ds in ctrl.includedDatasources">
+						{{ds.name}}
+					</li>
 				</ul>
 			</div>
 			<div class="simple-box-body simple-box-column">