first commit
This commit is contained in:
14
web/templates/twig_compat/account/account-wrapper.tpl
Normal file
14
web/templates/twig_compat/account/account-wrapper.tpl
Normal file
@@ -0,0 +1,14 @@
|
||||
{extends "index.tpl"}
|
||||
|
||||
{block "css-entry" append}
|
||||
{encore_entry_link_tags entry='user'}
|
||||
{/block}
|
||||
|
||||
{block "body"}
|
||||
{block "title"}{/block}
|
||||
{block "account-content"}{/block}
|
||||
{/block}
|
||||
|
||||
{block "js-entry" append}
|
||||
{encore_entry_script_tags entry='user'}
|
||||
{/block}
|
||||
160
web/templates/twig_compat/account/orderViewEdit-inner.tpl
Normal file
160
web/templates/twig_compat/account/orderViewEdit-inner.tpl
Normal file
@@ -0,0 +1,160 @@
|
||||
{extends 'account/orderView-inner.tpl'}
|
||||
|
||||
{block "orderview-top"}{/block}
|
||||
|
||||
{block "orderview-address"}{/block}
|
||||
|
||||
{block "order-note" append}
|
||||
<div class="messages" data-reload="messages">
|
||||
{if $body.failedDelivery}<div class="alert alert-danger" role="alert">{$body.failedDelivery nofilter}</div>{/if}
|
||||
{if $body.failedProducts}
|
||||
{$error = translate('error', 'order')}
|
||||
{$error = $error.not_stocked_products}
|
||||
{foreach $body.failedProducts as $product}
|
||||
{$productName = "{$product['title']} {$product['variation_title']}"|trim}
|
||||
{$message = str_replace('{PRODUCT}', $productName, $error)}
|
||||
<div class="alert alert-danger outOfStock" role="alert">{$message nofilter}</div>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "pieces"}
|
||||
<div class="pieces">
|
||||
{if $product.id_product and $body.editable}
|
||||
{if $product.pieces >= 0}
|
||||
{$step = $product.product.unit.step|default:1}
|
||||
|
||||
{ifmodule PRODUCTS__STEP}
|
||||
{$data = $product.product->getData()}
|
||||
{$step = $data.step|default:$step}
|
||||
{/ifmodule}
|
||||
|
||||
<input type="number" name="pieces[{$product.id}]"
|
||||
value="{$product.pieces|string_format:"%.{$product.product.unit.pieces_precision|default:0}f"}"
|
||||
class="form-control" step="{$step}" min="{$step}" data-bv-excluded="true"
|
||||
data-cart="pieces"
|
||||
{if $module.PRODUCTS__UNITS_FLOAT}
|
||||
data-precision="{$product.product.unit.pieces_precision|default:0}"
|
||||
{/if}
|
||||
>
|
||||
<div class="buy_count">
|
||||
<button type="button" class="fc plus" title="{t mnozstvi=$step}Přidat {mnozstvi} ks{/t}" data-cart="plus"
|
||||
{* data-tracking-click='{get_gtm_data encode=true type='ecommerce' method='ClickAddToCart' data=['product' => $product.product, 'listType' => 'cart']}'*}
|
||||
></button>
|
||||
<button type="button" class="fc minus" title="{t mnozstvi=$step}Odebrat {mnozstvi} ks{/t}" data-cart="minus"
|
||||
{* data-tracking-click='{get_gtm_data encode=true type='ecommerce' method='ClickRemoveFromCart' data=['product' => $product.product]}'*}
|
||||
></button>
|
||||
{if $module.PRODUCTS__UNITS_FLOAT}
|
||||
<p class="ordering-product-units">{$product.product.unit.short_name|lower}</p>
|
||||
{/if}
|
||||
</div>
|
||||
{else}
|
||||
<input type="hidden" name="pieces[{$product.id}]" value="{$product.pieces}">
|
||||
{$product.pieces} {t}Ks{/t}
|
||||
{/if}
|
||||
{elseif $product.id_product}
|
||||
{$product.pieces} {t}ks{/t} {* todo unit *}
|
||||
{/if}
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "orderview-price" append}
|
||||
{if $product.id_product and $body.editable and $product.pieces > 0}
|
||||
<a href="{url s=orderView acn=deleteItem IDo=$body.order.id IDi=$product.id edit=true}" class="delete-product"
|
||||
{* data-tracking-click='{get_gtm_data encode=true type='ecommerce' method='ClickRemoveFromCart' data=['product' => $product.product, 'quantity' => $product.pieces]}'*}
|
||||
title="{t}Odebrat produkt z košíku{/t}" data-cart="delete">
|
||||
<span class="fc"></span>
|
||||
</a>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block "order-bonus-program" append}
|
||||
{********* DÁREK, SLEVY **********}
|
||||
<div data-reload="discount">
|
||||
{foreach $body.order->getPurchaseState()->getDiscountHandlers() as $handler}
|
||||
{$handler->render() nofilter}
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
<div data-reload="price">
|
||||
{/block}
|
||||
|
||||
{block "order-manuals" prepend}
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "orderview-history" prepend}
|
||||
<div class="orderview-row">
|
||||
<div class="column">
|
||||
<p class="title-default">{t}Kontaktní údaje{/t}</p>
|
||||
<ul>
|
||||
<li><strong>{$body.order.invoice_name} {$body.order.invoice_surname}</strong></li>
|
||||
<li>{$body.order.invoice_email}</li>
|
||||
<li>{$body.order.invoice_phone}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{if $body.order.invoice_street}
|
||||
<div class="column">
|
||||
<p class="title-default">{t}Fakturační adresa{/t}</p>
|
||||
<ul>
|
||||
<li>{$body.order.invoice_street}</li>
|
||||
|
||||
{if $body.order.invoice_custom_address}
|
||||
<li>{$body.order.invoice_custom_address}</li>
|
||||
{/if}
|
||||
<li>{$body.order.invoice_zip} {$body.order.invoice_city}</li>
|
||||
|
||||
{if $body.order.invoice_state}
|
||||
<li>{$body.order.invoice_state}</li>
|
||||
{/if}
|
||||
{if $allCountries[$body.order.invoice_country]}
|
||||
<li>{$allCountries[$body.order.invoice_country]->getName()}</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $body.order.delivery_name || $body.order.delivery_surname || $body.order.delivery_street}
|
||||
<div class="column">
|
||||
<p class="title-default">{t}Dodací adresa{/t}</p>
|
||||
<ul>
|
||||
<li>{$body.order.delivery_name} {$body.order.delivery_surname}</li>
|
||||
{if $body.order.delivery_firm and $body.order.delivery_firm != $body.order.delivery_name|cat:" "|cat:$body.order.delivery_surname}
|
||||
<li>{$body.order.delivery_firm}</li>
|
||||
{/if}
|
||||
<li>{$body.order.delivery_street}</li>
|
||||
{if $body.order.delivery_custom_address}
|
||||
<li>{$body.order.delivery_custom_address}</li>
|
||||
{/if}
|
||||
<li>{$body.order.delivery_zip} {$body.order.delivery_city}</li>
|
||||
{if $body.order.delivery_state}
|
||||
<li>{$body.order.delivery_state}</li>
|
||||
{/if}
|
||||
{if $allCountries[$body.order.delivery_country]}
|
||||
<li>{$allCountries[$body.order.delivery_country]->getName()}</li>
|
||||
{/if}
|
||||
{if $body.order.delivery_phone}
|
||||
<li>{$body.order.delivery_phone}</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $body.order.invoice_firm}
|
||||
<div class="column">
|
||||
<p class="title-default">{t}Firemní údaje{/t}</p>
|
||||
<ul>
|
||||
<li>{$body.order.invoice_firm}</li>
|
||||
{if $body.order.invoice_ico}
|
||||
<li>{t}IČO{/t}: {$body.order.invoice_ico}</li>
|
||||
{/if}
|
||||
{if $body.order.invoice_dic}
|
||||
<li>{t}DIČ{/t}: {$body.order.invoice_dic}</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/block}
|
||||
52
web/templates/twig_compat/base.tpl
Normal file
52
web/templates/twig_compat/base.tpl
Normal file
@@ -0,0 +1,52 @@
|
||||
{block utils}
|
||||
{$isDealer = $ctrl.dealer == "Y"}
|
||||
{if $ctrl}
|
||||
{$isB2BUser = $ctrl->isType('b2b') scope='global'}
|
||||
{$typeB2BUser = $ctrl->getType('b2b') scope='global'}
|
||||
{/if}
|
||||
|
||||
{get_stats type='free_delivery' assign='free_delivery'} {* neni potreba key=$ctrl.currency? *}
|
||||
|
||||
{if isset($body.returnNav)}
|
||||
{get_active_category returnNav=$body.returnNav assign='activeCategory'}
|
||||
{$breadcrumbs = $activeCategory.breadcrumb|default:$body.returnNav.0}
|
||||
{/if}
|
||||
{block 'utils-end'}{/block}
|
||||
{/block}
|
||||
|
||||
{block 'js-start'}
|
||||
<script>
|
||||
window.wpj = window.wpj || {ldelim}{rdelim};
|
||||
wpj.onReady = wpj.onReady || [];
|
||||
</script>
|
||||
|
||||
{include 'block.gtm.tpl' gtm_type='gtm'}
|
||||
{/block}
|
||||
|
||||
{block css}
|
||||
{block "css-entry"}
|
||||
{encore_entry_link_tags entry='app'}
|
||||
{encore_entry_link_tags entry='base'}
|
||||
{encore_entry_link_tags entry='c-home'}
|
||||
{/block}
|
||||
{/block}
|
||||
|
||||
{block body}
|
||||
{/block}
|
||||
|
||||
{block "js-end"}
|
||||
{block "js-entry"}
|
||||
{encore_entry_script_tags entry='app'}
|
||||
{encore_entry_script_tags entry='base'}
|
||||
{encore_entry_script_tags entry='c-home'}
|
||||
{/block}
|
||||
|
||||
{block "js-dynamic-load"}
|
||||
{* veci co se nedaji includovat do webpacku, protoze se `if`uji v sablone. Napr. preklady bootsrap validator, skript pro zasilkovnu, ... *}
|
||||
{/block}
|
||||
<script>
|
||||
wpj.onReady.processAll();
|
||||
{block onready}
|
||||
{/block}
|
||||
</script>
|
||||
{/block}
|
||||
191
web/templates/twig_compat/block.gtm.tpl
Normal file
191
web/templates/twig_compat/block.gtm.tpl
Normal file
@@ -0,0 +1,191 @@
|
||||
{get_contexts currency=1 language=1 country=1 assign="contexts"}
|
||||
{$activeCountry = $contexts.country->getActive()}
|
||||
{$activeCurrency = $contexts.currency->getActive()}
|
||||
{$activeLang = $contexts.language->getActive()}
|
||||
|
||||
{if (isDevelopment() || isFrontendTests()) && $dbcfg.analytics.google_tag_manager.reallyRun != 'Y'}
|
||||
{assign var="gtmId" scope="global" value='GTM-PFLLL74'}
|
||||
{else}
|
||||
{assign var="gtmId" scope="global" value=$dbcfg.analytics.google_tag_manager.ID}
|
||||
{/if}
|
||||
|
||||
{if $smarty.get.skip_gtm !== null}
|
||||
{assign var="gtmId" scope="global" value=false}
|
||||
{/if}
|
||||
|
||||
<!-- OLD GTM !-->
|
||||
{strip}
|
||||
{if $gtmId}
|
||||
{switch $gtm_type}
|
||||
{case "gtm"}
|
||||
{get_gtm_data assign='GTM'}
|
||||
<script defer>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
setTimeout(() => {
|
||||
page_data = {$GTM|json_encode:32 nofilter};
|
||||
page_data['page']['layout'] = window.innerWidth > 991 ? 'web' : window.innerWidth > 543 ? 'tablet' : 'mobil';
|
||||
|
||||
{* Standardni page data *}
|
||||
dataLayer.push(page_data);
|
||||
}, 0);
|
||||
});
|
||||
</script>
|
||||
|
||||
{if $GTM && $GTM.page->type == 'product'}
|
||||
{* Pokud preklikavam mezi variantami, nebo se nacita stranka s produktem/variantou, posilat product impressions *}
|
||||
<script src="{static_url url="/common/static/wpj/wpj.gtm.js"}?v2"></script>
|
||||
|
||||
<script>
|
||||
var urlParams = new URLSearchParams(window.location.search);
|
||||
var hash = location.href.split("#")[1] || urlParams.get('id_variation') || "{array_key_first($body.product.variations.variations)}";
|
||||
|
||||
{* Variation impressions *}
|
||||
{if $body.product && $body.product.variations.variations|count}
|
||||
{* Pole pro pripravu dat pro varianty *}
|
||||
gtm_prva = { };
|
||||
{* Zakladni data stranky *}
|
||||
|
||||
{get_price_computer assign='priceComputer'}
|
||||
{foreach $body.product.variations.variations as $variation}
|
||||
{if $variation.delivery_time_index != '-1'}
|
||||
gtm_prva[{$variation.id}] = {
|
||||
'id': '{$body.product.id}_{$variation.id}',
|
||||
'idVariation': '{$variation.id}',
|
||||
'idProduct': '{$body.product.id}',
|
||||
'EAN': '{$variation.ean}',
|
||||
'variationName': '{$variation.title|trim|escape:javascript}',
|
||||
'code': '{$variation.code}',
|
||||
'price': {$priceComputer->getPrice($variation.productPrice)},
|
||||
'variationCode': '{$variation.variationCode}',
|
||||
'productCode': '{$body.product.productCode}',
|
||||
};
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{* Odeslani impressions *}
|
||||
wpj.onReady.push(function () {
|
||||
$('input[name^=IDvariation], select#IDvariation').on('change', function () {
|
||||
gtm_getDetailImpressions($(this).val(), 'detailImpressionsVariation');
|
||||
});
|
||||
|
||||
if (hash != "") {
|
||||
variation = gtm_getVariation(hash);
|
||||
|
||||
product = $.extend(page_data['products'], variation);
|
||||
page_data = $.extend(page_data, { 'products': product });
|
||||
}
|
||||
|
||||
gtm_getDetailImpressions(hash, 'detailImpressions');
|
||||
});
|
||||
{else}
|
||||
{* Product impressions *}
|
||||
gtm_getDetailImpressions(hash, 'detailImpressions');
|
||||
{/if}
|
||||
</script>
|
||||
{/if}
|
||||
|
||||
{if $body.steps}
|
||||
{get_gtm_data type='ecommerce' method='Checkout' assign='ecommerce' data=['body' => $body]}
|
||||
{/if}
|
||||
|
||||
{if $body.orderSent}
|
||||
{get_gtm_data type='ecommerce' method='Purchase' assign='ecommerce' data=['body' => $body]}
|
||||
{/if}
|
||||
|
||||
{if $slider}
|
||||
{get_gtm_data type='ecommerce' method='PromotionImpression' assign='ecommerce' data=['slider' => $slider]}
|
||||
{/if}
|
||||
|
||||
{if $GTM && $GTM.page->type === 'searchResult'}
|
||||
{get_gtm_data type='ecommerce' method='SearchResult' assign='ecommerce'}
|
||||
{/if}
|
||||
|
||||
{if $ecommerce}
|
||||
<script defer>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
setTimeout(() => {
|
||||
dataLayer.push({$ecommerce|json_encode:32 nofilter});
|
||||
}, 0);
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
|
||||
{block dataLayerBlock}
|
||||
{function pushAnalyticsSession}
|
||||
{get_session_value type=$type remove=true assign=value}
|
||||
{if $value}
|
||||
<script>
|
||||
window.dataLayer.push({
|
||||
event: 'success{$type|ucfirst}'
|
||||
{if is_array($value)},'data':{$value|json_encode:32 nofilter}
|
||||
{elseif $value !== true}, 'value': '{$value}'{/if}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{/function}
|
||||
{function pushAnalyticsSessionAssign}
|
||||
{get_session_value type=$type remove=true assign=value}
|
||||
{if $value && is_array($value)}
|
||||
<script>
|
||||
window.dataLayer.push(Object.assign({ }, {
|
||||
event: 'success{$type|ucfirst}',
|
||||
}, {$value|json_encode:32 nofilter}));
|
||||
</script>
|
||||
{/if}
|
||||
{/function}
|
||||
|
||||
{pushAnalyticsSession type="login"}
|
||||
{pushAnalyticsSession type="logout"}
|
||||
{pushAnalyticsSession type="registration"}
|
||||
{pushAnalyticsSessionAssign type="newsletterSubscribe"}
|
||||
{/block}
|
||||
{/case}
|
||||
|
||||
<script>
|
||||
{case "form_conversion"}
|
||||
var formData = { };
|
||||
$.each($this.serializeArray(), function() {
|
||||
formData[this.name] = this.value;
|
||||
});
|
||||
dataLayer.push({
|
||||
event: "successSendForm",
|
||||
formData: formData
|
||||
});
|
||||
{/case}
|
||||
</script>
|
||||
|
||||
{case "addToCart"}
|
||||
{if $dbcfg.analytics.google_tag_manager.active_fe_events != 'Y'}
|
||||
{get_gtm_data method='AddToCart' type='ecommerce' assign='ecommerce' data=['addedToCart' => $addedToCart]}
|
||||
<script>dataLayer.push({$ecommerce|json_encode:32 nofilter});</script>
|
||||
{/if}
|
||||
{/case}
|
||||
|
||||
{case "addToWishList"}
|
||||
{get_gtm_data method='AddToWishList' type='ecommerce' assign='ecommerce' data=['addedToWishList' => $addedToWishList]}
|
||||
<script>
|
||||
dataLayer.push({$ecommerce|json_encode:32 nofilter});
|
||||
</script>
|
||||
{/case}
|
||||
|
||||
{case "dummy"}
|
||||
{* Dummy case, protoze nemuze bejt pred {/switch} nebo {default} jako posledni </script>, pada to pak na kompilaci. *}
|
||||
{/case}
|
||||
|
||||
{default}
|
||||
{if $slider}
|
||||
{get_gtm_data type='ecommerce' method='PromotionImpression' assign='ecommerce' data=['slider' => $slider]}
|
||||
{/if}
|
||||
|
||||
{if $ecommerce}
|
||||
<script defer>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
setTimeout(() => {
|
||||
dataLayer.push({$ecommerce|json_encode:32 nofilter});
|
||||
}, 0);
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{/switch}
|
||||
{/if}
|
||||
{/strip}
|
||||
58
web/templates/twig_compat/block.products.tpl
Normal file
58
web/templates/twig_compat/block.products.tpl
Normal file
@@ -0,0 +1,58 @@
|
||||
{* upravený fallback *}
|
||||
<div class="row {$row_class|default:'catalog-row'}" {if $body.pager}data-page="{$body.pager.number}"
|
||||
data-products-row{/if}
|
||||
data-tracking-view='{get_gtm_data encode=true type='ecommerce' method='ProductsImpressions' data=['products' => $products, 'listType' => $listType, 'listId' => $listId]}'>
|
||||
|
||||
{$products->fetchVariations(true)|silent}
|
||||
{$collectionProducts = $products->fetchCollections()}
|
||||
{$tmp = $products->fetchProductLabels('list')}
|
||||
|
||||
{foreach $smarty.get.dynamic_filter.variations as $var_filter}
|
||||
{if $var_filter.value|count == 1}
|
||||
{$var_filter_active = true}
|
||||
{/if}
|
||||
{/foreach}
|
||||
|
||||
{foreach $products as $product}
|
||||
{if $body.filter_active and $product.matched_id_variation and $var_filter_active}
|
||||
{$hash = "#`$product.matched_id_variation`"}
|
||||
{else}
|
||||
{$hash = ''}
|
||||
{/if}
|
||||
<div class="{$catalog_class|default:'col-xl-3 col-sm-4 col-xxs-6'}">
|
||||
<div class="catalog-outer">
|
||||
<div class="catalog">
|
||||
|
||||
<a href="{url s=product IDproduct=$product.id TITLE=$product.title}" class="product-link"
|
||||
data-tracking-click='{get_gtm_data encode=true type='ecommerce' method='ProductClick' data=['product' => $product, 'position' => $product@iteration, 'listType' => $listType, 'listId' => $listId]}'>
|
||||
<div class="img">
|
||||
<img src="{get_photo photo=$product.image size='product_catalog'}"
|
||||
width="{$cfg.Photo.types.product_catalog.size[0]}" height="{$cfg.Photo.types.product_catalog.size[1]}"
|
||||
class="img-responsive" alt="{$product.title}">
|
||||
</div>
|
||||
|
||||
<p class="delivery delivery-{$product.deliveryTime}">
|
||||
{$product.deliveryTimeText}
|
||||
</p>
|
||||
|
||||
<p class="title">
|
||||
{$product.title nofilter}
|
||||
</p>
|
||||
|
||||
<p class="price">
|
||||
{if $discount.priceOriginal}
|
||||
<del class="strike-price">{$discount.priceOriginal|format_price}</del>
|
||||
{/if}
|
||||
|
||||
<strong>
|
||||
{$product.price_array|format_price}
|
||||
</strong>
|
||||
</p>
|
||||
</a>
|
||||
|
||||
{include "block.products.variations.tpl"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
{ifmodule BONUS_PROGRAM}
|
||||
{get_bonus_points cart=$body assign=get_points}
|
||||
{* todo prestat pouzivat tridu bonus-program-cart - na X shopech predelat na bonus-points-cart *}
|
||||
{if $get_points->isPositive()}
|
||||
<div class="bonus-program-cart bonus-points bonus-points-cart" data-reload="cart-benefit">
|
||||
<p>
|
||||
<span class="fc icons_trophy"></span>
|
||||
{* @formatter:off *}
|
||||
{$points = $get_points->asFloat()}
|
||||
{if $ctrl.logged}
|
||||
{t
|
||||
plural="Za nákup tohoto zboží získáte <strong>{$points} body</strong> do věrnostního programu."
|
||||
plural5="Za nákup tohoto zboží získáte <strong>{$points} bodů</strong> do věrnostního programu."
|
||||
count=$points pocet=$points escape=false}
|
||||
Za nákup tohoto zboží získáte <strong>{pocet} bod</strong> do věrnostního programu.
|
||||
{/t}
|
||||
{else}
|
||||
{t
|
||||
plural="Po <a href=\"\" class=\"cart-signin\">přihlášení</a> nebo <a href=\"{url s=user act=new}\">registraci</a> získáte za nákup tohoto zboží <strong>{$points} body</strong> do věrnostního programu."
|
||||
plural5="Po <a href=\"\" class=\"cart-signin\">přihlášení</a> nebo <a href=\"{url s=user act=new}\">registraci</a> získáte za nákup tohoto zboží <strong>{$points} bodů</strong> do věrnostního programu."
|
||||
url_registrace={url s=user act=new} pocet=$points count=$points escape=false}
|
||||
Po <a href="" class="cart-signin">přihlášení</a> nebo <a href="{url_registrace}">registraci</a> získáte za nákup tohoto zboží <strong>{pocet} bod</strong> do věrnostního programu.
|
||||
{/t}
|
||||
{/if}
|
||||
{* @formatter:on *}
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
6
web/templates/twig_compat/email/base.tpl
Normal file
6
web/templates/twig_compat/email/base.tpl
Normal file
@@ -0,0 +1,6 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "logo"}
|
||||
<img src="{static_url url="/system-images/logo.png" absolute=1}" alt="{$dbcfg.shop_firm_name}"
|
||||
style="border:0;display: block;margin-bottom: 20px;text-align: center;" class="img-responsive logo"/>
|
||||
{/block}
|
||||
68
web/templates/twig_compat/focus/orders-gifts.tpl
Normal file
68
web/templates/twig_compat/focus/orders-gifts.tpl
Normal file
@@ -0,0 +1,68 @@
|
||||
{extends "focus/focus.base.tpl"}
|
||||
|
||||
{block "focus-title"}
|
||||
{$title}
|
||||
{/block}
|
||||
|
||||
{block "focus-content"}
|
||||
<div class="cart-gift-row row">
|
||||
{$giftPreselected = false}
|
||||
{foreach $products as $product}
|
||||
{$variations = $product->variations}
|
||||
{$gift_preselect = false}
|
||||
{if ($data.preselect_first == 1 || $tpl_vars.gift_preselect_first) && $frontend_data.gift === null && $product@first}
|
||||
{$gift_preselect = true}
|
||||
{$giftPreselected = true}
|
||||
{/if}
|
||||
<div class="{$tpl_vars.gift_col}">
|
||||
<div class="cart-gift-item custom-control custom-radio custom-radio-lg" data-gift-item="{$id_action}">
|
||||
{if $variations}
|
||||
<input type="radio" name="{$name}[id_product]" value="{$product.id}" class="custom-control-input"
|
||||
data-gift-product {if ($frontend_data.id_product==$product.id && $frontend_data.gift != 0) or $gift_preselect}checked{/if}>
|
||||
{else}
|
||||
<input type="radio" name="{$name}[gift]" value="{$product.id}" class="custom-control-input"
|
||||
data-gift-product {if $product.id == $frontend_data.gift or $gift_preselect}checked{/if}>
|
||||
{/if}
|
||||
|
||||
<span class="custom-control-indicator c-indicator"></span>
|
||||
|
||||
<img src="{get_photo photo=$product.image size=$tpl_vars.gift_img_size}"
|
||||
alt="{$discount.product.title}">
|
||||
|
||||
<div class="text-wrapper">
|
||||
<div class="text">
|
||||
<p>{$product.title}</p>
|
||||
{if $tpl_vars.gift_show_free_price == true or $price->getPriceWithVat()->isPositive()}
|
||||
<strong>{if $price->getPriceWithVat()->isZero()}{t}zdarma{/t}{else}{$price|format_price}{/if}</strong>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{if $variations}
|
||||
<div class="cart-gift-variations">
|
||||
<select name="{$name}[gift]" class="form-control" data-gift-variation{if !(($frontend_data.id_product==$product.id && $frontend_data.gift != 0) or $gift_preselect)} disabled{/if}>
|
||||
{foreach $variations as $variation}
|
||||
<option value="{$variation.id}" {if $variation.id == $frontend_data.gift
|
||||
or ($gift_preselect and $variation@first)}selected{/if}>{$variation.title}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
{block "unwanted-gift"}
|
||||
<div class="{$tpl_vars.gift_col}">
|
||||
<div class="cart-gift-item custom-control custom-radio custom-radio-lg" data-gift-item="{$id_action}">
|
||||
<input type="radio" name="{$name}[gift]" value="0" class="custom-control-input" data-gift-product
|
||||
{if (!$giftPreselected && $frontend_data.gift === null) || ($frontend_data.gift !== null && $frontend_data.gift == 0)}checked{/if}>
|
||||
<span class="custom-control-indicator c-indicator"></span>
|
||||
<strong>{t}Nechci dárek{/t}</strong>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
<div class="col-xxs-12 text-center">
|
||||
<button type="button" data-gift-submit class="btn btn-primary">{t}Potvrdit{/t}</button>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
14
web/templates/twig_compat/index.tpl
Normal file
14
web/templates/twig_compat/index.tpl
Normal file
@@ -0,0 +1,14 @@
|
||||
{extends "base.tpl"}
|
||||
|
||||
{block "body"}
|
||||
|
||||
{block "main-prefix"}{/block}
|
||||
|
||||
{block "main"}
|
||||
<main class="main container {block "main-class"}{/block}" {block "main-data-attributes"}{/block}>
|
||||
{block "content"}
|
||||
|
||||
{/block}
|
||||
</main>
|
||||
{/block}
|
||||
{/block}
|
||||
67
web/templates/twig_compat/orderEdit.tpl
Normal file
67
web/templates/twig_compat/orderEdit.tpl
Normal file
@@ -0,0 +1,67 @@
|
||||
{extends "orderView.tpl"}
|
||||
|
||||
{block "body"}
|
||||
<form method="post" id="cart">
|
||||
<h1>{t}Objednávka č.{/t} {$body.order.order_no}</h1>
|
||||
|
||||
<div class="c-alert c-alert-warning">
|
||||
{t}Proveďte změny v objednávce a poté klikněte Potvrdit změny.{/t}
|
||||
</div>
|
||||
|
||||
<div class="orderview-buttons">
|
||||
{insert_cart_info return='cartInfo'}
|
||||
{if $cartInfo.cartInfo.totalProducts > 0}
|
||||
<button class="btn btn-outline" type="submit" name="acn" value="addCart">{t}Přidat obsah z košíku{/t}</button>
|
||||
{/if}
|
||||
<button class="btn btn-outline" type="submit" name="acn" value="cancel">{t}Zrušit editaci{/t}</button>
|
||||
<button class="btn btn-error" type="submit" name="acn" value="storno" title="{t}stornovat objednávku{/t}">{t}Stornovat{/t}</button>
|
||||
<button class="btn btn-ctr" type="submit" name="acn" value="send">{t}Potvrdit změny{/t}</button>
|
||||
<button class="btn btn-primary" style="display: none;" type="submit" name="acn" value="setPieces">{t}Přepočítat{/t}</button>
|
||||
</div>
|
||||
|
||||
{include "account/orderViewEdit-inner.tpl"}
|
||||
</form>
|
||||
{/block}
|
||||
|
||||
|
||||
{block "js-dynamic-load" append}
|
||||
<script src="/common/static/wpj/wpj.cart.js"></script>
|
||||
{/block}
|
||||
|
||||
<script>
|
||||
{block onready append}
|
||||
var $cart = $('#cart');
|
||||
|
||||
$cart.cart();
|
||||
|
||||
$cart.on('click', 'button[value=storno]', function() {
|
||||
return confirm('{t}Opravdu chcete stornovat celou objednávku?{/t}');
|
||||
});
|
||||
|
||||
$cart.on('change', '[data-cart="pieces"]', function() {
|
||||
var $input = $(this);
|
||||
var step = parseFloat($input.attr('step'));
|
||||
var value = $input.val();
|
||||
|
||||
if (value < 0)
|
||||
$input.val(step);
|
||||
|
||||
if (value % step > 0) {
|
||||
var newVal = Math.round(value / step) * step;
|
||||
if (newVal <= 0)
|
||||
newVal = step;
|
||||
|
||||
$input.val(newVal);
|
||||
}
|
||||
});
|
||||
|
||||
$cart.on('keydown', '.pieces input.form-control', function(e) {
|
||||
if (e.keyCode === 13) {
|
||||
e.preventDefault();
|
||||
$(this).blur();
|
||||
}
|
||||
});
|
||||
{/block}
|
||||
</script>
|
||||
|
||||
|
||||
53
web/templates/twig_compat/orderStatus.tpl
Normal file
53
web/templates/twig_compat/orderStatus.tpl
Normal file
@@ -0,0 +1,53 @@
|
||||
{extends "index.tpl"}
|
||||
|
||||
{block "css-entry" append}
|
||||
{encore_entry_link_tags entry='user'}
|
||||
{/block}
|
||||
|
||||
{block css append}
|
||||
<link rel="stylesheet" href="/common/static/bootstrapvalidator/css/bootstrapValidator.min.css">
|
||||
{/block}
|
||||
|
||||
{block content}
|
||||
<div class="page-orderstatus">
|
||||
<h1 class="text-center">Stav objednávky</h1>
|
||||
{if $body.order}
|
||||
<div class="show_order_status html-page">
|
||||
<p><strong>Číslo objednávky:</strong> {$body.order.id}<br>
|
||||
<strong>Stav objednávky:</strong> {$body.order.status_text} (co který stav znamená naleznete <a
|
||||
href="/stav-vyrizeni-objednavky_p10.html" target="_blank">zde</a>)</p>
|
||||
<a href="{url s=orderStatus}" class="btn btn-outline">Zpět</a>
|
||||
</div>
|
||||
{else}
|
||||
{include 'block.messages.tpl'}
|
||||
<form action="{$ctrl.currUrl.Abs}" method="post" class="get_order_status" role="form">
|
||||
<input type="text" name="IDo" value="{$body.IDo}" id="IDo" class="form-control disable-spinner" data-bv-notempty="true" placeholder="Zadejte číslo objednávky">
|
||||
{include "block.recaptcha.invisible.tpl"}
|
||||
{captchaBtn text="{t}Zjistit stav{/t}" class="btn btn-primary"}
|
||||
</form>
|
||||
|
||||
{insert_page code="order-status-page"}
|
||||
{/if}
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "js-dynamic-load" append}
|
||||
{asset_compile}
|
||||
<script src="/common/static/bootstrapvalidator/js/bootstrapValidator.js"></script>
|
||||
<script src="/common/static/bootstrapvalidator/js/language/{$ctrl.active_language_code}.js"></script>
|
||||
{/asset_compile}
|
||||
|
||||
{captchaScript}
|
||||
{/block}
|
||||
|
||||
<script>
|
||||
{block onready append}
|
||||
$('form[role=form]').bootstrapValidator({
|
||||
feedbackIcons: {
|
||||
valid: 'fc fc-check',
|
||||
invalid: 'fc fc-remove',
|
||||
validating: 'fc fc-refresh'
|
||||
}
|
||||
});
|
||||
{/block}
|
||||
</script>
|
||||
21
web/templates/twig_compat/orderView.tpl
Normal file
21
web/templates/twig_compat/orderView.tpl
Normal file
@@ -0,0 +1,21 @@
|
||||
{extends "index.tpl"}
|
||||
|
||||
{block "css-entry" append}
|
||||
{encore_entry_link_tags entry='cart'}
|
||||
{if $ctrl.logged}
|
||||
{encore_entry_link_tags entry='user'}
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block "body"}
|
||||
<h1>{t}Objednávka č.{/t} {$body.order.order_no}</h1>
|
||||
{include "account/orderView-inner.tpl"}
|
||||
{/block}
|
||||
|
||||
{block "js-entry" append}
|
||||
{encore_entry_script_tags entry='cart'}
|
||||
|
||||
{if $ctrl.logged}
|
||||
{encore_entry_script_tags entry='user'}
|
||||
{/if}
|
||||
{/block}
|
||||
@@ -0,0 +1,37 @@
|
||||
{ifmodule BONUS_PROGRAM}
|
||||
{if $ctrl.id and $activePoints}
|
||||
<p class="title-default">{t}Uplatnit body{/t}</p>
|
||||
<div class="cart-bonuspoints-picker">
|
||||
<div>
|
||||
<p>{t}Máte celkem{/t}
|
||||
<strong>{$activePoints} {t plural="body" plural5="bodů" count=$activePoints}bod{/t}</strong>.</p>
|
||||
<p>1 {t}bod{/t} = {$data.discount|format_price:"currency={$data.unit};ceil=no;decimal=dynamic"}</p>
|
||||
</div>
|
||||
<div class="submit-group {if $bonus_points}active{/if}">
|
||||
{if !$bonus_points}
|
||||
{get_used_bonus_points assign='usedBonusPoints'}
|
||||
{$maxActivePoints = max($activePoints - $usedBonusPoints, 0)}
|
||||
<input type="number" id="bonus_points_picker" name="{$name}[bonus_points]" value="{$bonus_points}"
|
||||
class="form-control" min="0" step="1" max="{$maxActivePoints}" title="{t}Počet bodů{/t}"
|
||||
data-bv-excluded="true" placeholder="{block "cart-bonuspoints-picker-placeholder"}{/block}" {if $maxActivePoints == 0}disabled{/if}>
|
||||
<input class="btn btn-primary" type="submit" name="BonusProgramDiscount" value="{t}Použít body{/t}" {if $maxActivePoints == 0}disabled{/if}>
|
||||
{else}
|
||||
<span>{* todo preklad celeho stringu *}
|
||||
{t}Uplatnili jste{/t} <strong>{$bonus_points}</strong> {t plural="body" plural5="bodů" count=$bonus_points}bod{/t}.
|
||||
</span>
|
||||
<input type="hidden" name="{$name}[bonus_points]" value="{$bonus_points}" data-bonuspoints="input">
|
||||
<button type="submit" name="BonusProgramDiscount" class="delete"
|
||||
data-bonuspoints="delete">{t}zrušit{/t}</button>
|
||||
<script>
|
||||
wpj.onReady.push(function() {
|
||||
{* todo dat do externiho JS *}
|
||||
$('[data-bonuspoints="delete"]').on('click', function() {
|
||||
$(this).siblings('[data-bonuspoints="input"]').val(0);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
97
web/templates/twig_compat/order_discount/actions/gift.tpl
Normal file
97
web/templates/twig_compat/order_discount/actions/gift.tpl
Normal file
@@ -0,0 +1,97 @@
|
||||
{block "tpl-vars-gift"}
|
||||
{$tpl_vars.gift_img_size = 12}
|
||||
{$tpl_vars.gift_col = "col-xxs-12"}
|
||||
{$tpl_vars.gift_preselect_first = false} {* zaskrtnuti prvni moznosti pri prvnim prichodu do kosiku *}
|
||||
{$tpl_vars.gift_show_free_price = true}
|
||||
{/block}
|
||||
|
||||
{if count($products)}
|
||||
<div class="cart-gift" data-gift="{$id_action}">
|
||||
<script>
|
||||
document.body.classList.remove('focus-opened');
|
||||
document.body.classList.remove('focus-transition');
|
||||
</script>
|
||||
{block "gift-list"}
|
||||
<div class="cart-gifts-header">
|
||||
<p class="title-default">{$title}</p>
|
||||
{if $frontend_data.gift or ($data.preselect_first == 1 and $frontend_data.gift === null)}
|
||||
<a href="" data-focus-opener="orders-gifts-{$title|strip_accent}-{$id_action}">{t}Změnit dárek{/t}</a>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="cart-gift-inner">
|
||||
<span class="fc icons_gift"></span>
|
||||
{if $frontend_data.gift or ($data.preselect_first == 1 and $frontend_data.gift === null)}
|
||||
{$products->fetchMainImages($tpl_vars.gift_img_size)}
|
||||
{foreach $products as $product}
|
||||
{if ($frontend_data.gift == $product.id or $frontend_data.id_product == $product.id) or ($data.preselect_first == 1 and $frontend_data.gift === null and $product@first)}
|
||||
{$variations = $product->variations}
|
||||
<figure>
|
||||
<img src="{get_photo photo=$product.image size=$tpl_vars.gift_img_size}"
|
||||
alt="{$discount.product.title}" class="img-responsive">
|
||||
</figure>
|
||||
<div class="text-wrapper">
|
||||
<p class="cart-gift-title">
|
||||
<strong>{$product.title}</strong>
|
||||
{if $variations[$frontend_data.gift]}
|
||||
<span class="variation">{$variations[$frontend_data.gift].title}</span>
|
||||
{elseif $variations}
|
||||
{$variation = $variations|reset}
|
||||
<span class="variation">{$variation.title}</span>
|
||||
{/if}
|
||||
</p>
|
||||
|
||||
{if $tpl_vars.gift_show_free_price == true or $price->getPriceWithVat()->isPositive()}
|
||||
<strong class="cart-gift-price">{if $price->getPriceWithVat()->isZero()}{t}zdarma{/t}{else}{$price|format_price}{/if}</strong>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
<div class="text-wrapper">
|
||||
<p>{t}Máte nárok na dárek k objednávce.{/t}</p>
|
||||
<a href="" data-focus-opener="orders-gifts-{$title|strip_accent}-{$id_action}" class="btn btn-primary">{t}Vybrat dárek{/t}</a>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{include "focus/orders-gifts.tpl" class="orders-gifts-{$title|strip_accent}-{$id_action}" title=$title products=$products}
|
||||
{/block}
|
||||
|
||||
<script>
|
||||
wpj.onReady.push(function() {
|
||||
var $gifts = $('[data-gift]');
|
||||
|
||||
$gifts.on('click', '[data-gift-item]', function() {
|
||||
var $input = $(this).find('[data-gift-product]');
|
||||
if (!$input.is(':checked')) {
|
||||
$input.prop('checked', true);
|
||||
$(this).find('[data-gift-variation]').each(function () {
|
||||
$(this).prop('disabled', false);
|
||||
});
|
||||
}
|
||||
|
||||
$(this).closest('[data-gift]').find('[data-gift-product]').each(function() {
|
||||
if ($(this).val() !== $input.val()) {
|
||||
$(this).prop('checked', false);
|
||||
|
||||
$(this).closest('[data-gift-item]').find('[data-gift-variation]').each(function () {
|
||||
$(this).prop('disabled', true);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$gifts.on('change', '[data-gift-variation]', function() {
|
||||
return false;
|
||||
});
|
||||
|
||||
$gifts.on('click', '[data-gift-submit]', function (e) {
|
||||
e.preventDefault();
|
||||
console.log($(this));
|
||||
$(this).addClass('is-submitting');
|
||||
var $gift = $(this).closest('[data-gift]').find('[data-gift-product]:checked');
|
||||
$gift.trigger('change');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
{/if}
|
||||
41
web/templates/twig_compat/ordering.cart.tpl
Normal file
41
web/templates/twig_compat/ordering.cart.tpl
Normal file
@@ -0,0 +1,41 @@
|
||||
{* upravený fallback *}
|
||||
{extends_parent}
|
||||
|
||||
{block "cart-header"}
|
||||
{ifmodule ORDER_DISCOUNT}
|
||||
{insert_discounts_actions cart=$body type='full' new_structure=true assign='discountsActions'}
|
||||
{/ifmodule}
|
||||
{/block}
|
||||
|
||||
{block "cart-title"}
|
||||
{if $body.products|count > 0}
|
||||
<h1 data-reload="cart-title">{$view->getTitle()}<span class="count"><span data-reload="cart-pieces-header">({$body.totalPieces})</span></span></h1>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block "shipping-progress"}{/block}
|
||||
|
||||
{block "sidebar-pricebox" append}
|
||||
<div class="summary-sidebar-shipping-progress" data-reload="shipping-bar">
|
||||
{include "components/shipping-progress.tpl" cartPrice=$body->getTotalPriceForDelivery()->getPriceWithVat(false)}
|
||||
|
||||
{block "custom-content"}
|
||||
{/block}
|
||||
|
||||
<div class="order-badges">
|
||||
{if $body->getAvailability() == 1}
|
||||
{get_delivery_dates purchaseState=$body->getPurchaseState() assign='deliveries'}
|
||||
{if $deliveries.min.delivery}
|
||||
<p><span class="fc icons_calendar"></span>{t date=$deliveries.min.delivery|format_date_locale_pretty:'d. L.':null:true escape=false}Můžete mít již <strong>{date}</strong>{/t}</p>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{ifmodule BONUS_PROGRAM}
|
||||
{include "bonus-program/bonus-program-cart.tpl"}
|
||||
{/ifmodule}
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "cart-also_bought"}
|
||||
{/block}
|
||||
7
web/templates/twig_compat/ordering.delivery.tpl
Normal file
7
web/templates/twig_compat/ordering.delivery.tpl
Normal file
@@ -0,0 +1,7 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "content"}
|
||||
<div data-gtm-placeholders="{gtm_twig_compat_cart_items data=['view' => $view]}">
|
||||
{$smarty.block.parent}
|
||||
</div>
|
||||
{/block}
|
||||
35
web/templates/twig_compat/ordering.success.tpl
Normal file
35
web/templates/twig_compat/ordering.success.tpl
Normal file
@@ -0,0 +1,35 @@
|
||||
{* upravený fallback *}
|
||||
|
||||
{extends_parent}
|
||||
|
||||
{block "main"}
|
||||
{block "tpl-vars"}
|
||||
{$body.stepName = 5}
|
||||
{$body.steps[0] = [title => 'Košík']}
|
||||
{$body.steps[1] = [title => 'Doprava a platba']}
|
||||
{$body.steps[2] = [title => 'Dodací údaje']}
|
||||
{$body.steps[3] = [title => 'Souhrn']}
|
||||
{/block}
|
||||
<main class="main main-ordering-success">
|
||||
{block 'order-process'}
|
||||
<div class="container-fluid order-process-container">
|
||||
{include "ordering/ordering.process.tpl" last_step=true}
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
<div class="container">
|
||||
{change_currency currency=$body.order->currency}
|
||||
{get_order_info type='conversion_sent' order=$body.order assign='conversion_sent'}
|
||||
{if !isDebug() and $body.orderSent and ($conversion_sent or $smarty.get.force_conversion)}
|
||||
{include "orderViewTracking.tpl"}
|
||||
{/if}
|
||||
<div class="page-ordersuccess {if $body.emailRegistered}logged{/if}">
|
||||
{block "ordersuccess-text"}
|
||||
{include "block.messages.tpl"}
|
||||
{insert_page type="ORDER_SUCCESS" use_default=1}
|
||||
{/block}
|
||||
</div>
|
||||
{/change_currency}
|
||||
</div>
|
||||
</main>
|
||||
{/block}
|
||||
36
web/templates/twig_compat/ordering.tpl
Normal file
36
web/templates/twig_compat/ordering.tpl
Normal file
@@ -0,0 +1,36 @@
|
||||
{* upravený fallback *}
|
||||
{extends_parent}
|
||||
|
||||
{block "tpl-vars" append}
|
||||
{$tpl_vars.delivery_country_picker = true}
|
||||
{$tpl_vars.online_payment_visible_items = 1}
|
||||
{$tpl_vars.delivery_collapsible = true}
|
||||
{$tpl_vars.preselect_delivery = "false"}
|
||||
{$tpl_vars.btns_in_sidebar = "true"}
|
||||
{$tpl_vars.cart_sidebar = "true"}
|
||||
{$tpl_vars.summary_title_in_first_step = true}
|
||||
{$tpl_vars.ordering_products_discount = true}
|
||||
{$tpl_vars.pricebox_cartsaving = true}
|
||||
{/block}
|
||||
|
||||
{block 'order-process'}
|
||||
<div class="container">
|
||||
<div class="order-process-container">
|
||||
{include "ordering/ordering.process.tpl"}
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "content-wrapper"}
|
||||
{if $body.products|count > 0}
|
||||
{$smarty.block.parent}
|
||||
{else}
|
||||
<div class="empty-cart" data-reload="cart">
|
||||
<div>
|
||||
<h1>Váš košík je prázdný</h1>
|
||||
<p>Pojďme něco přidat.</p>
|
||||
</div>
|
||||
</div>
|
||||
{insert_page code="empty-cart"}
|
||||
{/if}
|
||||
{/block}
|
||||
16
web/templates/twig_compat/ordering.user.tpl
Normal file
16
web/templates/twig_compat/ordering.user.tpl
Normal file
@@ -0,0 +1,16 @@
|
||||
{extends_parent}
|
||||
|
||||
{block 'order-note'}
|
||||
<div class="row">
|
||||
<div class="col-xxs-12">
|
||||
<div class="form-group">
|
||||
<label for="noteUser">{t}Poznámka k objednávce{/t}</label>
|
||||
<textarea name="noteUser" rows="5" id="noteUser" class="form-control">{$body.note}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "js-entry" append}
|
||||
{include "components/block.smartForm.tpl"}
|
||||
{/block}
|
||||
3
web/templates/twig_compat/ordering/ordering.gifts.tpl
Normal file
3
web/templates/twig_compat/ordering/ordering.gifts.tpl
Normal file
@@ -0,0 +1,3 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "set-image"}{/block}
|
||||
35
web/templates/twig_compat/ordering/ordering.pricebox.tpl
Normal file
35
web/templates/twig_compat/ordering/ordering.pricebox.tpl
Normal file
@@ -0,0 +1,35 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "pricebox-order-discount"}
|
||||
<div class="price-box-row discount">
|
||||
<p>
|
||||
{$discount->getName()}
|
||||
{$discountNote = $discount->getNote()}
|
||||
|
||||
{if $discountNote.coupon and $body.coupons[$discountNote.coupon]}
|
||||
{assign var="discountValue" value=$discountNote.coupon}
|
||||
{elseif $discountNote.generated_coupon.code}
|
||||
{assign var="discountValue" value=$discountNote.generated_coupon.code}
|
||||
{/if}
|
||||
|
||||
{* todo - zkontrolovat bonus program (body) *}
|
||||
{if ($discountNote.coupon and $body.coupons[$discountNote.coupon]) or $discountNote.generated_coupon.code}
|
||||
<button type="button" name="DeleteDiscount" value="{$discountValue}" class="btn-discount-remove">
|
||||
<span class="fc icons_trash"></span>
|
||||
</button>
|
||||
{/if}
|
||||
</p>
|
||||
<p>{if $noVat}{$discount->getPriceWithoutVat()|format_price:"ceil=no;decimal=dynamic"}
|
||||
{else}{$discount->getPriceWithVat()|format_price:"ceil=no;decimal=dynamic"}{/if}</p>
|
||||
</div>
|
||||
{if $discountValue} {* discountValue = coupon or generated_coupon *}
|
||||
{get_coupon_price coupon=$discountValue cart=$body assign=couponPrice}
|
||||
{if $couponPrice && $couponPrice.remaining_coupon_price->isPositive()}
|
||||
<p class="small">
|
||||
Hodnota poukazu {$couponPrice.coupon_price|format_price:"ceil=no;decimal=dynamic"},
|
||||
uplatněno {$couponPrice.used_coupon_price|format_price:"ceil=no;decimal=dynamic"},
|
||||
zbývá {$couponPrice.remaining_coupon_price|format_price:"ceil=no;decimal=dynamic"}.
|
||||
</p>
|
||||
{/if}
|
||||
{/if}
|
||||
{/block}
|
||||
40
web/templates/twig_compat/ordering/ordering.products.tpl
Normal file
40
web/templates/twig_compat/ordering/ordering.products.tpl
Normal file
@@ -0,0 +1,40 @@
|
||||
{* upravený fallback *}
|
||||
{extends_parent}
|
||||
|
||||
{block 'image'}
|
||||
{calc_product_discount product=$product.product assign='product_discount'}
|
||||
{if $product_discount.discount->isPositive() and $product_discount.discount->asFloat() >= 1}
|
||||
<span class="c-product-discountlabel">
|
||||
-{$product_discount.discount->asFloat()|round}%
|
||||
</span>
|
||||
{/if}
|
||||
<img src="{get_photo photo=$product.image size=$img_size}" alt="{$product.title}"
|
||||
class="img-responsive" width="{$photo_dimensions[0]}" height="{$photo_dimensions[1]}">
|
||||
{/block}
|
||||
|
||||
{block "piece-price"}{/block}
|
||||
|
||||
{block "product-sets" append}
|
||||
{ifmodule PRODUCTS__SETS}
|
||||
{if isset($product.note.sets) }
|
||||
{insert_products_sets_cart note=$product.note}
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
{/block}
|
||||
|
||||
{block "cart-discounts-full"}
|
||||
<div data-reload="cart-discounts-full">
|
||||
{ifmodule ORDER_DISCOUNT}
|
||||
{* načítání slev je v ordering.cart.tpl kvůli zobrazení na dvou místech - insert_discounts_actions *}
|
||||
{foreach $discountsActions as $discountAction}
|
||||
{if $discountAction.action_type != 'orders_charge'}
|
||||
{$discountAction.content nofilter}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/ifmodule}
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "shipping-progress-wrapper"}
|
||||
{/block}
|
||||
|
||||
119
web/templates/twig_compat/ordering/ordering.summary-sidebar.tpl
Normal file
119
web/templates/twig_compat/ordering/ordering.summary-sidebar.tpl
Normal file
@@ -0,0 +1,119 @@
|
||||
<div class="summary-sidebar">
|
||||
{block "sidebar-title"}
|
||||
{if $body.stepName != 'cart'}
|
||||
<p class="title-default"{if $body.products|count >= 4} data-opener="[data-summary-sidebar-products]"{/if}>
|
||||
{t}Shrnutí{/t}
|
||||
</p>
|
||||
{else}
|
||||
<div data-reload="cart-discounts-full-sidebar">
|
||||
{ifmodule ORDER_DISCOUNT}
|
||||
{* načítání slev je v ordering.cart.tpl kvůli zobrazení na dvou místech - insert_discounts_actions *}
|
||||
{$hasOrdersCharges = false}
|
||||
{foreach $discountsActions as $discountAction}
|
||||
{if $discountAction.action_type == 'orders_charge'}
|
||||
{$hasOrdersCharges = true}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if $hasOrdersCharges}
|
||||
<p class="title-default">{t}Služby k objednávce{/t}</p>
|
||||
{foreach $discountsActions as $discountAction}
|
||||
{if $discountAction.action_type == 'orders_charge'}
|
||||
{$discountAction.content nofilter}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block "user-manager-select"}
|
||||
{ifmodule USER_MANAGER}
|
||||
{if $ctrl.logged and $body.stepName == 'cart'}
|
||||
{$users_select_title = "{t}Vyberte pobočku{/t}"}
|
||||
{user_manager_insert_users_select title=$users_select_title activeOnly=true}
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
{/block}
|
||||
|
||||
{if $body.stepName != 'cart'}
|
||||
{if $isLastStep}
|
||||
<p class="check-order-msg">{t}Překontrolujte si košík a odešlete objednávku.{/t}</p>
|
||||
{/if}
|
||||
|
||||
{block "sidebar-products"}
|
||||
<div {if $body.products|count >= 4}data-summary-sidebar-products data-simplebar data-simplebar-auto-hide="false"{/if}>
|
||||
<div class="summary-sidebar-productlist">
|
||||
<div class="summary-sidebar-productlist-inner">
|
||||
{if $body.products}
|
||||
{include "ordering/ordering.summary.products.tpl" items=$body.products|array_reverse}
|
||||
{else}
|
||||
<p class="no-items">{t}V košíku nemáte žádné zboží.{/t}</p>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{/if}
|
||||
|
||||
{block "sidebar-delivery"}
|
||||
{if $deliveryType}
|
||||
<div class="summary-sidebar-delivery-wrapper">
|
||||
{$delivery = $deliveryType->getDelivery()}
|
||||
<div class="summary-sidebar-delivery">
|
||||
{if $delivery}
|
||||
{get_deliveries_dates cart=$body assign='deliveriesDates'}
|
||||
{$date = $deliveriesDates[$delivery.id].date}
|
||||
<p class="title">
|
||||
{$delivery.name}
|
||||
{if $date and $delivery->isInPerson()}
|
||||
<br>
|
||||
<span class="info">{t escape=false}k vyzvednutí{/t} {$date|format_date_locale_pretty:'d. L. Y'}</span>
|
||||
{elseif $date}
|
||||
<br>
|
||||
<span class="info">{t}předpokládané doručení{/t} {$date|format_date_locale_pretty:'d. L. Y'}</span>
|
||||
{/if}
|
||||
</p>
|
||||
<p class="price">
|
||||
{$delivery.price.value_with_vat|format_price}
|
||||
</p>
|
||||
{/if}
|
||||
</div>
|
||||
{$payment = $deliveryType->getPayment()}
|
||||
<div class="summary-sidebar-delivery">
|
||||
<p class="title">
|
||||
{if $payment}
|
||||
{$method = $payment->getSelectedMethod()}
|
||||
{if $method}
|
||||
{$payment->getName() nofilter} - {$method.name nofilter}
|
||||
{else}
|
||||
{$payment->getName() nofilter}
|
||||
{/if}
|
||||
{else}
|
||||
{$deliveryType->payment}
|
||||
{/if}
|
||||
</p>
|
||||
<p class="price">
|
||||
{$paymentPrice = $view->getPaymentPrice($payment.id)}
|
||||
{if $paymentPrice != null}
|
||||
{if $paymentPrice.value_with_vat->isPositive()}
|
||||
{$paymentPrice.value_with_vat|format_price}
|
||||
{else}
|
||||
{t}zdarma{/t}
|
||||
{/if}
|
||||
{/if}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
<div class="summary-sidebar-inner">
|
||||
{block "sidebar-pricebox"}
|
||||
{include "ordering/ordering.pricebox.tpl" transport=($body.stepName != 'cart')}
|
||||
|
||||
{if $tpl_vars.btns_in_sidebar}
|
||||
{include "ordering/ordering.btns.sidebar.tpl" showVoucher=($body.stepName == 'cart')}
|
||||
{/if}
|
||||
{/block}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,39 @@
|
||||
{extends_parent}
|
||||
|
||||
{block 'image'}
|
||||
{calc_product_discount product=$product.product assign='product_discount'}
|
||||
{if $product_discount.discount->isPositive() and $product_discount.discount->asFloat() >= 1}
|
||||
<span class="c-product-discountlabel">
|
||||
-{$product_discount.discount->asFloat()|round}%
|
||||
</span>
|
||||
{/if}
|
||||
<img src="{get_photo photo=$product.image size=4}" alt="{$product.title}"
|
||||
class="img-responsive">
|
||||
{/block}
|
||||
|
||||
{block "product-inline-addons"}{/block}
|
||||
|
||||
{block "product-extra-addons"}
|
||||
{ifmodule PRODUCTS_CHARGES}
|
||||
{include "ordering/ordering.product-charges.tpl" item=$product isCart=false hideDelete=true}
|
||||
{/ifmodule}
|
||||
|
||||
{ifmodule PRODUCT_GIFTS}
|
||||
{if $product.product.gifts}
|
||||
<div class="cart-product-sets">
|
||||
{get_product_gifts product=$product assign="gifts"}
|
||||
{foreach $gifts as $gift_product}
|
||||
<div class="set-item">
|
||||
<div class="set-label">
|
||||
+ {t}dárek{/t}
|
||||
<a href="{url s=product IDproduct=$gift_product.id TITLE=$gift_product.title}" class="set-title">{if $gift_product.gift_pieces and $gift_product.gift_pieces > 1}{$gift_product.gift_pieces}x {/if}{$gift_product.title}</a>
|
||||
</div>
|
||||
<div class="set-price">
|
||||
<strong>{t}zdarma{/t}</strong>
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
{/block}
|
||||
139
web/templates/twig_compat/ordering/ordering.user.v2.tpl
Normal file
139
web/templates/twig_compat/ordering/ordering.user.v2.tpl
Normal file
@@ -0,0 +1,139 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "form-personal-data-address-title"}{/block}
|
||||
|
||||
{block 'delivery-place'}
|
||||
{if $deliveryType}
|
||||
{$delivery = $deliveryType->getDelivery()}
|
||||
{if $delivery->getType() == Delivery::TYPE_POINT}
|
||||
<p class="h4">{t}Adresa dodání{/t}</p>
|
||||
<div class="cart-delivery-place">
|
||||
<p><strong>{$delivery->getName()}</strong></p>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block "form-different-delivery"}
|
||||
{ifmodule USER_ADDRESSES}
|
||||
{if !$deliveryType || $deliveryType->getDelivery()->requiresDeliveryAddress()}
|
||||
{get_addresses assign="user_addresses"}
|
||||
{$cartData = $body->getData()}
|
||||
|
||||
{if $user_addresses}
|
||||
{$inputData = ['updateCart' => true]}
|
||||
{render_component name="Cart:HiddenAddressInput" data=$inputData assign="addressInput"}
|
||||
{$addressInput nofilter}
|
||||
|
||||
{$selectData = ['selectedId' => $cartData.user_address_id, 'allowAddNew' => $dbcfg.edit_user_addresses]}
|
||||
{render_component name="Cart:UserAddressSelect" data=$selectData assign="addressSelect"}
|
||||
{$addressSelect nofilter}
|
||||
|
||||
{if $dbcfg.edit_user_addresses}
|
||||
<div class="opener-content" id="different-address-content"
|
||||
style="display:{if $cartData.user_address_id == 0}block{else}none{/if}">
|
||||
{block 'form-delivery-address'}
|
||||
<div class="row">
|
||||
<div class="{$column_class}">
|
||||
<div class="form-group required">
|
||||
<label for="name">{t}Jméno{/t}</label>
|
||||
<input type="text" name="cart_data[new_address][name]" id="name" class="form-control"
|
||||
value="{$cartData.new_address.name}" autocomplete="off"
|
||||
data-bv-notempty="true" data-bv-stringlength="true" data-bv-stringlength-min="3">
|
||||
</div>
|
||||
</div>
|
||||
<div class="{$column_class}">
|
||||
<div class="form-group required">
|
||||
<label for="surname">{t}Příjmení{/t}</label>
|
||||
<input type="text" name="cart_data[new_address][surname]" id="surname" class="form-control"
|
||||
value="{$cartData.new_address.surname}" autocomplete="off"
|
||||
data-bv-notempty="true" data-bv-stringlength="true" data-bv-stringlength-min="3">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{$column_class}">
|
||||
<div class="form-group">
|
||||
<label for="phone">{t}Telefon{/t}</label>
|
||||
<input type="text" name="cart_data[new_address][phone]" id="phone" class="form-control" value="{$cartData.new_address.phone}" autocomplete="off" data-bv-phone="true"
|
||||
{if !($deliveryType and $deliveryType->isInPerson()) || $inpersonRequireAddress}
|
||||
data-bv-phone-country="cart_data[new_address][country]"
|
||||
{else}
|
||||
data-bv-phone-country="{$ctrl.active_country}"
|
||||
{/if}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="{$column_class}">
|
||||
{block "delivery-street"}
|
||||
<div class="form-group required">
|
||||
<label for="street">{t}Ulice a č.p.{/t}</label>
|
||||
<input type="text" name="cart_data[new_address][street]" id="street" class="form-control smartform-instance-delivery smartform-address-street-and-number"
|
||||
value="{$cartData.new_address.street}"{if $dbcfg.smartform == "Y" or $dbcfg.here_autocomplete == "Y"} autocomplete="off"{/if} data-field-delivery-street
|
||||
data-bv-notempty="true" data-bv-regexp="true" pattern=".*\S+\s+[0-9]+.*|.*\S+[0-9]+\s+.*"
|
||||
data-bv-regexp-message="{t}Doplňte prosím číslo popisné{/t}">
|
||||
</div>
|
||||
{/block}
|
||||
</div>
|
||||
<div class="{$column_class}">
|
||||
<div class="zip-group">
|
||||
<div class="form-group required">
|
||||
<label for="city">{t}Město{/t}</label>
|
||||
<input type="text" name="cart_data[new_address][city]" id="city" class="form-control smartform-instance-delivery smartform-address-city"
|
||||
value="{$cartData.new_address.city}"{if $dbcfg.smartform == "Y" or $dbcfg.here_autocomplete == "Y"} autocomplete="off"{/if} data-field-delivery-city
|
||||
data-bv-notempty="true" data-bv-stringlength="true" data-bv-stringlength-min="2">
|
||||
</div>
|
||||
<div class="form-group required">
|
||||
<label for="zip">{t}PSČ{/t}</label>
|
||||
<input type="text" name="cart_data[new_address][zip]" id="zip" class="form-control smartform-instance-delivery smartform-address-zip" value="{$cartData.new_address.zip}"
|
||||
{if $dbcfg.smartform == "Y" or $dbcfg.here_autocomplete == "Y"} autocomplete="off"{/if} data-field-delivery-zip data-bv-notempty="true" data-bv-zipcode="true"
|
||||
data-bv-zipcode-country="cart_data[new_address][country]">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{block "form-delivery-country"}
|
||||
<div class="{$column_class}">
|
||||
<div class="form-group required">
|
||||
<label for="country">{t}Stát{/t}
|
||||
{if $tpl_vars.delivery_country_picker}
|
||||
<a href="/{$body.steps.delivery.url}" class="cart-country-link">{t}Jiný stát?{/t}</a>
|
||||
{/if}
|
||||
</label>
|
||||
<select class="form-control" id="country" name="cart_data[new_address][country]" autocomplete="off"
|
||||
{if $cfg.Order.Countries|count == 1 || $tpl_vars.delivery_country_picker}readonly{/if}>
|
||||
{html_options options=$cfg.Order.Countries selected=$cartData.new_address.country|default:$ctrl.active_country}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
<div class="col-xxs-12">
|
||||
<div class="form-group">
|
||||
<label for="firm">{t}Upřesnění adresy (areál,...){/t}</label>
|
||||
<input type="text" name="cart_data[new_address][firm]" id="firm" class="form-control"
|
||||
value="{$cartData.new_address.firm}" autocomplete="off"
|
||||
data-bv-stringlength="true" data-bv-stringlength-min="3">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xxs-12">
|
||||
<div class="form-group">
|
||||
<label for="cart_data[new_address][save]" class="custom-control custom-checkbox">
|
||||
<input class="custom-control-input" type="checkbox" name="cart_data[new_address][save]"
|
||||
id="cart_data[new_address][save]" value="1">
|
||||
<span class="custom-control-indicator"></span>
|
||||
{t}Uložit mezi adresy{/t}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
</div>
|
||||
{/if}
|
||||
{elseif $dbcfg.edit_user_addresses or !$ctrl.logged}
|
||||
{$smarty.block.parent}
|
||||
{/if}
|
||||
|
||||
{/if}
|
||||
{elsemodule}
|
||||
{$smarty.block.parent}
|
||||
{/ifmodule}
|
||||
{/block}
|
||||
20
web/templates/twig_compat/payment.GoPay.cart.tpl
Normal file
20
web/templates/twig_compat/payment.GoPay.cart.tpl
Normal file
@@ -0,0 +1,20 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "gopay-items-hidden"}
|
||||
{if $method@index == ($tpl_vars.online_payment_visible_items|default:2 - 1) and $closed and !$method@last}
|
||||
<div class="cart-box-row payment-item thepay-method payments-list">
|
||||
<div>
|
||||
{foreach $object->getAvailableMethods() as $name => $method}
|
||||
{if $method@index > 1 and $method@index < 6}
|
||||
<img src="{$method.image}" title="{$method.name}" alt="{$method.name}"
|
||||
style="width: 60px; height: auto; margin: 5px 0;" class="payment-item-small">
|
||||
{/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
<div>
|
||||
<a href="" class="thepay-more btn {$tpl_vars.payment_more_class|default:"btn-primary"}" id="gopay-more"
|
||||
title="{t}Zobrazit více platebních metod{/t}">{t}Více{/t}</a>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
11
web/templates/twig_compat/pdf/invoicePDF.tpl
Normal file
11
web/templates/twig_compat/pdf/invoicePDF.tpl
Normal file
@@ -0,0 +1,11 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "invoice-logo"}
|
||||
{if $cfg.Addr.full_original} {* na locale *}
|
||||
<img src="{$cfg.Addr.full_original}system-images/{$cfg.Modules.orders.invoice_logo|default:'logo.png'}"
|
||||
alt="{$dbcfg.shop_firm_name}"/>
|
||||
{else}
|
||||
<img src="{$cfg.Addr.full}system-images/{$cfg.Modules.orders.invoice_logo|default:'logo.png'}"
|
||||
alt="{$dbcfg.shop_firm_name}"/>
|
||||
{/if}
|
||||
{/block}
|
||||
17
web/templates/twig_compat/product.sets.cart.tpl
Normal file
17
web/templates/twig_compat/product.sets.cart.tpl
Normal file
@@ -0,0 +1,17 @@
|
||||
{* upravený fallback *}
|
||||
<div class="cart-multisets">
|
||||
{foreach $set_products as $set_product}
|
||||
<div class="set-item">
|
||||
<div class="set-item-image">
|
||||
<a title="{t}Zobrazit zboží{/t}" href="{url s=product IDproduct=$set_product.id TITLE=$set_product.title}">
|
||||
<img src="{get_photo photo=$set_product.image size='product_cart'}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="set-item-title">
|
||||
<a title="{t}Zobrazit zboží{/t}"
|
||||
href="{url s=product IDproduct=$set_product.id TITLE=$set_product.title}">{$set_product.title}</a>
|
||||
{if $set_product.variationTitle}<span>{$set_product.variationTitle}</span>{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
12
web/templates/twig_compat/scss/base/_mixins.scss
Normal file
12
web/templates/twig_compat/scss/base/_mixins.scss
Normal file
@@ -0,0 +1,12 @@
|
||||
@import "@css[shared]/base/_mixins";
|
||||
|
||||
@mixin focus-header-title {
|
||||
color: $headings-color;
|
||||
font-family: $headings-font-family;
|
||||
font-weight: $headings-font-weight;
|
||||
line-height: $headings-line-height;
|
||||
margin-bottom: $headings-margin-bottom;
|
||||
text-transform: $headings-text-transform;
|
||||
font-size: $font-size-h4;
|
||||
}
|
||||
|
||||
1
web/templates/twig_compat/scss/base/_photoswipe.scss
Normal file
1
web/templates/twig_compat/scss/base/_photoswipe.scss
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
54
web/templates/twig_compat/scss/base/_shame.scss
Normal file
54
web/templates/twig_compat/scss/base/_shame.scss
Normal file
@@ -0,0 +1,54 @@
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.container {
|
||||
@include delete-after;
|
||||
}
|
||||
|
||||
.main {
|
||||
margin-bottom: 40px;
|
||||
|
||||
.container {
|
||||
&::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.registration-submit .btn-primary {
|
||||
width: 100%;
|
||||
max-width: 390px;
|
||||
}
|
||||
|
||||
.cart-footer {
|
||||
display: flex;
|
||||
|
||||
.price-box {
|
||||
max-width: 400px;
|
||||
margin-left: auto;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.orderview-history.orderview-history {
|
||||
h1 {
|
||||
font-size: 20px;
|
||||
margin: 0;
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 3px 0;
|
||||
}
|
||||
}
|
||||
22
web/templates/twig_compat/scss/base/_variables.scss
Normal file
22
web/templates/twig_compat/scss/base/_variables.scss
Normal file
@@ -0,0 +1,22 @@
|
||||
$registration-v: 2 !default;
|
||||
$cart-v: 2 !default;
|
||||
|
||||
//$order-sidebar-v: 2;
|
||||
$cart-user-v: 2 !default;
|
||||
//$xxl: 1470px;
|
||||
$delivery_collapsible: true !default;
|
||||
$cart-btns-sidebar: true !default;
|
||||
|
||||
@import "@twig/scss/_global";
|
||||
@import "@css[shared]/base/_variables";
|
||||
|
||||
$summary-siderbar-width: 435px;
|
||||
$summary-siderbar-padding-left: 45px;
|
||||
|
||||
$cart-form-width: 1180px !default;
|
||||
$cart-product-sets-padding: 94px !default;
|
||||
|
||||
$cartbox-sidebar-width: 480px;
|
||||
$cartbox-alsobought-width: 245px;
|
||||
|
||||
$ordering-products-breakpoint: 1119px !default;
|
||||
29
web/templates/twig_compat/scss/components.scss
Normal file
29
web/templates/twig_compat/scss/components.scss
Normal file
@@ -0,0 +1,29 @@
|
||||
@import "@css[common]/components";
|
||||
|
||||
@import "@css/components/catalog/_catalog";
|
||||
@import "@css/components/catalog/_catalog-variations";
|
||||
@import "@css/components/catalog/_catalog-row";
|
||||
|
||||
@import "@css/components/_alert";
|
||||
//@import "@css/components/_btns";
|
||||
@import "@css/components/_buy_count";
|
||||
@import "@css/components/_delivery";
|
||||
|
||||
@import "@css/components/forms/_forms";
|
||||
@import "@css/components/forms/_validation";
|
||||
@import "@css/components/forms/_custom-control";
|
||||
|
||||
@import "@css/components/_shipping-progress";
|
||||
@import "@css/components/_wpj-tooltip";
|
||||
|
||||
@import "@css/components/focus/_focus-base";
|
||||
@import "@css[common]/components/focus/_focus-delivery-widgets";
|
||||
@import "@css/components/focus/_focus-content";
|
||||
|
||||
@import "@css/modules/_shopping-lists";
|
||||
|
||||
@import "@css/page/order/_cart-bonuspoints-picker";
|
||||
@import "@css/page/order/_cart-multisets";
|
||||
|
||||
@import "@css/page/_returns";
|
||||
@import "@css/page/_reclamations";
|
||||
110
web/templates/twig_compat/scss/components/_oauth-box.scss
Normal file
110
web/templates/twig_compat/scss/components/_oauth-box.scss
Normal file
@@ -0,0 +1,110 @@
|
||||
$oauth-box-margin: 0 0 2rem 0 !default;
|
||||
$oauth-buttons-direction: row !default;
|
||||
$show-oauth-buttons-text: "false" !default;
|
||||
|
||||
.oauth-box {
|
||||
margin: $oauth-box-margin;
|
||||
}
|
||||
|
||||
.oauth-buttons {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: $oauth-buttons-direction;
|
||||
gap: 20px;
|
||||
|
||||
a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
|
||||
.icon {
|
||||
background-color: $body-bg-alt;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
border-radius: 50%;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
display: inline-block;
|
||||
border: $border-width solid transparent;
|
||||
transition: border-color $transition-speed;
|
||||
}
|
||||
|
||||
.text {
|
||||
padding: 0 10px 0 15px;
|
||||
line-height: 1.5;
|
||||
|
||||
span {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
@include haf {
|
||||
.icon {
|
||||
border-color: $black;
|
||||
}
|
||||
|
||||
.text {
|
||||
span {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fb {
|
||||
.icon {
|
||||
$fb-icon: url('~@assets/icons/fb.svg') !default;
|
||||
|
||||
background-image: $fb-icon;
|
||||
background-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
.gp {
|
||||
.icon {
|
||||
$gp-icon: url('~@assets/icons/google.svg') !default;
|
||||
|
||||
background-image: $gp-icon;
|
||||
background-size: 21px;
|
||||
}
|
||||
}
|
||||
|
||||
.apple {
|
||||
.icon {
|
||||
$apple-icon: url('~@assets/icons/apple.svg') !default;
|
||||
|
||||
background-image: $apple-icon;
|
||||
background-size: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.sz {
|
||||
.icon {
|
||||
$seznam-icon: url('~@assets/icons/seznam.svg') !default;
|
||||
|
||||
background-image: $seznam-icon;
|
||||
background-size: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.amazon {
|
||||
.icon {
|
||||
$amazon-icon: url('~@assets/icons/amazon.svg') !default;
|
||||
|
||||
background-image: $amazon-icon;
|
||||
background-size: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if ($show-oauth-buttons-text == "false") {
|
||||
.page-user-new {
|
||||
.oauth-buttons {
|
||||
a {
|
||||
.text {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
$shipping-progress-bar-bg: $border-color !default;
|
||||
$shipping-progress-bar: $brand-primary !default;
|
||||
$shipping-progress-icon-size: 20px !default;
|
||||
$shipping-progress-icon-color: $text-dark !default;
|
||||
$shipping-progress-bar-border-radius: $border-radius-base !default;
|
||||
|
||||
.summary-sidebar-shipping-progress {
|
||||
border: 1px solid $border-color;
|
||||
border-radius: $border-radius-base;
|
||||
padding: 20px;
|
||||
|
||||
.fc {
|
||||
color: $shipping-progress-icon-color;
|
||||
font-size: $shipping-progress-icon-size;
|
||||
line-height: 1;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: calc(50% - ($shipping-progress-icon-size / 2));
|
||||
}
|
||||
}
|
||||
|
||||
.shipping-progress {
|
||||
margin-bottom: $spacer;
|
||||
position: relative;
|
||||
padding-left: $shipping-progress-icon-size * 1.5;
|
||||
width: 100%;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
strong {
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
.shipping-bar {
|
||||
background: $shipping-progress-bar-bg;
|
||||
height: 5px;
|
||||
margin-top: 5px;
|
||||
position: relative;
|
||||
border-radius: $shipping-progress-bar-border-radius;
|
||||
|
||||
span {
|
||||
background: $shipping-progress-bar;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 5px;
|
||||
border-radius: $shipping-progress-bar-border-radius;
|
||||
transition: width .2s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.order-badges {
|
||||
.fc {
|
||||
top: 0;
|
||||
line-height: .8em;
|
||||
}
|
||||
|
||||
p {
|
||||
position: relative;
|
||||
padding-left: $shipping-progress-icon-size * 1.5;
|
||||
|
||||
&:last-child {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
@import "@css[shared]/components/catalog/_catalog";
|
||||
|
||||
.catalog {
|
||||
margin-bottom: 20px;
|
||||
|
||||
.img-responsive {
|
||||
margin: 0 auto 8px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
$focus-padding: 25px 30px !default;
|
||||
|
||||
@import "@css[shared]/components/focus/_focus-content";
|
||||
|
||||
.focus-content {
|
||||
border-radius: $border-radius-base;
|
||||
}
|
||||
|
||||
.focus-header {
|
||||
border-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
|
||||
.title {
|
||||
@include focus-header-title;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
@import "@css[shared]/modules/_shopping-lists";
|
||||
|
||||
.shopping-list-products,
|
||||
.shopping-list-links,
|
||||
.shopping-list-buttons {
|
||||
max-width: unset;
|
||||
}
|
||||
11
web/templates/twig_compat/scss/page/_reclamations.scss
Normal file
11
web/templates/twig_compat/scss/page/_reclamations.scss
Normal file
@@ -0,0 +1,11 @@
|
||||
.page-reclamations {
|
||||
.btn-pager {
|
||||
aspect-ratio: auto;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 992px) {
|
||||
.btn:not(.btn-sm) {
|
||||
min-width: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
23
web/templates/twig_compat/scss/page/_returns.scss
Normal file
23
web/templates/twig_compat/scss/page/_returns.scss
Normal file
@@ -0,0 +1,23 @@
|
||||
@import "@css/_returns";
|
||||
|
||||
.returns-header {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.page-returns {
|
||||
.btn-prevstep {
|
||||
border: 2px solid $brand-primary;
|
||||
color: $brand-primary;
|
||||
|
||||
@include haf {
|
||||
border-color: $border-color;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 992px) {
|
||||
.btn:not(.btn-sm) {
|
||||
min-width: 260px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
.bonus-points-table {
|
||||
td:first-child,
|
||||
th:first-child, {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.inactive {
|
||||
td * {
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
|
||||
strong {
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
.fc {
|
||||
font-size: $font-size-smaller;
|
||||
}
|
||||
|
||||
.icons_arrow-up {
|
||||
color: $state-success;
|
||||
}
|
||||
|
||||
.icons_arrow-down {
|
||||
color: $state-error;
|
||||
}
|
||||
|
||||
.bonus-points-tooltip {
|
||||
font-style: normal;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
opacity: 1 !important;
|
||||
|
||||
&::before {
|
||||
@include fonticon;
|
||||
|
||||
content: $icons_tooltip;
|
||||
}
|
||||
|
||||
.wpj-tooltip {
|
||||
opacity: 1;
|
||||
display: none;
|
||||
bottom: calc(100% + 2px);
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 250px;
|
||||
line-height: $line-height-sm;
|
||||
font-size: 12px;
|
||||
|
||||
&::after,
|
||||
&::before {
|
||||
left: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.wpj-tooltip {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $sm - 1) {
|
||||
.user-manager-table {
|
||||
overflow-x: scroll;
|
||||
|
||||
.table {
|
||||
width: 700px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// orderStatus fallback
|
||||
.page-orderstatus {
|
||||
max-width: 740px;
|
||||
margin: 0 auto;
|
||||
|
||||
.get_order_status {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $gap-width;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
$cart-bonuspoints-border: 1px solid $border-color !default;
|
||||
|
||||
.cart-bonuspoints-picker {
|
||||
border: $cart-bonuspoints-border;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 20px;
|
||||
gap: $gap-width;
|
||||
border-radius: $border-radius-base;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
> div:first-child {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.submit-group {
|
||||
display: flex;
|
||||
gap: $gap-width;
|
||||
|
||||
&.active {
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
.form-control {
|
||||
flex-grow: 1;
|
||||
max-width: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.btn {
|
||||
flex-grow: 1;
|
||||
max-width: 170px;
|
||||
}
|
||||
|
||||
.delete {
|
||||
background: transparent;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
line-height: 1;
|
||||
padding: 0 20px;
|
||||
position: relative;
|
||||
|
||||
&:after {
|
||||
@include fonticon;
|
||||
|
||||
content: $lightbox_close;
|
||||
font-size: 12px;
|
||||
margin-top: -.5em;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:active,
|
||||
&:focus {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
125
web/templates/twig_compat/scss/page/order/_cart-gift.scss
Normal file
125
web/templates/twig_compat/scss/page/order/_cart-gift.scss
Normal file
@@ -0,0 +1,125 @@
|
||||
@import "@css[common]/order/_cart-gift";
|
||||
|
||||
$cart-gifts-border: 1px solid $border-color !default;
|
||||
$cart-gifts-background: $body-bg !default;
|
||||
$cart-gifts-icon-color: $brand-primary !default;
|
||||
|
||||
.cart-gift {
|
||||
.cart-gifts-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: $spacer;
|
||||
|
||||
.title-default {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.focus-content {
|
||||
width: 680px;
|
||||
}
|
||||
|
||||
.cart-gift-item {
|
||||
padding: 10px 20px;
|
||||
border-radius: $border-radius-base;
|
||||
|
||||
.custom-control-indicator {
|
||||
margin: 0 20px 0 0;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 50px;
|
||||
margin: 0 20px 0 0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.text-wrapper {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.text strong {
|
||||
font-size: $font-size-larger;
|
||||
}
|
||||
|
||||
select {
|
||||
width: 180px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.cart-gift-inner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border: $cart-gifts-border;
|
||||
background: $cart-gifts-background;
|
||||
border-radius: $border-radius-base;
|
||||
padding: 20px;
|
||||
|
||||
.fc {
|
||||
color: $cart-gifts-icon-color;
|
||||
font-size: 30px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0 20px 0 0;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
.text-wrapper {
|
||||
position: relative;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 auto 0 0;
|
||||
color: $text-dark;
|
||||
line-height: $line-height-sm;
|
||||
}
|
||||
|
||||
.cart-gift-title {
|
||||
font-size: $font-size-larger;
|
||||
|
||||
.variation {
|
||||
display: block;
|
||||
color: $text-muted;
|
||||
font-size: $font-size-base;
|
||||
font-weight: $font-weight-base;
|
||||
}
|
||||
}
|
||||
|
||||
.cart-gift-price {
|
||||
font-size: $font-size-larger;
|
||||
color: $text-dark;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $sm - 1) {
|
||||
.cart-gift {
|
||||
.cart-gift-item {
|
||||
.text-wrapper {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.cart-gift-inner {
|
||||
|
||||
.text-wrapper {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
$order-product-image-overlay: true !default;
|
||||
|
||||
.cart-multisets {
|
||||
background: $white;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin: -1px -5px 5px;
|
||||
position: relative;
|
||||
|
||||
+ .product {
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
|
||||
> div {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.set-item {
|
||||
background: $body-bg;
|
||||
border: 1px solid $border-color;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 5px 8px;
|
||||
width: calc(100% / 3 - 10px);
|
||||
border-radius: $border-radius-base;
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
width: calc(50% - 10px);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 499px) {
|
||||
width: calc(100% - 10px);
|
||||
}
|
||||
}
|
||||
|
||||
.set-item-title span {
|
||||
display: block;
|
||||
font-size: $font-size-smaller;
|
||||
color: $text-muted;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.set-item-image {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: $border-radius-base;
|
||||
position: relative;
|
||||
margin-right: 15px;
|
||||
width: 60px;
|
||||
|
||||
@if ($order-product-image-overlay) {
|
||||
@include image-overlay(7px);
|
||||
}
|
||||
|
||||
img {
|
||||
@include img-responsive;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
$cart-charge-item-border: 1px solid $border-color !default;
|
||||
$cart-charge-item-background: transparent !default;
|
||||
$cart-charge-items-gap: calc($gap-width / 2);
|
||||
|
||||
@import "@css[shared]/page/order/_cart-product-charges";
|
||||
|
||||
.cart-product-charges {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $cart-charge-items-gap;
|
||||
padding-bottom: 10px;
|
||||
|
||||
.charge-item {
|
||||
border: $cart-charge-item-border;
|
||||
background: $cart-charge-item-background;
|
||||
border-radius: $border-radius-base;
|
||||
|
||||
+ .charge-item {
|
||||
border-top: $cart-charge-item-border;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $sm - 1) {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
$cart-set-item-border: 1px solid $border-color !default;
|
||||
$cart-set-item-background: transparent !default;
|
||||
|
||||
@import "@css[shared]/page/order/_cart-product-sets";
|
||||
|
||||
.cart-product-sets {
|
||||
padding-bottom: 10px;
|
||||
|
||||
.set-item {
|
||||
border: $cart-set-item-border;
|
||||
background: $cart-set-item-background;
|
||||
border-radius: $border-radius-base;
|
||||
|
||||
&:last-child {
|
||||
border: $cart-set-item-border;
|
||||
}
|
||||
}
|
||||
|
||||
.set-price,
|
||||
.set-label {
|
||||
font-weight: $font-weight-bold;
|
||||
font-size: $font-size-larger;
|
||||
}
|
||||
|
||||
.set-label {
|
||||
margin-right: 10px;
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
$ordering-logo-width: 70px !default;
|
||||
|
||||
.c-header.header-ordering {
|
||||
margin-bottom: 35px;
|
||||
|
||||
> .container {
|
||||
> div {
|
||||
width: calc(50% - $ordering-logo-width);
|
||||
}
|
||||
}
|
||||
|
||||
.c-header-icons {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
@media screen and (max-width: $md - 1) {
|
||||
> .container {
|
||||
> div {
|
||||
width: auto;
|
||||
|
||||
&:first-child {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
53
web/templates/twig_compat/scss/page/order/_order-btns.scss
Normal file
53
web/templates/twig_compat/scss/page/order/_order-btns.scss
Normal file
@@ -0,0 +1,53 @@
|
||||
.cart-btns {
|
||||
text-align: center;
|
||||
|
||||
.btn-prevstep {
|
||||
display: inline-block;
|
||||
margin-bottom: 15px;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
.cart-nextstep-wrapper {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.btn-nextstep {
|
||||
@include btn-ctr;
|
||||
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
|
||||
+ p {
|
||||
margin-top: 10px;
|
||||
color: $text-muted;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-nextstep.last {
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
@include fonticon;
|
||||
|
||||
content: $icons_check;
|
||||
font-size: $font-size-base;
|
||||
position: absolute;
|
||||
left: 25px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
pointer-events: none;
|
||||
|
||||
@if mixin-exists(btn-disabled) {
|
||||
@include btn-disabled;
|
||||
} @else {
|
||||
background-color: #a0a0a0;
|
||||
border-color: #a0a0a0;
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
@import "@css[shared]/page/order/_order-charges";
|
||||
|
||||
.cart-charge {
|
||||
border-bottom: 1px solid $border-color;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: $font-size-base;
|
||||
font-weight: $font-weight-base;
|
||||
}
|
||||
|
||||
.icons_tooltip {
|
||||
color: $brand-primary;
|
||||
font-size: $font-size-larger;
|
||||
top: 2px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
$pricebox-background: $body-bg !default;
|
||||
$pricebox-padding: 15px 0 !default;
|
||||
|
||||
.price-box {
|
||||
background: $pricebox-background;
|
||||
line-height: $line-height-sm;
|
||||
border-radius: $border-radius-base;
|
||||
padding: $pricebox-padding;
|
||||
|
||||
.price-box-row-cartsaving {
|
||||
color: $discount-color;
|
||||
}
|
||||
|
||||
.price-box-row {
|
||||
display: flex;
|
||||
min-height: 2rem;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: .25rem;
|
||||
|
||||
+ p:last-child {
|
||||
font-size: $font-size-larger;
|
||||
font-weight: $font-weight-bold;
|
||||
padding-left: 5px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.total-price {
|
||||
color: $text-dark;
|
||||
|
||||
p:first-child {
|
||||
font-size: $font-size-larger;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
p:last-child {
|
||||
font-weight: $font-weight-bold;
|
||||
font-size: $font-size-h3;
|
||||
line-height: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-discount-remove {
|
||||
@include btn-reset;
|
||||
|
||||
cursor: pointer;
|
||||
transition: color $transition-speed;
|
||||
|
||||
@include haf {
|
||||
color: $state-error;
|
||||
}
|
||||
}
|
||||
}
|
||||
141
web/templates/twig_compat/scss/page/order/_order-process.scss
Normal file
141
web/templates/twig_compat/scss/page/order/_order-process.scss
Normal file
@@ -0,0 +1,141 @@
|
||||
$active-step-background-color: $brand-primary !default;
|
||||
|
||||
.order-process-container {
|
||||
margin: 0 auto 30px;
|
||||
max-width: $cart-form-width;
|
||||
}
|
||||
|
||||
.order-process {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
counter-reset: counter;
|
||||
}
|
||||
|
||||
.order-process-step {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
background: $body-bg;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 50%;
|
||||
color: $text-dark;
|
||||
content: counter(counter);
|
||||
counter-increment: counter;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: $font-size-larger;
|
||||
font-weight: $font-weight-bold;
|
||||
margin-right: 13px;
|
||||
position: relative;
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&::after {
|
||||
border-top: 1px solid $border-color;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
margin: 0 15px;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
@media screen and (min-width: $md) {
|
||||
@include delete-after;
|
||||
}
|
||||
|
||||
&::before {
|
||||
@include fonticon;
|
||||
|
||||
content: $icons_check;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
&.active {
|
||||
font-size: $font-size-larger;
|
||||
font-weight: $font-weight-bold;
|
||||
|
||||
&::before {
|
||||
border-color: $active-step-background-color;
|
||||
background: $active-step-background-color;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&.order-process-laststep::before {
|
||||
color: $white;
|
||||
background: $state-success;
|
||||
border-color: $state-success;
|
||||
}
|
||||
}
|
||||
|
||||
&.visited {
|
||||
@include underline-never;
|
||||
|
||||
&::before {
|
||||
transition: all $transition-speed;
|
||||
}
|
||||
|
||||
@include haf {
|
||||
&::before {
|
||||
border-color: $active-step-background-color;
|
||||
background: $active-step-background-color;
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $md - 1) {
|
||||
.order-process {
|
||||
margin: 0 auto;
|
||||
max-width: 550px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.order-process-step {
|
||||
flex-direction: column;
|
||||
padding: 0 5px;
|
||||
text-align: center;
|
||||
width: 25%;
|
||||
font-size: $font-size-smaller;
|
||||
|
||||
&::before {
|
||||
margin: 0 auto 8px;
|
||||
}
|
||||
|
||||
&::after {
|
||||
position: absolute;
|
||||
top: 19px;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&:first-child::after {
|
||||
right: -5px;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
&:last-child::after {
|
||||
left: -5px;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
&.active {
|
||||
font-size: $font-size-smaller;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 599px) {
|
||||
.order-process-step {
|
||||
flex-grow: 1;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
@import "@css[shared]/page/order/_order-products-summary";
|
||||
|
||||
.order-products-summary {
|
||||
.price-summary {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.price-total-summary {
|
||||
order: 1;
|
||||
|
||||
.summary-gift-price,
|
||||
div strong {
|
||||
font-size: $font-size-larger;
|
||||
}
|
||||
}
|
||||
|
||||
.cart-product-charges,
|
||||
.cart-product-sets {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.cart-product-charges {
|
||||
.charge-item {
|
||||
padding: 12px;
|
||||
|
||||
> span {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.charge-price {
|
||||
font-weight: $font-weight-bold;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.cart-product-sets {
|
||||
.set-item {
|
||||
justify-content: space-between;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.set-label,
|
||||
.set-price {
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
|
||||
.set-label {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
a {
|
||||
@include underline-hover;
|
||||
|
||||
font-weight: $font-weight-base;
|
||||
white-space: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $xs - 1) {
|
||||
.product {
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-start;
|
||||
min-height: 90px;
|
||||
padding-left: 80px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.image {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 0;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.title {
|
||||
padding-right: 0;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.variation {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.price-summary {
|
||||
padding-left: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
153
web/templates/twig_compat/scss/page/order/_order-products.scss
Normal file
153
web/templates/twig_compat/scss/page/order/_order-products.scss
Normal file
@@ -0,0 +1,153 @@
|
||||
$order-product-vertical-padding: 10px;
|
||||
$order-product-image-width: 74px !default;
|
||||
$order-product-image-overlay: true !default;
|
||||
|
||||
@import "@css[shared]/page/order/_order-products";
|
||||
|
||||
.order-products {
|
||||
padding-bottom: 20px;
|
||||
|
||||
.product:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.image {
|
||||
a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: $border-radius-base;
|
||||
position: relative;
|
||||
|
||||
@if ($order-product-image-overlay) {
|
||||
@include image-overlay(7px);
|
||||
}
|
||||
|
||||
.c-product-discountlabel {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-left: 20px;
|
||||
|
||||
a {
|
||||
@include underline-hover;
|
||||
}
|
||||
}
|
||||
|
||||
.variation {
|
||||
font-size: $font-size-smaller;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.availability {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.buy_count {
|
||||
width: 40px;
|
||||
|
||||
button {
|
||||
color: $text-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.price-total {
|
||||
text-align: right;
|
||||
width: 120px;
|
||||
|
||||
.flag {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.delete-product {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $lg) and (max-width: $ordering-products-breakpoint),
|
||||
screen and (max-width: $md) {
|
||||
.order-products:not(.order-products-summary) {
|
||||
.product {
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-start;
|
||||
position: relative;
|
||||
padding-left: 84px;
|
||||
}
|
||||
|
||||
.image {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-left: 10px;
|
||||
margin-bottom: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.availability {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.availability-resp {
|
||||
display: block;
|
||||
font-size: $font-size-smaller;
|
||||
}
|
||||
|
||||
.pieces {
|
||||
position: static;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.price-total {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 20px;
|
||||
}
|
||||
|
||||
.delete-product {
|
||||
align-self: flex-end;
|
||||
margin-bottom: 13px;
|
||||
margin-left: 0;
|
||||
order: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $md) and (max-width: $lg - 1) {
|
||||
.order-products {
|
||||
.availability {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.availability-resp {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $xs - 1) {
|
||||
.order-products:not(.order-products-summary) {
|
||||
.title,
|
||||
.pieces {
|
||||
margin-left: 7px;
|
||||
}
|
||||
|
||||
.pieces {
|
||||
width: 80px;
|
||||
margin-right: 15px;
|
||||
|
||||
.form-control {
|
||||
width: 50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
$ordersuccess-width: unset !default;
|
||||
|
||||
@import "@css[shared]/page/order/_order-success";
|
||||
|
||||
.main-ordering-success {
|
||||
.order-process-container {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
$check-order-msg-background: $brand-ctr !default;
|
||||
$check-order-msg-color: $white !default;
|
||||
|
||||
.summary-sidebar {
|
||||
width: 100%;
|
||||
margin-bottom: 20px;
|
||||
|
||||
.check-order-msg {
|
||||
background: $check-order-msg-background;
|
||||
border-radius: $border-radius-base;
|
||||
color: $check-order-msg-color;
|
||||
font-weight: $font-weight-bold;
|
||||
padding: 10px 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.order-products {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
@media screen and (min-width: $lg) {
|
||||
max-width: calc(#{$summary-siderbar-width} + #{$summary-siderbar-padding-left});
|
||||
padding-left: $summary-siderbar-padding-left;
|
||||
|
||||
// todo simplebar nepoužívat, používat nativní scroll
|
||||
[data-opener="[data-summary-sidebar-products]"] {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
[data-summary-sidebar-products] {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
[data-simplebar="init"] {
|
||||
max-height: 700px;
|
||||
margin-bottom: 30px;
|
||||
|
||||
.simplebar-track.simplebar-vertical {
|
||||
right: -15px;
|
||||
}
|
||||
}
|
||||
|
||||
.sticky {
|
||||
position: sticky;
|
||||
top: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.summary-sidebar-delivery-wrapper {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.summary-sidebar-delivery {
|
||||
border-bottom: 1px solid $border-color;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin: 0;
|
||||
padding: 15px 0;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: $text-dark;
|
||||
|
||||
span {
|
||||
font-size: $font-size-smaller;
|
||||
color: $text-muted;
|
||||
}
|
||||
}
|
||||
|
||||
.price {
|
||||
font-size: $font-size-larger;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
p:last-child {
|
||||
text-align: right;
|
||||
max-width: 70%;
|
||||
}
|
||||
}
|
||||
|
||||
/* delivery/user step modification */
|
||||
.order-content {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
position: relative;
|
||||
|
||||
.deliveries {
|
||||
flex-wrap: wrap;
|
||||
|
||||
> div {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.cart-box {
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $lg - 1) {
|
||||
.summary-sidebar {
|
||||
max-width: none;
|
||||
padding-left: 0;
|
||||
|
||||
[data-opener="[data-summary-sidebar-products]"] {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
padding-right: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
&::after {
|
||||
@include fonticon;
|
||||
|
||||
content: $icons_caret-down;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
font-size: $font-size-base;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
&.active::after {
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
}
|
||||
|
||||
.order-products {
|
||||
.title {
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* delivery/user step modification */
|
||||
.order-content {
|
||||
flex-wrap: wrap;
|
||||
|
||||
> div {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.deliveries {
|
||||
margin: 0;
|
||||
|
||||
> div {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
$cart-voucher-hidden: true;
|
||||
|
||||
@import "@css[shared]/page/order/_order-voucher";
|
||||
|
||||
.cart-voucher {
|
||||
margin-bottom: 15px;
|
||||
|
||||
a {
|
||||
@include btn;
|
||||
@include btn-outline;
|
||||
|
||||
width: 100%;
|
||||
|
||||
&::before {
|
||||
content: '%';
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
background: $black;
|
||||
color: $white;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.cart-vouchers-active {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
102
web/templates/twig_compat/scss/page/order/_order.scss
Normal file
102
web/templates/twig_compat/scss/page/order/_order.scss
Normal file
@@ -0,0 +1,102 @@
|
||||
// cart JsShop disabled
|
||||
#js-shop-cart-info {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.cart-form {
|
||||
margin: auto;
|
||||
max-width: $cart-form-width;
|
||||
}
|
||||
|
||||
.cart-delivery-place {
|
||||
background-color: $body-bg-alt;
|
||||
padding: 15px 30px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 22px;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.count {
|
||||
color: $body-color;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
position: relative;
|
||||
right: -4px;
|
||||
top: -5px;
|
||||
}
|
||||
}
|
||||
|
||||
.text-center h1,
|
||||
h1.text-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.order-content {
|
||||
align-items: flex-start;
|
||||
//margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.order-container .shipping-progress-wrapper {
|
||||
@media screen and (min-width: $xs) {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
> div {
|
||||
width: calc(50% - 14px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $lg - 1) {
|
||||
.main-ordering,
|
||||
.order-content {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.ordering-gdpr .form-control-feedback {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#noteUser {
|
||||
height: 150px;
|
||||
line-height: 1.25;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
.main-cart > hr {
|
||||
margin: 40px 0;
|
||||
}
|
||||
|
||||
.order-content > div:first-child {
|
||||
flex-grow: 1;
|
||||
|
||||
@media screen and (min-width: $lg) {
|
||||
max-width: calc(100% - $summary-siderbar-width - $summary-siderbar-padding-left);
|
||||
}
|
||||
}
|
||||
|
||||
// OrderViewEdit fallback fix
|
||||
.account-right-side {
|
||||
.page-orderview {
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $xs - 1) {
|
||||
.cart-btns .btn.btn-nextstep {
|
||||
letter-spacing: normal;
|
||||
}
|
||||
}
|
||||
25
web/templates/twig_compat/scss/page/order/_step-cart.scss
Normal file
25
web/templates/twig_compat/scss/page/order/_step-cart.scss
Normal file
@@ -0,0 +1,25 @@
|
||||
.cart-cart {
|
||||
@media screen and (min-width: $lg) {
|
||||
.order-content {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.summary-sidebar {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.order-content > div:first-child {
|
||||
float: left;
|
||||
width: calc(100% - #{$summary-siderbar-width} - #{$summary-siderbar-padding-left});
|
||||
max-width: 830px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $lg - 1) {
|
||||
.btn-prevstep {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
198
web/templates/twig_compat/scss/page/order/_step-delivery.scss
Normal file
198
web/templates/twig_compat/scss/page/order/_step-delivery.scss
Normal file
@@ -0,0 +1,198 @@
|
||||
$delivery-label-height: 82px; //$line-height-sm * $font-size-base * 2 + 2rem !default;
|
||||
$delivery_collapsible: true;
|
||||
|
||||
@import "@css[shared]/page/order/_step-delivery";
|
||||
|
||||
.cart-box {
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.cart-box-row {
|
||||
padding: 0 20px;
|
||||
|
||||
.delivery-content {
|
||||
padding-left: calc(2rem + 25px);
|
||||
}
|
||||
|
||||
.title,
|
||||
.name {
|
||||
font-size: 16px;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
|
||||
.delivery-item,
|
||||
.payment-item {
|
||||
.custom-control-indicator {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
&.selected {
|
||||
border-color: $black;
|
||||
|
||||
.custom-control-indicator {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-color: $custom-control-border-checked !important;
|
||||
background: $custom-control-background-checked !important;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-image: $custom-checkbox-icon;
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.deliveries-collapsible {
|
||||
.delivery-reset-label {
|
||||
padding: 15px 20px;
|
||||
}
|
||||
|
||||
.payments-box {
|
||||
.unselected-notify {
|
||||
font-size: $font-size-smaller;
|
||||
}
|
||||
}
|
||||
|
||||
&.delivery-selected {
|
||||
.delivery-inperson-city {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.payment-item-gopay {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
|
||||
> div {
|
||||
width: 100%;
|
||||
|
||||
&.disabled {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.thepay-method {
|
||||
min-height: $delivery-label-height;
|
||||
order: 1;
|
||||
|
||||
&.disabled {
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
> div:first-child {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
.name {
|
||||
margin: 0 10px 0 0;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 60px;
|
||||
max-height: 30px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
.thepay-more {
|
||||
@include underline-never;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
span {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
&:hover span {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.payment-item-gp {
|
||||
.img {
|
||||
text-align: center;
|
||||
|
||||
img {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.delivery-item-inperson {
|
||||
> div:first-child {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
img {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 449px) {
|
||||
flex-wrap: wrap;
|
||||
padding-top: 10px;
|
||||
|
||||
> div:first-child {
|
||||
flex: 100%;
|
||||
}
|
||||
|
||||
> div:last-child {
|
||||
margin-left: 60px;
|
||||
}
|
||||
|
||||
.name {
|
||||
order: 0 !important;
|
||||
}
|
||||
|
||||
.img {
|
||||
margin: 0;
|
||||
align-self: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $md - 1) {
|
||||
.thepay-method img:nth-child(4) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $sm - 1) {
|
||||
.thepay-method img:nth-child(3) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: $xs - 1) {
|
||||
.thepay-method img {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
40
web/templates/twig_compat/scss/page/user/_user.scss
Normal file
40
web/templates/twig_compat/scss/page/user/_user.scss
Normal file
@@ -0,0 +1,40 @@
|
||||
@import "@css[shared]/page/user/_user.scss";
|
||||
@import "@css/components/_oauth-box.scss";
|
||||
|
||||
.page-user {
|
||||
.col-sm-6 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.form-user {
|
||||
h3 {
|
||||
font-size: $font-size-h4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-user-edit {
|
||||
h1 {
|
||||
text-align: unset;
|
||||
}
|
||||
|
||||
.form-user {
|
||||
max-width: 490px;
|
||||
}
|
||||
}
|
||||
|
||||
.page-user-new {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
h1 {
|
||||
text-align: unset;
|
||||
}
|
||||
|
||||
@media screen and (min-width: $lg) {
|
||||
> div {
|
||||
width: 45%;
|
||||
}
|
||||
}
|
||||
}
|
||||
5
web/templates/twig_compat/user.tpl
Normal file
5
web/templates/twig_compat/user.tpl
Normal file
@@ -0,0 +1,5 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "js-entry" append}
|
||||
{include "components/block.smartForm.tpl"}
|
||||
{/block}
|
||||
11
web/templates/twig_compat/user/user.edit.tpl
Normal file
11
web/templates/twig_compat/user/user.edit.tpl
Normal file
@@ -0,0 +1,11 @@
|
||||
<div class="page-user page-user-edit">
|
||||
<h1>{$view->getTitle()}</h1>
|
||||
|
||||
{ifmodule USER_OAUTH}
|
||||
{if $dbcfg.oauth.facebook.client_id or $dbcfg.oauth.google.client_id}
|
||||
{include "user/user.oauth.tpl"}
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
|
||||
{include "user/user.form.v2.tpl"}
|
||||
</div>
|
||||
66
web/templates/twig_compat/user/user.form.v2.tpl
Normal file
66
web/templates/twig_compat/user/user.form.v2.tpl
Normal file
@@ -0,0 +1,66 @@
|
||||
{extends_parent}
|
||||
|
||||
{block "user-form-prepend"}
|
||||
{if $body.newUser}<h4>{t}Registrace pomocí e-mailu{/t}</h4>{/if}
|
||||
{/block}
|
||||
|
||||
{block "gender"}
|
||||
<div class="col-xxs-12 col-sm-6">
|
||||
<div class="form-group form-group-legend form-group-gender">
|
||||
<label for="gender">{t}Pohlaví{/t}</label>
|
||||
<select name="gender" class="custom-select form-control" id="gender">
|
||||
<option selected disabled hidden>
|
||||
{t}Neuvedeno{/t}
|
||||
</option>
|
||||
<option value="M" {if $body.input.gender.value == 'M'}selected{/if}>
|
||||
{t}Muž{/t}
|
||||
</option>
|
||||
<option value="F" {if $body.input.gender.value == 'F'}selected{/if}>
|
||||
{t}Žena{/t}
|
||||
</option>
|
||||
<option value="">
|
||||
{t}Nechci uvést{/t}
|
||||
</option>
|
||||
</select>
|
||||
<span class="legend">{t}Nepovinné{/t}</span>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block "different-address-opener"}
|
||||
{ifmodule USER_ADDRESSES}
|
||||
{if !$body.newUser}
|
||||
{get_addresses assign="user_addresses"}
|
||||
{if $user_addresses|count > 0 or $dbcfg.edit_user_addresses}
|
||||
<div class="form-group">
|
||||
<label for="different-address" class="custom-control custom-checkbox">
|
||||
<input type="checkbox" name="different-address" id="different-address" class="custom-control-input"
|
||||
data-opener="[data-different-address]"{if $user_addresses|count > 0} checked{/if}>
|
||||
|
||||
<span class="custom-control-indicator"></span>
|
||||
{t}Dodání na jinou adresu nebo do zaměstnání{/t}
|
||||
</label>
|
||||
</div>
|
||||
{/if}
|
||||
{else}
|
||||
{$smarty.block.parent}
|
||||
{/if}
|
||||
{elsemodule}
|
||||
{$smarty.block.parent}
|
||||
{/ifmodule}
|
||||
{/block}
|
||||
|
||||
{block "different-address-content"}
|
||||
{ifmodule USER_ADDRESSES}
|
||||
{if !$body.newUser}
|
||||
<div class="opener-content" style="display: {if $user_addresses|count > 0}block{else}none{/if};" data-different-address>
|
||||
{render_component name="Account:UserAddressesList" assign="addresses"}
|
||||
{$addresses nofilter}
|
||||
</div>
|
||||
{else}
|
||||
{$smarty.block.parent}
|
||||
{/if}
|
||||
{elsemodule}
|
||||
{$smarty.block.parent}
|
||||
{/ifmodule}
|
||||
{/block}
|
||||
15
web/templates/twig_compat/user/user.new.v2.tpl
Normal file
15
web/templates/twig_compat/user/user.new.v2.tpl
Normal file
@@ -0,0 +1,15 @@
|
||||
<div class="page-user page-user-new">
|
||||
<div>
|
||||
<h1>{$view->getTitle()}</h1>
|
||||
|
||||
{insert_page type="REGISTRATION" exists='exists'}
|
||||
{include "user/user.form.v2.tpl"}
|
||||
</div>
|
||||
<div>
|
||||
{ifmodule USER_OAUTH}
|
||||
{if $dbcfg.oauth.facebook.client_id or $dbcfg.oauth.google.client_id}
|
||||
{include "user/user.oauth.tpl"}
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
</div>
|
||||
</div>
|
||||
94
web/templates/twig_compat/user/user.oauth.tpl
Normal file
94
web/templates/twig_compat/user/user.oauth.tpl
Normal file
@@ -0,0 +1,94 @@
|
||||
{ifmodule USER_OAUTH}
|
||||
<div class="oauth-box">
|
||||
{if $ctrl.logged}
|
||||
{get_logged_user_provider_ids assign='userProviderIDs'}
|
||||
|
||||
{foreach $userProviderIDs as $providerIDRow}
|
||||
{if $providerIDRow.provider == "facebook"}
|
||||
{$fbRemove = $providerIDRow}
|
||||
{elseif $providerIDRow.provider == "google"}
|
||||
{$googleRemove = $providerIDRow}
|
||||
{elseif $providerIDRow.provider == 'seznam'}
|
||||
{$seznamRemove = $providerIDRow}
|
||||
{elseif $providerIDRow.provider == 'amazon'}
|
||||
{$amazonRemove = $providerIDRow}
|
||||
{elseif $providerIDRow.provider == 'apple'}
|
||||
{$appleRemove = $providerIDRow}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{block "oauth-text"}
|
||||
{if $body.newUser}
|
||||
<h4>{t}Rychlá registrace pomocí sociálních sítí{/t}</h4>
|
||||
{else}
|
||||
<h4>{t}Propojení se sociálními sítěmi{/t}</h4>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
<div class="oauth-buttons">
|
||||
{if $dbcfg.oauth.facebook.client_id}
|
||||
{if $fbRemove}
|
||||
<a href="/login-unbind/{$fbRemove.id}" class="fb" title="{$fbRemove.email}"><span class="icon"></span>
|
||||
<div class="text"><strong>{t}Spárováno{/t}</strong><br><span>{t}Odebrat{/t}</span></div>
|
||||
</a>
|
||||
{else}
|
||||
<a href="/login-bind/facebook" class="fb"><span class="icon"></span>
|
||||
<div class="text"><span>{if $body.newUser}Facebook{else}{t}Spárovat{/t}{/if}</span></div>
|
||||
</a>
|
||||
{/if}
|
||||
{/if}
|
||||
{if $dbcfg.oauth.google.client_id}
|
||||
{if $googleRemove}
|
||||
<a href="/login-unbind/{$googleRemove.id}" class="gp" title="{$googleRemove.email}"><span class="icon"></span>
|
||||
<div class="text"><strong>{t}Spárováno{/t}</strong><br><span>{t}Odebrat{/t}</span></div>
|
||||
</a>
|
||||
{else}
|
||||
<a href="/login-bind/google" class="gp"><span class="icon"></span>
|
||||
<div class="text"><span>{if $body.newUser}Google{else}{t}Spárovat{/t}{/if}</span></div>
|
||||
</a>
|
||||
{/if}
|
||||
{/if}
|
||||
{ifmodule USER_OAUTH__SEZNAM_LOGIN}
|
||||
{if $dbcfg.oauth.seznam.client_id}
|
||||
{if $seznamRemove}
|
||||
<a href="/login-unbind/{$seznamRemove.id}" class="sz" title="{$seznamRemove.email}"><span class="icon"></span>
|
||||
<div class="text"><strong>{t}Spárováno{/t}</strong><br><span>{t}Odebrat{/t}</span></div>
|
||||
</a>
|
||||
{else}
|
||||
<a href="/login-bind/seznam" class="sz"><span class="icon"></span>
|
||||
<div class="text"><span>{if $body.newUser}Seznam{else}{t}Spárovat{/t}{/if}</span></div>
|
||||
</a>
|
||||
{/if}
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
{ifmodule USER_OAUTH__AMAZON_LOGIN}
|
||||
{if $dbcfg.oauth.amazon.client_id}
|
||||
{if $amazonRemove}
|
||||
<a href="/login-unbind/{$amazonRemove.id}" class="amazon" title="{$amazonRemove.email}"><span class="icon"></span>
|
||||
<div class="text"><strong>{t}Spárováno{/t}</strong><br><span>{t}Odebrat{/t}</span></div>
|
||||
</a>
|
||||
{else}
|
||||
<a href="/login-bind/amazon" class="amazon"><span class="icon"></span>
|
||||
<div class="text"><span>{if $body.newUser}Amazon{else}{t}Spárovat{/t}{/if}</span></div>
|
||||
</a>
|
||||
{/if}
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
{ifmodule USER_OAUTH__APPLE_LOGIN}
|
||||
{if $dbcfg.oauth.apple.client_id}
|
||||
{if $appleRemove}
|
||||
<a href="/login-unbind/{$appleRemove.id}" class="apple" title="{$appleRemove.email}"><span class="icon"></span>
|
||||
<div class="text"><strong>{t}Spárováno{/t}</strong><br><span>{t}Odebrat{/t}</span></div>
|
||||
</a>
|
||||
{else}
|
||||
<a href="/login-bind/apple" class="apple"><span class="icon"></span>
|
||||
<div class="text"><span>{if $body.newUser}Apple{else}{t}Spárovat{/t}{/if}</span></div>
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
{/if}
|
||||
{/ifmodule}
|
||||
</div>
|
||||
</div>
|
||||
{/ifmodule}
|
||||
Reference in New Issue
Block a user