fix: location.href for all nav, no mixed JS/server state, card width:100%
- All filter buttons use location.href with fully server-constructed URLs
No more mixing {{active_provider}} (stale server var) with dynamic JS state
- SearchBar, category, provider, pagination all use location.href pattern
- Card uses width:100% (fill DynamicColumn slot) + cheight:14 (fixed height)
- Model plaza root is VBox (not VScrollPanel), scroll delegated to cards area
This commit is contained in:
parent
a1a6a583e3
commit
31119554d4
@ -3,9 +3,10 @@
|
|||||||
{% set active_search = params_kw.get('search', '') %}
|
{% set active_search = params_kw.get('search', '') %}
|
||||||
{% set catelogs = get_llmcatelogs() %}
|
{% set catelogs = get_llmcatelogs() %}
|
||||||
{% set providers = get_llmproviders() %}
|
{% set providers = get_llmproviders() %}
|
||||||
|
{% set base = entire_url('model_plaza.ui') %}
|
||||||
{
|
{
|
||||||
"widgettype": "VScrollPanel",
|
"widgettype": "VBox",
|
||||||
"options": {"css": "filler", "width": "100%", "height": "100%"},
|
"options": {"css": "filler", "width": "100%", "height": "100%", "gap": "8px"},
|
||||||
"subwidgets": [
|
"subwidgets": [
|
||||||
{
|
{
|
||||||
"widgettype": "VBox",
|
"widgettype": "VBox",
|
||||||
@ -22,12 +23,11 @@
|
|||||||
"placeholder": "搜索模型名称或描述...",
|
"placeholder": "搜索模型名称或描述...",
|
||||||
"value": "{{active_search}}",
|
"value": "{{active_search}}",
|
||||||
"search_label": "搜索",
|
"search_label": "搜索",
|
||||||
"clear_label": "清除",
|
"clear_label": "清除"
|
||||||
"width": "100%"
|
|
||||||
},
|
},
|
||||||
"binds": [{
|
"binds": [{
|
||||||
"wid": "self", "event": "search", "actiontype": "script", "target": "self",
|
"wid": "self", "event": "search", "actiontype": "script", "target": "self",
|
||||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{active_provider}}&catelogid={{active_catelog}}&search='+encodeURIComponent(event.keyword||'');rw.show_widget();}"
|
"script": "location.href='{{base}}?providerid={{active_provider}}&catelogid={{active_catelog}}&search='+encodeURIComponent(event.keyword||'');"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -45,7 +45,7 @@
|
|||||||
},
|
},
|
||||||
"binds": [{
|
"binds": [{
|
||||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{active_provider}}&search={{active_search}}';rw.show_widget();}"
|
"script": "location.href='{{base}}?providerid={{active_provider}}&search={{active_search}}';"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
{% for c in catelogs %}
|
{% for c in catelogs %}
|
||||||
@ -58,7 +58,7 @@
|
|||||||
},
|
},
|
||||||
"binds": [{
|
"binds": [{
|
||||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{active_provider}}&catelogid={{c.id}}&search={{active_search}}';rw.show_widget();}"
|
"script": "location.href='{{base}}?providerid={{active_provider}}&catelogid={{c.id}}&search={{active_search}}';"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -93,7 +93,7 @@
|
|||||||
},
|
},
|
||||||
"binds": [{
|
"binds": [{
|
||||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?catelogid={{active_catelog}}&search={{active_search}}';rw.show_widget();}"
|
"script": "location.href='{{base}}?catelogid={{active_catelog}}&search={{active_search}}';"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
{% for p in providers %}
|
{% for p in providers %}
|
||||||
@ -106,7 +106,7 @@
|
|||||||
},
|
},
|
||||||
"binds": [{
|
"binds": [{
|
||||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{p.providerid}}&catelogid={{active_catelog}}&search={{active_search}}';rw.show_widget();}"
|
"script": "location.href='{{base}}?providerid={{p.providerid}}&catelogid={{active_catelog}}&search={{active_search}}';"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
{% set start = (page - 1) * page_size %}
|
{% set start = (page - 1) * page_size %}
|
||||||
{% set end = [start + page_size, total] | min %}
|
{% set end = [start + page_size, total] | min %}
|
||||||
{% set data = all_data[start:end] %}
|
{% set data = all_data[start:end] %}
|
||||||
|
{% set base = entire_url('model_plaza.ui') %}
|
||||||
{% set ns = namespace(first=true) %}
|
{% set ns = namespace(first=true) %}
|
||||||
{
|
{
|
||||||
"widgettype": "VBox",
|
"widgettype": "VBox",
|
||||||
@ -33,7 +34,7 @@
|
|||||||
"widgettype": "VBox",
|
"widgettype": "VBox",
|
||||||
"options": {
|
"options": {
|
||||||
"css": "card plaza-card",
|
"css": "card plaza-card",
|
||||||
"cwidth": 22,
|
"width": "100%",
|
||||||
"cheight": 14
|
"cheight": 14
|
||||||
},
|
},
|
||||||
"subwidgets": [
|
"subwidgets": [
|
||||||
@ -131,7 +132,7 @@
|
|||||||
"options": {"label": "上一页", "cwidth": 10},
|
"options": {"label": "上一页", "cwidth": 10},
|
||||||
"binds": [{
|
"binds": [{
|
||||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{providerid}}&catelogid={{catelogid}}&search={{search}}&page={{page - 1}}';rw.show_widget();}"
|
"script": "location.href='{{base}}?providerid={{providerid}}&catelogid={{catelogid}}&search={{search}}&page={{page - 1}}';"
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -142,7 +143,7 @@
|
|||||||
"options": {"label": "下一页", "cwidth": 10},
|
"options": {"label": "下一页", "cwidth": 10},
|
||||||
"binds": [{
|
"binds": [{
|
||||||
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
"wid": "self", "event": "click", "actiontype": "script", "target": "self",
|
||||||
"script": "var rw=bricks.getWidgetById('plaza_cards',bricks.app);if(rw){rw.opts.url='{{entire_url('plaza_model_cards.ui')}}?providerid={{providerid}}&catelogid={{catelogid}}&search={{search}}&page={{page + 1}}';rw.show_widget();}"
|
"script": "location.href='{{base}}?providerid={{providerid}}&catelogid={{catelogid}}&search={{search}}&page={{page + 1}}';"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user