Browse Source

#1906 fixed search multi keys (ajax query params miswrited qs.stringify arrayFormat)

bach 1 year ago
parent
commit
1565ce8aa2

+ 25 - 6
web/modules/custom/materio_sapi/src/Controller/Base.php

@@ -43,8 +43,19 @@ class Base extends ControllerBase {
       'uuids' => [],
       'nids' => []
     ];
-
-    // PHRASE QUERY 
+                                                                               
+                                                                               
+                                                                               
+                                                                               
+                                                                               
+                                                                               
+                                                                               
+                                                                  
+    // ,---.|                            ,---.                    
+    // |---'|---.,---.,---.,---.,---.    |   |.   .,---.,---.,   .
+    // |    |   ||    ,---|`---.|---'    |   ||   ||---'|    |   |
+    // `    `   '`    `---^`---'`---'    `---\`---'`---'`    `---|
+    //                                                       `---'
     // (to match exact materials names (like "wood-skin"))
     $this->phrase_query = $this->index->query(['offset'=>0,'limit'=>10000]);
     // set parse mode and conjunction
@@ -82,7 +93,12 @@ class Base extends ControllerBase {
     }
 
 
-    // AND QUERY
+                                                    
+    // ,---.         |    ,---.                    
+    // |---|,---.,---|    |   |.   .,---.,---.,   .
+    // |   ||   ||   |    |   ||   ||---'|    |   |
+    // `   '`   '`---'    `---\`---'`---'`    `---|
+    //                                       `---'
     $this->and_query = $this->index->query(['offset'=>0,'limit'=>10000]);
     // set parse mode and conjunction
     $parse_mode = \Drupal::service('plugin.manager.search_api.parse_mode')
@@ -191,9 +207,12 @@ class Base extends ControllerBase {
     $this->exactematch_count = count($this->results['nids']);
 
 
-    // 
-    // OR QUERY
-    // 
+                                              
+    // ,---.         ,---.                    
+    // |   |,---.    |   |.   .,---.,---.,   .
+    // |   ||        |   ||   ||---'|    |   |
+    // `---'`        `---\`---'`---'`    `---|
+    //                                   `---'
     $this->or_query = $this->index->query(['offset'=>0,'limit'=>10000]);
 
     // Change the parse mode for the search.

File diff suppressed because it is too large
+ 0 - 0
web/themes/custom/materiotheme/assets/dist/main.js


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


+ 4 - 1
web/themes/custom/materiotheme/vuejs/store/modules/search.js

@@ -135,7 +135,7 @@ export default {
     },
     getResults ({ dispatch, commit, state }) {
       const params = {
-        keys: state.keys,
+        keys: state.keys.join(', '),
         terms: JSON.stringify(state.terms),
         offset: state.offset,
         limit: state.limit
@@ -147,6 +147,9 @@ export default {
       }
       // console.log('Search getResults params', params)
       const q = qs.stringify(params)
+      // * Qs.Stringify () Arrayformat: 'Repeat' : https://programmerall.com/article/31901061156/
+      // const q = qs.stringify(params, { arrayFormat: 'comma', encode: false })
+      // * arrayFormat is not working, made state.keys.join(', ') instead
       return MA.get('/materio_sapi/getresults?' + q)
         .then(({ data }) => {
           console.log('search MA getresults data', data, state.terms)

Some files were not shown because too many files changed in this diff