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
This commit is contained in:
Tim Buckley 2015-11-25 16:27:39 -07:00
parent 9b6d1ffbeb
commit fc4d8703d3
2 changed files with 14 additions and 6 deletions

View File

@ -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);

View File

@ -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'