From 528f12b065dc25c97a201953fb477a840b9fddeb Mon Sep 17 00:00:00 2001 From: Daniel Goc Date: Mon, 23 Mar 2026 12:56:11 +0100 Subject: [PATCH 1/3] fixed broken HTMLs in ps_product_lang --- ADD_THIS_TO_SQL.sql | 2995 ++++++++++++++++++++++ app/service/meiliService/meiliService.go | 46 +- go.mod | 2 +- 3 files changed, 3034 insertions(+), 9 deletions(-) create mode 100644 ADD_THIS_TO_SQL.sql diff --git a/ADD_THIS_TO_SQL.sql b/ADD_THIS_TO_SQL.sql new file mode 100644 index 0000000..1ca5f9a --- /dev/null +++ b/ADD_THIS_TO_SQL.sql @@ -0,0 +1,2995 @@ +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 363) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 364) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 365) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 366) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 367) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 368) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 369) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 370) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 371) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ + + + +
' +WHERE (`ps_product_lang`.`id_product` = 373) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 374) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 375) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 383) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 384) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 385) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 386) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 387) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 388) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 389) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 390) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 391) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 392) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 393) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`=' +

+ + +
' +WHERE (`ps_product_lang`.`id_product` = 394) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 476) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 476) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 2); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 476) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 3); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 1435) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 1463) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 1464) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ + + + +
' +WHERE (`ps_product_lang`.`id_product` = 1484) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`=' + + +
' +WHERE (`ps_product_lang`.`id_product` = 1507) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ + + + +
' +WHERE (`ps_product_lang`.`id_product` = 1508) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1509) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1510) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1511) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1512) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1513) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ + + + +
' +WHERE (`ps_product_lang`.`id_product` = 1514) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1515) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ + + + +
' +WHERE (`ps_product_lang`.`id_product` = 1516) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1517) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1518) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ + + + +
' +WHERE (`ps_product_lang`.`id_product` = 1541) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ + + + +
' +WHERE (`ps_product_lang`.`id_product` = 1543) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1548) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1550) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1551) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

Zestaw powinien być poprawnie  zamontowany na odpowiedniej nawierzchni z zachowaniem właściwej strefy bezpieczeństwa.

+ +

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 1552) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 1825) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 2025) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

I. Czyszczenie i konserwacja

+

Tapicerkę należy czyścić powierzchniowo stosując dozwolone środki:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Rodzaj zabrudzenia

+
+

Dozwolone środki

+
+

Postępowanie

+
+

Codzienne zabrudzenia

+

 

+
+

Łagodny detergent najlepiej roztwór szarego mydła

+
+

Czyścić regularnie z użyciem gąbki lub miękkiej szczotki. Na koniec przetrzeć czyszczone miejsce wilgotną szmatką po czym wytrzeć do sucha (w celu usunięcia pozostałości detergentu).

+
+

Miejscowe, silniejsze zabrudzenia

+
+

25% roztwór alkoholu etylowego

+
+

Delikatnie przecierać nasączonym tamponem z gazy. Na koniec przetrzeć czyszczone miejsce wilgotną szmatką po czym wytrzeć do sucha (w celu usunięcia pozostałości detergentu).

+
+

Dezynfekcja

+
+

Ogólnodostępne środki do dezynfekcji zawierające:

+

- aktywny chlor – dichloroizocyjanuran sodu, max stężenie 10000 ppm 

+

- aktywny chlor - dwutlenek chloru w roztworze do 20 000 ppm 

+

- alkohol izopropylowy max stężenie 70 % 

+


+
+

Dezynfekować zgodnie z zaleceniami producenta używanego środka.

+
+

Przed użyciem środka innego niż łagodny detergent trzeba sprawdzić efekt w niewidocznym miejscu, a samo czyszczenie wykonać bardzo ostrożnie. + +

+
+


II. Informacje

+


+ + + + + + + + + + + + + + + + + + + + + + + +
+

Szamponować przy użyciu gąbki +

+
+

+   +

+
+

Nie prać!!! (delikatne wyroby)    +

+
+

+ +

+
+

Nie chlorować!!! (nie stosować do bielenia związków wydzielających wolny chlor) +

+
+

+   +

+
+

Nie prasować!!! (nie dopuszczać do kontaktu z nagrzanymi powierzchniami np. kaloryfer) +

+
+

+   +

+
+

Nie czyścić chemicznie!!! +

+
+


+

III. Warunki gwarancji

+

Gwarancji nie podlegają:

+' +WHERE (`ps_product_lang`.`id_product` = 2687) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='


+

I. Czyszczenie i konserwacja

+

Tapicerkę należy czyścić powierzchniowo stosując dozwolone środki:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Rodzaj zabrudzenia

+
+

Dozwolone środki

+
+

Postępowanie

+
+

Codzienne zabrudzenia

+

 

+
+

Łagodny detergent najlepiej roztwór szarego mydła

+
+

Czyścić regularnie z użyciem gąbki lub miękkiej szczotki. Na koniec przetrzeć czyszczone miejsce wilgotną szmatką po czym wytrzeć do sucha (w celu usunięcia pozostałości detergentu).

+
+

Miejscowe, silniejsze zabrudzenia

+
+

25% roztwór alkoholu etylowego

+
+

Delikatnie przecierać nasączonym tamponem z gazy. Na koniec przetrzeć czyszczone miejsce wilgotną szmatką po czym wytrzeć do sucha (w celu usunięcia pozostałości detergentu).

+
+

Dezynfekcja

+
+

Ogólnodostępne środki do dezynfekcji zawierające:

+

- aktywny chlor – dichloroizocyjanuran sodu, max stężenie 10000 ppm 

+

- aktywny chlor - dwutlenek chloru w roztworze do 20 000 ppm 

+

- alkohol izopropylowy max stężenie 70 % 

+


+
+

Dezynfekować zgodnie z zaleceniami producenta używanego środka.

+
+

Przed użyciem środka innego niż łagodny detergent trzeba sprawdzić efekt w niewidocznym miejscu, a samo czyszczenie wykonać bardzo ostrożnie. + +

+
+


II. Informacje

+


+ + + + + + + + + + + + + + + + + + + + + + + +
+

Szamponować przy użyciu gąbki +

+
+

+   +

+
+

Nie prać!!! (delikatne wyroby)    +

+
+

+ +

+
+

Nie chlorować!!! (nie stosować do bielenia związków wydzielających wolny chlor) +

+
+

+   +

+
+

Nie prasować!!! (nie dopuszczać do kontaktu z nagrzanymi powierzchniami np. kaloryfer) +

+
+

+   +

+
+

Nie czyścić chemicznie!!! +

+
+


+

III. Warunki gwarancji

+

Gwarancji nie podlegają:

+' +WHERE (`ps_product_lang`.`id_product` = 3424) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='


' +WHERE (`ps_product_lang`.`id_product` = 3441) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); + +UPDATE `ps_product_lang` +SET `usage`='

+ + + +
' +WHERE (`ps_product_lang`.`id_product` = 3842) AND (`ps_product_lang`.`id_shop` = 1) AND (`ps_product_lang`.`id_lang` = 1); diff --git a/app/service/meiliService/meiliService.go b/app/service/meiliService/meiliService.go index 24cc106..65847b6 100644 --- a/app/service/meiliService/meiliService.go +++ b/app/service/meiliService/meiliService.go @@ -51,15 +51,39 @@ func (s *MeiliService) CreateIndex(id_lang uint) error { nextMeiliProduct.ProductID = products[i].ProductID nextMeiliProduct.Name = products[i].Name - nextMeiliProduct.Description = cleanHTML(products[i].Description) - nextMeiliProduct.DescriptionShort = cleanHTML(products[i].DescriptionShort) - nextMeiliProduct.Usage = cleanHTML(products[i].Usage) + + nextMeiliProduct.Description, err = cleanHTML(products[i].Description) + if err != nil { + fmt.Printf("nextMeiliProduct.Description: %v\n", nextMeiliProduct.Description) + fmt.Printf("products[i].ProductID: %v\n", products[i].ProductID) + fmt.Println("failed at description") + fmt.Printf("err: %v\n", err) + return err + } + + nextMeiliProduct.DescriptionShort, err = cleanHTML(products[i].DescriptionShort) + if err != nil { + fmt.Printf("nextMeiliProduct.DescriptionShort: %v\n", nextMeiliProduct.DescriptionShort) + fmt.Printf("products[i].ProductID: %v\n", products[i].ProductID) + fmt.Println("failed at description short") + fmt.Printf("err: %v\n", err) + return err + } + + nextMeiliProduct.Usage, err = cleanHTML(products[i].Usage) + if err != nil { + fmt.Printf("nextMeiliProduct.Usage: %v\n", nextMeiliProduct.Usage) + fmt.Printf("products[i].ProductID: %v\n", products[i].ProductID) + fmt.Println("failed at usage") + fmt.Printf("err: %v\n", err) + return err + } meiliProducts = append(meiliProducts, nextMeiliProduct) } indexName := "meili_products_shop" + strconv.FormatInt(constdata.SHOP_ID, 10) + "_lang" + strconv.FormatInt(int64(id_lang), 10) - primaryKey := "product_id" + primaryKey := "ProductID" docOptions := &meilisearch.DocumentOptions{ PrimaryKey: &primaryKey, SkipCreation: false, @@ -123,7 +147,7 @@ func (s *MeiliService) HealthCheck() (*meilisearch.Health, error) { } // remove all tags from HTML text -func cleanHTML(s string) string { +func cleanHTML(s string) (string, error) { r := strings.NewReader(s) d := xml.NewDecoder(r) @@ -137,19 +161,25 @@ func cleanHTML(s string) string { token, err := d.Token() if err == io.EOF { break + } else if err != nil { + return text, err } switch v := token.(type) { case xml.StartElement: - text += "\n" + if len(text) > 0 && text[len(text)-1] != '\n' { + text += " \n " + } case xml.EndElement: case xml.CharData: - text += string(v) + if strings.TrimSpace(string(v)) != "" { + text += string(v) + } case xml.Comment: case xml.ProcInst: case xml.Directive: } } - return text + return text, nil } diff --git a/go.mod b/go.mod index 7632dfb..53d022d 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,7 @@ require ( github.com/gofiber/fiber/v3 v3.1.0 github.com/golang-jwt/jwt/v5 v5.3.1 github.com/joho/godotenv v1.5.1 + github.com/meilisearch/meilisearch-go v0.36.1 github.com/openai/openai-go/v3 v3.28.0 github.com/samber/lo v1.53.0 golang.org/x/crypto v0.48.0 @@ -29,7 +30,6 @@ require ( github.com/google/s2a-go v0.1.9 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect github.com/googleapis/gax-go/v2 v2.15.0 // indirect - github.com/meilisearch/meilisearch-go v0.36.1 // indirect github.com/tidwall/gjson v1.18.0 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect From 15e8626280981d1d8a6583daba9bef6b11ed5dcc Mon Sep 17 00:00:00 2001 From: Marek Goc Date: Mon, 23 Mar 2026 14:04:53 +0100 Subject: [PATCH 2/3] routing --- app/model/product.go | 29 ++-- app/repos/categoriesRepo/categoriesRepo.go | 15 +-- app/service/menuService/menuService.go | 10 +- bo/components.d.ts | 1 + bo/src/layouts/default.vue | 52 ++++++- bo/src/layouts/empty.vue | 2 +- bo/src/router/index.ts | 81 ++++++++--- bo/src/router/menu.ts | 8 ++ bo/src/views/CategoryView.vue | 21 +++ bo/src/views/LoginView.vue | 5 +- bo/src/views/NotFoundView.vue | 7 + bo/src/views/PasswordRecoveryView.vue | 119 ++++++++-------- bo/src/views/RegisterView.vue | 4 + bo/src/views/ResetPasswordForm.vue | 147 ++++++++++---------- bo/src/views/VerifyEmailView.vue | 150 +++++++++++---------- 15 files changed, 401 insertions(+), 250 deletions(-) create mode 100644 bo/src/router/menu.ts create mode 100644 bo/src/views/CategoryView.vue create mode 100644 bo/src/views/NotFoundView.vue diff --git a/app/model/product.go b/app/model/product.go index eb63f68..3c8faae 100644 --- a/app/model/product.go +++ b/app/model/product.go @@ -82,18 +82,27 @@ type ProductFilters struct { } type ScannedCategory struct { - CategoryID uint `gorm:"column:ID;primaryKey"` - Name string `gorm:"column:name"` - Active uint `gorm:"column:active"` - Position uint `gorm:"column:position"` - ParentID uint `gorm:"column:id_parent"` - IsRoot uint `gorm:"column:is_root_category"` + CategoryID uint `gorm:"column:ID;primaryKey"` + Name string `gorm:"column:name"` + Active uint `gorm:"column:active"` + Position uint `gorm:"column:position"` + ParentID uint `gorm:"column:id_parent"` + IsRoot uint `gorm:"column:is_root_category"` + LinkRewrite string `gorm:"column:link_rewrite"` + IsoCode string `gorm:"column:iso_code"` } type Category struct { - CategoryID uint `json:"category_id" form:"category_id"` - Name string `json:"name" form:"name"` - Active uint `json:"active" form:"active"` - Subcategories []Category `json:"subcategories" form:"subcategories"` + CategoryID uint `json:"category_id" form:"category_id"` + Label string `json:"label" form:"label"` + // Active bool `json:"active" form:"active"` + Params CategpryParams `json:"params" form:"params"` + Children []Category `json:"children" form:"children"` +} + +type CategpryParams struct { + CategoryID uint `json:"category_id" form:"category_id"` + LinkRewrite string `json:"link_rewrite" form:"link_rewrite"` + Locale string `json:"locale" form:"locale"` } type FeatVal = map[uint][]uint diff --git a/app/repos/categoriesRepo/categoriesRepo.go b/app/repos/categoriesRepo/categoriesRepo.go index 1713441..1556f59 100644 --- a/app/repos/categoriesRepo/categoriesRepo.go +++ b/app/repos/categoriesRepo/categoriesRepo.go @@ -26,15 +26,14 @@ func (repo *CategoriesRepo) GetAllCategories(id_lang uint) ([]model.ScannedCateg ps_category.active AS active, ps_category_shop.position AS position, ps_category.id_parent AS id_parent, - ps_category.is_root_category AS is_root_category + ps_category.is_root_category AS is_root_category, + ps_category_lang.link_rewrite AS link_rewrite, + ps_lang.iso_code AS iso_code FROM ps_category - LEFT JOIN ps_category_lang - ON ps_category_lang.id_category = ps_category.id_category - AND ps_category_lang.id_shop = ? - AND ps_category_lang.id_lang = ? - LEFT JOIN ps_category_shop - ON ps_category_shop.id_category = ps_category.id_category - AND ps_category_shop.id_shop = ?`, + LEFT JOIN ps_category_lang ON ps_category_lang.id_category = ps_category.id_category AND ps_category_lang.id_shop = ? AND ps_category_lang.id_lang = ? + LEFT JOIN ps_category_shop ON ps_category_shop.id_category = ps_category.id_category AND ps_category_shop.id_shop = ? + JOIN ps_lang ON ps_lang.id_lang = ps_category_lang.id_lang + `, constdata.SHOP_ID, id_lang, constdata.SHOP_ID). Scan(&allCategories).Error diff --git a/app/service/menuService/menuService.go b/app/service/menuService/menuService.go index 13a6a89..1244075 100644 --- a/app/service/menuService/menuService.go +++ b/app/service/menuService/menuService.go @@ -64,7 +64,7 @@ func (s *MenuService) createTree(index int, all_categories *([]model.ScannedCate node := s.scannedToNormalCategory((*all_categories)[index]) for i := 0; i < len((*children_indices)[index]); i++ { - node.Subcategories = append(node.Subcategories, s.createTree((*children_indices)[index][i].Index, all_categories, children_indices)) + node.Children = append(node.Children, s.createTree((*children_indices)[index][i].Index, all_categories, children_indices)) } return node @@ -72,10 +72,12 @@ func (s *MenuService) createTree(index int, all_categories *([]model.ScannedCate func (s *MenuService) scannedToNormalCategory(scanned model.ScannedCategory) model.Category { var normal model.Category - normal.Active = scanned.Active + // normal.Active = scanned.Active normal.CategoryID = scanned.CategoryID - normal.Name = scanned.Name - normal.Subcategories = []model.Category{} + normal.Label = scanned.Name + // normal.Active = scanned.Active == 1 + normal.Params = model.CategpryParams{CategoryID: normal.CategoryID, LinkRewrite: scanned.LinkRewrite, Locale: scanned.IsoCode} + normal.Children = []model.Category{} return normal } diff --git a/bo/components.d.ts b/bo/components.d.ts index 622aa17..3425316 100644 --- a/bo/components.d.ts +++ b/bo/components.d.ts @@ -41,6 +41,7 @@ declare module 'vue' { UInput: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Input.vue')['default'] UInputNumber: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/InputNumber.vue')['default'] UModal: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Modal.vue')['default'] + UNavigationMenu: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/NavigationMenu.vue')['default'] UPagination: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Pagination.vue')['default'] USelect: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Select.vue')['default'] USelectMenu: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/SelectMenu.vue')['default'] diff --git a/bo/src/layouts/default.vue b/bo/src/layouts/default.vue index 1e86a0a..9f19d9e 100644 --- a/bo/src/layouts/default.vue +++ b/bo/src/layouts/default.vue @@ -1,14 +1,56 @@ diff --git a/bo/src/layouts/empty.vue b/bo/src/layouts/empty.vue index e8cfec0..e665e66 100644 --- a/bo/src/layouts/empty.vue +++ b/bo/src/layouts/empty.vue @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/bo/src/views/LoginView.vue b/bo/src/views/LoginView.vue index 20cec7b..f85d2c3 100644 --- a/bo/src/views/LoginView.vue +++ b/bo/src/views/LoginView.vue @@ -4,8 +4,8 @@ import { useRouter, useRoute } from 'vue-router' import { useAuthStore } from '@/stores/auth' import { useValidation } from '@/composable/useValidation' import type { FormError } from '@nuxt/ui' -import { useI18n } from 'vue-i18n' import { i18n } from '@/plugins/02_i18n' +import Empty from '@/layouts/empty.vue' const router = useRouter() const route = useRoute() @@ -52,9 +52,11 @@ const PrivacyComponent = computed(() => import(`@/components/terms/${i18n.locale.value}_PrivacyPolicyView.vue`).catch(() => import('@/components/terms/en_PrivacyPolicyView.vue')), ), ) +