mirror of
https://github.com/getredash/redash.git
synced 2026-05-09 03:03:08 -04:00
[#138] simplify saveQuery, drop $route dependency
This commit is contained in:
@@ -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
|
||||
]);
|
||||
})();
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user