bugfix
This commit is contained in:
parent
688e751091
commit
9bc17fe7ec
@ -218,18 +218,24 @@ bricks.universal_handler = async function(from_widget, widget, desc, event){
|
|||||||
'desc=', desc,
|
'desc=', desc,
|
||||||
event);
|
event);
|
||||||
}
|
}
|
||||||
|
bricks.default_popup = function(opts){
|
||||||
|
var popts = bricks.get_popup_default_options();
|
||||||
|
bricks.extend(popts, opts);
|
||||||
|
return new bricks.Popup(popts);
|
||||||
|
}
|
||||||
|
bricks.default_popupwindow = function(opts){
|
||||||
|
var popts = bricks.get_popupwindow_default_options();
|
||||||
|
bricks.extend(popts, opts);
|
||||||
|
return new bricks.PopupWindow(popts);
|
||||||
|
}
|
||||||
bricks.buildEventHandler = async function(w, desc, event){
|
bricks.buildEventHandler = async function(w, desc, event){
|
||||||
var target;
|
var target;
|
||||||
if (desc.target == 'Popup'){
|
if (desc.target == 'Popup'){
|
||||||
var popts = bricks.get_popup_default_options();
|
target = bricks.default_popup(desc.popup_options || {});
|
||||||
var opt1 = desc.popup_options || {};
|
|
||||||
bricks.extend(popts, opt1);
|
|
||||||
target = new bricks.Popup(popts);
|
|
||||||
} else if (desc.target == 'PopupWindow') {
|
} else if (desc.target == 'PopupWindow') {
|
||||||
var popts = bricks.get_popupwindow_default_options();
|
target = bricks.default_popupwindow(desc.popup_options || {});
|
||||||
var opt1 = desc.popup_options || {};
|
} else if ( desc.target instanceof bricks.JsWidget ) {
|
||||||
bricks.extend(popts, opt1);
|
target = desc.target;
|
||||||
target = new bricks.PopupWindow(popts);
|
|
||||||
} else {
|
} else {
|
||||||
target = bricks.getWidgetById(desc.target, w);
|
target = bricks.getWidgetById(desc.target, w);
|
||||||
}
|
}
|
||||||
@ -349,6 +355,9 @@ bricks.buildUrlwidgetHandler = function(w, target, rtdata, desc){
|
|||||||
} else {
|
} else {
|
||||||
rtdata = bricks.extend(rtdata, desc.event_params);
|
rtdata = bricks.extend(rtdata, desc.event_params);
|
||||||
options = bricks.apply_data(options, rtdata);
|
options = bricks.apply_data(options, rtdata);
|
||||||
|
if (desc.params_mapping){
|
||||||
|
rtdata = bricks.map(rtdata, desc.params_mapping.mapping, desc.params_mapping.need_others);
|
||||||
|
}
|
||||||
options.params = bricks.extend(params, rtdata);
|
options.params = bricks.extend(params, rtdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,6 +370,9 @@ bricks.buildUrlwidgetHandler = function(w, target, rtdata, desc){
|
|||||||
bricks.buildBricksHandler = function(w, target, rtdata, desc){
|
bricks.buildBricksHandler = function(w, target, rtdata, desc){
|
||||||
var options = objcopy(desc.options||{});
|
var options = objcopy(desc.options||{});
|
||||||
rtdata = bricks.extend(rtdata, inputdata2dic(desc.event_params));
|
rtdata = bricks.extend(rtdata, inputdata2dic(desc.event_params));
|
||||||
|
if (desc.params_mapping){
|
||||||
|
rtdata = bricks.map(rtdata, desc.params_mapping.mapping, desc.params_mapping.need_others);
|
||||||
|
}
|
||||||
options = bricks.apply_data(options, rtdata);
|
options = bricks.apply_data(options, rtdata);
|
||||||
return _buildWidget.bind(w, target, target, desc.mode || 'replace', options, desc);
|
return _buildWidget.bind(w, target, target, desc.mode || 'replace', options, desc);
|
||||||
}
|
}
|
||||||
@ -370,6 +382,9 @@ bricks.buildRegisterFunctionHandler = function(w, target, rtdata, desc){
|
|||||||
bricks.debug('rfname:', desc.rfname, 'not registed', desc);
|
bricks.debug('rfname:', desc.rfname, 'not registed', desc);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
if (desc.params_mapping){
|
||||||
|
rtdata = bricks.map(rtdata, desc.params_mapping.mapping, desc.params_mapping.need_others);
|
||||||
|
}
|
||||||
var params = {};
|
var params = {};
|
||||||
if (desc.params){
|
if (desc.params){
|
||||||
bricks.extend(params, desc.params);
|
bricks.extend(params, desc.params);
|
||||||
@ -391,6 +406,9 @@ bricks.buildMethodHandler = function(w, target, rtdata, desc){
|
|||||||
bricks.extend(params, desc.params)
|
bricks.extend(params, desc.params)
|
||||||
bricks.extend(params, rtdata);
|
bricks.extend(params, rtdata);
|
||||||
bricks.extend(params, inputdata2dic(desc.event_params));
|
bricks.extend(params, inputdata2dic(desc.event_params));
|
||||||
|
if (desc.params_mapping){
|
||||||
|
rtdata = bricks.map(rtdata, desc.params_mapping.mapping, desc.params_mapping.need_others);
|
||||||
|
}
|
||||||
params = bricks.apply_data(params, rtdata);
|
params = bricks.apply_data(params, rtdata);
|
||||||
return f.bind(target, params);
|
return f.bind(target, params);
|
||||||
}
|
}
|
||||||
@ -399,6 +417,9 @@ bricks.buildScriptHandler = function(w, target, rtdata, desc){
|
|||||||
bricks.extend(params, desc.params)
|
bricks.extend(params, desc.params)
|
||||||
bricks.extend(params, rtdata);
|
bricks.extend(params, rtdata);
|
||||||
bricks.extend(params, inputdata2dic(desc.event_params));
|
bricks.extend(params, inputdata2dic(desc.event_params));
|
||||||
|
if (desc.params_mapping){
|
||||||
|
rtdata = bricks.map(rtdata, desc.params_mapping.mapping, desc.params_mapping.need_others);
|
||||||
|
}
|
||||||
params = bricks.apply_data(params, rtdata);
|
params = bricks.apply_data(params, rtdata);
|
||||||
var AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
|
var AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
|
||||||
var f = new AsyncFunction('params', 'event', desc.script);
|
var f = new AsyncFunction('params', 'event', desc.script);
|
||||||
|
102
bricks/input.js
102
bricks/input.js
@ -249,6 +249,105 @@ bricks.UiStr =class extends bricks.UiType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bricks.UiSearch = class extends bricks.HBox {
|
||||||
|
/*
|
||||||
|
search_url:
|
||||||
|
valueField
|
||||||
|
textField
|
||||||
|
select_event
|
||||||
|
popup_options
|
||||||
|
value,
|
||||||
|
text
|
||||||
|
*/
|
||||||
|
constructor(opts){
|
||||||
|
super(opts);
|
||||||
|
this.uitype = 'search';
|
||||||
|
var inputdesc = {
|
||||||
|
name:this.name,
|
||||||
|
value:this.text,
|
||||||
|
readonly:true
|
||||||
|
}
|
||||||
|
this.str_in = new bricks.UiStr(inputdesc);
|
||||||
|
this.search_icon = new bricks.Icon({
|
||||||
|
url:bricks_resource('imgs/search.png'),
|
||||||
|
rate:1.5
|
||||||
|
});
|
||||||
|
this.str_in.set_css('filler');
|
||||||
|
this.search_icon.set_css('clickable');
|
||||||
|
this.search_icon.bind('click', this.open_search_window.bind(this));
|
||||||
|
this.add_widget(this.str_in);
|
||||||
|
this.add_widget(this.search_icon);
|
||||||
|
}
|
||||||
|
async open_search_window(event){
|
||||||
|
var desc = {
|
||||||
|
"widgettype":"urlwidget",
|
||||||
|
"options":{
|
||||||
|
"url":this.search_url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var w = await bricks.widgetBuild(desc, this);
|
||||||
|
var tabular = null;
|
||||||
|
for (var i=0;i<w.children.length;i++){
|
||||||
|
if (w.children[i] instanceof bricks.Tabular){
|
||||||
|
tabular = w.children[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!tabular){
|
||||||
|
console.log('tubular not found is w');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var win = bricks.default_popupwindow(this.popup_options||{});
|
||||||
|
win.add_widget(w);
|
||||||
|
win.open();
|
||||||
|
tabular.bind(this.search_event, this.set_data.bind(this));
|
||||||
|
tabular.bind(this.search_event, win.dismiss.bind(win));
|
||||||
|
}
|
||||||
|
set_data(event){
|
||||||
|
var d = event.params;
|
||||||
|
this.value = d[this.valueField];
|
||||||
|
this.str_in.setValue(d[this.textField])
|
||||||
|
}
|
||||||
|
getValue(){
|
||||||
|
var o = {}
|
||||||
|
o[this.name] = this.resultValue();
|
||||||
|
var d = this.getUserData();
|
||||||
|
if (d){
|
||||||
|
o = bricks.extend(o, d);
|
||||||
|
}
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
set_formdata(formdata){
|
||||||
|
formdata.append(this.name, this.resultValue());
|
||||||
|
}
|
||||||
|
resultValue(){
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
focus(){
|
||||||
|
this.str_in.dom_element.focus();
|
||||||
|
}
|
||||||
|
reset(){
|
||||||
|
var v = this.opts.value||this.opts.defaultvalue|| '';
|
||||||
|
this.setValue(v);
|
||||||
|
this.str_in.setValue(this.opts.text||'');
|
||||||
|
}
|
||||||
|
setValue(v, t){
|
||||||
|
if (! v)
|
||||||
|
v = '';
|
||||||
|
this.vlaue = v;
|
||||||
|
this.str_in.setValue(t);
|
||||||
|
}
|
||||||
|
set_disabled(f){
|
||||||
|
this.dom_element.disabled = f;
|
||||||
|
}
|
||||||
|
set_readonly(f){
|
||||||
|
this.dom_element.readOnly = f;
|
||||||
|
}
|
||||||
|
set_required(f){
|
||||||
|
this.dom_element.required = f;
|
||||||
|
this.required = f;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
bricks.UiPassword =class extends bricks.UiStr {
|
bricks.UiPassword =class extends bricks.UiStr {
|
||||||
/*
|
/*
|
||||||
{
|
{
|
||||||
@ -808,7 +907,7 @@ bricks.UiCode =class extends bricks.UiType {
|
|||||||
e.removeChild(e.firstChild);
|
e.removeChild(e.firstChild);
|
||||||
}
|
}
|
||||||
var v = this.opts.value || this.opts.defaultvalue || null;
|
var v = this.opts.value || this.opts.defaultvalue || null;
|
||||||
if (!v && ! this.opts.nullable){
|
if (!v && ! this.opts.nullable && data.length > 0){
|
||||||
v = data[0][this.opts.valueField]
|
v = data[0][this.opts.valueField]
|
||||||
}
|
}
|
||||||
if (this.opts.nullable){
|
if (this.opts.nullable){
|
||||||
@ -969,3 +1068,4 @@ Input.register('UiPassword', 'password', bricks.UiPassword);
|
|||||||
Input.register('UiAudio', 'audio', bricks.UiAudio);
|
Input.register('UiAudio', 'audio', bricks.UiAudio);
|
||||||
Input.register('UiVideo', 'video', bricks.UiVideo);
|
Input.register('UiVideo', 'video', bricks.UiVideo);
|
||||||
Input.register('UiAudioText', 'audiotext', bricks.UiAudioText);
|
Input.register('UiAudioText', 'audiotext', bricks.UiAudioText);
|
||||||
|
Input.register('UiSearch', 'search', bricks.UiSearch);
|
||||||
|
@ -66,7 +66,9 @@ bricks.Tabular = class extends bricks.DataViewer {
|
|||||||
if (flag){
|
if (flag){
|
||||||
row.content_widget.show();
|
row.content_widget.show();
|
||||||
row.content_widget.clear_widgets();
|
row.content_widget.clear_widgets();
|
||||||
var w = await bricks.widgetBuild(this.content_view, row.content_widget, row.user_data);
|
var desc = objcopy(this.content_view);
|
||||||
|
desc = bricks.apply_data(desc, row.user_data);
|
||||||
|
var w = await bricks.widgetBuild(desc, row.content_widget);
|
||||||
if (w){
|
if (w){
|
||||||
row.content_widget.add_widget(w);
|
row.content_widget.add_widget(w);
|
||||||
}
|
}
|
||||||
|
@ -210,14 +210,14 @@ bricks.Tree = class extends bricks.VScrollPanel {
|
|||||||
create_toolbar(){
|
create_toolbar(){
|
||||||
var toolbar = bricks.extend({}, this.toolbar);
|
var toolbar = bricks.extend({}, this.toolbar);
|
||||||
var tools = [];
|
var tools = [];
|
||||||
if (toolbar.tools){
|
|
||||||
toolbar.tools.forEach(f => tools.push(f));
|
|
||||||
}
|
|
||||||
if (this.editable){
|
if (this.editable){
|
||||||
tools.push({icon:bricks_resource('imgs/add.png'), name:'add'});
|
tools.push({icon:bricks_resource('imgs/add.png'), name:'add'});
|
||||||
tools.push({icon:bricks_resource('imgs/update.png'), name:'update'});
|
tools.push({icon:bricks_resource('imgs/update.png'), name:'update'});
|
||||||
tools.push({icon:bricks_resource('imgs/delete.png'), name:'delete'});
|
tools.push({icon:bricks_resource('imgs/delete.png'), name:'delete'});
|
||||||
}
|
}
|
||||||
|
if (toolbar.tools){
|
||||||
|
toolbar.tools.forEach(f => tools.push(f));
|
||||||
|
}
|
||||||
if (tools.length == 0){
|
if (tools.length == 0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -239,16 +239,17 @@ bricks.Tree = class extends bricks.VScrollPanel {
|
|||||||
this.update_node();
|
this.update_node();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
if ((opts.selected_data || opts.checked_data) && ! this.selected_node){
|
||||||
|
w = new bricks.Error({title:'Error', message:'No selected node found'});
|
||||||
|
w.open();
|
||||||
|
return;
|
||||||
|
}
|
||||||
console.log('opts=', opts);
|
console.log('opts=', opts);
|
||||||
var d = null;
|
var d = null;
|
||||||
if (opts.checked_data){
|
if (opts.checked_data){
|
||||||
d = {
|
d = this.checked_data
|
||||||
checked_data:JSON.stringify(this.checked_data)
|
} else if (opts.selected_data){
|
||||||
}
|
d = this.selected_node.user_data
|
||||||
} else if (opts.selected_node){
|
|
||||||
d = {
|
|
||||||
selected_data:JSON.stringify(this.selected_node.user_data)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
this.dispatch(opts.name, d);
|
this.dispatch(opts.name, d);
|
||||||
break;
|
break;
|
||||||
|
@ -1,6 +1,18 @@
|
|||||||
var bricks = window.bricks || {};
|
var bricks = window.bricks || {};
|
||||||
bricks.bug = false;
|
bricks.bug = false;
|
||||||
|
|
||||||
|
bricks.map = function(data_source, mapping, need_others){
|
||||||
|
ret = {};
|
||||||
|
Object.entries(data_source).forEach(([key, value]) => {
|
||||||
|
if (mapping.hasOwnProperty(key)){
|
||||||
|
ret[mapping[key]] = data_source[key];
|
||||||
|
} else if (need_others){
|
||||||
|
ret[key] = data_source[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
bricks.relocate_by_eventpos = function(event, widget){
|
bricks.relocate_by_eventpos = function(event, widget){
|
||||||
var ex,ey;
|
var ex,ey;
|
||||||
var x,y;
|
var x,y;
|
||||||
@ -390,13 +402,8 @@ var set_max_height = function(w1, w2){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var objcopy = function(obj){
|
var objcopy = function(obj){
|
||||||
var o = {}
|
var s = JSON.stringify(obj);
|
||||||
for ( k in obj){
|
return JSON.parse(s);
|
||||||
if (obj.hasOwnProperty(k)){
|
|
||||||
o[k] = obj[k];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return o;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bricks.set_stream_source = async function(target, url, params){
|
bricks.set_stream_source = async function(target, url, params){
|
||||||
|
Loading…
Reference in New Issue
Block a user