anchor.diff:  		}
   	});
   
  -	viewModel.save = function() {
  +	viewModel.save = function(shouldReturnPromise) {
  +		if (shouldReturnPromise === undefined) {
  +			shouldReturnPromise = false;
  +		}
  +
   		viewModel.saveProgress.start("<%= data[:strings][:main][:load_progress][:saving] %>");
   
  -		return $q.all([$q(function(resolve, reject) {
  +		var promise = $q.all([$q(function(resolve, reject) {
   			switch (viewModel.currentMenu.id) {
   				case "workflows":
   				case "env-vars":
  
positive.code: 			}
  
  			Popup.showConfirmPopup("<%= data[:strings][:main][:confirm_tab_change_save_popup][:title] %>", "<%= data[:strings][:main][:confirm_tab_change_save_popup][:details] %>", "<%= data[:strings][:main][:confirm_tab_change_save_popup][:save] %>", "<%= data[:strings][:main][:confirm_tab_change_save_popup][:cancel] %>", function() {
  				viewModel.save().then(function() {
  					resolve();
  				}, function(error) {
  					reject();
  
negative.code: 			viewModel.saveProgress.reset();
  			Popup.showErrorPopup("<%= data[:strings][:main][:load_progress][:save_error] %>", error.message);
  
  			if (shouldReturnPromise) {
  				return $q.reject(error);
  			}
  		});
  
  		if (shouldReturnPromise) {
  			return promise;
  		}
  	};
  
  	viewModel.isSaveEnabled = function() {
  