fix(settingui): Limit desc table length.
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
from typing import Optional
|
||||||
|
|
||||||
from settings import ModelData
|
from settings import ModelData
|
||||||
from settings.setting_types import StringSetting, BoolSetting
|
from settings.setting_types import StringSetting, BoolSetting
|
||||||
@@ -23,11 +24,11 @@ class LocaleSetting(StringSetting):
|
|||||||
"Enter a supported language (e.g. 'en-GB')."
|
"Enter a supported language (e.g. 'en-GB')."
|
||||||
)
|
)
|
||||||
|
|
||||||
def _desc_table(self) -> list[str]:
|
def _desc_table(self, show_value: Optional[str] = None) -> list[tuple[str, str]]:
|
||||||
translator = ctx_translator.get()
|
translator = ctx_translator.get()
|
||||||
t = translator.t
|
t = translator.t
|
||||||
|
|
||||||
lines = super()._desc_table()
|
lines = super()._desc_table(show_value=show_value)
|
||||||
lines.append((
|
lines.append((
|
||||||
t(_p(
|
t(_p(
|
||||||
'settype:locale|summary_table|field:supported|key',
|
'settype:locale|summary_table|field:supported|key',
|
||||||
|
|||||||
@@ -188,8 +188,8 @@ class MemberAdminSettings(SettingGroup):
|
|||||||
self.value = editor_data
|
self.value = editor_data
|
||||||
await self.write()
|
await self.write()
|
||||||
|
|
||||||
def _desc_table(self) -> list[str]:
|
def _desc_table(self, show_value: Optional[str] = None) -> list[tuple[str, str]]:
|
||||||
lines = super()._desc_table()
|
lines = super()._desc_table(show_value=show_value)
|
||||||
t = ctx_translator.get().t
|
t = ctx_translator.get().t
|
||||||
keydescs = [
|
keydescs = [
|
||||||
(key, t(value)) for key, value in self._subkey_desc.items()
|
(key, t(value)) for key, value in self._subkey_desc.items()
|
||||||
@@ -313,8 +313,8 @@ class MemberAdminSettings(SettingGroup):
|
|||||||
self.value = editor_data
|
self.value = editor_data
|
||||||
await self.write()
|
await self.write()
|
||||||
|
|
||||||
def _desc_table(self) -> list[str]:
|
def _desc_table(self, show_value: Optional[str] = None) -> list[tuple[str, str]]:
|
||||||
lines = super()._desc_table()
|
lines = super()._desc_table(show_value=show_value)
|
||||||
t = ctx_translator.get().t
|
t = ctx_translator.get().t
|
||||||
keydescs = [
|
keydescs = [
|
||||||
(key, t(value)) for key, value in self._subkey_desc_returning.items()
|
(key, t(value)) for key, value in self._subkey_desc_returning.items()
|
||||||
|
|||||||
@@ -310,6 +310,22 @@ class InteractiveSetting(BaseSetting[ParentID, SettingData, SettingValue]):
|
|||||||
"""
|
"""
|
||||||
name = self.display_name
|
name = self.display_name
|
||||||
value = f"{self.long_desc}\n{self.desc_table}"
|
value = f"{self.long_desc}\n{self.desc_table}"
|
||||||
|
if len(value) > 1024:
|
||||||
|
t = ctx_translator.get().t
|
||||||
|
desc_table = '\n'.join(
|
||||||
|
tabulate(
|
||||||
|
*self._desc_table(
|
||||||
|
show_value=t(_p(
|
||||||
|
'setting|embed_field|too_long',
|
||||||
|
"Too long to display here!"
|
||||||
|
))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
value = f"{self.long_desc}\n{desc_table}"
|
||||||
|
if len(value) > 1024:
|
||||||
|
# Forcibly trim
|
||||||
|
value = value[:1020] + '...'
|
||||||
return {'name': name, 'value': value}
|
return {'name': name, 'value': value}
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -341,14 +357,14 @@ class InteractiveSetting(BaseSetting[ParentID, SettingData, SettingValue]):
|
|||||||
embed.description = "{}\n{}".format(self.long_desc.format(self=self), self.desc_table)
|
embed.description = "{}\n{}".format(self.long_desc.format(self=self), self.desc_table)
|
||||||
return embed
|
return embed
|
||||||
|
|
||||||
def _desc_table(self) -> list[str]:
|
def _desc_table(self, show_value: Optional[str] = None) -> list[tuple[str, str]]:
|
||||||
t = ctx_translator.get().t
|
t = ctx_translator.get().t
|
||||||
lines = []
|
lines = []
|
||||||
|
|
||||||
# Currently line
|
# Currently line
|
||||||
lines.append((
|
lines.append((
|
||||||
t(_p('setting|summary_table|field:currently|key', "Currently")),
|
t(_p('setting|summary_table|field:currently|key', "Currently")),
|
||||||
self.formatted or self.notset_str
|
show_value or (self.formatted or self.notset_str)
|
||||||
))
|
))
|
||||||
|
|
||||||
# Default line
|
# Default line
|
||||||
@@ -380,7 +396,7 @@ class InteractiveSetting(BaseSetting[ParentID, SettingData, SettingValue]):
|
|||||||
return TextInput(
|
return TextInput(
|
||||||
label=self.display_name,
|
label=self.display_name,
|
||||||
placeholder=self.accepts,
|
placeholder=self.accepts,
|
||||||
default=self.input_formatted,
|
default=self.input_formatted[:4000],
|
||||||
required=self._required
|
required=self._required
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user