bugfix
This commit is contained in:
parent
7fca12127f
commit
b479461741
@ -55,6 +55,7 @@ bricks.Cols = class extends bricks.VBox {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async handle_click(rw, event){
|
async handle_click(rw, event){
|
||||||
|
event.stopPropagation();
|
||||||
var orev = null;
|
var orev = null;
|
||||||
if (this.select_record){
|
if (this.select_record){
|
||||||
orev = this.select_record;
|
orev = this.select_record;
|
||||||
@ -64,6 +65,8 @@ bricks.Cols = class extends bricks.VBox {
|
|||||||
}
|
}
|
||||||
this.select_record = rw;
|
this.select_record = rw;
|
||||||
this.select_record.set_css('selected_record');
|
this.select_record.set_css('selected_record');
|
||||||
|
console.log('record data=', rw.user_data);
|
||||||
|
this.dispatch('record_click', rw.user_data);
|
||||||
}
|
}
|
||||||
async dataHandle(d){
|
async dataHandle(d){
|
||||||
var data = d.rows;
|
var data = d.rows;
|
||||||
@ -77,6 +80,7 @@ bricks.Cols = class extends bricks.VBox {
|
|||||||
for (var i=0;i<data.length;i++){
|
for (var i=0;i<data.length;i++){
|
||||||
var d = data[i];
|
var d = data[i];
|
||||||
var w = await bricks.widgetBuild(this.record_view, this.main, d);
|
var w = await bricks.widgetBuild(this.record_view, this.main, d);
|
||||||
|
w.user_data = d;
|
||||||
w.bind('click', this.handle_click.bind(this, w));
|
w.bind('click', this.handle_click.bind(this, w));
|
||||||
w.set_attribute('data-page', page);
|
w.set_attribute('data-page', page);
|
||||||
if (this.loader.is_max_page(page)){
|
if (this.loader.is_max_page(page)){
|
||||||
@ -112,8 +116,8 @@ bricks.Cols = class extends bricks.VBox {
|
|||||||
this.main = new bricks.DynamicColumn({
|
this.main = new bricks.DynamicColumn({
|
||||||
width:"100%",
|
width:"100%",
|
||||||
col_cwidth:this.col_cwidth,
|
col_cwidth:this.col_cwidth,
|
||||||
mobile_cols:this.mobile_cols,
|
mobile_cols:this.mobile_cols || 2
|
||||||
mobile_cols:2});
|
});
|
||||||
this.container.add_widget(this.main);
|
this.container.add_widget(this.main);
|
||||||
var d = await this.loader.loadData(p);
|
var d = await this.loader.loadData(p);
|
||||||
if (d){
|
if (d){
|
||||||
|
@ -90,6 +90,10 @@ hr {
|
|||||||
padding: 4px;
|
padding: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.titlebar {
|
||||||
|
background-color: #d8d8c8;
|
||||||
|
}
|
||||||
|
|
||||||
.toppopup {
|
.toppopup {
|
||||||
box-shadow: 10px 5px 10px #000, 0 -5px 5px #fff;
|
box-shadow: 10px 5px 10px #000, 0 -5px 5px #fff;
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ bricks.DynamicColumn = class extends bricks.Layout {
|
|||||||
if (bricks.is_mobile() && width < height){
|
if (bricks.is_mobile() && width < height){
|
||||||
cols = this.mobile_cols;
|
cols = this.mobile_cols;
|
||||||
cw = (width - (cols - 1) * gap) / cols;
|
cw = (width - (cols - 1) * gap) / cols;
|
||||||
|
console.log('====mobile==cols=', cols, '====');
|
||||||
} else {
|
} else {
|
||||||
if (this.col_cwidth){
|
if (this.col_cwidth){
|
||||||
cw = bricks.app.charsize * this.col_cwidth;
|
cw = bricks.app.charsize * this.col_cwidth;
|
||||||
|
170
bricks/llm.js
170
bricks/llm.js
@ -174,11 +174,18 @@ bricks.LlmModel = class extends bricks.JsWidget {
|
|||||||
}
|
}
|
||||||
inputdata2uploaddata(data){
|
inputdata2uploaddata(data){
|
||||||
var d = data;
|
var d = data;
|
||||||
|
var fmt = this.opts.user_message_format;
|
||||||
|
if (fmt){
|
||||||
|
var umsg = bricks.apply_data(fmt, inputdata2dic(data));
|
||||||
|
this.messages.push(umsg);
|
||||||
|
}
|
||||||
if (data instanceof FormData){
|
if (data instanceof FormData){
|
||||||
d.append('model', this.opts.model)
|
d.append('model', this.opts.model)
|
||||||
d.append('modelinstanceid', this.opts.modelinstanceid)
|
d.append('modelinstanceid', this.opts.modelinstanceid)
|
||||||
d.append('modeltypeid', this.opts.modeltypeid)
|
d.append('modeltypeid', this.opts.modeltypeid)
|
||||||
|
d.append('messages', JSON.stringify(this.messages));
|
||||||
} else {
|
} else {
|
||||||
|
d.messages = JSON.stringify(this.messages);
|
||||||
d.model = this.opts.model;
|
d.model = this.opts.model;
|
||||||
d.modelinstanceid = this.opts.modelinstanceid;
|
d.modelinstanceid = this.opts.modelinstanceid;
|
||||||
d.modeltypeid = this.opts.modeltypeid;
|
d.modeltypeid = this.opts.modeltypeid;
|
||||||
@ -196,13 +203,6 @@ bricks.LlmModel = class extends bricks.JsWidget {
|
|||||||
estimate_url:this.llmio.estimate_url,
|
estimate_url:this.llmio.estimate_url,
|
||||||
output_view:this.opts.output_view});
|
output_view:this.opts.output_view});
|
||||||
this.llmio.o_w.add_widget(mout);
|
this.llmio.o_w.add_widget(mout);
|
||||||
var fmt = this.opts.user_message_format || { role:'user', content:'${prompt}'};
|
|
||||||
var umsg = bricks.apply_data(fmt, inputdata2dic(data));
|
|
||||||
var d = {};
|
|
||||||
this.messages.push(umsg);
|
|
||||||
d.model = this.opts.model;
|
|
||||||
d.modelinstanceid = this.opts.modelinstanceid;
|
|
||||||
d.modeltypeid = this.opts.modeltypeid;
|
|
||||||
if (this.response_mode == 'stream' || this.response_mode == 'async') {
|
if (this.response_mode == 'stream' || this.response_mode == 'async') {
|
||||||
var d = this.inputdata2uploaddata(data);
|
var d = this.inputdata2uploaddata(data);
|
||||||
var hr = new bricks.HttpResponseStream();
|
var hr = new bricks.HttpResponseStream();
|
||||||
@ -262,6 +262,7 @@ bricks.LlmIO = class extends bricks.VBox {
|
|||||||
options:
|
options:
|
||||||
{
|
{
|
||||||
user_icon:
|
user_icon:
|
||||||
|
list_models_url:
|
||||||
input_fields:
|
input_fields:
|
||||||
input_view:
|
input_view:
|
||||||
output_view:
|
output_view:
|
||||||
@ -286,7 +287,21 @@ bricks.LlmIO = class extends bricks.VBox {
|
|||||||
super(opts);
|
super(opts);
|
||||||
this.llmmodels = [];
|
this.llmmodels = [];
|
||||||
this.title_w = new bricks.HBox({cheight:2});
|
this.title_w = new bricks.HBox({cheight:2});
|
||||||
this.i_w = new bricks.VBox({cheight:5});
|
this.i_w = new bricks.Icon({
|
||||||
|
rate:2,
|
||||||
|
url:bricks_resource('imgs/input.png'),
|
||||||
|
tip:'input data',
|
||||||
|
css:'clickable'
|
||||||
|
});
|
||||||
|
this.nm_w = new bricks.Icon({
|
||||||
|
rate:2,
|
||||||
|
url:bricks_resource('imgs/add.png'),
|
||||||
|
tip:'add new model',
|
||||||
|
css:'clickable'
|
||||||
|
});
|
||||||
|
this.title_w.add_widget(this.nm_w);
|
||||||
|
this.nm_w.bind('click', this.open_search_models.bind(this));
|
||||||
|
this.i_w.bind('click', this.open_input_widget.bind(this));
|
||||||
this.o_w = new bricks.Filler({overflow:'auto'});
|
this.o_w = new bricks.Filler({overflow:'auto'});
|
||||||
this.add_widget(this.title_w);
|
this.add_widget(this.title_w);
|
||||||
this.add_widget(this.o_w);
|
this.add_widget(this.o_w);
|
||||||
@ -295,16 +310,126 @@ bricks.LlmIO = class extends bricks.VBox {
|
|||||||
}
|
}
|
||||||
this.add_widget(this.i_w);
|
this.add_widget(this.i_w);
|
||||||
this.models.forEach( m =>{
|
this.models.forEach( m =>{
|
||||||
if (this.textvoice){
|
this.show_added_model(m);
|
||||||
m.textvoice = true;
|
|
||||||
m.tts_url = this.tts_url;
|
|
||||||
}
|
|
||||||
var lm = new bricks.LlmModel(this, m);
|
|
||||||
this.llmmodels.push(lm);
|
|
||||||
var tw = lm.render_title();
|
|
||||||
this.title_w.add_widget(tw);
|
|
||||||
});
|
});
|
||||||
this.build_input();
|
}
|
||||||
|
show_added_model(m){
|
||||||
|
if (this.textvoice){
|
||||||
|
m.textvoice = true;
|
||||||
|
m.tts_url = this.tts_url;
|
||||||
|
}
|
||||||
|
var lm = new bricks.LlmModel(this, m);
|
||||||
|
this.llmmodels.push(lm);
|
||||||
|
var tw = lm.render_title();
|
||||||
|
this.title_w.add_widget(tw);
|
||||||
|
}
|
||||||
|
async open_search_models(event){
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
var rect = this.showRectage();
|
||||||
|
var opts = {
|
||||||
|
title:"select model",
|
||||||
|
icon:bricks_resource('imgs/search.png'),
|
||||||
|
auto_destroy:true,
|
||||||
|
auto_open:true,
|
||||||
|
auto_dismiss:false,
|
||||||
|
movable:true,
|
||||||
|
top:rect.top + 'px',
|
||||||
|
left:rect.left + 'px',
|
||||||
|
width: rect.right - rect.left + 'px',
|
||||||
|
height: rect.bottom - rect.top + 'px'
|
||||||
|
}
|
||||||
|
var w = new bricks.PopupWindow(opts);
|
||||||
|
var sopts = {
|
||||||
|
data_url:this.list_models_url,
|
||||||
|
data_params:{
|
||||||
|
mii:this.models[0].modelinstanceid,
|
||||||
|
mti:this.models[0].modeltypeid
|
||||||
|
},
|
||||||
|
data_method:'POST',
|
||||||
|
col_cwidth: 24,
|
||||||
|
record_view:{
|
||||||
|
widgettype:"VBox",
|
||||||
|
options:{
|
||||||
|
cheight:20,
|
||||||
|
css:"card"
|
||||||
|
},
|
||||||
|
subwidgets:[
|
||||||
|
{
|
||||||
|
widgettype:"Title4",
|
||||||
|
options:{
|
||||||
|
text:"${name}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
widgettype:"Filler",
|
||||||
|
options:{
|
||||||
|
css:"scroll"
|
||||||
|
},
|
||||||
|
subwidgets:[
|
||||||
|
{
|
||||||
|
widgettype:"VBox",
|
||||||
|
options:{
|
||||||
|
css:"subcard"
|
||||||
|
},
|
||||||
|
subwidgets:[
|
||||||
|
{
|
||||||
|
widgettype:"Text",
|
||||||
|
options:{
|
||||||
|
text:"模型描述:${description}",
|
||||||
|
wrap:true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
widgettype:"Text",
|
||||||
|
options:{
|
||||||
|
text:"启用日期:${enable_date}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var cols = new bricks.Cols(sopts);
|
||||||
|
cols.bind('record_click', this.add_new_model.bind(this));
|
||||||
|
cols.bind('record_click', w.dismiss.bind(w));
|
||||||
|
w.add_widget(cols);
|
||||||
|
w.open();
|
||||||
|
}
|
||||||
|
async add_new_model(event){
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
this.models.push(event.params);
|
||||||
|
this.show_added_model(event.params);
|
||||||
|
}
|
||||||
|
async open_input_widget(event){
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
var rect = this.showRectage();
|
||||||
|
var opts = {
|
||||||
|
title:"input data",
|
||||||
|
icon:bricks_resource('imgs/input.png'),
|
||||||
|
auto_destroy:true,
|
||||||
|
auto_open:true,
|
||||||
|
auto_dismiss:false,
|
||||||
|
movable:true,
|
||||||
|
top:rect.top + 'px',
|
||||||
|
left:rect.left + 'px',
|
||||||
|
width: rect.right - rect.left + 'px',
|
||||||
|
height: rect.bottom - rect.top + 'px'
|
||||||
|
}
|
||||||
|
var w = new bricks.PopupWindow(opts);
|
||||||
|
var fopts = {
|
||||||
|
fields:this.input_fields
|
||||||
|
}
|
||||||
|
var fw = new bricks.Form(fopts);
|
||||||
|
fw.bind('submit', this.handle_input.bind(this));
|
||||||
|
fw.bind('submit', w.destroy.bind(w));
|
||||||
|
w.add_widget(fw);
|
||||||
|
w.open();
|
||||||
}
|
}
|
||||||
async handle_input(event){
|
async handle_input(event){
|
||||||
var params = event.params;
|
var params = event.params;
|
||||||
@ -320,9 +445,6 @@ bricks.LlmIO = class extends bricks.VBox {
|
|||||||
async show_input(params){
|
async show_input(params){
|
||||||
var box = new bricks.HBox({width:'100%'});
|
var box = new bricks.HBox({width:'100%'});
|
||||||
var data = inputdata2dic(params);
|
var data = inputdata2dic(params);
|
||||||
if (data.prompt){
|
|
||||||
data.prompt = bricks.escapeSpecialChars(data.prompt);
|
|
||||||
}
|
|
||||||
console.log('data=', data, 'input_view=', this.input_view);
|
console.log('data=', data, 'input_view=', this.input_view);
|
||||||
var w = await bricks.widgetBuild(this.input_view, this.o_w, data);
|
var w = await bricks.widgetBuild(this.input_view, this.o_w, data);
|
||||||
w.set_css(this.msg_css||'user_msg');
|
w.set_css(this.msg_css||'user_msg');
|
||||||
@ -333,14 +455,6 @@ bricks.LlmIO = class extends bricks.VBox {
|
|||||||
box.add_widget(img);
|
box.add_widget(img);
|
||||||
this.o_w.add_widget(box);
|
this.o_w.add_widget(box);
|
||||||
}
|
}
|
||||||
build_input(){
|
|
||||||
var fopts = {
|
|
||||||
fields:this.input_fields
|
|
||||||
};
|
|
||||||
var fw = new bricks.InlineForm(fopts);
|
|
||||||
fw.bind('submit', this.handle_input.bind(this));
|
|
||||||
this.i_w.add_widget(fw);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bricks.Factory.register('LlmIO', bricks.LlmIO);
|
bricks.Factory.register('LlmIO', bricks.LlmIO);
|
||||||
|
101
bricks/popup.js
101
bricks/popup.js
@ -10,8 +10,10 @@ bricks.Popup = class extends bricks.VBox {
|
|||||||
auto_dismiss:boolean
|
auto_dismiss:boolean
|
||||||
auto_destroy:boolean
|
auto_destroy:boolean
|
||||||
movable:boolean
|
movable:boolean
|
||||||
|
dismiss_event:
|
||||||
resizable:boolean
|
resizable:boolean
|
||||||
modal:boolean
|
modal:boolean
|
||||||
|
content:{}
|
||||||
*/
|
*/
|
||||||
constructor(opts){
|
constructor(opts){
|
||||||
super(opts);
|
super(opts);
|
||||||
@ -21,11 +23,10 @@ bricks.Popup = class extends bricks.VBox {
|
|||||||
this.opened = false;
|
this.opened = false;
|
||||||
this.set_css('popup');
|
this.set_css('popup');
|
||||||
this.bring_to_top();
|
this.bring_to_top();
|
||||||
this.moving_w = this;
|
this.content_box = new bricks.VBox({height:'100%',width:'100%'});
|
||||||
this.content_box = new bricks.VBox({width:'100%', height:'100%'});
|
|
||||||
this.content_box.set_style('display', 'flex');
|
|
||||||
this.content_box.set_style('overflow', 'auto');
|
|
||||||
super.add_widget(this.content_box);
|
super.add_widget(this.content_box);
|
||||||
|
this.content_w = this.content_box;
|
||||||
|
this.moving_w = this;
|
||||||
if (this.auto_dismiss){
|
if (this.auto_dismiss){
|
||||||
bricks.Body.bind('click', this.click_outside.bind(this));
|
bricks.Body.bind('click', this.click_outside.bind(this));
|
||||||
}
|
}
|
||||||
@ -41,6 +42,22 @@ bricks.Popup = class extends bricks.VBox {
|
|||||||
this.set_style('display', 'none');
|
this.set_style('display', 'none');
|
||||||
bricks.Body.add_widget(this);
|
bricks.Body.add_widget(this);
|
||||||
this.bind('click', this.bring_to_top.bind(this));
|
this.bind('click', this.bring_to_top.bind(this));
|
||||||
|
if (this.auto_open){
|
||||||
|
this.open();
|
||||||
|
}
|
||||||
|
if (this.content){
|
||||||
|
this.bind('opened', this.load_content.bind(this))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async load_content(){
|
||||||
|
var w = bricks.widgetBuild(this.content, this);
|
||||||
|
if (w){
|
||||||
|
if (this.content.dismiss_event){
|
||||||
|
w.bind(this.content.dismiss_event, this.distroy.bind(this));
|
||||||
|
}
|
||||||
|
this.content_w.clear_widgets();
|
||||||
|
this.content_w.add_widget(w);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
bring_to_top(){
|
bring_to_top(){
|
||||||
if (this == bricks.app.toppopup){
|
if (this == bricks.app.toppopup){
|
||||||
@ -50,6 +67,7 @@ bricks.Popup = class extends bricks.VBox {
|
|||||||
bricks.app.toppopup.set_css('toppopup', true);
|
bricks.app.toppopup.set_css('toppopup', true);
|
||||||
this.zindex = bricks.app.new_zindex();
|
this.zindex = bricks.app.new_zindex();
|
||||||
this.set_style('zIndex', this.zindex);
|
this.set_style('zIndex', this.zindex);
|
||||||
|
console.log('this.zindex=', this.zindex, 'app.zindex=', bricks.app.zindex);
|
||||||
this.set_css('toppopup');
|
this.set_css('toppopup');
|
||||||
bricks.app.toppopup = this;
|
bricks.app.toppopup = this;
|
||||||
}
|
}
|
||||||
@ -249,20 +267,6 @@ bricks.Popup = class extends bricks.VBox {
|
|||||||
this.dismiss();
|
this.dismiss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
add_widget(w, index){
|
|
||||||
this.content_box.add_widget(w, index);
|
|
||||||
if (this.auto_open){
|
|
||||||
this.open();
|
|
||||||
} else {
|
|
||||||
// console.log('auto_open is ', this.auto_open, ' so not auto open it', this.opts, w);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
remove_widget(w){
|
|
||||||
this.content_box.remove_widget(w);
|
|
||||||
}
|
|
||||||
clear_widgets(){
|
|
||||||
this.content_box.clear_widgets();
|
|
||||||
}
|
|
||||||
open(){
|
open(){
|
||||||
var rect, w, h;
|
var rect, w, h;
|
||||||
if (this.opened) {
|
if (this.opened) {
|
||||||
@ -291,7 +295,7 @@ bricks.Popup = class extends bricks.VBox {
|
|||||||
if (this.opts.modal && this.opts.widget){
|
if (this.opts.modal && this.opts.widget){
|
||||||
this.target_w.disabled(true);
|
this.target_w.disabled(true);
|
||||||
}
|
}
|
||||||
this.content_box.disabled(false);
|
this.bring_to_top();
|
||||||
}
|
}
|
||||||
dismiss(){
|
dismiss(){
|
||||||
if (! this.opened) return;
|
if (! this.opened) return;
|
||||||
@ -319,6 +323,15 @@ bricks.Popup = class extends bricks.VBox {
|
|||||||
this.parent = null;
|
this.parent = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
add_widget(w, i){
|
||||||
|
return this.content_box.add_widget(w, i);
|
||||||
|
}
|
||||||
|
remove_widget(w){
|
||||||
|
return this.content_box.remove_widget(w);
|
||||||
|
}
|
||||||
|
clear_widgets(){
|
||||||
|
return this.content_box.clear_widgets();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bricks.PopupWindow = class extends bricks.Popup {
|
bricks.PopupWindow = class extends bricks.Popup {
|
||||||
@ -333,33 +346,24 @@ bricks.PopupWindow = class extends bricks.Popup {
|
|||||||
constructor(opts){
|
constructor(opts){
|
||||||
opts.moviable = true;
|
opts.moviable = true;
|
||||||
opts.resizable = true;
|
opts.resizable = true;
|
||||||
opts.auto_open = true;
|
var ao = opts.auto_open;
|
||||||
|
opts.auto_open = false
|
||||||
opts.auto_dismiss = false;
|
opts.auto_dismiss = false;
|
||||||
opts.auto_destroy = false;
|
opts.auto_destroy = false;
|
||||||
super(opts);
|
super(opts);
|
||||||
this.title_bar = new bricks.HBox({cheight:1.5, width:'100%'});
|
this.auto_open = ao;
|
||||||
this.title_bar.set_css('titlebar')
|
this.title_bar = new bricks.HBox({css:'titlebar', cheight:2, width:'100%'});
|
||||||
this.moving_w = this.title_bar;
|
this.moving_w = this.title_bar;
|
||||||
this.parent_add_widget(this.title_bar);
|
super.add_widget(this.title_bar);
|
||||||
this.build_title_bar();
|
this.build_title_bar();
|
||||||
var filler = new bricks.Filler({});
|
var filler = new bricks.Filler({});
|
||||||
this.parent_add_widget(filler)
|
super.add_widget(filler)
|
||||||
this.content_w = new bricks.Layout({});
|
this.content_w = new bricks.Layout({});
|
||||||
this.content_w.set_css('flexbox');
|
this.content_w.set_css('flexbox');
|
||||||
this.auto_open = true;
|
|
||||||
filler.add_widget(this.content_w);
|
filler.add_widget(this.content_w);
|
||||||
// console.log(this.auto_open, 'opts=', opts);
|
if (this.auto_open){
|
||||||
}
|
this.open();
|
||||||
async load_content(){
|
|
||||||
var dic = {
|
|
||||||
"widgettype":"urlwidget",
|
|
||||||
"options":{
|
|
||||||
"params":this.params,
|
|
||||||
"url":this.url
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
var w = bricks.widgetBuild(dic, bricks.Body);
|
|
||||||
this.add_widget(w);
|
|
||||||
}
|
}
|
||||||
build_title_bar(){
|
build_title_bar(){
|
||||||
var icon = new bricks.Icon({
|
var icon = new bricks.Icon({
|
||||||
@ -406,22 +410,6 @@ bricks.PopupWindow = class extends bricks.Popup {
|
|||||||
this.title_w.set_text(txt);
|
this.title_w.set_text(txt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
parent_add_widget(w, index){
|
|
||||||
var ao = this.autho_open;
|
|
||||||
this.auto_open = false;
|
|
||||||
super.add_widget(w, index);
|
|
||||||
this.auto_open = ao;
|
|
||||||
}
|
|
||||||
add_widget(w, index){
|
|
||||||
// console.log('auto_open=', this.auto_open);
|
|
||||||
this.content_w.add_widget(w, index);
|
|
||||||
if (this.auto_open){
|
|
||||||
this.open();
|
|
||||||
} else {
|
|
||||||
this.open();
|
|
||||||
// console.log('auto_open is false, not auto open');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
open(){
|
open(){
|
||||||
var f = bricks.app.docks.find(o => {
|
var f = bricks.app.docks.find(o => {
|
||||||
if (o == this){
|
if (o == this){
|
||||||
@ -439,6 +427,15 @@ bricks.PopupWindow = class extends bricks.Popup {
|
|||||||
}
|
}
|
||||||
super.dismiss()
|
super.dismiss()
|
||||||
}
|
}
|
||||||
|
add_widget(w, i){
|
||||||
|
return this.content_w.add_widget(w, i);
|
||||||
|
}
|
||||||
|
remove_widget(w){
|
||||||
|
return this.content_w.remove_widget(w);
|
||||||
|
}
|
||||||
|
clear_widgets(){
|
||||||
|
return this.content_w.clear_widgets();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
bricks.Dock = class extends bricks.HBox {
|
bricks.Dock = class extends bricks.HBox {
|
||||||
constructor(opts){
|
constructor(opts){
|
||||||
|
@ -5,6 +5,9 @@ var inputdata2dic = function(data){
|
|||||||
var d = {}
|
var d = {}
|
||||||
for (let k of data.keys()){
|
for (let k of data.keys()){
|
||||||
var x = data.get(k);
|
var x = data.get(k);
|
||||||
|
if (k == 'prompt'){
|
||||||
|
x = bricks.escapeSpecialChars(x);
|
||||||
|
}
|
||||||
d[k] = x;
|
d[k] = x;
|
||||||
}
|
}
|
||||||
return d;
|
return d;
|
||||||
|
Loading…
Reference in New Issue
Block a user