Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var saveScreenshot = function() {
- // Prevent making screenshots if a logo is added
- if ( $scope.pricing.feat.url.length > 5 ) return;
- var elements = jQuery('#fpt-builder-blockslist .fpt-builder-block');
- var data = {
- pricing_id: $scope.pricing_id,
- }
- console.log('This is screenshot creation!')
- var mainCanvas = document.createElement('canvas');
- var mainCtx = mainCanvas.getContext('2d');
- mainCanvas.width = 0;
- mainCanvas.height = 0;
- var render = function(index) {
- var el = elements.eq(index);
- html2canvas(el[0]).then(function(canvas) {
- // We require this to be null
- var oldImageData = null;
- // Check if main canvas exists and if so, we save its image data to oldImageData
- if (mainCanvas.height) {
- oldImageData = mainCtx.getImageData(0, 0, mainCanvas.width, mainCanvas.height);
- }
- // Adjust its size
- mainCanvas.width = canvas.width;
- mainCanvas.height += canvas.height;
- // Put old image data to canvas with new size
- if (oldImageData) {
- mainCtx.putImageData(oldImageData, 0, 0);
- }
- // Get data of rendered slide
- var context = canvas.getContext('2d');
- var imageData;
- if ( canvas.width && canvas.height ) {
- imageData = context.getImageData(0, 0, canvas.width, canvas.height);
- }
- // Put it to main slide
- mainCtx.putImageData(imageData, 0, mainCanvas.height - canvas.height);
- // If there are three rendered slides (indexes 0, 1, 2) or slides number is 1, save it to the server
- if (index == 2 || elements.length == 1) {
- mainCanvas = resizeCanvas(mainCanvas, 2);
- data.image = mainCanvas.toDataURL();
- $http({
- method: 'POST',
- url: ajaxurl,
- headers: {'Content-Type': 'application/x-www-form-urlencoded'},
- params: {action: 'fpt_save_pricing_screenshot'},
- data: jQuery.param(data),
- })
- .then(function(response) {
- var data = response.data;
- debugService.log('Screenshot save', data);
- });
- return false;
- } else if (elements.eq(index + 1).length) {
- render(index + 1);
- }
- });
- }
- if (elements.length) {
- render(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement