diff --git a/bricks/dataviewer.js b/bricks/dataviewer.js index cc0dba2..f58c4fa 100644 --- a/bricks/dataviewer.js +++ b/bricks/dataviewer.js @@ -150,18 +150,18 @@ bricks.DataViewer = class extends bricks.VBox { this.add_widget(this.toolbar_w); this.toolbar_w.bind('command', this.command_event_handle.bind(this)); } - command_event_handle(event){ + async command_event_handle(event){ var tdesc = event.params; if (tdesc.selected_row && ! this.select_row){ bricks.show_error({title:'Error', message:'need select a row'}); return; } if (tdesc.name == 'add'){ - this.add_record(); + await this.add_record(); return; } if (tdesc.name == 'update'){ - this.update_record(this.select_row); + await this.update_record(this.select_row); return; } if (tdesc.name == 'delete'){ @@ -207,28 +207,57 @@ bricks.DataViewer = class extends bricks.VBox { } return fs; } - add_record(info){ + async build_editform(data){ var hidefields = []; if (!this.data_params){ this.data_params = {} } + var opts = this.opts.editor || {}; + opts.widgettype = 'Form'; + var submit_url = this.editable.new_data_url; + if (data) { + submit_url = this.editable.update_data_url; + } + opts.options = { + submit_url: submit_url, + width: '100%', + height: '100%' + }; var fs = this.get_hidefields(); for (var i=0;i