220 lines
9.5 KiB
Smarty
220 lines
9.5 KiB
Smarty
{* Вкладки *}
|
||
{capture name=tabs}
|
||
<li class="active"><a href="index.php?module=ServicesAdmin">Услуги</a></li>
|
||
<li><a href="index.php?module=ServicesMenuAdmin">Меню услуг</a></li>
|
||
{/capture}
|
||
|
||
{* Title *}
|
||
{$meta_title =$menu->name scope=parent}
|
||
|
||
{* Поиск *}
|
||
<form id="search" method="get">
|
||
<input type="hidden" name="module" value="ServicesAdmin">
|
||
<input type="hidden" name="filter" value='{$filter}'>
|
||
<input type="hidden" name="brand_id" value="{$brand_id}">
|
||
<input type="hidden" name="parent" value="{$parent}">
|
||
<input class="search" type="text" name="keyword" value="{$keyword|escape}">
|
||
<input class="search_button" type="submit" value="">
|
||
</form>
|
||
|
||
{* Заголовок *}
|
||
<div id="header">
|
||
{if $keyword && $services_count>0}
|
||
<h1>{$services_count|plural:'Нашлась':'Нашлось':'Нашлись'} {$services_count}
|
||
{$services_count|plural:'услуга':'услуг':'услуги'}</h1>
|
||
{elseif $services_count>0}
|
||
<h1>{$services_count} {$services_count|plural: 'услуга':'услуг':'услуги'}</h1>
|
||
<a class="add" href="{url module=ServiceAdmin return=$smarty.server.REQUEST_URI}">Добавить услугу</a>
|
||
{else}
|
||
<h1>Нет услуг</h1>
|
||
<a class="add" href="{url module=ServiceAdmin return=$smarty.server.REQUEST_URI}">Добавить услугу</a>
|
||
{/if}
|
||
</div>
|
||
|
||
<style>
|
||
|
||
</style>
|
||
|
||
{if $services}
|
||
<div id="main_list" class="">
|
||
{include file='pagination.tpl'}
|
||
<form id="list_form" method="post">
|
||
<input type="hidden" name="session_id" value="{$smarty.session.id}">
|
||
<div id="list" class="pb-3">
|
||
{foreach $services as $service}
|
||
<div class="row {cycle values="even,odd"}">
|
||
<div class="checkbox cell pr-1">
|
||
<input type="checkbox" name="check[]" value="{$service->id}">
|
||
</div>
|
||
<div class="cell">
|
||
<a href="index.php?module=ServiceAdmin&id={$service->id}"><b>{$service->header|escape}</b></a>
|
||
</div>
|
||
<div class="icons cell">
|
||
<a class="preview" title="Предпросмотр в новом окне" href="../{$root_url}{$service->url}/"
|
||
target="_blank"></a>
|
||
<a class="enable{if $service->visible} a-visible{else} a-invisible{/if}" title="Активна"
|
||
href="#"></a>
|
||
{if !$service->has_children}
|
||
<a class="delete" title="Удалить" href="#"></a>
|
||
{/if}
|
||
</div>
|
||
<div class="clear"></div>
|
||
</div>
|
||
{/foreach}
|
||
</div>
|
||
|
||
<div id="action">
|
||
<label id="check_all" class="dash_link">Выбрать все</label>
|
||
<span id="select">
|
||
<select name="action">
|
||
<option value="enable">Сделать видимыми</option>
|
||
<option value="disable">Сделать невидимыми</option>
|
||
<option value="delete">Удалить</option>
|
||
</select>
|
||
</span>
|
||
<input id="apply_action" class="button_green" type="submit" value="Применить">
|
||
</div>
|
||
</form>
|
||
{include file='pagination.tpl'}
|
||
</div>
|
||
{else}
|
||
Нет услуг
|
||
{/if}
|
||
|
||
{* Правое меню *}
|
||
<div id="right_menu">
|
||
<h3 class="mb-3 mt-2">Фильтр услуг</h3>
|
||
<ul id="service_filter">
|
||
<li {if !$filter}class="selected"{/if}>
|
||
<a href="{url page=null filter=null}">Все услуги</a>
|
||
</li>
|
||
<li {if $filter=='branded'}class="selected"{/if}>
|
||
<a href="{url page=null filter='branded'}" class="d-inline-flex align-items-center p-1">
|
||
Только брендовые
|
||
</a>
|
||
</li>
|
||
<li {if $filter=='home'}class="selected"{/if}>
|
||
<a href="{url page=null filter='home'}" class="d-inline-flex align-items-center p-1">
|
||
Услуги на главной
|
||
</a>
|
||
</li>
|
||
<li {if $filter=='main'}class="selected"{/if}>
|
||
<a href="{url page=null filter='main'}" class="d-inline-flex align-items-center p-1">
|
||
Главные услуги
|
||
</a>
|
||
</li>
|
||
<li {if $filter=='enabled'}class="selected"{/if}>
|
||
<a href="{url page=null filter='enabled'}" class="d-inline-flex align-items-center p-1">
|
||
<img class="mr-1" src="design/images/lightbulb.png">Активные
|
||
</a>
|
||
</li>
|
||
<li {if $filter=='disabled'}class="selected"{/if}>
|
||
<a href="{url page=null filter='disabled'}" class="d-inline-flex align-items-center p-1">
|
||
<img class="mr-1" src="design/images/lightbulb_off.png">Отключенные
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
|
||
{if $brands}
|
||
<h3 class="mb-2 mt-2">по маркам</h3>
|
||
<select id="brand_selector" name="brand">
|
||
<option value=""> -- Выберите марку --</option>
|
||
{foreach $brands as $brand}
|
||
<option value="{$brand->id}" {if $brand->id==$brand_id}selected{/if}>{$brand->name}</option>
|
||
{/foreach}
|
||
</select>
|
||
{/if}
|
||
|
||
{if $tree}
|
||
<h3 class="mb-2 mt-4">по родителю</h3>
|
||
<select id="parent_selector" class="mw-100">
|
||
<option value=""> -- Выберите родителя --</option>
|
||
{function name=services_tree level=0}
|
||
{if $services}
|
||
{foreach $services as $service}
|
||
<option {if $parent==$service->id}selected{/if}
|
||
value="{$service->id}">{' '|str_repeat:($level*2)}{$service->name|escape}</option>
|
||
{if $service->children}
|
||
{services_tree services=$service->children level=$level+1}
|
||
{/if}
|
||
{/foreach}
|
||
{/if}
|
||
{/function}
|
||
{services_tree services=$tree}
|
||
</select>
|
||
{/if}
|
||
|
||
<div class="clearfix"></div>
|
||
<a class="text-danger text-center d-block mt-5" href="index.php?module=ServicesAdmin" title="Сбросить все фильтры">Сбросить
|
||
все фильтры</a>
|
||
</div>
|
||
|
||
{literal}
|
||
<script>
|
||
$(document).ready(function () {
|
||
var $search_form = $('#search');
|
||
|
||
$('#brand_selector').on('change', function () {
|
||
$('[name="brand_id"]', $search_form).val(this.value);
|
||
$search_form.submit();
|
||
});
|
||
$('#parent_selector').on('change', function () {
|
||
$('[name="parent"]', $search_form).val(this.value);
|
||
$search_form.submit();
|
||
});
|
||
|
||
// Выделить все
|
||
$("#check_all").click(function () {
|
||
$('#list input[type="checkbox"][name*="check"]:not(:disabled)').attr('checked', $('#list input[type="checkbox"][name*="check"]:not(:disabled):not(:checked)').length > 0);
|
||
});
|
||
|
||
// Активировать
|
||
$("a.enable").click(function () {
|
||
var icon = $(this);
|
||
/*var line = icon.closest(".row");
|
||
var id = line.find('input[type="checkbox"][name*="check"]').val();*/
|
||
|
||
$('#list input[type="checkbox"][name*="check"]').attr('checked', false);
|
||
$(this).closest("div.row").find('input[type="checkbox"][name*="check"]:first').attr('checked', true);
|
||
$(this).closest("form").find('select[name="action"]').val(icon.hasClass('a-invisible') ? 'enable' : 'disable');
|
||
$(this).closest("form").submit();
|
||
|
||
/*icon.addClass('loading_icon');
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: 'ajax/update_object.php',
|
||
dataType: 'json',
|
||
data: {
|
||
'object': 'page',
|
||
'action': 'enable',
|
||
'id': id,
|
||
'values': {'visible': icon.hasClass('a-invisible') ? 1 : 0},
|
||
'session_id': '{/literal}{$smarty.session.id}{literal}'
|
||
},
|
||
beforeSend: function () {
|
||
icon.addClass('loading_icon');
|
||
},
|
||
success: function (data) {
|
||
$('a.enable:first', line).toggleClass('a-invisible').toggleClass('a-visible');
|
||
icon.removeClass('loading_icon');
|
||
}
|
||
});*/
|
||
return false;
|
||
});
|
||
|
||
// Удалить
|
||
$("a.delete").click(function () {
|
||
$('#list input[type="checkbox"][name*="check"]').attr('checked', false);
|
||
$(this).closest("div.row").find('input[type="checkbox"][name*="check"]:first').attr('checked', true);
|
||
$(this).closest("form").find('select[name="action"] option[value=delete]').attr('selected', true);
|
||
$(this).closest("form").submit();
|
||
});
|
||
|
||
// Подтвердить удаление
|
||
$("#list_form").submit(function () {
|
||
if ($('select[name="action"]').val() == 'delete' && !confirm("Подтвердите удаление.\n\nВнимание!\nУслуги будут удалены ТОЛЬКО если не имеют дочерних."))
|
||
return false;
|
||
});
|
||
});
|
||
</script>
|
||
{/literal} |