Преглед на файлове

Plugins: avoid app importDashboards() NPE (#18128)

* tables display

* add missing file

* adding toolbar option

* adding toolbar option

* add items to index

* use root import path

* merge master

* show tables info

* add importDashboards code

* remove table changes

* remove table changes

* use deprecation warning
Ryan McKinley преди 6 години
родител
ревизия
06b43f6d4b

+ 4 - 8
docs/sources/plugins/developing/apps.md

@@ -37,15 +37,11 @@ export class ConfigCtrl {
 
   postUpdate() {
     if (!this.appModel.enabled) {
-      return this.$q.resolve();
+      return;
     }
-    return this.appEditCtrl.importDashboards().then(() => {
-      this.enabled = true;
-      return {
-        url: "plugins/raintank-kubernetes-app/page/clusters",
-        message: "Kubernetes App enabled!"
-      };
-    });
+
+    // TODO, whatever you want
+    console.log('Post Update:', this);
   }
 }
 ConfigCtrl.templateUrl = 'components/config/config.html';

+ 5 - 2
packages/grafana-ui/src/utils/deprecationWarning.ts

@@ -1,4 +1,7 @@
-export const deprecationWarning = (file: string, oldName: string, newName: string) => {
-  const message = `[Deprecation warning] ${file}: ${oldName} is deprecated. Use ${newName} instead`;
+export const deprecationWarning = (file: string, oldName: string, newName?: string) => {
+  let message = `[Deprecation warning] ${file}: ${oldName} is deprecated`;
+  if (newName) {
+    message += `.  Use ${newName} instead`;
+  }
   console.warn(message);
 };

+ 7 - 1
public/app/features/plugins/wrappers/AppConfigWrapper.tsx

@@ -3,7 +3,7 @@ import React, { PureComponent } from 'react';
 import cloneDeep from 'lodash/cloneDeep';
 import extend from 'lodash/extend';
 
-import { PluginMeta, AppPlugin, Button } from '@grafana/ui';
+import { PluginMeta, AppPlugin, Button, deprecationWarning } from '@grafana/ui';
 
 import { AngularComponent, getAngularLoader } from '@grafana/runtime';
 import { getBackendSrv } from 'app/core/services/backend_srv';
@@ -124,6 +124,12 @@ export class AppConfigCtrlWrapper extends PureComponent<Props, State> {
     this.postUpdateHook = callback;
   };
 
+  // Stub to avoid unknown function in legacy code
+  importDashboards = (): Promise<void> => {
+    deprecationWarning('AppConfig', 'importDashboards()');
+    return Promise.resolve();
+  };
+
   enable = () => {
     this.model.enabled = true;
     this.model.pinned = true;