Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moved hotel selection from configuration tab to information tab | Fixed Room Type associations with its hotel parent category #189

Merged
merged 4 commits into from
Feb 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 83 additions & 81 deletions admin/themes/default/template/controllers/products/associations.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -22,93 +22,95 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<div id="product-associations" class="panel product-tab">
<input type="hidden" name="submitted_tabs[]" value="Associations" />
<h3>{l s='Associations'}</h3>
{include file="controllers/products/multishop/check_fields.tpl" product_tab="Associations"}
<div id="no_default_category" class="alert alert-info">
{l s='Please select a default category.'}
</div>
<div class="form-group">
<div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="category_box" type="category_box"}</span></div>
<label class="control-label col-lg-2" for="category_block">
{l s='Associated categories'}
</label>
<div class="col-lg-9">
<div id="category_block">
{$category_tree}
{if isset($product)}
<div id="product-associations" class="panel product-tab">
<input type="hidden" name="submitted_tabs[]" value="Associations" />
<h3>{l s='Associations'}</h3>
{include file="controllers/products/multishop/check_fields.tpl" product_tab="Associations"}
<div id="no_default_category" class="alert alert-info">
{l s='Please select a default category.'}
</div>
<div class="form-group">
<div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="category_box" type="category_box"}</span></div>
<label class="control-label col-lg-2" for="category_block">
{l s='Associated categories'}
</label>
<div class="col-lg-9">
<div id="category_block">
{$category_tree}
</div>
{* <a class="btn btn-link bt-icon confirm_leave" href="{$link->getAdminLink('AdminCategories')|escape:'html':'UTF-8'}&amp;addcategory">
<i class="icon-plus-sign"></i> {l s='Create new category'} <i class="icon-external-link-sign"></i>
</a> *}
</div>
{* <a class="btn btn-link bt-icon confirm_leave" href="{$link->getAdminLink('AdminCategories')|escape:'html':'UTF-8'}&amp;addcategory">
<i class="icon-plus-sign"></i> {l s='Create new category'} <i class="icon-external-link-sign"></i>
</a> *}
</div>
</div>
<div class="form-group">
<div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="id_category_default" type="default"}</span></div>
<label class="control-label col-lg-2" for="id_category_default">
<span class="label-tooltip" data-toggle="tooltip" title="{l s='The default category is the main category for your room type, and is displayed by default.'}">
{l s='Default category'}
</span>
</label>
<div class="col-lg-5">
<select id="id_category_default" name="id_category_default">
{foreach from=$selected_cat item=cat}
<option value="{$cat.id_category}" {if $id_category_default == $cat.id_category}selected="selected"{/if} >{$cat.name}</option>
{/foreach}
</select>
<div class="form-group">
<div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="id_category_default" type="default"}</span></div>
<label class="control-label col-lg-2" for="id_category_default">
<span class="label-tooltip" data-toggle="tooltip" title="{l s='The default category is the main category for your room type, and is displayed by default.'}">
{l s='Default category'}
</span>
</label>
<div class="col-lg-5">
<select id="id_category_default" name="id_category_default">
{foreach from=$selected_cat item=cat}
<option value="{$cat.id_category}" {if $id_category_default == $cat.id_category}selected="selected"{/if} >{$cat.name}</option>
{/foreach}
</select>
</div>
</div>
</div>
<!-- By webkul to hide unneccessary fields -->
<!-- <div class="form-group">
<label class="control-label col-lg-3" for="product_autocomplete_input">
<span class="label-tooltip" data-toggle="tooltip"
title="{l s='You can indicate existing products as accessories for this product.'}{l s='Start by typing the first letters of the product\'s name, then select the product from the drop-down list.'}{l s='Do not forget to save the product afterwards!'}">
{l s='Accessories'}
</span>
</label>
<div class="col-lg-5">
<input type="hidden" name="inputAccessories" id="inputAccessories" value="{foreach from=$accessories item=accessory}{$accessory.id_product}-{/foreach}" />
<input type="hidden" name="nameAccessories" id="nameAccessories" value="{foreach from=$accessories item=accessory}{$accessory.name|escape:'html':'UTF-8'}¤{/foreach}" />
<div id="ajax_choose_product">
<div class="input-group">
<input type="text" id="product_autocomplete_input" name="product_autocomplete_input" />
<span class="input-group-addon"><i class="icon-search"></i></span>
<!-- By webkul to hide unneccessary fields -->
<!-- <div class="form-group">
<label class="control-label col-lg-3" for="product_autocomplete_input">
<span class="label-tooltip" data-toggle="tooltip"
title="{l s='You can indicate existing products as accessories for this product.'}{l s='Start by typing the first letters of the product\'s name, then select the product from the drop-down list.'}{l s='Do not forget to save the product afterwards!'}">
{l s='Accessories'}
</span>
</label>
<div class="col-lg-5">
<input type="hidden" name="inputAccessories" id="inputAccessories" value="{foreach from=$accessories item=accessory}{$accessory.id_product}-{/foreach}" />
<input type="hidden" name="nameAccessories" id="nameAccessories" value="{foreach from=$accessories item=accessory}{$accessory.name|escape:'html':'UTF-8'}¤{/foreach}" />
<div id="ajax_choose_product">
<div class="input-group">
<input type="text" id="product_autocomplete_input" name="product_autocomplete_input" />
<span class="input-group-addon"><i class="icon-search"></i></span>
</div>
</div>
</div>

<div id="divAccessories">
{foreach from=$accessories item=accessory}
<div class="form-control-static">
<button type="button" class="btn btn-default delAccessory" name="{$accessory.id_product}">
<i class="icon-remove text-danger"></i>
</button>
{$accessory.name|escape:'html':'UTF-8'}{if !empty($accessory.reference)}&nbsp;{l s='(ref: %s)' sprintf=$accessory.reference}{/if}
<div id="divAccessories">
{foreach from=$accessories item=accessory}
<div class="form-control-static">
<button type="button" class="btn btn-default delAccessory" name="{$accessory.id_product}">
<i class="icon-remove text-danger"></i>
</button>
{$accessory.name|escape:'html':'UTF-8'}{if !empty($accessory.reference)}&nbsp;{l s='(ref: %s)' sprintf=$accessory.reference}{/if}
</div>
{/foreach}
</div>
</div>
{/foreach}
</div> -->
<!-- By webkul to hide unneccessary fields -->
<!-- <div class="form-group">
<label class="control-label col-lg-3" for="id_manufacturer">{l s='Manufacturer'}</label>
<div class="col-lg-5">
<select name="id_manufacturer" id="id_manufacturer">
<option value="0">- {l s='Choose (optional)'} -</option>
{if $product->id_manufacturer}
<option value="{$product->id_manufacturer}" selected="selected">{$product->manufacturer_name}</option>
{/if}
<option disabled="disabled">-</option>
</select>
</div>
<div class="col-lg-4">
<a class="btn btn-link bt-icon confirm_leave" style="margin-bottom:0" href="{$link->getAdminLink('AdminManufacturers')|escape:'html':'UTF-8'}&amp;addmanufacturer">
<i class="icon-plus-sign"></i> {l s='Create new manufacturer'} <i class="icon-external-link-sign"></i>
</a>
</div>
</div> -->
<div class="panel-footer">
<a href="{$link->getAdminLink('AdminProducts')|escape:'html':'UTF-8'}{if isset($smarty.request.page) && $smarty.request.page > 1}&amp;submitFilterproduct={$smarty.request.page|intval}{/if}" class="btn btn-default"><i class="process-icon-cancel"></i> {l s='Cancel'}</a>
<button type="submit" name="submitAddproduct" class="btn btn-default pull-right" disabled="disabled"><i class="process-icon-loading"></i> {l s='Save'}</button>
<button type="submit" name="submitAddproductAndStay" class="btn btn-default pull-right" disabled="disabled"><i class="process-icon-loading"></i> {l s='Save and stay'}</button>
</div>
</div> -->
<!-- By webkul to hide unneccessary fields -->
<!-- <div class="form-group">
<label class="control-label col-lg-3" for="id_manufacturer">{l s='Manufacturer'}</label>
<div class="col-lg-5">
<select name="id_manufacturer" id="id_manufacturer">
<option value="0">- {l s='Choose (optional)'} -</option>
{if $product->id_manufacturer}
<option value="{$product->id_manufacturer}" selected="selected">{$product->manufacturer_name}</option>
{/if}
<option disabled="disabled">-</option>
</select>
</div>
<div class="col-lg-4">
<a class="btn btn-link bt-icon confirm_leave" style="margin-bottom:0" href="{$link->getAdminLink('AdminManufacturers')|escape:'html':'UTF-8'}&amp;addmanufacturer">
<i class="icon-plus-sign"></i> {l s='Create new manufacturer'} <i class="icon-external-link-sign"></i>
</a>
</div>
</div> -->
<div class="panel-footer">
<a href="{$link->getAdminLink('AdminProducts')|escape:'html':'UTF-8'}{if isset($smarty.request.page) && $smarty.request.page > 1}&amp;submitFilterproduct={$smarty.request.page|intval}{/if}" class="btn btn-default"><i class="process-icon-cancel"></i> {l s='Cancel'}</a>
<button type="submit" name="submitAddproduct" class="btn btn-default pull-right" disabled="disabled"><i class="process-icon-loading"></i> {l s='Save'}</button>
<button type="submit" name="submitAddproductAndStay" class="btn btn-default pull-right" disabled="disabled"><i class="process-icon-loading"></i> {l s='Save and stay'}</button>
</div>
</div>
{/if}
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,6 @@
<input type="hidden" name="submitted_tabs[]" value="Configuration" />
<h3 class="tab"> <i class="icon-AdminAdmin"></i> {l s='Configuration'}</h3>

{if isset($htl_room_type)}
<input type="hidden" value="{$htl_room_type['id']}" name="wk_id_room_type">
{/if}

<div class="form-group">
{if isset($htl_room_type)}
<label class="control-label col-sm-2" for="hotel_place">
{l s='Hotel'}
</label>
<div class="col-sm-4">
<input type="text" class="form-control" value="{$htl_full_info['hotel_name']}" readonly>
<input type="hidden" name="id_hotel" value="{$htl_room_type['id_hotel']}">
</div>
{else}
<label class="control-label col-sm-2" for="hotel_place">
{l s='Select Hotel'}
</label>
<div class="col-sm-4">
<select name="id_hotel" id="hotel_place" class="form-control">
{foreach from=$htl_info item=htl_dtl}
<option value="{$htl_dtl['id']}" >{$htl_dtl['hotel_name']}</option>
{/foreach}
</select>
</div>
{/if}
</div>

<input type="hidden" id="checkConfSubmit" value="0" name="checkConfSubmit">

<div class="from-group table-responsive-row clearfix">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,35 @@
</div>
</div>

{if isset($htl_room_type)}
<input type="hidden" value="{$htl_room_type['id']}" name="wk_id_room_type">
{/if}

<div class="form-group">
{if isset($htl_room_type)}
<label class="control-label col-sm-3 required" for="hotel_place">
{l s='Hotel'}
</label>
<div class="col-sm-5">
<input type="text" class="form-control" value="{$htl_full_info['hotel_name']}" readonly>
<input type="hidden" name="id_hotel" value="{$htl_room_type['id_hotel']}">
<p class="help-block">{l s='Hotel once assigned cannot be reassigned'}</p>
</div>
{else}
<label class="control-label col-sm-3 required" for="hotel_place">
{l s='Select Hotel'}
</label>
<div class="col-sm-5">
<select name="id_hotel" id="hotel_place" class="form-control">
{foreach from=$htl_info item=htl_dtl}
<option value="{$htl_dtl['id']}" >{$htl_dtl['hotel_name']}</option>
{/foreach}
</select>
<p class="help-block">{l s='Hotel once assigned cannot be reassigned'}</p>
</div>
{/if}
</div>

<div class="form-group hidden">
<label class="control-label col-lg-3" for="reference">
<span class="label-tooltip" data-toggle="tooltip"
Expand Down
58 changes: 44 additions & 14 deletions classes/helper/HelperTreeCategories.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ class HelperTreeCategoriesCore extends TreeCore
private $_full_tree = false;
private $_shop;
private $_use_checkbox;
private $_use_bulk_actions = true;
private $_use_search;
private $_use_shop_restriction;
private $_children_only = false;
private $_disable_all_categories = false;

public function __construct($id, $title = null, $root_category = null,
$lang = null, $use_shop_restriction = true)
Expand Down Expand Up @@ -181,11 +183,22 @@ public function setDisabledCategories($value)
return $this;
}

public function setDisablAllCategories($value)
{
$this->_disable_all_categories = $value;
return $this;
}

public function getDisabledCategories()
{
return $this->_disabled_categories;
}

public function getDisablAllCategories()
{
return $this->_disable_all_categories;
}

public function setInputName($value)
{
$this->_input_name = $value;
Expand Down Expand Up @@ -306,6 +319,12 @@ public function setUseCheckBox($value)
return $this;
}

public function setUseBulkActions($value)
{
$this->_use_bulk_actions = (bool)$value;
return $this;
}

public function setUseSearch($value)
{
$this->_use_search = (bool)$value;
Expand All @@ -323,6 +342,11 @@ public function useCheckBox()
return (isset($this->_use_checkbox) && $this->_use_checkbox);
}

public function useBulkActions()
{
return (isset($this->_use_bulk_actions) && $this->_use_bulk_actions);
}

public function useSearch()
{
return (isset($this->_use_search) && $this->_use_search);
Expand All @@ -344,6 +368,10 @@ public function render($data = null)
$this->_disableCategories($data, $this->getDisabledCategories());
}

if($this->getDisablAllCategories()) {
$this->_disableCategories($data);
}

if (isset($this->_selected_categories)
&& !empty($this->_selected_categories)) {
$this->_getSelectedChildNumbers($data, $this->getSelectedCategories());
Expand Down Expand Up @@ -374,20 +402,22 @@ public function render($data = null)
$this->addAction($expand_all);

if ($this->useCheckBox()) {
$check_all = new TreeToolbarLink(
'Check All',
'#',
'checkAllAssociatedCategories($(\'#'.$this->getId().'\')); return false;',
'icon-check-sign');
$check_all->setAttribute('id', 'check-all-'.$this->getId());
$uncheck_all = new TreeToolbarLink(
'Uncheck All',
'#',
'uncheckAllAssociatedCategories($(\'#'.$this->getId().'\')); return false;',
'icon-check-empty');
$uncheck_all->setAttribute('id', 'uncheck-all-'.$this->getId());
$this->addAction($check_all);
$this->addAction($uncheck_all);
if($this->useBulkActions()) {
$check_all = new TreeToolbarLink(
'Check All',
'#',
'checkAllAssociatedCategories($(\'#'.$this->getId().'\')); return false;',
'icon-check-sign');
$check_all->setAttribute('id', 'check-all-'.$this->getId());
$uncheck_all = new TreeToolbarLink(
'Uncheck All',
'#',
'uncheckAllAssociatedCategories($(\'#'.$this->getId().'\')); return false;',
'icon-check-empty');
$uncheck_all->setAttribute('id', 'uncheck-all-'.$this->getId());
$this->addAction($check_all);
$this->addAction($uncheck_all);
}
$this->setNodeFolderTemplate('tree_node_folder_checkbox.tpl');
$this->setNodeItemTemplate('tree_node_item_checkbox.tpl');
$this->setAttribute('use_checkbox', $this->useCheckBox());
Expand Down
Loading