// 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) { CheckForJobs() $.ajax( { type: 'POST', data: '&job_id='+job_id, url: '/check_transform_job', success: function(data) { 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) }, 1000,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) { $('.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); return false; } }) } ) }