Skip to content

Commit 4ff2c8f

Browse files
committed
OP-551: (WIP) Hookable templates
1 parent 8e19d98 commit 4ff2c8f

File tree

12 files changed

+181
-158
lines changed

12 files changed

+181
-158
lines changed

src/Resources/views/Common/_removeFromWishlist.html.twig

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/Resources/views/WishlistDetails/index/content/body/_globalActions.html.twig

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/Resources/views/WishlistDetails/index/content/body/_item.html.twig

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/Resources/views/WishlistDetails/index/content/body/form.html.twig

Lines changed: 0 additions & 41 deletions
This file was deleted.

src/Resources/views/WishlistDetails/index/content/body.html.twig renamed to src/Resources/views/WishlistDetails/index/content/form.html.twig

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,6 @@
33
{% set wishlist = hookable_metadata.context.wishlist %}
44
{% set form = hookable_metadata.context.form %}
55

6-
{% if sylius.channel is not null %}
7-
{% set wishlists = findAllByAnonymousAndChannel(sylius.channel) %}
8-
{% else %}
9-
{% set wishlists = findAllByAnonymous() %}
10-
{% endif %}
11-
12-
{% if wishlists|length > 1 %}
13-
{% else %}
14-
<div class="middle aligned column">
15-
<button id="create_new_wishlist_button" class="ui right floated primary button"
16-
data-bb-wishlist-add="add-another-wishlist"
17-
data-bb-wishlist-add-url="{{ path('bitbag_sylius_wishlist_plugin_shop_locale_wishlist_create_new_wishlist') }}"
18-
data-bb-wishlist-add-title="{{ 'bitbag_sylius_wishlist_plugin.ui.wishlist_modal_add_title'|trans }}"
19-
data-bb-wishlist-add-perform="{{ 'bitbag_sylius_wishlist_plugin.ui.wishlist_modal_add_perform'|trans }}"
20-
data-bb-wishlist-add-cancel="{{ 'bitbag_sylius_wishlist_plugin.ui.wishlist_modal_add_cancel'|trans }}"
21-
data-bb-wishlist-add-error="{{ 'bitbag_sylius_wishlist_plugin.ui.wishlist_modal_add_error'|trans }}"
22-
>
23-
{{ 'bitbag_sylius_wishlist_plugin.ui.add_another_wishlist'|trans }}
24-
</button>
25-
<input type="hidden" data-bb-csrf="{{ csrf_token('some-name') }}"/>
26-
</div>
27-
{% endif %}
28-
<div class="ui hidden divider"></div>
29-
306
{% if wishlist.wishlistProducts.count > 0 %}
317
<div class="middle aligned column">
328
<a href="{{ path('bitbag_sylius_wishlist_plugin_shop_locale_wishlist_clean', {'wishlistId': wishlist.id}) }}" class="bitbag-clean-wishlist">
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{% set wishlist = hookable_metadata.context.wishlist %}
2+
{% set form = hookable_metadata.context.form %}
3+
4+
{% form_theme form '@SyliusShop/form/theme.html.twig' %}
5+
6+
{{ form_start(form, { attr: { class: 'bb-wishlist ui form', id: "wishlist_form" } }) }}
7+
8+
<div class="ui stackable" id="wishlist">
9+
{% hook 'sections' with { form, wishlist } %}
10+
11+
<input type="hidden" data-bb-csrf="{{ csrf_token('some-name') }}"/>
12+
</div>
13+
14+
{{ form_row(form._token) }}
15+
{{ form_end(form, {'render_rest': false} ) }}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{% set wishlist = hookable_metadata.context.wishlist %}
2+
{% set form = hookable_metadata.context.form %}
3+
4+
<div class="bb-wishlist-actions">
5+
{% hook 'actions' with { form, wishlist } %}
6+
</div>

src/Resources/views/WishlistDetails/index/content/body/_collectiveActions.html.twig renamed to src/Resources/views/WishlistDetails/index/content/form/sections/actions/collectiveActions.html.twig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
{% set wishlist = hookable_metadata.context.wishlist %}
2+
13
{% if app.user %}
24
{% set wishlists = findAllByShopUserAndToken(app.user) %}
35
{% else %}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{% set form = hookable_metadata.context.form %}
2+
{% set wishlist = hookable_metadata.context.wishlist %}
3+
4+
<a href="{{ path('bitbag_sylius_wishlist_plugin_shop_locale_wishlist_import_from_csv') }}">
5+
<button type="button" class="bb-wishlist-actions-import-button ui secondary button" {{ sylius_test_html_attribute('wishlist-import-from-csv') }}>
6+
<i class="cart icon"></i>
7+
{{ 'bitbag_sylius_wishlist_plugin.ui.import_from_csv'|trans }}
8+
</button>
9+
</a>
10+
11+
<button
12+
id="{{ form.addAll.vars.id }}"
13+
name="{{ form.addAll.vars.full_name }}"
14+
class="ui primary button right floated"
15+
data-bb-toggle="wishlist-add-all"
16+
{{ sylius_test_html_attribute('wishlist-add-all-to-cart') }}
17+
formaction="{{ path('bitbag_sylius_wishlist_plugin_shop_locale_wishlist_add_products', { wishlistId: wishlist.id }) }}"
18+
>
19+
<i class="heart icon"></i>
20+
{{ form.addAll.vars.label|trans }}
21+
</button>
22+
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
{% import "@SyliusShop/shared/macro/money.html.twig" as money %}
2+
3+
{% set wishlist = hookable_metadata.context.wishlist %}
4+
{% set form = hookable_metadata.context.form %}
5+
6+
<div class="bb-wishlist-item">
7+
<div class="bb-wishlist-item-select">
8+
<input type="checkbox" id="toggle-checkboxes" class="form-check-input">
9+
</div>
10+
<div class="bb-wishlist-item-image">
11+
<span>{{ 'sylius.ui.item'|trans }}</span>
12+
</div>
13+
<div class="bb-wishlist-item-price">
14+
<span>{{ 'sylius.ui.unit_price'|trans }}</span>
15+
</div>
16+
<div class="bb-wishlist-item-quantity">
17+
<span>{{ 'sylius.ui.qty'|trans }}</span>
18+
</div>
19+
<div class="bb-wishlist-item-actions">
20+
<span>{{ 'sylius.ui.actions'|trans }}</span>
21+
</div>
22+
</div>
23+
24+
{% for item in form.items %}
25+
{% set variant = item.vars.value.wishlistProduct.variant %}
26+
{% set product = variant.product %}
27+
{% set productUrl = path('sylius_shop_product_show', { slug: product.slug, _locale: product.translation.locale }) %}
28+
{% set itemId = "wishlist_item_#{ variant.id }_#{ product.id }" %}
29+
30+
<div id="{{ itemId }}" class="bb-wishlist-item">
31+
32+
<div class="bb-wishlist-item-select" data-bb-checkboxes="checkboxes-update-when-main">
33+
{{ form_widget(item.selected, { id: product.name }) }}
34+
</div>
35+
36+
<div class="bb-wishlist-item-image">
37+
{{ component('sylius_shop:main_image', {
38+
product: variant.hasImages ? variant : product,
39+
class: "w-100 h-100 object-fit-cover",
40+
filter: 'sylius_shop_product_small_thumbnail'
41+
}) }}
42+
</div>
43+
44+
<div class="bb-wishlist-item-name">
45+
<a href="{{ productUrl }}" {{ sylius_test_html_attribute('wishlist-item-name') }}>
46+
{{ product.name }}
47+
</a>
48+
</div>
49+
50+
<div class="bb-wishlist-item-variant">
51+
{% if item.cartItem.cartItem.variant is defined %}
52+
<div class="bb-wishlist-variant">
53+
{% for child in item.cartItem.cartItem.variant.children %}
54+
<div class="bb-wishlist-variant-option">
55+
{{ form_label(child, null, { label_attr: { class: 'bb-wishlist-variant-label'} } ) }}
56+
{{ form_widget(child, { attr: { class: 'bb-wishlist-variant-select', 'data-name': child.vars.name } } ) }}
57+
</div>
58+
{% endfor %}
59+
</div>
60+
{% endif %}
61+
</div>
62+
63+
<div class="bb-wishlist-item-price">
64+
{% if not product.variants.empty() %}
65+
<b>
66+
{{ money.calculatePrice(variant) }}
67+
</b>
68+
{% endif %}
69+
</div>
70+
71+
<div class="bb-wishlist-item-quantity" {{ sylius_test_html_attribute('wishlist-item-quantity') }}>
72+
{{ form_widget(item.cartItem.cartItem.quantity, {
73+
'attr': {
74+
'min': 0,
75+
'data-product-name': product.name,
76+
'value': item.cartItem.cartItem.quantity.vars.value is same as("0") ? 1 : item.cartItem.cartItem.quantity.vars.value
77+
}
78+
}) }}
79+
</div>
80+
81+
<div class="bb-wishlist-item-actions">
82+
<a
83+
href="{{ path('bitbag_sylius_wishlist_plugin_shop_locale_wishlist_remove_product_variant', { wishlistId: wishlist.id, variantId: variant.id }) }}"
84+
class="btn btn-icon btn-transparent"
85+
data-product-name="{{ product.name }}"
86+
data-tooltip="{{ 'bitbag_sylius_wishlist_plugin.ui.remove_from_wishlist'|trans }}"
87+
{{ sylius_test_html_attribute('wishlist-remove-item') }}
88+
>
89+
{{ ux_icon('mdi:remove') }}
90+
</a>
91+
</div>
92+
</div>
93+
<input type="hidden" name="wishlist_collection[items][{{ loop.index - 1 }}][variant]" value="{{ item.vars.data.wishlistProduct.variant.id }}"/>
94+
{% endfor %}

0 commit comments

Comments
 (0)