asciiblaster- draw irc art in your web browser |
git clone git://git.acid.vegas/asciiblaster.git |
Log | Files | Refs | Archive | README |
upload.js (2010B)
1 var upload = (function(){ 2 var el = document.getElementById("upload_input") 3 var button = document.getElementById("upload_button") 4 var uploading = false 5 6 function upload(blob, filename, tag, ascii){ 7 if (uploading) return 8 filename = filename || get_filename() 9 tag = tag || "shader" 10 11 button.innerHTML = "uploading..." 12 button.className = "uploading" 13 14 uploading = true 15 16 uploadImage({ 17 blob: blob, 18 ascii: ascii, 19 filename: filename, 20 username: user.username, 21 tag: tag, 22 success: function(data){ 23 24 // data.url 25 // data.filesize 26 // data.success 27 28 console.log(data); 29 el.style.display = "block" 30 el.value = data.url 31 el.focus() 32 setCaretToPos(el, 0) 33 button.innerHTML = "upload" 34 button.className = "" 35 uploading = false 36 }, 37 error: function(data){ 38 console.log(data) 39 console.log("error uploading: " + data.error) 40 button.innerHTML = "upload" 41 button.className = "" 42 uploading = false 43 } 44 }); 45 } 46 47 function uploadImage(opt){ 48 if (! opt.blob || ! opt.filename) return; 49 50 opt.username = opt.username || ""; 51 opt.success = opt.success || noop; 52 opt.error = opt.error || noop; 53 54 var form = new FormData(); 55 56 form.append("username", opt.username); 57 form.append("filename", opt.filename); 58 form.append("qqfile", opt.blob); 59 form.append("tag", opt.tag); 60 if (opt.ascii) { 61 form.append("ascii", opt.ascii); 62 } 63 64 var req = new XMLHttpRequest(); 65 req.open("POST", "/cgi-bin/im/shader/upload"); 66 req.onload = function(event) { 67 if (req.status == 200) { 68 var res = JSON.parse(req.responseText); 69 if (res.success) { 70 opt.success(res); 71 } 72 else { 73 opt.error(res); 74 } 75 } else { 76 opt.error({ success: false, error: req.status }); 77 } 78 }; 79 req.send(form); 80 } 81 82 return upload 83 })()