var View = wp.media.View, $ = jQuery, SiteIconPreview; /** * wp.media.view.SiteIconPreview * * Shows a preview of the Site Icon as a favicon and app icon while cropping. * * @memberOf wp.media.view * * @class * @augments wp.media.View * @augments wp.Backbone.View * @augments Backbone.View */ SiteIconPreview = View.extend(/** @lends wp.media.view.SiteIconPreview.prototype */{ className: 'site-icon-preview', template: wp.template( 'site-icon-preview' ), ready: function() { this.controller.imgSelect.setOptions({ onInit: this.updatePreview, onSelectChange: this.updatePreview }); }, prepare: function() { return { url: this.options.attachment.get( 'url' ) }; }, updatePreview: function( img, coords ) { var rx = 64 / coords.width, ry = 64 / coords.height, preview_rx = 16 / coords.width, preview_ry = 16 / coords.height; $( '#preview-app-icon' ).css({ width: Math.round(rx * this.imageWidth ) + 'px', height: Math.round(ry * this.imageHeight ) + 'px', marginLeft: '-' + Math.round(rx * coords.x1) + 'px', marginTop: '-' + Math.round(ry * coords.y1) + 'px' }); $( '#preview-favicon' ).css({ width: Math.round( preview_rx * this.imageWidth ) + 'px', height: Math.round( preview_ry * this.imageHeight ) + 'px', marginLeft: '-' + Math.round( preview_rx * coords.x1 ) + 'px', marginTop: '-' + Math.floor( preview_ry* coords.y1 ) + 'px' }); } }); module.exports = SiteIconPreview;