From eaea95078c2c0f14a2cf09a3530264f7520a909e Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Wed, 1 Nov 2017 17:56:03 -0700 Subject: [PATCH] fix url tab bug with configure tabs --- .../admin/controllers/admin-form.client.controller.js | 11 +++++++++-- public/modules/forms/config/forms.client.config.js | 9 +++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/public/modules/forms/admin/controllers/admin-form.client.controller.js b/public/modules/forms/admin/controllers/admin-form.client.controller.js index fd5e3e58..7326426a 100644 --- a/public/modules/forms/admin/controllers/admin-form.client.controller.js +++ b/public/modules/forms/admin/controllers/admin-form.client.controller.js @@ -64,12 +64,19 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$windo ]; $scope.go = function(tab){ - $state.go(tab.route); + var currParentState = $state.current.name.split('.').slice(0,2).join('.'); + var tabParentState = tab.route.split('.').slice(0,2).join('.'); + + if(currParentState !== tabParentState && tabParentState !== 'viewForm.configure.general'){ + $state.go(tab.route); + } }; function setActiveTab() { $scope.tabData.forEach(function(tab) { - tab.active = ($state.current.name === tab.route); + var currentTabState = $state.current.name.split('.').slice(0,2).join('.'); + var tabRouteState = tab.route.split('.').slice(0,2).join('.'); + tab.active = (currentTabState === tabRouteState); if(tab.active && tab.route === 'viewForm.design'){ $scope.designTabActive = true; diff --git a/public/modules/forms/config/forms.client.config.js b/public/modules/forms/config/forms.client.config.js index 013c3b92..64da7c2c 100644 --- a/public/modules/forms/config/forms.client.config.js +++ b/public/modules/forms/config/forms.client.config.js @@ -6,6 +6,15 @@ angular.module('forms').run(['Menus', // Set top bar menu items Menus.addMenuItem('topbar', 'My Forms', 'forms', '', '/forms', false); } +]).run(['$rootScope', '$state', + function($rootScope, $state) { + $rootScope.$on('$stateChangeStart', function(evt, to, params) { + if (to.redirectTo) { + evt.preventDefault(); + $state.go(to.redirectTo, params) + } + }); + } ]).filter('secondsToDateTime', [function() { return function(seconds) { return new Date(1970, 0, 1).setSeconds(seconds);