bugfix
This commit is contained in:
parent
bff3e1726c
commit
d573fa40f7
@ -171,10 +171,10 @@ bricks.buildEventBind = function(from_widget, widget, event, desc){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bricks.universal_handler = function(from_widget, widget, desc, event){
|
bricks.universal_handler = async function(from_widget, widget, desc, event){
|
||||||
var f = bricks.buildEventHandler(from_widget, desc, event);
|
var f = await bricks.buildEventHandler(from_widget, desc, event);
|
||||||
if (f){
|
if (f){
|
||||||
return f(event);
|
return await f(event);
|
||||||
}
|
}
|
||||||
bricks.debug('universal_handler() error', 'from_widget=',
|
bricks.debug('universal_handler() error', 'from_widget=',
|
||||||
from_widget,
|
from_widget,
|
||||||
@ -182,7 +182,7 @@ bricks.universal_handler = function(from_widget, widget, desc, event){
|
|||||||
'desc=', desc,
|
'desc=', desc,
|
||||||
event);
|
event);
|
||||||
}
|
}
|
||||||
bricks.buildEventHandler = function(w, desc, event){
|
bricks.buildEventHandler = async function(w, desc, event){
|
||||||
var target = bricks.getWidgetById(desc.target, w);
|
var target = bricks.getWidgetById(desc.target, w);
|
||||||
if (! target){
|
if (! target){
|
||||||
bricks.debug('target miss desc=', desc, 'w=', w);
|
bricks.debug('target miss desc=', desc, 'w=', w);
|
||||||
@ -198,7 +198,7 @@ bricks.buildEventHandler = function(w, desc, event){
|
|||||||
params:desc.dataparams,
|
params:desc.dataparams,
|
||||||
script:desc.datascript
|
script:desc.datascript
|
||||||
}
|
}
|
||||||
rtdata = bricks.getRealtimeData(w, data_desc);
|
rtdata = await bricks.getRealtimeData(w, data_desc);
|
||||||
}
|
}
|
||||||
if (typeof event.params == typeof {}){
|
if (typeof event.params == typeof {}){
|
||||||
rtdata = bricks.extend(rtdata, event.params);
|
rtdata = bricks.extend(rtdata, event.params);
|
||||||
@ -228,7 +228,7 @@ bricks.buildEventHandler = function(w, desc, event){
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bricks.getRealtimeData = function(w, desc){
|
bricks.getRealtimeData = async function(w, desc){
|
||||||
var target = bricks.getWidgetById(desc.widget, w);
|
var target = bricks.getWidgetById(desc.widget, w);
|
||||||
var f;
|
var f;
|
||||||
bricks.debug('getRealtimeData() calling ...');
|
bricks.debug('getRealtimeData() calling ...');
|
||||||
@ -242,7 +242,7 @@ bricks.getRealtimeData = function(w, desc){
|
|||||||
}
|
}
|
||||||
if (desc.script){
|
if (desc.script){
|
||||||
f = bricks.buildScriptHandler(null, target, null, desc)
|
f = bricks.buildScriptHandler(null, target, null, desc)
|
||||||
return f();
|
return await f();
|
||||||
}
|
}
|
||||||
debug('getRealtimeData():desc=', desc, 'f=', f);
|
debug('getRealtimeData():desc=', desc, 'f=', f);
|
||||||
return null;
|
return null;
|
||||||
@ -341,8 +341,8 @@ 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);
|
||||||
params = bricks.apply_data(params, rtdata);
|
params = bricks.apply_data(params, rtdata);
|
||||||
var f = new Function('target', 'params', 'event', desc.script);
|
var AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
|
||||||
bricks.debug('params=', params, 'buildScriptHandler() ..........');
|
var f = new AsyncFunction('target', 'params', 'event', desc.script);
|
||||||
return f.bind(target, target, params);
|
return f.bind(target, target, params);
|
||||||
}
|
}
|
||||||
bricks.buildDispatchEventHandler = function(w, target, rtdata, desc){
|
bricks.buildDispatchEventHandler = function(w, target, rtdata, desc){
|
||||||
|
@ -2,6 +2,11 @@ var bricks = window.bricks || {};
|
|||||||
|
|
||||||
bricks.need_formdata_fields = ['file', 'image', 'video', 'audio'];
|
bricks.need_formdata_fields = ['file', 'image', 'video', 'audio'];
|
||||||
|
|
||||||
|
bricks.show_resp_message_or_error = async function(resp){
|
||||||
|
var desc = await resp.json();
|
||||||
|
await bricks.widgetBuild(desc, bricks.Body);
|
||||||
|
}
|
||||||
|
|
||||||
bricks.FieldGroup = class extends bricks.VBox {
|
bricks.FieldGroup = class extends bricks.VBox {
|
||||||
constructor(opts){
|
constructor(opts){
|
||||||
opts.leftMargin = '10px';
|
opts.leftMargin = '10px';
|
||||||
|
@ -51,14 +51,16 @@ bricks.LlmMsgBox = class extends bricks.HBox {
|
|||||||
super(opts);
|
super(opts);
|
||||||
var img = new bricks.Icon({rate:2,url:this.icon||bricks_resource('imgs/user.png')});
|
var img = new bricks.Icon({rate:2,url:this.icon||bricks_resource('imgs/user.png')});
|
||||||
this.w = new bricks.MdWidget({mdtext:' '});
|
this.w = new bricks.MdWidget({mdtext:' '});
|
||||||
this.run = new bricks.Running({target:this});
|
this.run = new bricks.BaseRunning({target:this});
|
||||||
this.w.set_css(this.msg_css||'llm_msg');
|
this.w.set_css(this.msg_css||'llm_msg');
|
||||||
this.add_widget(img);
|
this.add_widget(img);
|
||||||
|
this.add_widget(this.run)
|
||||||
this.add_widget(this.w);
|
this.add_widget(this.w);
|
||||||
this.messages = [];
|
this.messages = [];
|
||||||
}
|
}
|
||||||
responsed(){
|
responsed(){
|
||||||
this.run.dismiss();
|
this.run.stop_timepass();
|
||||||
|
this.remove_widget(this.run);
|
||||||
this.w.md_content = '';
|
this.w.md_content = '';
|
||||||
}
|
}
|
||||||
user_msg_format(){
|
user_msg_format(){
|
||||||
@ -147,18 +149,40 @@ bricks.LlmDialog = class extends bricks.VBox {
|
|||||||
opts.height = opts.height || '100%';
|
opts.height = opts.height || '100%';
|
||||||
super(opts);
|
super(opts);
|
||||||
this.title_w = new bricks.HBox({cheight:2});
|
this.title_w = new bricks.HBox({cheight:2});
|
||||||
this.title_w.add_widget(new bricks.Icon({
|
|
||||||
rate:2,url:this.llm_icon||bricks_resource('imgs/llm.png')
|
|
||||||
}));
|
|
||||||
this.title_w.set_css(this.title_ccs||'llm_title');
|
this.title_w.set_css(this.title_ccs||'llm_title');
|
||||||
var t_w = new bricks.Text({text:this.model});
|
|
||||||
this.title_w.add_widget(t_w);
|
|
||||||
this.add_widget(this.title_w);
|
this.add_widget(this.title_w);
|
||||||
|
this.model_info_ws = {};
|
||||||
|
this.show_models_info();
|
||||||
var filler = new bricks.Filler({});
|
var filler = new bricks.Filler({});
|
||||||
this.body = new bricks.VScrollPanel({height:'100%'});
|
this.body = new bricks.VScrollPanel({height:'100%'});
|
||||||
filler.add_widget(this.body);
|
filler.add_widget(this.body);
|
||||||
this.add_widget(filler);
|
this.add_widget(filler);
|
||||||
}
|
}
|
||||||
|
show_models_info(){
|
||||||
|
for(var i=0;i<this.models.length;i++){
|
||||||
|
this.show_model_info(this.models[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
show_model_info(model){
|
||||||
|
var w = new bricks.HBox({margin:'5px'});
|
||||||
|
w.add_widget(new bricks.Icon({url:model.icon||bricks_resource('imgs/llm.png'), rate:2}));
|
||||||
|
w.add_widget(new bricks.Text({text:model.model}));
|
||||||
|
this.title_w.add_widget(w);
|
||||||
|
this.model_info_ws[model.model] = w;
|
||||||
|
}
|
||||||
|
add_model(model){
|
||||||
|
this.models.push(model);
|
||||||
|
this.show_model_info(model);
|
||||||
|
}
|
||||||
|
delete_model(model){
|
||||||
|
for(var i=0;i<this.models.length;i++){
|
||||||
|
if (this.models[i].model == model.model){
|
||||||
|
this.models.splice(i,1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete this.model_info_ws[model.model];
|
||||||
|
}
|
||||||
async set_prompt(prompt){
|
async set_prompt(prompt){
|
||||||
prompt = bricks.escapeSpecialChars(prompt);
|
prompt = bricks.escapeSpecialChars(prompt);
|
||||||
var box = new bricks.UserMsgBox({
|
var box = new bricks.UserMsgBox({
|
||||||
|
@ -1,16 +1,13 @@
|
|||||||
var bricks = window.bricks || {};
|
var bricks = window.bricks || {};
|
||||||
|
|
||||||
bricks.Running = class extends bricks.BaseModal {
|
bricks.BaseRunning = class extends bricks.FHBox {
|
||||||
/*
|
/*
|
||||||
{
|
{
|
||||||
target:
|
"icon"
|
||||||
icon:
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
constructor(opts){
|
constructor(opts){
|
||||||
opts.auto_open = true;
|
opts.width = opts.width || 'auto';
|
||||||
opts.archor = 'cc';
|
|
||||||
opts.width='96px';
|
|
||||||
super(opts);
|
super(opts);
|
||||||
this.icon_w = new bricks.Icon({
|
this.icon_w = new bricks.Icon({
|
||||||
url:opts.icon || bricks_resource('imgs/running.gif')
|
url:opts.icon || bricks_resource('imgs/running.gif')
|
||||||
@ -23,23 +20,41 @@ bricks.Running = class extends bricks.BaseModal {
|
|||||||
i18n:false
|
i18n:false
|
||||||
});
|
});
|
||||||
this.time_start = new Date().getTime();
|
this.time_start = new Date().getTime();
|
||||||
var box = new bricks.FHBox({width:'auto'});
|
this.add_widget(this.icon_w);
|
||||||
box.add_widget(this.icon_w);
|
this.add_widget(this.time_w);
|
||||||
box.add_widget(this.time_w);
|
|
||||||
this.add_widget(box);
|
|
||||||
this.showtime_task = schedule_once(this.show_timepass.bind(this), 0.05);
|
this.showtime_task = schedule_once(this.show_timepass.bind(this), 0.05);
|
||||||
}
|
}
|
||||||
|
|
||||||
show_timepass(){
|
show_timepass(){
|
||||||
var t = new Date().getTime() - this.time_start;
|
var t = new Date().getTime() - this.time_start;
|
||||||
var txt = bricks.formatMs(t, 1);
|
var txt = bricks.formatMs(t, 1);
|
||||||
this.time_w.set_text(txt);
|
this.time_w.set_text(txt);
|
||||||
this.showtime_task = schedule_once(this.show_timepass.bind(this), 0.05);
|
this.showtime_task = schedule_once(this.show_timepass.bind(this), 0.05);
|
||||||
}
|
}
|
||||||
dismiss(){
|
stop_timepass(){
|
||||||
if (this.showtime_task){
|
if (this.showtime_task){
|
||||||
this.showtime_task.cancel();
|
this.showtime_task.cancel();
|
||||||
this.showtime_task = null;
|
this.showtime_task = null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bricks.Running = class extends bricks.BaseModal {
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
target:
|
||||||
|
icon:
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
constructor(opts){
|
||||||
|
opts.auto_open = true;
|
||||||
|
opts.archor = 'cc';
|
||||||
|
super(opts);
|
||||||
|
this.w = new bricks.BaseRunning({icon:opts.icon});
|
||||||
|
this.add_widget(this.w);
|
||||||
|
}
|
||||||
|
dismiss(){
|
||||||
|
this.w.stop_timepass();
|
||||||
bricks.BaseModal.prototype.dismiss.bind(this)();
|
bricks.BaseModal.prototype.dismiss.bind(this)();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,23 @@
|
|||||||
"height":"40px"
|
"height":"40px"
|
||||||
},
|
},
|
||||||
"subwidgets":[
|
"subwidgets":[
|
||||||
|
{
|
||||||
|
"widgettype":"Button",
|
||||||
|
"options":{
|
||||||
|
"width":"80px",
|
||||||
|
"i18n":true,
|
||||||
|
"label":"click me"
|
||||||
|
},
|
||||||
|
"binds":[
|
||||||
|
{
|
||||||
|
"wid":"self",
|
||||||
|
"event":"click",
|
||||||
|
"actiontype":"script",
|
||||||
|
"target":"self",
|
||||||
|
"script":"console.log(target, params, event);"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id":"insert",
|
"id":"insert",
|
||||||
"widgettype":"Button",
|
"widgettype":"Button",
|
||||||
|
@ -150,7 +150,16 @@
|
|||||||
"required":true
|
"required":true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"binds":[
|
||||||
|
{
|
||||||
|
"wid":"self",
|
||||||
|
"event":"submited",
|
||||||
|
"actiontype":"script",
|
||||||
|
"target":"self",
|
||||||
|
"script":"await bricks.show_resp_message_or_error(event.params)"
|
||||||
}
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
18
examples/script_action.ui
Normal file
18
examples/script_action.ui
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"id":"insert",
|
||||||
|
"widgettype":"Button",
|
||||||
|
"options":{
|
||||||
|
"width":"80px",
|
||||||
|
"i18n":true,
|
||||||
|
"label":"click me"
|
||||||
|
},
|
||||||
|
"binds":[
|
||||||
|
{
|
||||||
|
"wid":"self",
|
||||||
|
"event":"click",
|
||||||
|
"actiontype":"script",
|
||||||
|
"target":"self",
|
||||||
|
"script":"console.log(target, params, event);"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user