124 lines
4.3 KiB
HTML
124 lines
4.3 KiB
HTML
{% macro product_image_square(website_image, css_class="") %}
|
|
<div class="product-image product-image-square
|
|
{% if not website_image -%} missing-image {%- endif %} {{ css_class }}"
|
|
{% if website_image -%}
|
|
style="background-image: url('{{ frappe.utils.quoted(website_image) | abs_url }}');"
|
|
{%- endif %}>
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% macro product_image(website_image, css_class="product-image", alt="") %}
|
|
<div class="border text-center rounded {{ css_class }}" style="overflow: hidden;">
|
|
<img itemprop="image" class="website-image h-100 w-100" alt="{{ alt }}" src="{{ frappe.utils.quoted(website_image or 'no-image.jpg') | abs_url }}">
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% macro media_image(website_image, name, css_class="") %}
|
|
<div class="product-image sidebar-image-wrapper {{ css_class }}">
|
|
{% if not website_image -%}
|
|
<div class="sidebar-standard-image"> <div class="standard-image" style="background-color: rgb(250, 251, 252);">{{name}}</div> </div>
|
|
{%- endif %}
|
|
{% if website_image -%}
|
|
<a href="{{ frappe.utils.quoted(website_image) }}">
|
|
<img itemprop="image" src="{{ frappe.utils.quoted(website_image) | abs_url }}"
|
|
class="img-responsive img-thumbnail sidebar-image" style="min-height:100%; min-width:100%;">
|
|
</a>
|
|
{%- endif %}
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% macro render_homepage_section(section) %}
|
|
|
|
{% if section.section_based_on == 'Custom HTML' and section.section_html %}
|
|
{{ section.section_html }}
|
|
{% elif section.section_based_on == 'Cards' %}
|
|
<section class="container my-5">
|
|
<h3>{{ section.name }}</h3>
|
|
|
|
<div class="row">
|
|
{% for card in section.section_cards %}
|
|
<div class="col-md-{{ section.column_value }} mb-4">
|
|
<div class="card h-100 justify-content-between">
|
|
{% if card.image %}
|
|
<div class="website-image-lazy" data-class="card-img-top h-75" data-src="{{ card.image }}" data-alt="{{ card.title }}"></div>
|
|
{% endif %}
|
|
<div class="card-body">
|
|
<h5 class="card-title">{{ card.title }}</h5>
|
|
<p class="card-subtitle mb-2 text-muted">{{ card.subtitle or '' }}</p>
|
|
<p class="card-text">{{ card.content or '' | truncate(140, True) }}</p>
|
|
</div>
|
|
<div class="card-body flex-grow-0">
|
|
<a href="{{ card.route }}" class="card-link">{{ _('More details') }}</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</section>
|
|
{% endif %}
|
|
|
|
{% endmacro %}
|
|
|
|
{%- macro item_card(title, image, url, description, rate, category, is_featured=False, is_full_width=False, align="Left") -%}
|
|
{%- set align_items_class = resolve_class({
|
|
'align-items-end': align == 'Right',
|
|
'align-items-center': align == 'Center',
|
|
'align-items-start': align == 'Left',
|
|
}) -%}
|
|
{%- set col_size = 3 if is_full_width else 4 -%}
|
|
{% if is_featured %}
|
|
<div class="col-sm-{{ col_size*2 }} item-card">
|
|
<div class="card featured-item {{ align_items_class }}">
|
|
{% if image %}
|
|
<div class="row no-gutters">
|
|
<div class="col-md-6">
|
|
<img class="card-img" src="{{ image }}" alt="{{ title }}">
|
|
</div>
|
|
<div class="col-md-6">
|
|
{{ item_card_body(title, description, url, rate, category, is_featured, align) }}
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="col-md-12">
|
|
{{ item_card_body(title, description, url, rate, category, is_featured, align) }}
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="col-sm-{{ col_size }} item-card">
|
|
<div class="card {{ align_items_class }}">
|
|
{% if image %}
|
|
<div class="card-img-container">
|
|
<img class="card-img" src="{{ image }}" alt="{{ title }}">
|
|
</div>
|
|
{% else %}
|
|
<div class="card-img-top no-image">
|
|
{{ frappe.utils.get_abbr(title) }}
|
|
</div>
|
|
{% endif %}
|
|
{{ item_card_body(title, description, url, rate, category, is_featured, align) }}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{%- endmacro -%}
|
|
|
|
{%- macro item_card_body(title, description, url, rate, category, is_featured, align) -%}
|
|
{%- set align_class = resolve_class({
|
|
'text-right': align == 'Right',
|
|
'text-center': align == 'Center' and not is_featured,
|
|
'text-left': align == 'Left' or is_featured,
|
|
}) -%}
|
|
<div class="card-body {{ align_class }}">
|
|
<div class="product-title">{{ title or '' }}</div>
|
|
{% if is_featured %}
|
|
<div class="product-price">{{ rate or '' }}</div>
|
|
<div class="product-description ellipsis">{{ description or '' }}</div>
|
|
{% else %}
|
|
<div class="product-category">{{ category or '' }}</div>
|
|
<div class="product-price">{{ rate or '' }}</div>
|
|
{% endif %}
|
|
</div>
|
|
<a href="/{{ url or '#' }}" class="stretched-link"></a>
|
|
{%- endmacro -%}
|