API Home       Error Codes       Your API Keys
Back to JavaScript

imageloop API - JavaScript Demo 5





Files to upload
Target looop




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();