Files
trweb/js/trtorrent.js

54 lines
1.5 KiB
JavaScript
Raw Normal View History

2025-10-08 15:44:46 +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 = {};
#handler(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.#handler.bind(this));
this.#element.element_name = element_name;
this.#element.appendChild(element_name);
}
}