При создании числовых полей, а так же смене типа уже существующих строчных полей на числовые , активация чекбоксов "Числовое поле" в разделе "Управление полями" происходит автоматически. Это соответствует логике самих типов числовых полей.
This commit is contained in:
@@ -172,7 +172,12 @@ function openAliasWindow(fieldId, rubId, width, height, target) {ldelim}
|
||||
{section name=field loop=$fields}
|
||||
{if $field.rubric_field_type == $fields[field].id}
|
||||
{assign var="unknow" value=""}
|
||||
<a href="javascript:void(0);" class="link change_type" data-rubric="{$field.rubric_id}" data-id="{$field.Id}">{$fields[field].name}</a>
|
||||
<a href="javascript:void(0);" class="link change_type"
|
||||
data-rubric="{$field.rubric_id}"
|
||||
data-id="{$field.Id}"
|
||||
data-type-alias="{$fields[field].id}">
|
||||
{$fields[field].name}
|
||||
</a>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
@@ -281,11 +286,15 @@ function openAliasWindow(fieldId, rubId, width, height, target) {ldelim}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<select name="rub_type_new" id="rub_type_new">
|
||||
{section name=field loop=$fields}
|
||||
<option value="{$fields[field].id}" {if $fields[field].id == 'single_line'}selected{/if}>{$fields[field].name}</option>
|
||||
{/section}
|
||||
</select>
|
||||
<select name="rub_type_new" id="rub_type_new">
|
||||
{section name=field loop=$fields}
|
||||
<option value="{$fields[field].id}"
|
||||
data-type-alias="{$fields[field].id}"
|
||||
{if $fields[field].id == 'single_line'}selected{/if}>
|
||||
{$fields[field].name}
|
||||
</option>
|
||||
{/section}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="group_new" id="group_new">
|
||||
@@ -378,6 +387,68 @@ $(document).ready(function(){ldelim}
|
||||
|
||||
{literal}
|
||||
|
||||
|
||||
// --- активируем чекбоксы (всегда числовое) если поле числовое ---
|
||||
function checkNumeric(alias) {
|
||||
return alias && (alias.indexOf('numeric') !== -1);
|
||||
}
|
||||
|
||||
// Для НОВОГО поля
|
||||
$(document).on('change', '#rub_type_new', function() {
|
||||
var alias = $(this).find('option:selected').attr('data-type-alias');
|
||||
var isNum = checkNumeric(alias);
|
||||
var $cb = $('input[name="rubric_field_numeric"]');
|
||||
$cb.prop('checked', isNum);
|
||||
if ($cb.parent().hasClass('jqTransformCheckboxWrapper')) {
|
||||
if (isNum) $cb.parent().find('a').addClass('jqTransformChecked');
|
||||
else $cb.parent().find('a').removeClass('jqTransformChecked');
|
||||
}
|
||||
$cb.trigger('change');
|
||||
});
|
||||
|
||||
// ВИЗУАЛ ПРИ СМЕНЕ ТИПА ПОЛЯ (чтобы галочка менялась сразу в таблице)
|
||||
$(document).on('change', 'select[name="rubric_field_type"]', function() {
|
||||
var fieldId = $(this).closest('form').find('.SaveChangeField').attr('data-id');
|
||||
var isNum = checkNumeric($(this).val());
|
||||
if (fieldId) {
|
||||
var $mainCb = $('input[name="rubric_field_numeric[' + fieldId + ']"]');
|
||||
var $visualLink = $mainCb.closest('td').find('a.jqTransformCheckbox');
|
||||
|
||||
$mainCb.prop('checked', isNum); // Меняем состояние реального чекбокса
|
||||
|
||||
if (isNum) $visualLink.addClass('jqTransformChecked');
|
||||
else $visualLink.removeClass('jqTransformChecked');
|
||||
}
|
||||
});
|
||||
|
||||
// СОХРАНЕНИЕ ПРИ СМЕНЕ ТИПА ПОЛЯ AJAX: Смена типа + Авто-клик по "Применить"
|
||||
$(document).on('click', '.SaveChangeField', function(event) {
|
||||
event.preventDefault();
|
||||
var $btn = $(this);
|
||||
var $modalForm = $btn.parent('form');
|
||||
var Id = $btn.attr('data-id');
|
||||
var RubId = $btn.attr('data-rubric');
|
||||
|
||||
$modalForm.ajaxSubmit({
|
||||
url: $modalForm.attr('action'),
|
||||
type: 'POST',
|
||||
beforeSubmit: function() {
|
||||
$.alerts._overlay('show');
|
||||
},
|
||||
success: function(data) {
|
||||
// обновляем ячейку с типом поля
|
||||
$("#rub_field_" + RubId + "_" + Id).before(data).remove();
|
||||
|
||||
// отправляем всю таблицу в базу и сохраняем чекбокс
|
||||
$(".SaveEditFields").first().trigger('click');
|
||||
|
||||
$.alerts._overlay('hide');
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
// --- Конец активируем чекбоксы (всегда числовое) если поле числовое ---
|
||||
|
||||
$(document).on('click', '.change_group', function(event)
|
||||
{
|
||||
event.preventDefault();
|
||||
|
||||
Reference in New Issue
Block a user