bricks/bricks/uitype.js
Hermes Agent 6f5e8fde9d fix: password字段表头显示title而非******
- uitype.js: ViewBuilder检查user_data区分表头/数据行
- uitypesdef.js: passwordViewBuilder无rec时显示label/name
- views.js: ViewPassword无row_data时显示value/label/name
2026-06-18 11:41:47 +08:00

49 lines
1.4 KiB
JavaScript

var bricks = window.bricks || {};
bricks.uiViewers = {};
bricks.add_ViewBuilder = function(uitype, handler){
bricks.uiViewers[uitype] = handler;
}
bricks.get_ViewBuilder = function(uitype){
return bricks.uiViewers[uitype];
}
bricks.add_ViewBuilder('str', function(opts){
var options = bricks.extend({}, opts);
options.otext = opts.value;
options.i18n = true;
return new bricks.Text(options);
});
bricks.add_ViewBuilder('icon', function(opts){
var options = bricks.extend({}, opts);
options.url = opts.value;
return new bricks.Icon(options);
});
bricks.add_ViewBuilder('code', function(opts){
var textField = opts.textField || 'text';
var valueField = opts.name;
var txt;
if (opts.user_data) {
txt = opts.user_data[textField] || opts.user_data[valueField]||'';
} else {
txt = opts.value || '';
}
var options = bricks.extend({}, opts);
options.otext = txt;
options.i18n = true;
return new bricks.Text(options);
});
bricks.add_ViewBuilder('password', function(opts){
var options = bricks.extend({}, opts);
options.otext = opts.user_data ? '******' : (opts.value || '******');
options.i18n = true;
return new bricks.Text(options);
});
bricks.add_ViewBuilder('hide', function(opts){
return new bricks.JsWidget({});
});
bricks.add_ViewBuilder('audio', function(opts){
var options = bricks.extend({}, opts);
var url = options.value;
return new bricks.AudioPlayer({url:url,autoplay:false});
});