From b9ad37aef0be65306e4e303c21c842102f0c6a0a Mon Sep 17 00:00:00 2001 From: Leo Herzog Date: Wed, 24 Jun 2020 16:46:36 -0400 Subject: [PATCH] Register Change Listeners on Editable Fields --- bundle.js | 55 +++++++++++++++++------- index.html | 120 ++++++++++++++++++++++++++++------------------------- parse.js | 55 +++++++++++++++++------- 3 files changed, 145 insertions(+), 85 deletions(-) diff --git a/bundle.js b/bundle.js index 9066be0..4fa0c8c 100644 --- a/bundle.js +++ b/bundle.js @@ -11890,13 +11890,14 @@ const Buffer = require('Buffer'); const bytes = require('bytes'); const mime = require('mime-types'); +var properties = document.getElementById('properties'); var name = document.getElementById('name'); var creationDate = document.getElementById('creationDate'); var createdBy = document.getElementById('createdBy'); var comment = document.getElementById('comment'); var hash = document.getElementById('hash'); -var trackers = document.getElementById('trackers'); -var webseeds = document.getElementById('webseeds'); +var announce = document.getElementById('announce'); +var urlList = document.getElementById('urlList'); var files = document.getElementById('filesBody'); var copyURL = document.getElementById('copyURL'); var copyMagnet = document.getElementById('copyMagnet'); @@ -11937,6 +11938,11 @@ function start() { downloadTorrent.addEventListener('click', saveTorrent); + name.addEventListener('input', propertyChange); + creationDate.addEventListener('change', propertyChange); + createdBy.addEventListener('change', propertyChange); + comment.addEventListener('input', propertyChange); + if (window.location.hash) parse(window.location.hash.split('#')[1]); window.addEventListener('hashchange', function() { if (window.location.hash) parse(window.location.hash.split('#')[1]); }); @@ -11990,30 +11996,36 @@ function display() { comment.value = parsed.comment || ""; hash.value = parsed.infoHash; - trackers.innerHTML = ""; - if (parsed.announce) { - for (var url of parsed.announce) { + announce.innerHTML = ""; + if (parsed.announce && parsed.announce.length) { + for (let i = 0; i < parsed.announce.length; i++) { let tracker = document.createElement('input'); tracker.className = 'tracker'; tracker.type = 'text'; - tracker.value = url; - trackers.appendChild(tracker); + tracker.value = parsed.announce[i]; + tracker.dataset.index = i; + tracker.dataset.group = 'announce'; + tracker.addEventListener('input', propertyChange); + announce.appendChild(tracker); } } else { - trackers.innerHTML = "No trackers specified in the URL/File provided"; + announce.innerHTML = "No trackers specified in the URL/File provided"; } - webseeds.innerHTML = ""; + urlList.innerHTML = ""; if (parsed.urlList && parsed.urlList.length) { - for (var url of parsed.urlList) { + for (let i = 0; i < parsed.urlList.length; i++) { let webseed = document.createElement('input'); - webseed.className = 'tracker'; + webseed.className = 'webseed'; webseed.type = 'text'; - webseed.value = url; - webseeds.appendChild(webseed); + webseed.value = parsed.urlList[i]; + webseed.dataset.index = i; + webseed.dataset.group = 'urlList'; + webseed.addEventListener('input', propertyChange); + urlList.appendChild(webseed); } } else { - webseeds.innerHTML = "No webseed URLs in the URL/File provided"; + urlList.innerHTML = "No webseed URLs in the URL/File provided"; } files.innerHTML = ""; @@ -12030,6 +12042,8 @@ function display() { copyURL.setAttribute('data-clipboard-text', window.location.origin + "#" + parser.toMagnetURI(parsed)); copyMagnet.setAttribute('data-clipboard-text', parser.toMagnetURI(parsed)); + properties.style.display = 'block'; + } function createFileRow(icon, name, size) { @@ -12074,6 +12088,19 @@ function getFontAwesomeIconForMimetype(mimetype) { } } +function propertyChange(e) { + console.log(e); + if (e.target.dataset.group) { + parsed[e.target.dataset.group][e.target.dataset.index] = e.target.value; + } else { + parsed[e.target.id] = e.target.value; + } + if (e.target.id != "creationDate") creationDate.value = new Date().toISOString().slice(0, 19); + createdBy.value = "Torrent Parts "; + parsed.createdBy = "Torrent Parts "; + console.log(parsed); +} + // https://stackoverflow.com/a/36899900/2700296 function saveTorrent() { let data = parser.toTorrentFile(parsed); diff --git a/index.html b/index.html index f1b789a..1714b32 100644 --- a/index.html +++ b/index.html @@ -6,72 +6,78 @@ +

Torrent Parts

+
- - + +
or
- +
-
- - -
+