| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /*
- ## Column
- The column panel is sort of a hack to allow you to put multiple, veritcal,
- panels next to a bigger panel. Note that it has no group, and setting a group
- for the panel itself will do nothing
- ### Parameters
- * panels :: an array of panel objects. All of their spans should be set to 12
- ### Group Events
- #### Sends
- * time :: Object Includes from, to and index
- */
- angular.module('kibana.column', [])
- .controller('column', function($scope, $rootScope) {
- // Set and populate defaults
- var _d = {
- panels : [
- ]
- }
- _.defaults($scope.panel,_d);
- $scope.init = function(){
- $scope.reset_panel();
- }
- $scope.toggle_row = function(panel) {
- panel.collapse = panel.collapse ? false : true;
- if (!panel.collapse) {
- $timeout(function() {
- $scope.send_render();
- });
- }
- }
- $scope.send_render = function() {
- $scope.$broadcast('render');
- }
- $scope.add_panel = function(panel) {
- $scope.panel.panels.push(panel);
- }
- $scope.reset_panel = function(type) {
- $scope.new_panel = {
- loading: false,
- error: false,
- sizeable: false,
- span: 12,
- height: "150px",
- editable: true,
- group: ['default'],
- type: type,
- };
- };
- })
- .directive('columnEdit', function($compile,$timeout) {
- return {
- scope : {
- new_panel:"=panel",
- row:"=",
- config:"=",
- dashboards:"=",
- type:"=type"
- },
- link: function(scope, elem, attrs, ctrl) {
- scope.$on('render', function () {
- // Make sure the digest has completed and populated the attributes
- $timeout(function() {
- // Create a reference to the new_panel as panel so that the existing
- // editors work with our isolate scope
- scope.panel = scope.new_panel
- var template = '<div ng-include src="\'panels/column/panelgeneral.html\'"></div>'
- if(!(_.isUndefined(scope.type)) && scope.type != "")
- template = template+'<div ng-include src="\'panels/'+scope.type+'/editor.html\'"></div>';
- //var new_elem = $compile(angular.element(template))(scope))
- elem.html($compile(angular.element(template))(scope));
- })
- })
- }
- }
- }).filter('withoutColumn', function() {
- return function() {
- return _.without(config.modules,'column');
- };
- });
|