hedera-web/js/htk/column/button.js

77 lines
1.3 KiB
JavaScript
Raw Normal View History

2016-09-26 09:28:47 +00:00
module.exports = new Class({
Extends: Htk.Column,
Tag: 'htk-column-button',
Properties: {
image: {
type: String
,value: null
},
icon: {
2016-09-26 09:28:47 +00:00
type: String
2022-05-21 21:31:56 +00:00
,set: function(x) {
2016-09-26 09:28:47 +00:00
this._icon = x;
}
2022-05-21 21:31:56 +00:00
,get: function() {
2016-09-26 09:28:47 +00:00
return this._icon;
}
},
tip: {
type: String,
value: null
},
disabled: {
type: Boolean,
value: false
},
href: {
type: String,
value: null
},
target: {
type: String,
value: ''
}
},
initialize: function(props) {
this._cssClass = 'cell-button';
this.parent(props);
},
render: function(tr) {
var td = this.parent(tr);
var button;
if (this.href == null) {
button = this.createElement('button');
button.addEventListener('click',
this.buttonClicked.bind(this, this.value, tr, button));
} else {
button = this.createElement('a');
button.href = this.href;
button.target = this.target;
}
button.disabled = this.disabled;
td.appendChild(button);
2022-05-21 21:31:56 +00:00
var span = this.createElement('span');
span.className = 'material-symbols-rounded icon';
span.innerText = this._icon;
button.appendChild(span);
if (this.tip) {
button.title = _(this.tip);
2022-05-21 21:31:56 +00:00
span.title = _(this.tip);
}
return td;
},
buttonClicked: function(value, tr, button) {
this.signalEmit('clicked', value, tr.rowIndex - 1, button);
}
});