%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/main.ui.grid/templates/.default/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/main.ui.grid/templates/.default/template.php |
<?
/**
* @var $arParams
* @var $arResult
*/
use \Bitrix\Main\Text;
use \Bitrix\Main\Grid;
use \Bitrix\Main\Localization\Loc;
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
{
die();
}
CJSCore::Init(array('popup', 'ui', 'resize_observer', 'loader', 'ui.actionpanel', 'ui.fonts.opensans'));
\Bitrix\Main\Page\Asset::getInstance()->addJs('/bitrix/js/main/dd.js');
global $APPLICATION;
$bodyClass = $APPLICATION->GetPageProperty("BodyClass");
$APPLICATION->SetPageProperty("BodyClass", ($bodyClass ? $bodyClass." " : "")."grid-mode");
if ($arParams['FLEXIBLE_LAYOUT'])
{
$bodyClass = $APPLICATION->getPageProperty('BodyClass', false);
$APPLICATION->setPageProperty('BodyClass', trim(sprintf('%s %s', $bodyClass, 'flexible-layout')));
}
$additionalColumnsCount = 1;
if ($arParams["SHOW_ROW_CHECKBOXES"])
{
$additionalColumnsCount += 1;
}
if ($arParams["SHOW_GRID_SETTINGS_MENU"] || $arParams["SHOW_ROW_ACTIONS_MENU"])
{
$additionalColumnsCount += 1;
}
if ($arParams["ALLOW_ROWS_SORT"])
{
$additionalColumnsCount += 1;
}
$displayedCount = count(
array_filter(
$arParams["ROWS"],
function($val)
{
return $val["not_count"] !== true;
}
)
);
?>
<div class="main-grid<?=$arResult["IS_AJAX"] ? " main-grid-load-animation" : ""?><?=!$arParams["ALLOW_HORIZONTAL_SCROLL"] ? " main-grid-full" : ""?><?=$arParams["ALLOW_ROWS_SORT"] ? " main-grid-rows-sort-enable" : ""?>" id="<?=$arParams["GRID_ID"]?>" data-ajaxid="<?=$arParams["AJAX_ID"]?>"<?=$arResult['IS_AJAX'] ? " style=\"display: none;\"" : ""?>><?
?><form name="form_<?=$arParams["GRID_ID"]?>" action="<?=POST_FORM_ACTION_URI; ?>" method="POST"><?
?><?=bitrix_sessid_post() ?><?
?><div class="main-grid-settings-window"><?
?><div class="main-grid-settings-window-select-links"><?
?><span class="main-grid-settings-window-select-link main-grid-settings-window-select-all"><?=Loc::getMessage("interface_grid_settings_select_all_columns")?></span><?
?><span class="main-grid-settings-window-select-link main-grid-settings-window-unselect-all"><?=Loc::getMessage("interface_grid_settings_unselect_all_columns")?></span><?
?></div><?
?><div class="main-grid-settings-window-list"><?
foreach ($arResult["COLUMNS_ALL"] as $key => $column) : ?><?
?><div data-name="<?=Text\HtmlFilter::encode($column["id"])?>" class="main-grid-settings-window-list-item <?=$arParams["ALLOW_STICKED_COLUMNS"] && $column["sticked"] && array_key_exists($column["id"], $arResult["COLUMNS"]) ? "main-grid-settings-window-list-item-sticked" : ""?>" data-sticked-default="<?=$column["sticked_default"]?>"><?
?><input id="<?=Text\HtmlFilter::encode($column["id"])?>-checkbox" type="checkbox" class="main-grid-settings-window-list-item-checkbox" <?=array_key_exists($column["id"], $arResult["COLUMNS"]) ? " checked" : ""?>><?
?><label for="<?=Text\HtmlFilter::encode($column["id"])?>-checkbox" class="main-grid-settings-window-list-item-label"><?=Text\HtmlFilter::encode($column["name"])?></label><?
?><span class="main-grid-settings-window-list-item-edit-button<?=!$arParams["ALLOW_STICKED_COLUMNS"] ? " main-grid-reset-right" : ""?>"></span><?
if ($arParams["ALLOW_STICKED_COLUMNS"]) :
?><span class="main-grid-settings-window-list-item-sticky-button"></span><?
endif;
?></div><?
endforeach;
?></div><?
?><div class="popup-window-buttons"><?
?><span class="main-grid-settings-window-buttons-wrapper"><?
?><span class="main-grid-settings-window-actions-item-button main-grid-settings-window-actions-item-reset" id="<?=$arParams["GRID_ID"]?>-grid-settings-reset-button"><?=Loc::getMessage("interface_grid_restore_to_default")?></span><?
if ($USER->CanDoOperation("edit_other_settings")) :
?><span class="main-grid-settings-window-actions-item-button main-grid-settings-window-for-all">
<input name="grid-settings-window-for-all" type="checkbox" id="<?=$arParams["GRID_ID"]?>-main-grid-settings-window-for-all-checkbox" class="main-grid-settings-window-for-all-checkbox">
<label for="<?=$arParams["GRID_ID"]?>-main-grid-settings-window-for-all-checkbox" class="main-grid-settings-window-for-all-label"><?=Loc::getMessage("interface_grid_settings_for_all_label")?></label><?
?></span><?
endif;
?></span><?
?><span class="main-grid-settings-window-actions-item-button webform-small-button" id="<?=$arParams["GRID_ID"]?>-grid-settings-apply-button"><?=Loc::getMessage("interface_grid_apply_settings")?></span><?
?><span class="main-grid-settings-window-actions-item-button webform-small-button webform-small-button-transparent" id="<?=$arParams["GRID_ID"]?>-grid-settings-cancel-button"><?=Loc::getMessage("interface_grid_cancel_settings")?></span><?
?></div><?
?></div><?
?><div class="main-grid-wrapper<?=!$arParams["ALLOW_HORIZONTAL_SCROLL"] ? " main-grid-full" : "" ?>"><?
?><div class="<?=$arParams["ALLOW_HORIZONTAL_SCROLL"] ? "main-grid-fade" : "" ?>"><?
if ($arParams["ALLOW_HORIZONTAL_SCROLL"]) : ?><?
?><div class="main-grid-fade-shadow-left"></div><?
?><div class="main-grid-fade-shadow-right"></div><?
?><div class="main-grid-ear main-grid-ear-left"></div><?
?><div class="main-grid-ear main-grid-ear-right"></div><?
endif; ?><?
?><div class="main-grid-loader-container"></div><?
?><div class="main-grid-container"><?
?><table class="main-grid-table" id="<?=$arParams["GRID_ID"]?>_table"><?
if (!$arResult['BX_isGridAjax']): ?><?
?><thead class="main-grid-header" data-relative="<?=$arParams["GRID_ID"]?>"><?
?><tr class="main-grid-row-head"><?
if ($arParams["ALLOW_ROWS_SORT"]) :
?><th class="main-grid-cell-head main-grid-cell-static main-grid-cell-drag<?=$arParams["ALLOW_STICKED_COLUMNS"] && $arResult["HAS_STICKED_COLUMNS"] ? " main-grid-sticked-column" : ""?>"><?
?><span class="main-grid-cell-head-container"> </span><?
?></th><?
endif;
if ($arParams["SHOW_ROW_CHECKBOXES"]): ?><?
?><th class="main-grid-cell-head main-grid-cell-static main-grid-cell-checkbox<?=$arParams["ALLOW_STICKED_COLUMNS"] && $arResult["HAS_STICKED_COLUMNS"] ? " main-grid-sticked-column" : ""?>"><?
if ($arParams["SHOW_CHECK_ALL_CHECKBOXES"]): ?><?
?><span class="main-grid-cell-head-container"><?
?><span class="main-grid-checkbox-container main-grid-head-checkbox-container"><?
?><input class="main-grid-checkbox main-grid-row-checkbox main-grid-check-all" id="<?=$arParams["GRID_ID"]?>_check_all" type="checkbox" title="<?=getMessage('interface_grid_check_all') ?>"<? if (!$arResult['ALLOW_EDIT']): ?> disabled<? endif ?>><?
?><label class="main-grid-checkbox" for="<?=$arParams["GRID_ID"]?>_check_all"></label><?
?></span><?
?></span><?
endif; ?><?
?></th><?
endif ?><?
if ($arParams["SHOW_GRID_SETTINGS_MENU"] || $arParams["SHOW_ROW_ACTIONS_MENU"]) : ?><?
?><th class="main-grid-cell-head main-grid-cell-static main-grid-cell-action<?=$arParams["ALLOW_STICKED_COLUMNS"] && $arResult["HAS_STICKED_COLUMNS"] ? " main-grid-sticked-column" : ""?>"><?
if ($arParams["SHOW_GRID_SETTINGS_MENU"]) : ?><?
?><span class="main-grid-interface-settings-icon"></span><?
endif; ?><?
?></th><?
endif; ?><?
foreach ($arResult['COLUMNS'] as $id => $header) : ?><?
$isHidden = !array_key_exists($id, $arResult['COLUMNS']); ?><?
?><th class="main-grid-cell-head <?=$header["class"]?> <?=$arParams["ALLOW_COLUMNS_SORT"] ? " main-grid-draggable" : ""?> <?=$arParams["ALLOW_STICKED_COLUMNS"] && $header["sticked"] ? "main-grid-sticked-column" : ""?>" data-edit="(<?=Text\HtmlFilter::encode(CUtil::PhpToJSObject($header["editable"]))?>)" data-name="<?=Text\HtmlFilter::encode($id)?>" data-sort-url="<?=$header["sort_url"]?>" data-sort-by="<?=$header["sort"]?>" data-sort-order="<?=$header["next_sort_order"]?>" <? if($header["width"] <> ''): ?> style="width: <?=$header["width"]?>px"<? endif ?>><?
?><span class="main-grid-cell-head-container" <? if($header["width"] <> ''): ?>style="width: <?=$header["width"]?>px"<? endif ?>><?
?><span class="main-grid-head-title"><?=Text\HtmlFilter::encode($header["showname"] ? $header["name"] : ""); ?></span><?
if ($arParams["ALLOW_COLUMNS_RESIZE"] && $header["resizeable"] !== false) : ?><?
?><span class="main-grid-resize-button" onclick="event.stopPropagation(); " title=""></span><?
endif; ?><?
if ($header["sort"] && $arParams["ALLOW_SORT"]) : ?><?
?><span class="main-grid-control-sort main-grid-control-sort-<?=$header["sort_state"] ? $header["sort_state"] : "hover-".$header["order"]?>"></span><?
endif;
?></span><?
?></th><?
endforeach ?><?
?><th class="main-grid-cell-head main-grid-cell-static main-grid-special-empty"></th><?
?></tr><?
?></thead><?
endif ?><?
?><tbody><?
if (empty($arParams['ROWS'])): ?><?
?><tr class="main-grid-row main-grid-row-empty main-grid-row-body"><?
?><td class="main-grid-cell main-grid-cell-center" colspan="<?=count($arParams['COLUMNS']) + $additionalColumnsCount ?>"><?
if (!isset($_REQUEST["apply_filter"])) :
?><div class="main-grid-empty-block"><?
?><div class="main-grid-empty-inner"><?
?><div class="main-grid-empty-image"></div><?
?><div class="main-grid-empty-text"><?=getMessage('interface_grid_no_data') ?></div><?
?></div><?
?></div><?
else :
?><div class="main-grid-empty-block"><?
?><div class="main-grid-empty-inner"><?
?><div class="main-grid-empty-image"></div><?
?><div class="main-grid-empty-text"><?=getMessage('interface_grid_filter_no_data') ?></div><?
?></div><?
?></div><?
endif; ?><?
?></td><?
?></tr><?
else:
foreach($arParams['ROWS'] as $key => $arRow):
$rowClasses = isset($arRow['columnClasses']) && is_array($arRow['columnClasses'])
? $arRow['columnClasses'] : array();
$collapseRow = false;
if (!empty($arRow["custom"])) :
$lastCollapseGroup = $arRow["expand"] === false ? $arRow["group_id"] : null;
?><tr class="main-grid-row main-grid-row-body main-grid-row-custom<?=$arRow["not_count"] ? " main-grid-not-count" : ""?><?=$arRow["draggable"] === false ? " main-grid-row-drag-disabled" : ""?><?=$arRow["expand"] ? " main-grid-row-expand" : ""?>"<?=$arRow["attrs_string"]?> data-id="<?=$arRow["id"]?>"><?
?><td colspan="<?=count($arResult["COLUMNS"]) + $additionalColumnsCount?>" class="main-grid-cell main-grid-cell-center"><?
if ($arParams["ENABLE_COLLAPSIBLE_ROWS"] && $arRow["has_child"] == true) :
?><span class="main-grid-plus-button"></span><?
endif;
?><div class="main-grid-cell-content"><?=$arRow["custom"]?></div><?
?></td><?
?></tr><?
elseif (!empty($arParams["ROW_LAYOUT"])) :
$data_id = $arRow["id"];
$actions = Text\HtmlFilter::encode(CUtil::PhpToJSObject($arRow["actions"]));
$sDefAction = $arRow["default_action"];
$depth = $arRow["depth"] > 0 ? 20*$arRow["depth"] : 0;
$collapseRow = ($arParams["ENABLE_COLLAPSIBLE_ROWS"] && isset($arRow["parent_group_id"]) && $lastCollapseGroup === $arRow["parent_group_id"]);?>
<tr class="main-grid-row main-grid-row-body<?=$arRow["not_count"] ? " main-grid-not-count" : ""?><?=$arRow["expand"] ? " main-grid-row-expand" : ""?><?=$arRow["draggable"] === false ? " main-grid-row-drag-disabled" : ""?><?=$collapseRow ? " main-grid-hide" : ""?>" data-child-loaded="<?=$arRow["expand"]?"true":"false"?>" data-depth="<?=$arRow["depth"]?>" data-id="<?=$data_id ?>"<?=$arParams["ENABLE_COLLAPSIBLE_ROWS"] ? " data-parent-id=\"".$arRow["parent_id"]."\"" : ""?> <?if(!empty($sDefAction["js"])):?> data-default-action="<?=Text\HtmlFilter::encode($sDefAction["js"])?>" title="<?=GetMessage("interface_grid_dblclick")?><?=$sDefAction["title"]?>"<?endif;?><?=$arRow["attrs_string"]?>>
<? if ($arParams["ALLOW_ROWS_SORT"] && $arRow["draggable"] !== false) : ?>
<th class="main-grid-cell main-grid-cell-drag" rowspan="<?=count($arParams["ROW_LAYOUT"])?>">
<span class="main-grid-cell-content"> </span>
</th>
<? endif; ?>
<? if ($arParams["SHOW_ROW_CHECKBOXES"]): ?>
<td class="main-grid-cell main-grid-cell-checkbox" rowspan="<?=count($arParams["ROW_LAYOUT"])?>">
<span class="main-grid-cell-content">
<input type="checkbox" class="main-grid-row-checkbox main-grid-checkbox" name="ID[]" value="<?=$data_id ?>" <? if ($arRow['editable'] !== false): ?> title="<?=getMessage('interface_grid_check') ?>" id="checkbox_<?=$arParams["GRID_ID"]?>_<?=$data_id ?>"<? endif ?> <? if (!$arResult['ALLOW_EDIT'] || $arRow['editable'] === false): ?> data-disabled="1" disabled<? endif ?>>
<label class="main-grid-checkbox" for="checkbox_<?=$arParams["GRID_ID"]?>_<?=$data_id ?>"></label>
</span>
</td>
<? endif ?>
<? if ($arParams["SHOW_ROW_ACTIONS_MENU"] || $arParams["SHOW_GRID_SETTINGS_MENU"]) : ?>
<td class="main-grid-cell main-grid-cell-action" rowspan="<?=count($arParams["ROW_LAYOUT"])?>">
<? if (!empty($arRow["actions"]) && $arParams["SHOW_ROW_ACTIONS_MENU"]) : ?>
<span class="main-grid-cell-content">
<a href="#" class="main-grid-row-action-button" data-actions="<?=$actions?>"></a>
</span>
<? endif; ?>
</td>
<? endif; ?>
<?
foreach ($arParams["ROW_LAYOUT"] as $rowIndex => $rowLayout) :
foreach ($rowLayout as $rowLayoutCellIndex => $rowLayoutCell) :
$showedColumns[] = $rowLayoutCell["column"];
endforeach;
endforeach;
$showedColumns = array_unique($showedColumns);
$showedColumnsFromLayout = array();
foreach ($arParams["ROW_LAYOUT"] as $rowIndex => $rowLayout) :
foreach ($rowLayout as $rowLayoutCellIndex => $rowLayoutCell) :
if (array_key_exists($rowLayoutCell["column"], $arResult["COLUMNS"]) && !isset($rowLayoutCell["rowspan"]))
{
$showedColumnsFromLayout[] = $rowLayoutCell["column"];
}
endforeach;
endforeach;
?>
<? foreach ($arParams["ROW_LAYOUT"] as $rowIndex => $rowLayout) : ?>
<? if ($rowIndex > 0) : ?>
<tr class="main-grid-row main-grid-row-body<?=$arRow["not_count"] ? " main-grid-not-count" : ""?><?=$arRow["expand"] ? " main-grid-row-expand" : ""?><?=$arRow["draggable"] === false ? " main-grid-row-drag-disabled" : ""?><?=$collapseRow ? " main-grid-hide" : ""?>" data-child-loaded="<?=$arRow["expand"]?"true":"false"?>" data-depth="<?=$arRow["depth"]?>" data-bind="<?=$data_id ?>"<?=$arParams["ENABLE_COLLAPSIBLE_ROWS"] ? " data-parent-id=\"".$arRow["parent_id"]."\"" : ""?> <?if(!empty($sDefAction["js"])):?> data-default-action="<?=Text\HtmlFilter::encode($sDefAction["js"])?>" title="<?=GetMessage("interface_grid_dblclick")?><?=$sDefAction["title"]?>"<?endif;?><?=$arRow["attrs_string"]?>>
<? endif; ?>
<? foreach ($rowLayout as $rowLayoutCellIndex => $rowLayoutCell) :
$header = $arResult["COLUMNS"][$rowLayoutCell["column"]];
$preventDefault = $header["prevent_default"] ? "true" : "false";
if (!(is_array($arRow["editable"]) && $arRow["editable"][$header["id"]] === false) && is_array($header["editable"]) && $arRow["editable"] !== false && is_array($arRow["data"]))
{
$header["editable"]["VALUE"] = $arRow["data"][$header["id"]];
}
else
{
$header["editable"] = false;
}
$className = "main-grid-cell";
if($header['align'])
{
$className .= " main-grid-cell-{$header['align']}";
}
if(isset($rowClasses[$id]))
{
$className .= " {$rowClasses[$id]}";
}
if (count($arParams["ROW_LAYOUT"]) > 1 && $rowIndex < (count($arParams["ROW_LAYOUT"])-1) && !isset($rowLayoutCell["rowspan"]))
{
$className .= " main-grid-cell-no-border";
}
$isShift = $arParams["ENABLE_COLLAPSIBLE_ROWS"] && $arResult["HEADERS"][$header["id"]]["shift"] == true;
$isWithButton = $arParams["ENABLE_COLLAPSIBLE_ROWS"] && $arRow["has_child"] == true && $isShift;
$colspan = 0;
if (isset($rowLayoutCell["colspan"]))
{
$colspan = min($rowLayoutCell["colspan"], count($showedColumnsFromLayout));
}
?>
<? if (isset($rowLayoutCell["data"]) || array_key_exists($rowLayoutCell["column"], $arResult["COLUMNS"])) : ?>
<td class="<?=$className?>"<?=$isShift ? " style=\"padding-left: ".($depth)."px\" data-shift=\"true\"" : ""?><?=$rowLayoutCell["rowspan"] ? " rowspan=\"".$rowLayoutCell["rowspan"]."\"" : ""?><?=$rowLayoutCell["colspan"] ? " colspan=\"".$colspan."\"" : ""?>>
<span class="main-grid-cell-content" data-prevent-default="<?=$preventDefault?>">
<? if ($isWithButton) : ?>
<span class="main-grid-plus-button"></span>
<? endif; ?>
<?
if (isset($rowLayoutCell["column"]) && isset($arRow["columns"][$rowLayoutCell["column"]]))
{
echo $arRow["columns"][$rowLayoutCell["column"]];
}
else if (isset($rowLayoutCell["data"]) && isset($arRow["data"][$rowLayoutCell["data"]]))
{
echo $arRow["data"][$rowLayoutCell["data"]];
}
?>
</span>
</td>
<? endif; ?>
<? endforeach; ?>
<? if ($rowIndex === 0) : ?>
<? foreach ($arResult['COLUMNS'] as $id => $header) : ?>
<? if (!in_array($header["id"], $showedColumns)) : ?>
<?
$preventDefault = $header["prevent_default"] ? "true" : "false";
$showedColumns[] = $rowLayoutCell["column"];
if (!(is_array($arRow["editable"]) && $arRow["editable"][$header["id"]] === false) && is_array($header["editable"]) && $arRow["editable"] !== false && is_array($arRow["data"]))
{
$header["editable"]["VALUE"] = $arRow["data"][$header["id"]];
}
else
{
$header["editable"] = false;
}
$className = "main-grid-cell";
if($header['align'])
{
$className .= " main-grid-cell-{$header['align']}";
}
if(isset($rowClasses[$id]))
{
$className .= " {$rowClasses[$id]}";
}
if (count($arParams["ROW_LAYOUT"]) > 1 && $rowIndex < (count($arParams["ROW_LAYOUT"])-1) && !isset($rowLayoutCell["rowspan"]))
{
$className .= " main-grid-cell-no-border";
}
$isShift = $arParams["ENABLE_COLLAPSIBLE_ROWS"] && $arResult["HEADERS"][$header["id"]]["shift"] == true;
$isWithButton = $arParams["ENABLE_COLLAPSIBLE_ROWS"] && $arRow["has_child"] == true && $isShift;
?>
<td class="<?=$className?>"<?=$isShift ? " style=\"padding-left: ".($depth)."px\" data-shift=\"true\"" : ""?> rowspan="<?=count($arParams["ROW_LAYOUT"])?>">
<span class="main-grid-cell-content" data-prevent-default="<?=$preventDefault?>">
<? if ($isWithButton) : ?>
<span class="main-grid-plus-button"></span>
<? endif; ?>
<?
if (isset($arRow["columns"][$header["id"]]))
{
echo $arRow["columns"][$header["id"]];
}
else if (isset($arRow["data"][$header["id"]]))
{
echo $arRow["data"][$header["id"]];
}
?>
</span>
</td>
<? endif; ?>
<? endforeach; ?>
<td class="main-grid-cell" rowspan="<?=count($arParams["ROW_LAYOUT"])?>"></td>
<? endif; ?>
</tr>
<? endforeach; ?>
<?
else :
$data_id = $arRow["id"];
$actions = Text\HtmlFilter::encode(CUtil::PhpToJSObject($arRow["actions"]));
$sDefAction = $arRow["default_action"];
$depth = $arRow["depth"] > 0 ? 20*$arRow["depth"] : 0;
$collapseRow = ($arParams["ENABLE_COLLAPSIBLE_ROWS"] && isset($arRow["parent_group_id"]) && $lastCollapseGroup === $arRow["parent_group_id"]);
?><tr class="main-grid-row main-grid-row-body<?=$arRow["not_count"] ? " main-grid-not-count" : ""?><?=$arRow["expand"] ? " main-grid-row-expand" : ""?><?=$arRow["draggable"] === false ? " main-grid-row-drag-disabled" : ""?><?=$collapseRow ? " main-grid-hide" : ""?>" data-child-loaded="<?=$arRow["expand"]?"true":"false"?>" data-depth="<?=$arRow["depth"]?>" data-id="<?=$data_id ?>"<?=$arParams["ENABLE_COLLAPSIBLE_ROWS"] ? " data-parent-id=\"".$arRow["parent_id"]."\"" : ""?> <?if(!empty($sDefAction["js"])):?> data-default-action="<?=Text\HtmlFilter::encode($sDefAction["js"])?>" title="<?=GetMessage("interface_grid_dblclick")?><?=$sDefAction["title"]?>"<?endif;?><?=$arRow["attrs_string"]?>><?
if ($arParams["ALLOW_ROWS_SORT"] && $arRow["draggable"] !== false) :
?><th class="main-grid-cell main-grid-cell-drag"><?
?><span class="main-grid-cell-content"> </span><?
?></th><?
endif;
if ($arParams["SHOW_ROW_CHECKBOXES"]): ?><?
?><td class="main-grid-cell main-grid-cell-checkbox"><?
?><span class="main-grid-cell-content"><?
?><input type="checkbox" class="main-grid-row-checkbox main-grid-checkbox" name="ID[]" value="<?=$data_id ?>" <? if ($arRow['editable'] !== false): ?> title="<?=getMessage('interface_grid_check') ?>" id="checkbox_<?=$arParams["GRID_ID"]?>_<?=$data_id ?>"<? endif ?> <? if (!$arResult['ALLOW_EDIT'] || $arRow['editable'] === false): ?> data-disabled="1" disabled<? endif ?>><?
?><label class="main-grid-checkbox" for="checkbox_<?=$arParams["GRID_ID"]?>_<?=$data_id ?>"></label><?
?></span><?
?></td><?
endif ?><?
if ($arParams["SHOW_ROW_ACTIONS_MENU"] || $arParams["SHOW_GRID_SETTINGS_MENU"]) :
?><td class="main-grid-cell main-grid-cell-action"><?
if (!empty($arRow["actions"]) && $arParams["SHOW_ROW_ACTIONS_MENU"]) : ?><?
?><span class="main-grid-cell-content"><?
?><a href="#" class="main-grid-row-action-button" data-actions="<?=$actions?>"></a><?
?></span><?
endif
?></td><?
endif; ?><?
foreach ($arResult['COLUMNS'] as $id => $header):
$preventDefault = $header["prevent_default"] ? "true" : "false";
if (!(is_array($arRow["editable"]) && $arRow["editable"][$header["id"]] === false) && is_array($header["editable"]) && $arRow["editable"] !== false && is_array($arRow["data"]))
{
$header["editable"]["VALUE"] = $arRow["data"][$header["id"]];
}
else
{
$header["editable"] = false;
}
$className = "main-grid-cell";
if($header['align'])
{
$className .= " main-grid-cell-{$header['align']}";
}
if(isset($rowClasses[$id]))
{
$className .= " {$rowClasses[$id]}";
}
$isShift = $arParams["ENABLE_COLLAPSIBLE_ROWS"] && $arResult["HEADERS"][$header["id"]]["shift"] == true;
$isWithButton = $arParams["ENABLE_COLLAPSIBLE_ROWS"] && $arRow["has_child"] == true && $isShift;
?><td class="<?=$className?>"<?=$isShift ? " style=\"padding-left: ".($depth)."px\" data-shift=\"true\"" : ""?>><?
?><span class="main-grid-cell-content" data-prevent-default="<?=$preventDefault?>"><?
if ($isWithButton) :
?><span class="main-grid-plus-button"></span><?
endif;
if($header["type"] == "checkbox" && ($arRow["columns"][$header["id"]] == 'Y' || $arRow["columns"][$header["id"]] == 'N'))
{
echo ($arRow["columns"][$header["id"]] == 'Y'? GetMessage("interface_grid_yes"):GetMessage("interface_grid_no"));
}
else
{
echo $arRow["columns"][$header["id"]];
}
?></span><?
?></td><?
endforeach ?><?
?><td class="main-grid-cell"></td><?
?></tr><?
endif; ?>
<? endforeach ?><?
if (!empty($arResult['AGGREGATE'])): ?><?
?><tr class="main-grid-row-foot main-grid-aggr-row" id="datarow_<?=$arParams["GRID_ID"]?>_bxaggr"><?
if ($arResult['ALLOW_GROUP_ACTIONS']): ?><td class="main-grid-cell-foot"></td><? endif ?><?
if ($arParams['ALLOW_ROW_ACTIONS']): ?><td class="main-grid-cell-foot"></td><? endif ?><?
foreach ($arResult['COLUMNS'] as $id => $header): ?><?
$isHidden = !array_key_exists($id, $arResult['COLUMNS']);
?><td class="main-grid-cell-foot <? if ($header['align']) echo 'main-grid-cell-', $header['align']; ?>" <? if ($isHidden): ?> style="display: none; "<? endif ?>><?
?><span class="main-grid-cell-content main-grid-cell-text-line"><?
if (!$isHidden && !empty($arResult['AGGREGATE'][$id])): ?><?
foreach ($arResult['AGGREGATE'][$id] as $item): ?><?
?><?=$item; ?><br><?
endforeach; ?><?
endif; ?><?
?></span><?
?></td><?
endforeach; ?><?
?><td class="main-grid-cell-foot"></td><?
?></tr><?
endif ?><?
endif ?><?
?></tbody><?
?></table><?
?></div><?
?></div><?
?></div><?
?><div class="main-grid-bottom-panels" id="<?=$arParams["GRID_ID"]?>_bottom_panels"><?
?><div class="main-grid-nav-panel"><?
?><div class="main-grid-more" id="<?=$arParams["GRID_ID"]?>_nav_more"><?
?><a href="<?=$arResult["NEXT_PAGE_URL"]?>" class="main-grid-more-btn" <? if (!$arResult["SHOW_MORE_BUTTON"] || !$arParams["SHOW_MORE_BUTTON"] || !count($arResult["ROWS"])): ?>style="display: none; "<? endif ?>><?
?><span class="main-grid-more-text"><?=getMessage('interface_grid_nav_more') ?></span><?
?><span class="main-grid-more-load-text"><?=getMessage('interface_grid_load') ?></span><?
?><span class="main-grid-more-icon"></span><?
?></a><?
?></div><?
if ($arParams["SHOW_NAVIGATION_PANEL"]) : ?><?
?><div class="main-grid-panel-wrap"><?
?><table class="main-grid-panel-table"><?
?><tr><?
if ($arParams["SHOW_SELECTED_COUNTER"]) : ?><?
?><td class="main-grid-panel-cell main-grid-panel-counter main-grid-cell-left"><?
?><div class="main-grid-panel-content main-grid-panel-counter-for-selected"><?
?><span class="main-grid-panel-content-title"><?=getMessage('interface_grid_checked') ?></span> <?
?><span class="main-grid-panel-content-text"><?
?><span class="main-grid-counter-selected">0</span><?
?> / <?
?><span class="main-grid-counter-displayed"><?=$displayedCount?></span><?
?></span><?
?></div><?
?><div class="main-grid-panel-content main-grid-panel-counter-for-all"><?
?><span class="main-grid-panel-content-text"><?=Loc::getMessage("interface_grid_all_selected")?></span><?
?></div><?
?></td><?
endif; ?><?
if ($arParams["SHOW_TOTAL_COUNTER"] && (isset($arResult["TOTAL_ROWS_COUNT"]) || !empty($arParams["TOTAL_ROWS_COUNT_HTML"]))) : ?><?
?><td class="main-grid-panel-total main-grid-panel-cell main-grid-cell-left"><?
?><div class="main-grid-panel-content"><?
if (empty($arParams["TOTAL_ROWS_COUNT_HTML"])) : ?><?
?><span class="main-grid-panel-content-title"><?=GetMessage("interface_grid_total")?>:</span><?
?> <span class="main-grid-panel-content-text"><?=count($arResult["ROWS"]) ? $arResult["TOTAL_ROWS_COUNT"] : 0?></span><?
else : ?><?
?><?=Text\HtmlConverter::getHtmlConverter()->decode($arParams["TOTAL_ROWS_COUNT_HTML"])?><?
endif; ?><?
?></div><?
?></td><?
endif; ?><?
?><td class="main-grid-panel-cell main-grid-panel-cell-pagination main-grid-cell-left"><?
if ($arParams["SHOW_PAGINATION"]) : ?><?
?><?=Bitrix\Main\Text\Converter::getHtmlConverter()->decode($arResult["NAV_STRING"]);?><?
endif; ?><?
?></td><?
?><td class="main-grid-panel-cell main-grid-panel-limit main-grid-cell-right"><?
if ($arParams["SHOW_PAGESIZE"] && is_array($arParams["PAGE_SIZES"]) && count($arParams["PAGE_SIZES"]) > 0) :
$pageSize = $arResult['OPTIONS']['views'][$arResult['OPTIONS']['current_view']]['page_size'] ?: $arParams["DEFAULT_PAGE_SIZE"]; ?><?
?><span class="main-grid-panel-content"><?
?><span class="main-grid-panel-content-title"><?=getMessage('interface_grid_page_size') ?></span> <?
?><span class="main-dropdown main-grid-popup-control main-grid-panel-select-pagesize" id="<?=$arParams["GRID_ID"]?>_grid_page_size" data-value="<?=$pageSize;?>" data-items="<?=$arResult["PAGE_SIZES_JSON"]?>">
<span class="main-dropdown-inner"> <?=$pageSize; ?></span><?
?></span><?
?></span><?
endif; ?><?
?></td><?
?></tr><?
?></table><?
?></div><?
endif; ?><?
?></div>
<? if ($arParams["SHOW_ACTION_PANEL"] && isset($arParams["ACTION_PANEL"]) && !empty($arParams["ACTION_PANEL"]) && is_array($arParams["ACTION_PANEL"]["GROUPS"])) : ?><?
?><div class="main-grid-action-panel main-grid-disable"><?
?><div class="main-grid-control-panel-wrap"><?
?><table class="main-grid-control-panel-table"><?
?><tr class="main-grid-control-panel-row"><?
foreach ($arParams["ACTION_PANEL"]["GROUPS"] as $groupKey => $group) : ?><?
?><td class="main-grid-control-panel-cell<?=$group["CLASS"] ? " ".$group["CLASS"] : "" ?>"><?
foreach ($group["ITEMS"] as $itemKey => $item) : ?><?
if ($item["TYPE"] === "CHECKBOX") :
?><span class="main-grid-panel-control-container<?=$item["DISABLED"] ? " main-grid-disable" : "";?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>"><?
if ($item["NAME"] === Grid\Panel\DefaultValue::FOR_ALL_CHECKBOX_NAME) : ?><?
?><span class="main-grid-checkbox-container main-grid-control-panel-checkbox-container"><?
?><input class="main-grid-panel-checkbox main-grid-checkbox main-grid-panel-control <?=$item["CLASS"]?>" id="<?=Text\HtmlFilter::encode($item["ID"])?><?=$arParams["GRID_ID"]?>" name="<?=Text\HtmlFilter::encode($item["NAME"])?><?=$arParams["GRID_ID"]?>" type="checkbox" value="<?=Text\HtmlFilter::encode($item["VALUE"])?>" title="<?=Text\HtmlFilter::encode($item["TITLE"])?>" data-onchange="<?=Text\HtmlFilter::encode(CUtil::PhpToJSObject($item["ONCHANGE"]))?>"<?=$item["CHECKED"] ? " checked" : ""?>> <?
?> <label class="main-grid-checkbox" for="<?=Text\HtmlFilter::encode($item["ID"])?><?=$arParams["GRID_ID"]?>"></label><?
?></span><?
?><span class="main-grid-control-panel-content-title"><?
?> <label for="<?=Text\HtmlFilter::encode($item["ID"])?><?=$arParams["GRID_ID"]?>" title="<?=Loc::getMessage("interface_grid_for_all")?>"><?=Loc::getMessage("interface_grid_for_all_box")?></label><?
?></span><?
else : ?><?
?><span class="main-grid-checkbox-container main-grid-control-panel-checkbox-container"><?
?><input class="main-grid-panel-checkbox main-grid-checkbox main-grid-panel-control" id="<?=Text\HtmlFilter::encode($item["ID"])?>_control" name="<?=Text\HtmlFilter::encode($item["NAME"])?>" type="checkbox" value="<?=Text\HtmlFilter::encode($item["VALUE"])?>" title="<?=Text\HtmlFilter::encode($item["TITLE"])?>" data-onchange="<?=Text\HtmlFilter::encode(CUtil::PhpToJSObject($item["ONCHANGE"]))?>"<?=$item["CHECKED"] ? " checked" : ""?>><?
?> <label class="main-grid-checkbox" for="<?=Text\HtmlFilter::encode($item["ID"])?>_control"></label><?
?></span><?
?><span class="main-grid-control-panel-content-title"><?
?> <label for="<?=Text\HtmlFilter::encode($item["ID"])?>_control" title="<?=Text\HtmlFilter::encode($item["TITLE"])?>"><?=Text\HtmlFilter::encode($item["LABEL"])?></label><?
?></span><?
endif;
?></span><?
endif; ?><?
if ($item["TYPE"] === "DROPDOWN") :
?><span class="main-grid-panel-control-container<?=$item["DISABLED"] ? " main-grid-disable" : "";?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>"><?
?><span class="main-dropdown main-grid-panel-control" data-popup-position="fixed" id="<?=Text\HtmlFilter::encode($item["ID"])?>_control" data-name="<?=Text\HtmlFilter::encode($item["NAME"])?>" data-value="<?=Text\HtmlFilter::encode(CUtil::PhpToJSObject($item["ITEMS"][0]["VALUE"]))?>" data-items="<?=Text\HtmlFilter::encode(CUtil::PhpToJSObject($item["ITEMS"]))?>"><?
?><span class="main-dropdown-inner"><?=$item["ITEMS"][0]["NAME"]?></span><?
?></span><?
?></span><?
endif; ?><?
if ($item["TYPE"] === "CUSTOM") : ?><?
?><span class="main-grid-panel-control-container<?=$item["DISABLED"] ? " main-grid-disable" : "";?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>">
<div class="main-grid-panel-custom">
<?=$item["VALUE"]?>
</div>
</span><?
endif; ?><?
if ($item["TYPE"] === "TEXT") : ?><?
?><span class="main-grid-panel-control-container<?=$item["DISABLED"] ? " main-grid-disable" : "";?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>"><?
if ($item["LABEL"]) : ?><?
?><label for="<?=Text\HtmlFilter::encode($item["ID"])?>_control"><?=Text\HtmlFilter::encode($item["LABEL"])?></label><?
endif;
?> <input type="text" class="main-grid-control-panel-input-text main-grid-panel-control" name="<?=Text\HtmlFilter::encode($item["NAME"])?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>_control" placeholder="<?=Text\HtmlFilter::encode($item["PLACEHOLDER"])?>" value="<?=Text\HtmlFilter::encode($item["VALUE"])?>" title="<?=Text\HtmlFilter::encode($item["TITLE"])?>"><?
?></span><?
endif; ?><?
if ($item["TYPE"] === "BUTTON") : ?><?
?><span class="main-grid-panel-control-container<?=$item["DISABLED"] ? " main-grid-disable" : "";?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>"><?
?><span class="main-grid-buttons <?=Text\HtmlFilter::encode($item["CLASS"])?>" data-name="<?=Text\HtmlFilter::encode($item["NAME"])?>" data-value="<?=Text\HtmlFilter::encode($item["VALUE"])?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>_control" data-onchange="<?=Text\HtmlFilter::encode(CUtil::PhpToJSObject($item["ONCHANGE"]))?>" title="<?=Text\HtmlFilter::encode($item["TITLE"])?>"><?
?><?=$item["TEXT"]
?></span><?
?></span><?
endif; ?><?
if ($item["TYPE"] === "LINK") :
?><span class="main-grid-panel-control-container<?=$item["DISABLED"] ? " main-grid-disable" : "";?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>" data-onchange="<?=Text\HtmlFilter::encode(CUtil::PhpToJSObject($item["ONCHANGE"]))?>" title="<?=Text\HtmlFilter::encode($item["TITLE"])?>"><?
?><a href="<?=Text\HtmlFilter::encode($item["HREF"])?>" class="main-grid-link<?=$item["CLASS"] ? " ".Text\HtmlFilter::encode($item["CLASS"]) : ""?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>_control"><?=$item["TEXT"]?></a><?
?></span><?
endif; ?><?
if ($item["TYPE"] === "DATE") :
?><span class="main-grid-panel-control-container<?=$item["DISABLED"] ? " main-grid-disable" : "";?>" id="<?=Text\HtmlFilter::encode($item["ID"])?>" data-onchange="<?=Text\HtmlFilter::encode(CUtil::PhpToJSObject($item["ONCHANGE"]))?>" title="<?=Text\HtmlFilter::encode($item["TITLE"])?>"><?
?><span class="main-ui-control main-ui-date main-grid-panel-date"><?
?><span class="main-ui-date-button"></span><?
?><input type="text" name="<?=$item["TYPE"]?>" tabindex="1" autocomplete="off" data-time="<?=$item["TIME"] ? "true" : "false"?>" class="main-ui-control-input main-ui-date-input" value="<?=$item["VALUE"]?>" placeholder="<?=$item["PLACEHOLDER"]?>"><?
?><div class="main-ui-control-value-delete<?=empty($item["VALUE"]) ? " main-ui-hide" : ""?>"><?
?><span class="main-ui-control-value-delete-item"></span><?
?></div><?
?></span><?
?></span><?
endif; ?><?
endforeach; ?><?
?></td><?
endforeach; ?><?
if ($arParams["SHOW_SELECTED_COUNTER"]) : ?><?
?><td class="main-grid-panel-cell main-grid-panel-counter main-grid-cell-left"><?
?><div class="main-grid-panel-content main-grid-panel-counter-for-selected"><?
?><span class="main-grid-panel-content-title"><?=getMessage('interface_grid_checked') ?></span> <?
?><span class="main-grid-panel-content-text"><?
?><span class="main-grid-counter-selected">0</span><?
?> / <?
?><span class="main-grid-counter-displayed"><?=count($arResult["ROWS"])?></span><?
?></span><?
?></div><?
?><div class="main-grid-panel-content main-grid-panel-counter-for-all"><?
?><span class="main-grid-panel-content-text"><?=Loc::getMessage("interface_grid_all_selected")?></span><?
?></div><?
?></td><?
endif; ?><?
?></tr><?
?></table><?
?></div><?
?></div><?
endif; ?><?
?></div><?
?></form><?
?><iframe height="0" width="100%" id="main-grid-tmp-frame-<?=$arParams["GRID_ID"]?>" name="main-grid-tmp-frame-<?=$arParams["GRID_ID"]?>" style="position: absolute; z-index: -1; opacity: 0; border: 0;"></iframe><?
?></div>
<?
$request = \Bitrix\Main\Context::getCurrent()->getRequest();
if (\Bitrix\Main\Grid\Context::isInternalRequest()) :
?><script>
(function() {
var action = '<?=\CUtil::JSEscape($request->get("grid_action"))?>';
var editableData = eval(<?=CUtil::phpToJSObject($arResult["DATA_FOR_EDIT"])?>);
var defaultColumns = eval(<?=CUtil::phpToJSObject($arResult["DEFAULT_COLUMNS"])?>);
var Grid = BX.Main.gridManager.getById('<?=$arParams["GRID_ID"]?>');
var messages = eval(<?=CUtil::phpToJSObject($arResult["MESSAGES"])?>);
Grid = Grid ? Grid.instance : null;
if (Grid)
{
Grid.arParams.DEFAULT_COLUMNS = defaultColumns;
Grid.arParams.MESSAGES = messages;
if (action !== 'more')
{
Grid.arParams.EDITABLE_DATA = editableData;
}
else
{
var editableDataKeys = Object.keys(editableData);
editableDataKeys.forEach(function(key) {
Grid.arParams.EDITABLE_DATA[key] = editableData[key];
});
}
BX.onCustomEvent(window, 'BX.Main.grid:paramsUpdated', []);
}
})();
</script><?
endif; ?>
<? if (!$arResult['IS_AJAX'] || !$arResult['IS_INTERNAL']) : ?><?
?><script>
BX(function() { BX.Main.dropdownManager.init(); });
BX(function() {
<? if(isset($arParams['TOP_ACTION_PANEL_RENDER_TO'])): ?>
var actionPanel = new BX.UI.ActionPanel({
params: {
gridId: '<?=$arParams["GRID_ID"]?>'
},
pinnedMode: <?= CUtil::PhpToJSObject($arParams["TOP_ACTION_PANEL_PINNED_MODE"]) ?>,
renderTo: document.querySelector("<?= CUtil::JSEscape($arParams['TOP_ACTION_PANEL_RENDER_TO']) ?>"),
groupActions: <?= \Bitrix\Main\Web\Json::encode($arParams['ACTION_PANEL']) ?>
});
actionPanel.draw();
<? endif; ?>
BX.Main.gridManager.push(
'<?=$arParams["GRID_ID"]?>',
new BX.Main.grid(
'<?=$arParams["GRID_ID"]?>',
<?=CUtil::PhpToJSObject(
array(
"ALLOW_COLUMNS_SORT" => $arParams["ALLOW_COLUMNS_SORT"],
"ALLOW_ROWS_SORT" => $arParams["ALLOW_ROWS_SORT"],
"ALLOW_COLUMNS_RESIZE" => $arParams["ALLOW_COLUMNS_RESIZE"],
"SHOW_ROW_CHECKBOXES" => $arParams["SHOW_ROW_CHECKBOXES"],
"ALLOW_HORIZONTAL_SCROLL" => $arParams["ALLOW_HORIZONTAL_SCROLL"],
"ALLOW_PIN_HEADER" => $arParams["ALLOW_PIN_HEADER"],
"SHOW_ACTION_PANEL" => $arParams["SHOW_ACTION_PANEL"],
"PRESERVE_HISTORY" => $arParams["PRESERVE_HISTORY"],
"BACKEND_URL" => $arResult["BACKEND_URL"],
"ALLOW_CONTEXT_MENU" => $arResult["ALLOW_CONTEXT_MENU"],
"DEFAULT_COLUMNS" => $arResult["DEFAULT_COLUMNS"],
"ENABLE_COLLAPSIBLE_ROWS" => $arParams["ENABLE_COLLAPSIBLE_ROWS"],
"EDITABLE_DATA" => $arResult["DATA_FOR_EDIT"],
"SETTINGS_TITLE" => Loc::getMessage("interface_grid_settings_title"),
"APPLY_SETTINGS" => Loc::getMessage("interface_grid_apply_settings"),
"CANCEL_SETTINGS" => Loc::getMessage("interface_grid_cancel_settings"),
"CONFIRM_APPLY" => Loc::getMessage("interface_grid_confirm_apply"),
"CONFIRM_CANCEL" => Loc::getMessage("interface_grid_confirm_cancel"),
"CONFIRM_MESSAGE" => Loc::getMessage("interface_grid_confirm_message"),
"CONFIRM_FOR_ALL_MESSAGE" => Loc::getMessage("interface_grid_confirm_for_all_message"),
"CONFIRM_RESET_MESSAGE" => Loc::getMessage("interface_grid_settings_confirm_message"),
"RESET_DEFAULT" => Loc::getMessage("interface_grid_restore_to_default"),
"SETTINGS_FOR_ALL_LABEL" => Loc::getMessage("interface_grid_settings_for_all_label"),
"SETTINGS_FOR_ALL_CONFIRM_MESSAGE" => Loc::getMessage("interface_grid_settings_for_all_confirm_message"),
"SETTINGS_FOR_ALL_CONFIRM_APPLY" => Loc::getMessage("interface_grid_settings_for_all_apply"),
"SETTINGS_FOR_ALL_CONFIRM_CANCEL" => Loc::getMessage("interface_grid_settings_for_all_cancel"),
"CLOSE" => Loc::getMessage("interface_grid_settings_close"),
"IS_ADMIN" => $USER->CanDoOperation("edit_other_settings"),
"MESSAGES" => $arResult["MESSAGES"],
"LAZY_LOAD" => $arResult["LAZY_LOAD"],
"ALLOW_VALIDATE" => $arParams["ALLOW_VALIDATE"]
)
)?>,
<?=CUtil::PhpToJSObject($arResult["OPTIONS"])?>,
<?=CUtil::PhpToJSObject($arResult["OPTIONS_ACTIONS"])?>,
'<?=$arResult["OPTIONS_HANDLER_URL"]?>',
<?=CUtil::PhpToJSObject($arResult["PANEL_ACTIONS"])?>,
<?=CUtil::PhpToJSObject($arResult["PANEL_TYPES"])?>,
<?=CUtil::PhpToJSObject($arResult["EDITOR_TYPES"])?>,
<?=CUtil::PhpToJSObject($arResult["MESSAGE_TYPES"])?>
)
);
});
</script>
<? endif; ?>