diff --git a/source/scripts/services/poems.js.coffee b/source/scripts/services/poems.js.coffee index 4f40b53..d91b75e 100644 --- a/source/scripts/services/poems.js.coffee +++ b/source/scripts/services/poems.js.coffee @@ -1,4 +1,4 @@ -angular.module("sideBySide").service "poems", ['fetch', (fetch) -> +angular.module("sideBySide").service "poems", ['fetch', 'route', (fetch, route) -> @all = [{ meta: { Active: true @@ -36,7 +36,8 @@ angular.module("sideBySide").service "poems", ['fetch', (fetch) -> @load = (base) => fetch(base).then (config) => config.fetchPoems.then (poems) => - @all = (activize(poem, config.display) for poem in poems) + display = route.params.display or config.display + @all = (activize(poem, display) for poem in poems) @heading = config.heading @ diff --git a/source/scripts/services/route.js.coffee b/source/scripts/services/route.js.coffee index 54a25e1..a7ff35c 100644 --- a/source/scripts/services/route.js.coffee +++ b/source/scripts/services/route.js.coffee @@ -22,9 +22,16 @@ angular.module("sideBySide").service "route", ['$location', ($location) -> @appUrl = $location.absUrl() .substring(0, $location.absUrl().length - $location.url().length) + getValue = (value) -> + if (typeof value == 'object') + for key, val of value + # only works for one key... + return key + ":" + val.join(',') + value + @update = (key, value) -> @params[key] = value - $location.path (property + ':' + value for property, value of @params).join('/') + $location.path (property + ':' + getValue(value) for property, value of @params).join('/') @ ] diff --git a/source/tests/services/poems.js.coffee b/source/tests/services/poems.js.coffee index 085927e..99c35cb 100644 --- a/source/tests/services/poems.js.coffee +++ b/source/tests/services/poems.js.coffee @@ -2,7 +2,10 @@ poems = {} module "poems", { setup: () -> - poems = injector.get "poems" + angular.module("sideBySide").service("route", () -> + @params = { 'display': 'asdf' } + ) + poems = angular.injector(['ng', 'sideBySide']).get('poems') } test "has default content", () ->