Files
pomysloweprezenty.pl/admin/templates/shop-product-sets/product-set-edit-custom-script.php
Jacek Pyziak 3ecbe628dc Add view classes for articles, banners, languages, menu, newsletter, containers, shop categories, clients, payment methods, products, and search
- Created Articles.php for rendering article views including full articles, miniature lists, and news sections.
- Added Banners.php for handling banner displays.
- Introduced Languages.php for rendering language options.
- Implemented Menu.php for dynamic menu rendering.
- Developed Newsletter.php for newsletter view rendering.
- Created Scontainers.php for rendering specific containers.
- Added ShopCategory.php for category descriptions and product listings.
- Introduced ShopClient.php for managing client-related views such as address editing and order history.
- Implemented ShopPaymentMethod.php for displaying payment methods in the basket.
- Created ShopProduct.php for generating product URLs.
- Added ShopSearch.php for rendering a simple search form.
- Added .htaccess file to enhance security by restricting access to sensitive files and directories.
2026-02-21 23:00:15 +01:00

65 lines
2.5 KiB
PHP

<link type="text/css" rel="stylesheet" href="/libraries/selectize/css/selectize.css">
<link type="text/css" rel="stylesheet" href="/libraries/selectize/css/selectize.default.css">
<script type="text/javascript" src="/libraries/selectize/js/standalone/selectize.js"></script>
<script type="text/javascript">
(function($) {
if (!$) return;
$(function() {
$('#set_products_id').selectize({
maxItems: 999,
plugins: ['remove_button']
});
var $form = $('#shop-product-set-edit');
if ($form.length) {
var origSerialize = $form.data('origSerialize');
if (!origSerialize) {
$form.on('submit', function(e) {
e.preventDefault();
});
}
$form.find('[data-action="save"]').off('click.productSetSave').on('click.productSetSave', function(e) {
e.preventDefault();
var formData = $form.serializeArray();
var selectedProducts = $('#set_products_id').val();
if (selectedProducts && selectedProducts.length) {
for (var i = 0; i < selectedProducts.length; i++) {
formData.push({ name: 'set_products_id[]', value: selectedProducts[i] });
}
}
var actionUrl = $(this).data('url') || $form.attr('action');
var backUrl = $(this).data('back-url') || '/admin/shop_product_sets/list/';
$.ajax({
url: actionUrl,
type: 'POST',
data: formData,
dataType: 'json',
success: function(response) {
if (response.success || response.status === 'ok') {
var msg = response.message || response.msg || 'Zapisano.';
$('<div class="alert alert-success">' + msg + '</div>').insertBefore($form).delay(2000).fadeOut();
if (response.id && !$form.find('input[name="id"]').val()) {
$form.find('input[name="id"]').val(response.id);
}
} else {
var errorMsg = (response.errors && response.errors.general) || response.msg || 'Wystapil blad.';
$('<div class="alert alert-danger">' + errorMsg + '</div>').insertBefore($form).delay(3000).fadeOut();
}
},
error: function() {
$('<div class="alert alert-danger">Blad komunikacji z serwerem.</div>').insertBefore($form).delay(3000).fadeOut();
}
});
});
}
});
})(window.jQuery);
</script>