Files
trweb/js/trtorrent.js

60 lines
1.7 KiB
JavaScript

"use strict";
class trtorrent {
#element = document.createElement('div');
getElement() {
return this.#element;
}
#hash;
#name = '## NAME NOT SET ##';
#element_server = {};
addControl(srv, control) {
this.#element_server[srv] = control;
this.#element.appendChild(control.getElement());
}
getControl(srv) {
return this.#element_server[srv];
}
#servers = {};
getStatus(srv) {
return this.#servers[srv];
}
setStatus(srv, status) {
this.#servers[srv] = status;
}
handleEvent(e) {
switch (e.type) {
case 'click':
if (e.currentTarget.hasAttributeNS('trweb', 'torrentlistfield')) {
switch (e.currentTarget.getAttributeNS('trweb', 'torrentlistfield')) {
case 'entry':
e.currentTarget.classList.toggle('trweb_hide_buttons');
e.stopPropagation();
break;
}
}
break;
}
}
constructor(hash) {
this.#hash = hash;
// set up DOM structure
let element_name = document.createElement('div');
element_name.classList.add('trweb_torrentlistname', 'col');
element_name.setAttributeNS('trweb', 'fieldid', 'displayname');
this.#element.torrent = this;
this.#element.classList.add('trweb_torrentlistentry', 'trweb_hide_buttons', 'row');
this.#element.setAttributeNS('trweb', 'torrentlistfield', 'entry');
this.#element.addEventListener('click', this);
this.#element.element_name = element_name;
this.#element.appendChild(element_name);
}
}