From fc4d8703d33c0e5646f94a36c01025c948f40297 Mon Sep 17 00:00:00 2001 From: Tim Buckley Date: Wed, 25 Nov 2015 16:27:39 -0700 Subject: [PATCH] Use consistent dataset IDs in URLs. This adds new dataset parameter to the home page (defaulting to #0 as before) to ensure that the current state of the page can always be shared via URL. Additionally, the timeline route is also changed to follow the new scheme. Change-Id: Ieadd4724b24c612fbba2a614728563c1c00b92be --- app/js/controllers/home.js | 13 +++++++++++-- app/js/on_config.js | 7 +++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/js/controllers/home.js b/app/js/controllers/home.js index c2dbee6..9db50e5 100644 --- a/app/js/controllers/home.js +++ b/app/js/controllers/home.js @@ -5,16 +5,25 @@ var controllersModule = require('./_index'); /** * @ngInject */ -function HomeCtrl(datasetService) { +function HomeCtrl($scope, $state, datasetService) { // ViewModel var vm = this; - vm.focus = 0; + vm.focus = $state.params.datasetId; datasetService.list().then(function(response) { vm.tempest = response.data.tempest; }); + // update the page url as the focus id changes, but don't reload + $scope.$watch(function() { + return vm.focus; + }, function(value, old) { + if (value !== old) { + $state.go('home', { datasetId: value }, { notify: false }); + } + }); + } controllersModule.controller('HomeCtrl', HomeCtrl); diff --git a/app/js/on_config.js b/app/js/on_config.js index 8f0e020..56f1dd7 100644 --- a/app/js/on_config.js +++ b/app/js/on_config.js @@ -5,17 +5,16 @@ */ function OnConfig($stateProvider, $locationProvider, $urlRouterProvider) { - $locationProvider.html5Mode(true); - $stateProvider.state('home', { - url: '/', + url: '/{datasetId:int}', + params: { datasetId: 0 }, controller: 'HomeCtrl as home', templateUrl: 'home.html', title: 'Home' }); $stateProvider.state('timeline', { - url: '/timeline/{datasetId:int}', + url: '/{datasetId:int}/timeline', controller: 'TimelineCtrl as timeline', templateUrl: 'timeline.html', title: 'Timeline'