Back to JavaScript
imageloop API - JavaScript Demo 5
Codes
var sel_targetLooopId = document.getElementById("targetLooopId");
var el_uploadFiles = document.getElementById("uploadFiles");
var btnStartUpload = document.getElementById("btnStartUpload");
// Start asynchronous "get-my-own-looops"
function loadLooops() {
il.getMyLooopsExAsync(looopUpdate);
}
// Handler for asynchronous "get-my-own-looops"
function looopUpdate(response) {
var looops = il.getLooopsFromResult(response.looops);
looops = il.sortList(looops,"name");
var l = looops.length;
for (var n=0 ; n<l ; n++) {
var looop = looops[n];
addLooop(looop);
}
initFileUpload();
}
// Called by looopUpdate(response) for every looop
function addLooop(looop) {
try {
var ccnt = looop.getContentCount();
if (ccnt==0) // no images in looop - skip
return;
// Build OPTION element for select box
var elCh = document.createElement("option");
elCh.appendChild( document.createTextNode(looop.getDescriptiveName()+" ("+ccnt+")") );
elCh.value = looop.getId();
sel_targetLooopId.appendChild(elCh);
}
catch (x) {
alert("addLooop: "+x+" "+x.message);
}
}
function initFileUpload() {
btnStartUpload.disabled=fileCount==0;
addFileUpload();
}
var fileCount=0;
// Start file upload
function startUpload() {
var frm = document.getElementById("uploadForm");
if (fileCount>0)
il.uploadImagesForm(frm,document.location,document.location);
}
// Validate INPUT file element content and add a new INPUT file element
function validateAddFileUpload() {
this.onchange=null;
var finput = this.getElementsByTagName("input").item(0);
var val = finput.value;
if (val.toLowerCase().indexOf(".jpg")!=val.length-4) {
alert("Only JPEGs, please");
finput.value="";
return;
}
var elTd = document.createElement("td");
var elARem = document.createElement("a");
elARem.href="#";
elARem.onclick = removeUploadElement.bind(this);
elARem.appendChild(document.createTextNode("Remove"));
elARem.title="Remove this file from the list of files to be uploaded";
elTd.appendChild(elARem);
this.appendChild(elTd);
fileCount++;
btnStartUpload.disabled=fileCount==0;
addFileUpload();
}
// Event handler to remove a input file element
function removeUploadElement() {
this.parentNode.removeChild(this);
fileCount--;
btnStartUpload.disabled=fileCount==0;
return false;
}
var fileNum = 1;
// Add a new file choose element in DHTML
function addFileUpload() {
try {
var elTr = document.createElement("tr");
var elTd = document.createElement("td");
var elInp = document.createElement("input");
elInp.type="file";
fileNum++;
elInp.name="uploadFile$"+fileNum;
elInp.size="70";
// add event listener to input file element
elInp.onchange=validateAddFileUpload.bindAsEventListener(elTr);
elTd.appendChild(elInp);
elTr.appendChild(elTd);
el_uploadFiles.appendChild(elTr);
}
catch (x) {
alert("addFileUpload: "+x+" "+x.message);
}
}
// call function to initialize the page
loadLooops();
english
deutsch
français
español
italiano
türkçe