mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
Update plugins page builder with new data server builder
This commit is contained in:
parent
03be53bdaf
commit
0730bcdb0e
2 changed files with 15 additions and 29 deletions
|
|
@ -12,7 +12,7 @@ from .utils.widgets import (
|
|||
)
|
||||
from .utils.table import add_column
|
||||
from .utils.format import get_fields_from_field
|
||||
from typing import Optional
|
||||
from typing import List, Optional
|
||||
|
||||
columns = [
|
||||
add_column(title="Name", field="name", formatter="text"),
|
||||
|
|
@ -23,7 +23,7 @@ columns = [
|
|||
]
|
||||
|
||||
|
||||
def plugins_filter(types: Optional[list] = None) -> list:
|
||||
def plugins_filter(types: List[str]) -> list:
|
||||
filters = [
|
||||
{
|
||||
"type": "like",
|
||||
|
|
@ -47,7 +47,7 @@ def plugins_filter(types: Optional[list] = None) -> list:
|
|||
}
|
||||
]
|
||||
|
||||
if types is not None and (isinstance(types, list) and len(types) >= 2):
|
||||
if len(types) >= 2:
|
||||
filters.append(
|
||||
{
|
||||
"type": "=",
|
||||
|
|
@ -165,24 +165,26 @@ def fallback_message(msg: str, display: Optional[list] = None) -> dict:
|
|||
}
|
||||
|
||||
|
||||
def plugins_list(plugins: Optional[list] = None, types: Optional[list] = None) -> dict:
|
||||
def plugins_list(plugins: Optional[list] = None) -> dict:
|
||||
|
||||
if plugins is None or (isinstance(plugins, list) and len(plugins) == 0):
|
||||
if not plugins:
|
||||
return fallback_message(msg="plugins_not_found")
|
||||
|
||||
items = []
|
||||
types = set()
|
||||
|
||||
for plugin in plugins:
|
||||
items.append(
|
||||
plugin_item(
|
||||
name=plugin["name"],
|
||||
name=plugin["id"],
|
||||
version=plugin["version"],
|
||||
description=plugin["description"],
|
||||
is_deletable=plugin["is_deletable"],
|
||||
page=plugin["page"],
|
||||
is_deletable=plugin["method"] == "ui",
|
||||
page=f"/plugins/{plugin['id']}" if plugin["page"] else "",
|
||||
plugin_type=plugin["type"],
|
||||
)
|
||||
)
|
||||
types.add(plugin["type"])
|
||||
|
||||
return {
|
||||
"type": "card",
|
||||
|
|
@ -198,11 +200,11 @@ def plugins_list(plugins: Optional[list] = None, types: Optional[list] = None) -
|
|||
layout="fitColumns",
|
||||
columns=columns,
|
||||
items=items,
|
||||
filters=plugins_filter(types=types),
|
||||
filters=plugins_filter(list(types)),
|
||||
),
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def plugins_builder(plugins: Optional[list] = None, types: Optional[list] = None) -> list:
|
||||
return [plugins_list(plugins=plugins, types=types)]
|
||||
def plugins_builder(plugins: Optional[list] = None) -> list:
|
||||
return [plugins_list(plugins=plugins)]
|
||||
|
|
|
|||
|
|
@ -305,25 +305,9 @@ def plugins_page():
|
|||
if tmp_ui_path.is_dir():
|
||||
rmtree(tmp_ui_path, ignore_errors=True)
|
||||
|
||||
db_plugins = current_app.bw_config.get_plugins()
|
||||
plugins = []
|
||||
types = set()
|
||||
db_plugins = current_app.db.get_plugins()
|
||||
|
||||
for plugin in db_plugins:
|
||||
plugins.append(
|
||||
{
|
||||
"name": plugin["id"],
|
||||
"version": plugin["version"],
|
||||
"description": plugin["description"],
|
||||
"type": plugin["type"],
|
||||
"is_deletable": plugin["type"] == "ui",
|
||||
"page": f"/plugins/{plugin['id']}" if plugin["page"] else "",
|
||||
}
|
||||
)
|
||||
|
||||
types.add(plugin["type"])
|
||||
|
||||
builder = plugins_builder(plugins, list(types))
|
||||
builder = plugins_builder(db_plugins)
|
||||
return render_template("plugins.html", data_server_builder=b64encode(dumps(builder).encode("utf-8")).decode("ascii"))
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue