Do sorting
It be slow
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
class trdom_menubar {
|
class trdom_menubar {
|
||||||
#element = document.createElement('div');
|
#element = document.createElement('div');
|
||||||
getElement() {
|
get element() {
|
||||||
return this.#element;
|
return this.#element;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class trdom_torrentmanager extends EventTarget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#element = document.createElement('div');
|
#element = document.createElement('div');
|
||||||
getElement() {
|
get element() {
|
||||||
return this.#element;
|
return this.#element;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,6 +24,17 @@ class trdom_torrentmanager extends EventTarget {
|
|||||||
this.#element.classList.add('trweb_torrentlistview', 'container-fluid');
|
this.#element.classList.add('trweb_torrentlistview', 'container-fluid');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#putToPlace(torrent) {
|
||||||
|
let sortedTorrents = Object.values(this.#torrentDB).sort((a, b) => a.name.localeCompare(b.name));
|
||||||
|
let previous = sortedTorrents.find((val, ind, arr) => val.name.localeCompare(torrent.name) > 0);
|
||||||
|
if (previous == undefined) {
|
||||||
|
this.element.appendChild(torrent.element);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.element.insertBefore(torrent.element, previous.element);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
handleEvent(e) {
|
handleEvent(e) {
|
||||||
this.#log(6, `Handling event of type ${e.type}`);
|
this.#log(6, `Handling event of type ${e.type}`);
|
||||||
switch (e.type) {
|
switch (e.type) {
|
||||||
@@ -32,7 +43,9 @@ class trdom_torrentmanager extends EventTarget {
|
|||||||
if (this.#torrentDB[initHash] == null) {
|
if (this.#torrentDB[initHash] == null) {
|
||||||
let torrentCreated = new trtorrent(initHash);
|
let torrentCreated = new trtorrent(initHash);
|
||||||
this.#torrentDB[initHash] = torrentCreated;
|
this.#torrentDB[initHash] = torrentCreated;
|
||||||
this.#element.appendChild(torrentCreated.element);
|
torrentCreated.addEventListener('torrent-renamed', this);
|
||||||
|
this.#putToPlace(torrentCreated);
|
||||||
|
//this.#element.appendChild(torrentCreated.element);
|
||||||
for (const [srv, control] of Object.entries(e.detail.torrentControls)) {
|
for (const [srv, control] of Object.entries(e.detail.torrentControls)) {
|
||||||
torrentCreated.addControl(srv, control)
|
torrentCreated.addControl(srv, control)
|
||||||
}
|
}
|
||||||
@@ -42,6 +55,9 @@ class trdom_torrentmanager extends EventTarget {
|
|||||||
window.alert('We be ded, check console');
|
window.alert('We be ded, check console');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'torrent-renamed':
|
||||||
|
this.#putToPlace(e.target);
|
||||||
|
break;
|
||||||
case 'torrentserver-added':
|
case 'torrentserver-added':
|
||||||
let addedServer = e.detail.serverObject;
|
let addedServer = e.detail.serverObject;
|
||||||
for (const [hash, torrent] of Object.entries(this.#torrentDB)) {
|
for (const [hash, torrent] of Object.entries(this.#torrentDB)) {
|
||||||
|
|||||||
@@ -50,6 +50,12 @@ class trtorrent extends EventTarget {
|
|||||||
case 'torrent-updated':
|
case 'torrent-updated':
|
||||||
if (this.#name == null) {
|
if (this.#name == null) {
|
||||||
this.name = e.detail.torrentInfo.name;
|
this.name = e.detail.torrentInfo.name;
|
||||||
|
let nameChangeEvent = new CustomEvent('torrent-renamed', {
|
||||||
|
detail: {
|
||||||
|
torrentHash: this.#hash
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.dispatchEvent(nameChangeEvent);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
10
js/trweb.js
10
js/trweb.js
@@ -72,13 +72,13 @@ class trweb {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#updateTorrentDisplay(torrent) {
|
#updateTorrentDisplay(torrent) {
|
||||||
let txt_name = torrent.getElement().element_name;
|
let txt_name = torrent.element.element_name;
|
||||||
nukeChildren(txt_name);
|
nukeChildren(txt_name);
|
||||||
txt_name.appendChild(document.createTextNode(torrent.name));
|
txt_name.appendChild(document.createTextNode(torrent.name));
|
||||||
|
|
||||||
for (const srv of Object.keys(this.#dom_servermanager.getServers())) {
|
for (const srv of Object.keys(this.#dom_servermanager.getServers())) {
|
||||||
let control = torrent.getControl(srv);
|
let control = torrent.getControl(srv);
|
||||||
let control_element = control.getElement();
|
let control_element = control.element;
|
||||||
let status = control_element.element_status;
|
let status = control_element.element_status;
|
||||||
|
|
||||||
control_element.classList.remove(
|
control_element.classList.remove(
|
||||||
@@ -155,8 +155,8 @@ class trweb {
|
|||||||
|
|
||||||
this.#container = document.getElementById(this.#container);
|
this.#container = document.getElementById(this.#container);
|
||||||
this.#container.classList.add('trweb_container');
|
this.#container.classList.add('trweb_container');
|
||||||
this.#container.appendChild(this.#dom_menubar.getElement());
|
this.#container.appendChild(this.#dom_menubar.element);
|
||||||
this.#container.appendChild(this.#dom_torrentmanagger.getElement());
|
this.#container.appendChild(this.#dom_torrentmanagger.element);
|
||||||
this.#container.appendChild(this.#guiFooter);
|
this.#container.appendChild(this.#guiFooter);
|
||||||
|
|
||||||
this.#dom_servermanager.loadServers();
|
this.#dom_servermanager.loadServers();
|
||||||
@@ -192,7 +192,7 @@ class trweb {
|
|||||||
list.sort((a, b) => a.name.localeCompare(b.name));
|
list.sort((a, b) => a.name.localeCompare(b.name));
|
||||||
|
|
||||||
for (const torrent of list) {
|
for (const torrent of list) {
|
||||||
this.#dom_torrentmanagger.getElement().appendChild(torrent.element);
|
this.#dom_torrentmanagger.element.appendChild(torrent.element);
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user