grafana/js/controllers.js

106 lines
2.0 KiB
JavaScript
Raw Normal View History

2013-01-26 12:10:28 +08:00
/*jshint globalstrict:true */
/*global angular:true */
'use strict';
angular.module('kibana.controllers', [])
.controller('DashCtrl', function($scope, $rootScope, ejsResource, timer) {
2013-01-26 12:10:28 +08:00
$scope.config = config;
$scope._ = _;
2013-02-14 03:23:24 +08:00
// The global dashboards object should be moved to an $http request for json
if (Modernizr.localstorage &&
!(_.isUndefined(localStorage['dashboard'])) &&
localStorage['dashboard'] !== ''
) {
$scope.dashboards = JSON.parse(localStorage['dashboard']);
} else {
$scope.dashboards = dashboards;
}
2013-02-06 05:30:08 +08:00
2013-01-26 12:10:28 +08:00
var ejs = $scope.ejs = ejsResource(config.elasticsearch);
$scope.export = function() {
var blob = new Blob([angular.toJson($scope.dashboards)], {type: "application/json;charset=utf-8"});
saveAs(blob, $scope.dashboards.title+"-"+new Date().getTime());
}
$scope.default = function() {
if (Modernizr.localstorage) {
localStorage['dashboard'] = angular.toJson($scope.dashboards);
alert($scope.dashboards.title + " has been set as your default dashboard")
} else {
alert("Sorry, your browser is too old for this functionality");
}
}
$scope.purge = function() {
if (Modernizr.localstorage) {
localStorage['dashboard'] = '';
alert('Default dashboard cleared')
} else {
alert("Sorry, your browser is too old for this functionality");
}
}
})
.controller('RowCtrl', function($scope, $rootScope, $timeout, ejsResource, timer) {
2013-02-14 03:23:24 +08:00
$scope.init = function(){
$scope.reset_panel();
}
$scope.toggle_row = function(row) {
row.collapse = row.collapse ? false : true;
if (!row.collapse) {
$timeout(function() {
$scope.$broadcast('render')
});
}
}
2013-02-14 03:23:24 +08:00
$scope.add_panel = function(row,panel) {
console.log(panel)
$scope.row.panels.push(panel);
}
$scope.reset_panel = function() {
$scope.panel = {
span: 1,
editable: true,
groups: ['default'],
};
};
$scope.init();
2013-01-26 12:10:28 +08:00
});