2025-10-09 10:06:29 +02:00
|
|
|
"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;
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-09 11:35:35 +02:00
|
|
|
handleEvent(e) {
|
2025-10-09 10:06:29 +02:00
|
|
|
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;
|
|
|
|
|
}
|
2025-10-09 11:35:35 +02:00
|
|
|
}
|
2025-10-09 10:06:29 +02:00
|
|
|
|
|
|
|
|
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');
|
2025-10-09 11:35:35 +02:00
|
|
|
this.#element.addEventListener('click', this);
|
2025-10-09 10:06:29 +02:00
|
|
|
this.#element.element_name = element_name;
|
|
|
|
|
this.#element.appendChild(element_name);
|
|
|
|
|
}
|
|
|
|
|
}
|