From db20eeb555ac165249fca0ccdc28c3d2ff1e41f3 Mon Sep 17 00:00:00 2001 From: Amir Nissim Date: Mon, 30 Dec 2013 14:31:23 +0200 Subject: [PATCH] Show error notification when saving a query fails (FED #1) --- rd_ui/app/scripts/app.js | 67 +++++++++++++++++++++++++------- rd_ui/app/scripts/controllers.js | 2 + rd_ui/app/styles/redash.css | 1 + 3 files changed, 56 insertions(+), 14 deletions(-) diff --git a/rd_ui/app/scripts/app.js b/rd_ui/app/scripts/app.js index 471cdd4e6..9835d089b 100644 --- a/rd_ui/app/scripts/app.js +++ b/rd_ui/app/scripts/app.js @@ -1,19 +1,58 @@ -angular.module('redash', ['redash.directives', 'redash.admin_controllers', 'redash.controllers', 'redash.filters', 'redash.services', - 'redash.renderers', - 'ui.codemirror', 'highchart', 'angular-growl', 'angularMoment', 'ui.bootstrap', 'smartTable.table', 'ngResource']). - config(['$routeProvider', '$locationProvider', '$compileProvider', function ($routeProvider, $locationProvider, $compileProvider) { +angular.module('redash', [ + 'redash.directives', + 'redash.admin_controllers', + 'redash.controllers', + 'redash.filters', + 'redash.services', + 'redash.renderers', + 'ui.codemirror', + 'highchart', + 'angular-growl', + 'angularMoment', + 'ui.bootstrap', + 'smartTable.table', + 'ngResource' +]).config(['$routeProvider', '$locationProvider', '$compileProvider', 'growlProvider', + function($routeProvider, $locationProvider, $compileProvider, growlProvider) { $compileProvider.urlSanitizationWhitelist(/^\s*(https?|http|data):/); - $locationProvider.html5Mode(true); - $routeProvider.when('/dashboard/:dashboardSlug', {templateUrl: '/views/dashboard.html', controller: 'DashboardCtrl'}); - $routeProvider.when('/queries', {templateUrl: '/views/queries.html', controller: 'QueriesCtrl', reloadOnSearch: false}); - $routeProvider.when('/queries/new', {templateUrl: '/views/queryfiddle.html', controller: 'QueryFiddleCtrl', reloadOnSearch: false}); - $routeProvider.when('/queries/:queryId', {templateUrl: '/views/queryfiddle.html', controller: 'QueryFiddleCtrl', reloadOnSearch: false}); - $routeProvider.when('/admin/status', {templateUrl: '/views/admin_status.html', controller: 'AdminStatusCtrl'}); - $routeProvider.when('/', {templateUrl: '/views/index.html', controller: 'IndexCtrl'}); - $routeProvider.otherwise({redirectTo: '/'}); + growlProvider.globalTimeToLive(2000); - Highcharts.setOptions({colors: ["#4572A7", "#AA4643", "#89A54E", "#80699B", "#3D96AE", "#DB843D", "#92A8CD", "#A47D7C", "#B5CA92"]}); - }]); + $routeProvider.when('/dashboard/:dashboardSlug', { + templateUrl: '/views/dashboard.html', + controller: 'DashboardCtrl' + }); + $routeProvider.when('/queries', { + templateUrl: '/views/queries.html', + controller: 'QueriesCtrl', + reloadOnSearch: false + }); + $routeProvider.when('/queries/new', { + templateUrl: '/views/queryfiddle.html', + controller: 'QueryFiddleCtrl', + reloadOnSearch: false + }); + $routeProvider.when('/queries/:queryId', { + templateUrl: '/views/queryfiddle.html', + controller: 'QueryFiddleCtrl', + reloadOnSearch: false + }); + $routeProvider.when('/admin/status', { + templateUrl: '/views/admin_status.html', + controller: 'AdminStatusCtrl' + }); + $routeProvider.when('/', { + templateUrl: '/views/index.html', + controller: 'IndexCtrl' + }); + $routeProvider.otherwise({ + redirectTo: '/' + }); + Highcharts.setOptions({ + colors: ["#4572A7", "#AA4643", "#89A54E", "#80699B", "#3D96AE", + "#DB843D", "#92A8CD", "#A47D7C", "#B5CA92"] + }); + } +]); \ No newline at end of file diff --git a/rd_ui/app/scripts/controllers.js b/rd_ui/app/scripts/controllers.js index 03b5b19da..393fe7b76 100644 --- a/rd_ui/app/scripts/controllers.js +++ b/rd_ui/app/scripts/controllers.js @@ -68,6 +68,8 @@ $location.path($location.path().replace(oldId, q.id)).replace(); } } + }, function(httpResponse) { + growl.addErrorMessage("Query could not be saved"); }); }; diff --git a/rd_ui/app/styles/redash.css b/rd_ui/app/styles/redash.css index aeb0268c2..e935e6b33 100644 --- a/rd_ui/app/styles/redash.css +++ b/rd_ui/app/styles/redash.css @@ -53,6 +53,7 @@ a.navbar-brand { right: 10px; float: right; width: 250px; + z-index: 10000; } .growl-item.ng-enter,