bugfix
This commit is contained in:
parent
29e3fab227
commit
324612d67b
@ -150,18 +150,18 @@ bricks.DataViewer = class extends bricks.VBox {
|
|||||||
this.add_widget(this.toolbar_w);
|
this.add_widget(this.toolbar_w);
|
||||||
this.toolbar_w.bind('command', this.command_event_handle.bind(this));
|
this.toolbar_w.bind('command', this.command_event_handle.bind(this));
|
||||||
}
|
}
|
||||||
command_event_handle(event){
|
async command_event_handle(event){
|
||||||
var tdesc = event.params;
|
var tdesc = event.params;
|
||||||
if (tdesc.selected_row && ! this.select_row){
|
if (tdesc.selected_row && ! this.select_row){
|
||||||
bricks.show_error({title:'Error', message:'need select a row'});
|
bricks.show_error({title:'Error', message:'need select a row'});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (tdesc.name == 'add'){
|
if (tdesc.name == 'add'){
|
||||||
this.add_record();
|
await this.add_record();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (tdesc.name == 'update'){
|
if (tdesc.name == 'update'){
|
||||||
this.update_record(this.select_row);
|
await this.update_record(this.select_row);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (tdesc.name == 'delete'){
|
if (tdesc.name == 'delete'){
|
||||||
@ -207,28 +207,57 @@ bricks.DataViewer = class extends bricks.VBox {
|
|||||||
}
|
}
|
||||||
return fs;
|
return fs;
|
||||||
}
|
}
|
||||||
add_record(info){
|
async build_editform(data){
|
||||||
var hidefields = [];
|
var hidefields = [];
|
||||||
if (!this.data_params){
|
if (!this.data_params){
|
||||||
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();
|
var fs = this.get_hidefields();
|
||||||
for (var i=0;i<this.fields.length;i++){
|
for (var i=0;i<this.fields.length;i++){
|
||||||
fs.push(this.fields[i]);
|
var f = bricks.extend({}, this.fields[i]);
|
||||||
|
if (data){
|
||||||
|
f.value = data[f.name];
|
||||||
|
}
|
||||||
|
fields.push(f);
|
||||||
}
|
}
|
||||||
var f = new bricks.ModalForm({
|
opts.options.fields = fs
|
||||||
|
var title = "Add record";
|
||||||
|
if (data){
|
||||||
|
title = "Edit record";
|
||||||
|
}
|
||||||
|
var f = new bricks.PopupWindow({
|
||||||
|
"title": title,
|
||||||
"widget":this,
|
"widget":this,
|
||||||
"archor":"cc",
|
"archor":"cc",
|
||||||
"movable":true,
|
"movable":true,
|
||||||
"resizable":true,
|
"resizable":true,
|
||||||
"archor":"cc",
|
"archor":"cc",
|
||||||
"width":"90%",
|
"width":"90%",
|
||||||
"height":"70%",
|
"height":"70%"
|
||||||
"submit_url":this.editable.new_data_url,
|
|
||||||
"fields":fs
|
|
||||||
});
|
});
|
||||||
|
var form = await bricks.widgetBuild(opts, this);
|
||||||
|
form.bind('cancel', f.dismiss.bind(f));
|
||||||
|
f.add_widget(form);
|
||||||
f.open();
|
f.open();
|
||||||
f.bind('submited', this.add_record_finish.bind(this, f));
|
return {
|
||||||
|
win: f,
|
||||||
|
form:form
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async add_record(){
|
||||||
|
var widgets = await build_editform(null);
|
||||||
|
widgets.form.bind('submited', this.add_record_finish.bind(this, widgets.win));
|
||||||
}
|
}
|
||||||
async add_record_finish(f, event){
|
async add_record_finish(f, event){
|
||||||
f.dismiss();
|
f.dismiss();
|
||||||
@ -237,29 +266,10 @@ bricks.DataViewer = class extends bricks.VBox {
|
|||||||
var desc = await resp.json();
|
var desc = await resp.json();
|
||||||
var w = await bricks.widgetBuild(desc);
|
var w = await bricks.widgetBuild(desc);
|
||||||
}
|
}
|
||||||
update_record(){
|
async update_record(){
|
||||||
var record = this.select_row.user_data;
|
var record = this.select_row.user_data;
|
||||||
var fields = this.get_hidefields();
|
var widgets = await build_editform(record);
|
||||||
for (var i=0; i< this.fields.length; i++){
|
widgets.form.bind('submited', this.update_record_finish.bind(this, widgets.win));
|
||||||
var f = bricks.extend({}, this.fields[i]);
|
|
||||||
f.value = record[f.name];
|
|
||||||
fields.push(f);
|
|
||||||
}
|
|
||||||
var f = new bricks.ModalForm({
|
|
||||||
"widget":this,
|
|
||||||
"movable":true,
|
|
||||||
"resizable":true,
|
|
||||||
"archor":"cc",
|
|
||||||
"width":"90%",
|
|
||||||
"height":"70%",
|
|
||||||
"submit_url":this.editable.update_data_url+'?id=' + record.id,
|
|
||||||
"fields":fields
|
|
||||||
});
|
|
||||||
f.open();
|
|
||||||
f.bind('submited', this.update_record_finish.bind(this, f));
|
|
||||||
}
|
|
||||||
update_cancel(f){
|
|
||||||
f.dismiss();
|
|
||||||
}
|
}
|
||||||
async update_record_finish(form, event){
|
async update_record_finish(form, event){
|
||||||
await this.renew_record_view(form, this.select_row);
|
await this.renew_record_view(form, this.select_row);
|
||||||
|
@ -46,6 +46,7 @@ bricks.FieldGroup = class {
|
|||||||
if (w){
|
if (w){
|
||||||
box.add_widget(w);
|
box.add_widget(w);
|
||||||
form.name_inputs[fields[i].name] = w;
|
form.name_inputs[fields[i].name] = w;
|
||||||
|
w.set_id(fields[i].name);
|
||||||
} else {
|
} else {
|
||||||
bricks.debug(fields[i], 'createInput failed');
|
bricks.debug(fields[i], 'createInput failed');
|
||||||
}
|
}
|
||||||
|
@ -959,14 +959,19 @@ bricks.UiCode =class extends bricks.UiType {
|
|||||||
}
|
}
|
||||||
this.build_options(this.opts.data);
|
this.build_options(this.opts.data);
|
||||||
}
|
}
|
||||||
|
async loadData(params){
|
||||||
|
var _params = bricks.extend({}, this.opts.params);
|
||||||
|
bricks.extend(_params, params);
|
||||||
|
await this.load_data(_params);
|
||||||
|
}
|
||||||
async get_data(event){
|
async get_data(event){
|
||||||
var params = this.opts.params;
|
var params = this.opts.params;
|
||||||
if(event){
|
if(event){
|
||||||
bricks.extend(params, event.params);
|
bricks.extend(params, event.params);
|
||||||
}
|
}
|
||||||
await this.loadData(params);
|
await this.load_data(params);
|
||||||
}
|
}
|
||||||
async loadData(params){
|
async load_data(params){
|
||||||
var jc = new bricks.HttpJson();
|
var jc = new bricks.HttpJson();
|
||||||
var d = await jc.httpcall(this.opts.dataurl,
|
var d = await jc.httpcall(this.opts.dataurl,
|
||||||
{
|
{
|
||||||
|
@ -129,7 +129,7 @@ bricks.HttpText = class {
|
|||||||
params: opts.params});
|
params: opts.params});
|
||||||
if (fetchResult.status == 401 && bricks.app.login_url){
|
if (fetchResult.status == 401 && bricks.app.login_url){
|
||||||
console.log('go to login')
|
console.log('go to login')
|
||||||
return await this.withLoginInfo(url, _params);
|
return await this.withLoginInfo(url, opts.params);
|
||||||
}
|
}
|
||||||
if (fetchResult.status == 403){
|
if (fetchResult.status == 403){
|
||||||
var w = new bricks.Error({
|
var w = new bricks.Error({
|
||||||
|
@ -183,11 +183,12 @@ bricks.ModalForm = class extends bricks.PopupWindow {
|
|||||||
description:
|
description:
|
||||||
fields:
|
fields:
|
||||||
user_data:
|
user_data:
|
||||||
|
binds:
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
constructor(opts){
|
constructor(opts){
|
||||||
super(opts);
|
super(opts);
|
||||||
this.build_form();
|
schedule_once(this.build_form.bind(this), 0.2);
|
||||||
}
|
}
|
||||||
_getValue(){
|
_getValue(){
|
||||||
return this.form._getValue();
|
return this.form._getValue();
|
||||||
@ -195,17 +196,21 @@ bricks.ModalForm = class extends bricks.PopupWindow {
|
|||||||
getValue(){
|
getValue(){
|
||||||
return this.form.getValue();
|
return this.form.getValue();
|
||||||
}
|
}
|
||||||
build_form(){
|
async build_form(){
|
||||||
var opts = {
|
var opts = {
|
||||||
height:'100%',
|
widgettype: "Form",
|
||||||
title:this.opts.title,
|
options:{
|
||||||
description:this.opts.description,
|
height:'100%',
|
||||||
fields:this.opts.fields
|
title:this.opts.title,
|
||||||
|
description:this.opts.description,
|
||||||
|
fields:this.opts.fields,
|
||||||
|
binds:this.opts.binds || []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.submit_url){
|
if (this.submit_url){
|
||||||
opts.submit_url = this.submit_url;
|
opts.submit_url = this.submit_url;
|
||||||
}
|
}
|
||||||
this.form = new bricks.Form(opts);
|
this.form = await bricks.widgetBuild(opts, this);
|
||||||
this.add_widget(this.form);
|
this.add_widget(this.form);
|
||||||
this.form.bind('submit', this.form_submit.bind(this));
|
this.form.bind('submit', this.form_submit.bind(this));
|
||||||
this.form.bind('submited', this.form_submited.bind(this));
|
this.form.bind('submited', this.form_submited.bind(this));
|
||||||
|
@ -88,7 +88,6 @@ bricks.StatedSvg = class extends bricks.Svg {
|
|||||||
this.state = this.states[0].state;
|
this.state = this.states[0].state;
|
||||||
}
|
}
|
||||||
var url = this.set_state(this.state);
|
var url = this.set_state(this.state);
|
||||||
this.set_url(url);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
set_state(state){
|
set_state(state){
|
||||||
|
@ -115,13 +115,13 @@ bricks.TreeNode = class extends bricks.VBox {
|
|||||||
widget.add_widget(this.check_w);
|
widget.add_widget(this.check_w);
|
||||||
this.check_w.bind('changed', this.tree.node_checked.bind(this.tree, this))
|
this.check_w.bind('changed', this.tree.node_checked.bind(this.tree, this))
|
||||||
}
|
}
|
||||||
var icon_url = self.this.icons_urls.leaf;
|
var icon_url = this.icons_urls.leaf;
|
||||||
if (this.is_leaf) icon_url = this.icons_urls.leaf;
|
if (this.is_leaf) icon_url = this.icons_urls.leaf;
|
||||||
else if (this.node_state == 'expand') this.icon_url = this.icons_urls.open;
|
else if (this.node_state == 'expand') this.icon_url = this.icons_urls.open;
|
||||||
else this.icon_url = this.icons_urls.close;
|
else this.icon_url = this.icons_urls.close;
|
||||||
var img = new bricks.Svg({
|
var img = new bricks.Svg({
|
||||||
rate:1,
|
rate:1,
|
||||||
url:icon
|
url:this.icon_url
|
||||||
});
|
});
|
||||||
widget.add_widget(img);
|
widget.add_widget(img);
|
||||||
if (this.tree.node_view){
|
if (this.tree.node_view){
|
||||||
@ -246,7 +246,7 @@ bricks.Tree = class extends bricks.VScrollPanel {
|
|||||||
var tools = [];
|
var tools = [];
|
||||||
if (this.editable){
|
if (this.editable){
|
||||||
tools.push({icon:bricks_resource('imgs/add.svg'), name:'add'});
|
tools.push({icon:bricks_resource('imgs/add.svg'), name:'add'});
|
||||||
tools.push({icon:bricks_resource('imgs/update.svg'), name:'update'});
|
tools.push({icon:bricks_resource('imgs/edit.svg'), name:'update'});
|
||||||
tools.push({icon:bricks_resource('imgs/delete.svg'), name:'delete'});
|
tools.push({icon:bricks_resource('imgs/delete.svg'), name:'delete'});
|
||||||
}
|
}
|
||||||
if (toolbar.tools){
|
if (toolbar.tools){
|
||||||
|
Loading…
Reference in New Issue
Block a user