<!-- начало структура -->
<div class="main">
	<h1>Структура сайта</h1>
	<script type="text/javascript">
		var token='{$_user->token}';
		function updateServerTree(e) {
			var list   = e.length ? e : $(e.target),
			output = list.data('output');
			serial_tree=$.toJSON(list.nestable('serial'));
			$.ajax({
				url:'{url action="ajax" type="json"}',
				type: 'post',
				dataType: 'json',
				data:{ tree:serial_tree, action:'update_tree', token:token } })
				.done(function(result){
					if (check_response(result))
					{
						//тут надо освободить дерево и убрать лоадер
					}
				}
			);
			return false;
		}
	</script>

	<form action="{url}" method="post">
		<div>
			{if $duples}
				<div class="alert alert-danger">
					<img src="/skins/default/images/icons/simple_system.png" alt="внимание!" /> <b>Внимание:</b> в структуре сайта имеются дубликаты, ни один из которых не является ссылкой.<br />
					{foreach $duples as $path=>$var}
						Путь: <a href="{url href=$path}">{$path}</a><br /> Дубликаты:<br />
						{foreach $var as $val}
							<a href="{url}#id{$val.0}">{$val.1}</a><br />
						{/foreach} 
					{/foreach}
					<hr />
				</div>
			{/if}
		
			<div><a class="btn btn-default" title="Создать новый узел"  href="{url action='add'}"><img src="/skins/default/images/icons/add.png" alt="Создать новый узел" /></a></div>
		
	<menu class="btn-group" id="nestable-menu">
		<button type="button" class="btn btn-default" data-action="expand-all">Развернуть все</button>
		<button type="button" class="btn btn-default" data-action="collapse-all">Свернуть все</button>
	</menu>
	
			{$level=0}
			<div class="dd" id="tree">
				 <ol class="dd-list">
					{foreach $tree_items as $key=>$item}
						<li class="dd-item dd3-item" data-id="{$item->id}" id="id{$item->id}">
							<div class="dd-handle dd3-handle">&nbsp;</div>
							<div class="dd3-content">
								{if $item->path}<a  class="link" href="{if $item->external}{$item->path}{else}{url href=$item->path}{/if}" title="перейти на страницу">{$item->name}</a>
								{else}
									{$item->name}
								{/if}
								{if $item->link} <a title="данный узел является ссылкой на id={$item->link}" href="{url}#id{$item->link}">[Link]</a>{/if}
								<span class="btn-group pull-right">
									<a href="{url action="edit" var1=$item->id}" class="item_edit btn btn-default btn-xs" title="Редактировать элемент">
										<img src="/skins/default/images/icons/simple_edit.png" width="16" height="16" alt="Редактировать элемент" />
									</a>
									<span data-id="{$item->id}" id="menu{$item->id}" title="отображение элемента при формировании меню" class="menu{if $item->menu} btn-success{/if} btn btn-default btn-xs">
										<img src="/skins/default/images/icons/simple_menu.png" width="16" height="16" alt="отображение элемента при формировании меню" />
									</span>
									<span data-id="{$item->id}" id="sitemap{$item->id}" title="отображение элемента в карте сайта" class="sitemap{if $item->sitemap} btn-success{/if} btn btn-default btn-xs">
										<img src="/skins/default/images/icons/simple_lightbulb.png" width="16" height="16" alt="отображение элемента в карте сайта" />
									</span>
									<span data-id="{$item->id}" id="show{$item->id}" title="доступность элемента при ссылке на него" class="show{if $item->show} btn-success{/if} btn btn-default btn-xs">
										<img src="/skins/default/images/icons/simple_component.png" width="16" height="16" alt="доступность элемента при ссылке на него" />
									</span>

									<a onclick="return confirm('Удалить узел и его потомков?')" title="удалить узел и его потомков" class="delete btn btn-default btn-xs" href="{url action="delete" var1=$item->id token=1}">
										<img src="/skins/default/images/icons/simple_delete.png" width="16" height="16" alt="удалить узел" />
									</a>
								</span>
							</div>
	
						
							{$level=$item->level}
							{$next_level=$tree_items[$item@iteration]->level}
	
							{if $next_level>$level}
								<ol class="dd-list">
							{elseif $next_level<$level || $item@last}
								{if $item@last}{$end=$item->level}{else}{$end=$level-$next_level}{/if}
								{for $i=1 to $end}
									</li></ol>
								{/for}
							{else}
								</li>
							{/if}
					{/foreach}
				</ol>
			</div>
		</div>
	</form>
</div>
<div class="clear"></div>
<script type='text/javascript'>
	
	$('#tree').nestable({
		group: 1
	})
	.on('change', updateServerTree);
	
	$('#nestable-menu').on('click', function(e)
	{
		var target = $(e.target),
			action = target.data('action');
		if (action === 'expand-all') {
			$('.dd').nestable('expandAll');
		}
		if (action === 'collapse-all') {
			$('.dd').nestable('collapseAll');
		}
	});
	
	$( '.menu' ).click(function( event ) {
		return function(id) {
			send_action( 'menu', id );
		}( $(this).attr('data-id'));
	});
	$( '.sitemap' ).click(function( event ) {
		return function(id) {
			send_action( 'sitemap', id );
			}( $(this).attr('data-id'));
	});
	$( '.show' ).click(function( event ) {
		return function(id) {
			send_action('show', id);
			}( $(this).attr( 'data-id' ));
	});
	
	function send_action(action, id)
	{
		$.ajax({
			url:'{url action="ajax" type="json"}',
			type: 'post',
			dataType: 'json',
			data:{ 'id':id, 'action':action, 'token':token } })
			.done(function(result){
				if (check_response(result))
				{
					//if(result.active) $('#'+action+id).addClass('enabled');
					//else $('#'+action+id).removeClass('enabled');
					if(result.active) $('#'+action+id).addClass('btn-success');
					else $('#'+action+id).removeClass('btn-success');
				}
			}
		);
		return false;
	}
	
	function check_response(result)
	{
		if (result && result.error) alert(result.error);
		else if (!result) alert('Произошла ошибка сервера');
		else return true;
		return false;
	}


</script>

<!-- конец структура -->