Customised Upload Widget

by Yakir Perlin

HTML

<script src="https://widget.cloudinary.com/v2.0/global/all.js"></script>
<div class="center">
<h1>
Happy World Emoji Day 2018! 
</h1>
 </br>
   <img id="image" src="https://res.cloudinary.com/yakir/image/upload/c_fill,f_auto,h_300,q_auto,w_300/hr7znado7mjep9p1gpxr"  height="300" width="300">
   </br>
   </br>
   <a  id="link" target="_blank"></a>
   </br>
   </br>
   <button id="upload_btn" class="button blue">Upload New Image</button>
</div>

CSS

.center {
    padding: 10px 0;
     text-align: center;
    
} 

a:link, a:visited {
    background-color: #0071BA;
    color: white;
    padding: 14px 25px;
    text-align: center; 
    text-decoration: none;
    display: inline-block;
}

a:hover, a:active {
    background-color: #0E2F5A;
}

.button {
    background-color: #4CAF50;  
    border: none;
    color: white;
    padding: 16px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    -webkit-transition-duration: 0.4s; /* Safari */
    transition-duration: 0.4s;
    cursor: pointer;
}

.blue {
    background-color: white; 
    color: black; 
    border: 2px solid #008CBA;
}

.blue:hover {
    background-color: #008CBA;
    color: white;
}

JavaScript

// Enter you cloud and upload preset names here. 
const cloud_name = 'yakir';
const preset_name = 'worldemojiday'
const signature_endpoint_url = 'https://wt-4a5ed1f45ead1f7ca118a9190262ef96-0.sandbox.auth0-extend.com/signed-upload-endpoint';
const api_key = "129947752512192";
const google_api_key = "AIzaSyAVadaaefrhpdrx1Uf-DG1KyZLWK7e54-g";



var generateSignature = function(callback, params_to_sign){
    $.ajax({
     url     : signature_endpoint_url,
     type    : "POST",
     dataType: "json",
     data    : params_to_sign,
     complete: function() {console.log("complete")},
     success : function(signature, textStatus, xhr) { callback(signature.signature); },
     error   : function(xhr, status, error) { console.log(xhr, status, error); }
    });
  }
  
var widget = cloudinary.createUploadWidget({
			cloud_name: cloud_name,
      api_key: api_key,
      upload_signature: generateSignature,
			upload_preset: preset_name,
			sources: ['local', 'url', 'image_search'],
			google_api_key: google_api_key
       
		}, (error, result) => {  

				console.log(error);
        console.log(result);

    const eventData = result;
    
    if (eventData.event === "success") {
     
       console.log(eventData.info.eager[0].secure_url);
     
     			var small_size_image_url = "https://res.cloudinary.com/" + cloud_name + "/w_300,h_300,c_fill,g_auto,f_auto,q_auto/" + eventData.info.eager[0].transformation+ "/" + eventData.info.public_id;
 
			var original_size_image_url = "https://res.cloudinary.com/" + cloud_name + "/f_auto,q_auto/" + eventData.info.eager[0].transformation+ "/" + eventData.info.public_id;
      
      
      $("#link").attr("href", original_size_image_url);
			$("#link").text(original_size_image_url);
			$("#image").attr("src", original_size_image_url);
      
     widget.close();
    }
});

    
   
 $("#upload_btn").click(function () {
     widget.open();
});