mirror of
https://github.com/wassname/side-by-side.git
synced 2026-09-09 11:34:24 +08:00
Custom top filtering links
This commit is contained in:
@@ -21,6 +21,8 @@ html(ng-app="sideBySide" ng-controller="AppController")
|
||||
// top menu
|
||||
.pure-menu.pure-menu-open.pure-menu-horizontal.menu-main
|
||||
ul
|
||||
li(ng-repeat="link in links")
|
||||
a(href="" ng-click="display(link.display)" ng-bind-html="link.text")
|
||||
li
|
||||
a(href="" ng-click="showPage('help')") Help
|
||||
li
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
angular.module("sideBySide").controller "AppController",
|
||||
['$scope', 'ngDialog', 'poems'
|
||||
($scope, ngDialog, poems) ->
|
||||
['$scope', 'ngDialog', 'filter', 'poems'
|
||||
($scope, ngDialog, filter, poems) ->
|
||||
$scope.title = =>
|
||||
sbs = 'Side By Side viewer'
|
||||
if poems.config.title
|
||||
@@ -8,6 +8,17 @@ angular.module("sideBySide").controller "AppController",
|
||||
else
|
||||
sbs
|
||||
|
||||
$scope.$watchCollection ->
|
||||
poems.config
|
||||
, ->
|
||||
if 'links' of poems.config
|
||||
$scope.links = poems.config.links.map (link) ->
|
||||
link.display = JSON.stringify link.display
|
||||
link
|
||||
|
||||
$scope.display = (encoded) ->
|
||||
filter.setFilter JSON.parse encoded
|
||||
|
||||
$scope.showPage = (page) ->
|
||||
ngDialog.open {
|
||||
template: 'partials/' + page + '.html'
|
||||
|
||||
@@ -5,6 +5,13 @@ angular.module("sideBySide").service "filter",
|
||||
@update = ->
|
||||
extractHeaders poems.all
|
||||
|
||||
@setFilter = (filter) ->
|
||||
for key, values of filter
|
||||
null
|
||||
|
||||
poems.all.map (poem) ->
|
||||
poem.meta.Active = poem.meta[key] in values
|
||||
|
||||
@getFilter = ->
|
||||
encodings = []
|
||||
for header in headers
|
||||
|
||||
@@ -70,3 +70,17 @@ test "get filter for arbitrary poems using shortest key", ->
|
||||
deepEqual filter.getFilter(), {
|
||||
'Code': [ 'vrch', 'muz' ]
|
||||
}
|
||||
|
||||
test "set filter", ->
|
||||
setPoems()
|
||||
poemList.vrch.meta.Active = true
|
||||
filter.update()
|
||||
filter.setFilter {
|
||||
'Language': [ 'English' ]
|
||||
}
|
||||
|
||||
equal poemList.vrch.meta.Active, false
|
||||
equal poemList.poe.meta.Active, true
|
||||
deepEqual filter.getFilter(), {
|
||||
'Code': [ 'poe' ]
|
||||
}
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
{
|
||||
"title": "The Raven",
|
||||
"links": [{
|
||||
"text": "English",
|
||||
"display": { "Language": [ "en" ] }
|
||||
}, {
|
||||
"text": "Česky",
|
||||
"display": { "Language": [ "cs" ] }
|
||||
}, {
|
||||
"text": "Polski",
|
||||
"display": { "Language": [ "pl" ] }
|
||||
}],
|
||||
"files": [
|
||||
"1845-poe.md",
|
||||
"1881-vrchlicky.md",
|
||||
@@ -9,7 +19,5 @@
|
||||
"1910-barbara-beaupre.md",
|
||||
"1970-baranczak.md"
|
||||
],
|
||||
"display": {
|
||||
"Language": [ "cs" ]
|
||||
}
|
||||
"display": { "Language": [ "cs" ] }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user