fix: view_assets form submit — use script bind instead of urlwidget
Remove submit_url + submited/urlwidget pattern (event.params is Response object, not widget descriptor, causes silent failure). Replace with submit event + actiontype:script that manually POSTs form data via fetch() and renders response widget tree via bricks.widgetBuild.
This commit is contained in:
parent
2440be759d
commit
f94207dd86
@ -18,7 +18,6 @@
|
|||||||
"widgettype": "Form",
|
"widgettype": "Form",
|
||||||
"id": "view_assets_form",
|
"id": "view_assets_form",
|
||||||
"options": {
|
"options": {
|
||||||
"submit_url": "{{entire_url('api/submit_list_assets.dspy')}}",
|
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"uitype": "code",
|
"uitype": "code",
|
||||||
@ -35,13 +34,10 @@
|
|||||||
"binds": [
|
"binds": [
|
||||||
{
|
{
|
||||||
"wid": "self",
|
"wid": "self",
|
||||||
"event": "submited",
|
"event": "submit",
|
||||||
"actiontype": "urlwidget",
|
"actiontype": "script",
|
||||||
"target": "app.rl_asset_results",
|
"target": "self",
|
||||||
"options": {
|
"script": "(async function(){var form=bricks.getWidgetById('view_assets_form',bricks.app);if(!form)return;var vals=form._getValue();var params=new URLSearchParams();for(var k in vals){if(vals[k]!==undefined&&vals[k]!==null)params.append(k,vals[k])}var url=bricks.app.baseUrl+'/reallife_asset/api/submit_list_assets.dspy?_webbricks_=1';var resp=await fetch(url,{method:'POST',body:params});var desc=await resp.json();var target=bricks.getWidgetById('rl_asset_results',bricks.app);if(!target)return;if(target.destroy_subwidgets)target.destroy_subwidgets();target.subwidgets=[];target.el.innerHTML='';if(desc&&desc.widgettype){await bricks.widgetBuild(desc,target)}})()"
|
||||||
"method": "POST"
|
|
||||||
},
|
|
||||||
"mode": "replace"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user