function handleTransformFiles(data,id,job_id) { if( data.finished ) { $('#s'+id).hide() $('#'+id).find('img.thumb').attr('style', 'filter: color(100%);' ); $('#'+id).addClass('entry') $('#'+id).find('.thumb').attr('src', 'data:image/jpeg;base64,'+data.thumbnail) return false; } else { setTimeout( function() { CheckTransformJob(id,job_id,handleTransformFiles) }, 1000,id, job_id ); } } // POST to a check URL, that will tell us if the transformation has completed, // if not, try again in 1 second... If it has finished then reset the thumbnail // to full colour, put it back to being an entry and reset the thumbnail to the // newly created one that was sent back in the response to the POST function handleTransformViewing(data,id,job_id) { if( data.finished ) { // stop throbber, remove grayscale & then force reload with timestamped version of im.src grayscale=0 throbber=0 im.src=im.src + '?t=' + new Date().getTime(); return false; } else { setTimeout( function() { CheckTransformJob(id,job_id,handleTransformViewing) }, 1000,id, job_id ); } } // POST to a check URL, that will tell us if the transformation has completed, // if not, try again in 1 second... If it has finished then reset the thumbnail // to full colour, put it back to being an entry and reset the thumbnail to the // newly created one that was sent back in the response to the POST function CheckTransformJob(id,job_id,successCallback) { CheckForJobs() $.ajax( { type: 'POST', data: '&job_id='+job_id, url: '/check_transform_job', success: function(res) { successCallback(res,id,job_id); } } ) } // for each highlighted image, POST the transform with amt (90, 180, 270, // fliph, flipv) which will let the job manager know what to do to this file. // we also grayscale the thumbnail out, remove the entry class for now, show // the spinning wheel, and finally kick of the checking for the transform job // to finish function Transform(amt) { // we are in the viewer with 1 image only... if( document.viewing ) { post_data = '&amt='+amt+'&id='+document.viewing.id // send /transform for this image, grayscale the thumbmail, add color spinning wheel overlay, and start checking for job end $.ajax({ type: 'POST', data: post_data, url: '/transform', success: function(data) { grayscale=1; throbber=1; DrawImg(); CheckTransformJob(document.viewing.id,data.job_id,handleTransformViewing); return false; } }) } else { $('.highlight').each(function( id, e ) { post_data = '&amt='+amt+'&id='+e.id // send /transform for this image, grayscale the thumbmail, add color spinning wheel overlay, and start checking for job end $.ajax({ type: 'POST', data: post_data, url: '/transform', success: function(data){ $('#'+e.id).find('img.thumb').attr('style', 'filter: grayscale(100%);' ); $('#'+e.id).removeClass('entry'); $('#s'+e.id).show(); CheckTransformJob(e.id,data.job_id,handleTransformFiles); return false; } }) } ) } }