From 75b003da2fe913d17141108f2a3416c3c8e68840 Mon Sep 17 00:00:00 2001 From: thibault Date: Fri, 8 Nov 2019 18:31:14 +0100 Subject: [PATCH 1/4] [IMP] Add address's access support --- app/assets/stylesheets/components/_card.scss | 39 +++++++++++ .../pages/account/account_address.liquid | 56 ++++++++++----- .../pages/account/account_address_form.liquid | 69 +++++++++++++++---- .../pages/account/account_profile.liquid | 31 +++++++-- app/views/snippets/address_form.liquid | 60 +++++++++------- app/views/snippets/form_m2o_field.liquid | 17 +++++ config/translations.yml | 12 ++++ 7 files changed, 226 insertions(+), 58 deletions(-) create mode 100644 app/assets/stylesheets/components/_card.scss create mode 100644 app/views/snippets/form_m2o_field.liquid diff --git a/app/assets/stylesheets/components/_card.scss b/app/assets/stylesheets/components/_card.scss new file mode 100644 index 0000000..0168d41 --- /dev/null +++ b/app/assets/stylesheets/components/_card.scss @@ -0,0 +1,39 @@ +.card { + .card-disabled-message { + display: none; + } + &.card-disabled { + position: relative; + .card-disabled-message { + background-color: theme-color('danger'); + border-radius: $border-radius; + color: $white; + display: block; + font-weight: bold; + font-size: .7rem; + left: 50%; + opacity: .7; + padding: .3rem; + padding-left: 1rem; + padding-right: 1rem; + position: absolute; + text-align: center; + text-transform: uppercase; + bottom: -.5rem; + transform: translate(-50%, -50%); + z-index: 11; + } + &:after { + $strip-color-1: transparentize(theme-color('danger'), .7); + $strip-color-2: transparentize(theme-color('danger'), .8); + background-image: repeating-linear-gradient(45deg, $strip-color-1, $strip-color-1 30px, $strip-color-2 30px, $strip-color-2 60px); + content: ' '; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 10; + } + } +} diff --git a/app/views/pages/account/account_address.liquid b/app/views/pages/account/account_address.liquid index 6709470..d5731ef 100755 --- a/app/views/pages/account/account_address.liquid +++ b/app/views/pages/account/account_address.liquid @@ -17,18 +17,29 @@ slug: addresses

{{'account_address_lists' | translate }}

+ {% if store.customer.permission.address.create == true %}
+ {% endif %}
{% with_scope address_type: "address"%}
- {% for address in store.addresses%} -
-
+ {% for address in store.addresses %} + {% assign address_css = "" %} + {% if address.enabled != true %} + {% assign address_css = "card-disabled" %} + {% endif %} +
+
+ {% if address.enabled != true %} +
+ {{ 'account_address_disabled' | translate }} +
+ {% endif %}
@@ -39,21 +50,27 @@ slug: addresses {{address.name}}
-
-
- - -
-
- - - -
-
+ {% if address.enabled %} +
+ {% if address.access.update %} +
+ + +
+ {% endif %} + {% if address.access.delete %} +
+ + + +
+ {% endif %} +
+ {% endif %}
@@ -69,6 +86,9 @@ slug: addresses
{{address.country.name}}
+
+ {{address.phone}} +
diff --git a/app/views/pages/account/account_address_form.liquid b/app/views/pages/account/account_address_form.liquid index e80ad0c..3631b60 100755 --- a/app/views/pages/account/account_address_form.liquid +++ b/app/views/pages/account/account_address_form.liquid @@ -7,13 +7,26 @@ seo_title: Update my address | Shopinvader demo {% extends 'layouts/account '%} {% block 'body/content/tabcontent' %} -{% assign form_action = '/invader/addresses/create' %} + +{% assign disabled = true %} {% if params.item_id %} - {% with_scope id: params.item_id %} + {% assign item_id = params.item_id | round %} + {% with_scope id: item_id %} {% assign address = store.addresses.first %} - - {% assign form_action = '/invader/addresses/' | append: address.id | append: "/update" %} + {% if address.enabled and address.access.update %} + {% assign form_action = '/invader/addresses/' | append: address.id | append: "/update" %} + {% assign disabled = false %} + {% else %} + {% assign error_msg = 'account_address_no_update' | translate %} + {% endif %} {% endwith_scope%} +{% else %} + {% if store.customer.permission.address.create == true%} + {% assign form_action = '/invader/addresses/create' %} + {% assign disabled = false %} + {% else %} + {% assign error_msg = 'account_address_no_create' | translate %} + {% endif %} {% endif %}
@@ -22,19 +35,49 @@ seo_title: Update my address | Shopinvader demo {{'account_address_update' | translate }}
-
- - - {% include 'address_form' with address, with_require: true %} + {% if disabled == true %}
-
- {{'account_address_cancel' | translate}} +
+
+ + {{error_msg}} +
-
- +
+ {% if address %} + {% include 'address_form' with + address, + disabled: true + %} + {% endif %} + - + {% else %} +
+ + + {% include 'address_form' with + address, + with_require: true, + disabled: false + %} + +
+ {% endif %}
diff --git a/app/views/pages/account/account_profile.liquid b/app/views/pages/account/account_profile.liquid index a8e3000..6c595f1 100755 --- a/app/views/pages/account/account_profile.liquid +++ b/app/views/pages/account/account_profile.liquid @@ -11,20 +11,43 @@ seo_title: My account profile | Shopinvader demo
{% with_scope address_type: "profile"%} {% assign profile = store.addresses.first %} + {% assign disabled = true %} + {% if profile.access.update %} + {% assign disabled = false %} + {% endif %}

{{'account_profil_title' | translate}}

+ {% if disabled == true %} +
+
+
+ + {{ 'account_address_no_update' | translate }} +
+
+
+ {% include 'address_form' with + address: profile, + disabled: true + %} + {% else %}
- {% include 'address_form' with address: profile %} -
- -
+ {% include 'address_form' with + address: profile + %} + {% if profile.access.update %} +
+ +
+ {% endif %}
+ {% endif %}
{% endwith_scope%} diff --git a/app/views/snippets/address_form.liquid b/app/views/snippets/address_form.liquid index 4e02a91..13c342a 100755 --- a/app/views/snippets/address_form.liquid +++ b/app/views/snippets/address_form.liquid @@ -26,21 +26,29 @@ } {% endaction %} +{% if disabled %} + {% assign field_disabled = "disabled='disabled'" %} +{% endif %} +
- -
-
-
- - + {% if address.id != null %} + + {% endif %} + {% if hide_name != true %} +
+
+
+ + +
-
+ {% endif %}
- +
@@ -48,7 +56,7 @@
- +
@@ -56,32 +64,38 @@
- +
- +
- - + + {% include 'form_m2o_field' with + values: store.available_countries, + value: address.country.id, + field_name: 'country[id]', + field_id: 'country_id', + label: 'partner_country' | translate + disabled + %}
-
-
- - + {% if hide_phone != true %} +
+
+ + +
-
- + {% endif %}
{% endblock %} diff --git a/app/views/snippets/form_m2o_field.liquid b/app/views/snippets/form_m2o_field.liquid new file mode 100644 index 0000000..69a917f --- /dev/null +++ b/app/views/snippets/form_m2o_field.liquid @@ -0,0 +1,17 @@ +{% if values != null and values.size > 0 %} + {% if field_id == null %} + {% assign field_id = field_name %} + {% endif %} + {% if disabled == true %} + {% assign field_disabled = "disabled='disabled'" %} + {% endif %} + +{% endif %} diff --git a/config/translations.yml b/config/translations.yml index 2860fb7..7aeea5b 100755 --- a/config/translations.yml +++ b/config/translations.yml @@ -115,6 +115,18 @@ account_profil_title: account_address_lists: en: My addresses fr: Mes adresses +account_address_disabled: + en: This address is not activated yet + fr: Cette adresse n'est pas encore activée +account_address_no_update: + en: You can not edit this address + fr: Vous ne pouvez pas modifier cette adresse +account_address_no_create: + en: You can not create a new address + fr: Vous ne pouvez pas créer une nouvelle adresse +account_user_disabled: + en: Your account is not activated. You can not use it now. Please disconnect to continue. + fr: Votre compte n'est pas activé. Vous ne pouvez pas l'utiliser maintenant. Veuillez vous déconnecter pour continuer. account_password_reset: en: Reset my password fr: Réinitialiser mon mot de passe From 6f7c3fc1e8d81b5591d702fc741c4c2403cb36e6 Mon Sep 17 00:00:00 2001 From: thibault Date: Fri, 8 Nov 2019 18:37:24 +0100 Subject: [PATCH 2/4] [IMP] Add support of Address's access attribute on Cart address page --- app/views/sections/cart_address.liquid | 246 +++++++++++++++---------- 1 file changed, 145 insertions(+), 101 deletions(-) diff --git a/app/views/sections/cart_address.liquid b/app/views/sections/cart_address.liquid index acbd3a9..77b3a69 100644 --- a/app/views/sections/cart_address.liquid +++ b/app/views/sections/cart_address.liquid @@ -20,39 +20,76 @@ blocks: []
{% if params.item_id %} - {% assign form_action = '/invader/addresses/create' %} - {% if params.item_id and params.item_id != ''%} - {% with_scope id: params.item_id %} + {% assign disabled = true %} + {% assign item_id = params.item_id | round %} + + {% if item_id != null %} + {% with_scope id: item_id %} {% assign address = store.addresses.first %} - {% assign form_action = '/invader/addresses/' | append: address.id | append: "/update" %} + {% if address.enabled and address.access.update %} + {% assign form_action = '/invader/addresses/' | append: address.id | append: "/update" %} + {% assign disabled = false %} + {% else %} + {% assign error_msg = 'account_address_no_update' | translate %} + {% endif %} {% endwith_scope%} + {% else %} + {% if store.customer.permission.address.create %} + {% assign form_action = '/invader/addresses/create' %} + {% assign disabled = false %} + {% else %} + {% assign error_msg = 'account_address_no_create' | translate %} + {% endif %} {% endif %} -
- - + {% if disabled %}
- -
-
- {% include "address_form" with address, with_require: true %} + {% else %} + + + + -
-
-
- - {{'btn_back' | translate }} - +
+
+ {% include "address_form" with + address, + with_require: true + disabled: true + %} +
-
- +
+ +
+ +
-
- + + {% endif %} {% else %} {% assign selected_address = store.cart.shipping.address %} {% if selected_address == null %} @@ -64,12 +101,13 @@ blocks: [] {{'cart_shipping_address' | translate }}
- + {% if store.customer.permission.address.create %} + + {% endif %}
@@ -77,25 +115,43 @@ blocks: [] {%for address in store.addresses %} - -
@@ -140,73 +196,60 @@ blocks: [] {%for address in store.addresses %} - - -