From 10c2bb8d13857e913368329843b9ee7fabe846fd Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Mon, 7 Oct 2019 20:26:23 +0200 Subject: [PATCH] more commerce settings --- ...erce_order.materio_order_type.checkout.yml | 97 +++++++++++++++++++ ...r_item.materio_order_item_type.default.yml | 1 + ...e_product.materio_product_type.default.yml | 3 +- ...materio_product_variation_type.default.yml | 18 ++-- ...materio_product_variation_type.summary.yml | 52 ++++++++++ ...tity_view_mode.commerce_order.checkout.yml | 10 ++ .../materio_decoupled.module | 5 + .../custom/materiotheme/assets/dist/main.js | 2 +- .../materiotheme/assets/scripts/main.js | 9 +- 9 files changed, 184 insertions(+), 13 deletions(-) create mode 100644 config/sync/core.entity_view_display.commerce_order.materio_order_type.checkout.yml create mode 100644 config/sync/core.entity_view_display.commerce_product_variation.materio_product_variation_type.summary.yml create mode 100644 config/sync/core.entity_view_mode.commerce_order.checkout.yml diff --git a/config/sync/core.entity_view_display.commerce_order.materio_order_type.checkout.yml b/config/sync/core.entity_view_display.commerce_order.materio_order_type.checkout.yml new file mode 100644 index 0000000..6d8cd5f --- /dev/null +++ b/config/sync/core.entity_view_display.commerce_order.materio_order_type.checkout.yml @@ -0,0 +1,97 @@ +uuid: 5b24d66f-aa58-4c95-bd8e-7989d7f70286 +langcode: en +status: true +dependencies: + config: + - commerce_order.commerce_order_type.materio_order_type + - core.entity_view_mode.commerce_order.checkout + - field.field.commerce_order.materio_order_type.order_items + module: + - commerce_order + - entity_reference_revisions + - state_machine + - user +id: commerce_order.materio_order_type.checkout +targetEntityType: commerce_order +bundle: materio_order_type +mode: checkout +content: + billing_profile: + type: entity_reference_revisions_entity_view + weight: 8 + region: content + label: above + settings: + view_mode: default + link: '' + third_party_settings: { } + completed: + label: above + type: timestamp + weight: 3 + region: content + settings: + date_format: medium + custom_date_format: '' + timezone: '' + third_party_settings: { } + order_items: + type: commerce_order_item_table + weight: 4 + label: above + settings: { } + third_party_settings: { } + region: content + order_number: + type: string + weight: 6 + region: content + label: above + settings: + link_to_entity: false + third_party_settings: { } + placed: + label: above + type: timestamp + weight: 2 + region: content + settings: + date_format: medium + custom_date_format: '' + timezone: '' + third_party_settings: { } + state: + label: hidden + type: state_transition_form + weight: 5 + region: content + settings: { } + third_party_settings: { } + store_id: + type: entity_reference_label + weight: 7 + region: content + label: above + settings: + link: true + third_party_settings: { } + total_price: + label: hidden + type: commerce_order_total_summary + weight: 1 + region: content + settings: { } + third_party_settings: { } + uid: + label: above + type: author + weight: 0 + region: content + settings: { } + third_party_settings: { } +hidden: + changed: true + ip_address: true + mail: true + search_api_excerpt: true + total_paid: true diff --git a/config/sync/core.entity_view_display.commerce_order_item.materio_order_item_type.default.yml b/config/sync/core.entity_view_display.commerce_order_item.materio_order_item_type.default.yml index b7bdffa..866291a 100644 --- a/config/sync/core.entity_view_display.commerce_order_item.materio_order_item_type.default.yml +++ b/config/sync/core.entity_view_display.commerce_order_item.materio_order_item_type.default.yml @@ -16,5 +16,6 @@ hidden: license: true purchased_entity: true quantity: true + search_api_excerpt: true total_price: true unit_price: true diff --git a/config/sync/core.entity_view_display.commerce_product.materio_product_type.default.yml b/config/sync/core.entity_view_display.commerce_product.materio_product_type.default.yml index c2805d2..1679237 100644 --- a/config/sync/core.entity_view_display.commerce_product.materio_product_type.default.yml +++ b/config/sync/core.entity_view_display.commerce_product.materio_product_type.default.yml @@ -18,13 +18,14 @@ content: region: content label: hidden settings: - view_mode: default + view_mode: summary link: false third_party_settings: { } hidden: body: true created: true langcode: true + search_api_excerpt: true stores: true title: true uid: true diff --git a/config/sync/core.entity_view_display.commerce_product_variation.materio_product_variation_type.default.yml b/config/sync/core.entity_view_display.commerce_product_variation.materio_product_variation_type.default.yml index 1e0c2c1..64870f0 100644 --- a/config/sync/core.entity_view_display.commerce_product_variation.materio_product_variation_type.default.yml +++ b/config/sync/core.entity_view_display.commerce_product_variation.materio_product_variation_type.default.yml @@ -23,32 +23,32 @@ bundle: materio_product_variation_type mode: default content: commerce_variation_cart_form: - weight: 3 + weight: 4 region: content settings: { } third_party_settings: { } field_description: - weight: 2 + weight: 1 label: hidden settings: { } third_party_settings: { } type: text_default region: content field_multiple: - weight: 4 - label: above + type: boolean + weight: 3 + region: content + label: hidden settings: format: default - format_custom_false: '' format_custom_true: '' + format_custom_false: '' third_party_settings: { } - type: boolean - region: content price: - label: hidden type: commerce_price_default - weight: 1 + weight: 2 region: content + label: hidden settings: strip_trailing_zeroes: false currency_display: symbol diff --git a/config/sync/core.entity_view_display.commerce_product_variation.materio_product_variation_type.summary.yml b/config/sync/core.entity_view_display.commerce_product_variation.materio_product_variation_type.summary.yml new file mode 100644 index 0000000..e087bb9 --- /dev/null +++ b/config/sync/core.entity_view_display.commerce_product_variation.materio_product_variation_type.summary.yml @@ -0,0 +1,52 @@ +uuid: 33250a3b-359f-4e8d-aff3-1a8685062aae +langcode: en +status: true +dependencies: + config: + - commerce_product.commerce_product_variation_type.materio_product_variation_type + - core.entity_view_mode.commerce_product_variation.summary + - field.field.commerce_product_variation.materio_product_variation_type.billing_schedule + - field.field.commerce_product_variation.materio_product_variation_type.field_description + - field.field.commerce_product_variation.materio_product_variation_type.field_multiple + - field.field.commerce_product_variation.materio_product_variation_type.license_expiration + - field.field.commerce_product_variation.materio_product_variation_type.license_type + - field.field.commerce_product_variation.materio_product_variation_type.subscription_type + module: + - commerce_variation_cart_form + - text +third_party_settings: + commerce_variation_cart_form: + combine: '1' +id: commerce_product_variation.materio_product_variation_type.summary +targetEntityType: commerce_product_variation +bundle: materio_product_variation_type +mode: summary +content: + field_description: + weight: 1 + label: hidden + settings: { } + third_party_settings: { } + type: text_default + region: content + title: + type: string + weight: 0 + region: content + label: hidden + settings: + link_to_entity: true + third_party_settings: { } +hidden: + billing_schedule: true + commerce_variation_cart_form: true + field_multiple: true + langcode: true + license_expiration: true + license_type: true + list_price: true + price: true + product_id: true + search_api_excerpt: true + sku: true + subscription_type: true diff --git a/config/sync/core.entity_view_mode.commerce_order.checkout.yml b/config/sync/core.entity_view_mode.commerce_order.checkout.yml new file mode 100644 index 0000000..d0cb3ac --- /dev/null +++ b/config/sync/core.entity_view_mode.commerce_order.checkout.yml @@ -0,0 +1,10 @@ +uuid: c02324e2-a135-477a-8be1-a8e491b2fa9e +langcode: en +status: true +dependencies: + module: + - commerce_order +id: commerce_order.checkout +label: checkout +targetEntityType: commerce_order +cache: true diff --git a/web/modules/custom/materio_decoupled/materio_decoupled.module b/web/modules/custom/materio_decoupled/materio_decoupled.module index 610cb11..feb5870 100644 --- a/web/modules/custom/materio_decoupled/materio_decoupled.module +++ b/web/modules/custom/materio_decoupled/materio_decoupled.module @@ -30,6 +30,9 @@ function materio_decoupled_help($route_name, RouteMatchInterface $route_match) { */ function materio_decoupled_page_attachments(array &$attachments) { $current_path = \Drupal::service('path.current')->getPath(); + $route_name = \Drupal::routeMatch()->getRouteName(); + // $route_parameters = \Drupal::routeMatch()->getParameters()->all(); + // ksm($route_parameters); $current_language = \Drupal::languageManager()->getCurrentLanguage()->getId(); $is_front = \Drupal::service('path.matcher')->isFrontPage(); @@ -48,8 +51,10 @@ function materio_decoupled_page_attachments(array &$attachments) { } } + // route_parameters:'".json_encode($route_parameters)."',\n $js_str = "var drupalDecoupled = {\n sys_path:'".$current_path."',\n + route_name:'".$route_name."',\n is_front:".($is_front ? 'true':'false').",\n lang_code:'".$current_language."',\n entity_type:'".$entity_type."',\n diff --git a/web/themes/custom/materiotheme/assets/dist/main.js b/web/themes/custom/materiotheme/assets/dist/main.js index ceae621..65b3d25 100644 --- a/web/themes/custom/materiotheme/assets/dist/main.js +++ b/web/themes/custom/materiotheme/assets/dist/main.js @@ -1016,7 +1016,7 @@ eval("var g; // This works in non-strict mode\n\ng = function () {\n return thi /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.js\"));\n\nvar _vueInfiniteLoading = _interopRequireDefault(__webpack_require__(/*! vue-infinite-loading */ \"./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js\"));\n\nvar _store = _interopRequireDefault(__webpack_require__(/*! vuejs/store */ \"./web/themes/custom/materiotheme/vuejs/store/index.js\"));\n\nvar _route = _interopRequireDefault(__webpack_require__(/*! vuejs/route */ \"./web/themes/custom/materiotheme/vuejs/route/index.js\"));\n\nvar _UserBlock = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Block/UserBlock */ \"./web/themes/custom/materiotheme/vuejs/components/Block/UserBlock.vue\"));\n\nvar _MainContent = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/MainContent */ \"./web/themes/custom/materiotheme/vuejs/components/Content/MainContent.vue\"));\n\nvar _SearchBlock = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Block/SearchBlock */ \"./web/themes/custom/materiotheme/vuejs/components/Block/SearchBlock.vue\"));\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n__webpack_require__(/*! theme/assets/styles/main.scss */ \"./web/themes/custom/materiotheme/assets/styles/main.scss\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n_vue.default.use(_vueInfiniteLoading.default, {\n props: {\n spinner: 'spiral' // slots.noMore: ''\n\n } // system: {\n // throttleLimit: 50,\n // /* other settings need to configure */\n // }\n\n});\n\n(function (Drupal, drupalSettings, drupalDecoupled) {\n var MaterioTheme = function MaterioTheme() {\n var _v_sitebranding_block, _v_user_block, _v_header_menu, _v_pagetitle_block, _v_search_block, _v_main_content;\n\n var _is_front = drupalSettings.path.isFront;\n console.log('drupalSettings', drupalSettings); // ___ _ _\n // |_ _|_ _ (_) |_\n // | || ' \\| | _|\n // |___|_||_|_|\\__|\n\n function init() {\n console.log(\"MaterioTheme init()\");\n initVues();\n }\n\n function checkNoVuePages() {\n return drupalDecoupled.sys_path != '/cart' && drupalDecoupled.sys_path.indexOf('checkout') != 1;\n }\n\n function initVues() {\n // only launch views if we are not in commerce pages\n if (checkNoVuePages()) {\n initVRouter();\n initVSiteBrandingBlock();\n initVPagetitleBlock();\n initVUserBlock();\n initVHeaderMenu();\n initVMainContent();\n initVSearchBlock();\n }\n }\n\n function initVRouter() {\n // we need this to update the title and body classes while using history nav\n _route.default.beforeEach(function (to, from, next) {\n var _document$querySelect, _document$querySelect2;\n\n // console.log('router beforeEach to ', to);\n // commit new title to store\n var title = null;\n\n switch (to.name) {\n case 'home':\n title = null;\n break;\n\n case 'article':\n title = false;\n break;\n\n default:\n title = to.name;\n }\n\n if (title !== false) {\n _store.default.commit('Common/setPagetitle', title);\n } // remove all path related body classes\n\n\n var body_classes = document.querySelector('body').classList;\n var classes_to_rm = [];\n\n for (var i = 0; i < body_classes.length; i++) {\n if (body_classes[i].startsWith('path-')) {\n classes_to_rm.push(body_classes[i]);\n }\n }\n\n (_document$querySelect = document.querySelector('body').classList).remove.apply(_document$querySelect, classes_to_rm); // add new path classes to body\n\n\n var classes = [];\n\n if (to.path == '/') {\n classes.push('path-home');\n } else {\n var path_parts = to.path.replace(/^\\//, '').split('/');\n\n for (var i = 0; i < path_parts.length; i++) {\n if (i == 0) {\n var c = \"path-\" + path_parts[i];\n } else if (path_parts[i] !== '') {\n var c = classes[i - 1] + '-' + path_parts[i];\n }\n\n classes.push(c);\n }\n }\n\n (_document$querySelect2 = document.querySelector('body').classList).add.apply(_document$querySelect2, classes); // trigger router\n\n\n next();\n });\n }\n\n function initVSiteBrandingBlock() {\n _v_sitebranding_block = new _vue.default({\n store: _store.default,\n router: _route.default,\n el: '#block-sitebranding',\n methods: {\n onclick: function onclick(event) {\n // console.log(\"Clicked on logo event\", event);\n var href = event.target.getAttribute('href'); // console.log(\"Clicked on logo href\", href);\n\n this.$router.push(href); // replaced by router.beforeEach\n // this.$store.commit('Common/setPagetitle', null)\n }\n }\n });\n }\n\n function initVPagetitleBlock() {\n var $blk = document.querySelector('#block-pagetitle');\n var $h2 = $blk.querySelector('h2'); // get the loaded pagetitle\n\n var title = $h2.innerText; // if not front recorde the loaded pagetitle in store\n\n if (!_is_front) {\n _store.default.commit('Common/setPagetitle', title);\n } // replace in template the pagetitle by vue binding\n\n\n $h2.innerText = '{{ pagetitle }}'; // create the vue\n\n _v_pagetitle_block = new _vue.default({\n store: _store.default,\n router: _route.default,\n el: $blk,\n computed: _objectSpread({}, (0, _vuex.mapState)({\n pagetitle: function pagetitle(state) {\n return state.Common.pagetitle;\n }\n }))\n });\n }\n\n function initVUserBlock() {\n var mount_point = drupalSettings.user.uid !== 0 ? 'block-userblock' : 'block-userlogin';\n var props = {\n title: \"\",\n loginblock: \"\"\n };\n\n switch (mount_point) {\n case 'block-userlogin':\n var $block = document.getElementById(mount_point);\n console.log('initVUserBlock login form html', $block);\n props.loginblock = $block.outerHTML.trim();\n break;\n\n case 'block-userblock':\n default:\n break;\n }\n\n _v_user_block = new _vue.default({\n store: _store.default,\n // computed: {\n // ...mapState({\n // isloggedin: state => state.User.isloggedin\n // })\n // },\n created: function created() {\n // if already loggedin, call store.user to get the user infos\n if (drupalSettings.user.uid !== 0) {\n this.$store.commit('User/setUid', drupalSettings.user.uid);\n this.$store.dispatch('User/getUser');\n }\n },\n render: function render(h) {\n return h(_UserBlock.default, {\n props: props\n });\n }\n }).$mount('#' + mount_point); // console.log('initVUserBlock', _v_user_block);\n }\n\n function initVHeaderMenu() {\n // console.log('initVHeaderMenu');\n // adding vuejs attributes has it wont work on twig template (see menu--header.html.twig)\n // not working : String contains an invalid character\n // document.querySelectorAll(`#block-header a`).forEach(link => {\n // console.log(link);\n // link.setAttribute('@click.prevent', 'onclick')\n // });\n _v_header_menu = new _vue.default({\n store: _store.default,\n router: _route.default,\n el: \"#block-header\",\n methods: {\n onclick: function onclick(event) {\n // console.log(\"Clicked on header menu link\", event);\n var href = event.target.getAttribute('href'); // let title = event.target.innerText;\n // console.log(\"Clicked on header menu link : href\", href);\n\n this.$router.push(href); // replaced by router.beforeEach\n // this.$store.commit('Common/setPagetitle', title)\n }\n }\n });\n }\n\n function initVMainContent() {\n var id = \"main-content\";\n var $main_content = document.querySelector('#' + id); // console.log('main-content', $main_content);\n\n var main_html = $main_content.innerHTML;\n _v_main_content = new _vue.default({\n store: _store.default,\n render: function render(h) {\n return h(_MainContent.default, {\n props: {\n id: id,\n html: main_html,\n isfront: drupalSettings.path.isFront\n }\n });\n }\n }).$mount('#' + id);\n }\n\n function initVSearchBlock() {\n // console.log('initVSearchBlock');\n var id = \"block-materiosapisearchblock\";\n var $search_block = document.getElementById(id);\n var formhtml = null;\n\n if ($search_block) {\n // get the search form html to pass it as template to the vue\n // we gain display speed vs async downloaded data\n formhtml = $search_block.innerHTML;\n } else {\n // else create the empty block to fill it later with async data\n $search_block = document.createElement('div');\n $search_block.setAttribute('id', id); // TODO: get region by REST\n\n var $region = document.getElementById('header-bottom');\n $region.appendChild($search_block);\n } // in any case create the vue\n\n\n _v_search_block = new _vue.default({\n store: _store.default,\n render: function render(h) {\n return h(_SearchBlock.default, {\n props: {\n blockid: id,\n formhtml: formhtml\n }\n });\n }\n }).$mount('#' + id);\n }\n\n init();\n }; // end MaterioTheme()\n\n\n var materiotheme = new MaterioTheme();\n})(Drupal, drupalSettings, drupalDecoupled);\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/assets/scripts/main.js?"); +eval("\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.js\"));\n\nvar _vueInfiniteLoading = _interopRequireDefault(__webpack_require__(/*! vue-infinite-loading */ \"./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js\"));\n\nvar _store = _interopRequireDefault(__webpack_require__(/*! vuejs/store */ \"./web/themes/custom/materiotheme/vuejs/store/index.js\"));\n\nvar _route = _interopRequireDefault(__webpack_require__(/*! vuejs/route */ \"./web/themes/custom/materiotheme/vuejs/route/index.js\"));\n\nvar _UserBlock = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Block/UserBlock */ \"./web/themes/custom/materiotheme/vuejs/components/Block/UserBlock.vue\"));\n\nvar _MainContent = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/MainContent */ \"./web/themes/custom/materiotheme/vuejs/components/Content/MainContent.vue\"));\n\nvar _SearchBlock = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Block/SearchBlock */ \"./web/themes/custom/materiotheme/vuejs/components/Block/SearchBlock.vue\"));\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n__webpack_require__(/*! theme/assets/styles/main.scss */ \"./web/themes/custom/materiotheme/assets/styles/main.scss\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n_vue.default.use(_vueInfiniteLoading.default, {\n props: {\n spinner: 'spiral' // slots.noMore: ''\n\n } // system: {\n // throttleLimit: 50,\n // /* other settings need to configure */\n // }\n\n});\n\n(function (Drupal, drupalSettings, drupalDecoupled) {\n var MaterioTheme = function MaterioTheme() {\n var _v_sitebranding_block, _v_user_block, _v_header_menu, _v_pagetitle_block, _v_search_block, _v_main_content;\n\n var _is_front = drupalSettings.path.isFront;\n console.log('drupalSettings', drupalSettings); // ___ _ _\n // |_ _|_ _ (_) |_\n // | || ' \\| | _|\n // |___|_||_|_|\\__|\n\n function init() {\n console.log(\"MaterioTheme init()\");\n initVues();\n }\n\n function checkNoVuePages() {\n // return drupalDecoupled.sys_path != '/cart'\n // && drupalDecoupled.sys_path.indexOf('checkout') != 1;\n if (drupalDecoupled.route_name.indexOf('commerce') == -1) {\n return true;\n } else {\n return false;\n }\n }\n\n function initVues() {\n // only launch views if we are not in commerce pages\n if (checkNoVuePages()) {\n initVRouter();\n initVSiteBrandingBlock();\n initVPagetitleBlock();\n initVUserBlock();\n initVHeaderMenu();\n initVMainContent();\n initVSearchBlock();\n }\n }\n\n function initVRouter() {\n // we need this to update the title and body classes while using history nav\n _route.default.beforeEach(function (to, from, next) {\n var _document$querySelect, _document$querySelect2;\n\n // console.log('router beforeEach to ', to);\n // commit new title to store\n var title = null;\n\n switch (to.name) {\n case 'home':\n title = null;\n break;\n\n case 'article':\n title = false;\n break;\n\n default:\n title = to.name;\n }\n\n if (title !== false) {\n _store.default.commit('Common/setPagetitle', title);\n } // remove all path related body classes\n\n\n var body_classes = document.querySelector('body').classList;\n var classes_to_rm = [];\n\n for (var i = 0; i < body_classes.length; i++) {\n if (body_classes[i].startsWith('path-')) {\n classes_to_rm.push(body_classes[i]);\n }\n }\n\n (_document$querySelect = document.querySelector('body').classList).remove.apply(_document$querySelect, classes_to_rm); // add new path classes to body\n\n\n var classes = [];\n\n if (to.path == '/') {\n classes.push('path-home');\n } else {\n var path_parts = to.path.replace(/^\\//, '').split('/');\n\n for (var i = 0; i < path_parts.length; i++) {\n if (i == 0) {\n var c = \"path-\" + path_parts[i];\n } else if (path_parts[i] !== '') {\n var c = classes[i - 1] + '-' + path_parts[i];\n }\n\n classes.push(c);\n }\n }\n\n (_document$querySelect2 = document.querySelector('body').classList).add.apply(_document$querySelect2, classes); // trigger router\n\n\n next();\n });\n }\n\n function initVSiteBrandingBlock() {\n _v_sitebranding_block = new _vue.default({\n store: _store.default,\n router: _route.default,\n el: '#block-sitebranding',\n methods: {\n onclick: function onclick(event) {\n // console.log(\"Clicked on logo event\", event);\n var href = event.target.getAttribute('href'); // console.log(\"Clicked on logo href\", href);\n\n this.$router.push(href); // replaced by router.beforeEach\n // this.$store.commit('Common/setPagetitle', null)\n }\n }\n });\n }\n\n function initVPagetitleBlock() {\n var $blk = document.querySelector('#block-pagetitle');\n var $h2 = $blk.querySelector('h2'); // get the loaded pagetitle\n\n var title = $h2.innerText; // if not front recorde the loaded pagetitle in store\n\n if (!_is_front) {\n _store.default.commit('Common/setPagetitle', title);\n } // replace in template the pagetitle by vue binding\n\n\n $h2.innerText = '{{ pagetitle }}'; // create the vue\n\n _v_pagetitle_block = new _vue.default({\n store: _store.default,\n router: _route.default,\n el: $blk,\n computed: _objectSpread({}, (0, _vuex.mapState)({\n pagetitle: function pagetitle(state) {\n return state.Common.pagetitle;\n }\n }))\n });\n }\n\n function initVUserBlock() {\n var mount_point = drupalSettings.user.uid !== 0 ? 'block-userblock' : 'block-userlogin';\n var props = {\n title: \"\",\n loginblock: \"\"\n };\n\n switch (mount_point) {\n case 'block-userlogin':\n var $block = document.getElementById(mount_point);\n console.log('initVUserBlock login form html', $block);\n props.loginblock = $block.outerHTML.trim();\n break;\n\n case 'block-userblock':\n default:\n break;\n }\n\n _v_user_block = new _vue.default({\n store: _store.default,\n // computed: {\n // ...mapState({\n // isloggedin: state => state.User.isloggedin\n // })\n // },\n created: function created() {\n // if already loggedin, call store.user to get the user infos\n if (drupalSettings.user.uid !== 0) {\n this.$store.commit('User/setUid', drupalSettings.user.uid);\n this.$store.dispatch('User/getUser');\n }\n },\n render: function render(h) {\n return h(_UserBlock.default, {\n props: props\n });\n }\n }).$mount('#' + mount_point); // console.log('initVUserBlock', _v_user_block);\n }\n\n function initVHeaderMenu() {\n // console.log('initVHeaderMenu');\n // adding vuejs attributes has it wont work on twig template (see menu--header.html.twig)\n // not working : String contains an invalid character\n // document.querySelectorAll(`#block-header a`).forEach(link => {\n // console.log(link);\n // link.setAttribute('@click.prevent', 'onclick')\n // });\n _v_header_menu = new _vue.default({\n store: _store.default,\n router: _route.default,\n el: \"#block-header\",\n methods: {\n onclick: function onclick(event) {\n // console.log(\"Clicked on header menu link\", event);\n var href = event.target.getAttribute('href'); // let title = event.target.innerText;\n // console.log(\"Clicked on header menu link : href\", href);\n\n this.$router.push(href); // replaced by router.beforeEach\n // this.$store.commit('Common/setPagetitle', title)\n }\n }\n });\n }\n\n function initVMainContent() {\n var id = \"main-content\";\n var $main_content = document.querySelector('#' + id); // console.log('main-content', $main_content);\n\n var main_html = $main_content.innerHTML;\n _v_main_content = new _vue.default({\n store: _store.default,\n render: function render(h) {\n return h(_MainContent.default, {\n props: {\n id: id,\n html: main_html,\n isfront: drupalSettings.path.isFront\n }\n });\n }\n }).$mount('#' + id);\n }\n\n function initVSearchBlock() {\n // console.log('initVSearchBlock');\n var id = \"block-materiosapisearchblock\";\n var $search_block = document.getElementById(id);\n var formhtml = null;\n\n if ($search_block) {\n // get the search form html to pass it as template to the vue\n // we gain display speed vs async downloaded data\n formhtml = $search_block.innerHTML;\n } else {\n // else create the empty block to fill it later with async data\n $search_block = document.createElement('div');\n $search_block.setAttribute('id', id); // TODO: get region by REST\n\n var $region = document.getElementById('header-bottom');\n $region.appendChild($search_block);\n } // in any case create the vue\n\n\n _v_search_block = new _vue.default({\n store: _store.default,\n render: function render(h) {\n return h(_SearchBlock.default, {\n props: {\n blockid: id,\n formhtml: formhtml\n }\n });\n }\n }).$mount('#' + id);\n }\n\n init();\n }; // end MaterioTheme()\n\n\n var materiotheme = new MaterioTheme();\n})(Drupal, drupalSettings, drupalDecoupled);\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/assets/scripts/main.js?"); /***/ }), diff --git a/web/themes/custom/materiotheme/assets/scripts/main.js b/web/themes/custom/materiotheme/assets/scripts/main.js index 1caedda..8cb5440 100644 --- a/web/themes/custom/materiotheme/assets/scripts/main.js +++ b/web/themes/custom/materiotheme/assets/scripts/main.js @@ -46,8 +46,13 @@ import 'theme/assets/styles/main.scss' } function checkNoVuePages(){ - return drupalDecoupled.sys_path != '/cart' - && drupalDecoupled.sys_path.indexOf('checkout') != 1; + // return drupalDecoupled.sys_path != '/cart' + // && drupalDecoupled.sys_path.indexOf('checkout') != 1; + if( drupalDecoupled.route_name.indexOf('commerce') == -1 ){ + return true; + }else{ + return false; + } } function initVues(){