Files
wyczarujprezent.pl/modules/masseditproduct/views/js/search_product.js
2024-10-28 22:14:22 +01:00

86 lines
2.8 KiB
JavaScript

/**
* 2007-2016 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author SeoSA <885588@bk.ru>
* @copyright 2012-2021 SeoSA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
$.fn.selectProducts = function (p)
{
var _this = this;
var defaults = {
path_ajax: null,
search: true
};
defaults = $.extend({}, defaults, p);
function init()
{
if (defaults.search)
{
_this.find('.search_product').on('keyup', function () {
searchProducts();
});
_this.find('[name=search_by]').on('change', function () {
searchProducts();
});
}
_this.find('.add_select_product').on('click', function () {
var options = _this.find('.no_selected_product option:selected').remove();
_this.find('.selected_product').append(options);
});
_this.find('.remove_select_product').on('click', function () {
var options = _this.find('.selected_product option:selected').remove();
_this.find('.no_selected_product').append(options);
});
}
function searchProducts()
{
var query = _this.find('.search_product').val();
var select_products = [];
_this.find('.selected_product option').each(function () {
select_products.push($(this).attr('value'));
});
var search_by = _this.find('[name=search_by]:checked').val();
$.ajax({
url: defaults.path_ajax,
type: 'POST',
dataType: 'json',
data: {
ajax: true,
action: 'get_products',
query: query,
select_products: select_products,
search_by: search_by
},
success: function (r) {
_this.find('.no_selected_product').html('');
for (var i in r)
_this.find('.no_selected_product').append('<option value="'+r[i].id_product+'">' + r[i].name + '</option>');
}
});
}
init();
};