X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=files%2Fwizard.js;fp=files%2Fwizard.js;h=000e49cc2cf57fbd6a2191fb683b44b23b4a77bd;hp=0000000000000000000000000000000000000000;hb=437c5df6373cbf14cdaaa927655abe06f78b6d27;hpb=9e55351cd6b7618026477ab7d0d674af6cc8322a diff --git a/files/wizard.js b/files/wizard.js new file mode 100644 index 0000000..000e49c --- /dev/null +++ b/files/wizard.js @@ -0,0 +1,163 @@ +function OnBack() +{ + window.external.FinalBack(); +} + +function OnNext() +{ + var xml = window.external.Property("TransferManifest"); + var files = xml.selectNodes("transfermanifest/filelist/file"); + var form = document.getElementById('form1'); + + for (i = 0; i < files.length; i++) { + var postTag = xml.createNode(1, "post", ""); + postTag.setAttribute("href", "http://pr0n-internal.sesse.net/webdav/upload/"); + postTag.setAttribute("name", "image"); + + // event + if (form.existing.checked) { + var dataTag = xml.createNode(1, "formdata", ""); + dataTag.setAttribute("name", "event"); + dataTag.text = "test"; //form.existingevent.value; FIXME + postTag.appendChild(dataTag); + } else { + var dataTag = xml.createNode(1, "formdata", ""); + dataTag.setAttribute("name", "neweventid"); + dataTag.text = form.neweventid.value; + postTag.appendChild(dataTag); + + dataTag = xml.createNode(1, "formdata", ""); + dataTag.setAttribute("name", "neweventdate"); + dataTag.text = form.neweventdate.value; + postTag.appendChild(dataTag); + + dataTag = xml.createNode(1, "formdata", ""); + dataTag.setAttribute("name", "neweventdesc"); + dataTag.text = form.neweventdesc.value; + postTag.appendChild(dataTag); + } + + // who took this + if (form.others.checked) { + var dataTag = xml.createNode(1, "formdata", ""); + dataTag.setAttribute("name", "takenby"); + dataTag.text = form.other.value; + postTag.appendChild(dataTag); + } + + // original file size (to avoid the evil resizing) + dataTag = xml.createNode(1, "formdata", ""); + dataTag.setAttribute("name", "size"); + dataTag.text = files.item(i).getAttribute("size"); + postTag.appendChild(dataTag); + + files.item(i).appendChild(postTag); + } + + var uploadTag = xml.createNode(1, "uploadinfo", ""); + var htmluiTag = xml.createNode(1, "htmlui", ""); + htmluiTag.text = "http://pr0n.sesse.net/test/"; + uploadTag.appendChild(htmluiTag); + + /*var target = xml.createNode(1, "target", ""); + target.setAttribute("href", "https://pr0n-internal.sesse.net/webdav/upload/test/"); + uploadTag.appendChild(target); */ + + xml.documentElement.appendChild(uploadTag); + window.external.FinalNext(); +} + +function OnCancel() +{ + alert('OnCancel'); +} + +function somethingchanged() +{ + var valid = true; + var form = document.getElementById('form1'); + var disable_existingevent, disable_newevent; + + if (form.existing.checked) { + disable_existingevent = false; + disable_newevent = true; + + if (form.existingevent.value == '') { + valid = false; + } + } else { + disable_existingevent = true; + disable_newevent = false; + + // this matches 1:1 the checks done on the server + var id = form.neweventid.value; + var date = form.neweventdate.value; + var desc = form.neweventdesc.value; + + if (id.match(/^\s*$/) || !id.match(/^([a-zA-Z0-9-]+)$/)) { + valid = false; + } + if (date.match(/^\s*$/) || date.match(/[<>&]/) || date.length > 100) { + valid = false; + } + if (desc.match(/^\s*$/) || desc.match(/[<>&]/) || desc.length > 100) { + valid = false; + } + } + + // enable/disable the "existing event" form + form.existingevent.disabled = disable_existingevent; + + var extexts = getElementsByClass(document, 'existingeventtext', '*'); + for (i = 0; i < extexts.length; ++i) { + extexts[i].style.color = disable_existingevent ? 'gray' : ''; + } + + // enable/disable the "new event" form + form.neweventid.disabled = disable_newevent; + form.neweventdate.disabled = disable_newevent; + form.neweventdesc.disabled = disable_newevent; + + var netexts = getElementsByClass(document, 'neweventtext', '*'); + for (i = 0; i < netexts.length; ++i) { + netexts[i].style.color = disable_newevent ? 'gray' : ''; + } + + // and finally, the "who" form + var disable_who; + if (form.me.checked) { + disable_who = true; + } else { + disable_who = false; + + var who = form.other.value; + if (who.match(/^\s*$/) || who.match(/[<>&]/) || who.length > 100) { + valid = false; + } + } + + form.other.disabled = disable_who; + + var whotexts = getElementsByClass(document, 'whotext', '*'); + for (i = 0; i < whotexts.length; ++i) { + whotexts[i].style.color = disable_who ? 'gray' : ''; + } + + + window.external.SetWizardButtons(true, valid, false); +} + +function getElementsByClass(node,searchClass,tag) { + var classElements = new Array(); + var els = node.getElementsByTagName(tag); + var elsLen = els.length; + for (i = 0, j = 0; i < elsLen; i++) { + if (els[i].className == searchClass) { + classElements[j] = els[i]; + j++; + } + } + return classElements; +} + +somethingchanged();