From f1fd8268c8c9c4a23eee1ed532bae50c4e4132d3 Mon Sep 17 00:00:00 2001 From: Jonathan French Date: Fri, 10 Oct 2014 15:26:52 -0400 Subject: [PATCH] Bug 1074241 - Reset the internal job model position on a job clear --- webapp/app/js/controllers/main.js | 15 ++++++++++----- webapp/app/js/directives/clonejobs.js | 17 +++++++++++------ webapp/app/js/providers.js | 3 +++ webapp/app/plugins/pluginpanel.html | 2 +- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/webapp/app/js/controllers/main.js b/webapp/app/js/controllers/main.js index 3556da8d..815bdf04 100644 --- a/webapp/app/js/controllers/main.js +++ b/webapp/app/js/controllers/main.js @@ -22,10 +22,11 @@ treeherder.controller('MainCtrl', [ return "[" + ufc + "] " + $rootScope.repoName; }; - $scope.clearJob = function() { - // setting the selectedJob to null hides the bottom panel + $scope.closeJob = function() { + // setting the selectedJob to null closes the bottom panel $rootScope.selectedJob = null; }; + $scope.processKeyboardInput = function(ev){ // If the user is in an editable element or the user is pressing @@ -68,14 +69,18 @@ treeherder.controller('MainCtrl', [ } } else if (ev.keyCode === 85) { - //display only unclassified failures, keys:u + // Display only unclassified failures, keys:u $scope.toggleUnclassifiedFailures(); } else if (ev.keyCode === 27) { - // escape key closes any open top-panel and clears selected job + // Escape closes any open panels and clears the selected job $scope.setFilterPanelShowing(false); $scope.setSettingsPanelShowing(false); $scope.setSheriffPanelShowing(false); - $scope.clearJob(); + $scope.closeJob(); + $rootScope.$broadcast(thEvents.clearJobStyles, $rootScope.selectedJob); + + // Reset selected job to null to initialize nav position + ThResultSetModel.setSelectedJob($rootScope.repoName); } } }; diff --git a/webapp/app/js/directives/clonejobs.js b/webapp/app/js/directives/clonejobs.js index 99b1571c..affd44dc 100644 --- a/webapp/app/js/directives/clonejobs.js +++ b/webapp/app/js/directives/clonejobs.js @@ -134,11 +134,12 @@ treeherder.directive('thCloneJobs', [ }); - $rootScope.$on( - thEvents.selectJob, function(ev, job){ - - selectJob(job); + $rootScope.$on(thEvents.selectJob, function(ev, job) { + selectJob(job); + }); + $rootScope.$on(thEvents.clearJobStyles, function(ev, job) { + clearSelectJobStyles(); }); var selectJob = function(job){ @@ -172,7 +173,7 @@ treeherder.directive('thCloneJobs', [ }; - var clearSelectJobStyles = function(el) { + var clearSelectJobStyles = function() { var lastJobSelected = ThResultSetModel.getSelectedJob( $rootScope.repoName); @@ -197,7 +198,11 @@ treeherder.directive('thCloneJobs', [ }; var clearJobCb = function(ev, el, job) { - clearSelectJobStyles(el); + clearSelectJobStyles(); + + // Reset selected job to null to initialize nav position + ThResultSetModel.setSelectedJob($rootScope.repoName); + $rootScope.$broadcast(thEvents.jobClear, job); }; diff --git a/webapp/app/js/providers.js b/webapp/app/js/providers.js index 2b690366..52e2e380 100644 --- a/webapp/app/js/providers.js +++ b/webapp/app/js/providers.js @@ -202,6 +202,9 @@ treeherder.provider('thEvents', function() { // after loading a group of jobs jobsLoaded: "jobs-loaded-EVT", + // after deselecting a job via click outside/esc + clearJobStyles: "clear-job-styles-EVT", + // fired when a global filter has changed globalFilterChanged: "status-filter-changed-EVT", diff --git a/webapp/app/plugins/pluginpanel.html b/webapp/app/plugins/pluginpanel.html index 99fe614b..6f6ac1db 100644 --- a/webapp/app/plugins/pluginpanel.html +++ b/webapp/app/plugins/pluginpanel.html @@ -230,7 +230,7 @@
  • - +