From 55224926d9285467ada120b404bcca40dc757c34 Mon Sep 17 00:00:00 2001
From: sidharth <sidhj01@gmail.com>
Date: Fri, 21 Jan 2022 17:33:32 +0530
Subject: [PATCH 1/2] debounce with product search

---
 git_info.json                          |   2 +-
 public/index.html                      |  12 +--
 src/routes/retailer/cart_products.vue  |  81 +++++++++---------
 src/stores/retailer/catalog_browser.js | 113 +++++++++++++------------
 4 files changed, 104 insertions(+), 104 deletions(-)

diff --git a/git_info.json b/git_info.json
index a929f9a..c18e197 100644
--- a/git_info.json
+++ b/git_info.json
@@ -1 +1 @@
-{"branch_name":"beta","last_commit_date":"2022-01-20T09:20:12.000Z","last_commit_author":"rakesh","last_commit_hash":"aecadf3107a47299cdc79a7ea795e944f95452fd"}
\ No newline at end of file
+{"branch_name":"beta","last_commit_date":"2022-01-20T09:38:46.000Z","last_commit_author":"rakesh","last_commit_hash":"ad63d7d012c005f4fd033a9432f7feb1494fbf8e"}
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
index 26a3d0e..49859d7 100644
--- a/public/index.html
+++ b/public/index.html
@@ -39,7 +39,7 @@
     <!-- built files will be auto injected -->
 
     <!-- Listrak Analytics – Javascript Framework -->
-    <script type="text/javascript">
+    <!-- <script type="text/javascript">
         var biJsHost = (("https:" == document.location.protocol) ? "https://" : "http://");
         (function (d, s, id, tid, vid) {
             var js, ljs = d.getElementsByTagName(s)[0];
@@ -49,9 +49,9 @@
             js.src = biJsHost + "cdn.listrakbi.com/scripts/script.js?m=" + tid + "&v=" + vid;
             ljs.parentNode.insertBefore(js, ljs);
         })(document, 'script', 'ltkSDK', 'yJ3fjhPTdCKx', '1');
-    </script>
+    </script> -->
     <!--START Pepperjam CODE-->
-    <script>
+    <!-- <script>
         (function () {
             var a = document.createElement("script");
             a.type = "text/javascript", a.async = !0, a.src = "//container.pepperjam.com/4135755510.js";
@@ -62,10 +62,10 @@
                 b.parentNode.insertBefore(a, b)
             }
         })();
-    </script>
+    </script> -->
     <!--END Pepperjam CODE-->
     <!-- Criteo Homepage Tag -->
-    <script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
+    <!-- <script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
     <script type="text/javascript">
         window.criteo_q = window.criteo_q || [];
         var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
@@ -75,7 +75,7 @@
             { event: "setSiteType", type: deviceType },
          //   { event: "viewHome" }
         );
-    </script>
+    </script> -->
     <!-- END Criteo Home Page Tag -->
 </body>
 
diff --git a/src/routes/retailer/cart_products.vue b/src/routes/retailer/cart_products.vue
index 1ee6287..958979a 100644
--- a/src/routes/retailer/cart_products.vue
+++ b/src/routes/retailer/cart_products.vue
@@ -16,36 +16,35 @@
       </v-container>
     </v-overlay>
     <div v-show="!cartProductsProgress">
-      <v-row><v-col cols="12" sm="12" md="12">
-        <v-col cols="12" sm="12" md="8">
-              <v-menu offset-y down allow-overflow >
-                <template v-slot:activator="{ on }">
-                  <v-text-field
-                    prepend-inner-icon="mdi-magnify"
-                    placeholder="Enter Item, Name, Keyword"
-                    v-model="searchData"
-                    v-on="on"
-                    @input="searchProducts"
-                  >
-                  </v-text-field>
-                </template>
-                <div>
-                  <v-card tile flat v-if="searchData">
-                    <RetailerSearchProducts 
-                    @actionClose="showSnackBarMessage"
-                    />
-                  </v-card>
-                </div>
-              </v-menu>
-            </v-col>
-            </v-col>
-    </v-row>
+      <v-row
+        ><v-col cols="12" sm="12" md="12">
+          <v-col cols="12" sm="12" md="8">
+            <v-menu offset-y down allow-overflow>
+              <template v-slot:activator="{ on }">
+                <v-text-field
+                  prepend-inner-icon="mdi-magnify"
+                  placeholder="Enter Item, Name, Keyword"
+                  v-model="searchData"
+                  v-on="on"
+                  @input="searchProducts"
+                >
+                </v-text-field>
+              </template>
+              <div>
+                <v-card tile flat v-if="searchData">
+                  <RetailerSearchProducts @actionClose="showSnackBarMessage" />
+                </v-card>
+              </div>
+            </v-menu>
+          </v-col>
+        </v-col>
+      </v-row>
       <v-row v-show="cartProductsItem.length == 0">
         <v-col>
           <v-alert class="alert-box-outline" type="error" text dense
             >You have no items in your shopping cart.</v-alert
           >
-        <!--  <p>
+          <!--  <p>
             Click
             <span
               class="
@@ -65,12 +64,11 @@
       </v-row>
 
       <div v-show="cartProductsItem.length != 0">
-        <v-row  >
+        <v-row>
           <v-col cols="12" sm="12" md="8">
-            
             <v-col cols="12">
               <p
-                class="h3   body-font text-uppercase primary--text"
+                class="h3 body-font text-uppercase primary--text"
                 v-if="!cartProductsProgress"
               >
                 Your Cart ( {{ cartProductsItem.length }} )
@@ -259,7 +257,6 @@ export default {
         return this.$store.state.cartProduct.cartProductsProgress;
       }
     },
-    
   },
   metaInfo() {
     return {
@@ -282,7 +279,6 @@ export default {
     };
   },
   watch: {
-    
     cartProductsItem() {
       this.stockFlagHideShow();
       this.calledCriteoViewBasket();
@@ -345,16 +341,19 @@ export default {
       });
     },
     searchProducts() {
-      if (this.searchData) {
-        this.$store.dispatch("catalogBrowser/search", {
-          fullCatalog: window.craneCatalog,
-          keywords: this.searchData,
-          filters: [],
-          pageNumber: 1,
-          pageSize: "ALL",
-          sortBy: "relevance",
-        });
-      }
+      if (this.timeout) clearTimeout(this.timeout);
+      this.timeout = setTimeout(() => {
+        if (this.searchData) {
+          this.$store.dispatch("catalogBrowser/search", {
+            fullCatalog: window.craneCatalog,
+            keywords: this.searchData,
+            filters: [],
+            pageNumber: 1,
+            pageSize: "ALL",
+            sortBy: "relevance",
+          });
+        }
+      }, 500);
     },
   },
 
@@ -362,7 +361,7 @@ export default {
     this.$store.dispatch("catalogBrowser/index", {
       productsCatalog: window.craneCatalog.products,
     });
-  /*  if (this.userAuth) {
+    /*  if (this.userAuth) {
       this.$store.dispatch("userCartProduct/fetchCartCoupon");
 
       this.calledCriteoViewBasket();
diff --git a/src/stores/retailer/catalog_browser.js b/src/stores/retailer/catalog_browser.js
index e64a2e5..5df6e5e 100644
--- a/src/stores/retailer/catalog_browser.js
+++ b/src/stores/retailer/catalog_browser.js
@@ -1,5 +1,5 @@
 import { getField, updateField } from 'vuex-map-fields'
- import { doFilterItems } from '@/services/search.service'
+//  import { doFilterItems } from '@/services/search.service'
 //import { criteoForProductList } from "@/services/util.service";
 import Fuse from 'fuse.js'
 export const catalogBrowser = {
@@ -131,7 +131,7 @@ export const catalogBrowser = {
         },
         /* eslint-disable no-alert, no-console ,  no-debugger */
 
-        search: ({ commit, state }, { fullCatalog, keywords, filters, pageNumber, pageSize, sortBy }) => {
+        search:async ({ commit, state }, { fullCatalog, keywords, filters, pageNumber, pageSize, sortBy }) => {
             
               
             commit('inProgress', true)
@@ -140,22 +140,22 @@ export const catalogBrowser = {
            // commit('setEnabledFilters', filters)
            // debugger
             const products = []
-            if (filters !== undefined && filters.length) {
-                const categoryFilter = filters.find((f => f.prop == 'ci'))
-                if (categoryFilter !== undefined) {
-                    console.log('filtering by category')
-                    const category = fullCatalog.allCategoryDetails.find(c => c.id == categoryFilter.value)
-                    if (category) {
-                        for (var pi = 0; pi < category.p.length; pi++) {
-                            const pid = category.p[pi]
-                            const product = fullCatalog.products[pid]
-                            if (product !== undefined) {
-                                products.push(product)
-                            }
-                        }
-                    }
-                }
-            }
+            // if (filters !== undefined && filters.length) {
+            //     const categoryFilter = filters.find((f => f.prop == 'ci'))
+            //     if (categoryFilter !== undefined) {
+            //         console.log('filtering by category')
+            //         const category = fullCatalog.allCategoryDetails.find(c => c.id == categoryFilter.value)
+            //         if (category) {
+            //             for (var pi = 0; pi < category.p.length; pi++) {
+            //                 const pid = category.p[pi]
+            //                 const product = fullCatalog.products[pid]
+            //                 if (product !== undefined) {
+            //                     products.push(product)
+            //                 }
+            //             }
+            //         }
+            //     }
+            // }
              
             if (keywords !== null && keywords != '') {
                 products.length = 0
@@ -170,46 +170,47 @@ export const catalogBrowser = {
             
             const availableFilters = [];
             let filteredItems = [];
-            let pageData = [];
-            if (products.length > 0) {
+            // let pageData = [];
+            // if (products.length > 0) {
                  
-              filteredItems = doFilterItems({
-                    items: products, enabledFilters: state.enabledFilters,
-                    availableFilters, attributesMap: window.attributesMap
-                })
+            //   filteredItems = doFilterItems({
+            //         items: products, enabledFilters: state.enabledFilters,
+            //         availableFilters, attributesMap: window.attributesMap
+            //     })
 
-                switch (sortBy) {
-                    case 'name':
-                        filteredItems.sort((a, b) => {
-                            if (a.n < b.n) return -1
-                            else if (a.n > b.n) return 1
-                            else return 0
-                        })
-                        break
-                    case 'price':
-                        filteredItems.sort((a, b) => {
-                            if (a.p < b.p) return -1
-                            else if (a.p > b.p) return 1
-                            else return 0
-                        })
-                        break
-                    case 'color':
-                        filteredItems.sort((a, b) => {
-                            if (a.dc < b.dc) return -1
-                            else if (a.dc > b.dc) return 1
-                            else return 0
-                        })
-                        break
-                }
-                if (pageSize != 'ALL') {
-                    pageSize = Number(pageSize)
-                    pageData = filteredItems.slice((pageNumber - 1) * pageSize, pageNumber * pageSize)
-                }
-                else {
-                    pageData = filteredItems;
-                }
-            }
-            commit('setSearchResults', pageData);
+            //     switch (sortBy) {
+            //         case 'name':
+            //             filteredItems.sort((a, b) => {
+            //                 if (a.n < b.n) return -1
+            //                 else if (a.n > b.n) return 1
+            //                 else return 0
+            //             })
+            //             break
+            //         case 'price':
+            //             filteredItems.sort((a, b) => {
+            //                 if (a.p < b.p) return -1
+            //                 else if (a.p > b.p) return 1
+            //                 else return 0
+            //             })
+            //             break
+            //         case 'color':
+            //             filteredItems.sort((a, b) => {
+            //                 if (a.dc < b.dc) return -1
+            //                 else if (a.dc > b.dc) return 1
+            //                 else return 0
+            //             })
+            //             break
+            //     }
+            //     if (pageSize != 'ALL') {
+            //         pageSize = Number(pageSize)
+            //         pageData = filteredItems.slice((pageNumber - 1) * pageSize, pageNumber * pageSize)
+            //     }
+            //     else {
+            //         pageData = filteredItems;
+            //     }
+            // }
+            // commit('setSearchResults', pageData);
+            commit('setSearchResults', products);
             
             commit('setAvailableFilters', availableFilters);
             commit('setSearchTerms', { keywords: keywords, pageNumber: pageNumber, pageSize: pageSize, sortBy: sortBy, filters: filters }

From fbaf3668e41e52e9d2592edda368949138cbe909 Mon Sep 17 00:00:00 2001
From: sidharth <sidhj01@gmail.com>
Date: Fri, 21 Jan 2022 17:39:47 +0530
Subject: [PATCH 2/2] undo criteo script

---
 git_info.json                         |  1 -
 public/index.html                     | 12 ++++++------
 src/routes/retailer/cart_products.vue |  2 +-
 3 files changed, 7 insertions(+), 8 deletions(-)
 delete mode 100644 git_info.json

diff --git a/git_info.json b/git_info.json
deleted file mode 100644
index c18e197..0000000
--- a/git_info.json
+++ /dev/null
@@ -1 +0,0 @@
-{"branch_name":"beta","last_commit_date":"2022-01-20T09:38:46.000Z","last_commit_author":"rakesh","last_commit_hash":"ad63d7d012c005f4fd033a9432f7feb1494fbf8e"}
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
index 49859d7..26a3d0e 100644
--- a/public/index.html
+++ b/public/index.html
@@ -39,7 +39,7 @@
     <!-- built files will be auto injected -->
 
     <!-- Listrak Analytics – Javascript Framework -->
-    <!-- <script type="text/javascript">
+    <script type="text/javascript">
         var biJsHost = (("https:" == document.location.protocol) ? "https://" : "http://");
         (function (d, s, id, tid, vid) {
             var js, ljs = d.getElementsByTagName(s)[0];
@@ -49,9 +49,9 @@
             js.src = biJsHost + "cdn.listrakbi.com/scripts/script.js?m=" + tid + "&v=" + vid;
             ljs.parentNode.insertBefore(js, ljs);
         })(document, 'script', 'ltkSDK', 'yJ3fjhPTdCKx', '1');
-    </script> -->
+    </script>
     <!--START Pepperjam CODE-->
-    <!-- <script>
+    <script>
         (function () {
             var a = document.createElement("script");
             a.type = "text/javascript", a.async = !0, a.src = "//container.pepperjam.com/4135755510.js";
@@ -62,10 +62,10 @@
                 b.parentNode.insertBefore(a, b)
             }
         })();
-    </script> -->
+    </script>
     <!--END Pepperjam CODE-->
     <!-- Criteo Homepage Tag -->
-    <!-- <script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
+    <script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
     <script type="text/javascript">
         window.criteo_q = window.criteo_q || [];
         var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
@@ -75,7 +75,7 @@
             { event: "setSiteType", type: deviceType },
          //   { event: "viewHome" }
         );
-    </script> -->
+    </script>
     <!-- END Criteo Home Page Tag -->
 </body>
 
diff --git a/src/routes/retailer/cart_products.vue b/src/routes/retailer/cart_products.vue
index 958979a..14a5717 100644
--- a/src/routes/retailer/cart_products.vue
+++ b/src/routes/retailer/cart_products.vue
@@ -340,7 +340,7 @@ export default {
         params: {},
       });
     },
-    searchProducts() {
+   async searchProducts() {
       if (this.timeout) clearTimeout(this.timeout);
       this.timeout = setTimeout(() => {
         if (this.searchData) {