From c28c086ae767bcd305f28e596f1439cff1dac353 Mon Sep 17 00:00:00 2001 From: crockwave Date: Wed, 29 Jul 2020 19:09:44 -0500 Subject: [PATCH] Setup proof-of-concept on dynamically creating soapbox config JSON object suitable for pushing into Pleroma Admin-FE --- app/soapbox/features/configuration/index.js | 54 +++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/app/soapbox/features/configuration/index.js b/app/soapbox/features/configuration/index.js index 364cc7735..83eb4ec7c 100644 --- a/app/soapbox/features/configuration/index.js +++ b/app/soapbox/features/configuration/index.js @@ -144,6 +144,60 @@ class ConfigSoapbox extends ImmutablePureComponent { getParams = () => { const { state } = this; + var obj = { + configs: [{ + group: ':pleroma', + key: ':frontend_configurations', + value: [{ + tuple: [':soapbox_fe', + { + logo: '', + banner: '', + brandColor: '', + customCss: [ + '', + ], + promoPanel: { + items: [{ + icon: '', + text: '', + url: '', + }], + }, + extensions: { + patron: false, + }, + defaultSettings: { + autoPlayGif: false, + }, + copyright: '', + navlinks: { + homeFooter: [{ + title: '', + url: '', + }], + }, + }, + ], + }], + }], + }; + obj.configs[0].value[0].tuple[1].logo = state.logo; + obj.configs[0].value[0].tuple[1].banner = state.banner; + obj.configs[0].value[0].tuple[1].brandColor = state.brandColor; + obj.configs[0].value[0].tuple[1].extensions.patron = state.patronEnabled; + obj.configs[0].value[0].tuple[1].defaultSettings.autoPlayGif = state.autoPlayGif; + obj.configs[0].value[0].tuple[1].copyright = state.copyright; + obj.configs[0].value[0].tuple[1].customCss[0] = '/instance/custom.css'; + obj.configs[0].value[0].tuple[1].customCss.push('/instance/custom2.css'); + obj.configs[0].value[0].tuple[1].promoPanel.items[0].icon = 'comment-o'; + obj.configs[0].value[0].tuple[1].promoPanel.items[0].text = 'TECI blog'; + obj.configs[0].value[0].tuple[1].promoPanel.items[0].url = 'https://www.teci.world/blog'; + obj.configs[0].value[0].tuple[1].promoPanel.items.push({ icon: 'globe', text: 'TECI web site', url: 'https://teci.world' }); + obj.configs[0].value[0].tuple[1].navlinks.homeFooter[0].title = 'About'; + obj.configs[0].value[0].tuple[1].navlinks.homeFooter[0].url = '/about'; + obj.configs[0].value[0].tuple[1].navlinks.homeFooter.push({ title: 'Terms of Service', url: '/about/tos' }); + console.log(JSON.stringify(obj, null, 2)); return Object.assign({ logo: state.logo, banner: state.banner,