bugfix
This commit is contained in:
parent
edae7ca336
commit
71cdf450b9
100
bricks/datarow.js
Normal file
100
bricks/datarow.js
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
var bricks = window.bricks || {};
|
||||||
|
|
||||||
|
bricks.DataRow = class extends bricks.HBox {
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
toolbar:[
|
||||||
|
]
|
||||||
|
fields:[]
|
||||||
|
css
|
||||||
|
header_css
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
constructor(opts){
|
||||||
|
super(opts);
|
||||||
|
}
|
||||||
|
render_header(editable, checkable){
|
||||||
|
this.render(editable, checkable, true);
|
||||||
|
}
|
||||||
|
render_data(editable, checkable){
|
||||||
|
this.render(editable, checkable, false);
|
||||||
|
}
|
||||||
|
render(editable, checkable, header){
|
||||||
|
if (checkable){
|
||||||
|
var w = new bricks.UiCheck({name:'c',value:false})
|
||||||
|
this.add_widget(w);
|
||||||
|
w.bind(changed, this.get_check_state.bind(this));
|
||||||
|
}
|
||||||
|
this.build_toolbar(editable, header);
|
||||||
|
this.build_fields(header);
|
||||||
|
}
|
||||||
|
get_check_state(e){
|
||||||
|
d = e.target.getValue()
|
||||||
|
this.dispatch('checked', d.c)
|
||||||
|
}
|
||||||
|
build_toolbar(editable, header){
|
||||||
|
var tools = [];
|
||||||
|
const reserved = ['add', 'update', 'delete'];
|
||||||
|
|
||||||
|
if (editable){
|
||||||
|
if (header){
|
||||||
|
tools.push({
|
||||||
|
name:'add',
|
||||||
|
tip:'add new record',
|
||||||
|
icon:this.editable.add_icon || bricks_resource('imgs/add.png')
|
||||||
|
});
|
||||||
|
tools.push({
|
||||||
|
name:'blankicon'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
tools.push({
|
||||||
|
});
|
||||||
|
tools.push({
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (header){
|
||||||
|
if (this.toolbar){
|
||||||
|
this.toolbar.tools.foreach(t => if (not reserved.includes(t.name)) tools.push({name:'blankicon'}));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.toolbar){
|
||||||
|
this.toolbar.tools.foreach(t => if (not reserved.includes(t.name)) tools.push(t));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var toolbar = bricks.extend({cwidth:2.5}, this.toolbar || {});
|
||||||
|
toolbar.tools = tools;
|
||||||
|
var w = new bricks.IconBar(desc);
|
||||||
|
this.add_widget(w);
|
||||||
|
this.event_names = []
|
||||||
|
for(var i=0;i<tools.length;i++){
|
||||||
|
this.event_names.push(tools[i].name);
|
||||||
|
w.bind(tools[i].name, this.dispatch(tools[i].name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
build_fields(header){
|
||||||
|
for (var i=0;i<this.fields.length;i++){
|
||||||
|
var f = this.fields[i]
|
||||||
|
var opts = {
|
||||||
|
margin:'3px';
|
||||||
|
};
|
||||||
|
if (f.cwidth ){
|
||||||
|
opts.cwidth = f.cwidth;
|
||||||
|
} else if (f.width) {
|
||||||
|
opts.width = f.width
|
||||||
|
} else {
|
||||||
|
opts.width = '80px'
|
||||||
|
}
|
||||||
|
if (header){
|
||||||
|
opts.otext = f.label || f.name;
|
||||||
|
opts.i18n = true;
|
||||||
|
} else {
|
||||||
|
opts.text:f.value||f.defaultvalue||'';
|
||||||
|
}
|
||||||
|
var w = bricks.Text(opts);
|
||||||
|
this.add_widget(w)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bricks.Factory.register('DataRow', bricks.DataRow);
|
30
bricks/tabular.js
Normal file
30
bricks/tabular.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
var bricks = window.bricks || {};
|
||||||
|
bricks.Tabular = class extends DynamicAccordion {
|
||||||
|
constructor(opts){
|
||||||
|
super(opts);
|
||||||
|
}
|
||||||
|
async build_info(item, record){
|
||||||
|
if (record){
|
||||||
|
/* data row
|
||||||
|
*/
|
||||||
|
var view = bricks.apply_data(this.record_View, record);
|
||||||
|
var dr = bricks.DataRow(view);
|
||||||
|
dr.render(this.editable, this.checkable, false);
|
||||||
|
dr.bind('update', this.update_record.bind(this, record, item));
|
||||||
|
dr.bind('delete', this.delete_record.bind(this, record, item));
|
||||||
|
for (e in dr.event_names){
|
||||||
|
dr.bind(e, this.record_event_handle.bind(this, record, item));
|
||||||
|
}
|
||||||
|
return dr;
|
||||||
|
} else {
|
||||||
|
var view = bricks.apply_data(this.record_View, record);
|
||||||
|
var dr = bricks.DataRow(view);
|
||||||
|
dr.render(this.editable, this.checkable, true);
|
||||||
|
dr.bind('add', this.add_record.bind(this, record, item));
|
||||||
|
return dr;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bricks.Factory.register('Tabular', bricks.Tabular);
|
@ -7,9 +7,21 @@
|
|||||||
# is_online(id)
|
# is_online(id)
|
||||||
# 检查id指定的客户端是否在线
|
# 检查id指定的客户端是否在线
|
||||||
# user = await get_user()
|
# user = await get_user()
|
||||||
# ws_pool.register(user)
|
userid = 'kkkkk'
|
||||||
|
ws_pool.register(userid)
|
||||||
resp = 'resp=' + ws_data
|
resp = 'resp=' + ws_data
|
||||||
print(f'{resp=}')
|
if ws_pool.is_online(userid):
|
||||||
|
print(f'{userid=} is online')
|
||||||
|
ret = {
|
||||||
|
'efew':1,
|
||||||
|
'g':3
|
||||||
|
}
|
||||||
|
r = await ws_pool.sendto(ret, userid)
|
||||||
|
print(f'{ret=} send return {r}')
|
||||||
|
else:
|
||||||
|
print(f'{userid=} is not online')
|
||||||
|
|
||||||
|
print(f'{resp=}, {ws_pool.get_data()=}')
|
||||||
await ws_pool.sendto(resp)
|
await ws_pool.sendto(resp)
|
||||||
# if ws_pool.is_online('bington'):
|
# if ws_pool.is_online('bington'):
|
||||||
# await ws_pool.sendto(resp, 'bington')
|
# await ws_pool.sendto(resp, 'bington')
|
||||||
|
Loading…
Reference in New Issue
Block a user