Активация чекбоксов в просмотре заказов

Статус
В этой теме нельзя размещать новые ответы.

GoldMiner

Создатель
Регистрация
29 Окт 2008
Сообщения
23
Реакции
2
Хотелось бы для удобства реализовать следующую фишку в SS premium:

Захожу в администрирование -> справочник заказов. Здесь по умолчанию выбран пункт "Поиск заказа по номеру:". Я искать по номеру не хочу, хочу просмотреть список заказов со статусом "Новый". Для этого мне нужно сначала кликнуть на пункт "Показывать заказы в статусе:", а потом уже становятся активными чекбоксы для выбора статуса заказа.

Можно ли сделать так, чтобы чекбоксы были активными сразу, то есть не нужно было сначала кликать на пункт "Показывать заказы в статусе:"

Спасибо за внимание :)
 
Хотелось бы для удобства реализовать следующую фишку в SS premium:

Захожу в администрирование -> справочник заказов. Здесь по умолчанию выбран пункт "Поиск заказа по номеру:". Я искать по номеру не хочу, хочу просмотреть список заказов со статусом "Новый". Для этого мне нужно сначала кликнуть на пункт "Показывать заказы в статусе:", а потом уже становятся активными чекбоксы для выбора статуса заказа.

Можно ли сделать так, чтобы чекбоксы были активными сразу, то есть не нужно было сначала кликать на пункт "Показывать заказы в статусе:"

Спасибо за внимание :)

Вообще в templates/backend/custord_new_orders.tpl.html должно быть нечто типа

Код:
	{if $order_statuses}
	<br />
	<input class="inlradio" type="radio" name="order_search_type" value="SearchByStatusID"
		{if $order_search_type == 'SearchByStatusID' || [B][U]$order_search_type == null[/U][/B]}checked="checked"{/if}
		onclick="order_search_typeClickHandler()" id="id_order_search_type2" /><label for="id_order_search_type2"> {$smarty.const.ADMIN_SHOW_ORDER_IN_STATUS}</label>:

		{section name=i loop=$order_statuses}
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input class="checknomarging" type="checkbox" name="checkbox_order_status_{$order_statuses[i].statusID}" id="id_checkbox_order_status_{$order_statuses[i].statusID}"
		{if $order_statuses[i].selected == 1} checked{else}{if $order_statuses[i].statusID == $smarty.const.CONF_NEW_ORDER_STATUS} checked{/if}{/if} value="1" /><label for="id_checkbox_order_status_{$order_statuses[i].statusID}"> {$order_statuses[i].status_name}</label>
		</div>
		{/section}
		<br />
	{/if}

Отмеченный кусочек отвечает за то, что при входе в Администрирование->Заказы по умолчанию отмечено "Показывать заказы со статусом".
 
К сожалению, это не совсем то, что я хотел.

Хотелось, чтобы при установленной по-умолчанию точке "Поиск заказа по номеру:" я мог нажать на чекбокс "Новый" и точка автоматом перескочила с пункта "Поиск заказа по номеру:" на пункт "Показывать заказы в статусе:".

Если я сделаю по вашему совету, то по-умолчанию точка будет стоять на пункте "Показывать заказы в статусе:" и для поиска заказа по номеру мне нужно будет сначала кликнуть на точку "Поиск заказа по номеру:", потом кликнуть на поле ввода номера, и потом его ввести. Получается все равно 2 клика, а хочется чтобы был один. :ah:
 
К сожалению, это не совсем то, что я хотел.
Хотелось, чтобы при установленной по-умолчанию точке "Поиск заказа по номеру:" я мог нажать на чекбокс "Новый" и точка автоматом перескочила с пункта "Поиск заказа по номеру:" на пункт "Показывать заказы в статусе:".
Если я сделаю по вашему совету, то по-умолчанию точка будет стоять на пункте "Показывать заказы в статусе:" и для поиска заказа по номеру мне нужно будет сначала кликнуть на точку "Поиск заказа по номеру:", потом кликнуть на поле ввода номера, и потом его ввести. Получается все равно 2 клика, а хочется чтобы был один. :ah:
В файле templates/backend/custord_new_orders.tpl.html в сборке
Код:
<form method="get" action="admin.php" name="MainForm">
	<input class="inlradio" type="radio" name="order_search_type" value="SearchByOrderID"
		{if $order_search_type == 'SearchByOrderID'}
			checked="checked"
		{/if}	[B][COLOR="Red"]onclick="order_search_typeClickHandler()"[/COLOR][/B] id="id_order_search_type1" /><label for="id_order_search_type1"> {$smarty.const.ADMIN_ORDER_SEARCH_BY_NUMBER}</label>: 
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input type="text" name="orderID_textbox" value="{$orderID}" />
		</div>
	{if $order_statuses}
	<br />
	<input class="inlradio" type="radio" name="order_search_type" value="SearchByStatusID"
		{if $order_search_type == 'SearchByStatusID' || $order_search_type == null}checked="checked"{/if}
		[B][COLOR="Red"]onclick="order_search_typeClickHandler()"[/COLOR][/B] id="id_order_search_type2" /><label for="id_order_search_type2"> {$smarty.const.ADMIN_SHOW_ORDER_IN_STATUS}</label>:
		{section name=i loop=$order_statuses}
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input class="checknomarging" type="checkbox" name="checkbox_order_status_{$order_statuses[i].statusID}" id="id_checkbox_order_status_{$order_statuses[i].statusID}"
		{if $order_statuses[i].selected == 1} checked{else}{if $order_statuses[i].statusID == $smarty.const.CONF_NEW_ORDER_STATUS} checked{/if}{/if} value="1" /><label for="id_checkbox_order_status_{$order_statuses[i].statusID}"> {$order_statuses[i].status_name}</label>
		</div>
		{/section}
		<br />
	{/if}
	<input type="submit" value="{$smarty.const.ADMIN_SHOW}" name="search" />
[B][COLOR="Red"]	<script language="JavaScript" type="text/javascript">
	function order_search_typeClickHandler()
	{literal}{{/literal}
		if ( document.MainForm.order_search_type[0].checked )
		{literal}{{/literal}
			{section name=i loop=$order_statuses}
				document.MainForm.checkbox_order_status_{$order_statuses[i].statusID}.disabled = true;
			{/section}
			document.MainForm.orderID_textbox.disabled = false;
		{literal}}{/literal}
		else if ( document.MainForm.order_search_type[1].checked )
		{literal}{{/literal}
			{section name=i loop=$order_statuses}
				document.MainForm.checkbox_order_status_{$order_statuses[i].statusID}.disabled = false;
			{/section}
			document.MainForm.orderID_textbox.disabled = true;						
		{literal}}{/literal}
	{literal}}{/literal}
	order_search_typeClickHandler();
	</script>[/COLOR][/B]
Меняем
Код:
<form method="get" action="admin.php" name="MainForm">
	<input class="inlradio" type="radio" name="order_search_type" value="SearchByOrderID"
		{if $order_search_type == 'SearchByOrderID'}
			checked="checked"
		{/if} id="id_order_search_type1" /><label for="id_order_search_type1"> {$smarty.const.ADMIN_ORDER_SEARCH_BY_NUMBER}</label>: 
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input type="text" name="orderID_textbox" value="{$orderID}" [B][COLOR="Red"]onclick="document.MainForm.order_search_type[0].checked = true;"[/COLOR][/B] />
		</div>
	{if $order_statuses}
	<br />
	<input class="inlradio" type="radio" name="order_search_type" value="SearchByStatusID"
		{if $order_search_type == 'SearchByStatusID' || $order_search_type == null}checked="checked"{/if}
		id="id_order_search_type2" /><label for="id_order_search_type2"> {$smarty.const.ADMIN_SHOW_ORDER_IN_STATUS}</label>:
		{section name=i loop=$order_statuses}
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input class="checknomarging" type="checkbox" name="checkbox_order_status_{$order_statuses[i].statusID}" id="id_checkbox_order_status_{$order_statuses[i].statusID}"
		{if $order_statuses[i].selected == 1} checked{else}{if $order_statuses[i].statusID == $smarty.const.CONF_NEW_ORDER_STATUS} checked{/if}{/if} value="1" [B][COLOR="Red"]onclick="document.MainForm.order_search_type[1].checked = true;"[/COLOR][/B] /><label for="id_checkbox_order_status_{$order_statuses[i].statusID}"> {$order_statuses[i].status_name}</label>
		</div>
		{/section}
		<br />
	{/if}
	<input type="submit" value="{$smarty.const.ADMIN_SHOW}" name="search" />
Всё что обрамлено <script></script> убираем. Т.е. удаляем функцию order_search_typeClickHandler(), два ее вызова, и цепляем на поле для ввода номера искомого заказа и чекбоксы со статусами заказов обработчики.
Теперь, если кликнуть на поле для ввода номера, автоматом будет отмечена радиокнопка Поиск по номеру, а если кликнуть по любому из чекбоксов, автоматом будет отмечена радиокнопка Поиск по статусу.
 
Чекбоксы заработали как надо, но поиск по номеру заказа вообще отключился.. То есть я ввожу номер заказ и он не находится, хотя заказ с таким номером есть.

Еще заметил, что теперь при выводе списка заказов с одинаковым статусом в поле ввода номера заказа появляется ноль.
 
Чекбоксы заработали как надо, но поиск по номеру заказа вообще отключился.. То есть я ввожу номер заказ и он не находится, хотя заказ с таким номером есть.
Еще заметил, что теперь при выводе списка заказов с одинаковым статусом в поле ввода номера заказа появляется ноль.
Данное изменение никак сам алгоритм поиска заказа не затрагивает.
На оригинальной сборке все работает.
Может что-то намодифицировали в custord_new_orders.php ? Попробуйте заменить его файлом из сборки.
Чтобы не появлялся 0 в поле вводе заказа при поиске по статусу, меняем:
Код:
	<input class="inlradio" type="radio" name="order_search_type" value="SearchByOrderID"
		{if $order_search_type == 'SearchByOrderID'}
			checked="checked"
		{/if} id="id_order_search_type1" /><label for="id_order_search_type1"> {$smarty.const.ADMIN_ORDER_SEARCH_BY_NUMBER}</label>: 
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input type="text" name="orderID_textbox" [COLOR="Red"]value="{$orderID}" [/COLOR]onclick="document.MainForm.order_search_type[0].checked = true;" />
		</div>
на
Код:
	<input class="inlradio" type="radio" name="order_search_type" value="SearchByOrderID"
		{if $order_search_type == 'SearchByOrderID'}
			checked="checked"
		{/if} id="id_order_search_type1" /><label for="id_order_search_type1"> {$smarty.const.ADMIN_ORDER_SEARCH_BY_NUMBER}</label>: 
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input type="text" name="orderID_textbox" [COLOR="Red"]value="{if $order_search_type == 'SearchByOrderID'}{$orderID}{/if}"[/COLOR] onclick="document.MainForm.order_search_type[0].checked = true;" />
		</div>
Если нужно, чтобы постоянно сам по себе не отмечался чекбокс со статусом "Новый", меняем:
Код:
		{section name=i loop=$order_statuses}
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input class="checknomarging" type="checkbox" name="checkbox_order_status_{$order_statuses[i].statusID}" id="id_checkbox_order_status_{$order_statuses[i].statusID}"
		[COLOR="Red"]{if $order_statuses[i].selected == 1} checked{else}{if $order_statuses[i].statusID == $smarty.const.CONF_NEW_ORDER_STATUS} checked{/if}{/if}[/COLOR] value="1" onclick="document.MainForm.order_search_type[1].checked = true;" /><label for="id_checkbox_order_status_{$order_statuses[i].statusID}"> {$order_statuses[i].status_name}</label>
		</div>
		{/section}
на
Код:
		{section name=i loop=$order_statuses}
		<div style="margin-left:40px;margin-top:3px;margin-bottom:3px;">
		<input class="checknomarging" type="checkbox" name="checkbox_order_status_{$order_statuses[i].statusID}" id="id_checkbox_order_status_{$order_statuses[i].statusID}"
		[COLOR="Red"]{if $order_statuses[i].selected == 1} checked{/if}[/COLOR] value="1" onclick="document.MainForm.order_search_type[1].checked = true;" /><label for="id_checkbox_order_status_{$order_statuses[i].statusID}"> {$order_statuses[i].status_name}</label>
		</div>
		{/section}
 
Чтобы не появлялся 0 в поле вводе заказа при поиске по статусу, меняем:

Спасибо, работает.

Нашел почему "отключился" поиск. На самом деле он не отключился, он теперь не реагирует на клавишу "Enter". То есть если я ввожу номер заказа и нажимаю на клавиатуре "Enter", то получаю результат "Заказы не найдены". А если я нажму мышкой на кнопку "Показать", то заказ находится.
 
Спасибо, работает.
Нашел почему "отключился" поиск. На самом деле он не отключился, он теперь не реагирует на клавишу "Enter". То есть если я ввожу номер заказа и нажимаю на клавиатуре "Enter", то получаю результат "Заказы не найдены". А если я нажму мышкой на кнопку "Показать", то заказ находится.

Даже уже и не знаю, что сказать :nezn:

У меня работает. И по клавише "Enter", и по кнопке "Показать". И на оригинальной сборке, и на переработанной.

Разве что дайте весь custord_new_orders.tpl.html, попробую, может у меня тоже работать не будет...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху