first commit
This commit is contained in:
1
apps/frontend/templates/theme/cutlery/_fonts.html
Normal file
1
apps/frontend/templates/theme/cutlery/_fonts.html
Normal file
@@ -0,0 +1 @@
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:400,400i,700,700i&subset=latin-ext" rel="stylesheet">
|
||||
157
apps/frontend/templates/theme/cutlery/_header.html
Normal file
157
apps/frontend/templates/theme/cutlery/_header.html
Normal file
@@ -0,0 +1,157 @@
|
||||
<div id="top" class="container">
|
||||
<div id="header" class="row hidden-xs">
|
||||
<div class="col-sm-2">
|
||||
<a href="{$homepage_url}" class="btn btn-primary btn-home">
|
||||
<svg enable-background="new 0 0 24 24" height="16px" version="1.1" viewBox="0 0 24 24" width="16px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M23.821,12.263L12.575,0.636C12.415,0.473,12.208,0.391,12,0.391s-0.415,0.082-0.575,0.245L0.179,12.263 c-0.316,0.328-0.203,0.597,0.251,0.597h3.308l0.002,10.75c2.417,0,6.191,0,6.191,0v-6.615h4.136l-0.014,6.615c0,0,5.063,0,6.226,0 L20.278,12.86h3.291C24.023,12.86,24.137,12.591,23.821,12.263z"/></svg>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-8 text-center">
|
||||
<div id="logo">
|
||||
<div>
|
||||
<a href="{$homepage_url}">
|
||||
<img src="{image_path image='logo.png'}" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
{include_file id="_search"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="header-navbar-position">
|
||||
<div id="header-navbar-outer">
|
||||
<div class="container">
|
||||
<nav id="header-navbar" class="navbar" role="navigation">
|
||||
<div id="logo_small" class="visible-xs">
|
||||
<div>
|
||||
<a href="{$homepage_url}">
|
||||
<img src="{image_path image='logo_small.png'}" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="navbar-buttons" class="btn-group pull-right">
|
||||
<button id="nav-button-shopping-cart" class="btn btn-navbar collapsed empty" data-toggle="collapse" data-target="#nav-shopping-cart" data-parent="#header-navbar">
|
||||
<span class="glyphicon glyphicon-shopping-cart"></span>
|
||||
<small class="quantity"></small>
|
||||
</button>
|
||||
|
||||
{if !$sf_user->isAuthenticated()}
|
||||
<a href="{url_for internal='stUser/loginUser' secure=true}" id="nav-button-user" class="hidden-xs btn btn-navbar collapsed">
|
||||
<span id="login-status-info" class="glyphicon glyphicon-user"></span>
|
||||
<small class="login-status"> </small>
|
||||
</a>
|
||||
<button id="nav-button-user" class="visible-xs btn btn-navbar collapsed" data-toggle="collapse" data-target="#nav-user" data-parent="#header-navbar">
|
||||
<span id="login-status-info" class="glyphicon glyphicon-user"></span>
|
||||
<small class="login-status"> </small>
|
||||
</button>
|
||||
{else}
|
||||
<button id="nav-button-user" class="btn btn-navbar collapsed" data-toggle="collapse" data-target="#nav-user" data-parent="#header-navbar">
|
||||
<span id="login-status-info" class="glyphicon glyphicon-user"></span>
|
||||
<small class="login-status"> </small>
|
||||
</button>
|
||||
{/if}
|
||||
<button id="nav-button-settings" class="btn btn-navbar hidden-xs collapsed" data-toggle="collapse" data-target="#nav-settings" data-parent="#header-navbar">
|
||||
<span class="glyphicon glyphicon-globe"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="navbar-header">
|
||||
<button id="nav-button-menu" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-menu" data-parent="#header-navbar">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
<!-- Menu -->
|
||||
<div id="nav-menu" class="navbar-collapse collapse">
|
||||
{st_get_component module="stCategoryTree" component="horizontal"}
|
||||
</div>
|
||||
<div class="navbar-dropdown">
|
||||
<!-- Koszyk -->
|
||||
<div id="nav-shopping-cart" class="navbar-collapse collapse">
|
||||
{st_get_component module="stBasket" component="show"}
|
||||
</div>
|
||||
<div id="nav-user" class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<!-- Moje konto, Język, Waluta -->
|
||||
{st_get_component module="stUser" component="loginStatus"}
|
||||
</ul>
|
||||
</div>
|
||||
{strip}
|
||||
<div id="nav-settings" class="hidden-xs navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="dropdown">
|
||||
{st_get_component module="stLanguageFrontend" component="choose"}
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
{st_get_component module="stCurrencyFrontend" component="pickCurrency"}
|
||||
</li>
|
||||
</ul>
|
||||
{slot name="nav-setting" hidden="true"}{/slot}
|
||||
</div>
|
||||
{/strip}
|
||||
<div id="nav-search" class="navbar-collapse collapse hidden-xs">
|
||||
{include_file id="_search"}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
jQuery(function($) {
|
||||
if ($('#nav-settings > ul > li:empty').length == 2)
|
||||
{
|
||||
$('#nav-button-settings').hide();
|
||||
}
|
||||
|
||||
var menuHeight = $('#header-navbar-outer').height();
|
||||
var dropdown = $('#header-navbar .dropdown-menu');
|
||||
|
||||
function menuFix() {
|
||||
|
||||
if ($(window).width() > 768) {
|
||||
|
||||
var scrolled = $(window).scrollTop();
|
||||
var menuTop = $('#header-navbar-position').offset().top;
|
||||
var windowHeight = $(window).height();
|
||||
var headerHeight = $('#top').height();
|
||||
|
||||
if (scrolled > menuTop) {
|
||||
$('#header-navbar-outer').addClass('navbar-fixed-top');
|
||||
$('#header-navbar-position').css('min-height', menuHeight - 1);
|
||||
dropdown.css('max-height', windowHeight - menuHeight - 15);
|
||||
} else if (scrolled < menuTop) {
|
||||
$('#header-navbar-outer').removeClass('navbar-fixed-top');
|
||||
$('#header-navbar-position').css('min-height', '');
|
||||
dropdown.css('max-height', windowHeight - headerHeight - menuHeight - 15);
|
||||
};
|
||||
|
||||
} else {
|
||||
dropdown.removeAttr("style");
|
||||
};
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
menuFix();
|
||||
if ($(window).width() < 768) {
|
||||
var windowHeightMobile = $(window).height();
|
||||
var menuHeightMobile = $('#header-navbar').height();
|
||||
$('#header-navbar .navbar-collapse').css('max-height', windowHeightMobile - menuHeightMobile);
|
||||
};
|
||||
});
|
||||
$(window).scroll(function(){
|
||||
menuFix();
|
||||
});
|
||||
$(window).resize(function(){
|
||||
menuFix();
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
{/literal}
|
||||
85
apps/frontend/templates/theme/cutlery/_search.html
Normal file
85
apps/frontend/templates/theme/cutlery/_search.html
Normal file
@@ -0,0 +1,85 @@
|
||||
<form action="{urlfor internal="stProduct/list"}" class="form-inline search" method="get">
|
||||
<div class="input-group">
|
||||
<label class="sr-only" for="search">{__ text="Wyszukaj" langCatalogue="stSearchFrontend"}</label>
|
||||
<input type="search" autocomplete="off" class="form-control" name="query" value="" placeholder='{__ text="Wyszukaj" langCatalogue="stSearchFrontend"}...' />
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default btn-search" type="submit">
|
||||
<svg enable-background="new 0 0 512 512" height="16px" version="1.1" viewBox="0 0 512 512" width="16px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M497.913,497.913c-18.782,18.782-49.225,18.782-68.008,0l-84.862-84.863c-34.889,22.382-76.13,35.717-120.659,35.717 C100.469,448.767,0,348.312,0,224.383S100.469,0,224.384,0c123.931,0,224.384,100.452,224.384,224.383 c0,44.514-13.352,85.771-35.718,120.676l84.863,84.863C516.695,448.704,516.695,479.131,497.913,497.913z M224.384,64.109 c-88.511,0-160.274,71.747-160.274,160.273c0,88.526,71.764,160.274,160.274,160.274c88.525,0,160.273-71.748,160.273-160.274 C384.657,135.856,312.909,64.109,224.384,64.109z"/></svg>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{literal}
|
||||
<script id="search-result-tpl" type="text/x-template">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<a href="#">
|
||||
<img class="media-object" src="{%=o.image%}" alt="{%=o.name%}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h4 class="media-heading">{%=o.name%}</h4>
|
||||
{% if (o.price) { %}
|
||||
<div class="price-info">
|
||||
{% if (o.price.type == 'gross_net') { %}
|
||||
<span class="price">{%=o.price.brutto%}</span>
|
||||
{% } else if (o.price.type == 'net_gross') { %}
|
||||
<span class="price">{%=o.price.netto%}</span>
|
||||
{% } else if (o.price.type == 'only_net') { %}
|
||||
<span class="price">{%=o.price.netto%}</span>
|
||||
{% } else { %}
|
||||
<span class="price">{%=o.price.brutto%}</span>
|
||||
{% } %}
|
||||
</div>
|
||||
{% } %}
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function($) {
|
||||
$('.search').submit(function() {
|
||||
var input = $(this).find('input[name=query]');
|
||||
|
||||
if (!input.val()) {
|
||||
input.parent().addClass('has-error');
|
||||
return false;
|
||||
}
|
||||
|
||||
input.parent().removeClass('has-error');
|
||||
return true;
|
||||
});
|
||||
|
||||
var products = new Bloodhound({
|
||||
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
|
||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
||||
remote: {
|
||||
url: '{/literal}{urlfor internal="@stSearchPlugin?action=typeahead"}?query=%QUERY{literal}',
|
||||
wildcard: '%QUERY'
|
||||
},
|
||||
limit: 100
|
||||
});
|
||||
|
||||
products.initialize();
|
||||
|
||||
var tpl = tmpl($('#search-result-tpl').html());
|
||||
|
||||
var typeahead = $('.search input[type="search"]');
|
||||
typeahead.typeahead({
|
||||
source: products.ttAdapter(),
|
||||
messages: {
|
||||
noresults: "{/literal}{__ text='Brak produktów dla wybranych kryteriów' catalogue='stProduct'}{literal}"
|
||||
},
|
||||
viewport: { selector: '#header-navbar', padding: 0 },
|
||||
template: function(suggestions) {
|
||||
var content = '';
|
||||
for (var i = 0; i < suggestions.length; i++) {
|
||||
content += '<li data-url="'+suggestions[i].url+'">'+tpl(suggestions[i])+'</li>';
|
||||
}
|
||||
return content;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
Reference in New Issue
Block a user