diff --git a/app/templates/ui/app/root/root.controller.js b/app/templates/ui/app/root/root.controller.js index 15bacbfa..acc32a3e 100644 --- a/app/templates/ui/app/root/root.controller.js +++ b/app/templates/ui/app/root/root.controller.js @@ -4,11 +4,12 @@ angular.module('app.root') .controller('RootCtrl', RootCtrl); - RootCtrl.$inject = ['messageBoardService']; + RootCtrl.$inject = ['$state', 'messageBoardService']; - function RootCtrl(messageBoardService) { + function RootCtrl($state, messageBoardService) { var ctrl = this; angular.extend(ctrl, { + currentState: $state.current.name, messageBoardService: messageBoardService }); } diff --git a/app/templates/ui/app/root/root.html b/app/templates/ui/app/root/root.html index 4f395ce3..751c0094 100644 --- a/app/templates/ui/app/root/root.html +++ b/app/templates/ui/app/root/root.html @@ -6,13 +6,17 @@ +

Sample App

diff --git a/app/templates/ui/app/search/search.controller.js b/app/templates/ui/app/search/search.controller.js index 6f1dfca0..2db528e0 100644 --- a/app/templates/ui/app/search/search.controller.js +++ b/app/templates/ui/app/search/search.controller.js @@ -3,21 +3,54 @@ 'use strict'; angular.module('app.search') + .factory('SearchModel', SearchModel) .controller('SearchCtrl', SearchCtrl); - SearchCtrl.$inject = ['$scope', '$location', 'userService', 'MLSearchFactory']; + SearchModel.$inject = ['MLSearchFactory']; + SearchCtrl.$inject = ['$scope', '$location', 'userService', 'SearchModel']; // inherit from MLSearchController var superCtrl = MLSearchController.prototype; SearchCtrl.prototype = Object.create(superCtrl); - function SearchCtrl($scope, $location, userService, searchFactory) { - var ctrl = this; + function SearchModel(searchFactory) { var mlSearch = searchFactory.newContext(); + return { + mlSearch: mlSearch, + response: null + }; + } + + function SearchCtrl($scope, $location, userService, searchModel) { + var ctrl = this; + var mlSearch = searchModel.mlSearch; superCtrl.constructor.call(ctrl, $scope, $location, mlSearch); - ctrl.init(); + (function init() { + //do not inherit method on purpose due to if statement + + // monitor URL params changes (forward/back, etc.) + ctrl.$scope.$on('$locationChangeSuccess', ctrl.locationChange.bind(ctrl)); + + // capture initial URL params in mlSearch and ctrl + if ( ctrl.parseExtraURLParams ) { + ctrl.parseExtraURLParams(); + } + + if (searchModel.response) { + ctrl.updateSearchResults(searchModel.response); + ctrl.updateURLParams(); + } else { + ctrl.mlSearch.fromParams().then( ctrl._search.bind(ctrl) ); + } + })(); + + ctrl.updateSearchResults = function updateSearchResults(data) { + superCtrl.updateSearchResults.apply(ctrl, arguments); + searchModel.response = data; + return this; + }; ctrl.setSnippet = function(type) { mlSearch.setSnippet(type);