2
0
Fork 0

fix: cleanup logic for appinfo/configure

so tailbone can inherit this view and extend
This commit is contained in:
Lance Edgar 2024-08-20 23:01:46 -05:00
parent 1b4aaacc10
commit a34b01a6c4
2 changed files with 72 additions and 71 deletions

View file

@ -46,15 +46,16 @@
<h3 class="block is-size-3">User/Auth</h3> <h3 class="block is-size-3">User/Auth</h3>
<div class="block" style="padding-left: 2rem; width: 50%;"> <div class="block" style="padding-left: 2rem; width: 50%;">
<b-field> <div style="display: flex; align-items: center;">
<b-checkbox name="wuttaweb.home_redirect_to_login" <b-checkbox name="wuttaweb.home_redirect_to_login"
v-model="simpleSettings['wuttaweb.home_redirect_to_login']" v-model="simpleSettings['wuttaweb.home_redirect_to_login']"
native-value="true" native-value="true"
@input="settingsNeedSaved = true"> @input="settingsNeedSaved = true">
Home Page auto-redirect to Login Home Page auto-redirect to Login
<b-tooltip position="is-right"> </b-checkbox>
<${b}-tooltip position="${'right' if request.use_oruga else 'is-right'}">
<b-icon pack="fas" icon="info-circle" /> <b-icon pack="fas" icon="info-circle" />
<template v-slot:content> <template #content>
<p class="block"> <p class="block">
If set, show the Login page instead of Home page for Anonymous users. If set, show the Login page instead of Home page for Anonymous users.
</p> </p>
@ -67,9 +68,8 @@
If not set, Anonymous users will see the Home page without being redirected. If not set, Anonymous users will see the Home page without being redirected.
</p> </p>
</template> </template>
</b-tooltip> </${b}-tooltip>
</b-checkbox> </div>
</b-field>
</div> </div>

View file

@ -28,7 +28,6 @@ import json
import os import os
import sys import sys
import subprocess import subprocess
from collections import OrderedDict from collections import OrderedDict
from wuttjamaican.db.model import Setting from wuttjamaican.db.model import Setting
@ -67,6 +66,9 @@ class AppInfoView(MasterView):
'editable_project_location', 'editable_project_location',
] ]
# TODO: for tailbone backward compat with get_liburl() etc.
weblib_config_prefix = None
def get_grid_data(self, columns=None, session=None): def get_grid_data(self, columns=None, session=None):
""" """ """ """
@ -93,57 +95,9 @@ class AppInfoView(MasterView):
g.sort_multiple = False g.sort_multiple = False
def configure_get_simple_settings(self): def get_weblibs(self):
""" """ """ """
return [ return OrderedDict([
# basics
{'name': f'{self.app.appname}.app_title'},
{'name': f'{self.app.appname}.node_type'},
{'name': f'{self.app.appname}.node_title'},
{'name': f'{self.app.appname}.production',
'type': bool},
# user/auth
{'name': 'wuttaweb.home_redirect_to_login',
'type': bool, 'default': False},
# web libs
{'name': 'wuttaweb.libver.vue'},
{'name': 'wuttaweb.liburl.vue'},
{'name': 'wuttaweb.libver.vue_resource'},
{'name': 'wuttaweb.liburl.vue_resource'},
{'name': 'wuttaweb.libver.buefy'},
{'name': 'wuttaweb.liburl.buefy'},
{'name': 'wuttaweb.libver.buefy.css'},
{'name': 'wuttaweb.liburl.buefy.css'},
{'name': 'wuttaweb.libver.fontawesome'},
{'name': 'wuttaweb.liburl.fontawesome'},
{'name': 'wuttaweb.libver.bb_vue'},
{'name': 'wuttaweb.liburl.bb_vue'},
{'name': 'wuttaweb.libver.bb_oruga'},
{'name': 'wuttaweb.liburl.bb_oruga'},
{'name': 'wuttaweb.libver.bb_oruga_bulma'},
{'name': 'wuttaweb.liburl.bb_oruga_bulma'},
{'name': 'wuttaweb.libver.bb_oruga_bulma_css'},
{'name': 'wuttaweb.liburl.bb_oruga_bulma_css'},
{'name': 'wuttaweb.libver.bb_fontawesome_svg_core'},
{'name': 'wuttaweb.liburl.bb_fontawesome_svg_core'},
{'name': 'wuttaweb.libver.bb_free_solid_svg_icons'},
{'name': 'wuttaweb.liburl.bb_free_solid_svg_icons'},
{'name': 'wuttaweb.libver.bb_vue_fontawesome'},
{'name': 'wuttaweb.liburl.bb_vue_fontawesome'},
]
def configure_get_context(self, **kwargs):
""" """
# normal context
context = super().configure_get_context(**kwargs)
# we will add `weblibs` to context, based on config values
weblibs = OrderedDict([
('vue', "(Vue2) Vue"), ('vue', "(Vue2) Vue"),
('vue_resource', "(Vue2) vue-resource"), ('vue_resource', "(Vue2) vue-resource"),
('buefy', "(Vue2) Buefy"), ('buefy', "(Vue2) Buefy"),
@ -158,6 +112,48 @@ class AppInfoView(MasterView):
('bb_vue_fontawesome', "(Vue3) @fortawesome/vue-fontawesome"), ('bb_vue_fontawesome', "(Vue3) @fortawesome/vue-fontawesome"),
]) ])
def configure_get_simple_settings(self):
""" """
simple_settings = [
# basics
{'name': f'{self.app.appname}.app_title'},
{'name': f'{self.app.appname}.node_type'},
{'name': f'{self.app.appname}.node_title'},
{'name': f'{self.app.appname}.production',
'type': bool},
# user/auth
{'name': 'wuttaweb.home_redirect_to_login',
'type': bool, 'default': False},
]
def getval(key):
return self.config.get(f'wuttaweb.{key}')
weblibs = self.get_weblibs()
for key, title in weblibs.items():
simple_settings.append({
'name': f'wuttaweb.libver.{key}',
'default': getval(f'libver.{key}'),
})
simple_settings.append({
'name': f'wuttaweb.liburl.{key}',
'default': getval(f'liburl.{key}'),
})
return simple_settings
def configure_get_context(self, **kwargs):
""" """
# normal context
context = super().configure_get_context(**kwargs)
# we will add `weblibs` to context, based on config values
weblibs = self.get_weblibs()
for key in weblibs: for key in weblibs:
title = weblibs[key] title = weblibs[key]
weblibs[key] = { weblibs[key] = {
@ -167,13 +163,18 @@ class AppInfoView(MasterView):
# nb. these values are exactly as configured, and are # nb. these values are exactly as configured, and are
# used for editing the settings # used for editing the settings
'configured_version': get_libver(self.request, key, 'configured_version': get_libver(self.request, key,
prefix=self.weblib_config_prefix,
configured_only=True), configured_only=True),
'configured_url': get_liburl(self.request, key, 'configured_url': get_liburl(self.request, key,
prefix=self.weblib_config_prefix,
configured_only=True), configured_only=True),
# nb. these are for display only # nb. these are for display only
'default_version': get_libver(self.request, key, default_only=True), 'default_version': get_libver(self.request, key,
'live_url': get_liburl(self.request, key), prefix=self.weblib_config_prefix,
default_only=True),
'live_url': get_liburl(self.request, key,
prefix=self.weblib_config_prefix),
} }
context['weblibs'] = list(weblibs.values()) context['weblibs'] = list(weblibs.values())