{ "widgettype": "VBox", "options": { "width": "100%", "height": "100%", "padding": "20px" }, "subwidgets": [ { "widgettype": "Text", "options": { "text": "Add New Service", "fontSize": "24px", "fontWeight": "bold", "marginBottom": "20px", "color": "#F8FAFC" } }, { "widgettype": "Form", "id": "add-service-form", "options": { "fields": [ { "name": "name", "label": "Service Name", "uitype": "str", "required": true, "placeholder": "Enter service name" }, { "name": "url", "label": "Service URL", "uitype": "str", "required": true, "placeholder": "http://localhost:8080" }, { "name": "description", "label": "Description", "uitype": "str", "placeholder": "Optional description" } ] } }, { "widgettype": "HBox", "options": { "width": "100%", "height": "auto", "marginTop": "20px", "gap": "10px" }, "subwidgets": [ { "widgettype": "Button", "options": { "text": "Add Service", "icon": "fa fa-plus", "backgroundColor": "#22C55E", "color": "#FFFFFF", "border": "none", "borderRadius": "6px", "padding": "10px 20px" }, "binds": [ { "wid": "self", "event": "click", "actiontype": "script", "script": "const formData = bricks.app.get_widget('add-service-form').get_data(); if (formData.name && formData.url) { fetch('/hermes-web-cli/services', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }).then(response => response.json()).then(data => { bricks.app.load_widget('{{entire_url(\"services.ui\")}}', 'main-content', 'replace'); }); }" } ] }, { "widgettype": "Button", "options": { "text": "Cancel", "backgroundColor": "#64748B", "color": "#FFFFFF", "border": "none", "borderRadius": "6px", "padding": "10px 20px" }, "binds": [ { "wid": "self", "event": "click", "actiontype": "urlwidget", "target": "main-content", "options": { "url": "{{entire_url('services.ui')}}" }, "mode": "replace" } ] } ] } ] }