[#138] simplify saveQuery, drop $route dependency

This commit is contained in:
Amir Nissim
2014-03-24 15:28:05 +02:00
parent 028a3e9d62
commit 5ce4fcb974
2 changed files with 20 additions and 20 deletions

View File

@@ -1,13 +1,13 @@
(function() {
'use strict';
function QueryEditCtrl($controller, $scope, $route, $location, growl, Query, Visualization) {
function QueryEditCtrl($controller, $scope, $location, growl, Query, Visualization) {
// extends QueryViewCtrl
$controller('QueryViewCtrl', {$scope: $scope});
var
_queryText = $scope.query.query,
isNewQuery = !$route.current.locals.query.id;
isNewQuery = !$scope.query.id;
$scope.sourceMode = true;
$scope.isDirty = false;
@@ -36,8 +36,8 @@
if (isNewQuery) {
// save new query when creating a visualization
var unbind = $scope.$watch('selectedTab == "add"', function(newPanel) {
if (newPanel && $route.current.params.queryId == undefined) {
var unbind = $scope.$watch('selectedTab == "add"', function(triggerSave) {
if (triggerSave) {
unbind();
$scope.saveQuery();
}
@@ -47,7 +47,7 @@
};
angular.module('redash.controllers').controller('QueryEditCtrl', [
'$controller', '$scope', '$route', '$location', 'growl', 'Query',
'$controller', '$scope', '$location', 'growl', 'Query',
'Visualization', QueryEditCtrl
]);
})();

View File

@@ -19,35 +19,35 @@
$scope.queryExecuting = lock;
};
$scope.saveQuery = function(duplicate, oldId) {
if (!oldId) {
oldId = $scope.query.id;
$scope.saveQuery = function(duplicate) {
var
successMessage = "Query saved",
oldId = $scope.query.id;
if (duplicate) {
successMessage = "Query forked";
$scope.query.id = null;
$scope.query.ttl = -1;
}
delete $scope.query.latest_query_data;
$scope.query.$save(function(savedQuery) {
$scope.isDirty = false;
if (duplicate) {
growl.addSuccessMessage("Query forked");
} else {
growl.addSuccessMessage("Query saved");
if (oldId != savedQuery.id) {
// redirect to new/duplicated query page
$location.url('/queries/' + savedQuery.id + '/source#' + $location.hash()).replace();
}
if (oldId != savedQuery.id) {
$location.url($location.url().replace(oldId, savedQuery.id)).replace();
}
growl.addSuccessMessage(successMessage);
}, function(httpResponse) {
growl.addErrorMessage("Query could not be saved");
});
};
$scope.duplicateQuery = function() {
var oldId = $scope.query.id;
$scope.query.id = null;
$scope.query.ttl = -1;
$scope.saveQuery(true, oldId);
$scope.saveQuery(true);
};
$scope.executeQuery = function() {