Commit c2692614 by Torkel Ödegaard

began work on unsaved changes warning when changing dashboard, Issue #324

parent 827e1846
......@@ -60,6 +60,12 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
this.last = {};
this.availablePanels = [];
$rootScope.$on("$locationChangeStart", function(event, next, current) {
if (!self.confirm_dash_change()) {
event.preventDefault();
}
});
$rootScope.$on('$routeChangeSuccess',function(){
// Clear the current dashboard to prevent reloading
self.current = {};
......@@ -156,6 +162,7 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
// Set the current dashboard
self.current = angular.copy(dashboard);
self.original = angular.copy(dashboard);
// Delay this until we're sure that querySrv and filterSrv are ready
$timeout(function() {
......@@ -184,6 +191,22 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
return true;
};
this.confirm_dash_change = function() {
if (!self.original) {
return true;
}
var current = angular.copy(self.current);
var currentJson = angular.toJson(current);
var originalJson = angular.toJson(self.original);
if (currentJson !== originalJson) {
return confirm('There are unsaved changes, are you sure you want to change dashboard?');
}
return true;
};
this.gist_id = function(string) {
if(self.is_gist(string)) {
return string.match(gist_pattern)[0].replace(/.*\//, '');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment