mirror of
https://github.com/leoherzog/TorrentParts.git
synced 2026-01-25 12:48:07 -08:00
Create Add and Remove Row Buttons
This commit is contained in:
56
bundle.js
56
bundle.js
@@ -11899,9 +11899,11 @@ var createdBy = document.getElementById('createdBy');
|
|||||||
var comment = document.getElementById('comment');
|
var comment = document.getElementById('comment');
|
||||||
var hash = document.getElementById('hash');
|
var hash = document.getElementById('hash');
|
||||||
var addTrackers = document.getElementById('addTrackers');
|
var addTrackers = document.getElementById('addTrackers');
|
||||||
|
var addTracker = document.getElementById('addTracker');
|
||||||
var removeTrackers = document.getElementById('removeTrackers');
|
var removeTrackers = document.getElementById('removeTrackers');
|
||||||
var announce = document.getElementById('announce');
|
var announce = document.getElementById('announce');
|
||||||
var urlList = document.getElementById('urlList');
|
var urlList = document.getElementById('urlList');
|
||||||
|
var addWebseed = document.getElementById('addWebseed');
|
||||||
var removeWebseeds = document.getElementById('removeWebseeds');
|
var removeWebseeds = document.getElementById('removeWebseeds');
|
||||||
var files = document.getElementById('filesBody');
|
var files = document.getElementById('filesBody');
|
||||||
var copyURL = document.getElementById('copyURL');
|
var copyURL = document.getElementById('copyURL');
|
||||||
@@ -11948,11 +11950,18 @@ function start() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
name.addEventListener('input', propertyChange);
|
name.addEventListener('input', propertyChange);
|
||||||
|
name.addEventListener('change', propertyChange);
|
||||||
|
name.addEventListener('reset', propertyChange);
|
||||||
|
name.addEventListener('paste', propertyChange);
|
||||||
reset.addEventListener('click', resetProperties);
|
reset.addEventListener('click', resetProperties);
|
||||||
createdBy.addEventListener('change', propertyChange);
|
|
||||||
comment.addEventListener('input', propertyChange);
|
comment.addEventListener('input', propertyChange);
|
||||||
|
comment.addEventListener('change', propertyChange);
|
||||||
|
comment.addEventListener('reset', propertyChange);
|
||||||
|
comment.addEventListener('paste', propertyChange);
|
||||||
addTrackers.addEventListener('click', addCurrentTrackers);
|
addTrackers.addEventListener('click', addCurrentTrackers);
|
||||||
|
addTracker.addEventListener('click', addRow);
|
||||||
removeTrackers.addEventListener('click', removeCurrentTrackers);
|
removeTrackers.addEventListener('click', removeCurrentTrackers);
|
||||||
|
addWebseed.addEventListener('click', addRow);
|
||||||
removeWebseeds.addEventListener('click', removeCurrentWebseeds);
|
removeWebseeds.addEventListener('click', removeCurrentWebseeds);
|
||||||
|
|
||||||
if (window.location.hash) {
|
if (window.location.hash) {
|
||||||
@@ -12007,14 +12016,22 @@ function display() {
|
|||||||
announce.innerHTML = "";
|
announce.innerHTML = "";
|
||||||
if (parsed.announce && parsed.announce.length) {
|
if (parsed.announce && parsed.announce.length) {
|
||||||
for (let i = 0; i < parsed.announce.length; i++) {
|
for (let i = 0; i < parsed.announce.length; i++) {
|
||||||
|
let row = document.createElement('div');
|
||||||
|
row.className = 'announce';
|
||||||
|
row.dataset.index = i;
|
||||||
let tracker = document.createElement('input');
|
let tracker = document.createElement('input');
|
||||||
tracker.className = 'tracker';
|
|
||||||
tracker.type = 'text';
|
tracker.type = 'text';
|
||||||
tracker.value = parsed.announce[i];
|
tracker.value = parsed.announce[i];
|
||||||
tracker.dataset.index = i;
|
tracker.dataset.index = i;
|
||||||
tracker.dataset.group = 'announce';
|
tracker.dataset.group = 'announce';
|
||||||
tracker.addEventListener('input', propertyChange);
|
tracker.addEventListener('input', propertyChange);
|
||||||
announce.appendChild(tracker);
|
row.appendChild(tracker);
|
||||||
|
let remove = document.createElement('button');
|
||||||
|
remove.dataset.index = i;
|
||||||
|
remove.innerHTML = '<span class="fas fa-minus"></span>';
|
||||||
|
remove.addEventListener('click', removeRow);
|
||||||
|
row.appendChild(remove);
|
||||||
|
announce.appendChild(row);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
announce.innerHTML = "<em>No trackers specified in the URL/File provided</em>";
|
announce.innerHTML = "<em>No trackers specified in the URL/File provided</em>";
|
||||||
@@ -12023,14 +12040,22 @@ function display() {
|
|||||||
urlList.innerHTML = "";
|
urlList.innerHTML = "";
|
||||||
if (parsed.urlList && parsed.urlList.length) {
|
if (parsed.urlList && parsed.urlList.length) {
|
||||||
for (let i = 0; i < parsed.urlList.length; i++) {
|
for (let i = 0; i < parsed.urlList.length; i++) {
|
||||||
|
let row = document.createElement('div');
|
||||||
|
row.className = 'urlList';
|
||||||
|
row.dataset.index = i;
|
||||||
let webseed = document.createElement('input');
|
let webseed = document.createElement('input');
|
||||||
webseed.className = 'webseed';
|
|
||||||
webseed.type = 'text';
|
webseed.type = 'text';
|
||||||
webseed.value = parsed.urlList[i];
|
webseed.value = parsed.urlList[i];
|
||||||
webseed.dataset.index = i;
|
webseed.dataset.index = i;
|
||||||
webseed.dataset.group = 'urlList';
|
webseed.dataset.group = 'urlList';
|
||||||
webseed.addEventListener('input', propertyChange);
|
webseed.addEventListener('input', propertyChange);
|
||||||
urlList.appendChild(webseed);
|
row.appendChild(webseed);
|
||||||
|
let remove = document.createElement('button');
|
||||||
|
remove.dataset.index = i;
|
||||||
|
remove.innerHTML = '<span class="fas fa-minus"></span>';
|
||||||
|
remove.addEventListener('click', removeRow);
|
||||||
|
row.appendChild(remove);
|
||||||
|
urlList.appendChild(row);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
urlList.innerHTML = "<em>No webseed URLs in the URL/File provided</em>";
|
urlList.innerHTML = "<em>No webseed URLs in the URL/File provided</em>";
|
||||||
@@ -12109,13 +12134,13 @@ function getFontAwesomeIconForMimetype(mimetype) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function propertyChange(e) {
|
function propertyChange(e) {
|
||||||
if (e.target.dataset.group) {
|
if (this.dataset.group) {
|
||||||
parsed[e.target.dataset.group][e.target.dataset.index] = e.target.value || "";
|
parsed[this.dataset.group][this.dataset.index] = this.value || "";
|
||||||
} else {
|
} else {
|
||||||
parsed[e.target.id] = e.target.value || "";
|
parsed[this.id] = this.value || "";
|
||||||
}
|
}
|
||||||
|
window.location.hash = parser.toMagnetURI(parsed);
|
||||||
updateModified();
|
updateModified();
|
||||||
display();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetProperties() {
|
function resetProperties() {
|
||||||
@@ -12160,6 +12185,17 @@ function removeCurrentTrackers() {
|
|||||||
display();
|
display();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addRow() {
|
||||||
|
console.log(this.dataset.type);
|
||||||
|
parsed[this.dataset.type].push("");
|
||||||
|
display();
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeRow() {
|
||||||
|
parsed[this.parentElement.className].splice(this.parentElement.dataset.index, 1);
|
||||||
|
display();
|
||||||
|
}
|
||||||
|
|
||||||
function removeCurrentWebseeds() {
|
function removeCurrentWebseeds() {
|
||||||
parsed.urlList = [];
|
parsed.urlList = [];
|
||||||
updateModified();
|
updateModified();
|
||||||
@@ -12167,9 +12203,7 @@ function removeCurrentWebseeds() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateModified() {
|
function updateModified() {
|
||||||
created.value = new Date().toISOString().slice(0, 19);
|
|
||||||
parsed.created = new Date();
|
parsed.created = new Date();
|
||||||
createdBy.value = "Torrent Parts <https://torrent.parts/>";
|
|
||||||
parsed.createdBy = "Torrent Parts <https://torrent.parts/>";
|
parsed.createdBy = "Torrent Parts <https://torrent.parts/>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10
index.html
10
index.html
@@ -52,16 +52,22 @@
|
|||||||
<i class="fas fa-plus fa-stack-1x fa-inverse" data-fa-transform="down-2"></i>
|
<i class="fas fa-plus fa-stack-1x fa-inverse" data-fa-transform="down-2"></i>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
<button id="addTracker" data-type="announce">
|
||||||
|
<span class="fas fa-plus"></span>
|
||||||
|
</button>
|
||||||
<button id="removeTrackers">
|
<button id="removeTrackers">
|
||||||
<span class="fas fa-trash"></span>
|
<span class="fas fa-eraser"></span>
|
||||||
</button>
|
</button>
|
||||||
<div id="announce"></div>
|
<div id="announce"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="urlList">Webseed URLs</label>
|
<label for="urlList">Webseed URLs</label>
|
||||||
|
<button id="addWebseed" data-type="urlList">
|
||||||
|
<span class="fas fa-plus"></span>
|
||||||
|
</button>
|
||||||
<button id="removeWebseeds">
|
<button id="removeWebseeds">
|
||||||
<span class="fas fa-trash"></span>
|
<span class="fas fa-eraser"></span>
|
||||||
</button>
|
</button>
|
||||||
<div id="urlList"></div>
|
<div id="urlList"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
56
parse.js
56
parse.js
@@ -13,9 +13,11 @@ var createdBy = document.getElementById('createdBy');
|
|||||||
var comment = document.getElementById('comment');
|
var comment = document.getElementById('comment');
|
||||||
var hash = document.getElementById('hash');
|
var hash = document.getElementById('hash');
|
||||||
var addTrackers = document.getElementById('addTrackers');
|
var addTrackers = document.getElementById('addTrackers');
|
||||||
|
var addTracker = document.getElementById('addTracker');
|
||||||
var removeTrackers = document.getElementById('removeTrackers');
|
var removeTrackers = document.getElementById('removeTrackers');
|
||||||
var announce = document.getElementById('announce');
|
var announce = document.getElementById('announce');
|
||||||
var urlList = document.getElementById('urlList');
|
var urlList = document.getElementById('urlList');
|
||||||
|
var addWebseed = document.getElementById('addWebseed');
|
||||||
var removeWebseeds = document.getElementById('removeWebseeds');
|
var removeWebseeds = document.getElementById('removeWebseeds');
|
||||||
var files = document.getElementById('filesBody');
|
var files = document.getElementById('filesBody');
|
||||||
var copyURL = document.getElementById('copyURL');
|
var copyURL = document.getElementById('copyURL');
|
||||||
@@ -62,11 +64,18 @@ function start() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
name.addEventListener('input', propertyChange);
|
name.addEventListener('input', propertyChange);
|
||||||
|
name.addEventListener('change', propertyChange);
|
||||||
|
name.addEventListener('reset', propertyChange);
|
||||||
|
name.addEventListener('paste', propertyChange);
|
||||||
reset.addEventListener('click', resetProperties);
|
reset.addEventListener('click', resetProperties);
|
||||||
createdBy.addEventListener('change', propertyChange);
|
|
||||||
comment.addEventListener('input', propertyChange);
|
comment.addEventListener('input', propertyChange);
|
||||||
|
comment.addEventListener('change', propertyChange);
|
||||||
|
comment.addEventListener('reset', propertyChange);
|
||||||
|
comment.addEventListener('paste', propertyChange);
|
||||||
addTrackers.addEventListener('click', addCurrentTrackers);
|
addTrackers.addEventListener('click', addCurrentTrackers);
|
||||||
|
addTracker.addEventListener('click', addRow);
|
||||||
removeTrackers.addEventListener('click', removeCurrentTrackers);
|
removeTrackers.addEventListener('click', removeCurrentTrackers);
|
||||||
|
addWebseed.addEventListener('click', addRow);
|
||||||
removeWebseeds.addEventListener('click', removeCurrentWebseeds);
|
removeWebseeds.addEventListener('click', removeCurrentWebseeds);
|
||||||
|
|
||||||
if (window.location.hash) {
|
if (window.location.hash) {
|
||||||
@@ -121,14 +130,22 @@ function display() {
|
|||||||
announce.innerHTML = "";
|
announce.innerHTML = "";
|
||||||
if (parsed.announce && parsed.announce.length) {
|
if (parsed.announce && parsed.announce.length) {
|
||||||
for (let i = 0; i < parsed.announce.length; i++) {
|
for (let i = 0; i < parsed.announce.length; i++) {
|
||||||
|
let row = document.createElement('div');
|
||||||
|
row.className = 'announce';
|
||||||
|
row.dataset.index = i;
|
||||||
let tracker = document.createElement('input');
|
let tracker = document.createElement('input');
|
||||||
tracker.className = 'tracker';
|
|
||||||
tracker.type = 'text';
|
tracker.type = 'text';
|
||||||
tracker.value = parsed.announce[i];
|
tracker.value = parsed.announce[i];
|
||||||
tracker.dataset.index = i;
|
tracker.dataset.index = i;
|
||||||
tracker.dataset.group = 'announce';
|
tracker.dataset.group = 'announce';
|
||||||
tracker.addEventListener('input', propertyChange);
|
tracker.addEventListener('input', propertyChange);
|
||||||
announce.appendChild(tracker);
|
row.appendChild(tracker);
|
||||||
|
let remove = document.createElement('button');
|
||||||
|
remove.dataset.index = i;
|
||||||
|
remove.innerHTML = '<span class="fas fa-minus"></span>';
|
||||||
|
remove.addEventListener('click', removeRow);
|
||||||
|
row.appendChild(remove);
|
||||||
|
announce.appendChild(row);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
announce.innerHTML = "<em>No trackers specified in the URL/File provided</em>";
|
announce.innerHTML = "<em>No trackers specified in the URL/File provided</em>";
|
||||||
@@ -137,14 +154,22 @@ function display() {
|
|||||||
urlList.innerHTML = "";
|
urlList.innerHTML = "";
|
||||||
if (parsed.urlList && parsed.urlList.length) {
|
if (parsed.urlList && parsed.urlList.length) {
|
||||||
for (let i = 0; i < parsed.urlList.length; i++) {
|
for (let i = 0; i < parsed.urlList.length; i++) {
|
||||||
|
let row = document.createElement('div');
|
||||||
|
row.className = 'urlList';
|
||||||
|
row.dataset.index = i;
|
||||||
let webseed = document.createElement('input');
|
let webseed = document.createElement('input');
|
||||||
webseed.className = 'webseed';
|
|
||||||
webseed.type = 'text';
|
webseed.type = 'text';
|
||||||
webseed.value = parsed.urlList[i];
|
webseed.value = parsed.urlList[i];
|
||||||
webseed.dataset.index = i;
|
webseed.dataset.index = i;
|
||||||
webseed.dataset.group = 'urlList';
|
webseed.dataset.group = 'urlList';
|
||||||
webseed.addEventListener('input', propertyChange);
|
webseed.addEventListener('input', propertyChange);
|
||||||
urlList.appendChild(webseed);
|
row.appendChild(webseed);
|
||||||
|
let remove = document.createElement('button');
|
||||||
|
remove.dataset.index = i;
|
||||||
|
remove.innerHTML = '<span class="fas fa-minus"></span>';
|
||||||
|
remove.addEventListener('click', removeRow);
|
||||||
|
row.appendChild(remove);
|
||||||
|
urlList.appendChild(row);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
urlList.innerHTML = "<em>No webseed URLs in the URL/File provided</em>";
|
urlList.innerHTML = "<em>No webseed URLs in the URL/File provided</em>";
|
||||||
@@ -223,13 +248,13 @@ function getFontAwesomeIconForMimetype(mimetype) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function propertyChange(e) {
|
function propertyChange(e) {
|
||||||
if (e.target.dataset.group) {
|
if (this.dataset.group) {
|
||||||
parsed[e.target.dataset.group][e.target.dataset.index] = e.target.value || "";
|
parsed[this.dataset.group][this.dataset.index] = this.value || "";
|
||||||
} else {
|
} else {
|
||||||
parsed[e.target.id] = e.target.value || "";
|
parsed[this.id] = this.value || "";
|
||||||
}
|
}
|
||||||
|
window.location.hash = parser.toMagnetURI(parsed);
|
||||||
updateModified();
|
updateModified();
|
||||||
display();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetProperties() {
|
function resetProperties() {
|
||||||
@@ -274,6 +299,17 @@ function removeCurrentTrackers() {
|
|||||||
display();
|
display();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addRow() {
|
||||||
|
console.log(this.dataset.type);
|
||||||
|
parsed[this.dataset.type].push("");
|
||||||
|
display();
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeRow() {
|
||||||
|
parsed[this.parentElement.className].splice(this.parentElement.dataset.index, 1);
|
||||||
|
display();
|
||||||
|
}
|
||||||
|
|
||||||
function removeCurrentWebseeds() {
|
function removeCurrentWebseeds() {
|
||||||
parsed.urlList = [];
|
parsed.urlList = [];
|
||||||
updateModified();
|
updateModified();
|
||||||
@@ -281,9 +317,7 @@ function removeCurrentWebseeds() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateModified() {
|
function updateModified() {
|
||||||
created.value = new Date().toISOString().slice(0, 19);
|
|
||||||
parsed.created = new Date();
|
parsed.created = new Date();
|
||||||
createdBy.value = "Torrent Parts <https://torrent.parts/>";
|
|
||||||
parsed.createdBy = "Torrent Parts <https://torrent.parts/>";
|
parsed.createdBy = "Torrent Parts <https://torrent.parts/>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user