// ==UserScript== // @name PTH Drop Logfile // @version 0.3 // @description Enable dropping logfiles into a dropzone on the upload page // @author Chameleon // @include http*://passtheheadphones.me/upload.php* // @grant none // @run-at document-idle // @namespace https://greasyfork.org/users/87476 // @downloadURL none // ==/UserScript== (function() { 'use strict'; var inputs=document.getElementsByTagName('input'); for(var i=0; i 1) { if(field[0].id == 'image') continue; } makeDropzone(inp); } } /*var input=document.getElementById('logfields').getElementsByTagName('input')[0]; makeDropzone(input);*/ var script=document.createElement('script'); script.appendChild(document.createTextNode('AddLogField=('+AddLogField+'); makeDropzone=('+makeDropzone+'); dragenter=('+dragenter+'); drop=('+drop+');')); document.body.appendChild(script); }()); function AddLogField() { if (LogCount >= 200) { return; } var LogField = document.createElement("input"); LogField.type = "file"; LogField.id = "file"; LogField.name = "logfiles[]"; LogField.size = 50; var x = $('#logfields').raw(); x.appendChild(document.createElement("br")); x.appendChild(LogField); LogCount++; makeDropzone(LogField); } function makeDropzone(input) { var dropzone = document.createElement('div'); input.parentNode.appendChild(dropzone); dropzone.addEventListener("dragenter", dragenter, false); dropzone.addEventListener("dragover", dragenter, false); dropzone.addEventListener("drop", drop.bind(undefined, input), false); dropzone.innerHTML = 'Or drop files here'; dropzone.setAttribute('style', 'width: 400px; height: 30px; background: rgba(64,64,64,0.8); border: dashed; border-radius: 10px; margin: auto; text-align: center; font-size: 20px;'); input.setAttribute('hasDropzone', 'true'); } function dragenter(event) { event.preventDefault(); event.stopPropagation(); } function drop(input, event) { event.preventDefault(); event.stopPropagation(); /*event.dataTransfer.files = document.getElementById('file').files; console.log('here'); input.files = event.dataTransfer.files;*/ var e=new event.constructor(event.type, event); input.dispatchEvent(e); }