Updated : added hidden inputs in HelperTree class | Admin can only see his own hotel in HelperTree

This commit is contained in:
Shreesh Arora
2024-10-01 12:56:20 +05:30
parent f8caa224b7
commit 0bedfdb094
11 changed files with 68 additions and 27 deletions

View File

@@ -42,7 +42,7 @@
{if isset($use_checkbox) && $use_checkbox == true}
function checkAll($tree)
{
$tree.find(":input[type=checkbox]").each(
$tree.find(":input[type=checkbox]:not([hidden])").each(
function()
{
$(this).prop("checked", true);
@@ -53,7 +53,7 @@
function uncheckAll($tree)
{
$tree.find(":input[type=checkbox]").each(
$tree.find(":input[type=checkbox]:not([hidden])").each(
function()
{
$(this).prop("checked", false);

View File

@@ -22,7 +22,7 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<li class="tree-folder">
<li class="tree-folder" {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if}>
<span class="tree-folder-name">
<i class="icon-folder-close"></i>
<label class="tree-toggler">{$node['name']|escape:'html':'UTF-8'}</label>

View File

@@ -22,10 +22,10 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<li class="tree-folder">
<li class="tree-folder" {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if}>
<span class="tree-folder-name{if isset($node['disabled']) && $node['disabled'] == true} tree-folder-name-disable{/if}">
{if !isset($selectable) || $selectable}
<input type="checkbox" name="{$node['input_name']}[]" value="{$node['value']}"{if isset($node['selected']) && $node['selected'] == true} checked="checked"{/if}{if isset($node['disabled']) && $node['disabled'] == true} disabled="disabled"{/if} />
<input type="checkbox" name="{$node['input_name']}[]" value="{$node['value']}"{if isset($node['selected']) && $node['selected'] == true} checked="checked"{/if}{if isset($node['disabled']) && $node['disabled'] == true} disabled="disabled"{/if} {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if}/>
{/if}
<i class="icon-folder-close"></i>
<label class="tree-toggler">{if isset($node['name'])}{$node['name']|escape:'html':'UTF-8'}{/if}{if isset($node['selected_childs']) && (int)$node['selected_childs'] > 0} {l s='(%s selected)' sprintf=$node['selected_childs']}{/if}</label>

View File

@@ -22,10 +22,10 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<li class="tree-folder">
<li class="tree-folder" {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if}>
<span class="tree-folder-name{if isset($node['disabled']) && $node['disabled'] == true} tree-folder-name-disable{/if}">
{if !isset($selectable) || $selectable}
<input type="radio" name="{$node['input_name']}" value="{$node['value']}"{if isset($node['selected']) && $node['selected'] == true} checked="checked"{/if}{if isset($node['disabled']) && $node['disabled'] == true} disabled="disabled"{/if} />
<input type="radio" name="{$node['input_name']}" value="{$node['value']}"{if isset($node['selected']) && $node['selected'] == true} checked="checked"{/if}{if isset($node['disabled']) && $node['disabled'] == true} disabled="disabled"{/if} {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if}/>
{/if}
<i class="icon-folder-close"></i>
<label class="tree-toggler">{$node['name']|escape:'html':'UTF-8'}</label>

View File

@@ -23,7 +23,7 @@
* International Registered Trademark & Property of PrestaShop SA
*}
<li class="tree-item">
<li class="tree-item" {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if}>
<span class="tree-item-name">
<i class="tree-dot"></i>
<label class="tree-toggler">{$node['name']}</label>

View File

@@ -22,9 +22,9 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<li class="tree-item{if isset($node['disabled']) && $node['disabled'] == true} tree-item-disable{/if}">
<li class="tree-item{if isset($node['disabled']) && $node['disabled'] == true} tree-item-disable{/if}" {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if}>
<span class="tree-item-name{if isset($node['disabled']) && $node['disabled'] == true} tree-item-name-disable{/if}">
<input type="checkbox" name="{$node['input_name']}[]" value="{$node['value']}"{if isset($node['selected']) && $node['selected'] == true} checked="checked"{/if}{if isset($node['disabled']) && $node['disabled'] == true} disabled="disabled"{/if} />
<input type="checkbox" name="{$node['input_name']}[]" value="{$node['value']}"{if isset($node['selected']) && $node['selected'] == true} checked="checked"{/if}{if isset($node['disabled']) && $node['disabled'] == true} disabled="disabled"{/if} {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if} />
<i class="tree-dot"></i>
<label class="tree-toggler">{$node['name']}</label>
</span>

View File

@@ -22,9 +22,9 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<li class="tree-item{if isset($node['disabled']) && $node['disabled'] == true} tree-item-disable{/if}">
<li class="tree-item{if isset($node['disabled']) && $node['disabled'] == true} tree-item-disable{/if}" {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if}>
<span class="tree-item-name">
<input type="radio" name="{$node['input_name']}" value="{$node['value']}"{if isset($node['selected']) && $node['selected'] == true} checked="checked"{/if}{if isset($node['disabled']) && $node['disabled'] == true} disabled="disabled"{/if} />
<input type="radio" name="{$node['input_name']}" value="{$node['value']}"{if isset($node['selected']) && $node['selected'] == true} checked="checked"{/if}{if isset($node['disabled']) && $node['disabled'] == true} disabled="disabled"{/if} {if isset($node['hidden']) && $node['hidden'] == true} hidden="hidden"{/if} />
<i class="tree-dot"></i>
<label class="tree-toggler">{$node['name']}</label>
</span>

View File

@@ -601,15 +601,15 @@ class AdminCartRulesControllerCore extends AdminController
$products['selected'] = HotelBranchInformation::filterDataByHotelAccess(
$products['selected'],
$this->context->employee->id_profile,
0,
1,
false,
'id',
1
);
$products['unselected'] = HotelBranchInformation::filterDataByHotelAccess(
$products['unselected'],
$this->context->employee->id_profile,
0,
1,
false,
'id',
1
);
Context::getContext()->smarty->assign('product_rule_itemlist', $products);

View File

@@ -275,8 +275,8 @@ class HotelBranchInformation extends ObjectModel
public static function filterDataByHotelAccess(
$dataArray,
$idProfile,
$idAsIdHotel = 0,
$idAsIdProduct = 0,
$idHotelAlias = false,
$idProductAlias = false,
$addAccessKey = 0
) {
if ($hotelAccessInfo = Db::getInstance()->executeS(
@@ -299,20 +299,20 @@ class HotelBranchInformation extends ObjectModel
unset($dataArray[$key]);
}
}
} elseif ($idAsIdHotel && isset($row['id'])) {
} elseif ($idHotelAlias && isset($row[$idHotelAlias])) {
if ($addAccessKey) {
$dataArray[$key]['htl_access'] = 0;
if (in_array($row['id'], $hotels)) {
if (in_array($row[$idHotelAlias], $hotels)) {
$dataArray[$key]['htl_access'] = 1;
}
} else {
if (!in_array($row['id'], $hotels)) {
if (!in_array($row[$idHotelAlias], $hotels)) {
unset($dataArray[$key]);
}
}
} elseif ($idAsIdProduct && isset($row['id'])) {
} elseif ($idProductAlias && isset($row[$idProductAlias])) {
$objRoomType = new HotelRoomType();
if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($row['id'])) {
if ($roomTypeInfo = $objRoomType->getRoomTypeInfoByIdProduct($row[$idProductAlias])) {
if ($addAccessKey) {
$dataArray[$key]['htl_access'] = 0;
if (in_array($roomTypeInfo['id_hotel'], $hotels)) {

View File

@@ -2678,6 +2678,12 @@ class HotelHelper
$hotels = self::getHotelsByIdCity($previousElements, $rootNodeId);
$hotelIds = array_column($hotels, 'value');
if (Validate::isLoadedObject(Context::getContext()->employee)){
if (!Context::getContext()->employee->isSuperAdmin()) {
$hotels = HotelBranchInformation::filterDataByHotelAccess($hotels, Context::getContext()->employee->id_profile, 'value', false, true);
}
}
if ($leafNode > self::NODE_HOTEL) {
$roomTypes = self::generateRoomTypeNodes(false, $leafNode, $selectedElements, $hotelIds);
}
@@ -2687,6 +2693,10 @@ class HotelHelper
$hotel['selected'] = true;
}
if (isset($hotel['htl_access']) && !$hotel['htl_access']) {
$hotel['hidden'] = true;
}
if (isset($roomTypes[$hotel['value']])) {
$hotel['children'] = $roomTypes[$hotel['value']];
}
@@ -2710,6 +2720,18 @@ class HotelHelper
$roomTypes = self::getRoomTypesByHotelsId($previousElements, $rootNodeId);
$roomTypeIds = array_column($roomTypes, 'value');
if (Validate::isLoadedObject(Context::getContext()->employee)){
if (!Context::getContext()->employee->isSuperAdmin()) {
$roomTypes = HotelBranchInformation::filterDataByHotelAccess(
$roomTypes,
Context::getContext()->employee->id_profile,
false,
'value',
true
);
}
}
if ($leafNode > self::NODE_ROOM_TYPE) {
$rooms = self::generateRoomNodes(false, $leafNode, $selectedElements, $roomTypeIds);
}
@@ -2719,6 +2741,10 @@ class HotelHelper
$roomType['selected'] = true;
}
if (isset($roomType['htl_access']) && !$roomType['htl_access']) {
$roomType['hidden'] = true;
}
if (isset($rooms[$roomType['value']])) {
$roomType['children'] = $rooms[$roomType['value']];
}
@@ -2740,12 +2766,27 @@ class HotelHelper
{
$return = array();
$rooms = self::getRoomsByRoomTypeId($previousElements, $rootNodeId);
if (Validate::isLoadedObject(Context::getContext()->employee)){
if (!Context::getContext()->employee->isSuperAdmin()) {
$rooms = HotelBranchInformation::filterDataByHotelAccess(
$rooms,
Context::getContext()->employee->id_profile,
false,
false,
true
);
}
}
foreach ($rooms as $room) {
if (isset($selectedElements['room']) && in_array($room['value'], $selectedElements['room'])) {
$room['selected'] = true;
}
if (isset($room['htl_access']) && !$room['htl_access']) {
$room['hidden'] = true;
}
if ($previousElements) {
$return[$room['id_product']][] = $room;
} else {

View File

@@ -95,7 +95,7 @@ class AdminHotelRoomsBookingController extends ModuleAdminController
$objHotelBranchInformation = new HotelBranchInformation();
$hotelBranchesInfo = $objHotelBranchInformation->hotelBranchesInfo(false, 1);
// filter hotels as per accessed hotels
$hotelBranchesInfo = HotelBranchInformation::filterDataByHotelAccess($hotelBranchesInfo, $this->context->employee->id_profile, 1);
$hotelBranchesInfo = HotelBranchInformation::filterDataByHotelAccess($hotelBranchesInfo, $this->context->employee->id_profile, 'id');
if ($hotelBranchesInfo) {
if (Tools::getValue('date_from')) {
@@ -130,7 +130,7 @@ class AdminHotelRoomsBookingController extends ModuleAdminController
$htl_info = HotelBranchInformation::filterDataByHotelAccess(
$htl_info,
$this->context->employee->id_profile,
1
'id'
);
$id_hotel = reset($htl_info)['id'];
} else {
@@ -286,7 +286,7 @@ class AdminHotelRoomsBookingController extends ModuleAdminController
$hotel_list = HotelBranchInformation::filterDataByHotelAccess(
$hotel_list,
$this->context->employee->id_profile,
1
'id'
);
$all_room_type = $obj_rm_type->getRoomTypeByHotelId($this->id_hotel, Configuration::get('PS_LANG_DEFAULT'), 1);
@@ -317,7 +317,7 @@ class AdminHotelRoomsBookingController extends ModuleAdminController
$objHotelBranchInformation = new HotelBranchInformation();
$hotelBranchesInfo = $objHotelBranchInformation->hotelBranchesInfo(false, 1);
// filter hotels as per accessed hotels
$hotelBranchesInfo = HotelBranchInformation::filterDataByHotelAccess($hotelBranchesInfo, $this->context->employee->id_profile, 1);
$hotelBranchesInfo = HotelBranchInformation::filterDataByHotelAccess($hotelBranchesInfo, $this->context->employee->id_profile, 'id');
if ($hotelBranchesInfo) {
$this->tpl_view_vars['id_cart'] = (int) $this->context->cart->id;