9 Achegas 2c6e2b6230 ... 8b2c26774f

Autor SHA1 Mensaxe Data
  bach 8b2c26774f user_materio user_block cache max-age 0 hai 9 meses
  bach 5c40959059 fixed user logout bug hai 10 meses
  bach 81ab0ccfd7 fixed user logout bug hai 10 meses
  bach b5fc279340 patched pwa for empty <p> in head hai 10 meses
  bach f9c28306e6 updated some contrib modules hai 10 meses
  bach 1096ac5408 updated some contrib modules, pwa themecolor setting hai 10 meses
  bach 7759cc5637 updated some contrib modules hai 10 meses
  bach 8d488a4ef0 updated core hai 10 meses
  bach 0054045a33 updated commerce modules (<p> in header bug fix), patched advancedqueue hai 10 meses

+ 7 - 1
composer.json

@@ -68,6 +68,7 @@
         "drupal/advancedqueue": "^1.1",
         "drupal/allowed_formats": "^3.0",
         "drupal/amswap": "^3.0",
+        "drupal/asset_cache_bust": "^1.0",
         "drupal/audiofield": "^1.10",
         "drupal/auto_entitylabel": "^3.1",
         "drupal/better_messages": "^2.0@alpha",
@@ -113,6 +114,7 @@
         "drupal/jsonapi_extras": "^3.21",
         "drupal/login_history": "^2.0",
         "drupal/login_tracker": "^2.0",
+        "drupal/logout_token": "^1.0",
         "drupal/mailjet": "^4.0",
         "drupal/maillog": "^1.1",
         "drupal/masquerade": "^2.0",
@@ -258,7 +260,8 @@
             },
             "drupal/pwa": {
               "Manifest doesn't have a maskable icon https://www.drupal.org/project/pwa/issues/3165433": "https://www.drupal.org/files/issues/2024-03-10/manifest-doesnt-have-a-maskable-icon-error-3165433-20.patch",
-              "Undefined array key name https://www.drupal.org/project/pwa/issues/3422906": "https://www.drupal.org/files/issues/2024-02-21/pwa-3422906-3.patch"
+              "Undefined array key name https://www.drupal.org/project/pwa/issues/3422906": "https://www.drupal.org/files/issues/2024-02-21/pwa-3422906-3.patch",
+              "The module adds white space at the top of the olivero theme https://www.drupal.org/project/pwa/issues/3427753" : "https://www.drupal.org/files/issues/2024-04-03/pwa-pwa_extras-decode_entities.patch"
             },
             "drupal/toolbar_theme": {
               "Automated Drupal 9 compatibility fixes https://www.drupal.org/project/toolbar_themes/issues/3149099": "https://www.drupal.org/files/issues/2020-06-06/toolbar_themes.1.x-dev.rector.patch"
@@ -280,6 +283,9 @@
             },
             "drupal/term_reference_tree": {
               "Term Reference Tree: Re-implement Track List https://www.drupal.org/project/term_reference_tree/issues/3064280": "https://www.drupal.org/files/issues/2024-08-26/term_reference_tree-3064280_bring_back_tracklist-22.patch"
+            },
+            "drupal/advancedqueue": {
+              "Issue with configuration schema advancedqueue.backend.[id] https://www.drupal.org/project/advancedqueue/issues/3469869": "https://git.drupalcode.org/project/advancedqueue/-/commit/a8864851cdfa40c9e38a3f5f64885baf1937375e.patch"
             }
         },
         "archived-patches": {

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 235 - 180
composer.lock


+ 3 - 0
config/sync/core.entity_form_display.commerce_order.recurring.default.yml

@@ -6,6 +6,7 @@ dependencies:
     - commerce_order.commerce_order_type.recurring
     - field.field.commerce_order.recurring.billing_period
     - field.field.commerce_order.recurring.billing_schedule
+    - field.field.commerce_order.recurring.commerce_recurring_queued
     - field.field.commerce_order.recurring.field_mailjet_campaign_id
   module:
     - commerce_order
@@ -64,6 +65,8 @@ hidden:
   billing_period: true
   billing_schedule: true
   cart: true
+  commerce_recurring_queued: true
+  customer_comments: true
   ip_address: true
   mail: true
   order_number: true

+ 1 - 1
config/sync/core.entity_form_display.workflow_transition.workflow.default.yml

@@ -34,7 +34,7 @@ content:
       autocomplete_route_name: autocomplete_deluxe.autocomplete
       size: 60
       selection_handler: default
-      limit: 10
+      match_limit: 10
       min_length: 0
       delimiter: ''
       not_found_message_allow: false

+ 12 - 2
config/sync/core.entity_view_display.commerce_order.recurring.default.yml

@@ -6,6 +6,7 @@ dependencies:
     - commerce_order.commerce_order_type.recurring
     - field.field.commerce_order.recurring.billing_period
     - field.field.commerce_order.recurring.billing_schedule
+    - field.field.commerce_order.recurring.commerce_recurring_queued
     - field.field.commerce_order.recurring.field_mailjet_campaign_id
   module:
     - commerce_order
@@ -75,13 +76,21 @@ content:
     weight: 3
     region: content
   coupons:
-    label: above
     type: entity_reference_label
+    label: above
     settings:
       link: true
-    region: content
+    third_party_settings: {  }
     weight: 12
+    region: content
+  customer_comments:
+    type: string
+    label: above
+    settings:
+      link_to_entity: false
     third_party_settings: {  }
+    weight: 13
+    region: content
   field_mailjet_campaign_id:
     type: number_integer
     label: above
@@ -156,6 +165,7 @@ content:
 hidden:
   billing_profile: true
   billing_schedule: true
+  commerce_recurring_queued: true
   order_number: true
   search_api_excerpt: true
   store_id: true

+ 12 - 2
config/sync/core.entity_view_display.commerce_order.recurring.user.yml

@@ -7,6 +7,7 @@ dependencies:
     - core.entity_view_mode.commerce_order.user
     - field.field.commerce_order.recurring.billing_period
     - field.field.commerce_order.recurring.billing_schedule
+    - field.field.commerce_order.recurring.commerce_recurring_queued
     - field.field.commerce_order.recurring.field_mailjet_campaign_id
   module:
     - commerce_order
@@ -75,13 +76,21 @@ content:
     weight: 4
     region: content
   coupons:
-    label: above
     type: entity_reference_label
+    label: above
     settings:
       link: true
-    region: content
+    third_party_settings: {  }
     weight: 13
+    region: content
+  customer_comments:
+    type: string
+    label: above
+    settings:
+      link_to_entity: false
     third_party_settings: {  }
+    weight: 14
+    region: content
   mail:
     type: email_mailto
     label: inline
@@ -155,6 +164,7 @@ content:
 hidden:
   balance: true
   billing_schedule: true
+  commerce_recurring_queued: true
   field_mailjet_campaign_id: true
   ip_address: true
   search_api_excerpt: true

+ 1 - 0
config/sync/core.extension.yml

@@ -124,6 +124,7 @@ module:
   locale: 0
   login_history: 0
   login_tracker: 0
+  logout_token: 0
   mailjet: 0
   mailjet_commerce: 0
   mailjet_event: 0

+ 23 - 0
config/sync/field.field.commerce_order.recurring.commerce_recurring_queued.yml

@@ -0,0 +1,23 @@
+uuid: 149949ee-88a4-4807-97b8-ce17ea87fbaf
+langcode: en
+status: true
+dependencies:
+  config:
+    - commerce_order.commerce_order_type.recurring
+    - field.storage.commerce_order.commerce_recurring_queued
+id: commerce_order.recurring.commerce_recurring_queued
+field_name: commerce_recurring_queued
+entity_type: commerce_order
+bundle: recurring
+label: Queued
+description: ''
+required: false
+translatable: false
+default_value:
+  -
+    value: 0
+default_value_callback: ''
+settings:
+  on_label: 'Yes'
+  off_label: 'No'
+field_type: boolean

+ 18 - 0
config/sync/field.storage.commerce_order.commerce_recurring_queued.yml

@@ -0,0 +1,18 @@
+uuid: 69712edc-46a8-4945-aa76-be9d9d77d5c2
+langcode: en
+status: true
+dependencies:
+  module:
+    - commerce_order
+id: commerce_order.commerce_recurring_queued
+field_name: commerce_recurring_queued
+entity_type: commerce_order
+type: boolean
+settings: {  }
+module: core
+locked: true
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false

+ 1 - 0
config/sync/language/fr/pwa.config.yml

@@ -2,3 +2,4 @@ description: "L'inspiration par la matière"
 lang: fr
 start_url: /
 scope: /
+dir: auto

+ 1 - 1
config/sync/pwa.config.yml

@@ -11,7 +11,7 @@ dir: auto
 orientation: portrait
 categories:
   - design
-theme_color: '#ffffff'
+theme_color: '#69cecd'
 background_color: '#ffffff'
 display: standalone
 cross_origin: false

+ 17 - 0
config/sync/ultimate_cron.job.commerce_promotion_cron.yml

@@ -0,0 +1,17 @@
+uuid: 36f7c233-67e6-4847-88e3-327be6752439
+langcode: en
+status: true
+dependencies:
+  module:
+    - commerce_promotion
+title: 'Default cron handler'
+id: commerce_promotion_cron
+weight: 0
+module: commerce_promotion
+callback: commerce_promotion_cron
+scheduler:
+  id: simple
+launcher:
+  id: serial
+logger:
+  id: database

+ 1 - 1
config/sync/views.view.commerce_user_orders.yml

@@ -108,7 +108,7 @@ display:
             alter_text: false
             text: ''
             make_link: true
-            path: 'user/{{ arguments.uid }}/orders/{{ order_id }}'
+            path: 'user/{{ raw_arguments.uid }}/orders/{{ order_id }}'
             absolute: false
             external: false
             replace_spaces: false

+ 7 - 0
web/modules/custom/materio_user/src/Plugin/Block/UserBlock.php

@@ -50,6 +50,11 @@ class UserBlock extends BlockBase   implements ContainerFactoryPluginInterface{
    */
   public function build() {
     $build = [];
+    
+    $build['#cache'] = [
+      'max-age' => 0,
+    ];
+    
     // dpm($this->user);
     if($this->user->id()){
       $user_url = Url::fromRoute('entity.user.canonical', ['user' => $this->user->id()]);
@@ -76,6 +81,8 @@ class UserBlock extends BlockBase   implements ContainerFactoryPluginInterface{
           )
         )
       );
+
+      
     }
     return $build;
   }

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web/themes/custom/materiotheme/assets/dist/main.js


BIN=BIN
web/themes/custom/materiotheme/assets/dist/main.js.gz


+ 8 - 8
web/themes/custom/materiotheme/materiotheme.theme

@@ -151,14 +151,14 @@ function materiotheme_preprocess_html(&$vars) {
   $vars['page']['#attached']['html_head'][] = [$ms, '$ms'];
 
   // <meta name="theme-color" content="#ffffff">
-  $tc = array(
-    '#tag' => 'meta',
-    '#attributes' => array(
-      'name' => 'theme-color',
-      'content' => "#69ccce"
-    ),
-  );
-  $vars['page']['#attached']['html_head'][] = [$tc, '$tc'];
+  // $tc = array(
+  //   '#tag' => 'meta',
+  //   '#attributes' => array(
+  //     'name' => 'theme-color',
+  //     'content' => "#69ccce"
+  //   ),
+  // );
+  // $vars['page']['#attached']['html_head'][] = [$tc, '$tc'];
 
   // <meta http-equiv="pragma" content="no-cache" />
   $pragma = array(

+ 1 - 1
web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue

@@ -13,7 +13,7 @@
       class="mdi mdi-settings"
       title="admin"
     ></a>
-    <a href="/user/logout"
+    <a href="#"
       @click.prevent="onLogout()"
       class="mdi mdi-logout"
       title="logout"

+ 43 - 24
web/themes/custom/materiotheme/vuejs/store/modules/user.js

@@ -41,6 +41,9 @@ export default {
       console.log('SetCsrftoken', token)
       state.csrf_token = token
     },
+    SetLogouttoken (state, token) {
+      state.logout_token = token
+    },
     setToken (state, data) {
       console.log('setToken', data)
       state.uid = data.current_user.uid
@@ -183,10 +186,10 @@ export default {
     },
     userLogin ({ dispatch, commit, state }, credentials) {
       return new Promise((resolve, reject) => {
-        dispatch('getToken', credentials)
+        dispatch('postUserLogin', credentials)
           // TODO: catch failed login
           .then((response) => {
-            console.log('userLogin dispatch getToken response', response)
+            console.log('userLogin dispatch postUserLogin response', response)
 
             if (response.status === 200) {
               commit('setToken', response.data)
@@ -211,18 +214,18 @@ export default {
               })
             } else {
               commit('setLoginMessage', response.data.message)
-              console.warn('Issue with getToken', response)
+              console.warn('Issue with postUserLogin', response)
               console.log('user loggein failed')
               Promise.reject(new Error('user loggein failed'))
             }
           })
           .catch(error => {
-            console.warn('Issue with Dispatch getToken', error)
+            console.warn('Issue with Dispatch postUserLogin', error)
             Promise.reject(error)
           })
       })
     },
-    getToken ({ dispatch, commit, state }, credentials) {
+    postUserLogin ({ dispatch, commit, state }, credentials) {
       return REST.post('/user/login?_format=json',
         credentials,
         {
@@ -237,24 +240,34 @@ export default {
           console.log('csrftoken', data)
           commit('SetCsrftoken', data)
           console.log('state.csrf_token', state.csrf_token)
-          const params = {
-            token: state.csrf_token
-          }
-          REST.get(`/user/${state.uid}?_format=json`, params)
+          // INFO this endpoiunt needs https://www.drupal.org/project/logout_token
+          REST.get('/session/logout/token')
             .then(({ data }) => {
-              console.log('user REST getUser data', data)
-              console.log('roles', data.roles)
-              // with session_limit, only here we are certain that the user is logged
-              commit('setUser', data)
-              if (data.roles) {
-                commit('setRoles', data.roles)
+              console.log('logout_token', data)
+              commit('SetLogouttoken', data)
+              const params = {
+                token: state.csrf_token
               }
-              // console.log('customer_profiles', data.customer_profiles.length)
-              // if (data.customer_profiles.length) {
-              //   dispatch('getUserProfiles', data.customer_profiles[data.customer_profiles.length - 1].target_id)
-              // }
-              dispatch('getUserFlagColls')
-              resolve()
+              REST.get(`/user/${state.uid}?_format=json`, params)
+                .then(({ data }) => {
+                  console.log('user REST getUser data', data)
+                  console.log('roles', data.roles)
+                  // with session_limit, only here we are certain that the user is logged
+                  commit('setUser', data)
+                  if (data.roles) {
+                    commit('setRoles', data.roles)
+                  }
+                  // console.log('customer_profiles', data.customer_profiles.length)
+                  // if (data.customer_profiles.length) {
+                  //   dispatch('getUserProfiles', data.customer_profiles[data.customer_profiles.length - 1].target_id)
+                  // }
+                  dispatch('getUserFlagColls')
+                  resolve()
+                })
+                .catch(error => {
+                  console.warn('Issue with getUser', error)
+                  Promise.reject(error)
+                })
             })
             .catch(error => {
               console.warn('Issue with getUser', error)
@@ -424,10 +437,16 @@ export default {
       commit('closeFlagColl')
     },
     userLogout ({ commit, state }) {
-      const credentials = qs.stringify({
-        token: state.csrf_token
+      const params = qs.stringify({
+        // format: 'json'
+        // token: state.logout_token
       })
-      REST.post('/user/logout', credentials)
+      const config = {
+        headers: {
+          'X-CSRF-Token': state.csrf_token
+        }
+      }
+      REST.post('/user/logout?format=json&token=' + state.logout_token, params, config)
         .then(resp => {
           console.log('userLogout resp', resp)
           commit('setLoggedOut')

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio