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 catelogs = get_llmcatelogs() %}
|
||||
{% set providers = get_llmproviders() %}
|
||||
{% set base = entire_url('model_plaza.ui') %}
|
||||
{
|
||||
"widgettype": "VScrollPanel",
|
||||
"options": {"css": "filler", "width": "100%", "height": "100%"},
|
||||
"widgettype": "VBox",
|
||||
"options": {"css": "filler", "width": "100%", "height": "100%", "gap": "8px"},
|
||||
"subwidgets": [
|
||||
{
|
||||
"widgettype": "VBox",
|
||||
@ -22,12 +23,11 @@
|
||||
"placeholder": "搜索模型名称或描述...",
|
||||
"value": "{{active_search}}",
|
||||
"search_label": "搜索",
|
||||
"clear_label": "清除",
|
||||
"width": "100%"
|
||||
"clear_label": "清除"
|
||||
},
|
||||
"binds": [{
|
||||
"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": [{
|
||||
"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 %}
|
||||
@ -58,7 +58,7 @@
|
||||
},
|
||||
"binds": [{
|
||||
"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 %}
|
||||
@ -93,7 +93,7 @@
|
||||
},
|
||||
"binds": [{
|
||||
"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 %}
|
||||
@ -106,7 +106,7 @@
|
||||
},
|
||||
"binds": [{
|
||||
"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 %}
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
{% set start = (page - 1) * page_size %}
|
||||
{% set end = [start + page_size, total] | min %}
|
||||
{% set data = all_data[start:end] %}
|
||||
{% set base = entire_url('model_plaza.ui') %}
|
||||
{% set ns = namespace(first=true) %}
|
||||
{
|
||||
"widgettype": "VBox",
|
||||
@ -33,7 +34,7 @@
|
||||
"widgettype": "VBox",
|
||||
"options": {
|
||||
"css": "card plaza-card",
|
||||
"cwidth": 22,
|
||||
"width": "100%",
|
||||
"cheight": 14
|
||||
},
|
||||
"subwidgets": [
|
||||
@ -131,7 +132,7 @@
|
||||
"options": {"label": "上一页", "cwidth": 10},
|
||||
"binds": [{
|
||||
"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 %}
|
||||
@ -142,7 +143,7 @@
|
||||
"options": {"label": "下一页", "cwidth": 10},
|
||||
"binds": [{
|
||||
"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 %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user