From 98ad1015491be0926bafde38261510d0555ade97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Tue, 23 Apr 2019 19:16:24 +0200 Subject: [PATCH 01/10] Delete badge images from /webapp/ @tansaku @aonomike I don't know that we had those badges stored in the webapp. That's certainly not the place where they're supposed to be. Sorry for the confusion. --- webapp/static/img/badges/fundraisingbox_de_airship.svg | 1 - webapp/static/img/badges/fundraisingbox_de_alienship.svg | 1 - webapp/static/img/badges/fundraisingbox_de_balloon.svg | 1 - webapp/static/img/badges/fundraisingbox_de_bigballoon.svg | 1 - webapp/static/img/badges/fundraisingbox_de_crane.svg | 1 - webapp/static/img/badges/fundraisingbox_de_glider.svg | 1 - webapp/static/img/badges/fundraisingbox_de_helicopter.svg | 1 - webapp/static/img/badges/fundraisingbox_de_starter.svg | 1 - webapp/static/img/badges/indiegogo_en_bear.svg | 1 - webapp/static/img/badges/indiegogo_en_panda.svg | 1 - webapp/static/img/badges/indiegogo_en_rabbit.svg | 1 - webapp/static/img/badges/indiegogo_en_racoon.svg | 1 - webapp/static/img/badges/indiegogo_en_rhino.svg | 1 - webapp/static/img/badges/indiegogo_en_tiger.svg | 1 - webapp/static/img/badges/indiegogo_en_turtle.svg | 1 - webapp/static/img/badges/indiegogo_en_whale.svg | 1 - webapp/static/img/badges/indiegogo_en_wolf.svg | 1 - webapp/static/img/badges/user_role_admin.svg | 1 - webapp/static/img/badges/user_role_developer.svg | 1 - webapp/static/img/badges/user_role_moderator.svg | 1 - webapp/static/img/badges/wooold_de_bee.svg | 1 - webapp/static/img/badges/wooold_de_butterfly.svg | 1 - webapp/static/img/badges/wooold_de_double_rainbow.svg | 1 - webapp/static/img/badges/wooold_de_end_of_rainbow.svg | 1 - webapp/static/img/badges/wooold_de_flower.svg | 1 - webapp/static/img/badges/wooold_de_lifetree.svg | 1 - webapp/static/img/badges/wooold_de_magic_rainbow.svg | 1 - webapp/static/img/badges/wooold_de_super_founder.svg | 1 - 28 files changed, 28 deletions(-) delete mode 100644 webapp/static/img/badges/fundraisingbox_de_airship.svg delete mode 100644 webapp/static/img/badges/fundraisingbox_de_alienship.svg delete mode 100644 webapp/static/img/badges/fundraisingbox_de_balloon.svg delete mode 100644 webapp/static/img/badges/fundraisingbox_de_bigballoon.svg delete mode 100644 webapp/static/img/badges/fundraisingbox_de_crane.svg delete mode 100644 webapp/static/img/badges/fundraisingbox_de_glider.svg delete mode 100644 webapp/static/img/badges/fundraisingbox_de_helicopter.svg delete mode 100644 webapp/static/img/badges/fundraisingbox_de_starter.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_bear.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_panda.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_rabbit.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_racoon.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_rhino.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_tiger.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_turtle.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_whale.svg delete mode 100644 webapp/static/img/badges/indiegogo_en_wolf.svg delete mode 100644 webapp/static/img/badges/user_role_admin.svg delete mode 100644 webapp/static/img/badges/user_role_developer.svg delete mode 100644 webapp/static/img/badges/user_role_moderator.svg delete mode 100644 webapp/static/img/badges/wooold_de_bee.svg delete mode 100644 webapp/static/img/badges/wooold_de_butterfly.svg delete mode 100644 webapp/static/img/badges/wooold_de_double_rainbow.svg delete mode 100644 webapp/static/img/badges/wooold_de_end_of_rainbow.svg delete mode 100644 webapp/static/img/badges/wooold_de_flower.svg delete mode 100644 webapp/static/img/badges/wooold_de_lifetree.svg delete mode 100644 webapp/static/img/badges/wooold_de_magic_rainbow.svg delete mode 100644 webapp/static/img/badges/wooold_de_super_founder.svg diff --git a/webapp/static/img/badges/fundraisingbox_de_airship.svg b/webapp/static/img/badges/fundraisingbox_de_airship.svg deleted file mode 100644 index 078dcf4f9..000000000 --- a/webapp/static/img/badges/fundraisingbox_de_airship.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/fundraisingbox_de_alienship.svg b/webapp/static/img/badges/fundraisingbox_de_alienship.svg deleted file mode 100644 index e891c5fa9..000000000 --- a/webapp/static/img/badges/fundraisingbox_de_alienship.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/fundraisingbox_de_balloon.svg b/webapp/static/img/badges/fundraisingbox_de_balloon.svg deleted file mode 100644 index 6fc436d86..000000000 --- a/webapp/static/img/badges/fundraisingbox_de_balloon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/fundraisingbox_de_bigballoon.svg b/webapp/static/img/badges/fundraisingbox_de_bigballoon.svg deleted file mode 100644 index e2650963a..000000000 --- a/webapp/static/img/badges/fundraisingbox_de_bigballoon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/fundraisingbox_de_crane.svg b/webapp/static/img/badges/fundraisingbox_de_crane.svg deleted file mode 100644 index 4904c5ec5..000000000 --- a/webapp/static/img/badges/fundraisingbox_de_crane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/fundraisingbox_de_glider.svg b/webapp/static/img/badges/fundraisingbox_de_glider.svg deleted file mode 100644 index 0c15955de..000000000 --- a/webapp/static/img/badges/fundraisingbox_de_glider.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/fundraisingbox_de_helicopter.svg b/webapp/static/img/badges/fundraisingbox_de_helicopter.svg deleted file mode 100644 index 3a84e4466..000000000 --- a/webapp/static/img/badges/fundraisingbox_de_helicopter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/fundraisingbox_de_starter.svg b/webapp/static/img/badges/fundraisingbox_de_starter.svg deleted file mode 100644 index 99980560e..000000000 --- a/webapp/static/img/badges/fundraisingbox_de_starter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_bear.svg b/webapp/static/img/badges/indiegogo_en_bear.svg deleted file mode 100644 index 43465a0e6..000000000 --- a/webapp/static/img/badges/indiegogo_en_bear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_panda.svg b/webapp/static/img/badges/indiegogo_en_panda.svg deleted file mode 100644 index a2f211e85..000000000 --- a/webapp/static/img/badges/indiegogo_en_panda.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_rabbit.svg b/webapp/static/img/badges/indiegogo_en_rabbit.svg deleted file mode 100644 index c8c0c9727..000000000 --- a/webapp/static/img/badges/indiegogo_en_rabbit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_racoon.svg b/webapp/static/img/badges/indiegogo_en_racoon.svg deleted file mode 100644 index 619cb75f1..000000000 --- a/webapp/static/img/badges/indiegogo_en_racoon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_rhino.svg b/webapp/static/img/badges/indiegogo_en_rhino.svg deleted file mode 100644 index 71c0eb1ad..000000000 --- a/webapp/static/img/badges/indiegogo_en_rhino.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_tiger.svg b/webapp/static/img/badges/indiegogo_en_tiger.svg deleted file mode 100644 index 88583a472..000000000 --- a/webapp/static/img/badges/indiegogo_en_tiger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_turtle.svg b/webapp/static/img/badges/indiegogo_en_turtle.svg deleted file mode 100644 index 6b5431c2e..000000000 --- a/webapp/static/img/badges/indiegogo_en_turtle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_whale.svg b/webapp/static/img/badges/indiegogo_en_whale.svg deleted file mode 100644 index 458e03b6d..000000000 --- a/webapp/static/img/badges/indiegogo_en_whale.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/indiegogo_en_wolf.svg b/webapp/static/img/badges/indiegogo_en_wolf.svg deleted file mode 100644 index e4952d86f..000000000 --- a/webapp/static/img/badges/indiegogo_en_wolf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/user_role_admin.svg b/webapp/static/img/badges/user_role_admin.svg deleted file mode 100644 index 101e7458d..000000000 --- a/webapp/static/img/badges/user_role_admin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/user_role_developer.svg b/webapp/static/img/badges/user_role_developer.svg deleted file mode 100644 index 55d363c9a..000000000 --- a/webapp/static/img/badges/user_role_developer.svg +++ /dev/null @@ -1 +0,0 @@ -</> \ No newline at end of file diff --git a/webapp/static/img/badges/user_role_moderator.svg b/webapp/static/img/badges/user_role_moderator.svg deleted file mode 100644 index bb2e5fde6..000000000 --- a/webapp/static/img/badges/user_role_moderator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/wooold_de_bee.svg b/webapp/static/img/badges/wooold_de_bee.svg deleted file mode 100644 index e716c6116..000000000 --- a/webapp/static/img/badges/wooold_de_bee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/wooold_de_butterfly.svg b/webapp/static/img/badges/wooold_de_butterfly.svg deleted file mode 100644 index 6d2b83e31..000000000 --- a/webapp/static/img/badges/wooold_de_butterfly.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/wooold_de_double_rainbow.svg b/webapp/static/img/badges/wooold_de_double_rainbow.svg deleted file mode 100644 index 406001188..000000000 --- a/webapp/static/img/badges/wooold_de_double_rainbow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/wooold_de_end_of_rainbow.svg b/webapp/static/img/badges/wooold_de_end_of_rainbow.svg deleted file mode 100644 index 2ae24cb7b..000000000 --- a/webapp/static/img/badges/wooold_de_end_of_rainbow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/wooold_de_flower.svg b/webapp/static/img/badges/wooold_de_flower.svg deleted file mode 100644 index ffc4b3da4..000000000 --- a/webapp/static/img/badges/wooold_de_flower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/wooold_de_lifetree.svg b/webapp/static/img/badges/wooold_de_lifetree.svg deleted file mode 100644 index 5a89fa5f9..000000000 --- a/webapp/static/img/badges/wooold_de_lifetree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/wooold_de_magic_rainbow.svg b/webapp/static/img/badges/wooold_de_magic_rainbow.svg deleted file mode 100644 index 74df95190..000000000 --- a/webapp/static/img/badges/wooold_de_magic_rainbow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/webapp/static/img/badges/wooold_de_super_founder.svg b/webapp/static/img/badges/wooold_de_super_founder.svg deleted file mode 100644 index b437f6383..000000000 --- a/webapp/static/img/badges/wooold_de_super_founder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 5978adff68b70a757f5ec62c975ede72c96c4de8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Tue, 23 Apr 2019 19:35:41 +0200 Subject: [PATCH 02/10] Sketch a test for a custom image component @tansaku @aonomike I hope this clarifies the task. When you're done, feel free to use this component wherever we use `` in `/webapp/`. --- webapp/components/Image/index.vue | 23 +++++++++++++++++ webapp/components/Image/spec.js | 43 +++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 webapp/components/Image/index.vue create mode 100644 webapp/components/Image/spec.js diff --git a/webapp/components/Image/index.vue b/webapp/components/Image/index.vue new file mode 100644 index 000000000..de05c5eda --- /dev/null +++ b/webapp/components/Image/index.vue @@ -0,0 +1,23 @@ + + + diff --git a/webapp/components/Image/spec.js b/webapp/components/Image/spec.js new file mode 100644 index 000000000..cbc4d34cf --- /dev/null +++ b/webapp/components/Image/spec.js @@ -0,0 +1,43 @@ +import { shallowMount } from '@vue/test-utils' +import Image from '.' + +describe('Image', () => { + let propsData = { imageProps: { class: 'hc-badge', src: '' } } + + const Wrapper = () => { + return shallowMount(Image, { propsData }) + } + + it('renders', () => { + expect(Wrapper().is('img')).toBe(true) + }) + + it('passes properties down to `img`', () => { + expect(Wrapper().classes()).toEqual(['hc-badge']) + }) + + describe('given a relative `src`', () => { + beforeEach(() => { + propsData.imageProps.src = '/img/badges/fundraisingbox_de_airship.svg' + }) + + it('adds a prefix to load the image from the backend', () => { + expect(Wrapper().attributes('src')).toBe( + '/api/img/badges/fundraisingbox_de_airship.svg' + ) + }) + }) + + describe('given an absolute `src`', () => { + beforeEach(() => { + propsData.imageProps.src = 'http://lorempixel.com/640/480/animals' + }) + + it('keeps the URL as is', () => { + // e.g. our seeds have absolute image URLs + expect(Wrapper().attributes('src')).toBe( + 'http://lorempixel.com/640/480/animals' + ) + }) + }) +}) From f8ff40148cba563562b67736bdf18ea6238f0145 Mon Sep 17 00:00:00 2001 From: aonomike Date: Fri, 3 May 2019 16:21:33 +0300 Subject: [PATCH 03/10] Add implementation to prefix relative image urls with '/api' --- webapp/components/Image/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webapp/components/Image/index.vue b/webapp/components/Image/index.vue index de05c5eda..fa95ab345 100644 --- a/webapp/components/Image/index.vue +++ b/webapp/components/Image/index.vue @@ -15,8 +15,8 @@ export default { }, computed: { imageSrc() { - // TODO implement - return 'this should be an image source attribute' + const src = this.imageProps.src + return src.startsWith('/') ? src.replace('/','/api/') : src } } } From f4b054d4c5096457f8f8880f00e83d381f8a10a6 Mon Sep 17 00:00:00 2001 From: aonomike Date: Fri, 3 May 2019 20:46:58 +0300 Subject: [PATCH 04/10] Fix linting error --- webapp/components/Image/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/components/Image/index.vue b/webapp/components/Image/index.vue index fa95ab345..e2f504578 100644 --- a/webapp/components/Image/index.vue +++ b/webapp/components/Image/index.vue @@ -16,7 +16,7 @@ export default { computed: { imageSrc() { const src = this.imageProps.src - return src.startsWith('/') ? src.replace('/','/api/') : src + return src.startsWith('/') ? src.replace('/', '/api/') : src } } } From 3ff034d0140f2d4ceb653e233dec8b4b5740a1e3 Mon Sep 17 00:00:00 2001 From: aonomike Date: Tue, 7 May 2019 15:21:42 +0300 Subject: [PATCH 05/10] Refactor tags to use Image component --- webapp/components/Badges.vue | 15 ++++++++++++--- webapp/components/Empty.vue | 13 ++++++++++--- webapp/pages/login.vue | 13 +++++++++---- webapp/pages/logout.vue | 15 ++++++++++++--- webapp/pages/settings/my-social-media.vue | 13 ++++++++++--- 5 files changed, 53 insertions(+), 16 deletions(-) diff --git a/webapp/components/Badges.vue b/webapp/components/Badges.vue index d0cb30e91..b30dba309 100644 --- a/webapp/components/Badges.vue +++ b/webapp/components/Badges.vue @@ -10,22 +10,31 @@ :key="badge.key" class="hc-badge-container" > - + /> diff --git a/webapp/components/Empty.vue b/webapp/components/Empty.vue index 8755a11bd..c1044137e 100644 --- a/webapp/components/Empty.vue +++ b/webapp/components/Empty.vue @@ -5,13 +5,13 @@ :margin="margin" > - Empty
+ />
diff --git a/webapp/pages/settings/my-social-media.vue b/webapp/pages/settings/my-social-media.vue index c031f54a4..c13d0eeb5 100644 --- a/webapp/pages/settings/my-social-media.vue +++ b/webapp/pages/settings/my-social-media.vue @@ -11,12 +11,12 @@ :key="link.url" > - Social Media link + /> {{ link.url }} @@ -45,8 +45,12 @@ diff --git a/webapp/pages/settings/my-social-media.vue b/webapp/pages/settings/my-social-media.vue index c13d0eeb5..f991305a6 100644 --- a/webapp/pages/settings/my-social-media.vue +++ b/webapp/pages/settings/my-social-media.vue @@ -12,7 +12,7 @@ > Date: Thu, 9 May 2019 02:27:03 +0300 Subject: [PATCH 07/10] Refactor code based on comments from PR review --- webapp/components/Badges.vue | 7 +------ webapp/components/Empty.vue | 7 ++----- webapp/pages/settings/my-social-media.vue | 5 +---- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/webapp/components/Badges.vue b/webapp/components/Badges.vue index 9c7689aca..b28412abe 100644 --- a/webapp/components/Badges.vue +++ b/webapp/components/Badges.vue @@ -12,7 +12,7 @@ > @@ -30,11 +30,6 @@ export default { type: Array, default: () => [] } - }, - methods: { - imageProps(icon) { - return { src: icon } - } } } diff --git a/webapp/components/Empty.vue b/webapp/components/Empty.vue index 7f818e2f7..f8608c965 100644 --- a/webapp/components/Empty.vue +++ b/webapp/components/Empty.vue @@ -58,11 +58,8 @@ export default { } }, computed: { - iconPath() { - return `/img/empty/${this.icon}.svg` - }, - imageProps: { - src: iconPath + imageProps() { + return { src: `/img/empty/${this.icon}.svg` } } } } diff --git a/webapp/pages/settings/my-social-media.vue b/webapp/pages/settings/my-social-media.vue index f991305a6..a7b954182 100644 --- a/webapp/pages/settings/my-social-media.vue +++ b/webapp/pages/settings/my-social-media.vue @@ -12,7 +12,7 @@ > Date: Thu, 9 May 2019 21:04:07 +0300 Subject: [PATCH 08/10] Refactor to pass imageProps as an object without the computed section --- webapp/components/Empty.vue | 7 +------ webapp/pages/login.vue | 5 +---- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/webapp/components/Empty.vue b/webapp/components/Empty.vue index f8608c965..669676862 100644 --- a/webapp/components/Empty.vue +++ b/webapp/components/Empty.vue @@ -6,7 +6,7 @@ > diff --git a/webapp/pages/login.vue b/webapp/pages/login.vue index 537ef7d85..083c1cb71 100644 --- a/webapp/pages/login.vue +++ b/webapp/pages/login.vue @@ -33,7 +33,7 @@