Просмотр исходного кода

allow loading of panels and dashboards from subfolders

every . in their name is mapped to a /
Boaz Leskes 12 лет назад
Родитель
Сommit
d3495ff739

+ 1 - 1
src/app/controllers/dash.js

@@ -70,7 +70,7 @@ function (angular, config, _) {
 
     $scope.edit_path = function(type) {
       if(type) {
-        return 'app/panels/'+type+'/editor.html';
+        return 'app/panels/'+type.replace(".","/")+'/editor.html';
       } else {
         return false;
       }

+ 1 - 1
src/app/directives/addPanel.js

@@ -17,7 +17,7 @@ function (angular, app, _) {
             $scope.reset_panel(_type);
             if(!_.isUndefined($scope.panel.type)) {
               $scope.panel.loadingEditor = true;
-              $scope.require(['panels/'+$scope.panel.type+'/module'], function () {
+              $scope.require(['panels/'+$scope.panel.type.replace(".","/") +'/module'], function () {
                 var template = '<div ng-controller="'+$scope.panel.type+'" ng-include="\'app/partials/paneladd.html\'"></div>';
                 elem.html($compile(angular.element(template))($scope));
                 $scope.panel.loadingEditor = false;

+ 3 - 2
src/app/directives/kibanaPanel.js

@@ -75,9 +75,10 @@ function (angular) {
           $scope.$watch(attr.type, function (name) {
             elem.addClass("ng-cloak");
             // load the panels module file, then render it in the dom.
+            var nameAsPath = name.replace(".", "/");
             $scope.require([
               'jquery',
-              'text!panels/'+name+'/module.html'
+              'text!panels/'+nameAsPath+'/module.html'
             ], function ($, moduleTemplate) {
               var $module = $(moduleTemplate);
               // top level controllers
@@ -88,7 +89,7 @@ function (angular) {
               if ($controllers.length) {
                 $controllers.first().prepend(editorTemplate);
                 $scope.require([
-                  'panels/'+name+'/module'
+                  'panels/'+nameAsPath+'/module'
                 ], function() {
                   loadModule($module);
                 });

+ 3 - 3
src/app/directives/kibanaSimplePanel.js

@@ -32,10 +32,10 @@ function (angular, _) {
           function loadController(name) {
             elem.addClass("ng-cloak");
             // load the panels module file, then render it in the dom.
-
+            var nameAsPath = name.replace(".", "/");
             $scope.require([
               'jquery',
-              'text!panels/'+name+'/module.html'
+              'text!panels/'+nameAsPath+'/module.html'
             ], function ($, moduleTemplate) {
               var $module = $(moduleTemplate);
               // top level controllers
@@ -46,7 +46,7 @@ function (angular, _) {
               if ($controllers.length) {
                 $controllers.first().prepend(panelLoading);
                 $scope.require([
-                  'panels/'+name+'/module'
+                  'panels/'+nameAsPath+'/module'
                 ], function() {
                   loadModule($module);
                 });

+ 2 - 2
src/app/services/dashboard.js

@@ -274,7 +274,7 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
 
     this.file_load = function(file) {
       return $http({
-        url: "app/dashboards/"+file+'?' + new Date().getTime(),
+        url: "app/dashboards/"+file.replace(".","/")+'?' + new Date().getTime(),
         method: "GET",
         transformResponse: function(response) {
           return renderTemplate(response,$routeParams);
@@ -314,7 +314,7 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
 
     this.script_load = function(file) {
       return $http({
-        url: "app/dashboards/"+file,
+        url: "app/dashboards/"+file.replace(".","/"),
         method: "GET",
         transformResponse: function(response) {
           /*jshint -W054 */