shopizer-uncached
Changes
shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties 2(+1 -1)
shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties 2(+1 -1)
sm-shop/SALESMANAGER.h2.db 0(+0 -0)
sm-shop/SALESMANAGER.lock.db 4(+2 -2)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java 6(+5 -1)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java 4(+2 -2)
Details
diff --git a/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties b/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties
index c580950..4b7e6f7 100644
--- a/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties
+++ b/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties
@@ -1,5 +1,5 @@
#Generated by Maven Integration for Eclipse
-#Thu Nov 17 13:15:14 EST 2016
+#Fri Nov 18 09:25:05 EST 2016
version=2.5.0-SNAPSHOT
groupId=com.shopizer
m2e.projectName=shopizer-canadapost
diff --git a/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties b/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties
index adbd0e9..aeef9b0 100644
--- a/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties
+++ b/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties
@@ -1,5 +1,5 @@
#Generated by Maven Integration for Eclipse
-#Thu Nov 17 13:15:13 EST 2016
+#Fri Nov 18 09:25:04 EST 2016
version=2.5.0-SNAPSHOT
groupId=com.shopizer
m2e.projectName=shopizer-shipping-distance-processor
diff --git a/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties b/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties
index 10fc92d..2f7d37d 100644
--- a/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties
+++ b/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties
@@ -1,5 +1,5 @@
#Generated by Maven Integration for Eclipse
-#Thu Nov 17 13:15:14 EST 2016
+#Fri Nov 18 09:25:05 EST 2016
version=2.5.0-SNAPSHOT
groupId=com.shopizer
m2e.projectName=sm-search
sm-shop/SALESMANAGER.h2.db 0(+0 -0)
diff --git a/sm-shop/SALESMANAGER.h2.db b/sm-shop/SALESMANAGER.h2.db
index b2a1b8e..e71da10 100644
Binary files a/sm-shop/SALESMANAGER.h2.db and b/sm-shop/SALESMANAGER.h2.db differ
sm-shop/SALESMANAGER.lock.db 4(+2 -2)
diff --git a/sm-shop/SALESMANAGER.lock.db b/sm-shop/SALESMANAGER.lock.db
index 6347065..054b721 100644
--- a/sm-shop/SALESMANAGER.lock.db
+++ b/sm-shop/SALESMANAGER.lock.db
@@ -1,4 +1,4 @@
#FileLock
-#Thu Nov 17 12:49:11 EST 2016
-id=15873680ebbb35880e089352470d0b3a736e4e12ea8
+#Fri Nov 18 13:24:02 EST 2016
+id=15878ae544854c043e638338aaf1b1e31c895571d4f
method=file
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java
index afed28a..c7fbe61 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java
@@ -26,7 +26,9 @@ import com.salesmanager.shop.utils.*;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
@@ -126,7 +128,9 @@ public class MerchantStoreController {
String returnString = resp.toJSONString();
- return new ResponseEntity<String>(returnString,HttpStatus.OK);
+ final HttpHeaders httpHeaders= new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
+ return new ResponseEntity<String>(returnString,httpHeaders,HttpStatus.OK);
}
@PreAuthorize("hasRole('STORE')")
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java
index 27215fa..8b4005c 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java
@@ -20,6 +20,7 @@ import com.salesmanager.shop.utils.LabelUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
@@ -154,7 +155,9 @@ public class OrdersController {
String returnString = resp.toJSONString();
- return new ResponseEntity<String>(returnString,HttpStatus.OK);
+ final HttpHeaders httpHeaders= new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
+ return new ResponseEntity<String>(returnString,httpHeaders,HttpStatus.OK);
}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java
index 5a1e670..c5b381f 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java
@@ -105,7 +105,7 @@ public class ProductsController {
LOGGER.error("Product page cannot parse categoryId " + categoryId );
resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
String returnString = resp.toJSONString();
- return returnString;
+ return new ResponseEntity<String>(returnString,HttpStatus.BAD_REQUEST);
}
@@ -117,7 +117,7 @@ public class ProductsController {
if(category==null || category.getMerchantStore().getId()!=store.getId()) {
resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
String returnString = resp.toJSONString();
- return returnString;
+ return new ResponseEntity<String>(returnString,HttpStatus.BAD_REQUEST);
}
//get all sub categories
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/application/ShopApplicationConfiguration.java b/sm-shop/src/main/java/com/salesmanager/shop/application/ShopApplicationConfiguration.java
index 361f90a..133d3a9 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/application/ShopApplicationConfiguration.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/application/ShopApplicationConfiguration.java
@@ -1,5 +1,7 @@
package com.salesmanager.shop.application;
+import java.nio.charset.Charset;
+import java.util.Arrays;
import java.util.List;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@@ -8,7 +10,9 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportResource;
+import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@@ -28,6 +32,7 @@ import com.salesmanager.core.business.configuration.CoreApplicationConfiguration
@EnableWebSecurity
public class ShopApplicationConfiguration extends WebMvcConfigurerAdapter{
+ private static final Charset UTF8 = Charset.forName("UTF-8");
/**
* Configure TilesConfigurer.
@@ -51,9 +56,18 @@ public class ShopApplicationConfiguration extends WebMvcConfigurerAdapter{
return resolver;
}
- /**
+ @Override
+ public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
+ StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
+ stringConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("application", "json", UTF8)));
+ converters.add(stringConverter);
+
+ // Add other converters ...
+ }
+
+/* *//**
* Spring 4 JSON converter
- */
+ *//*
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(mappingJackson2HttpMessageConverter());
@@ -64,6 +78,6 @@ public class ShopApplicationConfiguration extends WebMvcConfigurerAdapter{
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setObjectMapper(new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false));
return converter;
- }
+ }*/
}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/controller/ImagesController.java b/sm-shop/src/main/java/com/salesmanager/shop/controller/ImagesController.java
index a40e73b..bea7c56 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/controller/ImagesController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/controller/ImagesController.java
@@ -97,6 +97,7 @@ public class ImagesController {
// example small product image -> /static/DEFAULT/products/TB12345/product1.jpg
// example large product image -> /static/DEFAULT/products/TB12345/product1.jpg
+
/**
* List of possible imageType
@@ -137,8 +138,57 @@ public class ImagesController {
* @return
* @throws IOException
*/
- @RequestMapping("/static/products/{storeCode}/{productCode}/{imageName}.{extension}")
- public @ResponseBody byte[] printImage(@PathVariable final String storeCode, @PathVariable final String productCode, @PathVariable final String imageName, @PathVariable final String extension, HttpServletRequest request) throws IOException {
+ @RequestMapping("/static/products/{storeCode}/{productCode}/{imageSize}/{imageName}")
+ public @ResponseBody byte[] printImage(@PathVariable final String storeCode, @PathVariable final String productCode, @PathVariable final String imageSize, @PathVariable final String imageName, HttpServletRequest request) throws IOException {
+
+ // product image small
+ // example small product image -> /static/products/DEFAULT/TB12345/SMALL/product1.jpg
+
+ // example large product image -> /static/products/DEFAULT/TB12345/LARGE/product1.jpg
+
+
+ /**
+ * List of possible imageType
+ *
+ */
+
+
+ ProductImageSize size = ProductImageSize.SMALL;
+
+ if(FileContentType.PRODUCTLG.name().equals(imageSize)) {
+ size = ProductImageSize.LARGE;
+ }
+
+
+
+
+ OutputContentFile image = null;
+ try {
+ image = productImageService.getProductImage(storeCode, productCode, imageName, size);
+ } catch (ServiceException e) {
+ LOGGER.error("Cannot retrieve image " + imageName, e);
+ }
+ if(image!=null) {
+ return image.getFile().toByteArray();
+ } else {
+ //empty image placeholder
+ return null;
+ }
+
+ }
+
+ /**
+ * Exclusive method for dealing with product images
+ * @param storeCode
+ * @param productCode
+ * @param imageName
+ * @param extension
+ * @param request
+ * @return
+ * @throws IOException
+ */
+ @RequestMapping("/static/products/{storeCode}/{productCode}/{imageName}")
+ public @ResponseBody byte[] printImage(@PathVariable final String storeCode, @PathVariable final String productCode, @PathVariable final String imageName, HttpServletRequest request) throws IOException {
// product image
// example small product image -> /static/products/DEFAULT/TB12345/product1.jpg?size=small
@@ -147,6 +197,7 @@ public class ImagesController {
// or
//example large product image -> /static/products/DEFAULT/TB12345/product1.jpg?size=large
+
/**
* List of possible imageType
*
@@ -167,7 +218,7 @@ public class ImagesController {
OutputContentFile image = null;
try {
- image = productImageService.getProductImage(storeCode, productCode, new StringBuilder().append(imageName).append(".").append(extension).toString(), size);
+ image = productImageService.getProductImage(storeCode, productCode, imageName, size);
} catch (ServiceException e) {
LOGGER.error("Cannot retrieve image " + imageName, e);
}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/controller/ReferenceController.java b/sm-shop/src/main/java/com/salesmanager/shop/controller/ReferenceController.java
index 180c081..e1e3c9f 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/controller/ReferenceController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/controller/ReferenceController.java
@@ -16,7 +16,9 @@ import org.apache.commons.lang3.StringUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -114,9 +116,10 @@ public class ReferenceController {
resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
}
-
+ final HttpHeaders httpHeaders= new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
String returnString = resp.toJSONString();
- return new ResponseEntity<String>(returnString,HttpStatus.OK);
+ return new ResponseEntity<String>(returnString,httpHeaders,HttpStatus.OK);
}
@@ -165,8 +168,8 @@ public class ReferenceController {
}
@SuppressWarnings("unchecked")
- @RequestMapping(value={"/shop/reference/creditCardDates.html"}, method=RequestMethod.GET, produces="application/json;text/plain;charset=UTF-8")
- public @ResponseBody String getCreditCardDates(HttpServletRequest request, HttpServletResponse response) {
+ @RequestMapping(value={"/shop/reference/creditCardDates.html"}, method=RequestMethod.GET)
+ public @ResponseBody ResponseEntity<String> getCreditCardDates(HttpServletRequest request, HttpServletResponse response) {
List<String> years = null;
@@ -202,14 +205,16 @@ public class ReferenceController {
LOGGER.error("ReferenceControler ",e);
}
- return serialized;
+ final HttpHeaders httpHeaders= new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
+ return new ResponseEntity<String>(serialized,httpHeaders,HttpStatus.OK);
}
@SuppressWarnings("unchecked")
- @RequestMapping(value={"/shop/reference/monthsOfYear.html"}, method=RequestMethod.GET, produces="application/json;text/plain;charset=UTF-8")
- public @ResponseBody String getMonthsOfYear(HttpServletRequest request, HttpServletResponse response) {
+ @RequestMapping(value={"/shop/reference/monthsOfYear.html"}, method=RequestMethod.GET)
+ public @ResponseBody ResponseEntity<String> getMonthsOfYear(HttpServletRequest request, HttpServletResponse response) {
List<String> days = null;
@@ -237,7 +242,9 @@ public class ReferenceController {
LOGGER.error("ReferenceControler ",e);
}
- return serialized;
+ final HttpHeaders httpHeaders= new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
+ return new ResponseEntity<String>(serialized,httpHeaders,HttpStatus.OK);
}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/filter/AdminFilter.java b/sm-shop/src/main/java/com/salesmanager/shop/filter/AdminFilter.java
index 57a9979..e3e0604 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/filter/AdminFilter.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/filter/AdminFilter.java
@@ -9,6 +9,8 @@ import com.salesmanager.core.model.reference.language.Language;
import com.salesmanager.core.model.user.User;
import com.salesmanager.shop.admin.model.web.Menu;
import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LanguageUtils;
+
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
@@ -24,6 +26,7 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
@@ -44,6 +47,9 @@ public class AdminFilter extends HandlerInterceptorAdapter {
@Inject
private CacheUtils cache;
+ @Inject
+ private LanguageUtils languageUtils;
+
public boolean preHandle(
HttpServletRequest request,
HttpServletResponse response,
@@ -101,8 +107,10 @@ public class AdminFilter extends HandlerInterceptorAdapter {
request.setAttribute(Constants.ADMIN_STORE, store);
- Language language = (Language) request.getSession().getAttribute("LANGUAGE");
+ Language language = languageUtils.getRequestLanguage(request, response);
+ //Language language = (Language) request.getSession().getAttribute("LANGUAGE");
+
if(language==null) {
//TODO get the Locale from Spring API, is it simply request.getLocale() ???
@@ -116,11 +124,8 @@ public class AdminFilter extends HandlerInterceptorAdapter {
} else {
language = store.getDefaultLanguage();
}
-
-
-
+
request.getSession().setAttribute("LANGUAGE", language);
-
}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/LanguageUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/LanguageUtils.java
index 4ae453e..da77924 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/utils/LanguageUtils.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/LanguageUtils.java
@@ -74,7 +74,11 @@ public class LanguageUtils {
}
- locale = languageService.toLocale(language);
+ if(language != null) {
+ locale = languageService.toLocale(language);
+ } else {
+ language = languageService.toLanguage(locale);
+ }
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
if(localeResolver!=null) {
diff --git a/sm-shop/src/main/webapp/pages/admin/merchant/merchant.jsp b/sm-shop/src/main/webapp/pages/admin/merchant/merchant.jsp
index e919257..3ce2b58 100644
--- a/sm-shop/src/main/webapp/pages/admin/merchant/merchant.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/merchant/merchant.jsp
@@ -14,7 +14,7 @@
$(document).ready(function() {
-
+
if($("#code").val()=="") {
$('.btn').addClass('disabled');
}
@@ -52,9 +52,12 @@ $.fn.addItems = function(data) {
};
function getZones(countryCode){
+
+ var url = '<c:url value="/admin/reference/provinces.html"/>?lang=<c:out value="${requestScope.LANGUAGE.code}"/>';
+
$.ajax({
type: 'POST',
- url: '<c:url value="/admin/reference/provinces.html"/>',
+ url: url,
data: 'countryCode=' + countryCode,
dataType: 'json',
success: function(response){
diff --git a/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties b/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties
index 7405294..78e5997 100644
--- a/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties
+++ b/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties
@@ -1,5 +1,5 @@
#Generated by Maven Integration for Eclipse
-#Thu Nov 17 13:15:16 EST 2016
+#Fri Nov 18 09:28:12 EST 2016
version=2.5.0-SNAPSHOT
groupId=com.shopizer
m2e.projectName=sm-shop