Your IP : 216.73.216.55


Current Path : /home/giteleslfp/www/administrator/components/com_templateck/interfaces/
Upload File :
Current File : /home/giteleslfp/www/administrator/components/com_templateck/interfaces/ajaxcolumnsmanager.php

<?php
/**
 * @name		Template Creator CK
 * @package		com_templateck
 * @copyright	Copyright (C) 2013. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 * @author		Cedric Keiflin - http://www.template-creator.com - http://www.joomlack.fr
 */
// No direct access to this file
defined('TCK_LOADED') or die('Restricted access');
?>
<div class="ckleftpanelheader">
	<span class="ckleftpaneltitle"><?php echo TCK_Text::_('CK_ROW_MANAGER'); ?></span>
	<span class="ckleftpanelheadericon ckclose ckhastip" title="<?php echo TCK_Text::_('CK_SAVE_CLOSE'); ?>" onclick="ckCloseEdition();">×</span>
</div>
<div id="ckcolumnsoptions" class="ckinterface">
	<div id="ckgutteroptions" class="ckoption">
		<div class="menuckinfos"><?php echo TCK_Text::_('CK_GUTTER') ?></div>
		<input class="ckguttervalue" type="text" onchange="ckUpdateGutter($ck('.ckrow.ckfocus'), this.value);" />
	</div>
	<div id="modulesnumberselect" class="ckoption">
		<div class="modulemanagerheader"><?php echo TCK_Text::_('CK_NUMBER_OF_COLUMNS'); ?></div>
		<div class="ckoption-field ckbutton-group">
			<label class="ckbutton ckbutton-small" onclick="ckSelectNumberOfColumns(1);" style="width:25px;min-width:25px;"><?php echo TCK_Text::_('1'); ?></label>
			<label class="ckbutton ckbutton-small" onclick="ckSelectNumberOfColumns(2);" style="width:25px;min-width:25px;"><?php echo TCK_Text::_('2'); ?></label>
			<label class="ckbutton ckbutton-small" onclick="ckSelectNumberOfColumns(3);" style="width:25px;min-width:25px;"><?php echo TCK_Text::_('3'); ?></label>
			<label class="ckbutton ckbutton-small" onclick="ckSelectNumberOfColumns(4);" style="width:25px;min-width:25px;"><?php echo TCK_Text::_('4'); ?></label>
			<label class="ckbutton ckbutton-small" onclick="ckSelectNumberOfColumns(5);" style="width:25px;min-width:25px;"><?php echo TCK_Text::_('5'); ?></label>
			<label class="ckbutton ckbutton-small" onclick="ckSelectNumberOfColumns(6);" style="width:25px;min-width:25px;"><?php echo TCK_Text::_('6'); ?></label>
			<label class="ckbutton ckbutton-small" onclick="ckSelectNumberOfColumns(7);" style="width:25px;min-width:25px;"><?php echo TCK_Text::_('7'); ?></label>
			<label class="ckbutton ckbutton-small" onclick="ckSelectNumberOfColumns(8);" style="width:25px;min-width:25px;"><?php echo TCK_Text::_('8'); ?></label>
		</div>
		<input type="hidden" name="blocnumberselect" id="blocnumberselect" value="" />
		<div class="clr"></div>
	</div>
	<div id="ckcolumnsuggestions">

	</div>
</div>
<script language="javascript" type="text/javascript">
	function ckEditColumns(row, force, forcehide) {
		if (! force) force = false;
		if (row.find('.ckcolwidthedition').length && ! force || forcehide) {
			row.find('.ckcolwidthedition').remove();
			row.find('.ckcolwidthediting').removeClass('ckcolwidthediting');
		} else {
			var nbcols = row.find('.ckrowcontainer').length;
			$ck('#modulesnumberselect label').removeClass('active');
			$ck('#modulesnumberselect label').eq(nbcols - 1).addClass('active');
			var default_data_width = 100 / nbcols;
			row.find('.ckrowcontainer').each(function(i, column) {
				var column = $ck(column);
				column.addClass('ckcolwidthediting');
				var col_data_width = column.attr('data-width') ? column.attr('data-width') : default_data_width;
				if (! column.find('.ckcolwidthedition').length) column.append('<div class="ckcolwidthedition"><div class="ckcolwidthlocker ckhastip" title="<?php echo TCK_Text::_('CK_LOCK_UNLOCK') ?>" onclick="ckToggleColWidthState(this);"></div><input id="' + row.attr('id') + '_w' + i + '" class="ckcolwidthselect inputbox" value="' + col_data_width + '" onchange="ckCalculateBlocsWidth(this);" type="text" /> %</div>')
			});
			ckInitTooltip();
		}
	}

	function ckToggleColWidthState(locker) {
		var input = $ck(locker).parent().find('input.ckcolwidthselect');
		var enableamount = $ck('.ckcolwidthselect:not(.disabled)', $ck(locker).parents('.ckrow')).length;
		var loackedamount = $ck('.ckcolwidthedition.locked', $ck(locker).parents('.ckrow')).length;

		if (loackedamount >= (enableamount - 1) && !input.hasClass('locked')) {
			alert('<?php echo TCK_Text::_('CK_CAN_NOT_LOCK_ALL_WIDTH') ?>');
			return;
		}

		if (!input.hasClass('locked')) {
			input.addClass('locked');
			$ck(locker).addClass('locked');
			$ck(locker).parent().addClass('locked');
		} else {
			input.removeClass('locked');
			$ck(locker).removeClass('locked');
			$ck(locker).parent().removeClass('locked');
		}
	}

	function ckCalculateBlocsWidth(field) {
		var row = $ck($ck(field).parents('.ckrow')[0]);
		var enabledfields = $ck('.ckcolwidthedition:not(.disabled) .ckcolwidthselect:not(.disabled,.locked,#' + $ck(field).attr('id') + ')', row);
		var amount = enabledfields.length;
		var lockedvalue = 0;
		$ck('.ckcolwidthselect.locked', row).each(function(i, modulefield) {
			modulefield = $ck(modulefield);
			if (modulefield.attr('value') == '') {
				modulefield.removeClass('locked').next('input').attr('checked', false);
				ckCalculateBlocsWidth(field);
			}
			if (modulefield.attr('id') != $ck(field).attr('id')) {
				lockedvalue = parseFloat(modulefield.attr('value')) + parseFloat(lockedvalue);
			}
		});
		var mw = parseFloat($ck(field).attr('value'));
		var percent = (100 - mw - lockedvalue) / amount;

		enabledfields.each(function(i, modulefield) {
			if ($ck(modulefield).attr('id') != $ck(field).attr('id')
					&& !$ck(modulefield).hasClass('locked')) {
					
				$ck(modulefield).attr('value', parseFloat(percent));
			}
		});
		ckSetColumnsWidth(row);
	}

	function ckSetColumnsWidth(row) {
		var gutter = ckGetRowGutterValue(row);
		var nbcols = row.find('.ckrowcontainer').length;
		row.attr('numberofmodules', nbcols);
		row.find('.ckrowcontainer').each(function(i, col) {
			col = $ck(col);
			var w = col.find('.ckcolwidthselect').attr('value');
			if (col.find('.ckcolwidthselect').length) $ck(col).attr('data-width', col.find('.ckcolwidthselect').attr('value'));
			w = col.attr('data-width');
			// var realwidth =  w - (( (nbcols - 1) * parseFloat(gutter) ) / nbcols);
			ckSetColumnWidth(col, w, gutter, nbcols);
		});
	}

	function ckSetColumnWidth(col, w, gutter, nbcols) {
		var realwidth = 'calc(' + parseFloat(w) + ' / 100 * (100% - (' + (nbcols - 1) + ' * ' + gutter + ')))'; 
		col.attr('data-real-width', realwidth).attr('data-width', w).css('width', realwidth);
	}

	function ckGetRowGutterValue(row) {
		var gutter = row.attr('data-gutter') ? row.attr('data-gutter') : '0';
		gutter = ckTestUnit(gutter);
		row.attr('data-gutter', gutter);
		return gutter;
	}

	function ckUpdateGutter(row, gutter) {
		row.attr('data-gutter', ckTestUnit(gutter));
		ckSetColumnsWidth(row);
	}

	function ckSelectNumberOfColumns(number) {
		$ck('#blocnumberselect').attr('value', number);
		ckUpdateColumns();
		ckEditColumns($ck('.ckfocus'), true);
	}

	function ckUpdateColumns() {
		var row = $ck('.ckfocus');
		nbcols = $ck('#blocnumberselect').attr('value');
		row.attr('numberofmodules', nbcols);
		// check if we need to add a column
		nbexistingcols = $ck('> .inner > .ckrowcontainer', row).length;
		if (nbexistingcols < nbcols) {
			for (var i=0; i < (nbcols - nbexistingcols); i++) {
				ckCreateRowContainer(row);
			}
		}
		// check if we need to remove a column
		$ck('> .inner > .ckrowcontainer', row).each(function(i, bloc) {
			bloc = $ck(bloc);
			if (i >= nbcols) {
				if (bloc.find('.ckbloc').length) {
					bloc.prev().append(bloc.find('.ckbloc'));
					bloc.remove();
				} else {
					bloc.remove();
				}
			}
		});
		var moduleswidth = ckGetdefaultwidth(nbcols);
		$ck('> .inner > .ckrowcontainer', row).each(function(j, bloc) {
			bloc = $ck(bloc);
			var gutter = ckGetRowGutterValue(row);
			ckSetColumnWidth(bloc, moduleswidth[j], gutter, nbcols);
			// bloc.attr('data-width', moduleswidth[j]).css('width', moduleswidth[j] + '%');
			bloc.find('.ckcolwidthselect').val(moduleswidth[j]);
		});
	}

	function ckGetdefaultwidth(nbmodules) {
		var defaultwidths = new Array();
		defaultwidth = 100 / parseInt(nbmodules);
		for (i = 0; i < nbmodules; i++) {
			defaultwidths.push(defaultwidth);
		}
		return defaultwidths;
	}

	function ckBeforeCloseEditionPopup() {
		ckRemoveColumnEdition()
	}

	// init the options
	$ck('#ckedition .ckguttervalue').val(ckGetRowGutterValue($ck('.ckfocus')));
	ckEditColumns($ck('.ckfocus'), true);
	// CK_CAN_NOT_LOCK_ALL_WIDTH
	// CK_LOCK_UNLOCK
	// CK_GUTTER
	// CK_GUTTER_INFOS
</script>