From e3710b75bc52680f0f08ded5df1655f51f90e538 Mon Sep 17 00:00:00 2001 From: Alexander Heimbuch Date: Sun, 8 Oct 2017 17:56:38 +0200 Subject: [PATCH] fix(contributors): Filter list of contributors - #440 --- docs/embedding.md | 40 ++++++++-- docs/error.md | 40 ++++++++-- docs/fixtures/example.json | 40 ++++++++-- docs/playground.md | 101 +++++++++++------------- docs/standalone.html | 40 ++++++++-- src/components/header/Header.vue | 4 + src/store/reducers/components.test.js | 23 +++--- src/store/reducers/contributors.js | 6 +- src/store/reducers/contributors.test.js | 15 +++- 9 files changed, 210 insertions(+), 99 deletions(-) diff --git a/docs/embedding.md b/docs/embedding.md index cf26d7877..05af972f1 100644 --- a/docs/embedding.md +++ b/docs/embedding.md @@ -113,17 +113,41 @@ The _podlovePlayer_ returns a promise with a redux store as a result that can be share: '//podlove-player.surge.sh/share' }, contributors: [{ - avatar: 'https://freakshow.fm/wp-content/cache/podlove/47/08928e3c26dcb1141d67ad75869619/tim-pritlove_50x50.jpg', - name: 'Tim Pritlove' + name: 'Tim Pritlove', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/47\/08928e3c26dcb1141d67ad75869619\/tim-pritlove_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/0f/9c18f5e825496b9060337f92814142/clemens-schrimpe_50x50.jpg', - name: ' Clemens Schrimpe' + name: 'Clemens Schrimpe', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/0f\/9c18f5e825496b9060337f92814142\/clemens-schrimpe_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/8e/f30cbe274c3f5e43dc4a7219676f50/hukl_50x50.jpg', - name: 'hukl' + name: 'hukl', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/8e\/f30cbe274c3f5e43dc4a7219676f50\/hukl_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/b2/425e5c8f180ddf548c95be1c2d7bcf/denis-ahrens_50x50.jpg', - name: 'Denis Ahrens' + name: 'Denis Ahrens', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b2\/425e5c8f180ddf548c95be1c2d7bcf\/denis-ahrens_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null + }, { + name: 'David Scribane', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b3\/c8cc8a1989aa0fc4488d473517b1ee\/david-scribane_150x150.jpg', + role: { id: '7', slug: 'composition', title: 'Komposition' }, + group: { id: '3', slug: 'support', title: 'Support' }, + comment: null + }, { + name: 'Xenim Streaming Network', + avatar: 'https:\/\/freakshow.fm\/podlove\/image\/687474703a2f2f6d6574612e6d6574616562656e652e6d652f6d656469612f6d6574616562656e652f636f6e7472696275746f72732f78656e696d2d73747265616d696e672d6e6574776f726b2e706e67\/150\/150\/0\/xenim-streaming-network', + role: { id: '10', slug: 'streaming', title: 'Streaming' }, + group: { id: '3', slug: 'support', title: 'Support' }, + comment: null }] }); diff --git a/docs/error.md b/docs/error.md index faacb000a..3d0492d78 100644 --- a/docs/error.md +++ b/docs/error.md @@ -61,17 +61,41 @@ navigation: 7 share: '//podlove-player.surge.sh/share' }, contributors: [{ - avatar: 'https://freakshow.fm/wp-content/cache/podlove/47/08928e3c26dcb1141d67ad75869619/tim-pritlove_50x50.jpg', - name: 'Tim Pritlove' + name: 'Tim Pritlove', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/47\/08928e3c26dcb1141d67ad75869619\/tim-pritlove_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/0f/9c18f5e825496b9060337f92814142/clemens-schrimpe_50x50.jpg', - name: ' Clemens Schrimpe' + name: 'Clemens Schrimpe', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/0f\/9c18f5e825496b9060337f92814142\/clemens-schrimpe_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/8e/f30cbe274c3f5e43dc4a7219676f50/hukl_50x50.jpg', - name: 'hukl' + name: 'hukl', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/8e\/f30cbe274c3f5e43dc4a7219676f50\/hukl_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/b2/425e5c8f180ddf548c95be1c2d7bcf/denis-ahrens_50x50.jpg', - name: 'Denis Ahrens' + name: 'Denis Ahrens', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b2\/425e5c8f180ddf548c95be1c2d7bcf\/denis-ahrens_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null + }, { + name: 'David Scribane', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b3\/c8cc8a1989aa0fc4488d473517b1ee\/david-scribane_150x150.jpg', + role: { id: '7', slug: 'composition', title: 'Komposition' }, + group: { id: '3', slug: 'support', title: 'Support' }, + comment: null + }, { + name: 'Xenim Streaming Network', + avatar: 'https:\/\/freakshow.fm\/podlove\/image\/687474703a2f2f6d6574612e6d6574616562656e652e6d652f6d656469612f6d6574616562656e652f636f6e7472696275746f72732f78656e696d2d73747265616d696e672d6e6574776f726b2e706e67\/150\/150\/0\/xenim-streaming-network', + role: { id: '10', slug: 'streaming', title: 'Streaming' }, + group: { id: '3', slug: 'support', title: 'Support' }, + comment: null }] }; diff --git a/docs/fixtures/example.json b/docs/fixtures/example.json index 83b6f4646..f7f7c7888 100644 --- a/docs/fixtures/example.json +++ b/docs/fixtures/example.json @@ -66,16 +66,40 @@ "origin": "//podlove-player.surge.sh" }, "contributors": [{ - "avatar": "https://freakshow.fm/wp-content/cache/podlove/47/08928e3c26dcb1141d67ad75869619/tim-pritlove_50x50.jpg", - "name": "Tim Pritlove" + "name": "Tim Pritlove", + "avatar": "https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/47\/08928e3c26dcb1141d67ad75869619\/tim-pritlove_150x150.jpg", + "role": { "id": "9", "slug": "team", "title": "Team" }, + "group": { "id": "1", "slug": "onair", "title": "On Air" }, + "comment": null }, { - "avatar": "https://freakshow.fm/wp-content/cache/podlove/0f/9c18f5e825496b9060337f92814142/clemens-schrimpe_50x50.jpg", - "name": "Clemens Schrimpe" + "name": "Clemens Schrimpe", + "avatar": "https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/0f\/9c18f5e825496b9060337f92814142\/clemens-schrimpe_150x150.jpg", + "role": { "id": "9", "slug": "team", "title": "Team" }, + "group": { "id": "1", "slug": "onair", "title": "On Air" }, + "comment": null }, { - "avatar": "https://freakshow.fm/wp-content/cache/podlove/8e/f30cbe274c3f5e43dc4a7219676f50/hukl_50x50.jpg", - "name": "hukl" + "name": "hukl", + "avatar": "https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/8e\/f30cbe274c3f5e43dc4a7219676f50\/hukl_150x150.jpg", + "role": { "id": "9", "slug": "team", "title": "Team" }, + "group": { "id": "1", "slug": "onair", "title": "On Air" }, + "comment": null }, { - "avatar": "https://freakshow.fm/wp-content/cache/podlove/b2/425e5c8f180ddf548c95be1c2d7bcf/denis-ahrens_50x50.jpg", - "name": "Denis Ahrens" + "name": "Denis Ahrens", + "avatar": "https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b2\/425e5c8f180ddf548c95be1c2d7bcf\/denis-ahrens_150x150.jpg", + "role": { "id": "9", "slug": "team", "title": "Team" }, + "group": { "id": "1", "slug": "onair", "title": "On Air" }, + "comment": null + }, { + "name": "David Scribane", + "avatar": "https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b3\/c8cc8a1989aa0fc4488d473517b1ee\/david-scribane_150x150.jpg", + "role": { "id": "7", "slug": "composition", "title": "Komposition" }, + "group": { "id": "3", "slug": "support", "title": "Support" }, + "comment": null + }, { + "name": "Xenim Streaming Network", + "avatar": "https:\/\/freakshow.fm\/podlove\/image\/687474703a2f2f6d6574612e6d6574616562656e652e6d652f6d656469612f6d6574616562656e652f636f6e7472696275746f72732f78656e696d2d73747265616d696e672d6e6574776f726b2e706e67\/150\/150\/0\/xenim-streaming-network", + "role": { "id": "1"," slug": "streaming", "title": "Streaming" }, + "group": { "id": "3", "slug": "support", "title": "Support" }, + "comment": null }] } diff --git a/docs/playground.md b/docs/playground.md index 02a12e193..c2538f534 100644 --- a/docs/playground.md +++ b/docs/playground.md @@ -84,18 +84,42 @@ navigation: 7 runtime: { language: 'en' }, - contributors: [{ - avatar: 'https://freakshow.fm/wp-content/cache/podlove/47/08928e3c26dcb1141d67ad75869619/tim-pritlove_50x50.jpg', - name: 'Tim Pritlove' + contributors: [{ + name: 'Tim Pritlove', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/47\/08928e3c26dcb1141d67ad75869619\/tim-pritlove_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/0f/9c18f5e825496b9060337f92814142/clemens-schrimpe_50x50.jpg', - name: 'Clemens Schrimpe' + name: 'Clemens Schrimpe', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/0f\/9c18f5e825496b9060337f92814142\/clemens-schrimpe_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/8e/f30cbe274c3f5e43dc4a7219676f50/hukl_50x50.jpg', - name: 'hukl' + name: 'hukl', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/8e\/f30cbe274c3f5e43dc4a7219676f50\/hukl_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/b2/425e5c8f180ddf548c95be1c2d7bcf/denis-ahrens_50x50.jpg', - name: 'Denis Ahrens' + name: 'Denis Ahrens', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b2\/425e5c8f180ddf548c95be1c2d7bcf\/denis-ahrens_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null + }, { + name: 'David Scribane', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b3\/c8cc8a1989aa0fc4488d473517b1ee\/david-scribane_150x150.jpg', + role: { id: '7', slug: 'composition', title: 'Komposition' }, + group: { id: '3', slug: 'support', title: 'Support' }, + comment: null + }, { + name: 'Xenim Streaming Network', + avatar: 'https:\/\/freakshow.fm\/podlove\/image\/687474703a2f2f6d6574612e6d6574616562656e652e6d652f6d656469612f6d6574616562656e652f636f6e7472696275746f72732f78656e696d2d73747265616d696e672d6e6574776f726b2e706e67\/150\/150\/0\/xenim-streaming-network', + role: { id: '10', slug: 'streaming', title: 'Streaming' }, + group: { id: '3', slug: 'support', title: 'Support' }, + comment: null }], tabs: { chapters: false, @@ -104,51 +128,20 @@ navigation: 7 download: false, info: false }, - components: { - header: { - info: false, - error: false - }, - controls: { - button: { - visible:true, - variant: { - loading: false, - replay: false, - duration: true, - remaining: false, - retry: false, - playing: false, - pause: false - } - }, - chapters: false, - steppers: false - }, - progressbar: { - visible: false - }, - tabs: { - chapters: { - visible: false - }, - share: { - visible: false - }, - audio: { - visible: false, - volume: false, - rate: false - }, - download: { - visible: false - }, - info: { - visible:false - } - } - } - + visibleComponents: [ + 'tabInfo', + 'tabChapters', + 'tabDownload', + 'tabAudio', + 'tabShare', + 'poster', + 'showTitle', + 'episodeTitle', + 'subtitle', + 'progressbar', + 'controlSteppers', + 'controlChapters' + ] }; function loadEditor(store) { diff --git a/docs/standalone.html b/docs/standalone.html index bd62b99f7..c6fc1198f 100644 --- a/docs/standalone.html +++ b/docs/standalone.html @@ -75,17 +75,41 @@ origin: '//podlove-player.surge.sh/standalone.html' }, contributors: [{ - avatar: 'https://freakshow.fm/wp-content/cache/podlove/47/08928e3c26dcb1141d67ad75869619/tim-pritlove_50x50.jpg', - name: 'Tim Pritlove' + name: 'Tim Pritlove', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/47\/08928e3c26dcb1141d67ad75869619\/tim-pritlove_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/0f/9c18f5e825496b9060337f92814142/clemens-schrimpe_50x50.jpg', - name: ' Clemens Schrimpe' + name: 'Clemens Schrimpe', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/0f\/9c18f5e825496b9060337f92814142\/clemens-schrimpe_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/8e/f30cbe274c3f5e43dc4a7219676f50/hukl_50x50.jpg', - name: 'hukl' + name: 'hukl', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/8e\/f30cbe274c3f5e43dc4a7219676f50\/hukl_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null }, { - avatar: 'https://freakshow.fm/wp-content/cache/podlove/b2/425e5c8f180ddf548c95be1c2d7bcf/denis-ahrens_50x50.jpg', - name: 'Denis Ahrens' + name: 'Denis Ahrens', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b2\/425e5c8f180ddf548c95be1c2d7bcf\/denis-ahrens_150x150.jpg', + role: { id: '9', slug: 'team', title: 'Team' }, + group: { id: '1', slug: 'onair', title: 'On Air' }, + comment: null + }, { + name: 'David Scribane', + avatar: 'https:\/\/freakshow.fm\/wp-content\/cache\/podlove\/b3\/c8cc8a1989aa0fc4488d473517b1ee\/david-scribane_150x150.jpg', + role: { id: '7', slug: 'composition', title: 'Komposition' }, + group: { id: '3', slug: 'support', title: 'Support' }, + comment: null + }, { + name: 'Xenim Streaming Network', + avatar: 'https:\/\/freakshow.fm\/podlove\/image\/687474703a2f2f6d6574612e6d6574616562656e652e6d652f6d656469612f6d6574616562656e652f636f6e7472696275746f72732f78656e696d2d73747265616d696e672d6e6574776f726b2e706e67\/150\/150\/0\/xenim-streaming-network', + role: { id: '10', slug: 'streaming', title: 'Streaming' }, + group: { id: '3', slug: 'support', title: 'Support' }, + comment: null }] } diff --git a/src/components/header/Header.vue b/src/components/header/Header.vue index 924d0321f..9d26d1a77 100644 --- a/src/components/header/Header.vue +++ b/src/components/header/Header.vue @@ -37,5 +37,9 @@ .header { padding: $padding $padding 0 $padding; overflow: hidden; + + &:empty { + padding: 0; + } } diff --git a/src/store/reducers/components.test.js b/src/store/reducers/components.test.js index a738e1a3e..9b597b87d 100644 --- a/src/store/reducers/components.test.js +++ b/src/store/reducers/components.test.js @@ -7,7 +7,8 @@ test.beforeEach(() => { uiState = { header: { info: false, - error: false + error: false, + poster: false }, controls: { button: { @@ -314,13 +315,17 @@ test(`visibleComponents: it loads all visibleComponents on default`, t => { }) t.deepEqual(result, { - 'tabInfo': true, - 'tabChapters': true, - 'tabDownload': true, - 'tabAudio': true, - 'tabShare': true, - 'progressbar': true, - 'controlSteppers': true, - 'controlChapters': true + tabInfo: true, + tabChapters: true, + tabDownload: true, + tabAudio: true, + tabShare: true, + progressbar: true, + controlSteppers: true, + controlChapters: true, + episodeTitle: true, + poster: true, + showTitle: true, + subtitle: true }) }) diff --git a/src/store/reducers/contributors.js b/src/store/reducers/contributors.js index dff0fcb99..908bf1633 100644 --- a/src/store/reducers/contributors.js +++ b/src/store/reducers/contributors.js @@ -3,7 +3,11 @@ import { get } from 'lodash' const contributors = (state = [], action) => { switch (action.type) { case 'INIT': - return get(action.payload, 'contributors', []) + const available = get(action.payload, 'contributors', []) + + return available.filter(contributor => + get(contributor, 'group.slug') === 'onair' + ) default: return state } diff --git a/src/store/reducers/contributors.test.js b/src/store/reducers/contributors.test.js index 68a8fe5d9..7642d2c08 100644 --- a/src/store/reducers/contributors.test.js +++ b/src/store/reducers/contributors.test.js @@ -7,7 +7,13 @@ test.beforeEach(t => { testAction = { type: 'INIT', payload: { - contributors: ['foo', 'bar'] + contributors: [{ + name: 'foo', + group: { slug: 'onair' } + }, { + name: 'bar', + group: { slug: 'team' } + }] } } }) @@ -16,10 +22,13 @@ test(`contributors: it is a reducer function`, t => { t.is(typeof contributors, 'function') }) -test(`contributors: it sets the contributors on INIT`, t => { +test(`contributors: it sets the onair contributors on INIT`, t => { const result = contributors(undefined, testAction) - t.deepEqual(result, ['foo', 'bar']) + t.deepEqual(result, [{ + name: 'foo', + group: { slug: 'onair' } + }]) }) test(`contributors: it does nothing if not a registered action is dispatched`, t => {