فهرست منبع

feat(panels): upgraded text panel

Torkel Ödegaard 10 سال پیش
والد
کامیت
73af4df96d
2فایلهای تغییر یافته به همراه20 افزوده شده و 14 حذف شده
  1. 13 2
      public/app/features/panel/panel_ctrl.ts
  2. 7 12
      public/app/plugins/panel/text/module.ts

+ 13 - 2
public/app/features/panel/panel_ctrl.ts

@@ -25,6 +25,12 @@ export class PanelCtrl {
     this.icon = plugin.info.icon;
     this.icon = plugin.info.icon;
     this.editorTabIndex = 0;
     this.editorTabIndex = 0;
     this.publishAppEvent('panel-instantiated', {scope: $scope});
     this.publishAppEvent('panel-instantiated', {scope: $scope});
+
+    $scope.$on("refresh", () => this.refresh());
+  }
+
+  refresh() {
+    return;
   }
   }
 
 
   publishAppEvent(evtName, evt) {
   publishAppEvent(evtName, evt) {
@@ -43,6 +49,8 @@ export class PanelCtrl {
 
 
   editPanel() {
   editPanel() {
     if (!this.editorTabs) {
     if (!this.editorTabs) {
+      this.editorTabs = [];
+      this.editorTabs.push({title: 'General', directiveFn: generalOptionsTabEditorTab});
       this.initEditorTabs();
       this.initEditorTabs();
     }
     }
 
 
@@ -54,8 +62,11 @@ export class PanelCtrl {
   }
   }
 
 
   initEditorTabs() {
   initEditorTabs() {
-    this.editorTabs = [];
-    this.editorTabs.push({title: 'General', directiveFn: generalOptionsTabEditorTab});
+    return;
+  }
+
+  addEditorTab(title, directiveFn) {
+    this.editorTabs.push({title: title, directiveFn: directiveFn});
   }
   }
 
 
   getMenu() {
   getMenu() {

+ 7 - 12
public/app/plugins/panel/text/module.ts

@@ -3,10 +3,6 @@
 import _ from 'lodash';
 import _ from 'lodash';
 import {PanelDirective, PanelCtrl} from '../../../features/panel/panel';
 import {PanelDirective, PanelCtrl} from '../../../features/panel/panel';
 
 
-function optionsEditorTab() {
-  return {templateUrl: 'public/app/plugins/panel/text/editor.html'};
-}
-
  // Set and populate defaults
  // Set and populate defaults
 var panelDefaults = {
 var panelDefaults = {
   mode    : "markdown", // 'html', 'markdown', 'text'
   mode    : "markdown", // 'html', 'markdown', 'text'
@@ -26,8 +22,9 @@ export class TextPanelCtrl extends PanelCtrl {
   }
   }
 
 
   initEditorTabs() {
   initEditorTabs() {
-    super.initEditorTabs();
-    this.editorTabs.push({title: 'Options', directiveFn: optionsEditorTab});
+    this.addEditorTab('Options', () => {
+      return { templateUrl: 'public/app/plugins/panel/text/editor.html' };
+    });
   }
   }
 
 
   render() {
   render() {
@@ -41,7 +38,7 @@ export class TextPanelCtrl extends PanelCtrl {
     // this.panelRenderingComplete();
     // this.panelRenderingComplete();
   }
   }
 
 
-  refreshData() {
+  refresh() {
     this.render();
     this.render();
   }
   }
 
 
@@ -65,7 +62,9 @@ export class TextPanelCtrl extends PanelCtrl {
     } else {
     } else {
       System.import('vendor/showdown').then(Showdown => {
       System.import('vendor/showdown').then(Showdown => {
         this.converter = new Showdown.converter();
         this.converter = new Showdown.converter();
-        this.updateContent(this.converter.makeHtml(text));
+        this.$scope.$apply(() => {
+          this.updateContent(this.converter.makeHtml(text));
+        });
       });
       });
     }
     }
   }
   }
@@ -77,10 +76,6 @@ export class TextPanelCtrl extends PanelCtrl {
       console.log('Text panel error: ', e);
       console.log('Text panel error: ', e);
       this.content = this.$sce.trustAsHtml(html);
       this.content = this.$sce.trustAsHtml(html);
     }
     }
-
-    if (!this.$scope.$$phase) {
-      this.$scope.$digest();
-    }
   }
   }
 }
 }