hedera-web/js/hedera/social-bar.js

65 lines
1.3 KiB
JavaScript

module.exports = new Class({
Extends: Htk.Widget
,Tag: 'htk-social-bar'
,Properties: {
conn: {
type: Db.Connection
,set: function(x) {
this._conn = x;
this._refresh();
}
,get: function() {
return this._conn;
}
},
priority: {
type: Number
,set: function(x) {
this._priority = x;
this._refresh();
}
,get: function() {
return this._priority;
}
}
}
,_priority: 0
,initialize: function() {
var node = this.createRoot('div');
node.className = 'htk-social-bar';
}
,_refresh: function() {
if (!this._conn || this._priority === null)
return;
const params = {priority: this._priority};
var query = 'SELECT title, link, icon FROM social '
+'WHERE priority >= #priority ORDER BY priority';
this._conn.execQuery(query, this._onQueryDone.bind(this), params);
}
,_onQueryDone: function(resultSet) {
Vn.Node.removeChilds(this._node);
var res = resultSet.fetchResult();
while (res.next()) {
var a = this.createElement('a');
a.href = res.get('link');
a.target = '_blank';
this._node.appendChild(a);
var img = this.createElement('img');
img.src = 'image/social/'+ res.get('icon');
img.alt = res.get('title');
img.title = res.get('title');
a.appendChild(img);
}
}
});