diff --git a/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl b/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl index 4ad0c5c28..22113e45c 100644 --- a/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl +++ b/admin/themes/default/template/controllers/modules_catalog/modules_list.tpl @@ -33,15 +33,13 @@ {else} {$element->description|truncate:90:"..."} {/if} - {* {l s='Read more'} *}

{if isset($element->type) && $element->type == 'addonsMustHave' && $element->not_on_disk} {if isset($element->price)}{if $element->price|floatval == 0}{l s='Free'}{elseif isset($element->id_currency)}{displayPrice price=$element->price currency=$element->id_currency}{/if}{/if} {l s='Explore'} {else} - {* trusted} data-target="#moduleNotTrusted" data-toggle="modal"{/if} data-link="{$element->options.install_url|escape:'html':'UTF-8'}" data-module-display-name="{$element->displayName|escape:'html':'UTF-8'}" data-module-name="{$element->name|escape:'html':'UTF-8'}" data-module-image="{if isset($element->image)}{$element->image}{else}{$modules_uri}/{$element->name}/{$element->logo}{/if}" data-author-name="{$element->author|escape:'html':'UTF-8'}" data-author-uri="{if isset($element->author_uri)}{$element->author_uri|escape:'html':'UTF-8'}{/if}" href="{if !$element->trusted}#{else}{$element->options.install_url|escape:'html':'UTF-8'}{/if}" title="{l s='Install'}">{l s='Install'} *} - {l s='Install'} + trusted} data-target="#moduleNotTrusted" data-toggle="modal"{/if} data-link="{$element->options.install_url|escape:'html':'UTF-8'}" data-module-display-name="{$element->displayName|escape:'html':'UTF-8'}" data-module-name="{$element->name|escape:'html':'UTF-8'}" data-module-image="{if isset($element->image)}{$element->image}{else}{$modules_uri}/{$element->name}/{$element->logo}{/if}" data-author-name="{$element->author|escape:'html':'UTF-8'}" data-author-uri="{if isset($element->author_uri)}{$element->author_uri|escape:'html':'UTF-8'}{/if}" href="{if !$element->trusted}#{else}{$element->options.install_url|escape:'html':'UTF-8'}{/if}" title="{l s='Install'}">{l s='Install'} {/if}
diff --git a/classes/Tools.php b/classes/Tools.php index abae3eebc..86bc7c1f8 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -3323,13 +3323,14 @@ exit; 'version' => isset($params['version']) ? $params['version'] : _QLOAPPS_VERSION_, 'iso_lang' => Tools::strtolower(isset($params['iso_lang']) ? $params['iso_lang'] : Context::getContext()->language->iso_code), 'iso_code' => Tools::strtolower(isset($params['iso_country']) ? $params['iso_country'] : Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))), - 'shop_url_ssl' => isset($params['shop_url']) ? $params['shop_url'] : Tools::getShopDomainSsl(), + 'shop_url' => isset($params['shop_url']) ? $params['shop_url'] : Tools::getShopDomain(), + 'shop_url_ssl' => isset($params['shop_url_ssl']) ? $params['shop_url_ssl'] : Tools::getShopDomainSsl(), 'physical_uri' => Context::getContext()->shop->physical_uri, 'mail' => isset($params['email']) ? $params['email'] : Configuration::get('PS_SHOP_EMAIL') )); $protocols = array('https'); - $end_point = 'api.qloapps.com'; + $end_point = _QLO_API_DOMAIN_; switch ($request) { case 'native': diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 4a9597d5c..45479e0fa 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -2243,6 +2243,7 @@ class AdminControllerCore extends Controller } else { $this->status = 'cache'; } + Module::generateTrustedXml(); } /** diff --git a/classes/module/Module.php b/classes/module/Module.php index 108a9a8e8..9654684ee 100644 --- a/classes/module/Module.php +++ b/classes/module/Module.php @@ -1377,6 +1377,7 @@ abstract class ModuleCore $item->active = 0; $item->onclick_option = false; $item->url = false; + $item->trusted = Module::isModuleTrusted($item->name, false); $item->is_native = false; if (defined('_PS_HOST_MODE_') && in_array($item->name, self::$hosted_modules_blacklist)) { @@ -1443,6 +1444,7 @@ abstract class ModuleCore $item->is_configurable = $tmp_module->is_configurable = method_exists($tmp_module, 'getContent') ? 1 : 0; $item->need_instance = isset($tmp_module->need_instance) ? $tmp_module->need_instance : 0; $item->active = $tmp_module->active; + $item->trusted = Module::isModuleTrusted($tmp_module->name, false); $item->currencies = isset($tmp_module->currencies) ? $tmp_module->currencies : null; $item->currencies_mode = isset($tmp_module->currencies_mode) ? $tmp_module->currencies_mode : null; $item->confirmUninstall = isset($tmp_module->confirmUninstall) ? html_entity_decode($tmp_module->confirmUninstall) : null; @@ -1629,6 +1631,7 @@ abstract class ModuleCore $item->need_instance = 0; $item->not_on_disk = 1; $item->available_on_addons = 1; + $item->trusted = Module::isModuleTrusted($item->name, false); $item->active = 0; $item->description_full = stripslashes($modaddons->description_full); $item->additional_description = isset($modaddons->additional_description) ? stripslashes($modaddons->additional_description) : null; diff --git a/controllers/admin/AdminPerformanceController.php b/controllers/admin/AdminPerformanceController.php index 415196036..4a0b4b123 100644 --- a/controllers/admin/AdminPerformanceController.php +++ b/controllers/admin/AdminPerformanceController.php @@ -151,7 +151,7 @@ class AdminPerformanceControllerCore extends AdminController 'input' => array( array( 'type' => 'switch', - 'label' => $this->l('Disable non PrestaShop modules'), + 'label' => $this->l('Disable non QloApps modules'), 'name' => 'native_module', 'class' => 't', 'is_bool' => true, @@ -167,7 +167,7 @@ class AdminPerformanceControllerCore extends AdminController 'label' => $this->l('Disabled') ) ), - 'hint' => $this->l('Enable or disable non PrestaShop Modules.') + 'hint' => $this->l('Enable or disable non QloApps Modules.') ), array( 'type' => 'switch', diff --git a/controllers/front/ProductController.php b/controllers/front/ProductController.php index 9073286b1..321d94752 100644 --- a/controllers/front/ProductController.php +++ b/controllers/front/ProductController.php @@ -271,7 +271,6 @@ class ProductControllerCore extends FrontController /*By webkul To send All needed Hotel Information on product.tpl*/ ##################################################################### - $total_available_rooms = 0; $htl_features = array(); $obj_hotel_room_type = new HotelRoomType(); $room_info_by_product_id = $obj_hotel_room_type->getRoomTypeInfoByIdProduct($this->product->id); @@ -311,12 +310,6 @@ class ProductControllerCore extends FrontController $date_to = date('Y-m-d', strtotime('+1 day', strtotime($date_from))); } - $obj_booking_dtl = new HotelBookingDetail(); - $hotel_room_data = $obj_booking_dtl->DataForFrontSearch($date_from, $date_to, $hotel_id, $this->product->id, 1); - - if ($hotel_room_data) { - $total_available_rooms = $hotel_room_data['stats']['num_avail']; - } $hotel_branch_obj = new HotelBranchInformation($hotel_id); /*Max date of ordering for order restrict*/ $order_date_restrict = false; @@ -355,7 +348,6 @@ class ProductControllerCore extends FrontController 'isHotelRefundable' => $hotel_branch_obj->isRefundable(), 'max_order_date' => $max_order_date, 'warning_num' => Configuration::get('WK_ROOM_LEFT_WARNING_NUMBER'), - 'total_available_rooms' => $total_available_rooms, 'product_controller_url' => $this->context->link->getPageLink('product'), 'date_from' => $date_from, 'date_to' => $date_to, diff --git a/modules/blockcart/ajax-cart.js b/modules/blockcart/ajax-cart.js index d92610635..8043f19aa 100644 --- a/modules/blockcart/ajax-cart.js +++ b/modules/blockcart/ajax-cart.js @@ -370,20 +370,10 @@ var ajaxCart = { /*by webkul checking and setting availability of rooms*/ /*for product page add to cart quantity management*/ if (pagename == 'product') { - if (jsonData.avail_rooms <= room_warning_num) { - $('.num_quantity_alert').show(); - } else { - $('.num_quantity_alert').hide(); - } - $("#max_avail_type_qty").val(jsonData.avail_rooms); - $(".num_searched_avail_rooms").text(jsonData.avail_rooms); - if (jsonData.avail_rooms == 0) { - $('.num_quantity_alert').hide(); - $('.sold_out_alert').show(); disableRoomTypeDemands(1); - $('.unvail_rooms_cond_display').hide(); } + BookingForm.refresh(); } if (pagename == 'category') { @@ -509,19 +499,10 @@ var ajaxCart = { var date_checkOut = $.datepicker.formatDate('yy-mm-dd', $.datepicker.parseDate(ajaxCart.dateFormat, $('#room_check_out').val())); var product_page_id_product = $('#product_page_product_id').val(); if (idProduct == product_page_id_product && dateFrom < date_checkOut && dateTo >= date_checkIn) { - if (jsonData.avail_rooms <= room_warning_num) { - $('.num_quantity_alert').show(); - } else { - $('.num_quantity_alert').hide(); - } $("#max_avail_type_qty").val(jsonData.avail_rooms); - $(".num_searched_avail_rooms").text(jsonData.avail_rooms); if (jsonData.avail_rooms == 0) { - $('.num_quantity_alert').hide(); - $('.sold_out_alert').show(); disableRoomTypeDemands(1); - $('.unvail_rooms_cond_display').hide(); } } BookingForm.refresh(); @@ -628,18 +609,10 @@ var ajaxCart = { data: 'controller=cart&delete=1&dateFrom=' + dateFrom + '&dateTo=' + dateTo + '&id_product=' + idProduct + '&ipa=' + ((idCombination != null && parseInt(idCombination)) ? idCombination : '') + ((customizationId && customizationId != null) ? '&id_customization=' + customizationId : '') + '&id_address_delivery=' + idAddressDelivery + '&token=' + static_token + '&ajax=true', success: function(jsonData) { if (pagename == 'product') { - if (jsonData.avail_rooms <= room_warning_num) { - $('.num_quantity_alert').show(); - } else { - $('.num_quantity_alert').hide(); - } - - $("#max_avail_type_qty").val(jsonData.avail_rooms); - $(".num_searched_avail_rooms").text(jsonData.avail_rooms); - $('.sold_out_alert').hide(); disableRoomTypeDemands(0); - $('.unvail_rooms_cond_display').show(); + BookingForm.refresh(); } + if (pagename == 'category') { // for category page.... $(".cat_remain_rm_qty_" + idProduct).text(jsonData.avail_rooms); diff --git a/themes/hotel-reservation-theme/_partials/booking-form.tpl b/themes/hotel-reservation-theme/_partials/booking-form.tpl index 708a46fb9..61f1c56b3 100644 --- a/themes/hotel-reservation-theme/_partials/booking-form.tpl +++ b/themes/hotel-reservation-theme/_partials/booking-form.tpl @@ -35,7 +35,6 @@ -
{if $total_available_rooms > 0}
quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}> @@ -82,7 +81,6 @@

{/if} -
@@ -90,9 +88,7 @@
{if $total_available_rooms <= $warning_count}
- - {$total_available_rooms|escape:'html':'UTF-8'} - + {$total_available_rooms|escape:'html':'UTF-8'} {if $total_available_rooms > 1} {l s='rooms left!'} {else} {l s='room left!'} {/if}
{/if} diff --git a/themes/hotel-reservation-theme/css/product.css b/themes/hotel-reservation-theme/css/product.css index 31d1baaef..d4890de4e 100644 --- a/themes/hotel-reservation-theme/css/product.css +++ b/themes/hotel-reservation-theme/css/product.css @@ -1229,35 +1229,17 @@ Quick View Styles font-size: 16px; font-weight: 400; padding-top: 10px;} -.room_unavailability_qty_error_div -{ - display: none; - background-color: #cd5d5d; - color: #ffffff; - font-size: 13px; - margin-bottom: 10px; - padding: 2px; - text-align: center;} - -.room_unavailability_date_error_div -{ - display: none; - background-color: #cd5d5d; - color: #ffffff; - font-size: 13px; - margin-bottom: 10px; - padding: 2px; - text-align: center;} .sold_out_alert, .order_restrict_alert { color: #FF4B4B; display: block; font-size: 16px; font-weight: 700;} -.num_quantity_alert { - font-size: 14px; - color: #FF4B4B; - font-weight: 700;} + .num_quantity_alert { + font-size: 14px; + color: #FF4B4B; + font-weight: 700; + text-align: right;} /*for search block background*/ .idTabHrefShort:hover { diff --git a/themes/hotel-reservation-theme/js/modules/blockcart/ajax-cart.js b/themes/hotel-reservation-theme/js/modules/blockcart/ajax-cart.js index d92610635..8043f19aa 100644 --- a/themes/hotel-reservation-theme/js/modules/blockcart/ajax-cart.js +++ b/themes/hotel-reservation-theme/js/modules/blockcart/ajax-cart.js @@ -370,20 +370,10 @@ var ajaxCart = { /*by webkul checking and setting availability of rooms*/ /*for product page add to cart quantity management*/ if (pagename == 'product') { - if (jsonData.avail_rooms <= room_warning_num) { - $('.num_quantity_alert').show(); - } else { - $('.num_quantity_alert').hide(); - } - $("#max_avail_type_qty").val(jsonData.avail_rooms); - $(".num_searched_avail_rooms").text(jsonData.avail_rooms); - if (jsonData.avail_rooms == 0) { - $('.num_quantity_alert').hide(); - $('.sold_out_alert').show(); disableRoomTypeDemands(1); - $('.unvail_rooms_cond_display').hide(); } + BookingForm.refresh(); } if (pagename == 'category') { @@ -509,19 +499,10 @@ var ajaxCart = { var date_checkOut = $.datepicker.formatDate('yy-mm-dd', $.datepicker.parseDate(ajaxCart.dateFormat, $('#room_check_out').val())); var product_page_id_product = $('#product_page_product_id').val(); if (idProduct == product_page_id_product && dateFrom < date_checkOut && dateTo >= date_checkIn) { - if (jsonData.avail_rooms <= room_warning_num) { - $('.num_quantity_alert').show(); - } else { - $('.num_quantity_alert').hide(); - } $("#max_avail_type_qty").val(jsonData.avail_rooms); - $(".num_searched_avail_rooms").text(jsonData.avail_rooms); if (jsonData.avail_rooms == 0) { - $('.num_quantity_alert').hide(); - $('.sold_out_alert').show(); disableRoomTypeDemands(1); - $('.unvail_rooms_cond_display').hide(); } } BookingForm.refresh(); @@ -628,18 +609,10 @@ var ajaxCart = { data: 'controller=cart&delete=1&dateFrom=' + dateFrom + '&dateTo=' + dateTo + '&id_product=' + idProduct + '&ipa=' + ((idCombination != null && parseInt(idCombination)) ? idCombination : '') + ((customizationId && customizationId != null) ? '&id_customization=' + customizationId : '') + '&id_address_delivery=' + idAddressDelivery + '&token=' + static_token + '&ajax=true', success: function(jsonData) { if (pagename == 'product') { - if (jsonData.avail_rooms <= room_warning_num) { - $('.num_quantity_alert').show(); - } else { - $('.num_quantity_alert').hide(); - } - - $("#max_avail_type_qty").val(jsonData.avail_rooms); - $(".num_searched_avail_rooms").text(jsonData.avail_rooms); - $('.sold_out_alert').hide(); disableRoomTypeDemands(0); - $('.unvail_rooms_cond_display').show(); + BookingForm.refresh(); } + if (pagename == 'category') { // for category page.... $(".cat_remain_rm_qty_" + idProduct).text(jsonData.avail_rooms); diff --git a/themes/hotel-reservation-theme/js/product.js b/themes/hotel-reservation-theme/js/product.js index 41bc50ea6..accdf0dbb 100644 --- a/themes/hotel-reservation-theme/js/product.js +++ b/themes/hotel-reservation-theme/js/product.js @@ -311,9 +311,6 @@ $(document).on('click', '.product_quantity_up', function(e) { BookingForm.refresh(); } else if ((numRoomsWanted < 1 || numRoomsWanted > numRoomsMaxAvailable) && numRoomsMaxAvailable > 0) { $('#quantity_wanted').val(numRoomsMaxAvailable); - setTimeout(function() { - $('.room_unavailability_qty_error_div').hide(); - }, 2000); } }); @@ -322,8 +319,6 @@ $(document).on('click', '.product_quantity_down', function(e) { e.preventDefault(); let numRoomsWanted = parseInt($('#quantity_wanted').val()); - let numRoomsMaxAvailable = parseInt($('#max_avail_type_qty').val()); - if (numRoomsWanted > 1) { $('#quantity_wanted').val(numRoomsWanted - 1); BookingForm.refresh(); @@ -1061,49 +1056,12 @@ function checkUrl() { /*java script code by webkul on produt page.*/ /*#####################################################################*/ $(document).ready(function() { - let dateFormat = 'dd-mm-yy'; - if (total_avail_rms <= room_warning_num) { - $('.num_quantity_alert').show(); - } else { - $('.num_quantity_alert').hide(); - } - /*set $max avail quantity when reloading page*/ - $('#max_avail_type_qty').val(total_avail_rms); - if ($('#max_avail_type_qty').val() < 1) { - $('.num_quantity_alert').hide(); - $('.unvail_rooms_cond_display').hide(); - $('.sold_out_alert').show(); + if (!$('#max_avail_type_qty').length || $('#max_avail_type_qty').val() < 1) { disableRoomTypeDemands(1); } else { - $('.unvail_rooms_cond_display').show(); - $('.sold_out_alert').hide(); disableRoomTypeDemands(0); } - function highlightDateBorder(elementVal, date) - { - if (elementVal) { - var currentDate = date.getDate(); - var currentMonth = date.getMonth()+1; - if (currentMonth < 10) { - currentMonth = '0' + currentMonth; - } - if (currentDate < 10) { - currentDate = '0' + currentDate; - } - dmy = date.getFullYear() + "-" + currentMonth + "-" + currentDate; - var date_format = elementVal.split("-"); - var check_in_time = (date_format[2]) + '-' + (date_format[1]) + '-' + (date_format[0]); - if (dmy == check_in_time) { - return [true, "selectedCheckedDate", "Check-In date"]; - } else { - return [true, ""]; - } - } else { - return [true, ""]; - } - } - BookingForm.initDatepicker(); $(document).on('focusout', '#quantity_wanted', function(e) { @@ -1274,11 +1232,14 @@ var BookingForm = { }); }, getFormData: function () { + var quantity = parseInt($('#quantity_wanted').val()); + quantity = (isNaN(quantity) || quantity < 1) ? 1 : quantity; + var data = { id_product: parseInt($('#product_page_product_id').val()), date_from: $('#room_check_in').val(), date_to: $('#room_check_out').val(), - quantity: parseInt($('#quantity_wanted').val()), + quantity: quantity, room_type_demands: JSON.stringify(getRoomsExtraDemands()), }; return data; diff --git a/themes/hotel-reservation-theme/product.tpl b/themes/hotel-reservation-theme/product.tpl index 4dd2ade23..bd778db0b 100644 --- a/themes/hotel-reservation-theme/product.tpl +++ b/themes/hotel-reservation-theme/product.tpl @@ -635,7 +635,6 @@ {/if} {strip} {* By webkul variable needed in product.js *} - {addJsDef total_avail_rms = $total_available_rooms} {addJsDef max_order_date = $max_order_date} {addJsDef booking_date_to = $date_to} {addJsDef booking_date_from = $date_from}