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