require('./social-bar.scss'); module.exports = new Class({ Extends: Vn.Component ,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); } } });