All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mgnl-resources.media.js.crop.crop.js Maven / Gradle / Ivy

(function($) {
	function init(container, params) {
		var media = container.find(".pzcMedia");
		var mediaImg = container.find(".pzcMedia img");
		var pczZoomPanel = container.find(".pzcZoomPanel");
		var pzcSlider = container.find(".pzcSlider");

		var modified = false;

		$(media).draggable( {
			containment : 'parent',
			cursor : 'move',
			refreshPositions : true,
			start : function() {
				modified = true;
			}
		});

		var width = container.width();
		var height = container.height();

		var imgW = parseInt(container.attr('data-width'));
		var imgH = parseInt(container.attr('data-height'));
		var property = container.attr('data-property');
		var node = container.attr('data-node');

		var actZoom = Math.min(
				parseInt(100 * $(".pzcMedia img").width() / imgW), 100);
		var minZoom = Math.max(Math.ceil(100 * width / imgW), Math.ceil(100
				* height / imgH));

		if (width < 100) {
			pzcSlider.css( {
				width : '' + (width - 10) + 'px',
				'margin-left' : '-' + ((width - 10) / 2) + 'px'
			});
		}

		pczZoomPanel.html('' + actZoom + '%');

		container.find(".pzcExit").click(
				function() {
					return !modified
							|| confirm("Are you sure to exit without saving?");
				});

		container.find(".pzcSave").click(
				function() {
					var href = $(this).attr('href');
					$.ajax( {
						url : crop_app_ctx + '/media/pzc',
						data : {
							zoom : actZoom,
							x : Math.floor(container.offset().left
									- mediaImg.offset().left),
							y : Math.floor(container.offset().top
									- mediaImg.offset().top),
							id : property,
							handle : node
						},
						// type : 'HEAD',
						error : function(err) {
							alert(err);
						},
						success : function(msg) {
							location.href = href;
						}
					});
					return false;
				});

		var zoomFn = function(zoom) {
			actZoom = zoom;
			pczZoomPanel.html('' + actZoom + '%');
			var w = parseInt(actZoom * imgW / 100);
			var h = parseInt(w * imgH / imgW);
			if (w >= width && h >= height) {
				var newLeft = width - w;
				var newTop = height - h;
				var left = parseInt(media.css('left'));
				var top = parseInt(media.css('top'));
				left = (left > w - width) ? w - width : left;
				top = (top > h - height) ? h - height : top;
				$(".pzcMedia").css( {
					width : '' + w + 'px',
					height : '' + h + 'px',
					left : '' + left + 'px',
					top : '' + top + 'px',
					padding : '' + (imgH - h) + 'px ' + (imgW - w) + 'px'
				});
			}
		}

		pzcSlider.slider( {
			min : minZoom,
			max : 100,
			value : actZoom,
			slide : function(event, ui) {
				modified = true;
				zoomFn(ui.value);
			}
		});
		pzcSlider.fadeTo('slow', 0.4);
		pzcSlider.mouseenter(function() {
			pzcSlider.fadeTo('slow', 1.0);
			pczZoomPanel.fadeTo('slow', 0.7);
		});
		pzcSlider.mouseleave(function() {
			pzcSlider.fadeTo('slow', 0.4);
			pczZoomPanel.fadeTo('slow', 0);
		});

		// zoomFn(actZoom);
	}
	;

	$.fn.mgnlMediaPZC = function(params) {
		var params = $.extend( {
		/*
		 * defaultOpened : 1, tabLinks : '.tablinks a[href^=#]', tabContents :
		 * '.tab section'
		 */
		}, params);
		this.each(function(i, el) {
			init($(el), params);
		});
		return this;
	};

})($);

$('head')
	.append(
		'');
$('head')
	.append(
		'');

var refreshMediaPZC = function() {
	$(".pzc").mgnlMediaPZC();
	$(".pzcEdit").fadeTo('slow', 0.4);
	$(".pzcEdit").mouseenter(function() {
		$(this).fadeTo('slow', 1.0);
	});
	$(".pzcEdit").mouseleave(function() {
		$(this).fadeTo('slow', 0.4);
	});
	$(".pzcDelete").click(function() {
		var href = $(this).attr('href');
		var aId = $(this).attr('id');
		var node = aId.split('.')[0];
		var property = aId.split('.')[1];
		$.ajax( {
			url : crop_app_ctx +'/media/pzc',
			data : {
				command : 'delete',
				id : property,
				handle : node
			},
			// type : 'HEAD',
			error : function(err) {
				alert(err);
			},
			success : function(msg) {
				location.href = href;
			}
		});
		return false;
	});
}

$(document).ready(refreshMediaPZC);
$(document).ajaxSuccess(refreshMediaPZC);




© 2015 - 2025 Weber Informatics LLC | Privacy Policy